:root{--bg-app: #1b1b1b;--bg-panel: #2a2a2a;--bg-panel-alt: #242424;--bg-header: linear-gradient(#404040, #333333);--bg-input: #171717;--bg-button: linear-gradient(#4b4b4b, #343434);--bg-button-hover: linear-gradient(#585858, #3e3e3e);--border-dark: #141414;--border-light: #4a4a4a;--text: #c8c8c8;--text-dim: #8a8a8a;--accent: #ffa800;--select: #3a5a80}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-app);color:var(--text);font-family:Segoe UI,Malgun Gothic,sans-serif;font-size:12px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}*,*:before,*:after{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}button{font-family:inherit;color:var(--text);cursor:pointer;touch-action:manipulation}#editor{display:flex;flex-direction:column;height:100vh}#menubar,#toolbar,#statusbar{flex-shrink:0}#workspace{flex:1;display:flex;min-height:0}.dock{min-width:0;min-height:0;flex-shrink:0;overflow:hidden;background:var(--bg-app)}.dock-v{display:flex;flex-direction:column}.dock-h{display:flex;flex-direction:row;border-top:1px solid var(--border-dark)}.dock .panel{flex-grow:1;flex-shrink:1;flex-basis:0;min-height:60px;min-width:60px}.dock.drop-target{outline:2px dashed var(--accent);outline-offset:-2px}.splitter{flex-shrink:0;background:var(--border-dark);z-index:5;touch-action:none}.splitter-v{width:5px;cursor:col-resize}.splitter-h{height:5px;cursor:row-resize}.splitter:hover,.splitter:active,.dock-inner-splitter:hover,.dock-inner-splitter:active{background:var(--accent)}.dock-inner-splitter{flex-shrink:0;background:var(--border-dark);touch-action:none}.panel-header{cursor:grab}.panel-header .panel-title{pointer-events:none}.dock-ghost{position:fixed;z-index:3000;background:var(--select);color:#fff;border:1px solid var(--accent);padding:4px 12px;font-size:11px;border-radius:2px;pointer-events:none;box-shadow:0 4px 12px #0009}body.dock-dragging{cursor:grabbing}body.dock-dragging *{user-select:none!important}#menubar{display:flex;align-items:center;background:linear-gradient(#3c3c3c,#2c2c2c);border-bottom:1px solid var(--border-dark);padding:0 6px;gap:2px}.app-logo{color:var(--accent);font-size:13px;margin-right:8px}.menu-item{background:none;border:none;padding:4px 10px;font-size:12px}.menu-item:hover{background:var(--select);color:#fff}.menubar-title{margin-left:auto;color:var(--text-dim);font-size:11px;padding-right:8px}#toolbar{display:flex;align-items:center;gap:4px;background:linear-gradient(#383838,#2e2e2e);border-bottom:1px solid var(--border-dark);padding:0 8px}.tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-button);border:1px solid var(--border-dark);border-radius:2px;min-width:52px;height:32px;font-size:10px;line-height:1.1;padding:2px 6px}.tool-btn:hover{background:var(--bg-button-hover);border-color:var(--accent)}.tool-btn.accent{color:#9fe28f}.tool-btn.small{min-width:40px;height:24px;flex-direction:row}.tool-btn.active{border-color:var(--accent);color:var(--accent)}.tool-icon{font-size:12px}.tool-sep{width:1px;height:26px;background:var(--border-dark);border-right:1px solid var(--border-light);margin:0 4px}.tool-spacer{flex:1}#gizmo-modes,#snap-modes{display:flex;gap:2px}#snap-modes .tool-btn.active{color:#7fe0ff}.panel{display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border-dark);min-height:0}.panel-header{display:flex;align-items:center;justify-content:space-between;background:var(--bg-header);border-bottom:1px solid var(--border-dark);padding:4px 8px;font-size:11px;font-weight:600;color:#e0e0e0;flex-shrink:0}.panel-body{flex:1;overflow-y:auto;min-height:0}#viewport-wrap{position:relative;display:flex;flex-direction:column;border:1px solid var(--border-dark);min-width:0;min-height:0;flex:1}#drop-overlay{position:absolute;inset:30px 8px 8px;border:2px dashed var(--accent);border-radius:4px;background:#ffa80014;display:none;align-items:center;justify-content:center;color:var(--accent);font-size:14px;pointer-events:none;z-index:20}#viewport-wrap.drag-over #drop-overlay{display:flex}#viewport-tabbar{display:flex;align-items:center;background:linear-gradient(#353535,#2b2b2b);border-bottom:1px solid var(--border-dark);height:24px;padding:0 4px;gap:8px}.vp-tab{background:linear-gradient(#4a4a4a,#383838);border:1px solid var(--border-dark);border-bottom:none;border-radius:3px 3px 0 0;padding:3px 14px;font-size:11px;margin-top:4px}.vp-tab.active{color:var(--accent)}.vp-hint{color:var(--text-dim);font-size:10px;margin-left:auto;padding-right:6px}#viewport{flex:1;position:relative;min-height:0;background:#101216}#viewport canvas{display:block;width:100%!important;height:100%!important;outline:none}#viewport-overlay{position:absolute;top:32px;left:8px;pointer-events:none;font-size:10px;color:#9adf6b;text-shadow:0 1px 2px #000;line-height:1.5;white-space:pre}.place-item{display:flex;align-items:center;gap:8px;width:100%;background:var(--bg-panel-alt);border:1px solid var(--border-dark);padding:8px;margin:4px 6px;width:calc(100% - 12px);text-align:left;border-radius:2px}.place-item:hover{border-color:var(--accent);background:#33363c}.place-icon{font-size:16px;width:22px;text-align:center}.place-label b{display:block;font-size:11px;color:#e8e8e8}.place-label span{font-size:10px;color:var(--text-dim)}.outliner-row{display:flex;align-items:center;gap:6px;padding:3px 8px;cursor:pointer;border-bottom:1px solid #222}.outliner-row:hover{background:#33363c}.outliner-row.selected{background:var(--select);color:#fff}.outliner-row .row-type{margin-left:auto;color:var(--text-dim);font-size:10px}.outliner-row.selected .row-type{color:#cfe3ff}.eye-btn{background:none;border:none;font-size:11px;opacity:.8}.detail-section{border-bottom:1px solid var(--border-dark);padding:6px 8px}.detail-section>.section-title{font-size:10px;font-weight:700;color:var(--text-dim);text-transform:uppercase;margin-bottom:4px}.prop-row{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:4px;margin:3px 0}.prop-row label{color:var(--text-dim);font-size:11px}.prop-row input,.prop-row select,.prop-row textarea{background:var(--bg-input);border:1px solid var(--border-dark);color:var(--text);padding:3px 6px;font-size:11px;border-radius:2px;width:100%;font-family:inherit}.prop-row input:focus{outline:none;border-color:var(--accent)}.vec3-row{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.vec3-row input{width:100%}.axis-x{border-left:3px solid #c0392b!important}.axis-y{border-left:3px solid #27ae60!important}.axis-z{border-left:3px solid #2980b9!important}.detail-empty{padding:16px;color:var(--text-dim);text-align:center}.danger-btn{width:calc(100% - 16px);margin:8px;background:linear-gradient(#6e3030,#4a2020);border:1px solid var(--border-dark);padding:6px;border-radius:2px}.danger-btn:hover{border-color:#f66}.pfx-slider{display:flex;align-items:center;gap:8px}.pfx-slider input[type=range]{flex:1;height:4px;appearance:none;background:#17191d;border:1px solid var(--border-dark);border-radius:2px;padding:0}.pfx-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:16px;background:linear-gradient(#5a5a5a,#3a3a3a);border:1px solid var(--border-dark);border-radius:2px;cursor:ew-resize}.pfx-slider input[type=range]::-webkit-slider-thumb:hover{border-color:var(--accent)}.pfx-value{width:42px;text-align:right;color:#9adf6b;font-size:10px;font-family:Consolas,monospace}.thumb-gallery-header{display:flex;align-items:center;justify-content:space-between;margin:6px 0 4px;color:var(--text-dim);font-size:10px}.thumb-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:4px}.thumb-gallery-item{position:relative;aspect-ratio:1;background:var(--bg-input);border:1px solid var(--border-dark);border-radius:3px;overflow:hidden}.thumb-gallery-item img{width:100%;height:100%;object-fit:cover}.thumb-del{position:absolute;top:1px;right:1px;background:#000000b3;border:none;color:#f88;font-size:9px;border-radius:2px;padding:1px 4px;display:none}.thumb-gallery-item:hover .thumb-del{display:block}.thumb-drop{position:relative;margin:4px 0;height:92px;border:1px dashed var(--border-light);border-radius:3px;background:var(--bg-input);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}.thumb-drop:hover,.thumb-drop.over{border-color:var(--accent)}.thumb-drop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}.thumb-drop-hint{position:relative;z-index:1;text-align:center;color:var(--text-dim);font-size:10px;line-height:1.6;text-shadow:0 1px 2px #000;pointer-events:none}.thumb-drop img+.thumb-drop-hint,.thumb-drop:has(img) .thumb-drop-hint{opacity:0}.thumb-drop:hover .thumb-drop-hint{opacity:1;background:#0000008c;border-radius:3px;padding:4px 8px}.lod-badge{display:inline-block;background:#1e3a1e;color:#9adf6b;border:1px solid #2f5f2f;border-radius:2px;padding:1px 6px;font-size:10px}.cb-body{display:flex;overflow:hidden;padding:0}.cb-body.cb-layout{align-items:stretch}.cb-tree{width:170px;flex-shrink:0;border-right:1px solid var(--border-dark);background:var(--bg-panel-alt);overflow-y:auto;padding:4px 0}.cb-folder{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;cursor:pointer;font-size:11px;color:var(--text)}.cb-folder:hover{background:#33363c}.cb-folder.selected{background:var(--select);color:#fff}.cb-folder.drop{outline:1px dashed var(--accent);outline-offset:-1px}.cb-folder.cb-root{font-weight:700;color:#e8e8e8;cursor:default}.cb-child{padding-left:22px}.cb-count{color:var(--text-dim);font-size:10px}.cb-folder.selected .cb-count{color:#cfe3ff}.cb-grid{flex:1;display:flex;flex-wrap:wrap;gap:8px;padding:8px;align-content:flex-start;overflow-y:auto}.panel.cb-drag-over{outline:2px dashed var(--accent);outline-offset:-2px}.mini-btn{background:var(--bg-button);border:1px solid var(--border-dark);border-radius:2px;font-size:10px;padding:2px 8px}.mini-btn:hover{border-color:var(--accent)}.asset-grid{display:flex;flex-wrap:wrap;gap:8px;padding:8px;align-content:flex-start}.asset-card{width:110px;background:var(--bg-panel-alt);border:1px solid var(--border-dark);border-radius:2px;overflow:hidden;cursor:pointer;position:relative}.asset-card:hover{border-color:var(--accent)}.asset-thumb{height:78px;display:flex;align-items:center;justify-content:center;font-size:28px;background:repeating-conic-gradient(#2e2e2e 0 25%,#262626 0 50%) 0 0/16px 16px}.asset-thumb img{width:100%;height:100%;object-fit:cover}.asset-name{padding:3px 6px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px solid var(--border-dark)}.asset-kind{position:absolute;top:2px;left:2px;background:#000000b3;color:var(--accent);font-size:9px;padding:0 4px;border-radius:2px}.asset-del{position:absolute;top:2px;right:2px;background:#000000b3;border:none;color:#f88;font-size:10px;border-radius:2px;display:none}.asset-card:hover .asset-del{display:block}.asset-empty{color:var(--text-dim);padding:16px}#statusbar{display:flex;align-items:center;background:linear-gradient(#333,#262626);border-top:1px solid var(--border-dark);padding:0 10px;font-size:10px;color:var(--text-dim)}.dropdown{position:fixed;background:#2d2d2d;border:1px solid var(--border-dark);box-shadow:0 4px 12px #0009;z-index:1000;min-width:180px;padding:3px 0}.dropdown-item{display:block;width:100%;background:none;border:none;text-align:left;padding:5px 14px;font-size:12px}.dropdown-item:hover{background:var(--select);color:#fff}.dropdown-sep{border-top:1px solid var(--border-dark);margin:3px 0}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background:var(--bg-panel);border:1px solid var(--border-light);box-shadow:0 8px 30px #000000b3;min-width:380px;max-width:560px;max-height:80vh;overflow-y:auto}.modal-title{background:var(--bg-header);padding:8px 12px;font-weight:600;border-bottom:1px solid var(--border-dark);color:#eee}.modal-body{padding:12px}.modal-body,.modal-body *{-webkit-user-select:text;user-select:text}.modal-body p{margin:6px 0;line-height:1.5}.modal-body code{background:#111;padding:1px 5px;border-radius:2px;color:#9adf6b;font-family:Consolas,monospace}.modal-actions{display:flex;justify-content:flex-end;gap:6px;padding:10px 12px;border-top:1px solid var(--border-dark)}.modal-btn{background:var(--bg-button);border:1px solid var(--border-dark);padding:5px 16px;border-radius:2px}.modal-btn:hover{border-color:var(--accent)}.modal-btn.primary{color:var(--accent)}#pfx-float{position:fixed;top:64px;right:16px;width:300px;max-height:calc(100vh - 96px);display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:6px;box-shadow:0 8px 30px #0009;z-index:1500}#pfx-float .pfx-float-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg-header);border-bottom:1px solid var(--border-dark);font-weight:600;color:#eee;border-radius:6px 6px 0 0;user-select:none}#pfx-float .pfx-close{background:none;border:none;color:#bbb;font-size:14px;cursor:pointer;padding:2px 6px}#pfx-float .pfx-close:hover{color:#fff}#pfx-float .pfx-float-body{padding:10px 12px;overflow-y:auto;flex:1}#pfx-float .pfx-float-actions{display:flex;justify-content:flex-end;gap:6px;padding:8px 12px;border-top:1px solid var(--border-dark)}.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.import-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--bg-panel-alt);border:1px solid var(--border-dark);border-radius:3px;padding:10px 12px;text-align:left}.import-opt:hover{border-color:var(--accent);background:#33363c}.import-opt b{color:#e8e8e8;font-size:12px}.import-opt>span:last-child{color:var(--text-dim);font-size:10px}.import-icon{font-size:16px}#player{position:fixed;inset:0}#player-viewport{position:absolute;inset:0}#player-viewport canvas{display:block;width:100%!important;height:100%!important}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border:1.5px solid rgba(255,255,255,.9);border-radius:50%;pointer-events:none;box-shadow:0 0 4px #000;transition:width .15s ease,height .15s ease,border-color .15s ease}#crosshair.targeting{width:30px;height:30px;border:2.5px solid var(--accent);box-shadow:0 0 10px #ffa800cc,0 0 4px #000;animation:crosshair-pulse .8s ease-in-out infinite}#crosshair.targeting:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--accent)}@keyframes crosshair-pulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.4)}}#hud{position:absolute;top:16px;left:16px;pointer-events:none;text-shadow:0 1px 3px #000}#hud .hud-title{font-size:14px;font-weight:700;color:#fff}#hud .hud-pieces{margin-top:6px;font-size:13px;color:var(--accent)}#hud-marks{position:absolute;top:26px;left:50%;transform:translate(-50%);display:flex;gap:18px;pointer-events:none}.piece-chip{width:68px;height:68px;display:flex;align-items:center;justify-content:center;background:#0000008c;border:3px solid #3a3f47;border-radius:12px;transform:rotate(45deg);font-weight:700;font-size:30px;color:#55606e}.piece-chip span{transform:rotate(-45deg);text-shadow:0 1px 2px #000}.piece-chip.got{background:#0a0e14cc}.piece-chip.pop{animation:chip-pop .6s cubic-bezier(.2,2.2,.4,1)}@keyframes chip-pop{0%{transform:rotate(45deg) scale(.2)}60%{transform:rotate(45deg) scale(1.5)}to{transform:rotate(45deg) scale(1)}}.gswe-popup-backdrop{position:fixed;inset:0;background:#00000059;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2500;padding:20px}:root{--gl-bg: rgba(38, 38, 43, .5);--gl-border: rgba(255, 255, 255, .18);--gl-blur: blur(34px) saturate(1.8);--gl-shadow: 0 24px 70px rgba(0, 0, 0, .5);--gl-hi: inset 0 1px 0 rgba(255, 255, 255, .12);--gl-text: #f5f5f7;--gl-font: -apple-system, "SF Pro Display", "SF Pro Text", "Segoe UI", "Malgun Gothic", sans-serif}.gswe-popup{position:relative;width:min(360px,92vw);background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);border-radius:28px;padding:16px;display:flex;flex-direction:column;align-items:stretch;gap:4px;box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text);font-family:var(--gl-font);animation:gswe-pop-in .32s cubic-bezier(.2,1.1,.35,1)}@keyframes gswe-pop-in{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.gswe-popup-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:#ffffff24;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fffc;font-size:14px;z-index:3}.gswe-popup-close:hover{background:#ffffff42;color:#fff}.gswe-popup-thumb{position:relative;width:100%;aspect-ratio:1;background:#00000047;border-radius:20px;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:40px}.gswe-popup-img,.gswe-popup-img img{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.gswe-popup-img img{object-fit:contain}@media(min-width:768px){.gswe-popup{width:min(50vw,960px)}.gswe-popup-thumb{aspect-ratio:auto;height:min(52vh,32vw)}.gswe-popup--video .gswe-popup-thumb{aspect-ratio:16 / 9;height:auto;max-height:58vh}.gswe-popup-nav{width:44px;height:44px;font-size:26px}}@media(max-width:767px){.gswe-popup{width:94vw}.gswe-popup-backdrop:has(.gswe-popup--video){align-items:flex-start;padding:0}.gswe-popup--video{width:100vw;border-radius:0 0 22px 22px;border-top:none;border-left:none;border-right:none;padding:0 0 16px;gap:8px;animation:none}.gswe-popup--video .gswe-popup-thumb{width:100%;aspect-ratio:16 / 9;border-radius:0}.gswe-popup--video .gswe-popup-video{border-radius:0}.gswe-popup--video .gswe-popup-title,.gswe-popup--video .gswe-popup-price{padding:0 16px}.gswe-popup--video .gswe-popup-cta{width:calc(100% - 32px);margin:0 16px}.gswe-popup--video .gswe-popup-close{background:#0000008c;color:#fff}}.gswe-popup-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:none;background:#14141880;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;font-size:20px;line-height:1;z-index:2;display:flex;align-items:center;justify-content:center;padding-bottom:3px}.gswe-popup-nav:hover{background:#3c3c46b3}.gswe-popup-nav:active{transform:translateY(-50%) scale(.92)}.gswe-popup-prev{left:10px}.gswe-popup-next{right:10px}.gswe-popup--video .gswe-popup-thumb{aspect-ratio:16 / 9}.gswe-popup-video{width:100%;height:100%;border:none;border-radius:16px;background:#000;object-fit:contain}.gswe-popup-counter{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:#1414188c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#ffffffe6;font-size:11px;padding:3px 10px;border-radius:10px;pointer-events:none}.gswe-popup-title{font-size:20px;font-weight:700;color:#fff;text-align:left;letter-spacing:-.3px;margin:14px 6px 2px}.gswe-popup-price{font-size:15px;color:#fff9;font-weight:500;text-align:left;margin:0 6px 14px}.gswe-popup-cta{width:100%;padding:15px;background:#ffffff24;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:16px;font-size:15px;font-weight:600;font-family:inherit;transition:background .15s ease}.gswe-popup-cta:hover{background:#ffffff3d}.gswe-popup-cta:active{transform:scale(.98)}#interact-prompt{background:var(--gl-bg)!important;backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border)!important;border-radius:999px!important;box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text)!important}#load-indicator{background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text)}#player .toast,body:has(#player) .toast{background:#1c1c2099;backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);border:1px solid rgba(255,255,255,.16);border-radius:999px}#player .piece-chip{background:#1c1c2073;backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border-color:#fff3}#start-overlay{background:linear-gradient(to bottom,#06080c47,#06080c9e)!important;backdrop-filter:none;-webkit-backdrop-filter:none;justify-content:center!important;gap:0!important;pointer-events:auto;padding:4vh 4vw}#start-overlay h1{display:none}#start-panel h1{display:block;color:#fff;margin:0 0 4px}#intro-video-wrap{position:fixed;inset:0;width:100%;height:100%;max-height:none;border-radius:0;overflow:hidden;box-shadow:none;margin:0;z-index:200;background:#000;opacity:1;transition:opacity .8s ease}#intro-video-wrap.dissolve{opacity:0;pointer-events:none}#intro-video{width:100%;height:100%;max-height:none;object-fit:cover;display:block;background:#000}body.intro-live #start-panel{position:relative;z-index:210}body.intro-live #intro-skip{display:none}body.intro-live #start-overlay .start-btn{display:flex!important}#intro-skip{position:absolute;bottom:26px;right:26px;z-index:2;pointer-events:auto;cursor:pointer;background:#121216b8;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:17px;font-weight:600;padding:9px 20px;border-radius:999px}#intro-skip:hover{background:#3c3c46d9}#start-panel{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;pointer-events:auto;animation:start-pill-in .6s .1s both;text-shadow:0 2px 12px rgba(0,0,0,.85)}.start-tips{color:#ffffffbf;font-size:18px;line-height:2.1;text-shadow:0 1px 3px #000;max-width:90vw}.start-tips b{color:#fff}.start-tips kbd{display:inline-block;min-width:1.3em;padding:3px 9px;margin:0 3px;background:#ffffff24;border:1px solid rgba(255,255,255,.3);border-radius:8px;font-family:inherit;font-size:.88em;font-weight:600;color:#fff}#start-loading-row{display:flex;align-items:center;gap:11px;color:#ffffffb3;font-size:16px}#start-spinner{width:17px;height:17px;border-radius:50%;border:2.5px solid rgba(255,255,255,.25);border-top-color:#fff;animation:gswe-spin .8s linear infinite}@keyframes gswe-spin{to{transform:rotate(360deg)}}#start-progress{width:min(420px,72vw);height:6px;border-radius:999px;background:#ffffff24;overflow:hidden}#start-progress-fill{height:100%;width:0%;border-radius:inherit;background:linear-gradient(90deg,#4ea3ff,#0a84ff);transition:width .25s ease}#start-overlay .start-btn{pointer-events:auto;cursor:pointer;display:inline-flex;align-items:center;gap:13px;background:#0a84ffeb!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.3)!important;color:#fff!important;border-radius:999px!important;padding:16px 42px!important;font-weight:700;animation:enter-glow 2.4s ease-in-out infinite}#start-overlay .start-btn:hover{background:#1e90ff!important}#start-overlay .start-btn .enter-key{font-size:22px;letter-spacing:.5px;padding:3px 14px;border-radius:10px;background:#ffffff2e;border:1px solid rgba(255,255,255,.35)}#start-overlay .start-btn .enter-label{font-size:17px;opacity:.95}@keyframes enter-glow{0%,to{box-shadow:0 10px 34px #0a84ff52}50%{box-shadow:0 10px 46px #0a84ffad}}@keyframes start-pill-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}body.player-mode *,body.player-mode *:before,body.player-mode *:after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}#joy-base,#btn-jump{display:none}body.touch-mode #joy-base{display:block;position:absolute;left:26px;bottom:30px;width:100px;height:100px;border-radius:50%;background:#585a6259;border:2px solid rgba(150,152,162,.4);pointer-events:none;z-index:40}body.touch-mode #player,body.touch-mode #player-viewport,body.touch-mode #player-viewport canvas{touch-action:none}body.touch-mode #joy-stick{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#ffffff80;pointer-events:none}body.touch-mode #crosshair{display:none}body.touch-mode #interact-prompt{bottom:30%}@media(max-width:600px){#hud .hud-title{font-size:12px}.piece-chip{width:48px;height:48px;font-size:20px;border-width:2px}#hud-marks{top:14px;gap:12px}}.product-card{display:flex;gap:14px;align-items:center}.product-thumb{width:150px;height:150px;flex-shrink:0;background:#14161b;border:1px solid var(--border-dark);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:34px;overflow:hidden}.product-thumb img{width:100%;height:100%;object-fit:cover}.product-title{font-size:17px;font-weight:700;color:#fff;margin-bottom:8px}.product-price{font-size:15px;color:var(--accent);font-weight:600}#interact-prompt{position:absolute;bottom:22%;left:50%;transform:translate(-50%);background:#000000a6;border:1px solid var(--accent);color:#fff;padding:8px 18px;border-radius:3px;font-size:13px;display:none;pointer-events:none}#start-overlay{position:absolute;inset:0;background:#0a0a0ed9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:100;cursor:pointer}#start-overlay h1{color:#fff;font-size:22px}#start-overlay p{color:var(--text-dim);font-size:13px;line-height:1.7;text-align:center}#start-overlay .start-btn{background:var(--bg-button);border:1px solid var(--accent);color:var(--accent);font-size:15px;padding:10px 34px;border-radius:3px}#perf-btn{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text);font-size:17px;z-index:90}#perf-btn:hover{background:#46464e99}#perf-panel{position:absolute;top:58px;right:12px;width:232px;background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);border-radius:20px;padding:8px;z-index:90;display:none;box-shadow:var(--gl-shadow),var(--gl-hi);font-family:var(--gl-font)}#perf-panel.open{display:block;animation:gswe-pop-in .2s ease}#perf-panel .perf-title{color:#ffffff8c;font-size:11px;padding:4px 8px 6px}#perf-panel .perf-opt{display:flex;align-items:center;gap:10px;width:100%;background:none;border:1px solid transparent;border-radius:10px;padding:9px 8px;text-align:left;color:#f5f5f7}#perf-panel .perf-opt:hover{background:#ffffff14}#perf-panel .perf-ic{font-size:16px}#perf-panel .perf-txt{flex:1;display:flex;flex-direction:column;line-height:1.35}#perf-panel .perf-txt b{font-size:13px}#perf-panel .perf-txt span{font-size:10px;color:#ffffff80}#perf-panel .perf-check{color:#0a84ff;font-weight:700;opacity:0}#perf-panel .perf-opt.active .perf-check{opacity:1}#perf-panel .perf-opt.active{border-color:#ffffffe6}@media(max-width:600px){#perf-panel{width:200px}}#daynight-btn{position:absolute;top:12px;right:58px;height:38px;padding:0 16px;border-radius:19px;background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text);font-size:14px;font-weight:600;font-family:var(--gl-font);z-index:90;cursor:pointer}#daynight-btn:hover{background:#46464e99}#daynight-btn.is-night{background:#ffd67838;border-color:#ffd67873}#daynight-btn.in-editor{top:32px;right:8px;height:30px;padding:0 12px;border-radius:15px;font-size:12px}@media(max-width:600px){#daynight-btn{font-size:13px;padding:0 11px}}#waypoint-btn{position:absolute;bottom:24px;right:12px;width:38px;height:38px;border-radius:50%;background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text);font-size:17px;z-index:90;cursor:pointer}#waypoint-btn:hover{background:#46464e99}#waypoint-menu{position:absolute;bottom:70px;right:12px;display:flex;flex-direction:column;gap:4px;min-width:170px;max-height:55vh;overflow-y:auto;padding:8px;border-radius:14px;background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);z-index:91}#waypoint-menu .waypoint-title{color:var(--gl-text);font-size:12px;font-weight:600;opacity:.75;padding:2px 6px 4px}#waypoint-menu .waypoint-item{text-align:left;padding:9px 10px;border-radius:9px;border:none;background:transparent;color:var(--gl-text);font-size:13px;font-weight:600;font-family:var(--gl-font);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#waypoint-menu .waypoint-item:hover{background:#78a0ff2e}#waypoint-nav{display:none}body.touch-mode #waypoint-nav.has-points{display:flex;flex-direction:column;align-items:center;gap:6px;position:absolute;top:58px;right:12px;padding:5px 0;border-radius:24px;background:var(--gl-bg);backdrop-filter:var(--gl-blur);-webkit-backdrop-filter:var(--gl-blur);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);z-index:90}#waypoint-nav button{width:38px;height:38px;border:none;background:transparent;color:var(--gl-text);font-size:15px;display:flex;align-items:center;justify-content:center}#waypoint-nav button:active{opacity:.5}body.touch-mode #waypoint-btn{display:none!important}body.touch-mode #waypoint-menu{inset:58px 66px auto auto;transform:none}@media(min-width:768px){body.touch-mode #perf-btn{top:16px;right:16px;width:76px;height:76px;font-size:34px}body.touch-mode #daynight-btn{top:16px;right:108px;height:76px;padding:0 30px;border-radius:38px;font-size:26px}body.touch-mode #waypoint-nav.has-points{top:108px;right:16px;gap:10px;padding:8px 0;border-radius:48px}body.touch-mode #waypoint-nav button{width:76px;height:76px;font-size:30px}body.touch-mode #waypoint-menu{right:112px;top:108px;min-width:260px;border-radius:20px}body.touch-mode #waypoint-menu .waypoint-title{font-size:18px}body.touch-mode #waypoint-menu .waypoint-item{font-size:22px;padding:16px 18px}body.touch-mode #joy-base{left:44px;bottom:48px;width:180px;height:180px}body.touch-mode #joy-stick{width:80px;height:80px;margin:-40px 0 0 -40px}}body:not(.touch-device) #waypoint-btn{bottom:32px;right:20px;width:60px;height:60px;font-size:27px}body:not(.touch-device) #waypoint-menu{bottom:104px;right:20px;min-width:220px}body:not(.touch-device) #waypoint-menu .waypoint-item{font-size:16px;padding:12px 14px}body:not(.touch-device) #perf-btn{top:20px;right:20px;width:60px;height:60px;font-size:27px}body:not(.touch-device) #daynight-btn{top:20px;right:92px;height:60px;padding:0 26px;border-radius:30px;font-size:24px}body:not(.touch-device) #perf-panel{top:92px;right:20px;width:400px;padding:14px;border-radius:22px}body:not(.touch-device) #perf-panel .perf-title{font-size:18px;padding:8px 10px 10px}body:not(.touch-device) #perf-panel .perf-opt{gap:15px;padding:15px 12px;border-radius:14px}body:not(.touch-device) #perf-panel .perf-ic{font-size:27px}body:not(.touch-device) #perf-panel .perf-txt b{font-size:21px}body:not(.touch-device) #perf-panel .perf-txt span{font-size:14px}body:not(.touch-device) #perf-panel .perf-check{font-size:22px}#perf-panel .perf-opt.kbd-focus,#perf-panel .perf-toggle.kbd-focus{background:#0a84ff47;outline:1.5px solid rgba(90,170,255,.85);outline-offset:-1px}#perf-hint{position:absolute;top:35px;right:92px;display:flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:var(--gl-bg);border:1px solid var(--gl-border);box-shadow:var(--gl-shadow),var(--gl-hi);color:var(--gl-text);font-family:var(--gl-font);font-size:15px;font-weight:600;white-space:nowrap;pointer-events:none;z-index:91;animation:perf-hint-blink 1.3s ease-in-out infinite}#perf-hint kbd{font-size:14px;padding:2px 9px;border-radius:7px;background:#ffffff2e;border:1px solid rgba(255,255,255,.4);color:#fff}@keyframes perf-hint-blink{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.35;transform:translateY(-2px)}}body.touch-device #perf-hint,body.ui-hidden #perf-hint{display:none}body:not(.touch-device) #interact-prompt{font-size:22px!important;padding:14px 32px!important;bottom:20%}body:not(.touch-device) #load-indicator{font-size:20px;padding:13px 30px;bottom:34px}body:not(.touch-device) #hud{top:22px;left:22px}#profiler-hud{position:absolute;top:58px;right:12px;width:230px;background:#0e0f14d1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 12px;font-family:Consolas,SF Mono,monospace;font-size:11px;color:#cfe3ff;z-index:80;pointer-events:none;display:none}#profiler-hud .pf-title{font-weight:700;color:#fff;margin-bottom:6px;font-size:12px}#profiler-hud .pf-hint{color:#6a7280;font-weight:400;font-size:10px}#profiler-hud .pf-row{display:flex;justify-content:space-between;align-items:baseline;line-height:1.7}#profiler-hud .pf-row span{color:#8a94a6}#profiler-hud .pf-sep{height:1px;background:#ffffff1a;margin:5px 0}@media(max-width:600px){#profiler-hud{width:190px;font-size:10px;top:54px;right:8px}}#load-indicator{position:absolute;bottom:26px;left:50%;transform:translate(-50%);background:#000000b3;border:1px solid var(--border-light);color:#cfe3ff;padding:8px 20px;border-radius:20px;font-size:13px;display:none;pointer-events:none;z-index:60}.toast{position:absolute;top:70px;left:50%;transform:translate(-50%);background:#000000bf;border:1px solid var(--accent);color:#fff;padding:10px 24px;border-radius:3px;font-size:14px;z-index:50;animation:toast-fade 2.6s forwards;pointer-events:none}@keyframes toast-fade{0%{opacity:0;transform:translate(-50%,-8px)}10%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}.puzzle-input{width:100%;background:var(--bg-input);border:1px solid var(--border-light);color:#fff;font-size:18px;letter-spacing:4px;text-align:center;padding:10px;border-radius:2px}.puzzle-input.wrong{border-color:#f55;animation:shake .35s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#202020}::-webkit-scrollbar-thumb{background:#454545;border:2px solid #202020;border-radius:5px}#fps-counter{position:absolute;left:14px;bottom:14px;z-index:85;pointer-events:none;font-family:Consolas,SF Mono,monospace;font-size:14px;font-weight:700;color:#9ef29e;background:#0a0c0e8c;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:5px 11px;text-shadow:0 1px 2px #000}body:not(.touch-device) #fps-counter{font-size:18px;padding:7px 14px;left:20px;bottom:20px}#perf-panel .perf-sens{border-top:1px solid rgba(255,255,255,.12);margin-top:6px;padding-top:4px}#perf-panel .perf-sens-row{display:flex;align-items:center;gap:10px;padding:4px 8px 8px}#perf-panel .perf-sens-row input[type=range]{flex:1;accent-color:#0a84ff}#perf-panel .perf-sens-val{color:#fff;font-size:13px;min-width:34px;text-align:right}.modes-audio{margin-top:10px;border-top:1px solid var(--border-dark);padding-top:8px}.modes-audio-title{font-size:12px;font-weight:700;color:var(--text-dim);padding:2px 4px 8px}.audio-row{margin-bottom:10px}.audio-head{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.audio-head input[type=checkbox]{width:auto;margin-top:3px}.audio-text{display:flex;flex-direction:column;line-height:1.35}.audio-text .audio-desc{font-size:10px;color:var(--text-dim)}.audio-drop{margin:6px 0 0 24px;padding:10px;border:1px dashed var(--border-light);border-radius:6px;font-size:11px;color:#cfe3ff;text-align:center;cursor:pointer;background:#ffffff08}.audio-drop:hover,.audio-drop.over{border-color:var(--accent);background:#ffa80014}.audio-clear{margin:6px 0 0 24px;font-size:10px;color:var(--text-dim);background:none;border:none;text-decoration:underline;cursor:pointer}#perf-panel .perf-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:none;border-radius:10px;padding:10px 8px;color:var(--gl-text);font-family:var(--gl-font);cursor:pointer;text-align:left}#perf-panel .perf-toggle:hover{background:#ffffff14}#perf-panel .tgl{flex:none;width:44px;height:24px;border-radius:12px;background:#78788073;position:relative;transition:background .15s}#perf-panel .tgl-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s}#perf-panel .perf-toggle.on .tgl{background:#34c759}#perf-panel .perf-toggle.on .tgl-knob{transform:translate(18px)}body.ui-hidden #hud,body.ui-hidden #hud-marks,body.ui-hidden #crosshair,body.ui-hidden #waypoint-btn,body.ui-hidden #waypoint-nav,body.ui-hidden #joy-base,body.ui-hidden #load-indicator{display:none!important}
