@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700;800&family=Fraunces:opsz,wght@9..144,700;9..144,800&display=swap");:root{--ink:#292541;--muted:#77728e;--paper:#f8f5ed;--panel:#fffdf7;--plum:#5c3979;--plum-dark:#3c2555;--gold:#f4bd4b;--mint:#83c7a3;--coral:#e98570;--line:#ded8cc}*{box-sizing:border-box}html{min-height:100%;background:#17142b}body{margin:0;min-height:100vh;color:var(--ink);font-family:DM Sans,sans-serif;background:var(--paper)}button{font:inherit}button:focus-visible{outline:3px solid #f3a93b;outline-offset:3px}.app-shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:32px 0 24px}.hero{width:100vw;margin-left:calc(50% - 50vw);background:radial-gradient(circle at 50% -10%,#5a3e70 0,transparent 33%),#262039;padding-bottom:18px;box-shadow:0 12px 20px -14px #00000055}.hero-inner{width:min(1180px,calc(100% - 32px));margin:auto}.masthead{height:105px;color:white;display:flex;justify-content:space-between;align-items:flex-start}.masthead h1{font:800 clamp(2.5rem,6vw,4.5rem)/.85 Fraunces,serif;margin:8px 0;letter-spacing:-.04em}.eyebrow{display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--muted)}.masthead .eyebrow{color:#d5c9df}.masthead-actions{display:flex;align-items:center;gap:18px}.masthead-actions>a{color:#f5eee2;text-decoration:none;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;border-bottom:2px solid #f4bd4b;padding:7px 2px}.brand-mark{width:54px;height:54px;border:1px solid #ffffff40;border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:1.6rem}.masthead-actions a.brand-mark{border-bottom:0;padding:0;text-decoration:none}.world-picker{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:6px 0 10px}.world-picker button{border:0;background:#ddd7cb;color:#8b8491;padding:8px 16px;border-radius:20px;font-weight:800;font-size:.78rem;cursor:pointer;transition:.15s}.world-picker button.selected{background:var(--plum);color:white;box-shadow:0 4px 0 #38224d;transform:translateY(-2px)}.world-picker button:disabled{cursor:not-allowed;opacity:.55}.level-picker{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:6px 0 20px}.level-picker button{border:0;background:#ddd7cb;color:#8b8491;width:38px;height:38px;border-radius:50%;font-weight:800;cursor:pointer;transition:.15s}.level-picker button.selected{background:var(--plum);color:white;box-shadow:0 4px 0 #38224d;transform:translateY(-2px)}.level-picker button:disabled{cursor:not-allowed;opacity:.55}.level-picker button .lock-icon{display:block;margin:auto}.game-layout{display:grid;grid-template-columns:minmax(180px,220px) minmax(300px,1fr) minmax(220px,270px);align-items:start;grid-gap:26px;gap:26px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px #3c2e2210}.mission-card{padding:25px}.mission-card h2{font:800 1.7rem/1.08 Fraunces,serif;margin:8px 0 12px}.mission-card p{color:var(--muted);font-size:.9rem;line-height:1.55;margin:0 0 20px}.status{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:18px 0;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.status i{width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #83c7a326}.status-won i{background:var(--gold)}.status-lost i{background:var(--coral)}.stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.stats div{background:#f1ede4;border-radius:11px;padding:11px}.stats strong{display:block;font:800 1.5rem Fraunces,serif}.stats span{color:var(--muted);text-transform:uppercase;font-size:.62rem;letter-spacing:.1em;font-weight:700}.board-wrap{position:relative;padding:18px;background:#302b35;border:4px solid #675b6d;border-radius:4px;box-shadow:0 10px 0 #17131c,8px 18px 0 #2b223233,inset 0 0 0 6px #211c27;image-rendering:pixelated}.board-wrap:after,.board-wrap:before{content:"";position:absolute;top:45%;width:8px;height:28px;border-radius:50%;background:#f1a63b;box-shadow:0 0 8px #ffcc64,0 0 22px #e07e31;z-index:6;pointer-events:none}.board-wrap:before{left:4px}.board-wrap:after{right:4px}.board{display:grid;width:100%;max-height:600px;border:5px solid #17131b;background:#302a34;border-radius:0;overflow:hidden;box-shadow:inset 0 0 0 3px #0008}.cell{aspect-ratio:1/1;border:1px solid #9b8c7952;position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:0;cursor:pointer;background-color:#b9aa91;background-image:linear-gradient(135deg,#ffffff12 25%,transparent 0),linear-gradient(315deg,#0000000c 25%,transparent 0);background-size:24px 24px;color:#574362;overflow:hidden}.cell:after{content:"";position:absolute;inset:5%;border:1px solid #ffffff1c;border-radius:4px;pointer-events:none}.tile-wall{cursor:default;background-color:#4a414d;background-image:linear-gradient(90deg,#81748355 3px,transparent 0),linear-gradient(180deg,#211b2855 3px,transparent 0),linear-gradient(90deg,transparent 50%,#211b2850 0);background-size:28px 14px,28px 14px,56px 28px;box-shadow:inset 0 0 0 3px #302a34}.tile-door,.tile-gold,.tile-hole,.tile-portal,.tile-redirect,.tile-spike,.tile-water{background:#302a34;color:#d7d0c4}.tile-spike.active{box-shadow:inset 0 0 12px #cf5d5540}.tile-icon{position:absolute;inset:0;z-index:1;line-height:1;pointer-events:none}.pixel-sprite{display:block;width:100%;height:100%;image-rendering:pixelated}.animations-paused *{animation-play-state:paused!important}.pixel-floor,.pixel-wall{position:absolute;inset:0;z-index:0}.pixel-door,.pixel-hole,.pixel-key,.pixel-portal,.pixel-redirect,.pixel-spikes,.pixel-treasure{position:absolute;inset:7%;width:86%;height:86%;margin:auto;z-index:1}.pixel-bridge,.pixel-water{position:absolute;inset:0}.spike-blades{transform-origin:50% 80%;transition:transform .18s steps(3)}.pixel-spikes[data-state=inactive] .spike-blades{transform:translateY(20px)}.pixel-spikes[data-state=active] .spike-blades{transform:translateY(0)}.water-lines{animation:water-flow 2.2s steps(4) infinite}.portal-runes{transform-origin:12px 12px;animation:portal-pulse 1.8s steps(4) infinite}.tile-gold .pixel-treasure{filter:drop-shadow(3px 3px 0 #18121aaa)}.treasure-coins{animation:coin-glint 2.4s steps(2) infinite}.pixel-treasure[data-state=opening] .chest-lid{transform-origin:12px 11px;animation:chest-open .5s steps(3) forwards}.pixel-treasure[data-state=opening] .treasure-coins{animation:coin-burst .6s steps(4)}.pixel-door[data-variant=open] .door-panel{transform-origin:4px 12px;transform:scaleX(.18)}.event-door-open .door-panel{animation:door-open .3s steps(3) forwards}.event-redirect .redirect-arrow{animation:redirect-pulse .22s steps(2)}.event-portal-enter .portal-runes,.event-portal-exit .portal-runes{animation:portal-flash .24s steps(3)}.bridged{background:#407d8d}.bridged .pixel-bridge{position:absolute;inset:6%;width:88%;height:88%;margin:auto;filter:brightness(.88) saturate(.8)}.event-crate-bridge .pixel-bridge{animation:bridge-build .34s steps(4)}.character,.object{position:absolute;z-index:3;display:grid;place-items:center;line-height:1}.crate{width:82%;height:82%;filter:drop-shadow(4px 4px 0 #21171a99)}.block{width:86%;height:86%;filter:drop-shadow(4px 4px 0 #1c202c99)}.preview{color:#697894;opacity:.62;animation:pulse 1s infinite}.placed-pop{animation:block-place .26s steps(4)}.cell.pending{box-shadow:inset 0 0 0 4px #fff3a0}.character{width:84%;height:88%;filter:drop-shadow(4px 4px 0 #241a2b99);transform-origin:50% 82%}.character[data-state=walk]{animation:walk-in .16s steps(2)}.character[data-state=walk][data-direction=right]{--enter-x:-70%;--enter-y:0;--mid-x:-35%;--mid-y:0}.character[data-state=walk][data-direction=left]{--enter-x:70%;--enter-y:0;--mid-x:35%;--mid-y:0}.character[data-state=walk][data-direction=down]{--enter-x:0;--enter-y:-70%;--mid-x:0;--mid-y:-35%}.character[data-state=walk][data-direction=up]{--enter-x:0;--enter-y:70%;--mid-x:0;--mid-y:35%}.pixel-adventurer[data-facing=left] .sprite-body,.pixel-adventurer[data-facing=left] .sprite-sword{transform-origin:12px 12px;transform:scaleX(-1)}.pixel-adventurer[data-facing=up] .sprite-body{filter:brightness(.82)}.character[data-state=push]{animation:hero-push .22s steps(3)}.character[data-state=bump]{animation:hero-bump .22s steps(3)}.character[data-state=fall]{z-index:2;animation:hero-fall .62s steps(6) forwards}.character[data-state=spike-defeat]{animation:hero-spike-fall .62s steps(5) forwards}.character[data-state=water-defeat]{animation:hero-water-fall .62s steps(5) forwards}.character[data-state=victory]{animation:hero-victory .65s steps(5)}.event-crate-bridge:before,.event-door-open:before,.event-gold:before,.event-key-pickup:before{content:"";position:absolute;z-index:5;left:44%;top:42%;width:8%;height:8%;background:#ffe77a;box-shadow:-12px -8px #ffe77a,13px -5px #f2b83f,-9px 12px #fff0a2,12px 11px #d89131;animation:pixels-burst .3s steps(3) forwards;pointer-events:none}.event-blocked:before{content:"";position:absolute;z-index:5;bottom:12%;left:25%;width:8%;height:8%;background:#d3c3a7;box-shadow:8px -3px #a79880,16px 2px #d3c3a7;animation:dust .22s steps(3) forwards}.event-crate-bridge:after,.event-hazard.tile-water:after{content:"";position:absolute;z-index:5;inset:15%;border:4px solid #b9eef0;animation:splash .34s steps(4) forwards;pointer-events:none}.is-lost .character[data-state=spike-defeat]{opacity:1}.result-banner{position:absolute;left:8%;right:8%;bottom:8%;z-index:5;background:#fffdf5ed;border:1px solid #d9cebb;border-radius:13px;padding:13px 16px;text-align:center;box-shadow:0 8px 24px #261a3144;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.result-banner span,.result-banner strong{display:block}.result-banner strong{font:800 1.15rem Fraunces,serif}.result-banner span{margin-top:3px;color:var(--muted);font-size:.8rem}.controls{padding:21px}.next-move{text-align:center;border-bottom:1px solid var(--line);padding-bottom:16px}.next-move strong{display:block;color:var(--plum);font-size:4.3rem;line-height:.9;margin:8px 0 3px}.next-move b{text-transform:uppercase;font-size:.72rem;letter-spacing:.12em}.queue{padding:17px 0;border-bottom:1px solid var(--line)}.queue>div{display:flex;justify-content:space-between;align-items:center}.queue small{color:var(--muted);font-size:.7rem}.queue ol{list-style:none;margin:11px 0 0;padding:0;display:flex;gap:6px;flex-wrap:wrap}.queue li{width:30px;height:30px;border-radius:7px;background:#eee9df;color:#8a8292;display:grid;place-items:center;font-weight:800}.queue li.current{background:var(--plum);color:white;box-shadow:0 3px 0 var(--plum-dark)}.inventory{padding:17px 0 12px}.inventory-item{margin-top:9px;width:100%;border:1px solid var(--line);background:#f2eee6;border-radius:10px;display:grid;grid-template-columns:30px 1fr auto;align-items:center;text-align:left;padding:9px;color:#aaa}.inventory-item.available{color:var(--ink)}.inventory-item span{color:#516078;font-size:1.5rem;position:relative;width:30px;height:30px}.inventory-item b{font-size:.78rem}.inventory-item em{font-style:normal;font-weight:800;color:var(--plum);font-size:.8rem}.inventory p{color:var(--muted);font-size:.67rem;line-height:1.35;margin:7px 0 0}.action-button{width:100%;border:0;background:var(--plum);color:white;border-radius:12px;padding:13px 15px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;box-shadow:0 5px 0 var(--plum-dark);cursor:pointer;display:flex;justify-content:center;gap:8px}.action-button:hover:not(:disabled){background:#6a4387}.action-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 var(--plum-dark)}.action-button:disabled{opacity:.45;cursor:not-allowed}.action-button kbd,.secondary-actions kbd{border:1px solid;border-radius:3px;padding:1px 4px;font:700 .58rem DM Sans,sans-serif;opacity:.7;box-shadow:0 1px 0 currentColor}.secondary-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:14px}.secondary-actions button{border:1px solid var(--line);border-radius:8px;background:transparent;padding:8px;color:var(--muted);font-size:.76rem;font-weight:700;cursor:pointer}.secondary-actions button:disabled{opacity:.35;cursor:not-allowed}.message{min-height:24px;text-align:center;margin:28px auto 8px;color:var(--muted);font-size:.82rem}footer{border-top:1px solid var(--line);padding:16px 0 0;display:flex;gap:22px;justify-content:center;color:#918b98;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}@keyframes pulse{50%{opacity:.35;transform:scale(.92)}}@keyframes glow{50%{transform:translateY(-3px);filter:drop-shadow(4px 6px 0 #2d1c18aa)}}@keyframes wave{50%{transform:translateY(-3px)}}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes water-flow{50%{transform:translateX(4px)}}@keyframes portal-pulse{50%{transform:scale(.88) rotate(8deg);opacity:.75}}@keyframes portal-flash{50%{transform:scale(1.18) rotate(15deg);filter:brightness(1.6)}}@keyframes coin-glint{50%{filter:brightness(1.45);transform:translateY(-1px)}}@keyframes chest-open{50%,to{transform:translateY(-4px) scaleY(.7)}}@keyframes coin-burst{50%{transform:translateY(-6px);filter:brightness(1.5)}}@keyframes door-open{to{transform:scaleX(.18)}}@keyframes redirect-pulse{50%{transform:scale(1.18);filter:brightness(1.5)}}@keyframes bridge-build{0%{transform:scale(.2);opacity:.2}to{transform:scale(1);opacity:1}}@keyframes hero-idle{50%{transform:translateY(-1px)}}@keyframes walk-in{0%{transform:translate(var(--enter-x),var(--enter-y)) scaleY(.92)}50%{transform:translate(var(--mid-x),var(--mid-y)) scaleY(1.04)}to{transform:none}}@keyframes hero-push{35%{transform:translateX(5%) skewY(-3deg)}70%{transform:translateX(-2%)}}@keyframes hero-bump{35%{transform:scaleX(1.12) scaleY(.88)}65%{transform:translateX(-5%) scaleX(.94)}}@keyframes hero-fall{30%{transform:scale(.82)}to{transform:translateY(42%) rotate(25deg) scale(.08);opacity:0}}@keyframes hero-spike-fall{25%{transform:translateY(-8%) rotate(-8deg)}to{transform:translateY(22%) rotate(82deg) scaleY(.82);filter:brightness(.75)}}@keyframes hero-water-fall{35%{transform:translateY(10%) scaleX(1.15)}to{transform:translateY(48%) scale(.35);opacity:0}}@keyframes hero-victory{25%{transform:translateY(-12%) rotate(-4deg)}50%{transform:translateY(-20%) rotate(4deg)}75%{transform:translateY(-8%)}}@keyframes pixels-burst{0%{transform:scale(.5);opacity:0}45%{transform:scale(1.25);opacity:1}to{transform:translateY(-8px) scale(.5);opacity:0}}@keyframes dust{0%{opacity:0;transform:translateY(5px)}50%{opacity:1}to{opacity:0;transform:translateY(-7px) scale(1.5)}}@keyframes splash{0%{transform:scale(.3);opacity:0}45%{opacity:1}to{transform:scale(1.15);opacity:0}}@keyframes block-place{0%{transform:scale(.25) translateY(-25%);opacity:.2}70%{transform:scale(1.08)}to{transform:none;opacity:1}}.event-portal-enter .character{animation:portal-vanish .24s steps(4)}.event-portal-exit .character{animation:portal-appear .26s steps(4)}@keyframes portal-vanish{to{transform:scale(.2) rotate(20deg);opacity:0}}@keyframes portal-appear{0%{transform:scale(.2) rotate(-20deg);opacity:0}to{transform:none;opacity:1}}@media (max-width:900px){.app-shell{width:min(680px,calc(100% - 24px));padding-top:22px}.masthead{height:82px}.masthead h1{font-size:2.7rem}.game-layout{grid-template-columns:1fr;gap:20px}.mission-card{display:grid;grid-template-columns:1fr auto;grid-column-gap:18px;column-gap:18px}.mission-card p{grid-column:1/-1}.mission-card .status{grid-column:1}.mission-card .stats{grid-column:2;grid-row:1/3;align-self:start}.board-wrap{width:min(100%,590px);margin:auto}.controls{display:grid;grid-template-columns:130px 1fr;grid-gap:0 22px;gap:0 22px}.next-move{grid-row:1/3;border-bottom:0;border-right:1px solid var(--line);padding:6px 18px 6px 0}.queue{padding-top:3px}.inventory{padding-bottom:15px}.action-button,.secondary-actions{grid-column:1/-1}}@media (max-width:520px){.app-shell{width:calc(100% - 18px)}.brand-mark{display:none}.level-picker{margin-bottom:14px}.level-picker button{width:34px;height:34px}.mission-card{padding:18px}.mission-card h2{font-size:1.4rem}.mission-card p{font-size:.8rem;margin-bottom:9px}.mission-card .stats{grid-column:1/-1;grid-row:auto}.mission-card .status{padding:12px 0}.board-wrap{padding:9px;border-radius:16px;box-shadow:0 8px 0 #2d2038,0 18px 30px #30233225}.controls{padding:16px;grid-template-columns:105px 1fr;gap:0 14px}.next-move strong{font-size:3.4rem}.queue li{width:27px;height:27px}.inventory p{display:none}footer{gap:10px;flex-wrap:wrap}.message{margin-top:22px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.shared-actions{text-align:center;margin:14px}.editor-back,.editor-header a,.shared-actions a{display:inline-block;background:var(--plum);color:white;text-decoration:none;border:0;padding:10px 16px;box-shadow:4px 4px 0 var(--plum-dark);font-weight:800;cursor:pointer}.editor-shell{width:min(1400px,calc(100% - 28px));margin:auto;padding:28px 0 50px}.editor-header{height:105px;color:white;display:flex;justify-content:space-between;align-items:flex-start}.editor-header h1{font:800 clamp(2.3rem,5vw,4rem)/1 Fraunces,serif;margin:7px 0}.editor-header a{margin-top:8px}.editor-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));grid-gap:12px;gap:12px;padding:16px;margin-bottom:18px}.editor-meta label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted)}.editor-meta input{width:100%;display:block;margin-top:5px;border:1px solid var(--line);background:#f4efe6;color:var(--ink);padding:9px;border-radius:4px;font:600 .85rem DM Sans,sans-serif}.editor-workspace{display:grid;grid-template-columns:210px minmax(320px,1fr) 260px;grid-gap:18px;gap:18px;align-items:start}.editor-palette,.editor-settings{padding:16px}.editor-palette>div{display:grid;grid-template-columns:1fr 1fr;grid-gap:7px;gap:7px;margin-top:12px}.editor-palette button{position:relative;min-height:68px;border:2px solid #d4ccbf;background:#eee8dc;color:var(--ink);padding:5px;cursor:pointer;overflow:hidden}.editor-palette button b,.editor-palette button span{display:block}.editor-palette button b{position:relative;width:34px;height:34px;margin:auto;overflow:hidden}.editor-palette button b>.pixel-sprite{position:static!important;inset:auto!important;width:100%!important;height:100%!important;margin:0!important}.editor-palette button span{font-size:.6rem}.editor-palette button.selected{border-color:var(--plum);background:#ded0e8;box-shadow:3px 3px 0 var(--plum-dark)}.editor-canvas-wrap{background:#302b35;border:5px solid #17131b;padding:12px;box-shadow:7px 9px 0 #17131c}.editor-canvas{display:grid;width:100%;margin:auto}.editor-cell{aspect-ratio:1;border:1px solid #7e716450;background:#302a34;position:relative;color:#514257;font-size:clamp(.8rem,2.7vw,2rem);cursor:crosshair;overflow:hidden;padding:0}.editor-cell.tile-wall{cursor:not-allowed}.editor-cell>span{position:absolute;inset:0}.editor-cell b{position:absolute;inset:10%;display:grid;place-items:center;filter:drop-shadow(3px 3px 0 #21171a88)}.editor-cell .editor-character{inset:8%}.queue-editor{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.queue-editor div{display:grid;grid-template-columns:20px 34px 22px 22px;background:#eee8dc;border:1px solid var(--line)}.queue-editor button{border:0;background:transparent;padding:2px;cursor:pointer}.queue-editor b{display:grid;place-items:center}.queue-add{display:flex;gap:7px;border-bottom:1px solid var(--line);padding-bottom:16px}.queue-add button{width:38px;height:38px;border:0;background:var(--plum);color:white;font-weight:900;cursor:pointer}.editor-history-label{margin-top:16px}.editor-history{display:flex;gap:6px;margin-top:8px}.editor-history button{flex:1 1;border:1px solid var(--line);background:#eee8dc;padding:7px;cursor:pointer}.editor-history button:disabled{opacity:.4}.validation-list{margin:14px 0;max-height:130px;overflow:auto}.validation-list p{font-size:.68rem;color:#b04d4b;margin:4px 0}.validation-list .valid{color:#397853}.test-button{width:100%;border:0;background:var(--plum);color:white;padding:11px;font-weight:800;box-shadow:0 4px 0 var(--plum-dark);cursor:pointer}.test-button:disabled{opacity:.4}.unverified,.verified{font-size:.68rem;line-height:1.4}.verified{color:#397853}.unverified{color:var(--muted)}.editor-output{margin-top:18px;padding:18px;display:grid;grid-template-columns:220px 1fr auto;grid-gap:16px;gap:16px;align-items:center}.editor-output h2{margin:4px 0;font:800 1.25rem Fraunces,serif}.editor-output textarea{min-height:140px;resize:vertical;background:#272331;color:#e8dfcf;border:0;padding:12px;font:12px/1.45 monospace}.editor-output>button,.published-link button{border:0;background:var(--plum);color:white;padding:11px 15px;font-weight:800;cursor:pointer}.editor-output>button:disabled{opacity:.4}.editor-output>p{grid-column:2/-1;margin:0;font-size:.75rem;color:var(--muted)}.published-link{display:flex;grid-column:2/-1}.published-link input{flex:1 1;min-width:0;padding:10px;border:1px solid var(--line)}.editor-test{padding-top:15px}.editor-back{margin:0 0 10px 20px}@media (max-width:1000px){.editor-workspace{grid-template-columns:180px 1fr}.editor-settings{grid-column:1/-1}.editor-meta{grid-template-columns:1fr 1fr 80px 80px 80px}.editor-output{grid-template-columns:1fr auto}.editor-output>div{grid-column:1/-1}}@media (max-width:650px){.editor-shell{width:calc(100% - 16px);padding-top:18px}.editor-header{height:90px}.editor-header h1{font-size:2.2rem}.editor-meta{grid-template-columns:1fr 1fr 1fr}.editor-meta label:nth-child(-n+2){grid-column:1/-1}.editor-workspace{grid-template-columns:1fr}.editor-palette>div{grid-template-columns:repeat(4,1fr)}.editor-canvas-wrap,.editor-settings{grid-column:1}.editor-output{grid-template-columns:1fr}.editor-output textarea,.editor-output>button{grid-column:1}}.cell:has(>.character:not([data-state=idle])){overflow:visible;z-index:4}.redirect-item{width:76%;height:76%}.inventory-item.selected{border-color:var(--plum);box-shadow:inset 0 0 0 2px var(--plum)}.audio-toggle{border:1px solid #ffffff66;background:#ffffff18;color:white;padding:8px 10px;font-weight:800;cursor:pointer}.celebration{position:fixed;left:50%;top:50%;width:min(580px,100vw);height:min(900px,96vh);z-index:31;overflow:hidden;pointer-events:none;transform:translate(-50%,-50%)}.celebration i{position:absolute;left:var(--x);top:-5%;width:var(--size);height:calc(var(--size) * 1.45);border-radius:1px;background:hsl(calc(var(--i, 1) * 47) 75% 60%);animation:confetti-fall var(--duration) var(--delay) cubic-bezier(.2,.6,.35,1) 1 forwards}.score-backdrop{position:fixed;inset:0;z-index:30;background:#17131bc2;display:grid;place-items:center;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.score-dialog{position:relative;z-index:32;width:min(460px,100%);background:var(--paper);border:5px solid #30233b;padding:28px;box-shadow:9px 11px 0 #120f16;text-align:center}.score-dialog h2{margin:5px 0 18px;font:800 2rem Fraunces,serif;color:var(--plum)}.score-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-bottom:18px}.score-stats div{background:#eee8dc;padding:13px}.score-stats span,.score-stats strong{display:block}.score-stats strong{font:800 1.6rem Fraunces,serif}.score-stats span{color:var(--muted);font-size:.7rem;text-transform:uppercase}.leaderboard-section{margin-bottom:18px;text-align:left;border:1px solid var(--line)}.leaderboard-section summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 10px;background:#e7dfd2;cursor:pointer;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.leaderboard-section summary small{color:var(--muted);font-size:.6rem;letter-spacing:0;text-transform:none}.leaderboard-section.campaign{opacity:.82}.leaderboard-section[open]{opacity:1}.leaderboard-panel{text-align:left}.leaderboard-empty{margin:0;padding:10px;background:#eee8dc;color:var(--muted);font-size:.8rem;text-align:center}.leaderboard-list{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto;border:1px solid var(--line)}.leaderboard-list li{display:grid;grid-template-columns:26px 1fr auto auto;grid-gap:8px;gap:8px;align-items:center;padding:7px 10px;font-size:.78rem;border-bottom:1px solid var(--line)}.leaderboard-list li:last-child{border-bottom:0}.leaderboard-list .lb-rank{font-weight:800;color:var(--muted)}.leaderboard-list .lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-list .lb-items,.leaderboard-list .lb-moves{color:var(--muted);font-size:.72rem;white-space:nowrap}.leaderboard-list .lb-items{color:var(--ink);font-weight:800}.leaderboard-list li.is-you{background:#f1e6c9;font-weight:800}.personal-best{display:grid;grid-template-columns:1fr auto;grid-gap:2px 10px;gap:2px 10px;align-items:center;padding:9px 10px;background:#f1e6c9;border-top:1px solid var(--line);font-size:.72rem}.personal-best span{color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.personal-best strong{grid-column:1}.personal-best b{grid-column:2;grid-row:1/3;color:var(--plum);font:800 1rem Fraunces,serif}.score-entry{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;align-items:end;padding:10px;text-align:left}.score-entry label span{display:block;font-size:.68rem;font-weight:800;text-transform:uppercase;margin-bottom:5px}.score-entry input{width:100%;padding:11px;border:1px solid var(--line);font:inherit}.score-actions button,.score-entry button{border:0;background:var(--plum);color:white;padding:12px 16px;font-weight:800;cursor:pointer}.score-actions button:disabled,.score-entry button:disabled{background:#aaa4ad;color:#e6e2e8;cursor:not-allowed}.score-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:18px}.score-actions button:first-child{background:#766d79}.score-actions.daily{grid-template-columns:1fr 1fr 1fr}.daily-streak{display:flex;align-items:baseline;gap:6px;margin:2px 0 10px;color:var(--plum)}.daily-streak strong{font:800 1.35rem Fraunces,serif}.daily-streak span{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.tutorial-root{position:fixed;inset:0;z-index:50;pointer-events:none}.tutorial-scrim{position:fixed;inset:0;background:#17131bd9;pointer-events:auto;transition:-webkit-clip-path .25s ease;transition:clip-path .25s ease;transition:clip-path .25s ease,-webkit-clip-path .25s ease}.tutorial-ring{position:fixed;border:3px solid var(--gold);border-radius:10px;box-shadow:0 0 0 4px #f4bd4b40,0 0 18px #f4bd4b80;pointer-events:none;transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease}.tutorial-callout{position:fixed;z-index:51;width:min(320px,calc(100vw - 32px));background:var(--paper);border:5px solid #30233b;padding:18px;box-shadow:9px 11px 0 #120f16;pointer-events:auto}.tutorial-callout p{margin:0 0 16px;line-height:1.5;font-size:.88rem;color:var(--ink)}.tutorial-callout-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.tutorial-skip{border:0;background:transparent;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;padding:6px 0}.tutorial-next{border:0;background:var(--plum);color:white;padding:10px 18px;font-weight:800;cursor:pointer;box-shadow:0 4px 0 var(--plum-dark)}@media (prefers-reduced-motion:reduce){.tutorial-ring,.tutorial-scrim{transition:none!important}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-12px) rotate(0)}6%{opacity:1}92%{opacity:1;transform:translate(var(--drift),840px) rotate(var(--turn))}to{opacity:0;transform:translate(var(--drift),900px) rotate(var(--turn))}}