@font-face{font-family:Pixelify Sans;src:url(../assets/fonts/pixelify-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pixelify Sans;src:url(../assets/fonts/pixelify-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Silkscreen;src:url(../assets/fonts/silkscreen-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Silkscreen;src:url(../assets/fonts/silkscreen-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}:root{--bg: #0d1117;--bg-deep: #080b10;--panel: #161b22;--panel-2: #1f2630;--panel-3: #2a3340;--line: #313b48;--edge: #000;--text: #e6edf3;--muted: #8b98a9;--accent: #5bbc3a;--accent-hi: #7fd65a;--accent-lo: #3a7d24;--danger: #e5484d;--gold: #f2c94c;--font-ui: "Pixelify Sans", ui-monospace, "Cascadia Mono", Menlo, monospace;--font-label: "Silkscreen", "Pixelify Sans", ui-monospace, monospace;--bevel: inset -3px -3px 0 rgba(0, 0, 0, .38), inset 3px 3px 0 rgba(255, 255, 255, .1);--bevel-pressed: inset 3px 3px 0 rgba(0, 0, 0, .38), inset -3px -3px 0 rgba(255, 255, 255, .08);--drop: 0 4px 0 rgba(0, 0, 0, .45);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--app-max: 520px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg-deep);color:var(--text);font-family:var(--font-ui);font-size:15px;line-height:1.35;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}input{font:inherit;color:inherit;user-select:text;-webkit-user-select:text}img{image-rendering:pixelated;-webkit-user-drag:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.icon{width:1.15em;height:1.15em;fill:currentColor;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.noscript{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);z-index:200}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{position:relative;display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:var(--app-max);margin:0 auto;background:var(--bg)}.stage{position:relative;flex:1;min-height:0;overflow:hidden}#scene{display:block;width:100%;height:100%;touch-action:none;outline:none}body[data-tool=move] #scene{cursor:grab}body[data-tool=move] #scene:active{cursor:grabbing}body[data-tool=build] #scene,body[data-tool=delete] #scene{cursor:crosshair}@media (hover: hover) and (pointer: fine){body{background-color:var(--bg-deep);background-image:linear-gradient(45deg,rgba(255,255,255,.018) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.018) 75%),linear-gradient(45deg,rgba(255,255,255,.018) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.018) 75%);background-size:32px 32px;background-position:0 0,16px 16px}.app{box-shadow:-3px 0 0 var(--edge),3px 0 0 var(--edge),0 0 60px #0009}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 14px;font-family:var(--font-label);font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--text);background:var(--panel-2);border:2px solid var(--edge);box-shadow:var(--bevel),var(--drop);transition:transform .06s,background-color .12s,opacity .12s}.btn:hover:not(:disabled){background:var(--panel-3)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:var(--bevel-pressed),0 1px #00000073}.btn:disabled{opacity:.42}.btn--icon{width:42px;padding:0}.btn--icon .icon{width:20px;height:20px}.btn--primary{background:var(--accent);color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.35)}.btn--primary:hover:not(:disabled){background:var(--accent-hi)}.btn--ghost{background:transparent;border-color:transparent;box-shadow:none}.btn--ghost:hover:not(:disabled){background:#ffffff14}.btn--ghost:active:not(:disabled){box-shadow:none;transform:none;background:#ffffff24}.btn--small{height:34px;padding:0 10px;font-size:11px}.btn--block{width:100%}.btn--large{height:54px;font-size:15px}.btn--large .icon{width:22px;height:22px}.topbar{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:calc(var(--safe-top) + 10px) 10px 0;pointer-events:none;z-index:5}.topbar .btn--icon{width:38px;height:38px}.topbar>*{pointer-events:auto}.topbar__group{display:flex;align-items:center;gap:6px}.topbar__group--left{flex-wrap:wrap;max-width:82px}.topbar__group--right{justify-content:flex-end}.btn--ar{position:absolute;top:calc(var(--safe-top) + 10px);left:50%;translate:-50% 0;height:38px;white-space:nowrap;padding:0 10px;font-family:var(--font-ui);font-weight:700;font-size:13px;text-transform:none;letter-spacing:0}.btn--ar .icon{width:20px;height:20px}.counter{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 8px;font-family:var(--font-label);font-size:12px;color:var(--text);background:#0000008c;border:2px solid var(--edge)}.counter .icon{width:14px;height:14px;color:var(--accent-hi)}@media (max-width: 349px){.btn--ar span{display:none}.btn--ar{width:48px;padding:0}}.stage-hint,.selected-name{position:absolute;left:50%;transform:translate(-50%,6px);max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;opacity:0;transition:opacity .25s,transform .25s;z-index:4}.stage-hint{bottom:10px;max-width:calc(100% - 120px);white-space:normal;text-align:center;padding:6px 10px;font-size:13px;color:var(--text);background:#0000009e;border:2px solid var(--edge)}.selected-name{bottom:50px;font-family:var(--font-ui);font-weight:700;font-size:17px;color:#fff;text-shadow:2px 2px 0 #3f3f3f}.stage-hint.is-visible,.selected-name.is-visible{opacity:1;transform:translate(-50%)}.desktop-notice{position:absolute;top:calc(var(--safe-top) + 62px);left:10px;right:10px;display:flex;align-items:center;gap:10px;padding:8px 6px 8px 12px;font-size:13px;color:var(--text);background:#161b22f0;border:2px solid var(--edge);box-shadow:inset 0 0 0 2px var(--gold),var(--drop);z-index:6}.desktop-notice p{flex:1}.desktop-notice strong{color:var(--gold)}.desktop-notice__icon{width:22px;height:22px;color:var(--gold)}.desktop-notice .btn--icon{width:34px;height:34px}.dock{position:relative;padding:10px 10px calc(var(--safe-bottom) + 12px);background:var(--panel);border-top:3px solid var(--edge);box-shadow:inset 0 3px #ffffff0d;z-index:5}.tools{display:flex;justify-content:center;gap:8px;margin-bottom:10px}.tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:84px;height:52px;font-family:var(--font-label);font-size:10px;text-transform:uppercase;color:var(--muted);background:var(--panel-2);border:2px solid var(--edge);box-shadow:var(--bevel),0 3px #00000073;transition:color .12s,background-color .12s,transform .06s}.tool .icon{width:20px;height:20px}.tool:hover{color:var(--text)}.tool.is-active{color:#fff;background:var(--accent);box-shadow:var(--bevel-pressed),0 0 0 2px var(--accent-lo);transform:translateY(3px);text-shadow:1px 1px 0 rgba(0,0,0,.35)}.tool[data-tool=delete].is-active{background:var(--danger);box-shadow:var(--bevel-pressed),0 0 0 2px #8f2226}.tool[data-tool=move].is-active{background:#3b82c4;box-shadow:var(--bevel-pressed),0 0 0 2px #22527f}.hotbar-row{display:flex;align-items:stretch;gap:8px}.hotbar{flex:1;display:grid;grid-template-columns:repeat(var(--slots, 5),minmax(0,1fr));gap:6px;padding:6px;background:#0000008c;border:2px solid var(--edge);box-shadow:inset 0 0 0 2px #3a4350}.slot{position:relative;display:grid;place-items:center;aspect-ratio:1 / 1;background:#10151c;border:2px solid #4a5563;box-shadow:inset 2px 2px #00000080;transition:transform .08s,border-color .12s}.slot img{width:82%;height:82%;object-fit:contain;pointer-events:none}.slot__key{position:absolute;top:0;left:2px;font-family:var(--font-label);font-size:8px;color:#ffffff59;pointer-events:none}.slot.is-selected{border-color:#fff;box-shadow:0 0 0 2px var(--edge),inset 0 0 0 2px #ffffff47;transform:translateY(-2px);z-index:1}.btn-more{display:grid;place-items:center;flex:none;aspect-ratio:1 / 1;color:var(--text);background:var(--panel-2);border:2px solid var(--edge);box-shadow:var(--bevel),var(--drop);transition:transform .06s,background-color .12s}.btn-more .icon{width:22px;height:22px}.btn-more:hover{background:var(--panel-3)}.btn-more:active{transform:translateY(3px);box-shadow:var(--bevel-pressed),0 1px #00000073}.assign-banner{position:absolute;top:10px;left:10px;right:10px;height:52px;display:flex;align-items:center;gap:10px;padding:0 6px;background:var(--panel-2);border:2px solid var(--edge);box-shadow:inset 0 0 0 2px var(--gold),var(--drop);z-index:2;animation:pop-in .18s ease-out}.assign-banner__icon{display:grid;place-items:center;width:38px;height:38px;background:#10151c;border:2px solid #4a5563}.assign-banner__icon img{width:30px;height:30px}.assign-banner__text{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12px;color:var(--muted);line-height:1.2}.assign-banner__text strong{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock.is-assigning .tools{visibility:hidden}.dock.is-assigning .slot{animation:slot-blink .9s steps(2,jump-none) infinite}.dock.is-assigning .btn-more{opacity:.4;pointer-events:none}@keyframes slot-blink{0%{border-color:#4a5563}to{border-color:var(--gold)}}@keyframes pop-in{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.modal{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#0000009e;z-index:40;animation:fade-in .15s ease-out}.modal__panel{display:flex;flex-direction:column;width:100%;max-width:var(--app-max);height:min(86dvh,760px);padding:12px 12px 0;background:var(--panel);border:3px solid var(--edge);border-bottom:0;box-shadow:inset 0 3px #ffffff0f;animation:sheet-up .2s ease-out}.modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal__title{font-family:var(--font-label);font-size:18px;font-weight:400;text-transform:uppercase;color:#fff;text-shadow:2px 2px 0 #000}.modal__subtitle{margin:8px 2px 10px;font-size:13px;color:var(--muted)}.search{display:flex;align-items:center;gap:8px;height:46px;padding:0 12px;background:#0a0d12;border:2px solid var(--edge);box-shadow:inset 0 0 0 2px #3a4350;color:var(--muted)}.search:focus-within{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent-hi)}.search input{flex:1;min-width:0;height:100%;font-size:16px;color:var(--text);background:transparent;border:0;outline:none}.search input::placeholder{color:#5d6b7c}.search input::-webkit-search-cancel-button{filter:invert(1) opacity(.5)}.picker-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));align-content:start;gap:6px;padding:2px 2px calc(var(--safe-bottom) + 16px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.picker-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;background:var(--panel-2);border:2px solid var(--edge);box-shadow:var(--bevel);transition:background-color .12s}.picker-item:hover{background:var(--panel-3)}.picker-item:active{box-shadow:var(--bevel-pressed);background:var(--accent-lo)}.picker-item__icon{display:grid;place-items:center;width:48px;height:48px}.picker-item__icon img{width:100%;height:100%}.picker-item__name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em;font-size:11px;line-height:1.2;text-align:center;color:var(--text)}.picker-item.is-in-hotbar:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;background:var(--accent-hi);box-shadow:0 0 0 2px var(--edge)}.picker-empty{padding:30px 0 60px;text-align:center;color:var(--muted)}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(40px)}}.ar-overlay{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg);z-index:50;animation:fade-in .15s ease-out}.ar-overlay__header{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 10px) 10px 10px 14px;background:var(--panel);border-bottom:3px solid var(--edge)}.ar-overlay__viewer{position:relative;flex:1;min-height:0;background:radial-gradient(ellipse at 50% 40%,#243349,#0d1117 70%)}.ar-overlay__viewer model-viewer{display:block;width:100%;height:100%;--poster-color: transparent;--progress-bar-color: var(--accent)}.ar-busy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font-family:var(--font-label);font-size:12px;text-transform:uppercase;color:var(--muted);background:#0d1117b8;z-index:2}.ar-overlay__panel{display:flex;flex-direction:column;gap:10px;padding:14px 14px calc(var(--safe-bottom) + 14px);background:var(--panel);border-top:3px solid var(--edge)}.ar-scale{display:flex;align-items:center;gap:12px}.ar-scale__label{font-family:var(--font-label);font-size:12px;text-transform:uppercase;color:var(--muted)}.segmented{flex:1;display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--edge);background:#0a0d12}.segmented__option{height:40px;font-family:var(--font-label);font-size:12px;color:var(--muted);border-right:2px solid var(--edge)}.segmented__option:last-child{border-right:0}.segmented__option.is-active{color:#fff;background:var(--accent);box-shadow:var(--bevel-pressed);text-shadow:1px 1px 0 rgba(0,0,0,.35)}.ar-size{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--text)}.ar-size__hint{color:var(--muted)}.ar-status{min-height:1.35em;font-size:13px;color:var(--muted)}.ar-status:empty{display:none}.ar-status.is-error{color:#ff8a8d}body.is-ar-open .app{visibility:hidden}.btn--danger{background:var(--danger);color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.35)}.btn--danger:hover:not(:disabled){background:#f0676b}.stage-clear{position:absolute;left:10px;bottom:10px;width:38px;height:38px;z-index:4;animation:pop-in .18s ease-out}.modal--center{align-items:center;padding:16px;z-index:45}.dialog{width:100%;max-width:340px;padding:20px 16px 16px;text-align:center;background:var(--panel);border:3px solid var(--edge);box-shadow:inset 0 3px #ffffff0f,0 8px #00000080;animation:pop-in .18s ease-out}.dialog__icon{display:block;width:36px;height:36px;margin:0 auto 12px;color:var(--danger)}.dialog__title{font-size:16px}.dialog__message{margin:10px 0 18px;font-size:14px;color:var(--muted)}.dialog__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toast{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 150px);transform:translate(-50%,10px);max-width:calc(100% - 32px);padding:10px 14px;font-size:14px;color:var(--text);background:var(--panel-2);border:2px solid var(--edge);box-shadow:var(--bevel),var(--drop);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:60}.toast.is-visible{opacity:1;transform:translate(-50%)}.spinner{width:32px;height:32px;background:var(--accent);box-shadow:inset -4px -4px 0 var(--accent-lo),inset 4px 4px 0 var(--accent-hi),0 0 0 3px var(--edge);animation:spin-step 1s steps(4) infinite}@keyframes spin-step{to{transform:rotate(360deg)}}.loader{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--bg);z-index:100}.loader__block{width:56px;height:56px;margin-bottom:12px;background:linear-gradient(#6aa84f 0 32%,#866043 32% 100%);box-shadow:inset -6px -6px #0000004d,inset 6px 6px #ffffff26,0 0 0 3px var(--edge);animation:hop .7s steps(6) infinite alternate}.loader__title{font-family:var(--font-label);font-size:26px;color:#fff;text-shadow:3px 3px 0 #000}.loader__text{font-size:14px;color:var(--muted)}@keyframes hop{0%{transform:translateY(0)}to{transform:translateY(-14px)}}
