:root{--accent-cyan: 148 219 255;--accent-cyan-bright: 122 245 255;--accent-amber: 255 217 115;--bg-canvas: #05070d;--bg-panel: #0a1220;--bg-panel-raised: #101c30;--bg-input: #0c1524;--bg-hover: rgb(var(--accent-cyan) / .14);--bg-pressed: rgb(var(--accent-cyan) / .22);--border-subtle: rgb(var(--accent-cyan) / .16);--border-default: rgb(var(--accent-cyan) / .3);--border-strong: rgb(var(--accent-cyan) / .6);--border-focus: rgb(var(--accent-cyan-bright) / .95);--text-primary: #eaf6ff;--text-secondary: #a9c3de;--text-muted: #7690ad;--text-on-accent: #04101c;--status-good: #63e6a8;--status-danger: #ff8686;--shadow-panel: 0 16px 40px rgb(0 0 0 / .45);--glow-focus: 0 0 0 3px rgb(var(--accent-cyan-bright) / .35);--glow-accent: 0 0 24px rgb(158 235 255 / .18);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: var(--font-ui);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{color-scheme:dark}body{background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-ui);font-size:16px;line-height:1.5;min-height:100vh;min-height:100dvh;background-image:radial-gradient(1px 1px at 20% 30%,rgb(255 255 255 / .35),transparent),radial-gradient(1px 1px at 70% 65%,rgb(255 255 255 / .25),transparent),radial-gradient(1.5px 1.5px at 85% 20%,rgb(255 255 255 / .3),transparent),radial-gradient(1px 1px at 45% 80%,rgb(255 255 255 / .2),transparent),radial-gradient(1.5px 1.5px at 10% 75%,rgb(255 255 255 / .25),transparent);background-attachment:fixed}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit}input{font:inherit}a{color:rgb(var(--accent-cyan-bright))}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--glow-focus);border-radius:var(--radius-sm)}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-3);top:-3rem;background:var(--bg-panel-raised);color:var(--text-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border-strong);z-index:100;transition:top .15s ease}.skip-link:focus{top:var(--space-3)}.panel{background:#0a1220e0;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-5);background:var(--bg-panel-raised);color:var(--text-primary);border:2px solid var(--border-default);border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,transform .08s ease;user-select:none}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn:active{background:var(--bg-pressed);transform:scale(.97)}.btn-primary{background:rgb(var(--accent-cyan) / .16);border-color:rgb(var(--accent-cyan-bright) / .7)}.btn-primary:hover{background:rgb(var(--accent-cyan) / .3)}.btn-danger{border-color:#ff868680;color:#ffb3b3}.btn-danger:hover{background:#ff868624;border-color:#ff8686d9}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--bg-hover);border-color:var(--border-subtle)}.btn-block{width:100%}.btn .icon{font-size:1.15em}.menu-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);width:min(560px,100%)}.menu-nav .btn{min-height:64px;font-size:1.05rem;justify-content:flex-start;padding-left:var(--space-5)}@media (max-width: 480px){.menu-nav{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label{font-size:.85rem;color:var(--text-secondary)}.text-input{background:var(--bg-input);border:2px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);padding:var(--space-2) var(--space-3);min-height:44px}.text-input:hover{border-color:var(--border-strong)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4)}.toggle-row .toggle-text{display:flex;flex-direction:column;gap:2px}.toggle-row .toggle-title{font-size:1rem}.toggle-row .toggle-desc{font-size:.82rem;color:var(--text-muted)}.toggle{position:relative;display:inline-flex;align-items:center;flex:none}.toggle input{position:absolute;width:52px;height:30px;margin:0;opacity:0;cursor:pointer}.toggle .track{width:52px;height:30px;border-radius:999px;background:rgb(var(--accent-cyan) / .18);border:1px solid var(--border-default);transition:background-color .15s ease;position:relative;pointer-events:none}.toggle .thumb{position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:var(--text-secondary);transition:transform .15s ease,background-color .15s ease;pointer-events:none}.toggle input:checked+.track{background:rgb(var(--accent-cyan) / .75)}.toggle input:checked+.track .thumb{transform:translate(22px);background:var(--text-on-accent)}.toggle input:focus-visible+.track{box-shadow:var(--glow-focus)}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3)}.level-card{display:flex;align-items:center;gap:var(--space-3);text-align:left;text-decoration:none;min-height:92px;padding:var(--space-3) var(--space-4);background:#0a1220f0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.level-card .level-name{text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .12s ease}.level-card:hover .level-name,.level-card:focus-visible .level-name{text-decoration-color:currentColor}.level-card:hover{background:#14243afa;border-color:var(--border-strong)}.level-card .level-index{font-size:.8rem;color:var(--text-muted);min-width:2.4em}.level-card .level-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.level-card .level-name{font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-card .level-meta{font-size:.78rem;color:var(--text-muted)}.level-card .level-status{display:flex;align-items:center;gap:6px;color:var(--status-good);flex:none}.level-card .level-status .icon{font-size:1.2em}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-1)}.tab{background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:.95rem}.tab[aria-selected=true]{color:var(--text-primary);border-bottom-color:rgb(var(--accent-cyan-bright))}.tab:hover{color:var(--text-primary)}.craft-card{display:flex;align-items:center;gap:var(--space-4);width:100%;text-align:left;padding:var(--space-3) var(--space-4);background:#0a1220f0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer}.craft-card:hover{border-color:rgb(var(--accent-cyan-bright) / .5)}.craft-card[aria-pressed=true]{border-color:var(--border-strong);background:#14283efa}.craft-card .craft-glyph{flex:none;width:56px;height:56px;border-radius:var(--radius-sm);background:var(--bg-input);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:rgb(var(--accent-cyan-bright))}.craft-card .craft-info{flex:1;display:flex;flex-direction:column;gap:2px}.craft-card .craft-tag{font-size:.8rem;color:var(--text-muted)}.craft-badge{font-size:.72rem;letter-spacing:.04em;color:var(--status-good)}.overlay{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;background:#02050cbf;z-index:50;padding:var(--space-4);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.dialog{width:min(480px,100%);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);margin:auto;flex-shrink:0}.dialog h2{font-size:1.6rem;text-align:center}.dialog .dialog-sub{text-align:center;color:var(--text-secondary);font-size:.9rem}.dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.dialog-actions .btn-block-single{grid-column:1 / -1}.status-card{padding:var(--space-4)}.control-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}.control-row .btn{min-width:140px;min-height:44px;padding:var(--space-2) var(--space-3)}.control-row .btn[aria-pressed=true]{border-color:rgb(var(--accent-cyan-bright));background:rgb(var(--accent-cyan) / .3)}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.screen{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-6) var(--space-4);gap:var(--space-5)}.screen-shell{width:min(980px,100%);display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6)}.screen-header{display:flex;flex-direction:column;gap:var(--space-1)}.screen-header h1{font-size:clamp(1.6rem,4vw,2.1rem);letter-spacing:.01em}.screen-header .subtitle{color:var(--text-secondary);font-size:.95rem}.screen-footer{display:flex;justify-content:flex-start}.menu-screen{justify-content:center;flex:1;min-height:100vh;min-height:100dvh}.menu-title{font-family:var(--font-display);font-size:clamp(2.6rem,9vw,4.6rem);font-weight:700;letter-spacing:.03em;text-align:center;color:rgb(var(--accent-cyan-bright));text-shadow:var(--glow-accent)}.menu-subtitle{text-align:center;color:var(--text-secondary);max-width:34rem;margin:0 auto}.menu-card{width:min(560px,100%);padding:var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.level-select-shell{width:min(1200px,100%)}.level-select-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.workshop-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:var(--space-5);align-items:stretch}@media (max-width: 760px){.workshop-layout{grid-template-columns:1fr}}.workshop-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-6);min-height:320px}.workshop-preview .craft-glyph-large{width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgb(var(--accent-cyan) / .22),transparent 70%);display:flex;align-items:center;justify-content:center;font-size:5rem;color:rgb(var(--accent-cyan-bright))}.craft-list,.settings-toggles{display:flex;flex-direction:column;gap:var(--space-3)}.settings-toggles .panel{padding:0}.controls-section{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4)}.controls-section h2{font-size:1.2rem}.credits-screen{justify-content:center;flex:1;min-height:100vh;min-height:100dvh;text-align:center}.credits-card{width:min(480px,100%);padding:var(--space-7) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.credits-card .game-name{font-size:clamp(2.1rem,8vw,2.6rem);font-weight:700;color:rgb(var(--accent-cyan-bright))}.credits-sections{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-auto-rows:auto;gap:var(--space-4) var(--space-5)}.credits-sections .credits-section:last-child{grid-column:1 / -1}.credits-section{display:grid;grid-row:span 2;grid-template-rows:subgrid;gap:var(--space-1);align-content:start}.credits-role{font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--text-secondary)}.credits-card .names{font-size:1.05rem;color:var(--text-primary);text-wrap:balance}.credits-card .credits-note{color:var(--text-muted);font-size:.8rem;width:100%;padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.credits-card .thanks{color:var(--text-muted);font-size:.9rem}.play-screen{width:100%;min-height:100vh;min-height:100dvh;padding:0;align-items:stretch;gap:0}.play-chrome{display:flex;align-items:center;justify-content:flex-end;min-height:52px;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle)}.play-canvas-wrap{flex:1;display:block;position:relative;min-height:0}.sb-gauge-root{position:absolute;inset:0}.play-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;background:radial-gradient(ellipse at center,#0b1526,#05070d 70%)}.play-canvas,.editor-canvas{touch-action:none}.play-ready{margin:auto;text-align:center}.play-ready-actions{display:flex;justify-content:center;padding:var(--space-2) 0}.play-ready-actions .btn{min-width:220px}.play-leaderboard{display:none;width:min(600px,calc(100% - 2 * var(--space-4)));max-height:34vh;overflow-y:auto;margin:0 auto;padding:var(--space-4);border-top:1px solid var(--border-subtle)}.play-leaderboard.play-leaderboard-visible{display:block}.placeholder-screen{justify-content:center;flex:1;min-height:60vh;text-align:center;gap:var(--space-4)}.editor-screen{width:100%;min-height:100vh;min-height:100dvh;padding:0;align-items:stretch;gap:0}.editor-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle)}.editor-body{flex:1;display:flex;min-height:0}.editor-canvas-wrap{position:relative;flex:1;min-width:0;display:block}.editor-canvas{width:100%;height:100%;display:block}.editor-touch-note{position:absolute;left:50%;bottom:var(--space-2);transform:translate(-50%);margin:0;padding:2px var(--space-3);max-width:calc(100% - 2 * var(--space-3));background:#05070d99;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.78rem;text-align:center;pointer-events:none}.editor-panel{width:260px;max-width:40vw;overflow-y:auto}@media (max-width: 640px){.editor-body{flex-direction:column}.editor-canvas-wrap{min-height:40vh;flex:1 1 auto}.editor-panel{width:100%;max-width:none;max-height:45vh;flex:0 0 auto;overflow-y:auto}}.dialog-errors{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:var(--space-1);color:var(--status-danger);font-size:.9rem;text-align:left}@media (max-width: 480px){.screen{padding:var(--space-4) var(--space-3)}.screen-shell,.menu-card,.credits-card{padding:var(--space-4)}.level-select-header{flex-direction:column;align-items:stretch}.dialog-actions{grid-template-columns:1fr}}.sb-hud{position:absolute;inset:0;pointer-events:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#eaf6ff;z-index:10}.sb-hud-bounds-glow{position:absolute;inset:0;pointer-events:none;opacity:0;box-shadow:inset 0 0 12vmin var(--sb-hud-glow-color, rgba(255, 90, 70, .6));border:3px solid rgba(255,90,70,.55);transition:opacity .12s linear}.sb-hud-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:max(10px,env(safe-area-inset-top)) 14px 0 14px}.sb-hud-level{background:#060a128c;border-radius:10px;padding:6px 12px;backdrop-filter:blur(4px);transition:opacity .5s ease;max-width:60vw}.sb-hud-level.sb-faded{opacity:.35}.sb-hud-level-text{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-hud-level-author{font-size:11px;color:#a9c3de}.sb-hud-stats{background:#060a128c;border-radius:10px;padding:6px 12px;text-align:right;font-variant-numeric:tabular-nums;font-size:13px;line-height:1.5;backdrop-filter:blur(4px)}.sb-hud-stats .sb-hidden{display:none}.sb-hud-best{color:#a9c3de;font-size:12px}.sb-hud-fps{color:#7690ad;font-size:11px}.sb-hud-hint{position:absolute;top:64px;left:50%;transform:translate(-50%);max-width:min(560px,86vw);text-align:center;background:#060a1299;border:1px solid rgba(148,219,255,.25);border-radius:10px;padding:6px 14px;font-size:12px;color:#cfe6f7;opacity:0;transition:opacity .2s ease}.sb-hud-hint.sb-visible{opacity:1}.sb-hud-pause-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#a9c3de;opacity:0;transition:opacity .15s ease}.sb-hud-pause-indicator.sb-visible{opacity:1}.sb-pause-root,.sb-complete-root{position:absolute;inset:0;z-index:20;pointer-events:none}.sb-pause-root>.overlay,.sb-complete-root>.sb-complete-overlay{pointer-events:auto}.sb-complete-overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;background:#03050ab8;padding:16px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.sb-complete-panel{background:#0a1220;border:1px solid rgba(148,219,255,.25);border-radius:16px;padding:22px;width:min(420px,100%);box-shadow:0 16px 40px #00000073;margin:auto;flex-shrink:0}.sb-complete-panel h2{margin:0 0 4px;font-size:20px}.sb-complete-level{margin:0 0 16px;color:#a9c3de;font-size:13px}.sb-complete-stat{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid rgba(148,219,255,.12);font-variant-numeric:tabular-nums}.sb-complete-stat-label{flex:1;color:#a9c3de;font-size:13px}.sb-complete-stat-value{font-size:16px;font-weight:600}.sb-complete-badge{background:#7af5ff2e;color:#7af5ff;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 6px;border-radius:999px}.sb-complete-previous,.sb-complete-rank{margin:10px 0 0;font-size:12px;color:#7690ad}.sb-complete-rank.sb-hidden{display:none}.sb-complete-actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}.sb-complete-actions .btn{appearance:none;border:1px solid rgba(148,219,255,.3);background:#94dbff1a;color:#eaf6ff;border-radius:10px;padding:10px 14px;font-size:14px;cursor:pointer}.sb-complete-actions .btn-primary{background:#7af5ff;color:#04101c;border-color:transparent;font-weight:700}.sb-toast-layer{position:absolute;top:4px;left:50%;transform:translate(-50%);pointer-events:none;z-index:30}.sb-toast{background:#060a12d9;border:1px solid rgba(148,219,255,.3);border-radius:999px;padding:8px 18px;font-size:13px;color:#eaf6ff;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s cubic-bezier(.2,1.4,.4,1)}.sb-toast.sb-toast-enter,.sb-toast.sb-toast-visible{opacity:1;transform:translateY(0)}.sb-toast.sb-toast-exit{opacity:0;transform:translateY(-4px);transition:opacity .4s ease,transform .4s ease}@media (max-width: 400px){.sb-hud-top{flex-direction:column;align-items:stretch;gap:6px}.sb-hud-level,.sb-hud-stats{max-width:100%}.sb-hud-stats{text-align:left}.sb-hud-hint{top:auto;bottom:46%;max-width:92vw}.sb-complete-panel{padding:16px}}.sb-lb-panel{display:flex;flex-direction:column;gap:var(--space-2, 8px);font-family:var(--font-ui, system-ui, sans-serif);color:var(--text-primary, #eaf6ff)}.sb-lb-title{margin:0;font-size:.95rem;font-weight:600;color:var(--text-secondary, #a9c3de);text-transform:uppercase;letter-spacing:.04em}.sb-lb-status{display:flex;align-items:center;gap:var(--space-2, 8px);margin:0;padding:var(--space-3, 12px);color:var(--text-muted, #7690ad);font-size:.9rem}.sb-lb-status svg{width:16px;height:16px;flex:none}.sb-lb-offline{color:var(--text-secondary, #a9c3de)}.sb-lb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto}.sb-lb-row{display:grid;grid-template-columns:2.5rem 1fr auto auto auto;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);border-radius:var(--radius-sm, 10px);background:var(--bg-panel, #0a1220)}.sb-lb-row-unverified{opacity:.72}.sb-lb-row-you{background:var(--bg-hover, rgb(148 219 255 / .14));outline:1px solid var(--border-strong, rgb(148 219 255 / .6))}.sb-lb-rank{font-variant-numeric:tabular-nums;color:var(--text-muted, #7690ad);font-size:.85rem}.sb-lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;min-width:0}.sb-lb-verified{display:inline-flex;color:var(--status-good, #63e6a8)}.sb-lb-verified svg{width:14px;height:14px}.sb-lb-time,.sb-lb-boost{font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--text-secondary, #a9c3de);white-space:nowrap}.sb-lb-worldbest{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary, #a9c3de);font-size:.85rem}.sb-lb-worldbest-dot{width:6px;height:6px;border-radius:50%;background:var(--status-good, #63e6a8);display:inline-block}@media (max-width: 420px){.sb-lb-row{grid-template-columns:2rem 1fr auto;grid-template-areas:"rank name verified" "time time boost";row-gap:2px}.sb-lb-rank{grid-area:rank}.sb-lb-name{grid-area:name}.sb-lb-verified{grid-area:verified}.sb-lb-time{grid-area:time}.sb-lb-boost{grid-area:boost;justify-self:end}}
