@font-face{font-family:Luckiest Guy;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/luckiest-guy-latin-ext-400-normal-Dzj4o2hI.woff2)format("woff2"),url(/assets/luckiest-guy-latin-ext-400-normal-Dplr6uOI.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Luckiest Guy;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/luckiest-guy-latin-400-normal-dJClyBWO.woff2)format("woff2"),url(/assets/luckiest-guy-latin-400-normal-f5b8-b44.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-vietnamese-400-normal-65jA92mZ.woff2)format("woff2"),url(/assets/patrick-hand-vietnamese-400-normal-CZjY324Y.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-latin-ext-400-normal-Dno5CMlI.woff2)format("woff2"),url(/assets/patrick-hand-latin-ext-400-normal-C2ywpnn3.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-latin-400-normal-B7HHA2Vw.woff2)format("woff2"),url(/assets/patrick-hand-latin-400-normal-Df9_VoRQ.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/baloo-2-devanagari-wght-normal-B4j4n2PV.woff2)format("woff2-variations");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/baloo-2-vietnamese-wght-normal-C4ZonJY6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/baloo-2-latin-ext-wght-normal-Dz43yst_.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2 Variable";font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/baloo-2-latin-wght-normal-B_TVFhwJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f4efe4;--paper-2:#ebe2cf;--paper-3:#ddd2ba;--ink:#1a1423;--ink-2:#3a3350;--ink-soft:#1a14239e;--cyan:#19d3f3;--magenta:#ff2bd6;--yellow:#ffd500;--lime:#b6ff2e;--red:#ff3b5c;--gold:#ffb627;--sky:#a8e6ff;--f-display:"Luckiest Guy", "Arial Black", system-ui, sans-serif;--f-hand:"Patrick Hand", "Comic Sans MS", cursive;--f-ui:"Baloo 2 Variable", "Baloo 2", "Trebuchet MS", system-ui, sans-serif;--r-wobble:18px 14px 20px 12px / 12px 20px 14px 18px;--r-wobble-2:12px 20px 14px 18px / 18px 12px 20px 14px;--shadow:5px 5px 0 var(--ink);--shadow-sm:3px 3px 0 var(--ink);--grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0 0.14  0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--halftone:radial-gradient(#1a142329 1.1px, transparent 1.4px)}*{box-sizing:border-box}html,body,#root{background:var(--paper);height:100%;color:var(--ink);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}body:after{content:"";pointer-events:none;background-image:var(--grain);mix-blend-mode:multiply;opacity:.55;z-index:1000;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}::selection{background:var(--yellow)}:focus-visible{outline:3px dashed var(--magenta);outline-offset:3px}.panel{background:var(--paper);border:3px solid var(--ink);border-radius:var(--r-wobble);box-shadow:var(--shadow);position:relative}.panel--tilt-l{transform:rotate(-.6deg)}.panel--tilt-r{transform:rotate(.5deg)}.caption{font-family:var(--f-display);letter-spacing:.04em;text-transform:uppercase;background:var(--yellow);border:3px solid var(--ink);box-shadow:var(--shadow-sm);border-radius:4px 9px 5px 10px;padding:2px 10px 0;line-height:1.25;display:inline-block}.btn{--bg:var(--yellow);font-family:var(--f-display);letter-spacing:.05em;text-transform:uppercase;background:var(--bg);border:3px solid var(--ink);border-radius:var(--r-wobble-2);box-shadow:4px 4px 0 var(--ink);-webkit-user-select:none;user-select:none;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 18px 6px;font-size:18px;transition:transform .12s,box-shadow .12s,background .2s;display:inline-flex;position:relative}.btn:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink);transform:translate(-1px,-2px)rotate(-1deg)}.btn:active:not(:disabled){box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.6)}.btn--cyan{--bg:var(--cyan)}.btn--magenta{--bg:var(--magenta);color:#fff;text-shadow:2px 2px 0 var(--ink)}.btn--lime{--bg:var(--lime)}.btn--paper{--bg:var(--paper)}.btn--ghost{--bg:transparent;box-shadow:none}.btn--sm{box-shadow:3px 3px 0 var(--ink);padding:5px 11px 3px;font-size:14px}.btn--icon{width:42px;height:42px;padding:6px}.chip{border:2px solid var(--ink);background:var(--paper);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-flex}.hand{font-family:var(--f-hand)}.kbd{border:2px solid var(--ink);text-align:center;background:#fff;border-bottom-width:3px;border-radius:5px;min-width:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:15px;display:inline-block}@keyframes wobble-in{0%{opacity:0;transform:scale(.6)rotate(-6deg)}60%{opacity:1;transform:scale(1.06)rotate(1.5deg)}to{transform:scale(1)rotate(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes blink-hl{0%,to{box-shadow:4px 4px 0 var(--ink), 0 0 0 0 #ffd50000}50%{box-shadow:4px 4px 0 var(--ink), 0 0 0 7px #ffd500d9}}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.25)rotate(8deg)}to{transform:scale(1)}}@keyframes dash{to{stroke-dashoffset:-40px}}.title{grid-template-columns:1.15fr 1fr;align-items:center;gap:32px;height:100%;padding:4vh 6vw;display:grid;position:relative;overflow:hidden}.title__bg{z-index:0;background:radial-gradient(60% 50% at 18% 30%, #19d3f359, transparent 70%), radial-gradient(50% 45% at 85% 20%, #ff2bd640, transparent 70%), radial-gradient(55% 60% at 70% 95%, #ffd50066, transparent 70%), radial-gradient(45% 45% at 10% 95%, #b6ff2e59, transparent 70%), var(--paper);filter:url(#watercolor);position:absolute;inset:0}.title__hero{z-index:1;position:relative}.logo{font-family:var(--f-display);color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:6px 6px 0 var(--ink), 10px 10px 0 var(--magenta);letter-spacing:.01em;margin:0;font-size:clamp(54px,8.4vw,132px);line-height:.86;transform:rotate(-3deg)}.logo span{display:block}.logo span:first-child{color:var(--yellow)}.logo span:nth-child(2){color:var(--cyan);margin-left:.5em}.title__tag{max-width:520px;font-family:var(--f-hand);margin:28px 0 0;font-size:24px;line-height:1.3}.title__tag mark{background:linear-gradient(transparent 55%, var(--lime) 55%);color:inherit}.title__cube{width:clamp(130px,14vw,200px);margin:26px 0 0 40px;animation:5s ease-in-out infinite float;display:block}.title__card{z-index:1;justify-self:center;width:100%;max-width:520px;padding:26px 26px 22px;animation:.6s ease-out both wobble-in;position:relative}.title__card h2{font-family:var(--f-display);letter-spacing:.03em;margin:0 0 4px;font-size:28px}.field{gap:6px;margin:16px 0;display:grid}.field label{text-transform:uppercase;letter-spacing:.06em;font-size:14px;font-weight:800}.input{font:inherit;font-size:20px;font-family:var(--f-hand);border:3px solid var(--ink);border-radius:var(--r-wobble-2);background:#fffdf7;outline:none;padding:8px 14px;box-shadow:inset 3px 3px #1a142314}.input:focus{box-shadow:inset 3px 3px 0 #1a142314, 0 0 0 4px var(--cyan);background:#fff}.tiers{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.tier{text-align:left;border:3px solid var(--ink);border-radius:var(--r-wobble);background:var(--paper);box-shadow:3px 3px 0 var(--ink);padding:10px 10px 8px;transition:transform .15s;position:relative}.tier:hover{transform:translateY(-3px)rotate(-1deg)}.tier b{font-family:var(--f-display);letter-spacing:.03em;font-size:22px;display:block}.tier small{color:var(--ink-2);font-size:12px;line-height:1.25;display:block}.tier[aria-pressed=true]{background:var(--yellow);box-shadow:5px 5px 0 var(--ink);transform:translateY(-3px)rotate(-1.5deg)}.tier[data-tier=SMP][aria-pressed=true]{background:var(--cyan)}.tier[data-tier=SMA][aria-pressed=true]{background:var(--magenta);color:#fff}.tier[data-tier=SMA][aria-pressed=true] small{color:#fff}.title__actions{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.map{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid;position:relative;overflow:hidden}.map__bg{background:radial-gradient(40% 40% at 20% 30%, #a8e6ffd9, transparent 70%), radial-gradient(40% 50% at 80% 70%, #ffb3e68c, transparent 70%), radial-gradient(50% 40% at 60% 10%, #ffd9a8bf, transparent 70%), radial-gradient(40% 40% at 30% 90%, #c4ffd8bf, transparent 70%), var(--paper);filter:url(#watercolor);position:absolute;inset:0}.map__bar{z-index:2;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 22px;display:flex;position:relative}.map__title{font-family:var(--f-display);letter-spacing:.03em;text-shadow:3px 3px 0 var(--yellow);margin:0;font-size:34px}.map__spacer{flex:1}.map__stage{z-index:1;margin:0 2vw 2vh;position:relative}.map__svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map__path{fill:none;stroke:var(--ink);stroke-width:3px;stroke-dasharray:2 9;stroke-linecap:round;opacity:.75}.map__path--branch{stroke-dasharray:1 7;opacity:.5}.map__path--done{stroke:var(--magenta);stroke-dasharray:none;stroke-width:4px;opacity:.9}.island{cursor:pointer;background:0 0;border:none;justify-items:center;gap:2px;padding:0;transition:transform .18s;display:grid;position:absolute;transform:translate(-50%,-50%)}.island:hover:not(:disabled){transform:translate(-50%,-54%)rotate(-2deg)scale(1.04)}.island:disabled{cursor:not-allowed}.island svg{width:var(--sz,112px);filter:drop-shadow(0 10px #1a14231f);height:auto;overflow:visible}.island--core .island-art{animation:6s ease-in-out infinite float;animation-delay:var(--delay,0s)}.island__label{border:3px solid var(--ink);background:var(--paper);box-shadow:3px 3px 0 var(--ink);font-family:var(--f-display);letter-spacing:.03em;white-space:nowrap;border-radius:6px 11px 7px 12px;margin-top:-4px;padding:1px 10px 0;font-size:15px}.island__label em{color:var(--magenta);margin-right:6px;font-style:normal}.map__stage.is-portrait .island__label{padding:0 7px;font-size:12px}.map__stage.is-portrait .island--remedial .island__label,.map__stage.is-portrait .island--master .island__label{text-overflow:ellipsis;max-width:150px;font-size:10.5px;overflow:hidden}.island--remedial .island__label{background:var(--lime);font-size:13px}.island--master .island__label{background:var(--magenta);color:#fff;text-shadow:1px 1px 0 var(--ink);font-size:13px}.island--locked{filter:grayscale()contrast(.9);opacity:.55}.island__stars{letter-spacing:-2px;-webkit-text-stroke:1.5px var(--ink);color:var(--paper-3);gap:1px;font-size:16px;display:flex}.island__stars .on{color:var(--yellow)}.island__badge{font-family:var(--f-display);border:2px solid var(--ink);background:var(--yellow);box-shadow:2px 2px 0 var(--ink);border-radius:6px;padding:1px 6px 0;font-size:12px;position:absolute;top:-6px;right:-14px;transform:rotate(8deg)}.island--next .island__badge{animation:.5s ease-out both pop}.map__foot{z-index:3;grid-template-columns:minmax(230px,330px) 1fr;align-items:center;gap:18px;margin:0 22px 14px;padding:10px 14px;font-size:13px;display:grid;position:relative}.map__foot .mastery{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));column-gap:18px;margin:0}.mastery{gap:6px;margin-top:8px;display:grid}.mastery__row{grid-template-columns:1fr 90px 36px;align-items:center;gap:8px;font-weight:700;display:grid}.meter{border:2px solid var(--ink);background:#fff;border-radius:999px;height:12px;position:relative;overflow:hidden}.meter>i{background:repeating-linear-gradient(-45deg, var(--cyan) 0 6px, #7debff 6px 10px);border-right:2px solid var(--ink);transition:width .8s cubic-bezier(.2,1.4,.4,1);position:absolute;inset:0 auto 0 0}.meter--hi>i{background:repeating-linear-gradient(-45deg, var(--lime) 0 6px, #d9ff94 6px 10px)}.meter--lo>i{background:repeating-linear-gradient(-45deg, var(--magenta) 0 6px, #ff8deb 6px 10px)}.game{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 320px;gap:10px;height:100%;padding:10px;display:grid}.topbar{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:12px;padding:8px 12px;display:flex}.topbar__level{align-items:baseline;gap:10px;min-width:0;display:flex}.topbar__code{font-family:var(--f-display);border:2.5px solid var(--ink);background:var(--magenta);color:#fff;text-shadow:1px 1px 0 var(--ink);border-radius:6px;padding:1px 8px 0;font-size:15px;transform:rotate(-3deg)}.topbar__title{font-family:var(--f-display);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:clamp(18px,2.1vw,26px);overflow:hidden}.topbar__sub{font-family:var(--f-hand);color:var(--ink-2);white-space:nowrap;font-size:17px}.topbar__spacer{flex:1}.budget{gap:2px;min-width:170px;display:grid}.budget__label{letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;display:flex}.budget__bar{border:2.5px solid var(--ink);background:#fff;border-radius:8px;height:14px;position:relative;overflow:hidden}.budget__bar i{background:var(--ink-2);background-image:var(--halftone);background-size:5px 5px;transition:width .3s;position:absolute;inset:0 auto 0 0}.budget__bar i.warn{background-color:var(--red)}.target-chip{background:var(--yellow);font-weight:800}.viewport-wrap{border:3px solid var(--ink);border-radius:var(--r-wobble);min-height:0;box-shadow:var(--shadow);background:var(--paper);position:relative;overflow:hidden}.viewport{touch-action:none;cursor:crosshair;position:absolute;inset:0}.viewport.is-pan{cursor:grabbing}.viewport.tool-erase{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28'><path d='M4 20l10-12 8 7-8 9H8z' fill='%23ff2bd6' stroke='%231a1423' stroke-width='2.5' stroke-linejoin='round'/></svg>") 4 24,crosshair}.vx-canvas{display:block}.vx-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.wl{border:2px solid var(--ink);background:var(--paper);white-space:nowrap;box-shadow:2px 2px 0 var(--ink);will-change:transform;border-radius:6px 9px;padding:0 7px;font-size:12px;font-weight:800;position:absolute;top:0;left:0}.wl:after{content:"";background:inherit;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:8px;height:8px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.wl--bat{background:var(--yellow)}.wl--bat i{font-family:var(--f-hand);font-style:normal;font-weight:400}.wl--res{background:#fff3dc}.wl--in{background:#e9e4ff}.wl--in.is-on{background:var(--cyan)}.wl--load{font-family:var(--f-hand);font-size:14px;font-weight:400}.wl--load .wl-flag{color:var(--magenta);margin-right:4px}.wl--load.is-on{background:var(--lime)}.side{flex-direction:column;grid-area:2/2;gap:10px;min-height:0;padding:2px 6px 6px 2px;display:flex;overflow:auto}.side .panel{padding:10px 12px 12px}.side h3{margin:-22px 0 6px -4px;display:inline-block}.challenges{gap:6px;margin:4px 0 0;padding:0;list-style:none;display:grid}.challenge{font-family:var(--f-hand);grid-template-columns:26px 1fr auto;align-items:start;gap:8px;font-size:18px;line-height:1.15;display:grid}.challenge__box{border:2.5px solid var(--ink);background:#fff;border-radius:4px 6px 4px 7px;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.challenge--met .challenge__box{background:var(--lime)}.challenge--failed .challenge__box{background:var(--red)}.challenge--met .challenge__text{text-decoration:line-through;-webkit-text-decoration-color:var(--magenta);text-decoration-color:var(--magenta);text-decoration-thickness:2px}.challenge__tag{font-family:var(--f-ui);border:2px solid var(--ink);background:var(--yellow);white-space:nowrap;border-radius:6px;padding:0 6px;font-size:11px;font-weight:800}.challenge__prog{font-family:var(--f-ui);color:var(--ink-2);font-size:12px;font-weight:800}.truth{border-collapse:separate;border-spacing:0 3px;text-align:center;width:100%;font-size:14px;font-weight:800}.truth th{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);font-size:11px}.truth td{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;padding:2px 0}.truth td:first-child{border-left:2px solid var(--ink);border-radius:6px 0 0 6px}.truth td:last-child{border-right:2px solid var(--ink);border-radius:0 6px 6px 0}.truth .b1{color:#0a8fb0}.truth .b0{color:#c4183a}.truth tr.is-active td{background:var(--yellow)}.truth tr.is-pass td{background:#e3ffb8}.truth tr.is-fail td{background:#ffc2cf}.inky{grid-template-columns:86px 1fr;align-items:end;gap:8px;display:grid}.inky__bot{width:86px;animation:3.2s ease-in-out infinite float}.inky__bubble{border:3px solid var(--ink);min-height:64px;font-family:var(--f-hand);box-shadow:var(--shadow-sm);background:#fff;border-radius:22px 18px 24px 16px/18px 24px 16px 22px;padding:10px 12px;font-size:18px;line-height:1.22;animation:.45s ease-out both wobble-in;position:relative}.inky__bubble:before{content:"";border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);background:#fff;width:18px;height:18px;position:absolute;bottom:14px;left:-14px;transform:skewY(30deg)rotate(20deg)}.inky__bubble--quiet{color:var(--ink-2);text-align:center;letter-spacing:4px;font-size:30px}.inky__bubble--hint,.inky__bubble--hint:before{background:#fff8cc}.inky__bubble--iso{background:#fff0c9;border-color:#8a5a00}.inky__cond{font-family:var(--f-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-top:6px;font-size:11px;font-weight:800;display:block}.palette{grid-column:1/-1;align-items:stretch;gap:10px;padding:8px 10px;display:flex}.palette__label{writing-mode:vertical-rl;font-family:var(--f-display);letter-spacing:.08em;color:var(--ink-2);text-align:center;font-size:13px;transform:rotate(180deg)}.palette__tools,.palette__items{align-items:stretch;gap:8px;display:flex}.palette__items{flex:1;padding:2px 4px 8px 2px;overflow-x:auto}.palette__sep{background:var(--ink);opacity:.8;border-radius:3px;width:3px;margin:4px 2px}.slot{border:3px solid var(--ink);border-radius:var(--r-wobble-2);background:var(--paper);width:92px;min-width:92px;box-shadow:4px 4px 0 var(--ink);grid-template-rows:1fr auto;place-items:center;padding:4px 4px 3px;transition:transform .12s,background .15s;display:grid;position:relative}.slot:hover:not(:disabled){transform:translateY(-3px)rotate(-1deg)}.slot[aria-pressed=true]{background:var(--yellow);box-shadow:5px 6px 0 var(--ink);transform:translateY(-4px)rotate(-1.5deg)}.slot:disabled{opacity:.45;cursor:not-allowed}.slot.is-blink{animation:.9s ease-in-out infinite blink-hl}.slot svg{width:52px;height:46px}.slot__name{text-align:center;font-size:12.5px;font-weight:800;line-height:1.05}.slot__count{min-width:30px;font-family:var(--f-display);border:2.5px solid var(--ink);background:#fff;border-radius:8px;padding:0 5px;font-size:14px;position:absolute;top:-10px;right:-8px;transform:rotate(6deg)}.slot__count.zero{background:var(--red);color:#fff}.slot__cost{border:2px solid var(--ink);background:var(--cyan);border-radius:8px;padding:0 5px;font-size:11px;font-weight:800;position:absolute;top:-9px;left:-8px;transform:rotate(-6deg)}.slot__key{position:absolute;bottom:3px;left:4px}.slot--tool{width:74px;min-width:74px}.run-btn{min-width:200px;filter:drop-shadow(5px 5px 0 var(--ink));background:0 0;border:none;place-items:center;padding:0;transition:transform .15s;display:grid;position:relative}.run-btn svg.burst{width:calc(100% + 8px);height:calc(100% + 12px);position:absolute;inset:-6px -4px}.run-btn span{font-family:var(--f-display);letter-spacing:.04em;color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink);padding:14px 18px 10px;font-size:26px;position:relative}.run-btn:hover:not(:disabled){transform:rotate(-2deg)scale(1.04)}.run-btn:active:not(:disabled){transform:scale(.96)}.run-btn:disabled{filter:grayscale(1) drop-shadow(3px 3px 0 var(--ink));opacity:.6}.run-btn .burst path{transition:fill .2s}.cam{z-index:5;gap:6px;display:flex;position:absolute;bottom:12px;left:12px}.cam .btn{font-size:13px}.runbar{z-index:6;background:var(--paper);border:3px solid var(--ink);border-radius:var(--r-wobble);box-shadow:var(--shadow-sm);white-space:nowrap;align-items:center;gap:10px;padding:6px 10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.runbar__tick{font-family:var(--f-display);min-width:74px;font-size:16px}.stable{gap:3px;display:flex}.stable i{border:2px solid var(--ink);background:#fff;border-radius:3px;width:14px;height:18px;transition:background .15s}.stable i.on{background:var(--lime)}.tests{gap:3px;display:flex}.tests i{border:2px solid var(--ink);background:#fff;border-radius:50%;width:12px;height:12px}.tests i.pass{background:var(--lime)}.tests i.active{background:var(--yellow)}.tests i.fail{background:var(--red)}.boom{z-index:7;pointer-events:none;place-items:center;animation:.4s ease-out both wobble-in;display:grid;position:absolute;top:18%;left:50%;transform:translate(-50%)}.boom svg{width:330px;height:170px;position:absolute}.boom b{font-family:var(--f-display);color:var(--yellow);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink);padding:30px 40px;font-size:46px;position:relative;transform:rotate(-6deg)}.boom small{font-family:var(--f-hand);border:2.5px solid var(--ink);background:#fff;border-radius:6px;margin-top:-26px;padding:0 10px;font-size:20px;display:block;position:relative;transform:rotate(-2deg)}.result-bar{z-index:6;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;right:12px}.xray{z-index:8;pointer-events:none;border:3px solid var(--ink);min-width:140px;box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:14px 18px 12px 16px;padding:6px 10px;font-size:13px;font-weight:700;animation:.25s ease-out both wobble-in;position:absolute;transform:translate(-50%,calc(-100% - 18px))}.xray:after{content:"";border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);background:#fff;width:14px;height:14px;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)rotate(45deg)}.xray__title{font-family:var(--f-display);letter-spacing:.03em;margin-bottom:2px;font-size:14px;display:block}.xray__row{justify-content:space-between;gap:12px;display:flex}.xray__row b{font-family:var(--f-display);font-size:15px;font-weight:400}.xray-hint{z-index:5;font-family:var(--f-hand);background:var(--yellow);border:2.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:8px;padding:2px 10px;font-size:16px;position:absolute;top:12px;right:12px;transform:rotate(2deg)}.scrim{z-index:50;background:#1a142359;background-image:var(--halftone);background-size:7px 7px;place-items:center;padding:16px;animation:.2s ease-out both fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{max-width:min(920px,100%);max-height:calc(100vh - 32px);padding:24px 26px 22px;animation:.45s ease-out both wobble-in;overflow:auto}.modal__close{position:absolute;top:10px;right:10px}.intro{max-width:620px}.intro__kicker{align-items:center;gap:10px;margin-bottom:8px;display:flex}.intro h2{font-family:var(--f-display);letter-spacing:.02em;text-shadow:3px 3px 0 var(--cyan);margin:4px 0 2px;font-size:clamp(30px,4vw,44px);line-height:1}.intro__concept{font-family:var(--f-hand);color:var(--ink-2);font-size:22px}.intro__speech{grid-template-columns:96px 1fr;align-items:end;gap:12px;margin:16px 0;display:grid}.debrief{width:min(940px,100%)}.debrief__head{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.debrief__title{font-family:var(--f-display);color:var(--yellow);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink), 7px 7px 0 var(--magenta);margin:0;font-size:clamp(36px,5vw,58px);line-height:.95;transform:rotate(-2deg)}.stars{gap:4px;display:flex}.stars span{color:var(--paper-3);-webkit-text-stroke:3px var(--ink);font-size:46px;line-height:1;animation:.5s ease-out both pop}.stars span.on{color:var(--yellow)}.debrief__grid{grid-template-columns:1.25fr 1fr;gap:14px;margin-top:16px;display:grid}.debrief__card{padding:12px 14px}.debrief__card h4{margin:-24px 0 8px -4px;display:inline-block}.debrief__concept p{font-family:var(--f-hand);margin:4px 0 8px;font-size:20px;line-height:1.25}.formula{font-family:var(--f-display);letter-spacing:.03em;border:3px solid var(--ink);background:var(--cyan);box-shadow:3px 3px 0 var(--ink);border-radius:8px;padding:4px 12px 1px;font-size:22px;display:inline-block;transform:rotate(-1deg)}.calc{font-family:var(--f-hand);border:2.5px dashed var(--ink);background:#fff;border-radius:10px;margin-top:10px;padding:6px 10px;font-size:19px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{border:2.5px solid var(--ink);background:#fff;border-radius:10px;padding:4px 8px}.stat b{font-family:var(--f-display);font-size:22px;font-weight:400;display:block}.stat small{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-size:11px;font-weight:800}.route{border:3px solid var(--ink);border-radius:var(--r-wobble);box-shadow:3px 3px 0 var(--ink);margin-top:12px;padding:10px 12px}.route--acceleration{background:#ffd6f6}.route--standard{background:#d6f6ff}.route--remedial{background:#ecffd0}.route b{font-family:var(--f-display);letter-spacing:.03em;font-size:20px;font-weight:400}.route p{margin:2px 0 0;font-size:14px}.debrief__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}details.payload{margin-top:12px}details.payload summary{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:800}pre.json{border:2.5px solid var(--ink);color:#e8fdff;background:#1a1423;border-radius:10px;max-height:260px;margin:8px 0 0;padding:10px 12px;font:12px/1.45 ui-monospace,Cascadia Code,Consolas,monospace;overflow:auto}.book{background:repeating-linear-gradient(#0000 0 29px,#19d3f340 29px 30px),#fffdf6;grid-template-columns:220px 1fr;width:min(900px,100%);min-height:480px;padding:0;display:grid;overflow:hidden}.book__index{border-right:3px solid var(--ink);background:var(--paper-2);background-image:var(--halftone);background-size:9px 9px;padding:18px 10px 14px 14px;overflow:auto}.book__index h3{font-family:var(--f-display);margin:0 0 10px;font-size:22px}.book__index ul{gap:3px;margin:0 0 10px;padding:0;list-style:none;display:grid}.book__index button{text-align:left;width:100%;font-family:var(--f-hand);background:0 0;border:none;border-radius:6px;padding:3px 8px;font-size:18px}.book__index button[aria-current=true]{background:var(--yellow);box-shadow:2px 2px 0 var(--ink);border:2px solid var(--ink)}.book__index button:disabled{color:var(--ink-soft);cursor:not-allowed}.book__group{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:10px 0 4px;font-size:11px;font-weight:800}.book__page{padding:22px 26px 18px 34px;position:relative;overflow:auto}.book__page:before{content:"";background:#ff2bd673;width:2px;position:absolute;top:0;bottom:0;left:18px}.book__new{animation:.5s ease-out both pop;position:absolute;top:14px;right:60px;transform:rotate(6deg)}.book__page h2{font-family:var(--f-display);letter-spacing:.02em;margin:0;font-size:34px}.book__ink{font-family:var(--f-hand);color:var(--magenta);font-size:20px}.book__body{grid-template-columns:1fr 190px;gap:14px;margin-top:8px;display:grid}.book__body p{font-family:var(--f-hand);margin:0 0 8px;font-size:21px;line-height:30px}.book__facts{font-family:var(--f-hand);margin:0;padding-left:20px;font-size:19px;line-height:30px}.doodle{border:3px solid var(--ink);border-radius:var(--r-wobble-2);width:190px;height:160px;box-shadow:3px 3px 0 var(--ink);background:#fff;transform:rotate(1.5deg)}.book__footer{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.drawer{z-index:60;flex-direction:column;width:min(760px,100vw - 20px);padding:18px 18px 14px;animation:.35s ease-out both wobble-in;display:flex;position:fixed;top:10px;bottom:10px;right:10px}.drawer h2{font-family:var(--f-display);margin:0 0 6px;font-size:30px}.drawer__body{flex:1;align-content:start;gap:14px;display:grid;overflow:auto}table.log{border-collapse:collapse;width:100%;font-size:12.5px}table.log th,table.log td{text-align:left;white-space:nowrap;border-bottom:2px solid #1a142326;padding:4px 6px}table.log th{text-transform:uppercase;letter-spacing:.04em;border-bottom:3px solid var(--ink);font-size:11px}.ok{color:#138a3b;font-weight:800}.bad{color:#c4183a;font-weight:800}@media (max-width:1100px){.game{grid-template-columns:minmax(0,1fr)}.side{z-index:30;width:300px;transition:transform .25s;position:fixed;top:74px;bottom:128px;right:10px;transform:translate(calc(100% + 20px))}.side.is-open{transform:none}.side-toggle{display:inline-flex!important}.title{grid-template-columns:1fr;overflow:auto}.debrief__grid,.book__body,.book{grid-template-columns:1fr}.book__index{display:none}}.side-toggle{display:none!important}@media (max-width:900px){.map__foot{grid-template-columns:1fr;gap:8px}.map__title{font-size:24px}}@media (max-width:720px){.topbar__sub,.budget{display:none}.slot{width:78px;min-width:78px}.run-btn{min-width:150px}.run-btn span{font-size:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
