@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap";@font-face{font-family:Early GameBoy;src:url(../assets/fonts/early-gameboy.ttf) format("truetype");font-display:swap}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #050505;--panel: #0b0b0b;--panel-2: #141414;--panel-3: #1b1b1b;--field: #090909;--border: #252525;--border-strong: #3f4b26;--text: #f3eee2;--text-muted: #a89f8f;--text-dim: #70695c;--accent-cool: #347433;--accent-cool-soft: rgba(52, 116, 51, .18);--accent-warm: #ffc107;--accent-warm-soft: rgba(255, 193, 7, .18);--accent-hot: #ff6f3c;--accent-hot-soft: rgba(255, 111, 60, .18);--danger: #b22222;--danger-soft: rgba(178, 34, 34, .18);--success: #347433;--success-soft: rgba(52, 116, 51, .18);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}body{overflow:hidden;background:var(--bg);color:var(--text);font-family:IBM Plex Mono,Courier New,monospace;font-size:12px;-webkit-user-select:none;user-select:none}.app-feedback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,rgba(52,116,51,.18),transparent 36%),#050505f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-feedback-card{width:min(480px,calc(100vw - 48px));padding:24px;border:1px solid var(--border-strong);border-radius:18px;background:linear-gradient(180deg,#141414fa,#0b0b0bf5);box-shadow:0 28px 80px #0000006b}.app-boot-splash-card{display:flex;flex-direction:column;gap:14px;text-align:center}.app-boot-splash-kicker,.app-busy-title{color:var(--accent-warm);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.app-boot-splash-title{color:var(--text);font-family:Early GameBoy,monospace;font-size:20px;line-height:1.7}.app-feedback-status{color:var(--text-muted);font-size:13px;line-height:1.45}.app-boot-progress{width:100%;height:10px;overflow:hidden;border:1px solid rgba(52,116,51,.38);border-radius:999px;background:#3474331f}.app-boot-progress-bar{width:100%;height:100%;background:linear-gradient(90deg,var(--accent-cool),var(--accent-warm));transform-origin:left center;transform:scaleX(0);transition:transform .14s ease-out}.app-boot-splash[data-boot-state=failed] .app-boot-progress{border-color:#b222226b;background:#b222221f}.app-boot-splash[data-boot-state=failed] .app-feedback-status{color:#ffd2d2}.app-busy-overlay{z-index:135;background:#050505c2}.app-busy-card{width:min(360px,calc(100vw - 48px));display:flex;flex-direction:column;gap:12px}.app-busy-title{font-size:13px;letter-spacing:.12em}.app-busy-spinner{width:34px;height:34px;border:3px solid rgba(243,238,226,.15);border-top-color:var(--accent-warm);border-radius:999px;animation:busy-spin .8s linear infinite}.app-busy-actions{display:flex;gap:8px}.app-busy-actions .bar-btn{min-width:92px}.app-busy-overlay[data-busy-state=error] .app-busy-title{color:#ffd2d2}body[data-app-ready=false] #app,body[data-app-ready=false] #auth-panel{pointer-events:none}body[data-coarse-pointer=true]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}body[data-coarse-pointer=true] #game-container canvas{touch-action:none}body[data-app-mode=world] #sidebar,body[data-app-mode=play-world] #sidebar{display:none}body[data-app-mode=world] #world-hud,body[data-app-mode=play-world] #world-hud,body[data-app-mode=world] #global-chat,body[data-app-mode=play-world] #global-chat{display:flex}#auth-panel{position:fixed;top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));z-index:20;pointer-events:none}#menu-toggle,#menu-body{pointer-events:auto}.rotate-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:24px;background:#050505f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.rotate-gate-card{width:min(420px,calc(100vw - 48px));padding:24px;border:1px solid var(--border-strong);border-radius:16px;background:linear-gradient(180deg,#141414f5,#0b0b0bf5);box-shadow:0 24px 60px #0000006b;text-align:center}.rotate-gate-title{color:var(--accent-warm);font-family:Early GameBoy,monospace;font-size:14px;line-height:1.7}.rotate-gate-copy{margin-top:14px;color:var(--text);font-size:14px;line-height:1.5}@keyframes busy-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;margin-left:auto;padding:0;background:#0b0b0beb;border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s,transform .06s ease,box-shadow .06s ease;box-shadow:0 2px #00000059}#menu-toggle:hover{background:#1e1e1ef2}#menu-toggle.is-pressed{transform:translateY(2px);box-shadow:0 0 #0000002e}.hamburger-line{display:block;width:18px;height:2px;background:var(--text);border-radius:1px;transition:transform .2s,opacity .2s}#auth-panel.menu-open #menu-toggle .hamburger-line:nth-child(1){transform:translateY(6px) rotate(45deg)}#auth-panel.menu-open #menu-toggle .hamburger-line:nth-child(2){opacity:0}#auth-panel.menu-open #menu-toggle .hamburger-line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}#menu-body{display:none;flex-direction:column;gap:10px;width:312px;max-width:calc(100vw - 32px);margin-top:6px;padding:12px;background:#0b0b0beb;border:1px solid var(--border-strong);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#auth-panel.menu-open #menu-body{display:flex}.auth-header,.auth-row{display:flex;align-items:center;gap:8px}.auth-header{justify-content:space-between}.auth-title{color:var(--text);font-size:12px;letter-spacing:1px;text-transform:uppercase}.auth-identity{color:var(--text-muted);font-size:11px;text-align:right}#auth-email-input{flex:1;min-width:0;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:Courier New,monospace}#auth-email-input:focus{outline:none;border-color:var(--accent-cool)}#btn-auth-wallet{flex:1}.auth-status{color:var(--text-muted);font-size:11px;line-height:1.3}.auth-debug-link{color:var(--accent-cool);font-size:11px;text-decoration:none}.auth-debug-link:hover{text-decoration:underline}#app{display:grid;grid-template-columns:280px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 36px;height:100vh;width:100vw}#sidebar{grid-column:1;grid-row:1;width:280px;height:auto;min-height:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.editor-action-stack{display:flex;flex-direction:column;gap:6px}#editor-actions .bar-btn{width:100%}.sidebar-section{padding:8px 10px;border-bottom:1px solid var(--border)}.sidebar-section.hidden{display:none}.section-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:6px}#tools{display:flex;gap:4px;flex-wrap:wrap}.tool-btn{flex:1;min-width:56px;height:40px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:background .1s,border-color .1s,color .1s,transform .06s ease,box-shadow .06s ease;box-shadow:0 2px #00000047}.tool-icon{font-size:15px;line-height:1}.tool-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px;line-height:1}.tool-btn:hover{background:var(--panel-3);color:var(--text)}.tool-btn.active{background:var(--accent-cool-soft);border-color:var(--accent-cool);color:var(--text)}.tool-btn.is-pressed{transform:translateY(2px);box-shadow:0 0 #0000002e}#layers{display:flex;flex-direction:column;gap:2px}.layer-btn{width:100%;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:11px;font-family:Courier New,monospace;cursor:pointer;text-align:left;transition:background .1s,border-color .1s,color .1s,transform .06s ease,box-shadow .06s ease;box-shadow:0 2px #00000047}.layer-btn:hover{background:var(--panel-3)}.layer-btn.active{background:var(--accent-cool-soft);border-color:var(--accent-cool);color:var(--text)}.layer-btn.is-pressed{transform:translateY(2px);box-shadow:0 0 #0000002e}#background-select{width:100%;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:Courier New,monospace;cursor:pointer}#background-select option{background:var(--panel)}.palette-tabs{display:flex;gap:2px}.palette-tab{flex:1;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:11px;font-family:Courier New,monospace;cursor:pointer;text-align:center;transition:background .1s,border-color .1s,color .1s,transform .06s ease,box-shadow .06s ease;box-shadow:0 2px #00000047}.palette-tab:hover{background:var(--panel-3)}.palette-tab.active{background:var(--accent-cool-soft);border-color:var(--accent-cool);color:var(--text)}.palette-tab.is-pressed{transform:translateY(2px);box-shadow:0 0 #0000002e}#tileset-select{width:100%;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:Courier New,monospace;cursor:pointer}#tileset-select option{background:var(--panel)}#goal-type-select,.goal-input{width:100%;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:Courier New,monospace}#goal-type-select option{background:var(--panel)}.goal-control-row{display:flex;flex-direction:column;gap:4px;margin-top:8px}.goal-control-label{color:var(--text-muted);font-size:10px;letter-spacing:.5px;text-transform:uppercase}.goal-inline-input{display:flex;align-items:center;gap:6px}.goal-inline-suffix{color:var(--text-dim);font-size:10px;text-transform:uppercase}.goal-marker-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.goal-marker-controls .bar-btn{width:100%}.goal-placement-hint,.goal-summary{margin-top:8px;color:var(--text-muted);font-size:10px;line-height:1.35}.goal-placement-hint{color:var(--accent-warm)}.palette-section{flex:1;min-height:0;display:flex;flex-direction:column}#palette-container{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--field);border-radius:3px;cursor:pointer}#palette-canvas{display:block;image-rendering:pixelated}.palette-hint{font-size:9px;color:var(--text-dim);padding:4px 0 0;text-align:center}.selection-info{color:var(--accent-cool);font-size:10px}.object-category-tabs{display:flex;gap:2px;margin-bottom:6px;flex-wrap:wrap}.obj-cat-tab{padding:3px 6px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:9px;font-family:Courier New,monospace;cursor:pointer;text-transform:uppercase;letter-spacing:.3px;transition:background .1s,border-color .1s,color .1s,transform .06s ease,box-shadow .06s ease;box-shadow:0 2px #00000047}.obj-cat-tab:hover{background:var(--panel-3)}.obj-cat-tab.active{background:var(--accent-warm-soft);border-color:var(--accent-warm);color:var(--text)}.obj-cat-tab.is-pressed{transform:translateY(2px);box-shadow:0 0 #0000002e}#object-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;overflow-y:auto;flex:1;padding:2px}.object-facing-controls{display:flex;align-items:center;gap:6px;margin:2px 0 8px}.object-facing-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.object-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:background .1s,border-color .1s,color .1s,transform .06s ease,box-shadow .06s ease;min-height:48px;box-shadow:0 2px #00000047}#object-tooltip{position:fixed;z-index:100;width:max-content;max-width:200px;padding:6px 10px;background:#0b0b0bf2;border:1px solid var(--border-strong);border-radius:4px;color:var(--text);font-size:11px;line-height:1.3;white-space:normal;pointer-events:none;opacity:0;transition:opacity .12s}#object-tooltip.visible{opacity:1}.object-item:hover{background:var(--panel-3);border-color:var(--border-strong)}.object-item.active{background:var(--accent-warm-soft);border-color:var(--accent-warm)}.object-item.is-pressed{transform:translateY(2px);box-shadow:0 0 #0000002e}.object-item img{image-rendering:pixelated;max-width:48px;max-height:32px;object-fit:contain}.object-item-label{font-size:8px;color:var(--text-muted);text-align:center;margin-top:2px;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.palette-hint-accent{color:var(--accent-soft)}#tile-preview{display:block;image-rendering:pixelated;background:var(--field);border-radius:3px;margin:0 auto}#game-container{grid-column:2;grid-row:1;min-width:0;min-height:0;height:auto;background:var(--bg);position:relative;overflow:hidden}#game-container canvas{display:block}body[data-app-mode=world] #game-container,body[data-app-mode=play-world] #game-container{grid-column:1 / -1}#world-hud{position:absolute;top:calc(16px + var(--safe-top));left:calc(16px + var(--safe-left));z-index:10;width:320px;max-width:calc(100% - 32px);padding:14px;background:#0b0b0beb;border:1px solid var(--border-strong);border-radius:10px;display:none;flex-direction:column;gap:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 18px 48px #0000005c}.world-hud-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.world-hud-title{color:var(--accent-warm);font-family:Early GameBoy,monospace;font-size:12px;line-height:1.5;letter-spacing:.04em}.world-room-title{color:var(--text);font-size:21px;line-height:1.15;font-weight:600}.world-hud-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.world-hud-label{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.8px}.world-hud-value{color:var(--text)}.world-state-pill{margin-left:auto;padding:2px 6px;border-radius:999px;background:#f3eee214;color:var(--text);font-size:10px;text-transform:uppercase;border:1px solid transparent;letter-spacing:.08em}.world-state-pill[data-world-state-tone=published]{background:var(--success-soft);border-color:#34743373;color:#d9f3d5}.world-state-pill[data-world-state-tone=draft]{background:var(--accent-warm-soft);border-color:#ffc1076b;color:#ffe9a3}.world-state-pill[data-world-state-tone=frontier]{background:var(--accent-hot-soft);border-color:#ff6f3c6b;color:#ffd4c3}.world-state-pill[data-world-state-tone=empty]{border-color:#f3eee224;color:var(--text-muted)}.world-hud-meta,.world-hud-status{color:var(--text-muted);font-size:12px;line-height:1.35}.world-hud-meta[data-world-meta-tone=challenge]{color:var(--accent-warm)}.world-hud-meta[data-world-meta-tone=draft]{color:#ffd9a8}.world-hud-meta[data-world-meta-tone=frontier]{color:var(--accent-hot)}#world-status:empty,#world-leaderboard:empty{display:none}#world-leaderboard{padding-top:8px;border-top:1px solid rgba(243,238,226,.08);color:#d9f3d5}.world-goal-panel{position:absolute;top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));z-index:10;min-width:210px;max-width:min(320px,calc(100vw - 32px - var(--safe-left) - var(--safe-right)));padding:12px 14px;border-radius:12px;background:#050505e6;border:1px solid rgba(255,193,7,.42);box-shadow:0 18px 48px #00000057;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:6px;pointer-events:none}.world-goal-panel[data-goal-panel-tone=active]{border-color:#ffc1076b}.world-goal-panel[data-goal-panel-tone=complete]{border-color:#34743380}.world-goal-panel[data-goal-panel-tone=failed]{border-color:#b2222285}.world-goal-panel-room{color:#f3eee2d1;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.world-goal-panel-goal{color:var(--accent-warm);font-size:14px;font-weight:600;line-height:1.2}.world-goal-panel[data-goal-panel-tone=complete] .world-goal-panel-goal,.world-goal-panel[data-goal-panel-tone=complete] .world-goal-panel-timer{color:#b6ffbe}.world-goal-panel[data-goal-panel-tone=failed] .world-goal-panel-goal,.world-goal-panel[data-goal-panel-tone=failed] .world-goal-panel-timer{color:#ff9c91}.world-goal-panel-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.world-goal-panel-progress{color:var(--text);font-size:12px;line-height:1.3}.world-goal-panel-timer{color:#ffcf4c;font-size:14px;font-weight:600;white-space:nowrap}.room-title-input{width:100%}#world-jump-input{flex:1;min-width:0;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:IBM Plex Mono,Courier New,monospace}#world-jump-input:focus{outline:none;border-color:var(--accent-cool)}.chat-panel{position:absolute;right:calc(16px + var(--safe-right));bottom:calc(52px + var(--safe-bottom));z-index:11;width:min(360px,calc(100% - 32px));display:none;flex-direction:column;align-items:flex-end;gap:8px}.chat-toggle{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.chat-panel-body{width:100%;display:flex;flex-direction:column;gap:8px;padding:12px;background:#0b0b0beb;border:1px solid var(--border-strong);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 18px 40px #00000052}.chat-messages{min-height:96px;max-height:min(240px,34vh);overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.chat-empty,.chat-status{color:var(--text-muted);font-size:11px;line-height:1.4}.chat-form{display:flex;align-items:center;gap:8px}.chat-input{flex:1;min-width:0;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:Courier New,monospace}.chat-input:focus{outline:none;border-color:var(--accent-cool)}.chat-input:disabled{color:var(--text-dim);background:#101010}.chat-unread-badge{min-width:18px;padding:2px 6px;border-radius:999px;background:var(--accent-warm);color:#140d00;font-size:10px;line-height:1.2;text-align:center}.chat-message{display:flex;flex-direction:column;gap:3px;padding-bottom:8px;border-bottom:1px solid rgba(243,238,226,.08)}.chat-message:last-child{border-bottom:none;padding-bottom:0}.chat-message-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.chat-message-author{color:var(--accent-cool);font-size:11px}.chat-message-time{color:var(--text-dim);font-size:10px;white-space:nowrap}.chat-message-body{color:var(--text);font-size:11px;line-height:1.4;white-space:pre-wrap;word-break:break-word}#bottom-bar{grid-column:1 / -1;grid-row:2;width:100%;min-width:0;height:36px;background:var(--panel);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;gap:12px}.mobile-play-controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:14;pointer-events:none}.mobile-play-utility{position:absolute;top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));display:flex;gap:10px;pointer-events:auto}.mobile-play-actions{position:absolute;right:calc(18px + var(--safe-right));bottom:calc(74px + var(--safe-bottom));display:grid;grid-template-columns:repeat(2,minmax(0,auto));gap:12px;justify-items:end;pointer-events:auto}.mobile-action-btn{min-width:72px;min-height:56px;padding:10px 16px;border-radius:16px;border:1px solid var(--border-strong);background:#0b0b0beb;color:var(--text);font-family:IBM Plex Mono,Courier New,monospace;font-size:12px;box-shadow:0 16px 32px #0000004d}.mobile-action-btn:active,.mobile-action-btn.is-pressed{transform:translateY(2px)}.mobile-action-jump{border-color:#34743375;color:#d9f3d5}.mobile-action-slash{border-color:#ffc10766;color:#ffe7a0}.mobile-action-shoot{border-color:#ff6f3c80;color:#ffd1bf}.mobile-utility-btn{min-height:42px;min-width:64px;border-radius:999px}.mobile-joystick{position:absolute;left:calc(18px + var(--safe-left));bottom:calc(72px + var(--safe-bottom));width:132px;height:132px;border-radius:50%;border:1px solid rgba(243,238,226,.14);background:radial-gradient(circle at center,#f3eee21a,#0b0b0bb8);box-shadow:0 16px 32px #00000042;pointer-events:auto;touch-action:none}.mobile-joystick-knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin-left:-26px;margin-top:-26px;border-radius:50%;border:1px solid rgba(255,193,7,.32);background:#ffc1072e;box-shadow:0 10px 24px #00000038}.mobile-editor-nav{position:fixed;left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));bottom:calc(46px + var(--safe-bottom));z-index:18;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.mobile-editor-nav .bar-btn{padding:8px 6px;flex:0 0 auto;min-width:86px}.mobile-sheet-panel{width:min(460px,calc(100vw - 24px))}.mobile-jump-sheet-form{display:flex;align-items:center;gap:10px}.bar-left,.bar-right{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:11px}.bar-center{display:flex;gap:8px;justify-content:center;flex:1}#room-save-status{min-width:0;text-align:right;color:var(--text-muted);transition:color .12s ease,background .12s ease,border-color .12s ease}#room-save-status[data-overworld-tone]{display:inline-flex;align-items:center;justify-content:flex-end;min-height:24px;padding:3px 8px;border:1px solid transparent;border-radius:999px}#room-save-status:empty,#room-coords:empty,#cursor-coords:empty,#world-online-count:empty{display:none}#room-save-status[data-overworld-tone=play-score]{color:#ffe9a3;background:var(--accent-warm-soft);border-color:#ffc10757}#room-save-status[data-overworld-tone=challenge-active]{color:#ffd7d7;background:var(--danger-soft);border-color:#b222226b}#room-save-status[data-overworld-tone=challenge-complete]{color:#e9ffef;background:var(--success-soft);border-color:#34743373}#room-save-status[data-overworld-tone=challenge-failed]{color:#ffd7d7;background:var(--danger-soft);border-color:#b222227a}.separator{color:var(--border)}.bar-btn{padding:4px 14px;background:var(--panel-2);border:1px solid var(--border-strong);border-radius:3px;color:var(--text);font-size:11px;font-family:IBM Plex Mono,Courier New,monospace;cursor:pointer;transition:background .1s,border-color .1s,color .1s,transform .06s ease,box-shadow .06s ease;box-shadow:0 2px #0000004d}.bar-btn:hover{background:var(--panel-3)}.bar-btn.active{background:var(--accent-cool-soft);border-color:var(--accent-cool);color:#d9f3d5}.bar-btn.is-pressed:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000002e}.bar-btn-danger{border-color:#b222228c;color:#ffd7d7}.bar-btn-danger:hover{background:var(--danger-soft)}.bar-btn:disabled{background:#101010;border-color:var(--border);color:var(--text-dim);cursor:not-allowed;box-shadow:none}.bar-btn-small{padding:4px 8px;font-size:10px}.bar-btn.hidden,.world-only-control{display:none}body[data-app-mode=world] .world-only-control,body[data-app-mode=play-world] .world-only-control{display:inline-flex}.world-btn-play:not(:disabled){border-color:#34743373;color:#d9f3d5}.world-btn-play.active{background:var(--danger-soft);border-color:#b2222285;color:#ffd7d7}.world-btn-edit:not(:disabled){border-color:#ffc10766;color:#ffe7a0}.world-btn-build:not(:disabled){border-color:#ff6f3c7a;color:#ffd1bf}.world-btn-leaderboard,.world-btn-controls,.world-btn-zoom{border-color:#ffc1075c;color:#ffe7a0}.world-online-pill{align-items:center;min-height:24px;padding:3px 10px;border-radius:999px;border:1px solid rgba(52,116,51,.4);background:var(--success-soft);color:#d9f3d5;font-size:11px}.history-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#050505b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.history-modal-panel{width:min(680px,calc(100vw - 40px));max-height:min(720px,calc(100vh - 40px));display:flex;flex-direction:column;gap:12px;padding:16px;background:#0b0b0bf5;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 18px 48px #0000006b}.controls-modal-panel{width:min(720px,calc(100vw - 40px))}.controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.controls-section{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f3eee208;border:1px solid rgba(243,238,226,.08);border-radius:8px}.controls-section-title{color:var(--accent-warm);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.controls-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);font-size:12px}.controls-key{flex-shrink:0;padding:2px 8px;border-radius:999px;background:#f3eee214;border:1px solid rgba(243,238,226,.12);color:var(--accent-warm)}.history-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.history-modal-title-group{min-width:0}.history-modal-kicker{color:var(--text-muted);font-size:10px;letter-spacing:1px;text-transform:uppercase}.history-modal-title{margin-top:4px;font-size:20px;font-weight:400;color:var(--text)}.history-modal-meta{margin-top:6px;color:var(--text-muted);font-size:11px;line-height:1.5}.history-modal-error{padding:8px 10px;background:#ff6b6b1f;border:1px solid rgba(255,107,107,.35);border-radius:4px;color:#ffd7d7;font-size:11px;line-height:1.4}.history-version-list{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.history-version-empty{padding:16px 0;color:var(--text-muted);font-size:11px}.history-version-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px}.history-version-copy{min-width:0}.history-version-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.history-version-label{color:var(--text);font-size:13px}.history-version-badge{padding:2px 6px;border:1px solid var(--border-strong);border-radius:999px;color:var(--accent-warm);font-size:10px;letter-spacing:.4px;text-transform:uppercase}.history-version-meta{margin-top:4px;color:var(--text-muted);font-size:11px;line-height:1.4}.leaderboard-modal-panel{max-width:min(720px,calc(100vw - 32px))}.leaderboard-tabs{display:flex;gap:8px;padding:0 20px 12px}.leaderboard-panel{display:flex;flex-direction:column;gap:10px;padding:0 20px 20px}.leaderboard-controls{display:flex;align-items:center;gap:10px}.leaderboard-row{display:grid;grid-template-columns:40px minmax(0,1.8fr) minmax(0,1fr) 70px 110px;gap:10px;align-items:center}.leaderboard-row.leaderboard-global-row{grid-template-columns:40px minmax(0,2fr) 100px 110px 90px}.leaderboard-rank{color:var(--accent-warm)}.leaderboard-primary{color:var(--text)}.leaderboard-secondary{color:var(--text-muted);font-size:11px}.leaderboard-viewer{color:var(--accent-cool)}.leaderboard-empty{color:var(--text-muted);padding:6px 0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#676153}.hidden{display:none!important}body[data-device-class=tablet][data-coarse-pointer=true] .bar-btn,body[data-device-class=tablet][data-coarse-pointer=true] .tool-btn,body[data-device-class=tablet][data-coarse-pointer=true] .layer-btn,body[data-device-class=tablet][data-coarse-pointer=true] .palette-tab,body[data-device-class=tablet][data-coarse-pointer=true] .obj-cat-tab,body[data-device-class=tablet][data-coarse-pointer=true] .object-item{min-height:44px}body[data-device-class=tablet][data-app-mode=editor] #sidebar{width:340px}body[data-device-class=tablet][data-coarse-pointer=true] #auth-panel{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right))}body[data-device-class=phone] #app{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}body[data-device-class=phone] #bottom-bar{height:auto;min-height:52px;padding:8px calc(10px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(10px + var(--safe-left));gap:10px;flex-wrap:wrap}body[data-device-class=phone] .bar-left,body[data-device-class=phone] .bar-right,body[data-device-class=phone] .bar-center{flex-wrap:wrap}body[data-device-class=phone][data-app-mode=editor] #game-container,body[data-device-class=phone][data-app-mode=world] #game-container,body[data-device-class=phone][data-app-mode=play-world] #game-container{grid-column:1 / -1}.world-hud-mobile-toggle,.world-hud-toggle{white-space:nowrap}.world-hud-toggle{position:absolute;top:calc(8px + var(--safe-top));left:calc(8px + var(--safe-left));z-index:11}body[data-device-class=phone] #world-hud{top:calc(8px + var(--safe-top));left:calc(8px + var(--safe-left));right:auto;width:min(296px,calc(100vw - 96px - var(--safe-left) - var(--safe-right)));max-width:calc(100vw - 96px - var(--safe-left) - var(--safe-right));padding:12px;gap:10px;transition:transform .16s ease,opacity .16s ease}body[data-device-class=phone] .world-goal-panel{top:calc(8px + var(--safe-top));right:auto;left:50%;transform:translate(-50%);min-width:0;width:min(230px,calc(100vw - 120px - var(--safe-left) - var(--safe-right)));max-width:calc(100vw - 120px - var(--safe-left) - var(--safe-right));padding:10px 12px;gap:4px}body[data-device-class=phone] .world-goal-panel-goal,body[data-device-class=phone] .world-goal-panel-timer{font-size:13px}body[data-device-class=phone] .world-goal-panel-progress{font-size:11px}body[data-device-class=phone][data-mobile-world-hud-collapsed=true] #world-hud{transform:translateY(calc(-100% - 14px));opacity:0;pointer-events:none}body[data-device-class=phone] #auth-panel{left:calc(8px + var(--safe-left));right:calc(8px + var(--safe-right));width:auto}body[data-device-class=phone] #menu-body{width:100%;max-width:none}body[data-device-class=phone] .world-room-title{font-size:18px}body[data-device-class=phone] .world-hud-title{font-size:11px}body[data-device-class=phone] .world-hud-row{gap:6px}body[data-device-class=phone] #world-jump-row{display:none}body[data-device-class=phone] .world-hud-toggle{top:calc(8px + var(--safe-top));left:calc(8px + var(--safe-left))}body[data-device-class=phone] #global-chat{right:calc(8px + var(--safe-right));left:calc(8px + var(--safe-left));width:auto;bottom:calc(60px + var(--safe-bottom))}body[data-device-class=phone] #global-chat .chat-panel-body{max-height:58vh;border-radius:14px}body[data-device-class=phone][data-app-mode=editor] #sidebar{position:fixed;left:0;right:0;bottom:calc(94px + var(--safe-bottom));top:auto;z-index:17;width:auto;max-height:31vh;border-right:none;border-top:1px solid var(--border);background:#0b0b0bf5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:16px 16px 0 0;box-shadow:0 -20px 48px #00000057;transition:transform .16s ease,opacity .16s ease}body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-collapsed=true] #sidebar{transform:translateY(calc(100% + 20px));opacity:0;pointer-events:none}body[data-device-class=phone][data-app-mode=editor] #sidebar .sidebar-section{display:none}body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=tools] #sidebar .sidebar-section[data-mobile-panel=tools],body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=palette] #sidebar .sidebar-section[data-mobile-panel=palette],body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=objects] #sidebar .sidebar-section[data-mobile-panel=objects],body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=objects] #sidebar .sidebar-section[data-mobile-panel-alt=objects],body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=goal] #sidebar .sidebar-section[data-mobile-panel=goal],body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=actions] #sidebar .sidebar-section[data-mobile-panel=actions]{display:block}body[data-device-class=phone][data-app-mode=editor][data-mobile-editor-sheet=actions] #sidebar .editor-action-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}body[data-device-class=phone][data-app-mode=editor] #sidebar .sidebar-section{padding:8px 12px}body[data-device-class=phone][data-app-mode=editor] #sidebar .section-label{margin-bottom:6px}body[data-device-class=phone][data-app-mode=editor] #tools,body[data-device-class=phone][data-app-mode=editor] #layers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}body[data-device-class=phone][data-app-mode=editor] #layers{grid-template-columns:repeat(3,minmax(0,1fr))}body[data-device-class=phone][data-app-mode=editor] #palette-container{flex:none;max-height:152px;overflow:auto}body[data-device-class=phone][data-app-mode=editor] #palette-canvas{margin:0 auto}body[data-device-class=phone][data-app-mode=editor] .object-category-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}body[data-device-class=phone][data-app-mode=editor] #object-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,minmax(70px,1fr));grid-auto-columns:86px;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 6px}body[data-device-class=phone][data-app-mode=editor] .object-item{min-height:70px}body[data-device-class=phone][data-app-mode=editor] .palette-hint{padding-top:2px}body[data-device-class=phone][data-app-mode=editor] #room-title-section,body[data-device-class=phone][data-app-mode=editor] #goal-section{max-height:calc(31vh - 22px);overflow:auto}body[data-device-class=phone] .chat-form,body[data-device-class=phone] .mobile-jump-sheet-form,body[data-device-class=phone] .leaderboard-controls{flex-direction:column;align-items:stretch}body[data-device-class=phone] .leaderboard-row,body[data-device-class=phone] .leaderboard-row.leaderboard-global-row{grid-template-columns:32px minmax(0,1fr)}body[data-device-class=phone] .leaderboard-row>:nth-child(n+3){grid-column:2}body[data-device-class=phone] .history-modal,body[data-device-class=phone] #mobile-jump-sheet{padding:0}body[data-device-class=phone] .history-modal-panel,body[data-device-class=phone] .mobile-sheet-panel{width:100vw;max-width:none;max-height:100vh;min-height:100vh;border-radius:0;padding:calc(18px + var(--safe-top)) calc(14px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(14px + var(--safe-left))}body[data-device-class=phone][data-coarse-pointer=true] .object-item:hover,body[data-device-class=phone][data-coarse-pointer=true] .tool-btn:hover,body[data-device-class=phone][data-coarse-pointer=true] .layer-btn:hover,body[data-device-class=phone][data-coarse-pointer=true] .palette-tab:hover,body[data-device-class=phone][data-coarse-pointer=true] .obj-cat-tab:hover,body[data-device-class=phone][data-coarse-pointer=true] .bar-btn:hover,body[data-device-class=tablet][data-coarse-pointer=true] .object-item:hover,body[data-device-class=tablet][data-coarse-pointer=true] .tool-btn:hover,body[data-device-class=tablet][data-coarse-pointer=true] .layer-btn:hover,body[data-device-class=tablet][data-coarse-pointer=true] .palette-tab:hover,body[data-device-class=tablet][data-coarse-pointer=true] .obj-cat-tab:hover,body[data-device-class=tablet][data-coarse-pointer=true] .bar-btn:hover{background:inherit}@media(max-width:900px){#auth-panel{width:calc(100vw - 24px);top:12px;right:12px}#world-hud{top:12px;left:12px;width:min(340px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.history-modal{padding:12px}.history-modal-panel{width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:14px}.history-modal-header,.history-version-row{flex-direction:column;align-items:stretch}.controls-grid{grid-template-columns:1fr}.chat-panel{right:12px;bottom:48px;width:min(320px,calc(100% - 24px))}.chat-messages{max-height:min(196px,28vh)}}
