:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f4f1e8;--paper-2:#ebe6d6;--card:#fbf9f3;--text:#1d2113;--text-dim:#4a4f3c;--text-mute:#65695a;--olive:#56611f;--olive-dark:#3d4515;--purple:#4e27b3;--line:#d8d2bf;--pixel-rule:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 10px);--lcd-bg:radial-gradient(120% 95% at 50% 38%, #1a1438 0%, #0e0b22 55%, #07061a 100%);--mint-300:#9dffd9;--font-display:"IBM Plex Sans", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--font-pixel:"Silkscreen", "IBM Plex Mono", ui-monospace, monospace;--gutter:clamp(20px, 4vw, 56px);--pad-l:max(var(--gutter), env(safe-area-inset-left));--pad-r:max(var(--gutter), env(safe-area-inset-right));--max:1200px;--measure:66ch;--ease-out:cubic-bezier(.2, .8, .2, 1);--stylus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M3 3l5 1.5L27 23.5 23.5 27 4.5 8z' fill='%23d9c7ff' stroke='%231a1030' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M22 21l3.5-3.5 4 4-3.5 3.5z' fill='%235b31c9' stroke='%231a1030' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M3 3l3 1-2 2z' fill='%231a1030'/%3E%3C/svg%3E") 3 3, pointer}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:17px;line-height:1.6}.page{min-height:100vh;position:relative;overflow-x:clip}img{max-width:100%;display:block}a{color:var(--olive);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--olive-dark)}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--olive-dark);outline-offset:3px;border-radius:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--olive);color:#fff;border-radius:6px;padding:10px 16px;font-size:15px;text-decoration:none;position:absolute;top:-80px;left:12px}.skip:focus{top:max(12px, env(safe-area-inset-top));color:#fff}#nl-badge-frame{display:none!important}.topbar{z-index:5;max-width:var(--max);padding:max(20px, env(safe-area-inset-top)) var(--pad-r) 12px var(--pad-l);justify-content:space-between;align-items:baseline;gap:24px;margin:0 auto;display:flex;position:relative}.wordmark{color:var(--text);font-size:17px;font-weight:600;text-decoration:none}.wordmark:hover{color:var(--text)}.nav{flex-wrap:wrap;gap:6px 22px;display:flex}.nav a{color:var(--text-dim);font-size:15px;text-decoration:none}.nav a:hover{color:var(--text);text-decoration:underline}.stage{z-index:1;max-width:var(--max);min-height:min(840px,100svh - 70px);padding:clamp(12px, 3vh, 36px) var(--pad-r) clamp(48px, 7vh, 88px) var(--pad-l);grid-template-columns:minmax(280px,380px) minmax(0,1fr);grid-template-areas:"intro console";align-items:center;gap:clamp(32px,4vw,72px);margin:0 auto;display:grid;position:relative}.intro{grid-area:intro}.intro h1{letter-spacing:-.035em;margin:0 0 24px;font-size:clamp(3rem,5vw,4.5rem);font-weight:700;line-height:.98}.intro h1 .role{color:var(--text-dim);letter-spacing:0;margin-top:14px;font-size:clamp(1.1rem,1.4vw,1.3rem);font-weight:400;line-height:1.3;display:block}.lead{max-width:44ch;margin:0 0 14px}.lead--quiet{color:var(--text-dim);margin-bottom:26px;font-size:.95rem}.actions{flex-wrap:wrap;align-items:center;gap:12px 22px;display:flex}.btn{background:var(--olive);color:#fff;min-height:44px;font-family:var(--font-display);cursor:pointer;border:0;border-radius:6px;align-items:center;padding:0 18px;font-size:15px;font-weight:500;text-decoration:none;transition:background-color .15s;display:inline-flex}.btn:hover{background:var(--olive-dark);color:#fff}.btn--quiet{color:var(--olive-dark);box-shadow:inset 0 0 0 1px var(--olive);background:0 0}.btn--quiet:hover{background:var(--paper-2);color:var(--olive-dark)}.text-link{font-size:15px}.console-wrap{grid-area:console;justify-self:center;width:100%;max-width:min(1040px,200svh - 300px);position:relative}.console{--hw-src:url(/assets/ash-handheld.svg);--hw-screen-l:31.5%;--hw-screen-t:14.4%;--hw-screen-w:37%;--hw-screen-h:49.1%;--hw-dpad-l:11%;--hw-dpad-t:30%;--hw-dpad-w:15%;--hw-a-x:84.75%;--hw-a-y:39.5%;--hw-b-x:77.25%;--hw-b-y:48%;--hw-btn-d:7.4%;--hw-pill-w:9%;--hw-pill-h:5.6%;--hw-start-l:14.6%;--hw-start-t:68.7%;--hw-select-l:14.6%;--hw-select-t:77.2%;--hw-led-x:29.65%;--hw-led-y:18%;aspect-ratio:2;isolation:isolate;width:100%;position:relative;container-type:inline-size}.console:after{content:"";z-index:-1;filter:blur(10px);background:radial-gradient(50% 50%,#28231459,#0000 70%);height:9%;position:absolute;bottom:-3.5%;left:14%;right:14%}.console__hardware{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 1.4cqw 1.8cqw #28231447);width:100%;height:100%;position:absolute;inset:0}.console__led{left:var(--hw-led-x);top:var(--hw-led-y);z-index:3;aspect-ratio:1;opacity:0;pointer-events:none;background:#eafff7;border-radius:50%;width:.9cqw;transition:opacity .25s;position:absolute;translate:-50% -50%;box-shadow:0 0 .6cqw .2cqw #5ff2c0d9,0 0 2cqw .6cqw #5ff2c059}.console.is-input .console__led{opacity:1;transition-duration:40ms}.legend{color:var(--text-mute);text-align:center;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:clamp(20px,2.6vw,30px) 0 0;font-size:14px;display:none}.legend span{align-items:center;gap:6px;display:inline-flex}[data-mode=menu] .legend--keys.legend--menu,[data-mode=game] .legend--keys.legend--game{display:flex}kbd{min-width:22px;height:22px;color:var(--text);background:var(--card);box-shadow:inset 0 0 0 1px var(--line), 0 1px 0 var(--line);font-family:var(--font-mono);border-radius:6px;place-items:center;padding:0 6px;font-size:11px;display:inline-grid}.screen{--lcd-fg:#d6fff1;--lcd-acc:#d2bcff;--lcd-dim:#929bbd;--lcd-hi:#5ff2c0;left:var(--hw-screen-l);top:var(--hw-screen-t);width:var(--hw-screen-w);height:var(--hw-screen-h);z-index:3;color:var(--lcd-fg);font-family:var(--font-mono);text-shadow:0 0 .6em #5ff2c047;background:radial-gradient(120% 95% at 50% 38%,#1a1438 0%,#0e0b22 55%,#07061a 100%);border-radius:.3cqw;font-size:clamp(10px,1.36cqw,15px);line-height:1.38;position:absolute;overflow:hidden}.screen:before{content:"";z-index:5;pointer-events:none;mix-blend-mode:overlay;background:repeating-linear-gradient(#ffffff09 0 1px,#0000 1px 3px);position:absolute;inset:0}.screen:after{content:"";z-index:6;pointer-events:none;background:linear-gradient(155deg,#ffffff1a 0%,#ffffff05 28%,#0000 42%),radial-gradient(130% 100%,#0000 60%,#00000073 100%);position:absolute;inset:0;box-shadow:inset 0 0 1.2em #0000008c}.view{grid-template-rows:auto minmax(0,1fr) auto;padding:.85em 1.05em .7em;display:grid;position:absolute;inset:0}.view[hidden]{display:none}.view--menu{grid-template-rows:auto auto minmax(0,1fr) auto}.bar{font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px dashed #c9b0ff47;justify-content:space-between;align-items:baseline;gap:1em;margin-bottom:.55em;padding-bottom:.45em;font-size:.95em;display:flex}.bar__title{font:inherit;color:var(--lcd-hi);margin:0}.bar__title:focus{outline:none}.bar__meta{color:var(--lcd-dim);font-size:.85em}.view__body{overscroll-behavior:contain;scrollbar-width:none;padding-right:.9em;overflow-y:auto}.view__body::-webkit-scrollbar{display:none}.view__body:focus-visible{outline-offset:2px;border-radius:0;outline:1px dashed #5ff2c099}.view.is-scrollable:before,.view.is-scrollable:after{content:"";pointer-events:none;border-radius:2px;width:2px;position:absolute;right:.55em}.view.is-scrollable:before{top:var(--rail-top);height:var(--rail-h);background:#c9b0ff29}.view.is-scrollable:after{top:calc(var(--rail-top) + var(--rail-h) * (1 - var(--thumb)) * var(--progress));height:calc(var(--rail-h) * var(--thumb));background:var(--lcd-hi);box-shadow:0 0 6px #5ff2c099}.foot{color:var(--lcd-dim);letter-spacing:.06em;text-transform:uppercase;border-top:1px dashed #c9b0ff2e;justify-content:space-between;align-items:center;gap:.8em;margin-top:.5em;padding-top:.4em;font-size:.76em;display:flex}.foot a,.foot button{color:var(--lcd-acc);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.foot a:hover,.foot button:hover{color:var(--lcd-hi)}.foot__more{visibility:hidden;color:var(--lcd-hi);animation:1.2s ease-in-out infinite nudge}.has-more .foot__more{visibility:visible}.menu__prompt{color:var(--lcd-dim);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .45em;font-size:.8em}.menu{align-content:start;gap:.12em;margin:0;padding:0;list-style:none;display:grid}.menu__item{width:100%;color:var(--lcd-fg);letter-spacing:.04em;text-align:left;text-transform:uppercase;text-shadow:inherit;cursor:pointer;background:0 0;border:0;border-radius:.25em;align-items:center;gap:.55em;padding:.24em .55em;font-size:1.04em;display:flex}.menu__item:before{content:"▶";opacity:0;font-size:.7em;transition:opacity .15s,transform .15s;transform:translate(-.3em)}.menu__meta{color:var(--lcd-dim);margin-left:auto;font-size:.8em}.menu__item--play .menu__label{color:var(--lcd-hi)}.menu__item:hover:not(.is-selected){background:#5ff2c01a}.menu__item:focus-visible{outline:1px solid var(--lcd-fg);outline-offset:1px}.menu__item.is-selected{background:linear-gradient(90deg, var(--lcd-hi), #aaffdf);color:#07140f;text-shadow:none;box-shadow:0 0 1em #5ff2c059}.menu__item.is-selected .menu__label{color:inherit}.menu__item.is-selected:before{opacity:1;animation:1s step-end infinite blink;transform:none}.menu__item.is-selected .menu__meta{color:#0c3b2b}.lcd-lead{color:var(--lcd-acc);margin:0 0 .7em}.stats,.caps-lcd{gap:.3em;margin:0;display:grid}.stats div{grid-template-columns:6.4em minmax(0,1fr);gap:.6em;display:grid}.stats dt,.caps-lcd dt{color:var(--lcd-dim);letter-spacing:.06em;text-transform:uppercase;padding-top:.14em;font-size:.8em}.stats dd,.caps-lcd dd{margin:0}.caps-lcd{gap:.7em}.caps-lcd dt{color:var(--lcd-hi);padding:0}.files{gap:.55em;margin:0;padding:0;list-style:none;display:grid}.files li{grid-template-columns:1.9em minmax(0,1fr);column-gap:.4em;display:grid}.files__no{color:var(--lcd-dim);grid-row:span 2}.files__name{color:var(--lcd-hi);letter-spacing:.04em;text-transform:uppercase}.files__note{opacity:.88;font-size:.9em}.links-lcd{gap:.35em;margin:0;padding:0;list-style:none;display:grid}.links-lcd a{color:var(--lcd-hi);text-transform:uppercase;background:#5ff2c012;border-radius:.25em;flex-wrap:wrap;justify-content:space-between;gap:0 .8em;padding:.3em .55em;text-decoration:none;display:flex;box-shadow:inset 0 0 0 1px #5ff2c033}.links-lcd a:hover{background:var(--lcd-hi);color:#07140f;text-shadow:none}.links-lcd a span{color:var(--lcd-dim);text-transform:none}.links-lcd a:hover span{color:#0c3b2b}.view--boot{text-align:center;grid-template-rows:none;place-content:center;gap:.3em}.boot__logo{font-family:var(--font-pixel);background:linear-gradient(180deg, #fff, var(--lcd-acc));color:#0000;text-shadow:none;animation:boot-drop .7s var(--ease-out) both;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.3em;line-height:.95}.boot__sub{color:var(--lcd-hi);font-family:var(--font-pixel);letter-spacing:.4em;margin:0;font-size:.9em;animation:.5s .35s both boot-fade}.boot__bar{background:#ffffff14;border-radius:1em;width:9em;height:.35em;margin:.7em auto 0;overflow:hidden}.boot__bar:after{content:"";background:linear-gradient(90deg, var(--lcd-hi), var(--lcd-acc));height:100%;animation:boot-load 1.2s .2s var(--ease-out) both;display:block}.view--game{padding:0;display:block}.view--game:focus{outline:none}.game{position:absolute;inset:0}.game__canvas{cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.game__loading{color:var(--lcd-hi);font-family:var(--font-pixel);text-align:center;place-items:center;margin:0;padding:1em;display:grid;position:absolute;inset:0}.game__hud{pointer-events:none;font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;font-size:.72em;display:flex;position:absolute;top:.45em;left:.5em;right:.5em}.game__hud span{background:#0e0b22bd;border-radius:.3em;padding:.15em .45em;box-shadow:inset 0 0 0 1px #c9b0ff40}.game__hud span:empty{display:none}.game__files{color:var(--lcd-hi)}.game__banner{color:#fff;font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;background:#0e0b22db;border-radius:.35em;padding:.35em .8em;font-size:.9em;transition:opacity .3s,translate .3s;position:absolute;top:24%;left:50%;translate:-50% -.4em;box-shadow:inset 0 0 0 1px #5ff2c080,0 0 1em #5ff2c040}.game__banner.is-on{opacity:1;translate:-50%}.game__box{color:#1a1030;min-height:3.9em;text-shadow:none;cursor:pointer;background:linear-gradient(#fbf8ff,#e9e2fb);border-radius:.45em;padding:.5em .8em .6em;font-size:.95em;line-height:1.35;position:absolute;bottom:.45em;left:.45em;right:.45em;box-shadow:0 0 0 .14em #2a1a55,0 0 0 .28em #5ff2c0,0 .3em .8em #00000080}.game__box[hidden]{display:none}.game__text{margin:0}.game__links{flex-wrap:wrap;gap:.3em .9em;margin:.35em 0 0;display:flex}.game__links[hidden]{display:none}.game__links a{color:#5b31c9;font-weight:700}.game__next{color:#5b31c9;opacity:0;font-size:.7em;position:absolute;bottom:.25em;right:.6em}.game__box.is-done .game__next{opacity:1;animation:1s ease-in-out infinite nudge}.game__demo{z-index:2;text-shadow:none;background:radial-gradient(120% 95% at 50% 30%,#1a1438,#0b0918 70%);grid-template-rows:auto minmax(0,1fr);display:grid;position:absolute;inset:0}.game__demo[hidden]{display:none}.game__demo-bar{font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px dashed #c9b0ff47;justify-content:space-between;align-items:center;gap:.6em;padding:.45em .7em;font-size:.8em;display:flex}.game__demo-title{color:var(--lcd-hi)}.game__demo-close{color:var(--lcd-acc);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:#c9b0ff24;border:0;border-radius:.3em;padding:.15em .5em}.game__demo-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#5ff2c080 transparent;padding:.55em .7em .7em;overflow-y:auto}.touch,.menu__preview,.foot__touch,.hit--x,.hit--y{display:none}.menu__preview{text-align:center;cursor:pointer;place-content:center;gap:.25em;min-height:0}.preview__logo{font-family:var(--font-pixel);background:linear-gradient(180deg, #fff, var(--lcd-acc));color:#0000;text-shadow:none;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.6em;line-height:.9}.preview__sub{color:var(--lcd-hi);font-family:var(--font-pixel);letter-spacing:.35em;margin:0 0 .7em;font-size:.85em}.preview__title{color:#fff;font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.05em}.preview__desc{max-width:26em;color:var(--lcd-fg);margin:.25em auto 0;font-size:.9em}.touch{left:var(--hw-screen-l);top:var(--hw-touch-t);width:var(--hw-screen-w);height:var(--hw-screen-h);z-index:3;color:#22164a;font-family:var(--font-mono);cursor:var(--stylus);touch-action:manipulation;background:radial-gradient(120% 80% at 50% 0,#fff 0%,#0000 60%),linear-gradient(#f3eeff 0%,#e0d4fa 100%);border-radius:.25cqw;font-size:clamp(10px,1.7cqw,15px);line-height:1.3;position:absolute;overflow:hidden}.touch:before{content:"";pointer-events:none;background-image:linear-gradient(#5b31c90f 1px,#0000 1px),linear-gradient(90deg,#5b31c90f 1px,#0000 1px);background-size:1.2em 1.2em;position:absolute;inset:0}.touch:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(155deg,#ffffff59,#0000 35%);position:absolute;inset:0;box-shadow:inset 0 0 .9em #28145047}.touch__panel{z-index:1;gap:.5em;padding:.75em .85em .8em;display:grid;position:absolute;inset:0}.touch__panel--menu{grid-template-rows:auto minmax(0,1fr)}.touch__panel--game{grid-template-rows:auto auto minmax(0,1fr) auto;display:none}[data-mode=game] .touch__panel--menu{display:none}[data-mode=game] .touch__panel--game{display:grid}.touch__hint{color:#5b31c9;font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78em}.touch__grid{grid-template-rows:1.25fr 1fr 1fr;grid-template-columns:1fr 1fr;gap:.5em;min-height:0;margin:0;padding:0;list-style:none;display:grid}.touch__grid li{min-height:0}.touch__wide{grid-column:1/-1}.touch__btn,.touch__action{color:#2a1a55;font:inherit;letter-spacing:.05em;text-transform:uppercase;cursor:inherit;background:linear-gradient(#fff,#eee7ff);border:0;transition:transform .12s,box-shadow .12s;box-shadow:0 0 0 1px #5b31c947,inset 0 -.2em #5b31c91f,0 .2em .5em #28145029}.touch__btn{text-align:left;border-radius:.75em;align-items:center;gap:.55em;width:100%;height:100%;padding:.4em .75em;display:flex}.touch__btn:active,.touch__action:active{transform:translateY(.1em);box-shadow:0 0 0 1px #5b31c959,inset 0 .15em .3em #28145033}.touch__btn:focus-visible,.touch__action:focus-visible{outline-offset:2px;outline:2px solid #2fb887}.touch__btn.is-selected{background:linear-gradient(#effffa,#c6f9e5);box-shadow:0 0 0 2px #2fb887,inset 0 -.2em #2fb88740,0 .2em .6em #2fb88759}.touch__btn--play,.touch__btn--play.is-selected,.touch__action--primary{color:#fff;background:linear-gradient(#9b77ff,#5b31c9)}.touch__btn--play{font-size:1.1em;box-shadow:0 0 0 1px #3b1f8f,inset 0 1px #fff6,inset 0 -.25em #0000002e,0 .25em .7em #5b31c973}.touch__btn--play.is-selected{box-shadow:0 0 0 2px #5ff2c0,inset 0 1px #fff6,inset 0 -.25em #0000002e,0 0 1em #5ff2c08c}.touch__icon{color:#7c4dff;shape-rendering:crispedges;flex:none;width:1.5em;height:1.5em}.touch__btn--play .touch__icon{color:#5ff2c0}.touch__meta{opacity:.7;margin-left:auto;font-size:.8em}.route{padding-top:.95em;position:relative}.route__track{height:1.5em;font-family:var(--font-pixel);text-transform:uppercase;border-radius:.4em;font-size:.66em;display:flex;overflow:hidden;box-shadow:0 0 0 1px #5b31c94d}.route__track span{color:#3b1f8f;white-space:nowrap;background:#d9ccff;border-right:1px solid #5b31c940;place-items:center;min-width:0;display:grid;overflow:hidden}.route__track span:nth-child(2){background:#cdbdff}.route__track .route__sea{color:#2c3a9a;background:#aec4ff}.route__track span:last-child{color:#0c3b2b;background:#bff5df;border-right:0}.route__marker{top:0;left:calc(var(--pos,.75) * 100%);background:#5ff2c0;border:2px solid #1a1030;border-radius:50% 50% 50% 0;width:.85em;height:.85em;transition:left .25s;position:absolute;translate:-50%;rotate:-45deg}.checklist{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(0,1fr);gap:.35em .45em;min-height:0;margin:0;padding:0;font-size:.86em;list-style:none;display:grid}.checklist li{color:#857aad;letter-spacing:.08em;white-space:nowrap;background:#ffffff8c;border-radius:.45em;align-items:center;gap:.45em;min-width:0;padding:0 .55em;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #5b31c929}.checklist li:before{content:"◇";color:#b9a8e6;flex:none}.checklist li.is-found{color:#22164a;letter-spacing:.02em;background:linear-gradient(#fff,#e3fff4);box-shadow:inset 0 0 0 1px #2fb88773,0 .1em .3em #2fb88733}.checklist li.is-found:before{content:"✓";color:#2fb887;font-weight:700}.touch__actions{gap:.5em;display:flex}.touch__action{border-radius:.6em;flex:1;padding:.45em .6em;font-size:.85em}.controls{z-index:4;pointer-events:none;position:absolute;inset:0}.hit{appearance:none;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;margin:0;padding:0;position:absolute}.hit:after{content:"";opacity:0;pointer-events:none;transition:opacity .12s;position:absolute}.hit.is-pressed:after{opacity:1;transition-duration:30ms}.hit:focus-visible{outline:2px solid var(--mint-300);outline-offset:2px}.hit--round{width:var(--hw-btn-d);aspect-ratio:1;translate:-50% -50%}.hit--a{left:var(--hw-a-x);top:var(--hw-a-y)}.hit--b{left:var(--hw-b-x);top:var(--hw-b-y)}.hit--round:after{background:radial-gradient(circle at 50% 38%,#0000000d,#0000006b);border-radius:50%;inset:9.5%;box-shadow:inset 0 .35cqw .7cqw #000000a6,0 0 1.4cqw #9dffd966}.dpad{left:var(--hw-dpad-l);top:var(--hw-dpad-t);width:var(--hw-dpad-w);aspect-ratio:1;pointer-events:auto;touch-action:none;cursor:pointer;border-radius:50%;grid-template:repeat(3,1fr)/repeat(3,1fr);display:grid;position:absolute}.dpad .hit{border-radius:12%;position:relative}.hit--up{grid-area:1/2}.hit--left{grid-area:2/1}.hit--right{grid-area:2/3}.hit--down{grid-area:3/2}.hit--up:after,.hit--down:after,.hit--left:after,.hit--right:after{box-shadow:inset 0 .3cqw .5cqw #0000008c}.hit--up:after{background:linear-gradient(#00000080,#0000001f);border-radius:12% 12% 0 0;inset:22% 7% 0}.hit--down:after{background:linear-gradient(#0000001f,#00000080);border-radius:0 0 12% 12%;inset:0 7% 22%}.hit--left:after{background:linear-gradient(90deg,#00000080,#0000001f);border-radius:12% 0 0 12%;inset:7% 0 7% 22%}.hit--right:after{background:linear-gradient(270deg,#00000080,#0000001f);border-radius:0 12% 12% 0;inset:7% 22% 7% 0}.hit--pill{width:var(--hw-pill-w);height:var(--hw-pill-h);border-radius:999px}.hit--start{left:var(--hw-start-l);top:var(--hw-start-t)}.hit--select{left:var(--hw-select-l);top:var(--hw-select-t)}.hit--pill:after{background:#00000059;border-radius:50%;width:23.3%;height:75%;top:12.5%;left:9.5%;box-shadow:inset 0 .2cqw .4cqw #0009,0 0 1cqw #9dffd959}.section,.footer{z-index:1;max-width:var(--max);padding-left:var(--pad-l);padding-right:var(--pad-r);margin:0 auto;position:relative}.section{padding-top:clamp(64px,8vw,104px);scroll-margin-top:12px}.section:before{content:"";background:var(--pixel-rule);height:2px;margin-bottom:clamp(40px,5.5vw,64px);display:block}.section h2{letter-spacing:-.035em;margin:0 0 16px;font-size:clamp(2.5rem,4.8vw,4.25rem);font-weight:700;line-height:1}.section__intro{max-width:60ch;color:var(--text-dim);margin:0 0 clamp(40px,5vw,64px);font-size:1.05rem}.eyebrow,.case__no{color:var(--purple);font-family:var(--font-pixel);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 14px;font-size:12px;line-height:1.4;display:flex}.eyebrow:before,.case__no:before{content:"";background:currentColor;flex:none;width:6px;height:6px}.eyebrow span{color:var(--text-mute)}.case{background:var(--pixel-rule) top left / 100% 2px no-repeat;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:24px clamp(32px,5vw,72px);padding:clamp(40px,5vw,64px) 0;display:grid}.case:first-child{background:0 0;padding-top:0}.case__rail{align-self:start;position:sticky;top:24px}.case__no{margin-bottom:10px}.case h3{letter-spacing:-.015em;margin:0 0 6px;font-size:1.45rem;font-weight:600;line-height:1.25}.case__meta{color:var(--text-mute);margin:0;font-size:.92rem;line-height:1.45}.case__stat{background:var(--lcd-bg);border-radius:4px;gap:6px;margin:28px 6px 0;padding:14px 16px 13px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 1em #0000008c,0 0 0 5px #1d1638,0 0 0 6px #5b31c980}.case__stat:before{content:"";pointer-events:none;background:repeating-linear-gradient(#ffffff09 0 1px,#0000 1px 3px);position:absolute;inset:0}.case__stat-value{color:#5ff2c0;font-family:var(--font-pixel);text-shadow:0 0 .5em #5ff2c059;font-size:1.9rem;font-weight:400;line-height:1.1}.case__stat-label{color:#d6fff1;font-family:var(--font-mono);font-size:.8rem;line-height:1.45}.case__body>:last-child{margin-bottom:0}.case__body p{max-width:var(--measure);margin:0 0 14px}.case code{background:var(--paper-2);font-family:var(--font-mono);border-radius:4px;padding:.1em .35em;font-size:.88em}.case .case__stack{color:var(--text-mute);font-size:.92rem}.shots{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:860px;margin:20px 0 18px;text-decoration:none;display:grid}.shots img{background:#0d0a0a;border-radius:12px;width:100%;height:auto;display:block}.shots:focus-visible{outline:2px solid var(--olive);outline-offset:6px;border-radius:4px}.case__demo{border:1px solid var(--line);background:var(--card);border-radius:10px;margin:20px 0 8px;padding:16px}.case .case__context{color:var(--text);margin:0 0 14px;font-size:1.05rem}.case .case__try{max-width:var(--measure);color:var(--text-dim);margin:0 0 14px;font-size:.92rem}.route-map{max-width:900px;margin:0;padding:0;list-style:none;position:relative}.route-map:before{content:"";background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--purple) 35%, var(--line)) 0 6px, transparent 6px 10px);width:2px;position:absolute;top:16px;bottom:0;left:5px}.stop+.stop{margin-top:36px}.stop__place{background:var(--lcd-bg);color:#5ff2c0;font-family:var(--font-pixel);letter-spacing:.12em;text-transform:uppercase;border-radius:4px;align-items:baseline;gap:12px;margin:0 0 6px 4px;padding:6px 12px 5px;font-size:14px;font-weight:400;line-height:1.4;display:inline-flex;position:relative;box-shadow:0 0 0 3px #1d1638,0 0 0 4px #5b31c980}.stop__place span{color:#b9c0dd;font-family:var(--font-mono);letter-spacing:0;font-size:12px}.timeline{margin:0;padding:0;list-style:none}.timeline li{grid-template-columns:8.5rem minmax(0,1fr);gap:2px 28px;padding:16px 0 16px 36px;display:grid;position:relative}.timeline li:before{content:"";background:var(--paper);width:10px;height:10px;box-shadow:inset 0 0 0 2px var(--purple);position:absolute;top:calc(16px + .5em);left:1px}.stop:first-child li:first-child:before{background:var(--purple)}.stop:last-child li:last-child:after{content:"";background:var(--paper);width:12px;position:absolute;top:calc(26px + .5em);bottom:0;left:0}.timeline__years{color:var(--text-mute);font-family:var(--font-mono);padding-top:.2em;font-size:.86rem}.timeline__role{flex-wrap:wrap;align-items:baseline;gap:0 10px;display:flex}.timeline__role strong{font-weight:600}.timeline__role span{color:var(--text-mute);font-size:.92rem}.timeline__what{color:var(--text-dim);grid-column:2;margin:2px 0 0}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 64px;max-width:1000px;display:grid}.skills h3{margin:0 0 12px;font-size:1.05rem;font-weight:600}.skills p{max-width:46ch;color:var(--text-dim);margin:14px 0 0;font-size:.95rem}.tags{flex-wrap:wrap;gap:10px 8px;margin:0;padding:0;list-style:none;display:flex}.tags li{background:var(--card);box-shadow:inset 0 0 0 1px var(--line), 0 2px 0 var(--line);color:var(--text);font-family:var(--font-mono);border-radius:6px;padding:3px 10px 4px;font-size:.84rem;line-height:1.5}.about{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:28px 56px;max-width:1000px;display:grid}.about p{max-width:var(--measure);margin:0 0 14px}.now{border-left:3px solid var(--olive);background:var(--card);padding:16px 20px}.now h3{color:var(--olive-dark);margin:0 0 4px;font-size:.95rem;font-weight:600}.now p{margin:0}.contact:before{display:none}.contact__screen{background:var(--lcd-bg);color:#d6fff1;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px 56px;margin:10px;padding:clamp(28px,5vw,60px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 2.5em #0000008c,0 0 0 8px #1d1638,0 0 0 10px #5b31c98c,0 28px 48px -16px #28231466}.contact__screen:after{content:"";pointer-events:none;background:repeating-linear-gradient(#ffffff08 0 1px,#0000 1px 3px),linear-gradient(155deg,#ffffff12 0%,#0000 35%);position:absolute;inset:0}.contact__text,.contact__party{z-index:1;position:relative}.contact__screen .eyebrow{color:#5ff2c0}.contact__screen h2{color:#fff}.contact__screen p:not(.eyebrow){color:#d6fff1;max-width:52ch;margin:0 0 28px}.contact__screen .btn{color:#07140f;background:#5ff2c0;box-shadow:0 0 1em #5ff2c04d}.contact__screen .btn:hover{color:#07140f;background:#aaffdf}.contact__screen .btn--quiet{color:#5ff2c0;background:0 0;box-shadow:inset 0 0 0 1px #5ff2c099}.contact__screen .btn--quiet:hover{color:#aaffdf;background:#5ff2c01f}.contact__screen :focus-visible{outline-color:#5ff2c0}.contact__party{--sprite:6px;--scene:4px;--scene-hills:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 10' shape-rendering='crispEdges'%3E%3Cpath fill='%23b9a3ef' d='M4 2h3v1h-3zM18 2h3v1h-3zM3 3h1v1h-1zM7 3h3v1h-3zM15 3h3v1h-3zM21 3h1v1h-1zM2 4h1v1h-1zM10 4h5v1h-5zM22 4h1v1h-1zM0 5h2v1h-2zM23 5h2v1h-2zM25 6h1v1h-1zM47 6h1v1h-1zM26 7h1v1h-1zM34 7h5v1h-5zM46 7h1v1h-1zM27 8h2v1h-2zM31 8h3v1h-3zM39 8h3v1h-3zM45 8h1v1h-1zM29 9h2v1h-2zM42 9h3v1h-3z'/%3E%3Cpath fill='%23d3c3f8' d='M4 3h3v1h-3zM18 3h3v1h-3zM3 4h7v1h-7zM15 4h7v1h-7zM2 5h21v1h-21zM0 6h25v1h-25zM0 7h26v1h-26zM47 7h1v1h-1zM0 8h27v1h-27zM34 8h5v1h-5zM46 8h2v1h-2zM0 9h29v1h-29zM31 9h11v1h-11zM45 9h3v1h-3z'/%3E%3C/svg%3E");--scene-trees:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 16' shape-rendering='crispEdges'%3E%3Cpath fill='%231a1030' d='M6 0h4v1h-4zM26 0h4v1h-4zM4 1h2v1h-2zM10 1h2v1h-2zM24 1h2v1h-2zM30 1h2v1h-2zM3 2h1v1h-1zM12 2h1v1h-1zM23 2h1v1h-1zM32 2h1v1h-1zM2 3h1v1h-1zM13 3h1v1h-1zM22 3h1v1h-1zM33 3h1v1h-1zM2 4h1v1h-1zM13 4h1v1h-1zM22 4h1v1h-1zM33 4h1v1h-1zM1 5h1v1h-1zM14 5h1v1h-1zM21 5h1v1h-1zM34 5h1v1h-1zM1 6h1v1h-1zM14 6h1v1h-1zM21 6h1v1h-1zM34 6h1v1h-1zM1 7h1v1h-1zM14 7h1v1h-1zM21 7h1v1h-1zM34 7h1v1h-1zM2 8h1v1h-1zM13 8h1v1h-1zM22 8h1v1h-1zM33 8h1v1h-1zM2 9h1v1h-1zM13 9h1v1h-1zM22 9h1v1h-1zM33 9h1v1h-1zM3 10h2v1h-2zM11 10h2v1h-2zM23 10h2v1h-2zM31 10h2v1h-2zM5 11h2v1h-2zM9 11h2v1h-2zM25 11h2v1h-2zM29 11h2v1h-2zM6 12h1v1h-1zM9 12h1v1h-1zM26 12h1v1h-1zM29 12h1v1h-1zM6 13h1v1h-1zM9 13h1v1h-1zM26 13h1v1h-1zM29 13h1v1h-1zM5 14h2v1h-2zM9 14h2v1h-2zM25 14h2v1h-2zM29 14h2v1h-2z'/%3E%3Cpath fill='%232f8f62' d='M6 1h4v1h-4zM26 1h4v1h-4zM4 2h2v1h-2zM7 2h5v1h-5zM24 2h2v1h-2zM27 2h5v1h-5zM3 3h2v1h-2zM8 3h5v1h-5zM23 3h2v1h-2zM28 3h5v1h-5zM3 4h1v1h-1zM6 4h4v1h-4zM11 4h2v1h-2zM23 4h1v1h-1zM26 4h4v1h-4zM31 4h2v1h-2zM2 5h7v1h-7zM10 5h4v1h-4zM22 5h7v1h-7zM30 5h4v1h-4zM2 6h1v1h-1zM4 6h6v1h-6zM11 6h3v1h-3zM22 6h1v1h-1zM24 6h6v1h-6zM31 6h3v1h-3zM2 7h4v1h-4zM7 7h7v1h-7zM22 7h4v1h-4zM27 7h7v1h-7zM3 8h2v1h-2zM8 8h5v1h-5zM23 8h2v1h-2zM28 8h5v1h-5z'/%3E%3Cpath fill='%235cc48e' d='M6 2h1v1h-1zM26 2h1v1h-1zM5 3h3v1h-3zM25 3h3v1h-3zM4 4h2v1h-2zM10 4h1v1h-1zM24 4h2v1h-2zM30 4h1v1h-1zM9 5h1v1h-1zM29 5h1v1h-1zM3 6h1v1h-1zM10 6h1v1h-1zM23 6h1v1h-1zM30 6h1v1h-1zM6 7h1v1h-1zM26 7h1v1h-1zM6 9h1v1h-1zM11 9h1v1h-1zM26 9h1v1h-1zM31 9h1v1h-1z'/%3E%3Cpath fill='%23206b4b' d='M5 8h3v1h-3zM25 8h3v1h-3zM3 9h3v1h-3zM7 9h4v1h-4zM12 9h1v1h-1zM23 9h3v1h-3zM27 9h4v1h-4zM32 9h1v1h-1zM5 10h6v1h-6zM25 10h6v1h-6z'/%3E%3Cpath fill='%236b4a3a' d='M7 11h2v1h-2zM27 11h2v1h-2zM7 12h2v1h-2zM27 12h2v1h-2zM7 13h2v1h-2zM27 13h2v1h-2zM7 14h2v1h-2zM27 14h2v1h-2z'/%3E%3C/svg%3E");--scene-grass:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 4' shape-rendering='crispEdges'%3E%3Cpath fill='%232f8f62' d='M1 0h1v1h-1zM5 0h1v1h-1zM0 1h2v1h-2zM3 1h1v1h-1zM5 1h2v1h-2zM0 2h8v1h-8z'/%3E%3Cpath fill='%235cc48e' d='M0 3h8v1h-8z'/%3E%3C/svg%3E");isolation:isolate;background:linear-gradient(#fbf8ff,#e9e2fb);border-radius:6px;margin:0;padding:36px 56px 0;position:relative;overflow:hidden;box-shadow:0 0 0 3px #2a1a55,0 0 0 5px #5ff2c0,0 .5em 1.2em #00000073}.contact__party svg{z-index:1;width:calc(31 * var(--sprite));height:auto;margin-bottom:calc(3.5 * var(--sprite));shape-rendering:crispedges;display:block;position:relative}.scene{left:0;right:calc(-1 * var(--travel));pointer-events:none;background-repeat:repeat-x;position:absolute}.scene--far{--travel:24px;bottom:calc(5 * var(--sprite));height:calc(10 * var(--scene));background-image:var(--scene-hills);background-size:calc(48 * var(--scene)) 100%}.scene--mid{--travel:80px;bottom:calc(4 * var(--sprite));height:calc(16 * var(--scene));background-image:var(--scene-trees);background-size:calc(80 * var(--scene)) 100%}.scene--near{--travel:144px;height:calc(6 * var(--sprite));background:var(--scene-grass) repeat-x 0 0 / calc(8 * var(--sprite)) calc(4 * var(--sprite)), linear-gradient(#5cc48e, #5cc48e) no-repeat 0 calc(4 * var(--sprite)) / 100% 100%;bottom:0}.band,.section--night{--night:#110d26;--night-2:#1d1638;--night-text:#ece8f8;--night-dim:#aaa4c6;background:var(--night);box-shadow:0 0 0 100vmax var(--night);clip-path:inset(0 -100vmax);color:var(--night-text);position:relative}.band :focus-visible,.section--night :focus-visible{outline-color:#5ff2c0}.band .eyebrow,.section--night .eyebrow{color:#5ff2c0}.band .eyebrow span,.section--night .eyebrow span{color:var(--night-dim)}.band h2,.section--night h2{color:#fff}.band .section__intro,.section--night .section__intro{color:var(--night-dim)}.section--banded{padding-top:0}.section--banded:before{display:none}.band{margin-bottom:clamp(56px,7vw,96px);padding-block:clamp(64px,8vw,112px)}.band .section__intro{margin-bottom:clamp(32px,4vw,48px)}.case__no{scroll-margin-top:32px}.file-index{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.file-index a{background:var(--night-2);height:100%;color:var(--night-text);transition:transform .15s var(--ease-out), box-shadow .15s;border-radius:6px;grid-template-rows:auto 1fr auto;gap:6px;padding:12px 14px 14px;text-decoration:none;display:grid;box-shadow:inset 0 0 0 1px #c9b0ff2e}.file-index a:hover{color:#fff;transform:translateY(-3px);box-shadow:inset 0 0 0 1px #5ff2c0,0 8px 20px -8px #5ff2c059}.file-index__no{color:var(--night-dim);font-family:var(--font-pixel);letter-spacing:.14em;text-transform:uppercase;font-size:11px}.file-index__name{font-size:.95rem;font-weight:600;line-height:1.3}.file-index__stat{color:#5ff2c0;font-family:var(--font-pixel);font-size:1.3rem;line-height:1.1}.section--night{margin-top:clamp(64px,8vw,104px);padding-block:clamp(64px,8vw,112px)}.section--night:before,.section--night+.section:before{display:none}.section--night .route-map:before{background:repeating-linear-gradient(#c9b0ff59 0 6px,#0000 6px 10px)}.section--night .stop__place{background:var(--night-2);box-shadow:0 0 0 1px #5ff2c080}.section--night .timeline li:before{background:var(--night);box-shadow:inset 0 0 0 2px #c9b0ff}.section--night .stop:first-child li:first-child:before{box-shadow:none;background:#5ff2c0}.section--night .stop:last-child li:last-child:after{background:var(--night)}.section--night .timeline__years,.section--night .timeline__role span{color:var(--night-dim)}.section--night .timeline__role strong{color:#fff}.section--night .timeline__what{color:#cfc9e6}.footer{padding-top:22px;padding-bottom:max(32px, env(safe-area-inset-bottom));background:var(--pixel-rule) no-repeat;background-position:var(--pad-l) 0;background-size:calc(100% - var(--pad-l) - var(--pad-r)) 2px;color:var(--text-mute);flex-wrap:wrap;justify-content:space-between;gap:6px 24px;margin-top:clamp(56px,7vw,88px);font-size:.88rem;display:flex}.footer p{margin:0}@keyframes blink{50%{opacity:0}}@keyframes nudge{50%{transform:translateY(.15em)}}@keyframes boot-drop{0%{opacity:0;transform:translateY(-.6em)}}@keyframes boot-fade{0%{opacity:0}}@keyframes boot-load{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.stage{view-timeline:--hero block}.console-wrap{animation:linear both hero-drift;animation-timeline:--hero;animation-range:exit-crossing}.contact__screen{view-timeline:--contact block}.scene{animation:linear both scene-scroll;animation-timeline:--contact;animation-range:entry cover 35%}@media (width>=641px){.shots{view-timeline:--shots block}.shots img{--drift:10px;animation:linear both shots-drift;animation-timeline:--shots;animation-range:cover}.shots img:nth-child(2){--drift:36px}}}}@keyframes shots-drift{0%{transform:translateY(var(--drift))}to{transform:translateY(calc(-1 * var(--drift)))}}@keyframes hero-drift{to{transform:translateY(-56px)}}@keyframes scene-scroll{to{transform:translateX(calc(-1 * var(--travel)))}}@media (width<=1240px){.stage{grid-template-columns:minmax(0,1fr);grid-template-areas:"console""intro";gap:40px;min-height:0;padding-top:8px}.console-wrap{max-width:min(920px,200svh - 300px)}.intro{justify-self:center;width:100%;max-width:720px}}@media (width<=900px){.skills,.about{grid-template-columns:minmax(0,1fr)}.timeline li{grid-template-columns:minmax(0,1fr);gap:2px}.timeline__what{grid-column:1}.case{grid-template-columns:minmax(0,1fr);gap:20px}.case__rail{position:static}.case__stat{width:fit-content;max-width:calc(100% - 12px);padding-right:22px}.contact__screen{grid-template-columns:minmax(0,1fr)}.contact__party{justify-self:end}}@media (width<=640px){:root{--gutter:16px}body{font-size:16px}.nav a:not(.nav__contact){display:none}.stage{gap:32px;padding-bottom:48px}.console-wrap{width:calc(100% + 2 * var(--gutter) - 8px);max-width:none;margin-inline:calc(4px - var(--gutter))}.screen{font-size:clamp(8.5px,2.35cqw,11px)}.view{padding:.6em .7em .5em}.bar{margin-bottom:.35em;padding-bottom:.3em}.menu__prompt,.view--menu .foot{display:none}.menu__item{padding:.16em .45em}.case__demo{padding:10px}.contact__screen{margin:8px 4px}.contact__party{--sprite:4px;--scene:3px;padding:24px 32px 0}.shots{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;display:flex;overflow-x:auto}.shots img{scroll-snap-align:center;flex:none;width:72%}}@media (width>=901px) and (height>=641px){.console{--hw-src:url(/assets/ash-handheld-ds.svg);--hw-screen-l:22.857%;--hw-screen-t:6.154%;--hw-screen-w:54.286%;--hw-screen-h:36.538%;--hw-touch-t:55.769%;--hw-dpad-l:3%;--hw-dpad-t:57.82%;--hw-dpad-w:16.857%;--hw-a-x:94%;--hw-a-y:65.385%;--hw-b-x:88.571%;--hw-b-y:70.256%;--hw-x-x:88.571%;--hw-x-y:60.513%;--hw-y-x:83.143%;--hw-y-y:65.385%;--hw-btn-d:6.286%;--hw-pill-w:9.43%;--hw-pill-h:3.08%;--hw-start-l:84.14%;--hw-start-t:78.59%;--hw-select-l:84.14%;--hw-select-t:83.08%;--hw-led-x:82.143%;--hw-led-y:49.359%;aspect-ratio:1400/1560}.console-wrap{max-width:min(760px,89.7svh - 116.61px)}.console:after{height:4%;bottom:-1.5%;left:12%;right:12%}.console__led{width:1.3cqw}.screen{border-radius:.25cqw;font-size:clamp(11px,1.9cqw,16px)}.touch,.hit--x,.hit--y{display:block}.hit--x{left:var(--hw-x-x);top:var(--hw-x-y)}.hit--y{left:var(--hw-y-x);top:var(--hw-y-y)}.view--menu{grid-template-rows:auto minmax(0,1fr) auto}.view--menu .menu,.view--menu .menu__prompt{display:none}.menu__preview{display:grid}.foot__touch{color:var(--lcd-hi);display:inline}.hit--pill:after{width:27%;height:75%;top:12.5%;left:3.2%}.legend{margin-top:18px}}@media (width<=900px) and (orientation:portrait){.console{--hw-src:url(/assets/ash-handheld-color.svg);--hw-screen-l:14.8%;--hw-screen-t:9.23%;--hw-screen-w:70.4%;--hw-screen-h:29.94%;--hw-dpad-l:7.2%;--hw-dpad-t:52.69%;--hw-dpad-w:35.6%;--hw-a-x:82%;--hw-a-y:59.62%;--hw-b-x:64%;--hw-b-y:66.03%;--hw-btn-d:17.6%;--hw-pill-w:14%;--hw-pill-h:7.4%;--hw-select-l:35%;--hw-select-t:80.45%;--hw-start-l:51%;--hw-start-t:80.45%;--hw-led-x:11.2%;--hw-led-y:16.03%;aspect-ratio:1000/1560}.console-wrap{max-width:min(460px,64.1svh - 70.51px)}.console:after{height:5%;bottom:-2%;left:10%;right:10%}.console__led{width:2.2cqw}.screen{border-radius:.8cqw;font-size:clamp(9.5px,2.9cqw,14px)}.view{padding:.75em .9em .6em}.menu__prompt,.view--menu .foot{display:block}.view--menu .foot{display:flex}.hit--pill:after{border-radius:999px;width:84%;height:38%;top:6%;left:8%;transform:rotate(-25deg)}}@media (width<=640px) and (orientation:portrait){.console-wrap{margin-inline:0;justify-self:start;width:min(100vw - 8px,64.1svh - 70.51px);max-width:none;margin-left:50%;translate:-50%}}@media (hover:none) and (pointer:coarse){[data-mode] .legend--keys.legend--menu,[data-mode] .legend--keys.legend--game{display:none}[data-mode=menu] .legend--touch.legend--menu,[data-mode=game] .legend--touch.legend--game{display:flex}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.demo{--d-surface:#fff;--d-panel:#f4f1e8;--d-line:#d8d2bf;--d-text:#1d2113;--d-dim:#5b5f4c;--d-accent:#56611f;--d-accent-ink:#fff;--d-chip:#ebe6d6;--d-good:#2f7d4f;--d-bad:#b3261e;--d-before:#b8b29c;--d-after:#6f7d2f;--d-code-key:#56611f;--d-code-val:#1d2113;--d-changed:#e6ebcd;color:var(--d-text);font-family:var(--font-mono,ui-monospace, monospace);text-shadow:none;gap:.8em;font-size:13.5px;line-height:1.45;display:grid;container-type:inline-size}.demo--compact{--d-surface:#fff;--d-panel:#ffffff0a;--d-line:#c9b0ff2e;--d-text:#efeaff;--d-dim:#9b93b8;--d-accent:#5ff2c0;--d-accent-ink:#07140f;--d-chip:#c9b0ff1f;--d-good:#5ff2c0;--d-bad:#ff8a9a;--d-before:#8f6bff;--d-after:#5ff2c0;--d-code-key:#c9b0ff;--d-code-val:#5ff2c0;--d-changed:#5ff2c029;gap:.5em;font-size:.92em}.demo p{margin:0}.demo button{font:inherit;cursor:pointer}.demo :focus-visible{outline:2px solid var(--d-accent);outline-offset:2px}.demo__bar{flex-wrap:wrap;align-items:center;gap:.4em;display:flex}.demo__chip{border:1px solid var(--d-line);background:var(--d-surface);color:var(--d-text);border-radius:5px;padding:.3em .75em;font-size:.9em}.demo--compact .demo__chip{background:var(--d-chip);border-color:#0000}.demo__chip:hover{border-color:var(--d-accent)}.demo__chip[aria-pressed=true]{border-color:var(--d-accent);background:var(--d-accent);color:var(--d-accent-ink)}.demo__run{background:var(--d-accent);color:var(--d-accent-ink);border:0;border-radius:5px;padding:.4em .9em;font-weight:600}.demo__hint{color:var(--d-dim);font-size:.85em}.demo__note{color:var(--d-dim);font-size:.8em}.demo__result{font-size:.92em}.demo__split{align-items:start;gap:.8em;display:grid}@container (width>=440px){.demo__split{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}.demo__code{border:1px solid var(--d-line);background:var(--d-panel);color:var(--d-code-val);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;margin:0;padding:.7em .8em;font-size:.82em;line-height:1.55;overflow-x:auto}.code__line{border-radius:.2em;transition:background-color .6s;display:block}.code__line--prop{text-indent:-.6em;padding-left:1.2em}.code__line.is-changed{background:var(--d-changed)}.code__key{color:var(--d-code-key)}.code__val{color:var(--d-code-val)}.demo--compact .demo__code{display:none}.bill{--tone:#6a3df0;border:1px solid #d8d2bf;border-top:.3em solid var(--tone);color:#1d1638;font-family:var(--font-display,system-ui, sans-serif);background:#fff;border-radius:8px;gap:.3em;padding:.9em 1em 1em;display:grid;position:relative}.demo--compact .bill{border-color:#0000}.bill[data-tone=ok]{--tone:#1f7d5a}.bill[data-tone=info]{--tone:#5b31c9}.bill[data-tone=warn]{--tone:#b3261e}.bill[data-tone=calm]{--tone:#2f6db0}.bill[data-tone=new]{--tone:#8a5a00}.bill.is-new{animation:.25s cubic-bezier(.2,.8,.2,1) bill-in}.bill__head{flex-wrap:wrap;justify-content:space-between;gap:.4em;display:flex}.bill__pill{background:color-mix(in srgb, var(--tone) 12%, white);color:var(--tone);font-family:var(--font-mono,monospace);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:.15em .55em;font-size:.72em;font-weight:600}.bill__acct{color:#605a78;font-family:var(--font-mono,monospace);font-size:.72em}.bill__amount{font-size:1.8em;font-weight:600;line-height:1.1}.bill__line{color:#4b4468;font-size:.9em}.bill__msg{color:#2a2345;font-size:.92em}.bill__cta{background:var(--tone);color:#fff;border:0;border-radius:5px;justify-self:start;margin-top:.35em;padding:.45em .95em;font-weight:600;font-family:var(--font-display,system-ui)!important;font-size:.85em!important}.bill__toast{color:#fff;font-family:var(--font-mono,monospace);background:#1d1638;border-radius:4px;padding:.3em .6em;font-size:.72em;position:absolute;bottom:.8em;right:.8em}.bill__toast[hidden]{display:none}.demo--compact .bill{gap:.15em;padding:.6em .75em .7em}.demo--compact .bill__amount{font-size:1.5em}.lanes{gap:.55em;display:grid}.lane{grid-template-columns:4.6em minmax(0,1fr) 4.2em;align-items:center;gap:.6em;display:grid}.lane__label{color:var(--d-dim);font-size:.82em}.lane__track{border:1px solid var(--d-line);background:var(--d-panel);border-radius:5px;height:1.9em;display:flex;overflow:hidden}.seg{--p:0;border-right:1px solid var(--d-surface);flex:none;position:relative;overflow:hidden}.demo--compact .seg{border-right-color:#0e0b1c}.seg__fill{transform:scaleX(var(--p));transform-origin:0;background:var(--d-before);position:absolute;inset:0}.lane--after .seg__fill{background:var(--d-after)}.seg__name{color:var(--d-text);white-space:nowrap;padding:0 .4em;font-size:.66em;line-height:2.9em;display:block;position:relative;overflow:hidden}.seg.is-tight .seg__name{visibility:hidden}.lane__clock{font-variant-numeric:tabular-nums;text-align:right}.lane.is-done .lane__clock{color:var(--d-good);font-weight:600}.demo--compact .seg__name{display:none}.demo--compact .lane{grid-template-columns:3.6em minmax(0,1fr) 3.6em;gap:.4em}.demo--compact .lane__track{height:1.3em}.kpi{border:1px solid var(--d-line);background:var(--d-panel);border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.4em 1.2em;padding:.7em .9em;display:grid}.kpi__label{color:var(--d-dim);font-size:.78em}.kpi__value{color:var(--d-bad);font-family:var(--font-display,system-ui);font-variant-numeric:tabular-nums;font-size:2em;font-weight:600;line-height:1;transition:color .4s}.demo--metric.is-fixed .kpi__value{color:var(--d-good)}.kpi__doubt{font-size:.85em}.demo--metric.is-fixed .kpi__doubt{opacity:.6}.trace{gap:.35em;margin:0;padding:0;list-style:none;display:grid}.trace__step{border:1px solid var(--d-line);background:var(--d-surface);border-radius:6px;grid-template-columns:4.4em minmax(0,1fr);gap:.15em .7em;padding:.45em .65em;animation:.25s cubic-bezier(.2,.8,.2,1) bill-in;display:grid}.demo--compact .trace__step{background:var(--d-panel)}.trace__layer{color:var(--d-dim);text-transform:uppercase;grid-row:span 2;font-size:.75em}.trace__code{font:inherit;white-space:nowrap;font-size:.82em;overflow-x:auto}.trace__verdict{color:var(--d-good);font-size:.82em}.trace__step[data-state=bad]{border-color:var(--d-bad);background:color-mix(in srgb, var(--d-bad) 7%, var(--d-surface))}.trace__step[data-state=bad] .trace__verdict{color:var(--d-bad)}.trace__step[data-state=fixed]{border-color:var(--d-good)}.demo--compact .trace__step[data-state=bad]{background:#ff5a6e1a}.demo--compact .kpi{padding:.5em .7em}.demo--compact .kpi__value{font-size:1.6em}.demo--compact .trace__step{grid-template-columns:3.6em minmax(0,1fr);padding:.35em .5em}.offer{--body:#767089;--target:2.3em;color:#1d1638;font-family:var(--font-display,system-ui, sans-serif);background:#fff;border:1px solid #d8d2bf;border-radius:8px;gap:.3em;padding:1em 1.1em;display:grid}.demo--compact .offer{border-color:#0000}.offer__eyebrow{color:#5b31c9;font-family:var(--font-mono,monospace);letter-spacing:.06em;text-transform:uppercase;font-size:.72em;font-weight:600}.offer__title{font-size:1.2em;font-weight:600;line-height:1.2}.offer__body{color:var(--body);font-size:.92em;transition:color .3s}.offer__actions{flex-wrap:wrap;align-items:center;gap:.5em 1em;margin-top:.4em;display:flex}.offer__btn{min-height:var(--target);color:#fff;background:#5b31c9;border:0;border-radius:5px;padding:0 1.1em;font-weight:600;transition:min-height .25s;font-family:var(--font-display,system-ui)!important;font-size:.85em!important}.offer__link{color:#5b31c9;font-size:.88em;font-weight:500}.offer[data-level=before] .offer__link{text-decoration:none}.offer[data-level=before] .offer__btn:focus-visible,.offer[data-level=before] .offer__link:focus-visible{outline-offset:1px;outline:1px dotted #b3adc6}.offer[data-level=aaa] .offer__link{text-underline-offset:.2em;text-decoration:underline}.offer[data-level=aaa] .offer__btn:focus-visible,.offer[data-level=aaa] .offer__link:focus-visible{outline-offset:2px;outline:3px solid #1d1638}.checks{gap:.35em;margin:0;padding:0;list-style:none;display:grid}.check{border:1px solid var(--d-bad);background:color-mix(in srgb, var(--d-bad) 6%, var(--d-surface));border-radius:6px;grid-template-columns:1.4em minmax(0,1fr);gap:0 .5em;padding:.4em .6em;display:grid}.check[data-pass=true]{border-color:var(--d-good);background:color-mix(in srgb, var(--d-good) 7%, var(--d-surface))}.demo--compact .check{background:#ff5a6e14}.demo--compact .check[data-pass=true]{background:#5ff2c014}.check__mark{color:var(--d-bad);grid-row:span 2;font-weight:700}.check[data-pass=true] .check__mark{color:var(--d-good)}.check__name{font-size:.86em}.check__sc{color:var(--d-dim);font-size:.85em}.check__detail{color:var(--d-dim);font-size:.8em}.demo--compact .offer{padding:.6em .75em}.demo--compact .checks{grid-template-columns:1fr 1fr}.demo--compact .check{padding:.3em .45em}.demo--compact .check__detail{display:none}.demo--compact .demo__chip{padding:.2em .55em;font-size:.8em}.demo--compact .demo__bar{gap:.3em}.demo--compact .bill__acct,.demo--compact .offer__eyebrow{display:none}.demo--compact .bill__msg{font-size:.85em}.demo--compact .offer__title{font-size:1.02em}.demo--compact .kpi__doubt{font-size:.76em}.demo--compact .trace{gap:.25em}.demo--compact .trace__step:not([aria-current]) .trace__code{display:none}.demo--compact .trace__step:not([aria-current]) .trace__layer{grid-row:auto}@keyframes bill-in{0%{opacity:.5;transform:translateY(.3em)}}@media (prefers-reduced-motion:reduce){.demo *,.demo :before,.demo :after{transition:none!important;animation:none!important}}
