:root{--hud:#171b20;--hud2:#222830;--paper:#f6f4ef;--ink:#24282e;--muted:#737981;--line:#ded9cf;--accent:#d86849;--accent2:#ef9a57;--green:#81ae77;--shadow:0 18px 50px rgba(16,20,25,.24)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;font-family:"Noto Sans KR",sans-serif;background:#222;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}.curve-filter-defs{position:absolute;width:0;height:0;overflow:hidden}
#teacherGate{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;background:#e9e5dd}.gate-card{width:min(410px,calc(100% - 36px));padding:34px;border-radius:24px;background:#fff;text-align:center;box-shadow:var(--shadow)}.gate-icon{font-size:42px}.gate-card h1{margin:12px 0 7px;font-size:22px}.gate-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.gate-load{width:32px;height:32px;margin:22px auto 0;border:3px solid #eee;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.gate-actions{display:none;gap:8px;margin-top:20px}.gate-actions.show{display:grid}.gate-actions a{padding:12px;border-radius:12px;background:var(--accent);color:#fff;text-decoration:none;font-weight:700}.gate-actions a.light{background:#f2efe9;color:#555}.teacherGate.off,#teacherGate.off{display:none}@keyframes spin{to{transform:rotate(360deg)}}
.game-app{position:fixed;inset:0;overflow:hidden;background:#dcd8d0}.world{position:absolute;inset:0;display:grid;place-items:center}.world #frame{position:absolute;inset:0;transition:inset .2s,background .2s}.viewport{position:absolute;inset:0;overflow:hidden}.viewport canvas{display:block;width:100%!important;height:100%!important}.world-vignette{pointer-events:none;position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,transparent 55%,rgba(18,22,26,.15) 120%)}.placement-tip{position:absolute;z-index:3;top:78px;left:50%;transform:translateX(-50%);padding:7px 13px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(18,22,27,.72);backdrop-filter:blur(12px);color:#e9edf0;font-size:11px;box-shadow:0 8px 25px rgba(0,0,0,.12);transition:.2s}.placement-tip b{color:#ffd28c}.placing .placement-tip{background:rgba(103,75,30,.9);color:#fff}.placing .placement-tip b{color:#fff3a9}
.game-topbar{position:absolute;z-index:20;top:12px;left:12px;right:12px;height:54px;display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(20,24,29,.9);backdrop-filter:blur(18px);box-shadow:0 12px 34px rgba(0,0,0,.18);color:#fff}.top-left,.top-right,.top-center{display:flex;align-items:center;gap:6px}.game-title{display:flex;align-items:center;gap:8px;margin-left:4px}.game-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#ef9a57,#c95a43);font-size:18px}.game-title strong,.game-title small{display:block}.game-title strong{font-size:12px}.game-title small{margin-top:1px;color:#929aa3;font:600 7px/1 "DM Sans",sans-serif;letter-spacing:1.2px}.icon-btn,.hud-tab,.save-btn{height:38px;border:0;border-radius:10px;color:#dfe4e8}.icon-btn{display:grid;place-items:center;min-width:38px;background:#2b3138;font-size:16px;text-decoration:none}.icon-btn:hover,.hud-tab:hover{background:#373e47;color:#fff}.hud-tab{display:flex;align-items:center;gap:6px;padding:0 13px;background:transparent;font-size:11px;font-weight:700}.hud-tab span{font-size:14px}.hud-tab.on{background:#f0eee8;color:#24282e}.save-btn{padding:0 16px;background:linear-gradient(135deg,var(--accent),#bb4c3b);font-size:11px;font-weight:800}.save-btn:hover{filter:brightness(1.08)}
.quick-presets{position:absolute;z-index:12;left:12px;top:79px;display:flex;gap:5px;padding:5px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(20,24,29,.76);backdrop-filter:blur(14px)}.quick-presets button{display:flex;align-items:center;gap:5px;height:31px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#d9dfe3;font-size:9px}.quick-presets button:hover,.quick-presets button.on{background:#fff;color:#25292e}.quick-presets span{font-size:14px}
.game-drawer{position:absolute;z-index:15;top:78px;bottom:78px;left:12px;width:330px;display:flex;flex-direction:column;padding:15px;border:1px solid rgba(255,255,255,.65);border-radius:18px;background:rgba(248,247,243,.96);box-shadow:var(--shadow);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transform:translateX(calc(-100% - 24px));transition:transform .22s ease,opacity .18s}.game-drawer.right-drawer{right:12px;left:auto;transform:translateX(calc(100% + 24px))}.game-drawer.open{opacity:1;pointer-events:auto;transform:translateX(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drawer-head small{display:block;color:var(--accent);font:700 8px/1 "DM Sans",sans-serif;letter-spacing:1.2px}.drawer-head h2{margin:4px 0 0;font-size:17px}.drawer-close{width:34px;height:34px;border:0;border-radius:10px;background:#ece8e1;color:#686b6f;font-size:20px}.asset-search{display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.asset-search input{width:100%;height:38px;border:0;outline:0;background:transparent;font-size:11px}.house-category-tabs{display:flex;gap:4px;margin:9px 0;overflow-x:auto;scrollbar-width:none}.house-category-tabs button{flex:0 0 auto;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#666;font-size:9px;font-weight:700}.house-category-tabs button.on{border-color:var(--accent);background:#fff3ee;color:#b94f37}.asset-meta{display:flex;justify-content:space-between;margin:2px 1px 8px;color:var(--muted);font-size:9px}.asset-meta b{color:var(--ink)}.house-grid{min-height:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;overflow-y:auto;padding:1px 2px 12px;scrollbar-width:thin}.house-card{min-height:83px;padding:8px 4px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);text-align:center;transition:.14s}.house-card:hover,.house-card.on{border-color:var(--accent);box-shadow:0 4px 14px rgba(194,88,58,.12);transform:translateY(-1px)}.house-card b,.house-card strong,.house-card small{display:block}.house-card b{font-size:24px}.house-card strong{margin-top:5px;font-size:9px}.house-card small{margin-top:2px;overflow:hidden;color:#95989c;font:500 7px/1.2 "DM Sans",sans-serif;text-overflow:ellipsis;white-space:nowrap}.drawer-foot{margin-top:auto;padding-top:9px;border-top:1px solid var(--line);color:#777;font-size:8px;line-height:1.5}.drawer-foot kbd{margin-left:3px;padding:2px 4px;border:1px solid #c9c3b8;border-radius:4px;background:#fff;color:#333}
.scene-item-list{min-height:80px;max-height:34%;display:grid;gap:5px;overflow-y:auto}.scene-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#fff}.scene-item-main{display:grid;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:2px;border:0;background:transparent;color:inherit;text-align:left}.scene-item.on{border-color:var(--accent);background:#fff5f1}.scene-item.hidden{opacity:.58;background:#f3f2ef}.scene-item.locked{border-style:dashed}.scene-item.hidden .scene-item-main strong{text-decoration:line-through}.item-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#f0ede8}.scene-item strong{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.scene-item small{font-size:8px;color:#999}.layer-item-actions{display:flex;gap:3px}.layer-icon-btn{display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid #ddd7ce;border-radius:7px;background:#fff;color:#777;font-size:11px}.layer-icon-btn.on{border-color:#8b9e8f;background:#eaf3eb;color:#476d50}.layer-icon-btn.lock.on{border-color:#d0a269;background:#fff0db;color:#995e24}.scene-actions,.export-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:5px;margin-top:7px}.scene-actions button,.export-grid button,.soft-btn,.two-grid button,.three-grid button,.view-grid button,.curve-editor button,.layer-bulk-actions button{padding:8px 5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#555;font-size:9px;font-weight:700}.scene-actions button:disabled,.layer-bulk-actions button:disabled{opacity:.4}.layer-bulk-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.layer-help{margin:7px 2px 0;color:#8c8d8a;font-size:7px;line-height:1.5}.drawer-section{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.drawer-section h3{display:flex;justify-content:space-between;margin:0 0 8px;font-size:10px}.drawer-section h3 span{color:var(--muted);font-size:8px;font-weight:500}.toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 2px;border:0;background:transparent;color:#555;font-size:10px}.switch{position:relative;width:30px;height:17px;border-radius:999px;background:#c6c6c6}.switch:after{content:"";position:absolute;top:3px;left:3px;width:11px;height:11px;border-radius:50%;background:#fff;transition:.15s}.switch.on{background:var(--accent)}.switch.on:after{left:16px}.swatches{display:flex;gap:8px}.swatch{width:31px;height:31px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #d1ccc3}.swatch.on{box-shadow:0 0 0 2px var(--accent)}
.view-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.view-grid button.on,.option-btn.on{border-color:var(--accent);background:#fff2ed;color:#b84e37}.two-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.range-row{margin-top:11px}.range-row label{display:flex;justify-content:space-between;margin-bottom:5px;color:#555;font-size:9px}.range-row output{color:var(--accent);font-weight:700}.range-row input{width:100%;height:4px;accent-color:var(--accent)}.sun-compass{position:relative;width:54px;height:54px;margin:12px auto 0;border:1px solid #d6d1c8;border-radius:50%;background:radial-gradient(circle,#fff 0 18%,transparent 19%),linear-gradient(90deg,transparent 49%,#ddd 50%,transparent 51%),linear-gradient(transparent 49%,#ddd 50%,transparent 51%)}.sun-dot{position:absolute;width:9px;height:9px;border-radius:50%;background:#ffb23f;box-shadow:0 0 10px #ffb23f;transform:translate(-50%,-50%)}.curve-editor canvas{width:100%;height:auto;border-radius:9px;background:#17191d}.curve-readout{display:flex;justify-content:space-between;margin:5px 2px;color:#777;font-size:8px}.soft-btn{width:100%;margin-top:9px}.photo-mode-btn{width:100%;margin-top:13px;padding:11px;border:0;border-radius:10px;background:#272c32;color:#fff;font-size:10px;font-weight:800}.export-grid{grid-template-columns:1.4fr 1fr}.export-grid button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.photo-drawer{overflow-y:auto}
.selection-bar{position:absolute;z-index:18;left:50%;bottom:14px;display:flex;align-items:center;gap:9px;width:min(920px,calc(100% - 28px));min-height:54px;padding:7px 9px;border:1px solid rgba(255,255,255,.15);border-radius:16px;background:rgba(21,25,30,.92);backdrop-filter:blur(17px);box-shadow:0 12px 36px rgba(0,0,0,.22);color:#fff;transform:translateX(-50%);transition:.18s}.selection-bar.empty{opacity:.7}.selection-name{display:flex;align-items:center;gap:7px;min-width:135px}.selection-name>span{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:#343b43;font-size:20px}.selection-name small,.selection-name strong{display:block}.selection-name small{color:#8d959d;font-size:7px}.selection-name strong{max-width:92px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.selection-control{min-width:96px;flex:1}.selection-control label{display:flex;justify-content:space-between;color:#aab1b8;font-size:7px}.selection-control output{color:#fff}.selection-control input{width:100%;height:4px;accent-color:var(--accent2)}.mini-action{height:35px;padding:0 11px;border:1px solid #444c55;border-radius:9px;background:#2c333a;color:#e0e3e5;font-size:9px;font-weight:700}.mini-action.danger{color:#ff9b8c}.exit-photo{display:none;position:fixed;z-index:80;top:16px;left:50%;transform:translateX(-50%);padding:10px 17px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(15,18,22,.8);color:#fff;font-size:10px}.photo-mode .game-topbar,.photo-mode .quick-presets,.photo-mode .game-drawer,.photo-mode .selection-bar,.photo-mode .placement-tip{display:none}.photo-mode .exit-photo{display:block}.photo-mode .world-vignette{display:none}.photo-mode #frame[data-ratio="portrait"]{inset:2% calc((100% - min(92vh * .707,92vw))/2)}.photo-mode #frame[data-ratio="square"]{inset:4% calc((100% - min(92vh,92vw))/2)}.photo-mode #frame{box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(0,0,0,.25)}
.model-loading{position:absolute;z-index:30;inset:0;display:grid;place-items:center;background:rgba(222,218,210,.68);backdrop-filter:blur(5px)}.model-loading[hidden]{display:none}.loading-card{display:grid;justify-items:center;width:260px;padding:24px;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);text-align:center}.loading-card strong{font-size:12px}.loading-card span{margin-top:5px;color:#777;font-size:9px}.loading-spinner{width:28px;height:28px;margin-bottom:12px;border:3px solid #eee;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.retry-btn{margin-top:12px;padding:8px 12px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:9px}.toast{position:fixed;z-index:200;left:50%;bottom:83px;max-width:80%;padding:10px 15px;border-radius:999px;background:#171b20;color:#fff;font-size:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.game-title div,.top-center .hud-tab{font-size:0}.top-center .hud-tab span{font-size:15px}.hud-tab{padding:0 10px}.top-right .icon-btn{display:none}.game-drawer{top:74px;bottom:72px;width:min(330px,calc(100% - 24px))}.selection-control{display:none}.selection-bar{width:auto;right:12px;left:12px;transform:none}.selection-name{margin-right:auto}.quick-presets{top:74px}.placement-tip{top:118px}}@media(max-width:560px){.game-topbar{left:7px;right:7px;top:7px}.game-title{display:none}.top-center{margin:auto}.hud-tab{padding:0 8px}.save-btn{padding:0 10px}.quick-presets{left:7px}.quick-presets b{display:none}.game-drawer{left:7px;right:7px;width:auto}.game-drawer.right-drawer{right:7px}.selection-bar{left:7px;right:7px;bottom:7px}.mini-action{padding:0 8px}.placement-tip{width:max-content;max-width:92%;font-size:9px}}
.empty-assets,.empty-scene{grid-column:1/-1;margin:18px 0;padding:18px;border:1px dashed #d2ccc1;border-radius:10px;color:#8a8d90;text-align:center;font-size:9px}.empty-scene{margin:0}.placing .selection-bar{box-shadow:0 0 0 2px rgba(239,154,87,.55),0 12px 36px rgba(0,0,0,.22)}button:disabled{cursor:not-allowed;opacity:.45}.placing .placement-tip{background:rgba(27,32,37,.94);color:#fff}.placing .placement-tip b.valid{color:#78e995}.placing .placement-tip b.invalid{color:#ff7b72}
@media(max-width:900px){.top-right .history-btn{display:grid}}
.terrain-mode .viewport canvas{touch-action:none}
.terrain-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.terrain-tools button{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);text-align:left}.terrain-tools button:hover,.terrain-tools button.on{border-color:#5e8e64;background:#f3f8f1;box-shadow:0 4px 14px rgba(68,111,75,.1)}.terrain-tools button:last-child{grid-column:1/-1}.terrain-tools strong{font-size:10px}.terrain-tools small{color:var(--muted);font-size:8px}.terrain-dot{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border:2px solid rgba(255,255,255,.7);border-radius:9px;box-shadow:0 0 0 1px #d3cec5}.terrain-dot.road{background:#a89a86}.terrain-dot.dirt{background:#9b704e}.terrain-dot.grass{background:#79a767}.terrain-dot.water{background:linear-gradient(135deg,#69b7d5,#3f83ae)}.terrain-dot.erase{background:#ece9e2;color:#a05a4b;font-size:17px;font-weight:800}.brush-size-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.brush-size-grid button{display:grid;justify-items:center;gap:5px;padding:8px 4px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#666;font-size:8px}.brush-size-grid button i{color:#77887a;font-style:normal}.brush-size-grid button:nth-child(1) i{font-size:7px}.brush-size-grid button:nth-child(2) i{font-size:12px}.brush-size-grid button:nth-child(3) i{font-size:17px}.brush-size-grid button.on{border-color:#5e8e64;background:#edf6eb;color:#406946}.terrain-help{margin-top:14px;padding:12px;border-radius:12px;background:#20262c;color:#dfe5e8}.terrain-help b{font-size:9px;color:#8ed59a}.terrain-help p{margin:5px 0 9px;color:#b7c0c6;font-size:8px;line-height:1.6}.terrain-help div{display:flex;gap:5px;align-items:center;font-size:7px}.terrain-help kbd{padding:3px 5px;border:1px solid #56606a;border-radius:5px;background:#303840;color:#fff}.terrain-stats{display:flex;justify-content:space-between;margin-top:auto;padding:12px 2px 8px;color:var(--muted);font-size:9px}.terrain-stats strong{color:var(--ink)}.terrain-clear{padding:10px;border:1px solid #ddc7c0;border-radius:10px;background:#fff8f5;color:#a95340;font-size:9px;font-weight:750}.terrain-mode .viewport canvas{cursor:crosshair}.terrain-mode .selection-bar{opacity:.58}.terrain-mode .placement-tip{background:rgba(29,54,36,.9)}
.transform-modes{display:flex;gap:4px;padding:3px;border-radius:10px;background:#2a3037}.transform-modes button{height:31px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:#9ca5ad;font-size:8px;font-weight:750}.transform-modes button span{margin-right:3px;font-size:11px}.transform-modes button.on{background:#edf0ee;color:#29312d}.transform-modes button[data-transform-mode="rotate"].on{background:#fff0e7;color:#9d4c2f}.transform-dragging .viewport canvas{cursor:grabbing}.transform-dragging .selection-bar{box-shadow:0 0 0 2px rgba(101,205,133,.45),0 12px 36px rgba(0,0,0,.22)}@media(max-width:700px){.transform-modes button{font-size:0}.transform-modes button span{margin:0;font-size:14px}}
.terrain-stats span small{display:block;margin-top:3px;color:#a56942;font-size:7px;font-weight:700}
.scene-actions{grid-template-columns:repeat(4,1fr)}.scene-item.selected{border-color:#72a87d;background:#f1f8f1;box-shadow:inset 3px 0 #67a274}.scene-item.selected.on{border-color:var(--accent);background:#fff4ef;box-shadow:inset 3px 0 var(--accent)}.multi-select-btn{height:34px;padding:0 9px;border:1px solid #46505a;border-radius:9px;background:#2b3239;color:#aeb6bd;font-size:8px;font-weight:750}.multi-select-btn span{font-size:12px}.multi-select-btn.on{border-color:#70c989;background:#264c35;color:#a8efb9}.selection-bar.group-selection{box-shadow:0 0 0 2px rgba(100,192,124,.42),0 12px 36px rgba(0,0,0,.22)}@media(max-width:700px){.multi-select-btn{font-size:0}.multi-select-btn span{font-size:14px}}
.minimap-panel{position:absolute;z-index:14;top:79px;right:12px;width:184px;padding:8px;border:1px solid rgba(255,255,255,.17);border-radius:14px;background:rgba(20,24,29,.86);box-shadow:0 12px 32px rgba(0,0,0,.18);backdrop-filter:blur(15px);color:#fff;transition:right .22s,width .18s,opacity .18s}.minimap-panel.drawer-shift{right:354px}.minimap-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.minimap-head div{display:flex;align-items:baseline;gap:6px}.minimap-head small{color:#77cb8e;font:700 7px/1 "DM Sans",sans-serif;letter-spacing:1px}.minimap-head strong{font-size:9px}.minimap-head button{display:grid;place-items:center;width:23px;height:23px;border:0;border-radius:7px;background:#313840;color:#dce2e6;font-size:15px}.minimap-panel canvas{display:block;width:100%;height:auto;border:1px solid #46505a;border-radius:9px;background:#26302b;cursor:crosshair;outline:none}.minimap-panel canvas:focus{border-color:#82ce95;box-shadow:0 0 0 2px rgba(106,202,130,.25)}.minimap-foot{display:flex;align-items:center;gap:7px;margin-top:6px;color:#aeb6bc;font-size:7px}.minimap-foot span{display:flex;align-items:center;gap:3px}.minimap-foot output{margin-left:auto;color:#dce3e7;font:600 7px/1 "DM Sans",sans-serif}.map-key{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f29a57}.map-key.camera{background:#7ed898}.map-key.selected{background:#ff855f;box-shadow:0 0 0 1px #fff}.minimap-panel.collapsed{width:118px}.minimap-panel.collapsed canvas,.minimap-panel.collapsed .minimap-foot{display:none}.minimap-panel.collapsed .minimap-head{margin:0}.photo-mode .minimap-panel{display:none}
.game-drawer[data-panel="camera"]{overflow-y:auto}.camera-memory{flex:0 0 auto}.camera-slot-list{display:grid;gap:5px}.camera-slot{display:grid;grid-template-columns:1fr 52px 25px;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff}.camera-slot.active{border-color:#67a779;background:#f1f8f2;box-shadow:inset 3px 0 #67a779}.camera-slot-main{display:grid;grid-template-columns:24px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:6px;padding:3px;border:0;background:transparent;color:var(--ink);text-align:left}.camera-slot-main>span{grid-row:1/3;display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#2b3239;color:#fff;font:700 9px/1 "DM Sans",sans-serif}.camera-slot-main strong{font-size:8px}.camera-slot-main small{color:#8b9094;font-size:7px}.camera-slot-save,.camera-slot-delete{border:0;border-radius:7px;font-size:7px;font-weight:750}.camera-slot-save{background:#eeeae3;color:#555}.camera-slot-save:hover{background:#e1f0e3;color:#3f7149}.camera-slot-delete{background:#fff1ed;color:#b65d48}.camera-memory p{margin:7px 1px 0;color:#868b8f;font-size:7px;line-height:1.6}.camera-memory kbd{padding:2px 4px;border:1px solid #ccc6bc;border-radius:4px;background:#fff;color:#444}
@media(max-width:900px){.minimap-panel{top:119px;width:150px}.minimap-panel.drawer-shift{display:none}}@media(max-width:560px){.minimap-panel{right:7px;width:132px}.minimap-panel.collapsed{width:105px}.minimap-foot span{display:none}}
.house-card-wrap{position:relative;min-width:0}.house-card-wrap>.house-card{width:100%;height:100%}.asset-preview-trigger,.asset-favorite-toggle{position:absolute;z-index:2;top:5px;display:grid;place-items:center;width:23px;height:23px;padding:0;border:1px solid rgba(212,205,195,.9);border-radius:7px;background:rgba(255,255,255,.92);box-shadow:0 3px 9px rgba(35,38,41,.1);color:#687078;font-size:11px}.asset-preview-trigger{left:5px}.asset-favorite-toggle{right:5px}.asset-preview-trigger:hover{border-color:#6f9eae;background:#eef8fb;color:#376f82}.asset-favorite-toggle:hover,.asset-favorite-toggle.on{border-color:#e0a843;background:#fff6d9;color:#b87816}.house-category-tabs button span{display:inline-block;min-width:14px;margin-left:2px;padding:1px 4px;border-radius:999px;background:#ece8e1;color:#777;font:700 7px/1.4 "DM Sans",sans-serif}.house-category-tabs button.on span{background:#f1c1b2;color:#9e422e}
.model-preview{position:absolute;z-index:12;top:58px;right:9px;bottom:9px;left:9px;display:flex;flex-direction:column;padding:12px;border:1px solid rgba(255,255,255,.78);border-radius:15px;background:rgba(247,246,242,.98);box-shadow:0 16px 40px rgba(20,24,29,.2);backdrop-filter:blur(18px)}.model-preview[hidden]{display:none}.model-preview-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:9px}.model-preview-head small,.model-preview-head strong,.model-preview-head span{display:block}.model-preview-head small{color:var(--accent);font:700 7px/1 "DM Sans",sans-serif;letter-spacing:1px}.model-preview-head strong{margin-top:4px;font-size:15px}.model-preview-head span{margin-top:2px;color:#92979b;font:500 8px/1 "DM Sans",sans-serif}.model-preview-head button{width:31px;height:31px;border:0;border-radius:9px;background:#e9e5de;color:#656b70;font-size:18px}.model-preview-stage{position:relative;min-height:150px;flex:1;overflow:hidden;border:1px solid #d8d2c8;border-radius:12px;background:radial-gradient(circle at 50% 40%,#f5f2ea,#d9d4c9)}.model-preview-stage canvas{display:block;width:100%!important;height:100%!important;cursor:grab;touch-action:none}.model-preview-stage canvas:active{cursor:grabbing}.preview-loading{position:absolute;z-index:2;inset:0;display:grid;place-items:center;background:rgba(239,236,228,.86);color:#74797d;font-size:9px}.preview-loading[hidden]{display:none}.preview-drag-tip{position:absolute;z-index:3;bottom:7px;left:50%;padding:4px 8px;border-radius:999px;background:rgba(23,28,32,.72);color:#e7ebed;font-size:7px;pointer-events:none;transform:translateX(-50%)}.model-preview-meta{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px;border-radius:10px;background:#ece9e2}.model-preview-meta>span{display:grid;place-items:center;min-width:38px;height:27px;border-radius:7px;background:#293039;color:#fff;font:700 7px/1 "DM Sans",sans-serif}.model-preview-meta p{min-width:0;margin:0}.model-preview-meta strong,.model-preview-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-preview-meta strong{font-size:8px}.model-preview-meta small{margin-top:2px;color:#85898c;font-size:7px}.model-preview-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:6px;margin-top:8px}.model-preview-actions button{padding:10px 6px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#555;font-size:9px;font-weight:750}.model-preview-actions button.on{border-color:#e0a843;background:#fff6d9;color:#a96b0d}.model-preview-actions button.primary{border-color:var(--accent);background:var(--accent);color:#fff}
.environment-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.environment-head b{font-size:10px}.environment-head span{padding:3px 7px;border-radius:999px;background:#263039;color:#dce6e8;font-size:7px}.environment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.environment-grid button{display:grid;justify-items:center;gap:3px;padding:7px 2px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#5b6064}.environment-grid button span{font-size:16px}.environment-grid button strong{font-size:7px}.environment-grid button:hover,.environment-grid button.on{border-color:#d57855;background:#fff3ed;color:#a94a32;box-shadow:0 4px 12px rgba(187,90,58,.1)}.weather-strength{margin:8px 0 12px;padding:7px 9px;border-radius:9px;background:#eae7e0}.weather-strength label{display:flex;justify-content:space-between;color:#5c6165;font-size:8px}.weather-strength output{color:var(--accent);font-weight:750}.weather-strength input{width:100%;height:4px;margin:7px 0 2px;accent-color:#708fa5}
.terrain-height-section{padding-top:10px}.height-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.height-tool-grid button{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:3px;padding:8px 5px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#666}.height-tool-grid button span{font-size:10px}.height-tool-grid button strong{font-size:8px}.height-tool-grid button:hover,.height-tool-grid button.on{border-color:#9b7555;background:#f7efe7;color:#795437;box-shadow:0 4px 12px rgba(112,79,48,.1)}.height-target{margin-top:7px;padding:7px 8px;border-radius:9px;background:#ece8e1}.height-target label{display:flex;justify-content:space-between;color:#666;font-size:7px}.height-target output{color:#8c5d36;font-weight:750}.height-target input{width:100%;height:4px;margin-top:6px;accent-color:#9c714f}.terrain-stats>span:nth-child(2){text-align:center}.terrain-stats>span:nth-child(2) small{color:#5e7c61}.terrain-mode.height-edit .viewport canvas{cursor:ns-resize}.terrain-mode.height-edit .placement-tip{background:rgba(73,54,36,.92)}
.npc-drawer{overflow-y:auto}.npc-asset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.npc-asset-card{display:grid;justify-items:center;gap:3px;min-width:0;padding:7px 3px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#555}.npc-asset-card:hover{border-color:#6b9b78;background:#f1f8f2;color:#416a4b}.npc-asset-card span{font-size:20px}.npc-asset-card strong{max-width:100%;overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.npc-selected{display:flex;align-items:center;gap:8px;margin-top:11px;padding:8px;border:1px solid #d8d3ca;border-radius:11px;background:#ece9e2}.npc-selected>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#2d343b;font-size:18px}.npc-selected small,.npc-selected strong{display:block}.npc-selected small{color:#888d91;font-size:7px}.npc-selected strong{margin-top:2px;font-size:9px}.npc-path-actions{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:5px}.npc-path-actions button{padding:8px 3px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#555;font-size:7px;font-weight:750}.npc-path-actions button.on{border-color:#61a774;background:#eaf6ed;color:#397348}.npc-play{width:100%;padding:10px;border:0;border-radius:9px;background:#293139;color:#fff;font-size:9px;font-weight:800}.npc-play.on{background:#b65d42}.npc-help{margin-top:auto;padding:11px;border-radius:11px;background:#20272d;color:#dce3e6}.npc-help b{color:#81d194;font-size:8px}.npc-help p{margin:5px 0 8px;color:#abb5bb;font-size:7px;line-height:1.55}.npc-help div{display:flex;align-items:center;gap:5px;font-size:7px}.npc-help kbd{padding:3px 5px;border:1px solid #56616a;border-radius:5px;background:#303940;color:#fff}.npc-path-mode .viewport canvas{cursor:crosshair}.npc-path-mode .placement-tip{background:rgba(35,77,47,.94)}.npc-path-mode .selection-bar{opacity:.58}
.scene-drawer{overflow-y:auto}.alignment-section,.snap-section{padding-top:10px}.align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.align-grid button{display:grid;justify-items:center;gap:2px;padding:7px 3px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#59626a;font-size:14px;font-weight:800}.align-grid button small{font-size:7px;font-weight:650}.align-grid button:hover,.distribute-grid button:hover,.snap-now-grid button:hover{border-color:#70a27a;background:#f0f7f1;color:#3f714a}.distribute-grid,.snap-now-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:5px}.distribute-grid button,.snap-now-grid button{padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#59626a;font-size:8px;font-weight:750}.alignment-section button:disabled{opacity:.38}.snap-section>label{display:block;margin:8px 0 4px;color:#85898c;font-size:7px}.snap-option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.snap-option-grid button{padding:7px 2px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#6d7174;font-size:8px;font-weight:750}.snap-option-grid button.on{border-color:#72a47d;background:#eaf4ec;color:#3e7149}.object-magnet-toggle{margin-top:7px}.snap-now-grid button{background:#f7f6f2}
.prop-brush-panel{margin-bottom:8px;padding:6px;border:1px solid #d7d2c8;border-radius:11px;background:#ebe8e1}.prop-brush-toggle{display:flex;align-items:center;gap:7px;width:100%;padding:4px;border:0;background:transparent;color:#555;text-align:left}.prop-brush-toggle>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fff;color:#6d8e71;font-size:15px}.prop-brush-toggle div{min-width:0;flex:1}.prop-brush-toggle strong,.prop-brush-toggle small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-brush-toggle strong{font-size:9px}.prop-brush-toggle small{margin-top:2px;color:#858a8d;font-size:7px}.prop-brush-toggle i{font-style:normal}.prop-brush-panel.on{border-color:#6f9e78;background:#eaf4eb;box-shadow:0 4px 13px rgba(76,119,84,.1)}.prop-brush-options{display:none;padding:6px 3px 2px;border-top:1px solid rgba(106,124,108,.18)}.prop-brush-panel.on .prop-brush-options{display:block}.brush-option{margin-top:5px}.brush-option label{display:flex;justify-content:space-between;color:#666;font-size:7px}.brush-option output{color:#47714f;font-weight:750}.brush-option input{width:100%;height:4px;margin:4px 0 0;accent-color:#6f9f77}.prop-collision-toggle{margin-top:4px;font-size:8px}.prop-brush-mode .viewport canvas{cursor:crosshair}.prop-brush-mode .placement-tip{background:rgba(37,79,48,.94)}.prop-brush-mode .selection-bar{opacity:.5;pointer-events:none}
.region-template-section{padding-top:10px}.region-copy-actions{display:grid;grid-template-columns:1.25fr 1fr;gap:5px}.region-copy-actions button,.region-save-row button{padding:8px 5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#535b61;font-size:8px;font-weight:750}.region-copy-actions button:first-child{border-color:#77a27f;background:#edf6ee;color:#416d49}.region-copy-actions button:last-child:not(:disabled),.region-save-row button:not(:disabled){border-color:#b86a4c;background:#fff2ec;color:#9b4e36}.region-terrain-toggle{margin-top:6px}.region-save-row{display:grid;grid-template-columns:1fr 54px;gap:5px;margin-top:6px}.region-save-row input{min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:600 8px/1 "Noto Sans KR",sans-serif;outline:none}.region-save-row input:focus{border-color:#78a582;box-shadow:0 0 0 2px rgba(101,156,113,.14)}.region-template-list{display:grid;gap:5px;margin-top:7px}.region-template-empty{margin:0;padding:9px;border:1px dashed #d0cbc2;border-radius:8px;color:#8b9093;text-align:center;font-size:7px}.region-template-item{display:grid;grid-template-columns:1fr 27px;gap:4px;padding:4px;border:1px solid var(--line);border-radius:9px;background:#fff}.region-template-load{display:grid;grid-template-columns:25px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:6px;padding:2px;border:0;background:transparent;color:var(--ink);text-align:left}.region-template-load>span{grid-row:1/3;display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#2d353c;color:#8fe09e;font-size:12px}.region-template-load strong,.region-template-load small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-template-load strong{font-size:8px}.region-template-load small{color:#898e92;font-size:7px}.region-template-delete{border:0;border-radius:7px;background:#fff0eb;color:#b45b45;font-size:12px}.region-template-help{margin:6px 1px 0;color:#858a8e;font-size:7px}.region-template-help kbd{padding:2px 4px;border:1px solid #ccc7bd;border-radius:4px;background:#fff;color:#555}
.measurement-section{padding-top:10px}.measurement-metrics,.measurement-distance{display:grid;gap:5px}.measurement-metrics{grid-template-columns:repeat(3,1fr)}.measurement-distance{grid-template-columns:1fr 1fr;margin-top:5px}.measurement-metrics>div,.measurement-distance>div{display:grid;gap:3px;padding:8px 6px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(145deg,#fff,#f5f3ee)}.measurement-metrics small,.measurement-distance small{color:#8a8f92;font-size:7px}.measurement-metrics output,.measurement-distance output{color:#31383e;font:800 11px/1 "DM Sans",sans-serif}.measurement-distance output{color:#4d7357;font-size:10px}.measurement-toggle{margin-top:6px}.guide-clearance{margin-top:7px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff}.guide-clearance label{display:flex;justify-content:space-between;margin-bottom:6px;color:#656b70;font-size:8px;font-weight:700}.guide-clearance output{color:#c65f43}.guide-clearance input{width:100%;height:4px;accent-color:#6ca67a}.clearance-status{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:7px;margin-top:6px;padding:7px;border:1px solid #d7e4d9;border-radius:9px;background:#f1f8f2;color:#477052}.clearance-status>span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#dcecdf;font-size:13px}.clearance-status p,.clearance-status strong,.clearance-status small{display:block;margin:0}.clearance-status strong{font-size:8px}.clearance-status small{margin-top:2px;color:#7b8580;font-size:7px;line-height:1.35}.clearance-status.warning{border-color:#e5b7a8;background:#fff1ec;color:#a24e38}.clearance-status.warning>span{background:#f7d8cd}.measure-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.measure-actions button{padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#59626a;font-size:8px;font-weight:750}.measure-actions button:hover:not(:disabled){border-color:#70a27a;background:#f0f7f1;color:#3f714a}.measure-actions button:disabled{opacity:.38}.measurement-help{margin:7px 1px 0;color:#858a8e;font-size:7px;line-height:1.55}
.checkpoint-section{margin-bottom:11px;padding:10px;border:1px solid #d9d4ca;border-radius:12px;background:linear-gradient(150deg,#f1f4f1,#ebe8e1)}.checkpoint-head{display:flex;align-items:center;justify-content:space-between}.checkpoint-head small,.checkpoint-head strong{display:block}.checkpoint-head small{color:#5f8e69;font:750 7px/1 "DM Sans",sans-serif;letter-spacing:.9px}.checkpoint-head strong{margin-top:4px;font-size:10px}.checkpoint-head>span{padding:4px 6px;border-radius:999px;background:#fff;color:#72787b;font-size:7px}.checkpoint-create{display:grid;grid-template-columns:1fr 58px;gap:5px;margin-top:8px}.checkpoint-create input{min-width:0;height:31px;padding:0 8px;border:1px solid #d6d0c6;border-radius:8px;background:#fff;color:var(--ink);font-size:8px;outline:none}.checkpoint-create input:focus{border-color:#6d9d77;box-shadow:0 0 0 2px rgba(95,148,107,.13)}.checkpoint-create button{border:0;border-radius:8px;background:#486d51;color:#fff;font-size:8px;font-weight:800}.checkpoint-auto-toggle{margin-top:5px;padding:6px 2px}.checkpoint-auto-toggle>span:first-child{text-align:left}.checkpoint-auto-toggle strong,.checkpoint-auto-toggle small{display:block}.checkpoint-auto-toggle strong{font-size:8px}.checkpoint-auto-toggle small{margin-top:2px;color:#8b9092;font-size:7px;font-weight:500}.checkpoint-list{display:grid;gap:5px;max-height:220px;margin-top:6px;overflow-y:auto;scrollbar-width:thin}.checkpoint-empty{margin:0;padding:13px 7px;border:1px dashed #c9c5bd;border-radius:9px;background:rgba(255,255,255,.55);color:#83888b;text-align:center;font-size:7px;line-height:1.5}.checkpoint-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:6px;padding:5px;border:1px solid #d9d4ca;border-radius:9px;background:#fff}.checkpoint-item.auto{background:#f7f8f5}.checkpoint-icon{grid-row:1/3;display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#28322d;color:#d4efda;font-size:13px}.checkpoint-item.auto .checkpoint-icon{background:#e7ece7;color:#577660}.checkpoint-body{min-width:0}.checkpoint-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px}.checkpoint-title-row input{min-width:0;padding:2px 4px;border:1px solid transparent;border-radius:5px;background:transparent;color:#30363a;font-size:8px;font-weight:750;outline:none}.checkpoint-title-row input:focus{border-color:#a8b9aa;background:#fff}.checkpoint-kind{padding:3px 4px;border-radius:999px;background:#eaf1eb;color:#50705a;font-size:6px;font-weight:800}.checkpoint-meta{display:block;margin:2px 4px 0;overflow:hidden;color:#8b9093;font-size:6.5px;text-overflow:ellipsis;white-space:nowrap}.checkpoint-actions{grid-column:2;display:grid;grid-template-columns:1fr auto auto;gap:4px}.checkpoint-actions button{height:24px;padding:0 7px;border:1px solid #ddd8cf;border-radius:6px;background:#fff;color:#5e666a;font-size:7px;font-weight:750}.checkpoint-actions .restore{border-color:#87a78e;background:#edf5ee;color:#42694b}.checkpoint-actions .keep{color:#7c6641}.checkpoint-actions .delete{width:25px;padding:0;color:#a65a48}.checkpoint-actions .delete.confirm{width:auto;border-color:#cc6b54;background:#fff0eb;color:#a84431}.checkpoint-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;color:#858a8d;font-size:6.5px}.checkpoint-foot button{padding:3px 5px;border:0;background:transparent;color:#9a6659;font-size:6.5px}.checkpoint-foot button.confirm{border-radius:5px;background:#fff0eb;color:#a64330}.checkpoint-section.busy{pointer-events:none;opacity:.65}
.local-zone-section{padding-top:10px}.local-zone-intro{margin:0 0 7px;color:#858b8e;font-size:7px;line-height:1.5}.local-zone-presets{display:grid;grid-template-columns:1fr 1fr;gap:5px}.local-zone-presets button{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:5px;padding:7px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#4f575c;text-align:left}.local-zone-presets button:hover{border-color:#8d8bc2;background:#f5f3fb}.local-zone-presets span{grid-row:1;display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#f0ede8;font-size:12px}.local-zone-presets strong{font-size:8px}.local-zone-list{display:flex;gap:5px;margin-top:7px;overflow-x:auto;scrollbar-width:thin}.local-zone-empty{width:100%;margin:0;padding:9px;border:1px dashed #cfcbc3;border-radius:8px;color:#8b9092;text-align:center;font-size:7px}.local-zone-card{position:relative;flex:0 0 76px;min-width:0;padding:6px;border:1px solid #d8d3ca;border-radius:9px;background:#fff;color:#50575c;text-align:left}.local-zone-card.on{border-color:#8d7fc4;background:#f5f1ff;box-shadow:inset 0 0 0 1px #b6a7e4}.local-zone-card.off{opacity:.55}.local-zone-card i{display:block;width:10px;height:10px;margin-bottom:5px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #bcb7ae}.local-zone-card strong,.local-zone-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.local-zone-card strong{font-size:7px}.local-zone-card small{margin-top:2px;color:#929699;font-size:6px}.local-zone-editor{margin-top:7px;padding:8px;border:1px solid #d7d1c7;border-radius:10px;background:#f8f7f3}.local-zone-editor[hidden]{display:none}.local-zone-name-row{display:grid;grid-template-columns:1fr 42px;gap:5px}.local-zone-name-row>input{min-width:0;height:31px;padding:0 8px;border:1px solid #d6d0c6;border-radius:8px;background:#fff;font-size:8px;font-weight:700;outline:none}.local-zone-name-row>label{display:grid;grid-template-columns:auto 20px;align-items:center;gap:3px;padding:0 5px;border:1px solid #d6d0c6;border-radius:8px;background:#fff;color:#777;font-size:6px}.local-zone-name-row input[type=color]{width:20px;height:22px;padding:1px;border:0;background:transparent}.zone-position-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.local-zone-editor .range-row{margin-top:8px}.local-zone-editor .toggle{padding:6px 2px}.local-zone-actions{display:grid;grid-template-columns:1.4fr .7fr .7fr;gap:4px;margin-top:5px}.local-zone-actions button{padding:7px 3px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#5a6267;font-size:7px;font-weight:750}.local-zone-actions button:hover{border-color:#887bb8;background:#f3f0fa}.local-zone-actions .danger{color:#a35443}.local-zone-actions button:disabled{opacity:.38}
.time-flow-section{position:relative;padding-top:10px}.time-clock{display:flex;align-items:center;gap:9px;margin-bottom:6px;padding:8px 10px;border:1px solid #d4d7dc;border-radius:10px;background:linear-gradient(135deg,#293542,#465366);color:#fff}.time-clock>span{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:rgba(255,255,255,.13);font-size:18px}.time-clock output,.time-clock small{display:block}.time-clock output{font:800 18px/1 "DM Sans",sans-serif;letter-spacing:.5px}.time-clock small{margin-top:3px;color:#c9d2db;font-size:7px}.time-slider{width:100%;height:5px;accent-color:#d8834f}.time-ticks{display:flex;justify-content:space-between;margin:2px 1px 7px;color:#94999d;font:600 6px/1 "DM Sans",sans-serif}.time-play-actions{display:grid;grid-template-columns:1fr 54px;gap:5px}.time-play-actions button{padding:9px 5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#565d62;font-size:8px;font-weight:800}.time-play-actions button:first-child{border-color:#627d95;background:#edf3f7;color:#405c73}.time-play-actions button.on{border-color:#d46d49;background:#fff0e8;color:#a94c31}.time-speed-label{display:flex;justify-content:space-between;margin:8px 1px 4px;color:#777d81;font-size:7px}.time-speed-label output{color:#ae6042;font-weight:800}.time-speed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.time-speed-grid button{display:grid;justify-items:center;gap:2px;padding:6px 2px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#666;font-size:8px;font-weight:750}.time-speed-grid button small{color:#999;font:600 6px/1 "DM Sans",sans-serif}.time-speed-grid button.on{border-color:#6d879d;background:#edf3f7;color:#3f5c74}.time-loop-toggle{margin-top:6px}.time-record{width:100%;margin-top:6px;padding:9px;border:0;border-radius:9px;background:#2d333a;color:#fff;font-size:8px;font-weight:800}.time-record span{display:inline-block;margin-right:4px;color:#ed695d}.time-record.recording{background:#9e493a}.time-record.recording span{color:#fff;animation:time-pulse 1s ease-in-out infinite}.time-record-track{height:4px;margin-top:5px;overflow:hidden;border-radius:999px;background:#dedbd4}.time-record-track span{display:block;width:0;height:100%;border-radius:inherit;background:#dc6d50;transition:width .12s linear}.time-flow-help{margin:6px 1px 0;color:#898e92;font-size:7px;line-height:1.55}@keyframes time-pulse{50%{opacity:.25;transform:scale(.78)}}
.time-recording .viewport canvas,.time-recording .minimap-panel{pointer-events:none}.time-recording .environment-grid,.time-recording .weather-strength,.time-recording .view-grid,.time-recording .projection-section,.time-recording .camera-lens-row,.time-recording .camera-memory,.time-recording .sun-section{opacity:.48;pointer-events:none}
.layer-organizer{margin-bottom:7px;padding:7px;border:1px solid #d8d3ca;border-radius:11px;background:#ece9e2}.layer-name-row,.folder-create-row,.folder-assign-row{display:grid;grid-template-columns:minmax(0,1fr) 66px;gap:5px}.folder-create-row,.folder-assign-row{margin-top:5px}.layer-organizer input,.layer-organizer select{min-width:0;height:30px;padding:0 8px;border:1px solid #d2ccc2;border-radius:8px;background:#fff;color:#4e555a;font:600 8px/1 "Noto Sans KR",sans-serif;outline:none}.layer-organizer input:focus,.layer-organizer select:focus{border-color:#719a7a;box-shadow:0 0 0 2px rgba(91,145,103,.13)}.layer-organizer button{border:1px solid #d0cac0;border-radius:8px;background:#fff;color:#555d62;font-size:7px;font-weight:800}.layer-organizer button:not(:disabled):hover{border-color:#72a27c;background:#edf6ee;color:#416c49}.layer-organizer>p{display:flex;justify-content:space-between;margin:6px 2px 0;color:#858a8e;font-size:6px}.layer-organizer>p b{font-weight:650}.layer-folder-block{display:grid;gap:4px}.layer-folder-head{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:4px;padding:4px;border:1px solid #d0cbc2;border-radius:9px;background:#dedbd4}.layer-folder-head.ungrouped{grid-template-columns:25px minmax(0,1fr) auto;background:#ebe8e2}.layer-folder-toggle{display:grid;place-items:center;width:25px;height:25px;padding:0;border:0;border-radius:7px;background:#2e363d;color:#9ce4a8;font-size:11px}.layer-folder-name{min-width:0;height:25px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:#43494e;font-size:8px;font-weight:800;outline:none}.layer-folder-name:hover,.layer-folder-name:focus{border-color:#c2bcb2;background:#fff}.layer-folder-meta{display:flex;align-items:center;gap:3px}.layer-folder-count{min-width:19px;color:#7d8387;text-align:center;font:700 7px/1 "DM Sans",sans-serif}.folder-action{display:grid;place-items:center;width:23px;height:23px;padding:0;border:1px solid #cbc5bb;border-radius:6px;background:#fff;color:#747a7e;font-size:10px}.folder-action.on{border-color:#76a480;background:#eaf4eb;color:#426d4a}.folder-action.lock.on{border-color:#c9945d;background:#fff0dc;color:#905820}.folder-action.delete{border-color:#e1c5bb;background:#fff0eb;color:#b65d47}.layer-folder-items{display:grid;gap:4px;padding-left:9px;border-left:2px solid #d9d5cd}.layer-folder-block.collapsed .layer-folder-items{display:none}.layer-folder-block.folder-hidden .layer-folder-head,.layer-folder-block.folder-locked .layer-folder-head{opacity:.68}.layer-folder-block .scene-item{margin-left:0}.scene-item.folder-protected{opacity:.58}.scene-item.folder-protected .scene-item-main{cursor:not-allowed}.scene-item.folder-hidden .scene-item-main strong{text-decoration:line-through}
.layer-folder-empty{margin:0;padding:7px;border:1px dashed #d6d1c8;border-radius:7px;color:#969a9d;text-align:center;font-size:7px}
.layer-folder-head>strong{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}

/* Photo framing and non-AI camera effects */
.camera-effect-overlay{position:absolute;z-index:2;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .16s}.camera-effect-overlay:before,.camera-effect-overlay:after{content:"";position:absolute;inset:0;pointer-events:none}.camera-frame-guide{position:absolute;z-index:10;left:50%;top:50%;display:none;pointer-events:none;border:1px solid rgba(255,255,255,.96);box-shadow:0 0 0 1px rgba(15,19,23,.72),0 0 0 9999px rgba(12,16,20,.34);transform:translate(-50%,-50%);transition:width .18s,height .18s,left .18s}.frame-guide-mode:not(.photo-mode) .camera-frame-guide{display:block}.camera-frame-guide i{position:absolute;width:28px;height:28px;border-color:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.8))}.camera-frame-guide i:nth-child(1){top:-2px;left:-2px;border-top:3px solid;border-left:3px solid}.camera-frame-guide i:nth-child(2){top:-2px;right:-2px;border-top:3px solid;border-right:3px solid}.camera-frame-guide i:nth-child(3){right:-2px;bottom:-2px;border-right:3px solid;border-bottom:3px solid}.camera-frame-guide i:nth-child(4){bottom:-2px;left:-2px;border-bottom:3px solid;border-left:3px solid}.camera-frame-guide b{position:absolute;top:10px;left:50%;padding:5px 9px;border-radius:999px;background:rgba(15,19,23,.78);color:#fff;font:700 8px/1 "DM Sans",sans-serif;letter-spacing:.3px;white-space:nowrap;transform:translateX(-50%)}
.photo-mode #frame{inset:auto!important;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(0,0,0,.42),0 18px 60px rgba(0,0,0,.22)}.photo-mode #frame[data-ratio="portrait"]{width:min(92vw,65.05vh);height:min(92vh,130.1vw)}.photo-mode #frame[data-ratio="square"]{width:min(92vw,92vh);height:min(92vw,92vh)}.photo-mode #frame[data-ratio="wide"]{width:min(92vw,130.1vh);height:min(92vh,65.05vw)}
.frame-section .option-btn small{display:block;margin-top:2px;color:#92969a;font:600 7px/1 "DM Sans",sans-serif}.effect-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.effect-option{display:flex;align-items:center;gap:7px;min-width:0;padding:6px 7px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#555;font-size:8px;font-weight:700;text-align:left}.effect-option>span{display:grid;place-items:center;flex:0 0 27px;width:27px;height:24px;border-radius:6px;background:#ece9e3;color:#4d555d;font:800 7px/1 "DM Sans",sans-serif}.effect-option:hover,.effect-option.on{border-color:var(--accent);background:#fff2ed;color:#ad4933}.effect-option.on>span{background:var(--accent);color:#fff}.effect-help{margin:7px 1px 0;color:#858a8e;font-size:7px;line-height:1.55}
body[data-camera-effect="electron"] .camera-effect-overlay{opacity:.4;background:repeating-linear-gradient(0deg,rgba(2,13,9,.5) 0 1px,transparent 1px 4px);mix-blend-mode:multiply}body[data-camera-effect="electron"] .camera-effect-overlay:after{background:linear-gradient(90deg,rgba(0,255,147,.07),transparent 35%,rgba(0,222,255,.08))}
body[data-camera-effect="slash"] .camera-effect-overlay{opacity:.3;background:repeating-linear-gradient(118deg,transparent 0 10px,rgba(12,18,24,.62) 10px 12px,rgba(255,255,255,.12) 12px 13px);mix-blend-mode:multiply}
body[data-camera-effect="halftone"] .camera-effect-overlay{opacity:.22;background:radial-gradient(circle,rgba(18,20,24,.88) 0 1px,transparent 1.3px);background-size:5px 5px;mix-blend-mode:multiply}
body[data-camera-effect="vhs"] .camera-effect-overlay{opacity:.32;background:repeating-linear-gradient(0deg,rgba(20,12,32,.48) 0 1px,transparent 1px 4px);mix-blend-mode:multiply}body[data-camera-effect="vhs"] .camera-effect-overlay:after{top:41%;height:8%;background:linear-gradient(0deg,transparent,rgba(255,255,255,.22),transparent);filter:blur(2px)}
body[data-camera-effect="glitch"] .camera-effect-overlay{opacity:.24;background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,0,72,.2) 31px 33px,rgba(0,220,255,.22) 33px 35px)}
body[data-camera-effect="grain"] .camera-effect-overlay,body[data-camera-effect="disposable"] .camera-effect-overlay,body[data-camera-effect="bleach"] .camera-effect-overlay{opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
body[data-camera-effect="pixel8"] .viewport canvas{image-rendering:pixelated}body[data-camera-effect="cyber"] .camera-effect-overlay,body[data-camera-effect="vaporwave"] .camera-effect-overlay{opacity:.14;background:linear-gradient(135deg,rgba(0,230,255,.7),transparent 45%,rgba(255,0,164,.72));mix-blend-mode:screen}
@media(max-width:560px){.camera-frame-guide b{top:7px}.effect-option{padding:6px 5px}.effect-option>span{flex-basis:24px;width:24px}}
