@charset "UTF-8";
:root{color-scheme:dark;--bg:#060611;--ink:#f4f4ff;--muted:#a6a8c2;--accent:#dbff00;--cyan:#55eeff;--pink:#ff4dc4;--line:#303047;--ease:cubic-bezier(.2,.75,.25,1);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:radial-gradient(ellipse at 0 32%,#20103b55,transparent 35%),radial-gradient(ellipse at 100% 65%,#08374355,transparent 40%),var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,select:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:#080810}[hidden]{display:none!important}.wrap{width:min(1328px,calc(100% - 96px));margin-inline:auto}.world-fx{position:fixed;inset:0;z-index:5;pointer-events:none;width:100%;height:100%}.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:50;background:linear-gradient(90deg,var(--cyan),var(--pink),var(--accent));transform:scaleX(0);transform-origin:left;pointer-events:none}.skip-link{position:fixed;left:20px;top:12px;z-index:60;background:var(--accent);color:#060611;padding:14px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.header{position:relative;z-index:10;height:94px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid #ffffff1c}.wordmark{display:inline-flex;align-items:center;gap:8px;font:800 21px Arial,sans-serif;letter-spacing:-1px}.brand-icon{font-size:32px;color:var(--accent);text-shadow:0 0 25px #dbff0055}.wordmark-dot{align-self:flex-start;font-size:9px;margin:7px 0 0 -4px}.header-actions{display:flex;align-items:center;gap:32px}.header nav{display:flex;gap:30px;font:700 10px Arial,sans-serif;letter-spacing:.1em}.header nav a{padding:14px 0}.header nav a:hover{color:var(--accent)}.header nav span{color:var(--accent);margin-left:6px}.motion-toggle,.sound-toggle{min-height:36px;padding:8px 12px;border:1px solid #57536f;border-radius:3px;background:#11101fcc;color:#c4c5de;font-size:10px}.motion-toggle:hover,.sound-toggle:hover{border-color:var(--cyan);color:var(--cyan)}
.hero{position:relative;isolation:isolate;min-height:760px;overflow:hidden;margin-top:-94px;padding-top:94px;background:#070816}.hero-art{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero-scene{width:100%;height:100%;object-fit:cover;object-position:65% center;transform:scale(1.045) translate(var(--mx,0px),var(--my,0px));transition:transform 1.3s var(--ease);filter:saturate(1.15)}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#070713e8 0%,#070713a8 28%,#07071312 60%),linear-gradient(0deg,var(--bg),transparent 28%,transparent 85%,#080813a8)}.hero-grid{position:absolute;inset:0;z-index:1;background-image:linear-gradient(#6df9ff07 1px,transparent 1px),linear-gradient(90deg,#6df9ff07 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(90deg,black,transparent 70%)}.hero-inner{padding-top:92px;padding-bottom:74px;position:relative;z-index:2}.eyebrow{display:flex;align-items:center;gap:10px;font:500 10px/1.8 Arial,sans-serif;letter-spacing:.15em;margin:0 0 24px;color:var(--cyan)}.status-dot,.live-dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px var(--accent)}.version-pill{font-size:8px;letter-spacing:.06em;border:1px solid #ffffff30;padding:1px 7px;color:#bec6d5;margin-left:8px}.hero h1{position:relative;width:max-content;max-width:100%;margin:0;font:900 clamp(72px,8.8vw,128px)/.88 Arial,sans-serif;letter-spacing:-.075em;color:#fff;text-shadow:0 0 65px #41e3ff1a}.hero h1 span{display:inline-block;color:var(--accent);text-shadow:0 0 45px #caff0033}.hero h1 i{font-style:normal;font-size:.55em;color:var(--pink);margin-left:4px;animation:cursor-glow 2s ease-in-out infinite}.hero-japanese{font-size:clamp(18px,2vw,27px);font-weight:700;letter-spacing:.04em;margin:30px 0 18px}.hero-copy{font-size:12px;line-height:2;color:#bec5d5;margin:0}.hero-ctas{display:flex;align-items:center;gap:30px;margin-top:28px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:48px;padding:15px 22px;border:1px solid var(--accent);border-radius:2px;background:var(--accent);color:#0c1000;font-size:12px;font-weight:750;box-shadow:0 0 30px #caff0016;transition:box-shadow .25s,transform .25s,background .25s}.primary-button:hover{background:#ecff8b;box-shadow:0 0 40px #caff0040;transform:translateY(-2px)}.primary-button>span{font-size:20px;line-height:1}.hero-secondary{font-size:11px;padding:12px 0}.hero-secondary>span{margin-left:15px;color:var(--cyan)}.hero-features{display:flex;gap:24px;margin-top:40px;font:8px Arial,sans-serif;letter-spacing:.08em;color:var(--pink)}.hero-features b{font-weight:400;color:#b3b7d1;margin-left:6px}.scene-coordinate{position:absolute;z-index:2;right:48px;bottom:110px;font:8px/1.7 monospace;letter-spacing:.1em;color:#95eced}.scene-reticle{position:absolute;left:72%;top:32%;z-index:2;width:142px;height:142px;border:1px solid #55eeff50;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 60px #55eeff12;animation:reticle-breathe 6s ease-in-out infinite}.scene-reticle:before,.scene-reticle:after{content:"";position:absolute;background:#55eeff99}.scene-reticle:before{width:180px;height:1px}.scene-reticle:after{height:180px;width:1px}.scene-reticle>span{position:absolute;top:-24px;white-space:nowrap;font:8px monospace;letter-spacing:.15em;color:var(--cyan)}.scene-reticle i{position:absolute;inset:14px;border:1px dashed #f5b1ff55;border-radius:50%;animation:spin 24s linear infinite}.scene-reticle b{font:9px monospace;background:#05071266;padding:8px;color:var(--cyan);z-index:1}.hero-bottom-line{position:relative;z-index:2;padding:20px 0;display:flex;justify-content:space-between;border-top:1px solid #ffffff20;font:8px monospace;letter-spacing:.1em;color:#b2b6cd}.hero-bottom-line .live-dot{width:4px;height:4px;margin-right:8px}
.ribbon{position:relative;overflow:hidden;border-block:1px solid #dbff0055;background:var(--accent);color:#0d1400;transform:rotate(-1.5deg);margin:18px 4px 0;padding:17px 0;box-shadow:0 0 70px #caff0010}.ribbon div{display:flex;width:max-content;animation:marquee 28s linear infinite;font:800 clamp(22px,2.9vw,40px)/1 Arial,sans-serif;letter-spacing:-.05em}.ribbon-part{display:block;flex:none}.ribbon b{font-weight:400;padding:0 26px}.section-space{padding-top:110px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}.section-heading .eyebrow{margin-bottom:20px}.section-heading h2{margin:0;font-size:clamp(36px,4.1vw,62px);line-height:1.35;letter-spacing:-.06em;font-weight:650}.typing-section .section-heading h2{font:900 clamp(54px,7.3vw,104px)/.9 Arial,sans-serif;letter-spacing:-.075em}.outline-text{color:transparent;-webkit-text-stroke:1px #9da7c3;margin-left:.1em}.heading-dot{color:var(--pink)}.section-intro{font-size:12px;line-height:2;color:var(--muted);margin:0 0 4px}.muted{color:#8e8eac}.reveal{opacity:1;transform:none}.reveal[data-reveal=pending]{opacity:0;transform:translateY(26px)}.reveal[data-reveal=shown]{transition:opacity .8s var(--ease),transform .8s var(--ease)}
/* NEON TYPE */
.typing-shell{position:relative;background:linear-gradient(145deg,#151225cc,#090b18);border:1px solid #565270;box-shadow:0 0 0 5px #26203433,0 20px 100px #761eff12;overflow:hidden}.typing-shell:before{content:"";position:absolute;left:10%;right:10%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--pink),var(--cyan),transparent);box-shadow:0 0 18px #f965ff99}.typing-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid #3c3651;background:#15112399;font:9px monospace;letter-spacing:.1em}.terminal-label{display:flex;align-items:center;gap:9px;color:var(--cyan)}.toolbar-right{display:flex;align-items:center;gap:20px;color:#b9a7d6}.sound-toggle{font-size:9px;min-height:32px}.typing-layout{display:grid;grid-template-columns:252px minmax(0,1fr)}.typing-sidebar{padding:30px 24px;background:linear-gradient(180deg,#1c123066,#12112233);border-right:1px solid #3c3651}.typing-sidebar .eyebrow{font-size:8px;letter-spacing:.1em;color:var(--pink);margin-bottom:24px}.control-label{display:block;font-size:10px;color:#c3bbd7;margin-bottom:10px}select{width:100%;min-height:44px;padding:10px 30px 10px 12px;background:#171326;color:var(--ink);border:1px solid #5b4f73;border-radius:2px;font-size:11px}.course-detail{min-height:4em;color:#b8aaca;font-size:10px;line-height:2;margin:14px 0 22px}.typing-record{padding:22px 0;border-block:1px solid #3d304c;margin:28px 0}.typing-record>span{display:block;font:7px/1.8 monospace;color:#b1a2c1}.typing-record strong{display:block;font:400 30px/1.5 monospace;color:var(--accent);font-variant-numeric:tabular-nums}.typing-record small{color:#998caa;font-size:8px}.quick-guide{list-style:none;margin:0;padding:0;font-size:9px;line-height:2;color:#b9b0cd}.quick-guide li{display:flex;gap:8px;margin:8px 0}.quick-guide b{font:10px/2 monospace;color:var(--cyan)}.sidebar-note{font-size:9px;line-height:1.9;color:#968ba9;margin:20px 0 0}.typing-console{padding:28px;min-width:0}.typing-stats{display:grid;grid-template-columns:.9fr 1.3fr 1fr 1fr;gap:16px;margin:0 0 20px}.typing-stats dt{font:8px/1.8 monospace;color:#adabc9}.typing-stats dd{font:500 clamp(26px,3vw,44px)/1.25 monospace;letter-spacing:-.06em;margin:5px 0 0;font-variant-numeric:tabular-nums}.typing-stats dd small{font-size:14px;letter-spacing:0;color:#a5aac2;margin-left:4px}.typing-stats>div:nth-child(2) dd{color:var(--accent)}.typing-stats>div:nth-child(3) dd{color:var(--pink)}.session-meter,.packet-meter{height:3px;background:#32304b;overflow:hidden}.session-meter{margin-bottom:24px}.session-meter>div{height:100%;background:linear-gradient(90deg,var(--cyan),var(--pink));transform-origin:left}.typing-stage{position:relative;isolation:isolate;border:1px solid #3a4358;background:radial-gradient(ellipse at 50% 100%,#1c597544,transparent 65%),#080d1c;overflow:hidden}.stage-grid{position:absolute;inset:0;z-index:-1;background:linear-gradient(#55eeff06 1px,transparent 1px),linear-gradient(90deg,#55eeff06 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(transparent,black);animation:grid-slide 9s linear infinite}.stage-topline{display:flex;justify-content:space-between;gap:12px;padding:18px 20px;font:8px/1.6 monospace;color:#81b0c1;letter-spacing:.07em}.word-display{position:relative;padding:25px 20px 6px;text-align:center;min-height:208px}.word-japanese{font-size:clamp(19px,2.2vw,31px);font-weight:650;letter-spacing:.06em;line-height:1.5;margin:0 0 12px;overflow-wrap:anywhere}.word-kana{font-size:10px;letter-spacing:.12em;color:#9eafc9;line-height:1.7;margin:0 0 17px}.word-romaji{font:500 clamp(17px,2.2vw,29px)/1.55 monospace;letter-spacing:.08em;min-height:1.55em;overflow-wrap:anywhere;margin:0;text-transform:uppercase}.word-romaji .typed{color:#54627b}.word-romaji .remaining{color:var(--cyan);text-shadow:0 0 20px #55eeff44}.word-romaji .next-letter{color:#071019;background:var(--cyan);box-shadow:0 0 18px #55eeff33}.input-feedback{font-size:10px;line-height:1.8;min-height:1.8em;margin:16px 0 4px;color:#bec8db}.data-lane{position:relative;height:78px;margin-inline:20px;overflow:hidden}.lane-rails{position:absolute;inset:24px 0 20px;border-block:1px solid #3d8cad44;background:repeating-linear-gradient(90deg,transparent 0,transparent 28px,#55eeff18 28px,#55eeff18 29px);transform:perspective(80px) rotateX(15deg);animation:rail-slide 3s linear infinite}.lane-label,.lane-end{position:absolute;top:8px;font:7px monospace;color:#8e9fb9;z-index:1}.lane-end{right:0}.data-packet{position:absolute;z-index:2;top:14px;left:var(--packet-position,80%);width:42px;height:42px;display:grid;place-items:center;transition:left .06s linear;filter:drop-shadow(0 0 12px #55eeff66)}.data-packet i{position:absolute;inset:2px;border:1px solid var(--cyan);background:linear-gradient(145deg,#55eeff33,#ff4dc433);transform:rotate(45deg)}.data-packet span{position:relative;z-index:1;font:7px monospace;letter-spacing:.08em;color:#e6fcff}.packet-meter{height:2px}.packet-meter>div{height:100%;background:var(--cyan);transform-origin:left}.stage-corner{position:absolute;width:13px;height:13px;border-color:var(--cyan)}.corner-tl{top:-1px;left:-1px;border-left:2px solid;border-top:2px solid}.corner-br{bottom:-1px;right:-1px;border-right:2px solid;border-bottom:2px solid}.typing-shell[data-state=paused] .typing-stage{opacity:.5}.typing-shell[data-state=ended] .typing-stage{opacity:.65}.typing-stage.is-success{animation:stage-success .6s ease-out}.typing-input-row{display:flex;align-items:center;gap:12px;margin-top:16px;padding:0 14px;border:1px solid #4a526e;background:#070b18;min-height:48px}.typing-input-row:focus-within{border-color:var(--cyan);box-shadow:0 0 20px #55eeff12}.typing-input-row label{font:9px monospace;color:var(--cyan);white-space:nowrap}.typing-input-row label span{font-size:19px;vertical-align:middle;margin-left:6px}.typing-input-row input{width:100%;min-width:0;padding:14px 0;color:var(--ink);background:transparent;border:0;outline:none;font-size:12px}.typing-input-row input:focus-visible{outline:none}.typing-input-row input::placeholder{color:#959db4;font-size:10px}.input-indicator{width:5px;height:5px;flex:none;background:var(--cyan);box-shadow:0 0 10px #55eeff66}.typing-input-row.is-error{border-color:#ffad72}.typing-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}.secondary-button{min-height:44px;padding:12px 16px;background:transparent;border:1px solid #625577;border-radius:2px;color:#e0d8ee;font-size:11px}.secondary-button:hover{border-color:var(--pink);background:#ff4dc410}.quiet-button{min-height:44px;border:0;border-bottom:1px solid #625577;background:transparent;color:#c4bbd3;padding:10px 2px;font-size:10px}.quiet-button:hover{color:var(--pink)}.typing-help{margin:18px 0 0;font-size:9px;color:#a3a0ba;line-height:1.9}.key-map{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:20px}.key-row{display:flex;justify-content:center;gap:4px}.key-map span{width:26px;height:25px;border:1px solid #38374f;border-bottom-width:3px;border-radius:3px;display:grid;place-items:center;color:#777b98;background:#151627;font:9px monospace;transition:background .1s,color .1s}.key-map span.is-next{color:#05111a;background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 12px #55eeff22}.key-map span.is-pressed{background:var(--pink);color:#080611;border-color:var(--pink)}.typing-results{border:1px solid #7e6d3c;background:radial-gradient(ellipse at 100% 0,#dbff0016,transparent 70%),#111321;padding:26px;margin-top:24px;scroll-margin-top:30px}.typing-results:focus{outline:2px solid var(--accent);outline-offset:4px}.result-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.result-heading .eyebrow{font-size:8px;margin-bottom:8px;color:var(--accent)}.result-heading h3{margin:0;font:800 38px/1 Arial,sans-serif;letter-spacing:-.06em}.result-heading h3 span{color:var(--pink)}#result-rank{font:italic 900 70px/.9 Arial,sans-serif;color:var(--accent);text-shadow:4px 4px 0 #758d002b}.result-balance{font:600 24px/1.6 monospace;color:var(--accent);margin:20px 0}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 12px;margin:0;border-top:1px solid #424334;padding-top:20px}.result-grid dt{font-size:9px;line-height:1.7;color:#b3b69d}.result-grid dd{font:14px/1.7 monospace;color:#e9eddb;margin:6px 0 0}.result-note{font-size:10px;color:#c7c9b4;line-height:1.8;margin:20px 0 0}.game-details{border-bottom:1px solid #373149;color:#aca6bd;margin-top:20px;font-size:11px;line-height:1.9}.game-details summary{padding:15px 0;cursor:pointer;list-style-position:inside}.game-details summary>span{float:right;color:var(--pink)}.game-details>div{padding:0 0 15px;max-width:900px}.game-details p{margin:12px 0}
/* LIGHT CATCH remains playable alongside the new arcade. */
.game-shell{display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid #4b3e69;background:#101122;overflow:hidden}.game-info{padding:44px;display:flex;flex-direction:column;align-items:flex-start;background:radial-gradient(ellipse at 0 0,#ff4dc418,transparent 80%)}.game-info .eyebrow{font-size:9px;color:var(--pink);margin-bottom:30px}.game-info h3{margin:0;font:800 clamp(52px,5.5vw,80px)/.95 Arial,sans-serif;letter-spacing:-.07em}.game-info h3 span{color:var(--accent)}.game-copy{max-width:310px;margin:28px 0;color:#b8b2d1;font-size:12px;line-height:2}.game-mode{display:flex;align-items:center;gap:14px;margin-bottom:20px;font-size:11px;color:#b8b2d1}.game-mode select{width:auto;max-width:100%;font-size:11px}.game-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%}.game-status{min-height:3.8em;margin:22px 0;color:#d4cce8;font-size:12px;line-height:1.9}.game-note{margin:auto 0 0;padding-top:24px;font-size:10px;line-height:1.9;color:#a59bbd}.game-console{min-width:0;padding:28px 32px;background:radial-gradient(ellipse at 50% 55%,#22477533,transparent 75%),#0b0d1c;border-left:1px solid #4b3e69}.game-console-top,.game-console-bottom{display:flex;justify-content:space-between;gap:12px;color:#9ca8cc;font:8px/1.7 monospace;letter-spacing:.08em}.game-state{color:var(--cyan)}.game-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0 20px;gap:12px}.game-stats dt{font-size:9px;letter-spacing:.04em;color:#a6a9c7}.game-stats dd{font:400 clamp(34px,3.7vw,54px)/1.25 monospace;font-variant-numeric:tabular-nums;letter-spacing:-.045em;margin:6px 0 0}.game-stats dd span{font-size:15px;margin-left:3px;color:#adb5d2}.game-stats>div:first-child dd{color:var(--accent)}.game-timer{height:3px;background:#34374f;overflow:hidden;margin-bottom:24px}.game-timer>div{height:100%;background:linear-gradient(90deg,var(--cyan),var(--accent));transform-origin:left;transition:transform .1s linear}.game-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:390px;margin-inline:auto}.game-cell{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;border:1px solid #393c60;background:linear-gradient(145deg,#1e213e,#111526);border-radius:7px;color:#6e7399;touch-action:manipulation;-webkit-user-select:none;user-select:none}.game-cell>span{font-size:clamp(28px,3.6vw,48px);line-height:1;opacity:.22;transform:scale(.7)}.game-cell small{position:absolute;left:10px;bottom:8px;font:8px monospace;letter-spacing:.1em;color:#939bbf}.game-cell:not(:disabled):not([aria-disabled=true]):hover{border-color:var(--cyan)}.game-cell.is-lit{background:radial-gradient(circle at 40% 30%,#e8ff76,var(--accent));border-color:#edff96;color:#263200;box-shadow:0 0 30px #dbff0029}.game-cell.is-lit>span{opacity:1;transform:none}.game-cell.is-lit small{color:#465400}.game-cell.is-caught:after{content:"+1";position:absolute;top:20%;font:600 24px monospace;color:var(--pink);animation:catch-rise .65s ease-out both;pointer-events:none}.game-cell:disabled,.game-cell[aria-disabled=true]{cursor:default}.game-cell:focus-visible{outline-offset:3px;z-index:1}.game-shell[data-state=idle] .game-cell:nth-child(5)>span{opacity:.5;color:var(--accent)}.game-shell[data-state=paused] .game-board{opacity:.5}.game-target{text-align:center;min-height:1.8em;font-size:11px;color:#c3cce7;line-height:1.8;margin:18px 0}.game-console-bottom{padding-top:16px;border-top:1px solid #353b58;font-size:7px;letter-spacing:.04em}
.outro{position:relative;text-align:center;padding-block:130px 100px;isolation:isolate}.outro:before{content:"";position:absolute;inset:50px 0 0;z-index:-1;background:radial-gradient(ellipse at 50% 80%,#9a1bef20,transparent 65%)}.outro .eyebrow{justify-content:center;color:var(--pink)}.outro h2{font-size:clamp(32px,4.5vw,65px);line-height:1.5;letter-spacing:-.06em;margin:0}.outro h2 span{background:linear-gradient(90deg,var(--cyan),#dd9cff,var(--pink));background-clip:text;-webkit-background-clip:text;color:transparent}.outro-copy{font-size:12px;line-height:2;color:#b3abc7;margin:24px 0 30px}.demo-note{margin:42px 0 0;color:#9a90af;font-size:9px;line-height:2}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:26px;border-top:1px solid #393047}.footer .wordmark{font-size:17px}.footer .brand-icon{font-size:25px}.footer p,.footer>span{font:7px/1.8 monospace;color:#a295b6;letter-spacing:.04em}
@keyframes cursor-glow{50%{opacity:.45;text-shadow:0 0 25px var(--pink)}}@keyframes reticle-breathe{50%{transform:scale(1.08);opacity:.6}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes grid-slide{to{background-position:0 36px,0 36px}}@keyframes rail-slide{to{background-position:-29px 0}}@keyframes stage-success{0%{box-shadow:inset 0 0 50px #55eeff33,0 0 24px #55eeff22}100%{box-shadow:inset 0 0 0 transparent}}@keyframes breathe{50%{transform:translateY(4px);opacity:.7}}@keyframes catch-rise{0%{opacity:0;transform:translateY(10px)}25%{opacity:1}100%{opacity:0;transform:translateY(-22px)}}
@media(min-width:1700px){.hero-art{inset:0 calc((100% - 1800px)/2)}.hero{min-height:850px}.hero-inner{padding-top:120px;padding-bottom:100px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header-actions{gap:20px}.header nav{gap:20px}.hero h1{font-size:clamp(80px,10vw,110px)}.hero-inner{padding-top:100px}.scene-reticle{left:77%;top:38%;width:100px;height:100px}.scene-reticle:before{width:130px}.scene-reticle:after{height:130px}.hero-art:after{background:linear-gradient(90deg,#070713ed,#070713a0 45%,#07071322),linear-gradient(0deg,var(--bg),transparent 40%)}.typing-layout{grid-template-columns:210px minmax(0,1fr)}.typing-sidebar{padding:26px 18px}.typing-console{padding:24px 20px}.typing-stats{gap:10px}.typing-stats dt{font-size:7px}.typing-stats dd{font-size:32px}.game-info{padding:32px 26px}.game-console{padding:26px 24px}.game-info .eyebrow{font-size:8px;letter-spacing:.08em}.lab-bottom{align-items:flex-start;flex-direction:column;gap:18px}}
@media(max-width:800px){.header{height:88px}.wordmark{font-size:19px}.header-actions{gap:14px}.header nav{gap:16px;font-size:9px}.header nav a:last-child{display:none}.motion-toggle{font-size:9px}.hero{margin-top:-88px;padding-top:88px;min-height:770px}.hero-inner{padding-top:85px}.hero-scene{object-position:72% center}.hero h1{font-size:clamp(70px,11.5vw,100px)}.hero-copy{font-size:12px}.hero-features{gap:18px;font-size:7px}.scene-reticle{display:none}.section-space{padding-top:90px}.section-heading{align-items:flex-start;flex-direction:column;gap:24px}.section-intro{font-size:12px}.typing-layout{grid-template-columns:1fr}.typing-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding:22px 24px;border-right:0;border-bottom:1px solid #3c3651}.typing-sidebar>.eyebrow{grid-column:1/-1;margin-bottom:16px}.typing-sidebar label[for=typing-course]{grid-column:1;grid-row:2}.typing-sidebar #typing-course{grid-column:1;grid-row:3}.typing-sidebar label[for=typing-mode]{grid-column:2;grid-row:2}.typing-sidebar #typing-mode{grid-column:2;grid-row:3}.course-detail{grid-column:1;grid-row:4;margin:12px 0 0;min-height:0}.typing-record{grid-column:2;grid-row:4;border:0;margin:12px 0 0;padding:0}.typing-record strong{font-size:22px;line-height:1.3}.typing-record small{font-size:7px}.quick-guide,.sidebar-note{display:none}.typing-console{padding:24px}.typing-stats dd{font-size:36px}.typing-stats dt{font-size:8px}.word-japanese{font-size:28px}.word-romaji{font-size:25px}.game-shell{grid-template-columns:1fr}.game-info{padding:32px}.game-info h3{font-size:66px}.game-info h3 br{display:none}.game-info h3 span{margin-left:.1em}.game-copy{max-width:100%;margin:22px 0}.game-note{padding-top:0}.game-status{min-height:0;margin:18px 0}.game-console{border-left:0;border-top:1px solid #4b3e69;padding:28px 32px}.game-board{max-width:390px}.game-stats{max-width:390px;margin-inline:auto}.game-stats dd{font-size:48px}.game-cell>span{font-size:44px}.game-console-top,.game-console-bottom,.game-timer{max-width:390px;margin-inline:auto}.outro{padding-block:100px 80px}.footer{flex-wrap:wrap}.footer>span{width:100%}}
@media(max-width:540px){.wrap{width:calc(100% - 36px)}.header{height:94px;align-items:flex-start;padding-block:18px;gap:10px}.header>.wordmark{margin-top:3px}.wordmark{font-size:17px;gap:6px}.brand-icon{font-size:27px}.header-actions{flex-direction:column;align-items:flex-end;gap:5px}.header nav{font-size:8px;gap:16px}.header nav a{padding:4px 0}.motion-toggle{font-size:8px;min-height:29px;padding:5px 8px}.hero{margin-top:-94px;padding-top:94px;min-height:790px}.hero-inner{padding-top:70px;padding-bottom:190px}.hero .eyebrow{font-size:7px;letter-spacing:.1em;gap:7px;margin-bottom:30px}.version-pill{font-size:6px;margin-left:0;padding:0 4px}.hero h1{font-size:clamp(58px,15.5vw,82px);letter-spacing:-.07em}.hero h1 i{font-size:.5em}.hero-japanese{font-size:17px;letter-spacing:.015em;margin-top:24px}.hero-copy{font-size:11px;line-height:2}.hero-scene{object-position:69% bottom;opacity:.9}.hero-art:after{background:linear-gradient(90deg,#070713c9,#07071350),linear-gradient(180deg,#07071399 0,#07071360 50%,transparent 75%,var(--bg) 100%)}.hero-ctas{gap:20px;margin-top:26px}.primary-button{padding:13px 17px;font-size:11px;gap:22px;min-height:46px}.hero-secondary{font-size:10px}.hero-features{gap:12px;font-size:6px;margin-top:30px;flex-wrap:wrap}.hero-features b{margin-left:3px}.scene-coordinate{right:20px;bottom:76px;font-size:6px}.hero-bottom-line{font-size:6px;gap:15px;padding-block:18px}.ribbon{margin-top:10px;padding-block:14px}.ribbon b{padding-inline:18px}.section-space{padding-top:76px}.section-heading{margin-bottom:30px;gap:22px}.eyebrow{font-size:8px;letter-spacing:.13em}.section-heading .eyebrow{margin-bottom:18px}.section-heading h2{font-size:35px;line-height:1.5}.typing-section .section-heading h2{font-size:clamp(44px,12vw,62px)}.section-intro{font-size:11px}.typing-toolbar{padding:12px 14px;gap:8px;font-size:7px;letter-spacing:.02em}.terminal-label{gap:6px}.terminal-label .live-dot{width:4px;height:4px}.toolbar-right{gap:8px}#typing-state{display:none}.sound-toggle{font-size:8px;padding:6px 8px;min-height:30px}.typing-sidebar{padding:20px 16px;gap:0 12px}.typing-sidebar .eyebrow{font-size:7px}.control-label{font-size:9px;margin-bottom:8px}select{font-size:10px;padding-left:8px;padding-right:22px}.course-detail{font-size:9px;line-height:1.9}.typing-record>span{font-size:6px}.typing-record strong{font-size:20px}.typing-record small{font-size:6px}.typing-console{padding:18px 14px}.typing-stats{gap:8px;grid-template-columns:.9fr 1.2fr .9fr 1fr;margin-bottom:16px}.typing-stats dt{font-size:6px;letter-spacing:-.04em}.typing-stats dd{font-size:clamp(23px,6.5vw,32px);margin-top:6px}.typing-stats dd small{font-size:10px;margin-left:2px}.session-meter{margin-bottom:18px}.stage-topline{padding:14px 12px;font-size:6px;gap:8px}.word-display{padding:22px 12px 3px;min-height:190px}.word-japanese{font-size:21px;letter-spacing:.02em}.word-kana{font-size:8px;letter-spacing:.06em;margin-bottom:16px}.word-romaji{font-size:19px;letter-spacing:.04em}.input-feedback{font-size:9px;margin-top:14px}.data-lane{height:65px;margin-inline:12px}.data-packet{width:34px;height:34px;top:17px}.data-packet span{font-size:6px}.lane-label,.lane-end{font-size:6px}.typing-input-row{padding-inline:10px;gap:8px}.typing-input-row label{font-size:8px}.typing-input-row input{font-size:16px}.typing-input-row input::placeholder{font-size:9px}.input-indicator{display:none}.key-map{gap:3px;margin-top:16px}.key-row{gap:3px}.key-map span{width:22px;height:23px;font-size:8px}.typing-actions{gap:10px;margin-top:18px}.typing-actions .primary-button{font-size:10px;gap:14px;padding:13px 14px}.secondary-button{font-size:10px;padding:11px 12px}.quiet-button{font-size:9px}.typing-help{font-size:8px;line-height:2}.typing-results{padding:20px 15px}.result-heading h3{font-size:31px}#result-rank{font-size:56px}.result-balance{font-size:20px}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.result-grid dd{font-size:12px}.result-grid dt{font-size:8px}.result-note{font-size:9px}.game-details{font-size:10px}.lab-top{padding:20px 16px;font-size:7px;letter-spacing:.08em}.lab-visual{height:305px}.light-column{width:65px;height:182px;top:50px}.column-one{left:calc(50% - 112px);height:132px;top:100px}.column-two{left:calc(50% - 32.5px)}.column-three{left:calc(50% + 47px);height:153px;top:79px}.lab-horizon{top:232px}.lab-coordinate{left:16px;font-size:7px;bottom:15px}.lab-bottom{padding:20px 14px;gap:16px}.mood-controls{gap:2px;width:100%}.mood-controls button{padding:12px 10px;flex:1;font-size:9px}.mood-controls button span{margin-left:7px;font-size:11px}.mood-description{font-size:9px;min-height:1.8em}.light-lab[data-mood=trace] .column-one{transform:translateX(-12px) skewY(-8deg)}.light-lab[data-mood=trace] .column-three{transform:translateX(12px) skewY(8deg)}.game-info{padding:28px 20px}.game-info h3{font-size:clamp(42px,10vw,60px)}.game-info .eyebrow{font-size:7px;margin-bottom:22px}.game-console{padding:22px 16px}.game-board{gap:8px}.game-cell>span{font-size:34px}.game-stats dd{font-size:38px}.game-stats dt{font-size:7px}.game-console-top{font-size:6px}.game-console-bottom{font-size:5px}.game-copy{font-size:11px}.game-note{font-size:9px}.game-target{font-size:10px}.outro{padding-block:90px 70px}.outro:before{inset:40px 0 0}.outro h2{font-size:31px}.outro .eyebrow{font-size:8px}.outro-copy{font-size:10px}.demo-note{font-size:8px}.footer{gap:14px}.footer .wordmark{font-size:15px}.footer p{font-size:6px}.footer>span{font-size:6px}}
@media(max-width:360px){.wordmark{font-size:15px}.brand-icon{font-size:25px}.header nav{font-size:7px;gap:12px}.hero-japanese{font-size:15px}.hero .eyebrow{font-size:6px}.hero-features{font-size:5px}.hero-ctas{gap:14px}.hero-secondary{font-size:9px}.typing-console{padding:16px 10px}.typing-sidebar{padding:18px 12px}.typing-record strong{font-size:18px}.key-map span{width:20px;height:22px}.key-row{gap:2px}.typing-stats dt{font-size:5.5px}.typing-stats dd{font-size:23px}.word-romaji{font-size:17px}.word-japanese{font-size:19px}.terminal-label{font-size:6px}.typing-toolbar{padding:12px 10px}.game-info{padding:24px 16px}.game-console{padding:20px 12px}.game-stats dd{font-size:33px}.game-cell small{left:7px;bottom:6px}.outro h2{font-size:27px}}
html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}html[data-motion=off] .hero-scene{transform:none}html[data-motion=off] .reveal[data-reveal=pending]{opacity:1;transform:none}html[data-motion=off] .game-cell.is-caught:after{display:none}html[data-motion=off] .data-packet{left:50%!important}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]){scroll-behavior:auto}html:not([data-motion=on]) *,html:not([data-motion=on]) *:before,html:not([data-motion=on]) *:after{animation:none!important;transition:none!important}html:not([data-motion=on]) .hero-scene{transform:none}html:not([data-motion=on]) .reveal[data-reveal=pending]{opacity:1;transform:none}html:not([data-motion=on]) .game-cell.is-caught:after{display:none}html:not([data-motion=on]) .data-packet{left:50%!important}}

/* Independent, silent video layer and a persistent sound desk. */
body{padding-bottom:86px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;opacity:0;transition:opacity .7s ease;filter:saturate(1.1)}
.hero-video.is-playing{opacity:1}
.hero-art:after{z-index:1;background:linear-gradient(90deg,#070713f2 0%,#070713b8 31%,#07071320 64%),linear-gradient(0deg,var(--bg),transparent 30%,transparent 85%,#080813a8)}
.video-controls{display:flex;align-items:center;gap:14px;margin-top:20px;color:#b2bad0;font:8px monospace;letter-spacing:.06em}
.video-controls button{min-height:36px;padding:8px 12px;border:1px solid #555e7a;background:#090f21a6;color:#c6e9f3;font-size:10px;border-radius:2px}
.video-controls button:hover{border-color:var(--cyan)}
.audio-dock{position:fixed;z-index:45;right:16px;bottom:14px;display:flex;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:10px 14px;background:#090b1af5;border:1px solid #6f668b;border-top-color:#55eeff88;box-shadow:0 8px 30px #0009,0 0 25px #55eeff12;border-radius:5px}
#sound-status{font:8px monospace;letter-spacing:.05em;color:#b9bfd5;min-width:104px;max-width:160px;line-height:1.7}
.audio-buttons{display:flex;gap:6px}
.audio-buttons button{min-height:36px;padding:8px 12px;border:1px solid #62647c;background:#171a2d;color:#dce5f3;border-radius:3px;font-size:11px;white-space:nowrap}
.audio-buttons #sound-on[aria-pressed=true]{background:#dbff0022;border-color:var(--accent);color:var(--accent)}
.audio-buttons #sound-off{border-color:#bc72a6;color:#f3b6e1}
.audio-dock label{font-size:9px;color:#c1c8df;white-space:nowrap}
.audio-dock output{display:inline-block;min-width:24px;color:var(--cyan);margin-left:3px;font-variant-numeric:tabular-nums}
#sound-volume{width:86px;min-width:0;height:32px;accent-color:var(--cyan);cursor:pointer;touch-action:pan-y}
/* Feedback is confined to letters, the score and the game surface. */
.combo-banner{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-height:24px;padding:0 20px;font:7px monospace;color:#8e9bb3;letter-spacing:.1em}
.combo-banner>span{margin-right:8px}
.combo-banner i{display:inline-block;width:14px;height:3px;background:#35415a;transform:skewX(-25deg)}
.typing-shell[data-energy="1"] .combo-banner,.typing-shell[data-energy="2"] .combo-banner,.typing-shell[data-energy="3"] .combo-banner{color:var(--cyan)}
.typing-shell[data-energy="1"] .combo-banner i:first-of-type,.typing-shell[data-energy="2"] .combo-banner i:nth-of-type(-n+2),.typing-shell[data-energy="3"] .combo-banner i{background:var(--cyan);box-shadow:0 0 10px #55eeff44}
.typing-stage{transition:border-color .5s,background .5s}
.typing-shell[data-energy="1"] .typing-stage{border-color:#388a9b;background:radial-gradient(ellipse at 50% 100%,#155e734d,transparent 75%),#080d1c}
.typing-shell[data-energy="2"] .typing-stage{border-color:#b43f94;background:radial-gradient(ellipse at 70% 100%,#8d285944,transparent 80%),#080d1c}
.typing-shell[data-energy="3"] .typing-stage{border-color:#c3da40;background:radial-gradient(ellipse at 50% 100%,#607d2e44,transparent 75%),#080d1c}
.typing-shell[data-energy="2"] .stage-grid{animation-duration:6s}.typing-shell[data-energy="3"] .stage-grid{animation-duration:4s}
.word-romaji .typed-recent{color:#efffff;text-shadow:0 0 10px #55eeff,0 0 22px #55eeff88;animation:letter-afterglow .32s ease-out both}
.typing-shell[data-energy="2"] .word-romaji .typed-recent{color:#ffe8fa;text-shadow:0 0 12px #ff4dc4}
.typing-shell[data-energy="3"] .word-romaji .typed-recent{color:#faffcf;text-shadow:0 0 14px #dbff00}
.typing-stats dd,.game-stats dd{transform-origin:left center}
.typing-results.is-victory{position:relative;isolation:isolate;overflow:hidden;border-color:#cde85c;box-shadow:0 0 32px #dbff0018}
.typing-results.is-victory:after{content:"";position:absolute;inset:8px;z-index:-1;border:1px solid #dbff0044;pointer-events:none;animation:victory-orbit 1.6s ease-out both}
.typing-results.is-victory #result-rank{color:#e4ff65;text-shadow:0 0 35px #dbff0055}
@keyframes letter-afterglow{from{color:#fff;text-shadow:0 0 14px #55eeff,0 0 25px #55eeff88}to{color:#a9d8e6;text-shadow:0 0 5px #55eeff44}}
@keyframes victory-orbit{from{transform:scale(.82);opacity:.15}45%{opacity:.65}to{transform:scale(1);opacity:.3}}
@media(max-width:800px){.hero-video{object-position:72% center}.hero-art:after{background:linear-gradient(90deg,#070713ed,#070713a0 45%,#07071322),linear-gradient(0deg,var(--bg),transparent 40%)}}
@media(max-width:540px){body{padding-bottom:105px}.hero-video{object-position:69% bottom}.hero-art:after{background:linear-gradient(90deg,#070713d9,#07071370),linear-gradient(180deg,#07071399 0,#07071370 50%,transparent 75%,var(--bg) 100%)}.video-controls{font-size:6px;gap:10px}.video-controls button{font-size:9px;min-height:32px}.audio-dock{left:12px;right:12px;bottom:10px;display:grid;grid-template-columns:auto auto minmax(48px,1fr);gap:5px 10px;padding:8px 10px}.audio-dock #sound-status{grid-column:1/-1;min-width:0;max-width:none;font-size:7px;min-height:12px;line-height:1.5}.audio-buttons{gap:5px}.audio-buttons button{font-size:10px;min-height:34px;padding:7px 10px}.audio-dock label{font-size:9px;text-align:right}.audio-dock output{margin-left:1px;min-width:21px}#sound-volume{width:100%;min-width:48px;height:30px}.combo-banner{padding-inline:12px;font-size:6px;letter-spacing:.02em}.combo-banner i{width:10px}.word-display{padding-top:14px}}
html[data-motion=off] .typed-recent{animation:none!important;text-shadow:none!important;color:#b8d9e7}
html[data-motion=off] .typing-results.is-victory:after{animation:none;transform:none;opacity:.3}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .typed-recent{animation:none!important;text-shadow:none!important;color:#b8d9e7}html:not([data-motion=on]) .typing-results.is-victory:after{animation:none;transform:none;opacity:.3}}
.direct-input-option{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:10px;line-height:1.8;color:#c4d7e8;cursor:pointer;width:max-content;max-width:100%}.direct-input-option input{width:16px;height:16px;accent-color:var(--cyan);margin:0;cursor:pointer}.direct-input-option span{color:#949cb6;font-size:9px}
html{scroll-padding-bottom:112px}
.typing-input-row{scroll-margin-bottom:112px}
@media(max-width:540px){.typing-shell[data-state=playing] .typing-sidebar,.typing-shell[data-state=paused] .typing-sidebar{display:none}.typing-shell[data-state=playing] .word-display,.typing-shell[data-state=paused] .word-display{min-height:160px}}

/* Time pressure uses a slow, local halo, never a full-screen flash. */
.time-alert-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:-10px 0 16px;font:8px/1.8 monospace;color:#a4b0c9}
#typing-penalty{color:#c6b4ce}
.miss-indicator{position:absolute;top:62px;left:20px;z-index:3;padding:5px 9px;border:1px solid #ff907a80;background:#35141ff2;color:#ffbb9f;font:700 10px/1.5 monospace;letter-spacing:.06em;pointer-events:none}
.typing-shell[data-urgency="1"]{--warning-color:#ffc76b;--warning-halo:#ff9f351c}
.typing-shell[data-urgency="2"]{--warning-color:#ff997e;--warning-halo:#ff694d24}
.typing-shell[data-urgency="3"]{--warning-color:#ffb5b5;--warning-halo:#ff46592a}
.typing-shell[data-urgency="1"] .typing-stage,.typing-shell[data-urgency="2"] .typing-stage,.typing-shell[data-urgency="3"] .typing-stage{border-color:var(--warning-color)}
.typing-shell[data-urgency="1"] #typing-time,.typing-shell[data-urgency="2"] #typing-time,.typing-shell[data-urgency="3"] #typing-time{color:var(--warning-color);text-shadow:0 0 18px var(--warning-halo)}
.typing-shell[data-urgency="1"] #typing-alert,.typing-shell[data-urgency="2"] #typing-alert,.typing-shell[data-urgency="3"] #typing-alert{color:var(--warning-color)}
.typing-shell[data-urgency="1"] .session-meter>div,.typing-shell[data-urgency="2"] .session-meter>div,.typing-shell[data-urgency="3"] .session-meter>div{background:var(--warning-color)}
.typing-shell[data-urgency="1"] .typing-stage:after,.typing-shell[data-urgency="2"] .typing-stage:after,.typing-shell[data-urgency="3"] .typing-stage:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 70px var(--warning-halo);animation:time-pressure 4s ease-in-out infinite}
.typing-shell[data-urgency="2"] .typing-stage:after{animation-duration:3.2s}
.typing-shell[data-urgency="3"] .typing-stage:after{animation-duration:2.6s}
@keyframes time-pressure{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:540px){.time-alert-row{font-size:6px;gap:4px;margin:-6px 0 12px}.miss-indicator{top:51px;left:12px;font-size:8px;padding:4px 6px}}
html[data-motion=off] .typing-stage:after{animation:none!important;opacity:.65}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .typing-stage:after{animation:none!important;opacity:.65}}
.time-alert-row{font-size:10px;min-height:30px}
#typing-alert{padding:3px 7px;border:1px solid transparent;border-radius:2px}
.typing-shell[data-urgency="1"] #typing-alert,.typing-shell[data-urgency="2"] #typing-alert,.typing-shell[data-urgency="3"] #typing-alert{border-color:var(--warning-color);background:var(--warning-halo);font-weight:700}
.miss-indicator{font-size:12px;padding:6px 10px}
@media(max-width:540px){.time-alert-row{font-size:8px;min-height:30px}.miss-indicator{font-size:10px;padding:4px 6px}}

.header nav a:last-child{display:inline-flex}

/* Shared 150 BPM arcade world, with a dark reading surface above the video. */
.typing-toolbar .toolbar-right{flex-wrap:wrap;justify-content:flex-end;gap:10px}
[data-game-video-toggle]{min-height:32px;padding:6px 9px;border:1px solid #58607c;background:#101527;color:#bddce8;border-radius:2px;font-size:9px;white-space:nowrap}
.game-motion{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;opacity:.13;filter:saturate(1.18);pointer-events:none;transition:opacity .5s}
.game-motion.is-playing{opacity:calc(.16 + var(--audio-beat,0)*.07)}
.rush-scrim{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#080d1cd9,#080d1cb8 50%,#080d1ce6);pointer-events:none}
.praise-banner{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:66px;padding:10px 18px;text-align:center;pointer-events:none;overflow:hidden;isolation:isolate}
.praise-banner strong{font-size:12px;line-height:1.5;letter-spacing:.04em;color:#9cacc5;font-weight:600}
.praise-banner span{font:8px/1.7 monospace;letter-spacing:.06em;color:#8597b4;margin-top:3px}
.praise-banner.is-praised strong{font-size:clamp(19px,2.1vw,29px);font-weight:800;color:#deffff;text-shadow:0 0 18px #55eeff44}
.praise-banner.is-praised span{color:#c0d4e4}
.praise-banner[data-level="1"] strong{color:var(--cyan);text-shadow:0 0 24px #55eeff66}
.praise-banner[data-level="2"] strong{background:linear-gradient(90deg,#68efff,#f3c0ff,#ff65c7);background-clip:text;-webkit-background-clip:text;color:transparent}
.praise-banner[data-level="3"] strong,.praise-banner[data-level="4"] strong{background:linear-gradient(90deg,#dcff00,#fff2b5,#ff70ce,#7dffff);background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:0 0 34px #dbff0022}
.praise-banner[data-level="2"]:before,.praise-banner[data-level="3"]:before,.praise-banner[data-level="4"]:before{content:"✦";position:absolute;left:8%;font-size:50px;color:var(--pink);opacity:.28;z-index:-1;animation:praise-star 6s linear infinite}
.praise-banner[data-level="3"]:after,.praise-banner[data-level="4"]:after{content:"✦";position:absolute;right:8%;font-size:50px;color:var(--accent);opacity:.3;z-index:-1;animation:praise-star 5s linear infinite reverse}
.praise-banner[data-level="4"]{background:radial-gradient(ellipse,#a4e13c12,transparent 65%)}
.typing-shell[data-energy="4"] .typing-stage{background:radial-gradient(ellipse at 50% 100%,#5e236b33,transparent 75%),#080d1c}
.beat-bars{position:relative;z-index:0;display:flex;justify-content:center;align-items:flex-end;gap:6px;height:25px;padding:0 20px 4px;pointer-events:none;overflow:hidden;opacity:.55}
.beat-bars i{display:block;width:6px;height:100%;background:linear-gradient(var(--cyan),#a985ff,var(--pink));transform-origin:bottom;border-radius:1px;animation:arcade-beat calc(.8s / var(--rush-speed,1)) ease-in-out infinite}
.beat-bars i:nth-child(3n){height:55%;animation-delay:-.16s}.beat-bars i:nth-child(3n+1){height:80%;animation-delay:-.32s}.beat-bars i:nth-child(4n){background:linear-gradient(var(--accent),var(--cyan))}
@keyframes arcade-beat{0%,100%{transform:scaleY(calc(.2 + var(--audio-beat,0)*.45))}50%{transform:scaleY(calc(.45 + var(--audio-beat,0)*.55))}}
@keyframes praise-star{to{transform:rotate(360deg)}}

/* NEON SIGNAL: original Simon-style four-pad memory game. */
.simon-shell .game-info h3 span{color:var(--cyan)}
.simon-shell .game-console{background:#090d1e;border-left-color:#455e71}
.simon-shell .game-console-top{align-items:center;flex-wrap:wrap;font-size:8px;gap:10px}
.simon-shell .game-stats dd{font-size:clamp(29px,3.6vw,48px)}
.simon-arena{position:relative;isolation:isolate;overflow:hidden;padding:6px 12px 10px;border:1px solid #34455f;background:#090e1b;border-radius:8px}
.simon-board{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:370px;margin:12px auto 22px;padding:4px}
.simon-pad{--pad-rgb:85,238,255;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;aspect-ratio:1;min-height:100px;touch-action:manipulation;border:1px solid rgba(var(--pad-rgb),.5);background:radial-gradient(circle at center,rgba(var(--pad-rgb),.14),rgba(var(--pad-rgb),.035));color:rgb(var(--pad-rgb));border-radius:12px;user-select:none;-webkit-user-select:none}
.pad-cyan{--pad-rgb:85,238,255;border-top-left-radius:68px}.pad-pink{--pad-rgb:255,77,196;border-top-right-radius:68px}.pad-lime{--pad-rgb:219,255,0;border-bottom-left-radius:68px}.pad-amber{--pad-rgb:255,180,80;border-bottom-right-radius:68px}
.pad-shape{font-size:42px;line-height:1;opacity:.7}
.simon-pad b{font:8px monospace;letter-spacing:.08em}.simon-pad small{font:9px monospace;border:1px solid rgba(var(--pad-rgb),.35);padding:3px 7px;border-radius:3px}
.simon-pad[aria-disabled=true]{cursor:default}
.simon-pad[aria-disabled=false]:hover{border-color:rgb(var(--pad-rgb));box-shadow:inset 0 0 22px rgba(var(--pad-rgb),.1)}
.simon-pad.is-cued,.simon-pad.is-hit{background:radial-gradient(circle at 40% 35%,rgba(var(--pad-rgb),.6),rgba(var(--pad-rgb),.25));box-shadow:inset 0 0 35px rgba(var(--pad-rgb),.23),0 0 26px rgba(var(--pad-rgb),.25);border-color:rgb(var(--pad-rgb));color:#fff}
.simon-pad.is-cued .pad-shape,.simon-pad.is-hit .pad-shape{opacity:1;text-shadow:0 0 18px rgb(var(--pad-rgb))}
.simon-pad.is-wrong{outline:2px solid #ff8d83;outline-offset:1px}
.simon-pad:focus-visible{outline-offset:4px;z-index:3}
.simon-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62px;height:62px;border:2px solid #58647c;border-radius:50%;background:radial-gradient(#29364b,#0a0f1e);display:grid;place-items:center;font-size:29px;color:#d2dbee;box-shadow:0 0 0 7px #080d1c;pointer-events:none}
.simon-shell[data-state=showing] .game-state{color:var(--pink)}
.simon-shell[data-state=input] .game-state{color:var(--accent)}
.simon-shell[data-state=showing] .game-motion{opacity:.055}
.simon-shell[data-state=showing] .beat-bars{opacity:.16}
.simon-shell[data-energy="1"] .simon-arena{border-color:#51c6da}.simon-shell[data-energy="2"] .simon-arena{border-color:#d958b7}.simon-shell[data-energy="3"] .simon-arena,.simon-shell[data-energy="4"] .simon-arena{border-color:#c4dc59;box-shadow:0 0 25px #dbff0012}
.simon-shell .game-target{font-size:12px;min-height:2.5em;color:#d9e3f1}
.simon-shell .game-actions{gap:10px}
@media(max-width:1100px){.typing-toolbar .terminal-label{font-size:7px}.typing-toolbar .toolbar-right{gap:7px}[data-game-video-toggle]{font-size:8px;padding:6px 8px}}
@media(max-width:800px){.simon-shell .game-console{border-left:0;border-top:1px solid #455e71}.simon-board{max-width:360px}.praise-banner.is-praised strong{font-size:23px}}
@media(max-width:540px){.typing-toolbar{align-items:flex-start;gap:8px;padding-inline:12px}.typing-toolbar .toolbar-right{max-width:145px;gap:6px}.typing-toolbar .terminal-label{font-size:6px;max-width:110px;line-height:1.8}[data-game-video-toggle]{font-size:7px;min-height:30px;padding:6px}.sound-toggle{font-size:8px}.praise-banner{min-height:58px;padding:8px 10px}.praise-banner strong{font-size:10px}.praise-banner.is-praised strong{font-size:18px}.praise-banner span{font-size:6px;letter-spacing:.01em}.praise-banner:before,.praise-banner:after{font-size:30px!important}.beat-bars{height:20px;gap:5px}.beat-bars i{width:4px}.simon-shell .game-console{padding:20px 14px}.simon-shell .game-console-top{font-size:7px;gap:8px}.simon-arena{padding:5px 10px 8px}.simon-board{gap:10px;margin-top:6px;margin-bottom:16px}.simon-pad{gap:7px;min-height:96px}.pad-shape{font-size:34px}.simon-pad b{font-size:7px}.simon-pad small{font-size:8px;padding:2px 6px}.simon-hub{width:48px;height:48px;font-size:24px;box-shadow:0 0 0 5px #080d1c}.simon-shell .game-target{font-size:10px}.simon-shell .game-console-bottom{font-size:6px;line-height:1.8}.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .game-info{padding:18px}.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .game-info>.eyebrow,.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .game-info h3,.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .game-copy,.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .game-mode,.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .game-note{display:none}.simon-shell .game-status{margin:12px 0 0;font-size:11px;min-height:0}.simon-shell .game-stats{margin-top:20px}.simon-shell .game-stats dd{font-size:32px}.simon-shell .game-info h3{font-size:clamp(39px,10vw,56px)}}
@media(max-width:360px){.simon-shell .game-console{padding:16px 10px}.simon-board{gap:8px}.simon-pad{min-height:88px}.pad-shape{font-size:29px}.simon-shell .game-actions .primary-button{font-size:10px;padding-inline:12px}.simon-shell .game-info h3{font-size:37px}.praise-banner.is-praised strong{font-size:16px}}
html[data-motion=off] .beat-bars i{animation:none!important;transform:scaleY(.35)!important}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .beat-bars i{animation:none!important;transform:scaleY(.35)!important}}
/* Keep every video behind the game, with explicit positive stacking levels. */
.game-motion{z-index:0;opacity:.2}
.game-motion.is-playing{opacity:calc(.28 + var(--audio-beat,0)*.06)}
.rush-scrim{z-index:1;background:linear-gradient(180deg,#070c19db,#070c19b8 50%,#070c19e8)}
.typing-stage>.stage-topline,.typing-stage>.combo-banner,.typing-stage>.praise-banner,.typing-stage>.word-display,.typing-stage>.data-lane,.typing-stage>.beat-bars,.typing-stage>.packet-meter,.simon-arena>.praise-banner,.simon-arena>.simon-board,.simon-arena>.beat-bars{position:relative;z-index:2}
.typing-stage>.miss-indicator{z-index:4}
.typing-stage>.stage-corner{z-index:4}
.typing-shell[data-urgency="1"] .typing-stage:after,.typing-shell[data-urgency="2"] .typing-stage:after,.typing-shell[data-urgency="3"] .typing-stage:after{z-index:3}
.pad-green{--pad-rgb:61,224,135;border-top-left-radius:68px!important;background:linear-gradient(135deg,#0b5d36,#07301f)!important}
.pad-red{--pad-rgb:255,98,121;border-top-right-radius:68px!important;background:linear-gradient(225deg,#77152b,#3d101c)!important}
.pad-yellow{--pad-rgb:255,226,97;border-bottom-left-radius:68px!important;background:linear-gradient(45deg,#6d5b12,#312e08)!important}
.pad-blue{--pad-rgb:109,155,255;border-bottom-right-radius:68px!important;background:linear-gradient(315deg,#133c8a,#0a214d)!important}
.simon-pad.is-cued,.simon-pad.is-hit{background:radial-gradient(circle at 40% 35%,rgba(var(--pad-rgb),.92),rgba(var(--pad-rgb),.58))!important;color:#fff;border-color:rgb(var(--pad-rgb));box-shadow:inset 0 0 40px rgba(var(--pad-rgb),.35),0 0 24px rgba(var(--pad-rgb),.3)}
.simon-board .simon-hub{z-index:4}
.simon-rule{font-size:11px;line-height:1.9;color:#ffd3aa;margin:0 0 22px}
.hero h1>.glitch-line{display:block;position:relative;width:fit-content;color:var(--ink)}.hero h1>.glitch-accent{color:var(--accent)}.glitch-line:before,.glitch-line:after{content:attr(data-text);position:absolute;inset:0;pointer-events:none;color:#55e8ff;clip-path:inset(100% 0 0);animation:headline-cut 10s steps(1,end) infinite;opacity:.65}.glitch-line:after{color:#ff62bd;animation-delay:-.14s;animation-direction:reverse}.hero h1>.glitch-accent:before{animation-delay:-3s}.hero h1>.glitch-accent:after{animation-delay:-3.14s}.glitch-heading{text-shadow:2px 0 #54e8ff24,-2px 0 #fa65bf24}.glitch-heading:hover{text-shadow:3px 0 #54e8ff66,-3px 0 #fa65bf66}.music-layers{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px}.music-layers span{font:7px/1.8 monospace;padding:3px 6px;border:1px solid #39445e;color:#687c9a;border-radius:3px}.music-layers .is-active{color:#dcff42;border-color:#8ba825;background:#d7ff000d;box-shadow:0 0 13px #d7ff0010}.music-layer-status{grid-column:1/-1;font-size:10px;line-height:1.8;color:#a6bed8;margin:0}
@keyframes headline-cut{0%,92%,99%,100%{clip-path:inset(100% 0 0);transform:translateX(0)}93%{clip-path:inset(20% 0 65%);transform:translateX(-3px)}95%{clip-path:inset(64% 0 20%);transform:translateX(3px)}97%{clip-path:inset(38% 0 51%);transform:translateX(-2px)}}
html[data-motion=off] .glitch-line:before,html[data-motion=off] .glitch-line:after{animation:none!important;display:none}html[data-motion=off] .glitch-heading{transition:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .glitch-line:before,html:not([data-motion=on]) .glitch-line:after{animation:none!important;display:none}html:not([data-motion=on]) .glitch-heading{transition:none}}
/* WAVE ARCADE: clear foreground controls, restrained backgrounds, stronger local impacts. */
.wave-progress{margin:0 0 18px}.wave-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;font:10px/1.8 monospace;color:#b4c9df;letter-spacing:.07em}.wave-progress>div:first-child>span:first-child{color:var(--accent);font-weight:700}.wave-track{height:6px;background:#252c44;border-radius:8px;overflow:hidden;margin-top:8px}.wave-track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#54e8ff,#fc6ccc,#d7ff00);transform:scaleX(0);transform-origin:left;transition:transform .25s ease-out;box-shadow:0 0 20px #d7ff0055}
.typing-stage{min-height:460px}.typing-stage>.word-display{z-index:4}.typing-stage>.praise-banner,.simon-arena>.praise-banner{z-index:5}.typing-launch,.wave-overlay{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;background:radial-gradient(ellipse at 50% 20%,#3c24665c,transparent 65%),linear-gradient(160deg,#080d19e8,#080c19f5);backdrop-filter:blur(8px)}.typing-launch{flex-direction:column;gap:18px}.typing-launch:before{content:"";position:absolute;inset:34px 15%;border:1px solid #5de8ff24;border-radius:50%;box-shadow:0 0 65px #705cff22,inset 0 0 50px #4feaff0a;pointer-events:none}.typing-launch p{font:10px/1.7 monospace;color:var(--cyan);letter-spacing:.18em;margin:0}.typing-launch h3{position:relative;margin:0;font:850 clamp(40px,4.5vw,72px)/.95 Arial,sans-serif;letter-spacing:-.055em}.typing-launch h3 span{color:var(--accent);text-shadow:0 0 35px #d5ff0025}.typing-launch .primary-button{min-height:66px;min-width:270px;font-size:18px;font-weight:750;box-shadow:0 0 35px #d7ff0020}.typing-launch small{font-size:10px;color:#b7bfd6}.typing-shell:not([data-state=idle]):not([data-state=ended]) .typing-launch{display:none}.typing-shell[data-state=ended] .typing-stage{opacity:1}.typing-shell[data-state=idle] .typing-stage>.word-display,.typing-shell[data-state=ended] .typing-stage>.word-display{visibility:hidden}
.wave-overlay>div{max-width:580px}.wave-overlay h3{font:850 clamp(45px,4.8vw,74px)/1 Arial,sans-serif;letter-spacing:-.055em;margin:10px 0 20px;color:#f4f3ff}.wave-overlay h3 em{font-style:normal;color:var(--accent);text-shadow:0 0 38px #d7ff0044}.wave-overlay p:not(.eyebrow){font-size:12px;line-height:1.9;color:#cad4e9;max-width:390px;margin:0 auto 22px}.wave-overlay .eyebrow{font-size:9px;margin-bottom:14px;color:var(--cyan)}.wave-overlay .primary-button{min-height:52px;min-width:230px;font-size:15px}.wave-overlay small{display:block;font-size:9px;margin-top:15px;color:#9aabc7}.typing-shell[data-state=waveclear] .stage-grid,.simon-shell[data-state=waveclear] .beat-bars i{animation-play-state:paused}.typing-shell[data-state=waveclear] .typing-input-row{opacity:.5}
.combo-hud{position:absolute;z-index:5;right:18px;top:47px;text-align:right;pointer-events:none;min-width:112px;filter:drop-shadow(0 0 15px #54e8ff20)}.combo-hud>span{display:block;font:7px/1.8 monospace;letter-spacing:.08em;color:#a8c1db}.combo-hud strong{display:inline-block;font:italic 850 62px/.95 Arial,sans-serif;letter-spacing:-.065em;color:#e4fbff;text-shadow:3px 3px 0 #25587266;font-variant-numeric:tabular-nums}.combo-hud>b{display:block;font:8px/1.7 monospace;color:#55e8ff;letter-spacing:.18em}.combo-hud[data-tier="1"] strong{color:#55e8ff;text-shadow:0 0 25px #55e8ff66}.combo-hud[data-tier="2"] strong{color:#ff8ad2;text-shadow:0 0 28px #f54dae55}.combo-hud[data-tier="3"] strong,.combo-hud[data-tier="4"] strong{background:linear-gradient(135deg,#fff,#d7ff00 60%,#55e8ff);background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 17px #d7ff0055)}.combo-hud[data-tier="4"]{border-bottom:2px solid #d7ff00;padding-bottom:7px}.simon-arena .combo-hud{top:14px;right:18px}.simon-arena .combo-hud strong{font-size:51px}.simon-arena>.praise-banner{width:calc(100% - 120px);min-height:90px}.typing-stage>.praise-banner{width:calc(100% - 135px);min-height:84px}.praise-banner{opacity:0;transition:opacity .2s ease-out}.praise-banner.is-praised{opacity:1}.praise-banner.is-praised strong{font-size:clamp(18px,2vw,27px)}
.impact-layer{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.impact-layer i{position:absolute;left:50%;top:50%;width:72%;aspect-ratio:1;border:2px solid #55e8ff88;border-radius:50%;opacity:0;box-shadow:0 0 22px #55e8ff22,inset 0 0 22px #55e8ff11;will-change:transform,opacity}.impact-layer i:nth-child(2){border-color:#fa65bf88;border-radius:20%;width:55%}.impact-layer i:nth-child(3){border-color:#d7ff0088;border-style:dashed;width:83%}.typing-shell[data-energy="3"] .typing-input-row:focus-within,.typing-shell[data-energy="4"] .typing-input-row:focus-within{border-color:#d7ff00;box-shadow:0 0 28px #d7ff0025}.keyboard-layout-option{display:flex;align-items:center;gap:15px;font-size:10px;color:#b8bfd6;margin:12px 0}.keyboard-layout-option select{width:auto;min-width:165px}.key-row.is-symbol{display:none}.typing-shell[data-course=ultra] .key-row.is-symbol{display:flex}.typing-shell[data-course=ultra] .word-romaji{text-transform:none;font-size:clamp(18px,2.1vw,28px);letter-spacing:.03em;white-space:pre-wrap}.typing-shell[data-course=ultra] .word-kana{letter-spacing:.03em}.typing-shell[data-course=ultra] .word-japanese{font:9px/1.8 monospace;letter-spacing:.08em;color:#8ca7c6}.typing-shell[data-course=ultra] .key-map span{font-size:10px}
.score-entry{border:1px solid #666839;background:linear-gradient(120deg,#3034132b,#0c1121);margin-top:22px;padding:24px;min-width:0}.score-entry .eyebrow{font-size:8px;letter-spacing:.08em;color:#d7ff00;margin-bottom:9px}.score-entry h3{margin:0 0 18px;font-size:24px;letter-spacing:-.03em}.score-entry form>label{display:block;font-size:11px;color:#c4c8df;margin-bottom:8px}.score-entry form>div{display:flex;gap:12px;align-items:stretch}.score-entry input{min-width:0;width:100%;border:1px solid #5c6381;background:#080d1a;padding:12px;color:#f2f0ff;font-size:16px;border-radius:3px}.score-entry button{white-space:nowrap;min-height:48px;font-size:11px}.score-entry small{display:block;margin-top:9px;color:#aeb9d1;font-size:9px;line-height:1.8}.score-entry [role=status]{font-size:11px;color:var(--cyan);line-height:1.9;overflow-wrap:anywhere;margin-bottom:0}.score-entry [data-error=true],.ranking-status[data-error=true]{color:#ffb6c9}.simon-shell .score-entry{margin-top:24px}.rankings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ranking-card{padding:28px;background:linear-gradient(140deg,#171426,#0b1120);border:1px solid #4a4e6a;min-width:0;align-self:start}.ranking-heading{display:flex;justify-content:space-between;gap:18px;align-items:center}.ranking-heading .eyebrow{font-size:8px;color:var(--cyan);margin:0 0 8px}.ranking-heading h3{font-size:20px;line-height:1.5;letter-spacing:-.04em;margin:0}.ranking-heading label{font-size:8px;color:#b5bfd5;max-width:120px;margin-left:auto}.ranking-heading select{font-size:10px;margin-top:4px;min-height:40px;padding-right:24px}.ranking-heading>button{font-size:9px;min-height:40px;padding:10px}.ranking-card ol{list-style:none;margin:24px 0 16px;padding:0}.ranking-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:6px 12px;padding:17px 0;border-top:1px solid #343d56;align-items:center}.ranking-position{font:12px monospace;color:#849bb6}.ranking-row:first-child .ranking-position{color:var(--accent)}.ranking-name{font-size:13px;color:#eef2ff;overflow-wrap:anywhere}.ranking-points{font:14px/1.7 monospace;color:#d7ff00;white-space:nowrap}.ranking-row small{grid-column:2/-1;font:8px/1.8 monospace;color:#899fb9}.ranking-status{font-size:10px;line-height:1.9;color:#b7c2d8;overflow-wrap:anywhere;margin-bottom:0}.ranking-row:first-child .ranking-name{color:#f7ffb2}
.audio-dock{display:grid;grid-template-columns:auto auto auto auto 90px;gap:10px}.audio-settings-button{min-height:38px;padding:8px 12px;border:1px solid #576579;background:#172136;color:#d7edff;font-size:10px;border-radius:3px;white-space:nowrap}.audio-settings{position:absolute;bottom:calc(100% + 10px);right:0;width:340px;max-width:calc(100vw - 24px);padding:22px;border:1px solid #6a7399;background:#0b1020fa;box-shadow:0 12px 45px #0009;display:grid;grid-template-columns:86px minmax(0,1fr);gap:13px 12px;align-items:center}.audio-settings label{font-size:11px!important;text-align:left!important}.audio-settings input{width:100%;min-width:0;accent-color:#55e8ff}.audio-settings select{grid-column:1/-1;font-size:12px;min-height:44px}.audio-settings>label[for=music-select]{grid-column:1/-1;margin-bottom:-6px}.audio-settings button,.audio-settings small{grid-column:1/-1}.audio-settings small{font-size:9px;line-height:1.8;color:#9fafc9}.audio-settings output{color:#55e8ff;font-size:10px}.audio-buttons button{min-height:40px}.audio-dock>label{white-space:nowrap}.audio-dock #sound-status{max-width:155px}
@media(max-width:1050px){.rankings-grid{gap:16px}.ranking-card{padding:22px 18px}.ranking-heading{flex-wrap:wrap;gap:12px}.ranking-heading>div{flex:1 1 100%}.ranking-heading label{margin-left:0;max-width:none;flex:1}.ranking-heading h3{font-size:19px}}
@media(max-width:760px){.rankings-grid{grid-template-columns:1fr}.audio-dock{left:12px;right:12px;bottom:10px;grid-template-columns:auto minmax(100px,1fr);gap:6px 12px;padding:10px 12px}.audio-dock #sound-status{grid-column:1/-1;max-width:none;font-size:8px}.audio-buttons{grid-column:1;grid-row:2}.audio-settings-button{grid-column:2;grid-row:2;justify-self:end;min-height:44px}.audio-dock>label{grid-row:3;grid-column:1;text-align:left}.audio-dock>#sound-volume{grid-row:3;grid-column:2;width:100%;min-width:0}.audio-buttons button{min-height:44px}.audio-settings{width:340px}.header nav{gap:10px}.header-actions{gap:10px}.header nav a{font-size:9px}body{padding-bottom:145px}}
@media(max-width:540px){.typing-stage{min-height:420px}.typing-launch,.wave-overlay{padding:20px 14px}.typing-launch{gap:20px}.typing-launch h3{font-size:43px}.typing-launch p{font-size:8px}.typing-launch .primary-button{min-width:0;width:90%;max-width:310px;min-height:60px;font-size:16px}.typing-launch:before{inset:35px 9%}.wave-overlay h3{font-size:50px}.wave-overlay .primary-button{min-width:0;max-width:100%;width:230px}.wave-overlay p:not(.eyebrow){font-size:11px}.combo-hud{right:12px;top:48px;min-width:84px}.combo-hud strong{font-size:45px}.combo-hud>span{font-size:6px;letter-spacing:.02em}.combo-hud>b{font-size:7px}.typing-stage>.praise-banner{width:calc(100% - 100px);min-height:85px;padding:8px 10px}.praise-banner.is-praised strong{font-size:18px}.praise-banner span{font-size:6px}.simon-arena .combo-hud{right:12px;top:14px}.simon-arena .combo-hud strong{font-size:39px}.simon-arena>.praise-banner{width:calc(100% - 90px);min-height:90px}.wave-progress>div:first-child{font-size:9px}.wave-track{height:5px}.score-entry{padding:20px 16px}.score-entry form>div{flex-direction:column}.score-entry h3{font-size:22px}.score-entry input,.score-entry button{min-height:48px}.ranking-card{padding:22px 18px}.ranking-heading>div{flex-basis:auto}.ranking-heading label{flex-basis:100%;order:2}.ranking-heading select{width:100%}.ranking-row{grid-template-columns:25px minmax(0,1fr) auto;gap:5px 9px}.ranking-points{font-size:12px}.ranking-name{font-size:12px}.keyboard-layout-option{font-size:9px;gap:10px}.keyboard-layout-option select{min-width:0;max-width:170px;font-size:10px}.typing-stats dt{font-size:6px}.typing-shell[data-course=ultra] .word-romaji{font-size:20px}.typing-shell[data-course=ultra] .word-kana{font-size:9px}.typing-shell[data-course=ultra] .key-map span{font-size:8px}.header{align-items:flex-start;gap:10px}.header-actions{align-items:flex-end;gap:8px;flex-direction:column}.header nav{gap:10px}.header nav a{font-size:8px}}
html[data-motion=off] .wave-track i,html[data-motion=off] .praise-banner{transition:none!important}html[data-motion=off] .impact-layer{display:none}
.combo-banner{justify-content:flex-start;padding-right:130px}
.simon-arena>.simon-miss-indicator{top:94px;left:50%;transform:translateX(-50%);z-index:7;font-size:13px;white-space:nowrap;box-shadow:0 0 20px #ff6f8620}
@media(max-width:760px){html{scroll-padding-bottom:160px}}
@media(max-width:540px){.typing-launch h3{font-size:clamp(28px,9vw,43px)}.combo-banner{padding-right:105px}}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .wave-track i,html:not([data-motion=on]) .praise-banner{transition:none!important}html:not([data-motion=on]) .impact-layer{display:none}}
.feedback-result-link{display:inline-block;color:#55e8ff;font-size:11px;line-height:1.8;text-underline-offset:4px;margin-top:12px}.simon-shell:not([data-state=ended]) .simon-feedback-link{display:none}
@media(max-width:540px){.header-actions{gap:10px}.header nav{gap:10px}.header nav a{font-size:9px}.motion-toggle{font-size:9px;padding:7px}.feedback-result-link{font-size:10px}}
@media(max-width:540px){.simon-shell:is([data-state=showing],[data-state=input],[data-state=celebrating],[data-state=paused]) .simon-rule{display:none}}
/* STAGE EDITION: one arena for play, results and registration. */
.typing-stage{height:560px;min-height:560px}.typing-launch{display:flex}.typing-shell[data-state=ended] .typing-launch{display:none}.typing-stage>.stage-topline{padding-bottom:4px}.typing-stage .word-display{min-height:218px;padding-top:26px;padding-bottom:12px}.typing-stage .data-lane{height:54px;margin-top:0}.typing-stage>.beat-bars{height:22px;margin-bottom:0}.typing-stage>.packet-meter{position:absolute;bottom:0;left:0;right:0}.stage-keys{position:absolute;bottom:18px;left:16px;right:16px;z-index:4;padding:12px 12px 7px;border:1px solid #3c608755;border-radius:6px;background:#08101cbf;box-shadow:0 0 35px #55eeff0b}.keyboard-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6b9dbb;font:8px monospace;letter-spacing:.1em}.keyboard-heading button{background:none;border:0;border-bottom:1px solid #56657a;color:#a4c6db;font-size:9px;padding:4px 0;min-height:24px}.stage-keys .key-map{margin:9px 0 0;gap:5px}.stage-keys .key-row{gap:5px}.stage-keys .key-map span{width:clamp(28px,3vw,44px);height:34px;font:11px/1 monospace;border-radius:4px;display:grid;place-items:center;background:linear-gradient(#202a42,#111b2b);border:1px solid #4a6585;color:#a2b6cc;box-shadow:0 2px 0 #040a13;transition:background .1s,box-shadow .1s}.stage-keys .key-map span.is-next{color:#030d18;background:#55e8ff;border-color:#c1ffff;box-shadow:0 0 20px #55e8ff55,0 3px 0 #277b8c;font-weight:800}.stage-keys .key-map span.is-hit{background:#dbff00;color:#060a10;box-shadow:0 0 23px #dbff0077}.typing-stage[data-keys-folded=true] .key-map{display:none}.typing-stage[data-keys-folded=true] .stage-keys{padding-bottom:7px}.typing-shell[data-course=ultra] .typing-stage .word-display{min-height:172px;padding-top:16px}.typing-shell[data-course=ultra] .stage-keys .key-map span{height:25px;font-size:10px}.typing-shell[data-course=ultra] .stage-keys .key-map{gap:3px}.typing-shell[data-course=ultra] .stage-keys .key-row{gap:3px}
.stage-results{position:absolute;inset:0;z-index:10;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:24px 26px;background:radial-gradient(ellipse at 100% 0,#caff001b,transparent 60%),#0b1020f7;backdrop-filter:blur(14px);text-align:left;outline-offset:-3px}.stage-results .typing-results{margin:0;padding:0;border:0;background:none;box-shadow:none;overflow:visible;outline-offset:4px}.stage-results .typing-results:after{display:none}.stage-results .result-heading{gap:14px}.stage-results .result-heading h3{font-size:clamp(25px,3vw,40px)}.stage-results #result-rank{font-size:54px}.stage-results .result-balance{font-size:22px;margin:10px 0 14px}.stage-results .result-grid{gap:12px;border:0;padding:0;margin:0}.stage-results .result-summary{grid-template-columns:repeat(3,minmax(0,1fr));padding-block:10px;border-block:1px solid #3d4c53}.stage-results .result-grid dt{font-size:9px}.stage-results .result-grid dd{font-size:12px;margin:4px 0 0}.result-details{font-size:10px;line-height:1.8;margin:8px 0}.result-details summary{cursor:pointer;color:#a7bbd3;padding:5px 0;min-height:32px}.stage-results .result-note{margin:4px 0 0;font-size:9px;line-height:1.6}.stage-results .feedback-result-link{font-size:9px;margin-top:3px}.stage-results .score-entry{border:0;border-top:1px solid #3c4b5c;padding:13px 0 0;margin:10px 0 0;background:none}.stage-results .score-entry h3{font-size:14px;margin:0 0 8px}.stage-results .score-entry form>label{font-size:9px;margin-bottom:5px}.stage-results .score-entry form>div{gap:8px;flex-direction:row}.stage-results .score-entry input{font-size:16px;padding:8px 10px;min-height:42px}.stage-results .score-entry button{min-height:42px;padding:9px 12px;font-size:10px}.stage-results .score-entry small{font-size:8px;margin-top:5px}.stage-results .score-entry [role=status]{font-size:9px;line-height:1.6;margin-top:5px}.result-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.result-actions button{font-size:11px;min-height:42px;padding:10px 14px}.stage-results .eyebrow{font-size:8px;margin:0 0 8px;color:var(--cyan)}.simon-result-score{font:11px/1.5 monospace;color:#a7c4da;margin:8px 0}.simon-result-score strong{font:italic 800 72px/1 Arial;color:#d7ff00;letter-spacing:-.05em}.simon-result-score span{display:block;margin-top:6px}.simon-result-detail{color:#93b2cb;font:10px/1.8 monospace}.stage-results>h3{font:800 32px/1 Arial;letter-spacing:-.05em;margin:14px 0}
.typing-shell[data-state=ended] .typing-stage>:not(.stage-results):not(video):not(.rush-scrim){visibility:hidden}.simon-shell[data-state=ended] .simon-arena>:not(.stage-results):not(video):not(.rush-scrim){visibility:hidden}.simon-arena{height:530px;min-height:530px}.simon-arena .simon-board{max-width:340px;margin-top:26px}.simon-arena .stage-results{border-radius:8px}.shield-status{position:absolute;z-index:6;left:18px;top:38px;font:8px/1.8 monospace;color:#687f99;letter-spacing:.08em;border:1px solid #34445b;padding:3px 7px;border-radius:3px;background:#0b1222cc;pointer-events:none}.shield-status[data-charged=true]{color:#6deaff;border-color:#55e8ff88;box-shadow:0 0 18px #55e8ff1c}.simon-arena>.shield-status{top:12px;left:12px}.ready-overlay{position:absolute;inset:0;z-index:12;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;background:radial-gradient(ellipse,#172945dd,#060d1af2);text-align:center;backdrop-filter:blur(8px)}.ready-overlay span{font:800 28px/1 Arial;letter-spacing:.25em;color:#55e8ff}.ready-overlay strong{font:italic 900 140px/1 Arial;letter-spacing:-.08em;color:#d7ff00;text-shadow:0 0 55px #d7ff0044}.ready-overlay small{font:8px/1.6 monospace;color:#99bbd6;letter-spacing:.2em}.ranking-open{color:#d7ff00;background:#d7ff0010;border:1px solid #8ba74877;border-radius:3px;min-height:34px;padding:6px 10px;font-size:10px;white-space:nowrap}.toolbar-right{gap:12px}.game-focus-close{display:none}.typing-stage>.praise-banner,.simon-arena>.praise-banner{min-height:64px;pointer-events:none}.praise-banner.is-praised strong{font:italic 850 clamp(22px,2.6vw,35px)/1 Arial!important;letter-spacing:-.035em}.praise-banner span{font:8px/1.5 monospace;margin-top:4px;letter-spacing:.14em}.praise-banner:before,.praise-banner:after{display:none!important}
/* Strong localized interference: readable base type, no screen-wide flashes. */
.hero h1{position:relative;isolation:isolate;width:fit-content}.glitch-line:before,.glitch-line:after{opacity:.95;animation:headline-cut-hard 4.8s steps(1,end) infinite;text-shadow:5px 0 #55e8ff,-5px 0 #fc47bc;filter:drop-shadow(0 0 8px #55e8ff66)}.glitch-line:after{animation-delay:-.22s;animation-direction:reverse;filter:none}.hero h1:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.18;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E"),repeating-linear-gradient(0deg,transparent 0 5px,#3bddff55 5px 6px,transparent 6px 13px);clip-path:inset(10% 0 69%);animation:title-static 4.8s steps(1,end) infinite}.hero h1:hover .glitch-line:before{animation-delay:-1.2s}.glitch-heading{text-shadow:3px 0 #54e8ff88,-3px 0 #fa65bf66}.glitch-heading:hover{filter:drop-shadow(3px 0 #fa65bf88);transform:skewX(-2deg)}
@keyframes headline-cut-hard{0%,18%,34%,65%,82%,100%{clip-path:inset(100% 0 0);transform:translateX(0)}8%,12%{clip-path:inset(18% 0 64%);transform:translateX(-11px) skewX(-8deg)}28%,31%{clip-path:inset(58% 0 23%);transform:translateX(9px)}56%,60%{clip-path:inset(36% 0 43%);transform:translateX(-7px) skewX(9deg)}76%,79%{clip-path:inset(75% 0 10%);transform:translateX(12px)}}
@keyframes title-static{0%,40%,100%{clip-path:inset(12% 0 74%);background-position:0 0}20%{clip-path:inset(42% 0 48%);background-position:70px 31px}60%{clip-path:inset(68% 0 18%);background-position:-40px -17px}80%{clip-path:inset(28% 0 56%);background-position:29px 53px}}
/* Native modal board: find it from either arena, read without leaving the game. */
.rankings-dialog{width:min(720px,calc(100% - 28px));max-height:85dvh;margin:auto;padding:24px;border:1px solid #5ae8ff88;border-top:3px solid #d7ff00;border-radius:8px;background:linear-gradient(145deg,#15182c,#080f1c);color:var(--ink);box-shadow:0 0 90px #55e8ff20;overflow:auto;overscroll-behavior:contain}.rankings-dialog::backdrop{background:#02050dd9;backdrop-filter:blur(8px)}.rankings-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.rankings-dialog h2{margin:0;font:750 25px/1.3 Arial,sans-serif;letter-spacing:-.04em}.rankings-dialog .eyebrow{font-size:8px;color:#55e8ff;margin:0 0 8px}.ranking-tabs{display:flex;gap:8px;margin-bottom:18px}.ranking-tabs button{font-size:12px;padding:11px 15px;min-height:44px;color:#b3c7e2;border:1px solid #4d6582;background:#121c30;border-radius:3px}.ranking-tabs [aria-pressed=true]{color:#081020;background:#d7ff00;border-color:#d7ff00;font-weight:700}.ranking-tabs [data-rank-mute]{margin-left:auto;font-size:10px}.rankings-dialog .rankings-grid{display:block}.rankings-dialog .ranking-heading{flex-wrap:nowrap}.rankings-dialog .ranking-heading>div{flex:1}.rankings-dialog .ranking-card{padding:20px}.rankings-dialog .ranking-card ol{margin-top:15px}.rankings-dialog .ranking-row{padding:13px 0}.ranking-rules-note{font-size:10px;line-height:1.8;color:#91abc6;margin-bottom:0}body:has(.rankings-dialog[open]){overflow:hidden}.header nav [data-rank-open]{color:#d7ff00}.audio-settings{max-height:calc(var(--visible-height,100dvh) - 155px);overflow:auto;overscroll-behavior:contain}.audio-preview-buttons{grid-column:1/-1;display:flex;gap:8px}.audio-preview-buttons button{flex:1;min-height:44px}#audio-preview-status{grid-column:1/-1;margin:0;color:#88e4f6;font-size:10px;line-height:1.8}
@media(max-width:1050px){.typing-layout{grid-template-columns:200px minmax(0,1fr)}.typing-console{padding:22px}.typing-sidebar{padding:25px 18px}.typing-toolbar .terminal-label{font-size:7px}.toolbar-right{gap:7px}.stage-keys .key-map span{width:30px}.stage-results{padding:20px}.stage-results .result-heading h3{font-size:27px}}
@media(max-width:760px){.typing-stage{height:500px;min-height:500px}.stage-keys{left:10px;right:10px;padding:8px}.stage-keys .key-row{gap:4px}.stage-keys .key-map span{width:clamp(18px,6.2vw,34px);height:32px;font-size:10px}.typing-stage .word-display{min-height:210px}.stage-results{padding:20px 16px}.stage-results .result-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stage-results .result-grid dt{font-size:8px}.stage-results .result-grid dd{font-size:10px}.stage-results .result-note{font-size:8px}.stage-results .result-heading h3{font-size:27px}.stage-results .score-entry button{font-size:9px;padding:8px}.stage-results .score-entry form>div{flex-wrap:wrap}.stage-results .score-entry input{flex:1;min-width:120px}.stage-results .score-entry button{flex:0 1 auto}.simon-arena{height:510px;min-height:510px}.rankings-dialog{padding:19px 14px;max-height:90dvh}.rankings-dialog h2{font-size:21px}.rankings-dialog .ranking-heading{flex-wrap:wrap}.rankings-dialog .ranking-heading>div{flex:1 1 50%}.rankings-dialog .ranking-heading label{order:3;flex:1 1 100%;max-width:none}.rankings-dialog .ranking-card{padding:18px 14px}.ranking-tabs button{font-size:11px;padding-inline:12px}.rankings-dialog-heading>button{white-space:nowrap;font-size:10px}.ranking-points{font-size:12px}}
/* Mobile play mode follows the visual viewport when the software keyboard opens. */
@media(max-width:760px){html[data-game-view=typing] body,html[data-game-view=simon] body{overflow:hidden}html[data-game-view=typing] .typing-shell,html[data-game-view=simon] .simon-shell{position:fixed;inset:var(--visible-top,0px) 0 auto;z-index:55;width:100%;height:var(--visible-height,100dvh);border:0;border-radius:0;margin:0;box-shadow:none;overflow:hidden;background:#090e1c;display:flex;flex-direction:column}html[data-game-view=typing] .typing-toolbar{padding:7px 10px;min-height:42px;gap:8px;flex:none}html[data-game-view] .terminal-label{display:none}html[data-game-view] .game-focus-close{display:block;color:#c4dbef;border:1px solid #51617c;background:#142037;border-radius:3px;font-size:9px;padding:7px;min-height:32px}html[data-game-view=typing] .toolbar-right{max-width:none;width:100%;display:flex;flex-wrap:nowrap;gap:7px}html[data-game-view=typing] .toolbar-right #typing-state{margin-left:auto;font-size:7px}html[data-game-view=typing] .typing-toolbar [data-game-video-toggle],html[data-game-view=typing] .typing-toolbar .sound-toggle{display:none}html[data-game-view=typing] .typing-layout{display:block;flex:1;min-height:0}html[data-game-view=typing] .typing-sidebar{display:none}html[data-game-view=typing] .typing-console{display:flex;flex-direction:column;padding:0 10px 66px;height:100%;gap:0}html[data-game-view=typing] .typing-stats{flex:none;margin:0 0 4px;gap:8px}html[data-game-view=typing] .typing-stats dt{font-size:6px}html[data-game-view=typing] .typing-stats dd{font-size:23px;margin:2px 0 0;line-height:1.1}html[data-game-view=typing] .typing-stats dd small{font-size:10px}html[data-game-view=typing] .wave-progress{margin:0 0 4px}html[data-game-view=typing] .wave-track{margin-top:3px;height:3px}html[data-game-view=typing] .wave-progress>div:first-child{font-size:8px;line-height:1.5}html[data-game-view=typing] .session-meter{margin:0 0 4px;height:2px}html[data-game-view=typing] .time-alert-row{font-size:7px;margin:0 0 5px;min-height:14px}html[data-game-view=typing] .typing-stage{flex:1;min-height:0;height:auto}html[data-game-view=typing] .typing-stage .word-display{position:absolute;top:76px;left:0;right:0;min-height:0;padding:7px 12px;margin:0}html[data-game-view=typing] .word-japanese{font-size:23px;margin:0 0 7px}html[data-game-view=typing] .word-kana{font-size:9px;margin:0 0 10px}html[data-game-view=typing] .word-romaji{font-size:20px;line-height:1.5}html[data-game-view=typing] .input-feedback{font-size:8px;line-height:1.5;margin-top:8px}html[data-game-view=typing] .typing-stage .data-lane,html[data-game-view=typing] .typing-stage>.beat-bars{display:none}html[data-game-view=typing] .typing-stage>.stage-topline{padding:9px 10px;font-size:6px}html[data-game-view=typing] .shield-status{top:29px;left:10px;font-size:7px}html[data-game-view=typing] .combo-hud{top:26px;right:12px}html[data-game-view=typing] .combo-hud strong{font-size:38px}html[data-game-view=typing] .combo-banner{display:none}html[data-game-view=typing] .typing-stage>.praise-banner{position:absolute;top:4px;left:80px;width:calc(100% - 170px);min-height:50px;padding:5px}html[data-game-view=typing] .praise-banner.is-praised strong{font-size:20px!important}html[data-game-view=typing] .praise-banner span{font-size:6px}html[data-game-view=typing] .stage-keys{bottom:8px}html[data-game-view=typing] .typing-input-row{flex:none;margin:6px 0 0;min-height:42px;height:42px;padding:5px 9px}html[data-game-view=typing] .direct-input-option,html[data-game-view=typing] .keyboard-layout-option,html[data-game-view=typing] .typing-help{display:none}html[data-game-view=typing] .typing-actions{flex:none;margin:3px 0 0;gap:15px;min-height:32px}html[data-game-view=typing] .typing-actions button{min-height:30px;padding:5px 6px;font-size:9px}html[data-game-view=typing] .stage-results{padding:14px}html[data-game-view=typing] .result-actions{margin-top:10px;gap:8px}html[data-game-view=typing] .stage-results .result-heading h3{font-size:25px}html[data-game-view=typing] .stage-results .result-balance{font-size:18px;margin:5px 0 8px}html[data-game-view=typing] .stage-results #result-rank{font-size:42px}html[data-game-view=typing] .stage-results .score-entry{padding-top:8px;margin-top:7px}html[data-game-view=typing][data-keyboard=open] .stage-keys .key-map{display:none}html[data-game-view=typing][data-keyboard=open] .stage-keys{display:none}html[data-game-view=typing][data-keyboard=open] .typing-stats>div:nth-child(n+3){display:none}html[data-game-view=typing][data-keyboard=open] .typing-stats{grid-template-columns:1fr 1fr}html[data-game-view=typing][data-keyboard=open] .typing-stats dd{font-size:19px}html[data-game-view=typing][data-keyboard=open] .time-alert-row{display:none}html[data-game-view=typing][data-keyboard=open] .typing-stage .word-display{top:62px;padding-top:0}html[data-game-view=typing][data-keyboard=open] .word-japanese{font-size:19px;margin-bottom:4px}html[data-game-view=typing][data-keyboard=open] .word-kana{margin-bottom:5px;font-size:8px}html[data-game-view=typing][data-keyboard=open] .word-romaji{font-size:18px}html[data-game-view=typing][data-keyboard=open] .input-feedback{display:none}html[data-game-view=typing][data-keyboard=open] .typing-console{padding-bottom:52px}html[data-game-view=typing][data-keyboard=open] .typing-actions{display:none}html[data-game-view=typing][data-keyboard=open] .typing-stage .combo-hud strong{font-size:29px}html[data-game-view=typing][data-keyboard=open] .ready-overlay strong{font-size:80px}html[data-game-view=typing] .audio-dock,html[data-game-view=simon] .audio-dock{z-index:65;top:calc(var(--visible-top,0px) + var(--visible-height,100dvh) - 57px);bottom:auto;height:51px;left:0;right:0;border-radius:0;border:0;border-top:1px solid #435a75;padding:5px 10px;display:flex;gap:9px;max-width:none}html[data-game-view] .audio-dock #sound-status{display:none}html[data-game-view] .audio-dock .audio-buttons{flex:none;gap:5px}html[data-game-view] .audio-buttons button{min-height:34px;padding:6px 9px;font-size:9px}html[data-game-view] .audio-settings-button{min-height:34px;padding:6px 8px;font-size:9px}html[data-game-view] .audio-dock>label{font-size:8px;margin-left:auto}html[data-game-view] .audio-dock>#sound-volume{width:65px;min-width:35px;margin:0}html[data-game-view] .audio-settings{right:8px;bottom:calc(100% + 4px);max-height:calc(var(--visible-height,100dvh) - 75px)}html[data-game-view=simon] .game-info{padding:0 10px;flex:none;display:block}html[data-game-view=simon] .game-info>.eyebrow,html[data-game-view=simon] .game-info h3,html[data-game-view=simon] .game-copy,html[data-game-view=simon] .simon-rule,html[data-game-view=simon] .game-note,html[data-game-view=simon] .simon-feedback-link{display:none}html[data-game-view=simon] .game-actions{gap:12px;padding-top:5px}html[data-game-view=simon] .game-actions button{font-size:9px;padding:7px;min-height:32px}html[data-game-view=simon] #game-start{display:none}html[data-game-view=simon] .game-status{font-size:9px;line-height:1.5;min-height:14px;margin:4px 0}html[data-game-view=simon] .game-console{padding:6px 10px 66px;display:flex;flex-direction:column;flex:1;min-height:0;border:0}html[data-game-view=simon] .game-console-top{flex:none;gap:6px;font-size:6px;margin-bottom:6px}html[data-game-view=simon] .game-console-top>span:first-child{display:none}html[data-game-view=simon] .game-console-top .ranking-open{margin-left:auto}html[data-game-view=simon] .game-stats{margin:2px 0 7px;flex:none}html[data-game-view=simon] .game-stats dd{font-size:26px;margin:2px 0}html[data-game-view=simon] .game-stats dt{font-size:6px}html[data-game-view=simon] .wave-progress{margin-bottom:4px;flex:none}html[data-game-view=simon] .wave-progress>div:first-child{font-size:8px}html[data-game-view=simon] .wave-track{height:3px;margin-top:3px}html[data-game-view=simon] .simon-arena{height:auto;min-height:0;flex:1;padding:4px 8px}html[data-game-view=simon] .simon-board{width:min(100%,320px);margin:40px auto 0;max-height:calc(100% - 50px);height:calc(100% - 50px);aspect-ratio:1;grid-template-rows:repeat(2,minmax(0,1fr))}html[data-game-view=simon] .simon-pad{min-height:0;height:100%;aspect-ratio:auto;padding:5px;gap:5px}html[data-game-view=simon] .pad-shape{font-size:30px}html[data-game-view=simon] .simon-arena .combo-hud strong{font-size:24px}html[data-game-view=simon] .simon-arena .combo-hud{top:6px;right:12px}html[data-game-view=simon] .simon-arena .combo-hud>span,html[data-game-view=simon] .simon-arena .combo-hud>b{font-size:6px}html[data-game-view=simon] .simon-arena .shield-status{font-size:7px;top:8px}html[data-game-view=simon] .simon-arena>.praise-banner{position:absolute;top:3px;left:85px;width:calc(100% - 170px);min-height:35px;padding:2px}html[data-game-view=simon] .simon-arena .praise-banner.is-praised strong{font-size:18px!important}html[data-game-view=simon] .beat-bars,html[data-game-view=simon] .game-console-bottom{display:none}html[data-game-view=simon] .game-target{flex:none;margin:4px 0;font-size:9px;min-height:15px}html[data-game-view] .rankings-dialog{max-height:calc(var(--visible-height,100dvh) - 25px)}html[data-game-view] .ready-overlay span{font-size:20px}html[data-game-view] .ready-overlay strong{font-size:100px}html[data-game-view] .wave-overlay h3{font-size:38px;margin:5px 0 10px}html[data-game-view] .wave-overlay p:not(.eyebrow){font-size:10px;margin-bottom:12px}html[data-game-view] .wave-overlay small{font-size:8px;margin-top:8px}}
html[data-motion=off] .hero h1:after,html[data-motion=off] .glitch-line:before,html[data-motion=off] .glitch-line:after{display:none}html[data-motion=off] .glitch-heading:hover{transform:none;filter:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .hero h1:after,html:not([data-motion=on]) .glitch-line:before,html:not([data-motion=on]) .glitch-line:after{display:none}html:not([data-motion=on]) .glitch-heading:hover{transform:none;filter:none}}
@media(max-width:760px){html[data-game-view=typing] .typing-shell[data-state=ended] .typing-stats,html[data-game-view=typing] .typing-shell[data-state=ended] .wave-progress,html[data-game-view=typing] .typing-shell[data-state=ended] .session-meter,html[data-game-view=typing] .typing-shell[data-state=ended] .time-alert-row,html[data-game-view=typing] .typing-shell[data-state=ended] .typing-input-row,html[data-game-view=typing] .typing-shell[data-state=ended] .typing-actions{display:none}html[data-game-view=typing] .typing-shell[data-state=ended] .typing-console{padding-top:6px}}

.typing-stage>.shield-status{top:72px}.typing-stage>.beat-bars{position:absolute;bottom:202px;left:25%;right:25%;pointer-events:none}
@media(max-width:760px){html[data-game-view=typing] .typing-input-row input{height:30px;min-height:0;line-height:1.4;padding-block:3px}}
@media(max-width:760px){html[data-game-view=typing] .typing-shell,html[data-game-view=simon] .simon-shell{overflow:clip}}
.wave-overlay .wave-finish{display:block;margin:12px auto 0;font-size:10px;padding:6px;min-height:32px}.wave-overlay small{margin-top:8px}
.typing-shell[data-course=ultra] .typing-stage>.data-lane,.typing-shell[data-course=ultra] .typing-stage>.beat-bars{display:none}
@media(max-width:760px){html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .typing-toolbar{min-height:38px;padding:3px 10px}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .typing-stage .word-display{top:48px}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .word-japanese{font-size:16px;margin-bottom:3px}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .word-kana{display:none}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .word-romaji{font-size:17px;line-height:1.25}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .combo-hud strong{font-size:23px}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .combo-hud>span{display:none}}
@media(max-width:760px){html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .word-japanese{display:none}html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage .word-display{top:49px}}
@media(max-width:760px){html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage>.combo-hud,html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage>.praise-banner{display:none}}
/* Precision type treatment: native text slices and a glyph-masked high-DPI surface. */
.hero h1:after{display:none!important}.hero h1{isolation:isolate}.hero h1>.glitch-line{isolation:isolate}.glitch-line:before,.glitch-line:after{filter:none;opacity:.8;text-shadow:none;mix-blend-mode:screen;clip-path:inset(100% 0 0);animation:precision-shear 8.4s steps(1,end) infinite}.glitch-line:before{color:#c4faff}.glitch-line:after{color:#ed90cd;animation:precision-shear-b 8.4s steps(1,end) infinite;animation-delay:0;animation-direction:normal}.hero h1>.glitch-accent:before,.hero h1>.glitch-accent:after{animation-delay:-2.1s}.hero h1:hover .glitch-line:before{animation-delay:0}.signal-surface{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;mix-blend-mode:screen}.glitch-heading,.glitch-heading:hover{transform:none;filter:none;text-shadow:.8px 0 #a9faff55,-.8px 0 #ed80cd44}
@keyframes precision-shear{0%,11%,19%,66%,73%,100%{clip-path:inset(100% 0 0);transform:translate3d(0,0,0)}12%,14%{clip-path:inset(23% 0 75.4%);transform:translate3d(-4px,0,0)}16%{clip-path:inset(57.2% 0 41.6%);transform:translate3d(2px,0,0)}68%,70%{clip-path:inset(77% 0 21.5%);transform:translate3d(5px,0,0)}}
@keyframes precision-shear-b{0%,12%,20%,67%,74%,100%{clip-path:inset(100% 0 0);transform:translate3d(0,0,0)}13%,16%{clip-path:inset(25.3% 0 73.6%);transform:translate3d(3px,0,0)}18%{clip-path:inset(59.7% 0 39.6%);transform:translate3d(-2px,0,0)}69%,72%{clip-path:inset(80% 0 19%);transform:translate3d(-3px,0,0)}}
html[data-motion=off] .signal-surface{display:none}@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .signal-surface{display:none}}
/* The central arena owns all information needed during a run. */
.typing-stage>.stage-status{position:absolute;top:0;left:0;right:0;z-index:5;padding:14px 18px 9px;background:linear-gradient(#0a1022f5,#0a1022c7);border-bottom:1px solid #52728a44}.stage-status .typing-stats{margin:0 0 8px;gap:15px}.stage-status .typing-stats dt{font-size:7px}.stage-status .typing-stats dd{font-size:32px;line-height:1.1;margin-top:3px}.stage-status .typing-stats dd small{font-size:11px}.stage-status .wave-progress{margin-bottom:5px}.stage-status .wave-progress>div:first-child{font-size:8px;line-height:1.5}.stage-status .wave-track{height:3px;margin-top:4px}.stage-status .session-meter{height:2px;margin:5px 0}.stage-status .time-alert-row{margin:0;min-height:12px;font-size:7px}.typing-stage>.stage-topline{position:absolute;top:132px;left:18px;right:18px;padding:0;font-size:7px}.typing-stage>.combo-banner{position:absolute;top:152px;left:18px;right:130px;min-height:15px;padding:0;font-size:7px}.typing-stage>.shield-status{top:177px;left:18px}.typing-stage>.combo-hud{top:151px;right:18px}.typing-stage>.combo-hud strong{font-size:47px}.typing-stage>.praise-banner{position:absolute;top:146px;left:130px;width:calc(100% - 260px);height:44px;min-height:44px;padding:4px 8px}.typing-stage .word-display,.typing-shell[data-course=ultra] .typing-stage .word-display{position:absolute;top:211px;left:16px;right:16px;padding:0;min-height:0;margin:0}.typing-stage .word-japanese{font-size:29px;margin:0 0 7px;line-height:1.3}.typing-stage .word-kana{font-size:10px;margin:0 0 11px;line-height:1.5}.typing-stage .word-romaji{font-size:27px;line-height:1.5;margin:0}.typing-stage .input-feedback{font-size:9px;line-height:1.6;margin-top:11px}.typing-stage>.data-lane{display:none}.typing-stage>.beat-bars{bottom:185px;height:12px;opacity:.3}.typing-shell[data-state=ended] .stage-status{visibility:hidden}.typing-launch{gap:13px;padding:24px 28px}.typing-launch h3{font-size:clamp(35px,3.8vw,54px)}.launch-controls{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;width:min(100%,490px);position:relative;text-align:left}.launch-controls label{display:grid;gap:7px;font-size:10px;color:#bbd2df}.launch-controls select{min-height:46px;font-size:12px;background:#111e32;border-color:#4a7188}.typing-launch .course-detail{min-height:0;margin:0;color:#9eb6cd;font-size:10px;line-height:1.7}.typing-launch .primary-button{min-height:56px}.typing-launch small{font-size:9px}.typing-sidebar .typing-record{margin-top:5px}#result-rank{white-space:nowrap;letter-spacing:-.06em}.typing-results[data-rank=SS] #result-rank,.typing-results[data-rank=SSS] #result-rank{background:linear-gradient(135deg,#fff,#c7fcff 35%,#d7ff00 80%);background-clip:text;-webkit-background-clip:text;color:transparent!important;filter:drop-shadow(0 0 12px #b3faff44)}
.ready-overlay[data-start=true] strong{font-size:clamp(46px,6vw,90px);letter-spacing:-.065em}.audio-settings{width:400px;max-width:calc(100vw - 24px);padding:20px;gap:12px;max-height:calc(var(--visible-height,100dvh) - 120px)}.audio-test-heading{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:12px;border-bottom:1px solid #364b64}.audio-test-heading span{font:8px/1.5 monospace;letter-spacing:.2em;color:#55e8ff}.audio-test-heading h3{font-size:18px;margin:5px 0 0}.audio-test-heading button{color:#bdcfe1;background:#101c30;border:1px solid #4d6381;border-radius:3px;font-size:10px;min-height:36px;padding:7px 10px}.music-layers{gap:5px}.music-layers button{font:8px/1.6 monospace;flex:1;min-width:0;min-height:35px;padding:4px 3px;border:1px solid #3c526f;border-radius:3px;background:#101c2e;color:#8ea8c1}.music-layers button.is-active{color:#d7ff00;border-color:#8caa38}.music-layers button[aria-pressed=true]{box-shadow:inset 0 -2px #d7ff00;background:#d7ff000e}.se-test-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.se-test-grid button{font-size:10px;padding:8px 4px;min-height:38px;border:1px solid #53617c;border-radius:3px;background:#172039;color:#cdd8e8}.se-test-grid button[aria-pressed=true]{border-color:#55e8ff;color:#55e8ff;background:#55e8ff0c}.audio-preview-buttons button{font-size:10px;padding:9px}.audio-settings small{font-size:9px}
/* Simon's input clock counts only during the player's turn. */
.simon-arena>.praise-banner{position:absolute;top:14px;left:100px;width:calc(100% - 200px);min-height:50px;height:50px}.simon-arena .simon-board{margin-top:112px}.simon-clock-readout{position:absolute;top:76px;left:18px;right:18px;display:flex;gap:7px;align-items:baseline;font:8px/1.4 monospace;color:#8caec6;z-index:4}.simon-clock-readout strong{font:24px/1 monospace;color:#d7ff00}.simon-clock-readout small{font-size:10px}.simon-timebar{position:absolute;left:18px;right:18px;top:105px;height:3px;background:#26364b;z-index:4}.simon-timebar i{display:block;height:100%;background:linear-gradient(90deg,#55e8ff,#d7ff00);transform-origin:left}.simon-shell[data-urgency="2"] .simon-clock-readout strong{color:#ffb365}.simon-shell[data-urgency="3"] .simon-clock-readout strong{color:#ff7b9a}.simon-shell[data-urgency="3"] .simon-timebar i{background:#ff7b9a}
@media(max-width:760px){.typing-stage>.stage-status{padding:11px 12px 8px}.stage-status .typing-stats dd{font-size:26px}.stage-status .typing-stats dt{font-size:6px}.typing-stage>.stage-topline{top:119px;left:12px;right:12px;font-size:6px}.typing-stage>.combo-banner{top:136px;left:12px}.typing-stage>.shield-status{top:158px;left:12px;font-size:7px}.typing-stage>.combo-hud{top:136px;right:12px}.typing-stage>.combo-hud strong{font-size:37px}.typing-stage .word-display{top:198px}.typing-stage .word-japanese{font-size:23px}.typing-stage .word-romaji{font-size:22px}.typing-stage .input-feedback{font-size:8px}.typing-launch{padding:20px 16px;gap:12px}.typing-launch h3{font-size:36px}.launch-controls{gap:9px}.launch-controls select{font-size:10px;padding-left:8px}.launch-controls label{font-size:9px}.typing-launch .course-detail{font-size:9px}.typing-launch .primary-button{min-height:52px}.ready-overlay[data-start=true] strong{font-size:56px}}
@media(max-width:760px){html[data-game-view=typing] .stage-status{padding:8px 10px 6px}html[data-game-view=typing] .stage-status .typing-stats{margin:0 0 5px}html[data-game-view=typing] .stage-status .typing-stats dd{font-size:24px}html[data-game-view=typing] .stage-status .time-alert-row{margin-top:3px}html[data-game-view=typing] .typing-stage>.stage-topline{top:109px;left:10px;right:10px;padding:0}html[data-game-view=typing] .typing-stage>.combo-banner{display:none}html[data-game-view=typing] .typing-stage>.shield-status{top:132px;left:10px}html[data-game-view=typing] .typing-stage>.combo-hud{top:129px;right:12px}html[data-game-view=typing] .typing-stage>.praise-banner{top:125px;left:85px;width:calc(100% - 170px);min-height:45px}html[data-game-view=typing] .typing-stage .word-display,html[data-game-view=typing] .typing-shell[data-course=ultra] .typing-stage .word-display{top:186px;padding:0 12px;left:0;right:0}html[data-game-view=typing][data-keyboard=open] .stage-status .typing-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}html[data-game-view=typing][data-keyboard=open] .stage-status .typing-stats>div:nth-child(n+3){display:block}html[data-game-view=typing][data-keyboard=open] .stage-status .typing-stats dd{font-size:20px}html[data-game-view=typing][data-keyboard=open] .stage-status .typing-stats dt{font-size:5px}html[data-game-view=typing][data-keyboard=open] .typing-stage>.stage-topline{top:78px}html[data-game-view=typing][data-keyboard=open] .typing-stage>.shield-status{top:96px}html[data-game-view=typing][data-keyboard=open] .typing-stage>.combo-hud{top:92px}html[data-game-view=typing][data-keyboard=open] .typing-stage .word-display{top:142px}html[data-game-view=typing][data-keyboard=open][data-compact-viewport=true] .typing-stage .word-display{top:136px}html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage .word-display{top:120px}html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage>.stage-topline{display:none}html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage>.shield-status{top:81px}html[data-game-view=typing] .typing-shell[data-state=ended] .stage-status{display:none}html[data-game-view=typing] .typing-shell[data-state=idle] .stage-status{visibility:hidden}html[data-game-view=typing] .typing-shell[data-state=idle] .typing-input-row,html[data-game-view=typing] .typing-shell[data-state=idle] .typing-actions{display:none}html[data-game-view=simon] .simon-arena .simon-board{margin-top:82px;height:calc(100% - 91px);max-height:calc(100% - 91px)}html[data-game-view=simon] .simon-clock-readout{top:40px;left:12px;font-size:7px}html[data-game-view=simon] .simon-clock-readout strong{font-size:20px}html[data-game-view=simon] .simon-timebar{top:68px;left:12px;right:12px}html[data-game-view] .ready-overlay[data-start=true] strong{font-size:46px}}
.typing-shell[data-course=ultra] .typing-stage .word-display{top:203px}.typing-shell[data-course=ultra] .typing-stage .word-japanese,.typing-shell[data-course=ultra] .typing-stage .input-feedback{display:none}.typing-shell[data-course=overdrive] .typing-stage .word-japanese{font-size:20px}.typing-shell[data-course=overdrive] .typing-stage .word-romaji{font-size:20px;line-height:1.45}.typing-shell[data-course=overdrive] .typing-stage .word-kana{font-size:9px}
.ready-overlay:before{content:"";width:110px;height:12px;border-radius:12px;background:radial-gradient(circle at 8px 6px,#ff7c8c 0 5px,transparent 5.5px),radial-gradient(circle at 55px 6px,#ff7c8c 0 5px,transparent 5.5px),radial-gradient(circle at 102px 6px,#ff7c8c 0 5px,transparent 5.5px);box-shadow:0 0 20px #fa6d8722}.ready-overlay[data-start=true]:before{background:radial-gradient(circle at 8px 6px,#d7ff00 0 5px,transparent 5.5px),radial-gradient(circle at 55px 6px,#d7ff00 0 5px,transparent 5.5px),radial-gradient(circle at 102px 6px,#d7ff00 0 5px,transparent 5.5px)}
@media(max-width:360px){html[data-game-view] .audio-dock{gap:6px;padding-inline:8px}html[data-game-view] .audio-settings-button{font-size:8px;padding-inline:6px}html[data-game-view] .audio-dock>#sound-volume{width:43px;min-width:30px}html[data-game-view] .audio-buttons button{padding-inline:7px}html[data-game-view=typing][data-keyboard=open][data-tiny-viewport=true] .typing-stage .word-display{top:105px}}
.typing-layout{display:block;grid-template-columns:1fr}.typing-console{padding:24px}.typing-toolbar .terminal-label{font-size:9px}.launch-best{display:flex;align-items:baseline;justify-content:center;gap:15px;color:#8daac1;font:8px/1.6 monospace}.launch-best strong{color:#d7ff00;font:16px/1.4 monospace}.typing-launch h3{font-size:clamp(32px,3.5vw,50px)}.typing-launch{gap:11px}
@media(max-width:760px){.typing-console{padding:16px 12px}.typing-launch h3{font-size:34px}.launch-best{font-size:7px;gap:9px}.launch-best strong{font-size:14px}}
.typing-section .section-heading h2,.play-section .section-heading h2{font:900 clamp(46px,7vw,100px)/.95 Arial,sans-serif;letter-spacing:-.075em;white-space:nowrap}.typing-section .section-heading .eyebrow,.play-section .section-heading .eyebrow{font-size:9px;letter-spacing:.14em;color:var(--cyan)}.play-section .section-intro,.typing-section .section-intro{font-size:12px;line-height:2;color:#a9afc4}
.simon-shell{display:block;border-color:#565270;background:linear-gradient(145deg,#151225cc,#090b18)}.simon-shell .simon-toolbar{padding:16px 24px;border-bottom:1px solid #3c3651;display:flex;justify-content:space-between;gap:16px;background:#15112399;font:9px monospace;letter-spacing:.1em}.simon-toolbar .toolbar-right{display:flex;align-items:center;gap:12px}.simon-shell .game-console{padding:24px;border:0;background:none}.simon-arena{height:560px;min-height:560px;border-radius:0}.simon-stage-status{position:absolute;top:0;left:0;right:0;z-index:5;padding:14px 18px 9px;background:linear-gradient(#0a1022f5,#0a1022c7);border-bottom:1px solid #52728a44}.simon-stage-status .game-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0 0 8px}.simon-stage-status .game-stats dt{font:7px/1.8 monospace;color:#adabc9}.simon-stage-status .game-stats dd{font:500 32px/1.1 monospace;letter-spacing:-.06em;margin:3px 0 0;color:#e8f2ff}.simon-stage-status .game-stats dd small{font-size:11px;color:#a5aac2;margin-left:4px}.simon-stage-status .game-stats>div:nth-child(2) dd{color:#d7ff00}.simon-stage-status .wave-progress{margin:0 0 5px}.simon-stage-status .wave-progress>div:first-child{font-size:8px;line-height:1.5}.simon-stage-status .wave-track{height:3px;margin-top:4px}.simon-stage-status .game-status{min-height:0;margin:2px 0 0;font-size:8px;line-height:1.5}.simon-stage-status .simon-timebar{position:relative;inset:auto;height:2px;margin-top:5px}.simon-stage-status #simon-clock{font:inherit;color:var(--ink)}.simon-shell[data-urgency="2"] #simon-clock{color:#ffb365}.simon-shell[data-urgency="3"] #simon-clock{color:#ff7b9a}.simon-arena>.shield-status{top:146px;left:18px}.simon-arena>.combo-hud{top:138px;right:18px}.simon-arena>.combo-hud strong{font-size:32px}.simon-arena>.praise-banner{top:137px;height:35px;min-height:35px}.simon-arena>.praise-banner.is-praised strong{font-size:23px!important}.simon-arena .simon-board{margin:172px auto 18px;max-width:330px;gap:12px}.simon-arena>.beat-bars{display:none}.simon-actions{display:flex;gap:14px;align-items:center;margin-top:14px;min-height:40px}.simon-actions button{font-size:11px}.simon-shell .game-target{margin:9px 0;min-height:16px;font-size:10px}.simon-launch{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 28px;gap:14px;background:radial-gradient(ellipse at 50% 20%,#3c24665c,transparent 65%),linear-gradient(160deg,#080d19e8,#080c19f5);backdrop-filter:blur(8px)}.simon-launch>p:first-child{font:10px/1.7 monospace;letter-spacing:.18em;color:#55e8ff;margin:0}.simon-launch h3{margin:0;font:850 clamp(32px,3.5vw,50px)/.95 Arial,sans-serif;letter-spacing:-.055em}.simon-launch h3 span{color:#d7ff00}.simon-launch-copy{font-size:12px;line-height:1.8;color:#adbed4;margin:0}.simon-launch .primary-button{min-height:56px;min-width:270px;font-size:17px}.simon-launch small{font:9px/1.7 monospace;color:#9fb9cd}.simon-shell:not([data-state=idle]) .simon-launch{display:none}.simon-shell[data-state=idle] .game-status{visibility:hidden}
/* Five levels of local motion, always behind the text and controls. */
.typing-shell,.simon-shell{--music-opacity:.23;--music-saturation:.85;--music-glow:85,206,255;--music-orbit:0;--music-speed:12s}.typing-shell[data-music-level="1"],.simon-shell[data-music-level="1"]{--music-opacity:.34;--music-saturation:1;--music-orbit:.06;--music-speed:10s}.typing-shell[data-music-level="2"],.simon-shell[data-music-level="2"]{--music-opacity:.45;--music-saturation:1.12;--music-glow:62,229,255;--music-orbit:.11;--music-speed:8s}.typing-shell[data-music-level="3"],.simon-shell[data-music-level="3"]{--music-opacity:.57;--music-saturation:1.25;--music-glow:247,109,218;--music-orbit:.16;--music-speed:6s}.typing-shell[data-music-level="4"],.simon-shell[data-music-level="4"]{--music-opacity:.68;--music-saturation:1.4;--music-glow:218,255,91;--music-orbit:.21;--music-speed:4.5s}.typing-stage .game-motion,.simon-arena .game-motion{opacity:var(--music-opacity);filter:saturate(var(--music-saturation)) contrast(1.07);transition:opacity 1s ease,filter 1s ease}.typing-stage .rush-scrim,.simon-arena .rush-scrim{background:linear-gradient(#070c19d9,#070c19a8 50%,#070c19d9)}.rush-orbits{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;opacity:var(--music-orbit);transition:opacity 1s ease;mix-blend-mode:screen}.rush-orbits i{position:absolute;width:76%;aspect-ratio:1;left:12%;top:17%;border:1px solid rgba(var(--music-glow),.7);border-radius:15%;transform:perspective(500px) rotateX(55deg) rotateZ(25deg);box-shadow:0 0 38px rgba(var(--music-glow),.15),inset 0 0 35px rgba(var(--music-glow),.1);animation:rush-orbit var(--music-speed) linear infinite}.rush-orbits i:nth-child(2){inset:25% 25% auto;width:50%;border-radius:50%;animation-direction:reverse}.rush-orbits i:nth-child(3){inset:5% 5% auto;width:90%;border-style:dashed;animation-delay:-2s}.typing-shell[data-music-level="4"] .typing-stage,.simon-shell[data-music-level="4"] .simon-arena{box-shadow:inset 0 0 calc(18px + var(--audio-beat,0)*22px) rgba(var(--music-glow),.14)}@keyframes rush-orbit{from{transform:perspective(500px) rotateX(55deg) rotateZ(0)}to{transform:perspective(500px) rotateX(55deg) rotateZ(360deg)}}
html[data-motion=off] .rush-orbits{display:none}@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .rush-orbits{display:none}}
@media(max-width:760px){.typing-section .section-heading h2,.play-section .section-heading h2{font-size:clamp(37px,10vw,66px)}.typing-section .section-heading,.play-section .section-heading{align-items:flex-start}.typing-section .section-intro,.play-section .section-intro{font-size:10px}.simon-shell .simon-toolbar{padding:12px;gap:8px}.simon-toolbar .terminal-label{font-size:7px}.simon-toolbar .toolbar-right{gap:7px}.simon-shell .game-console{padding:16px 12px}.simon-arena{height:560px;min-height:560px}.simon-stage-status{padding:11px 12px 8px}.simon-stage-status .game-stats{gap:7px}.simon-stage-status .game-stats dd{font-size:26px}.simon-stage-status .game-stats dt{font-size:6px}.simon-launch{padding:20px 16px}.simon-launch h3{font-size:36px}.simon-launch .primary-button{min-width:0;width:90%;max-width:310px;min-height:52px;font-size:15px}}
@media(max-width:760px){html[data-game-view=simon] .simon-toolbar{flex:none;min-height:42px;padding:7px 10px;display:flex;gap:7px}html[data-game-view=simon] .simon-toolbar>.terminal-label{display:none}html[data-game-view=simon] .simon-toolbar .toolbar-right{width:100%;gap:7px}html[data-game-view=simon] .simon-toolbar .game-state{margin-left:auto;font-size:7px}html[data-game-view=simon] .simon-toolbar [data-game-video-toggle]{display:none}html[data-game-view=simon] .game-console{padding:0 10px 66px}html[data-game-view=simon] .simon-arena{flex:1;height:auto;min-height:0;padding:0 8px}html[data-game-view=simon] .simon-stage-status{padding:8px 10px 6px}html[data-game-view=simon] .simon-stage-status .game-stats{margin:0 0 5px}html[data-game-view=simon] .simon-stage-status .game-stats dd{font-size:24px;margin-top:2px}html[data-game-view=simon] .simon-stage-status .game-stats dt{font-size:6px}html[data-game-view=simon] .simon-stage-status .wave-progress{margin-bottom:4px}html[data-game-view=simon] .simon-stage-status .game-status{font-size:7px;line-height:1.4;margin:2px 0 0}html[data-game-view=simon] .simon-stage-status .simon-timebar{position:relative;inset:auto;height:2px;margin-top:4px}html[data-game-view=simon] .simon-arena>.shield-status{top:135px;left:10px}html[data-game-view=simon] .simon-arena>.combo-hud{top:128px;right:12px}html[data-game-view=simon] .simon-arena>.praise-banner{top:130px}html[data-game-view=simon] .simon-arena .simon-board{margin:170px auto 0;height:calc(100% - 181px);max-height:calc(100% - 181px);width:min(100%,330px)}html[data-game-view=simon] .simon-actions{flex:none;margin-top:4px;min-height:32px}html[data-game-view=simon] .simon-actions button{min-height:30px;padding:5px 6px;font-size:9px}html[data-game-view=simon] .game-target{font-size:8px;margin:4px 0}html[data-game-view=simon] .simon-shell[data-state=ended] .simon-actions,html[data-game-view=simon] .simon-shell[data-state=ended] .game-target{display:none}}
.shield-block-fx{position:absolute;z-index:7;top:147px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;padding:7px 15px;border:1px solid #75f5ff9c;border-radius:6px;background:linear-gradient(120deg,#0a2639f2,#0a172cf2);box-shadow:0 0 28px #55e8ff44;pointer-events:none;white-space:nowrap}.shield-block-fx svg{width:36px;height:40px;overflow:visible;fill:#65efff0d;stroke:#8bfaff;stroke-width:2.5;filter:drop-shadow(0 0 5px #55e8ff88)}.shield-block-fx .shield-check{fill:none;stroke:#d7ff85;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.shield-block-fx strong{display:block;color:#b5fdff;font:800 14px/1.3 Arial,sans-serif;letter-spacing:.09em}.shield-block-fx span{display:block;color:#95c7db;font:7px/1.8 monospace;letter-spacing:.15em}.is-shield-blocking{outline:2px solid #7af3ff;outline-offset:-3px;box-shadow:inset 0 0 38px #55e8ff2c!important}.simon-arena>.shield-block-fx{top:135px}.ranking-device-label select{min-width:110px}.ranking-heading{flex-wrap:wrap}.ranking-heading>div{flex:1 1 180px}
@media(max-width:760px){html[data-game-view=typing] .shield-block-fx{top:132px;padding:5px 10px;gap:7px}html[data-game-view=simon] .shield-block-fx{top:129px;padding:5px 10px;gap:7px}.shield-block-fx svg{width:25px;height:28px}.shield-block-fx strong{font-size:11px}.shield-block-fx span{font-size:6px}html[data-game-view=typing][data-keyboard=open] .shield-block-fx{top:92px}.ranking-heading .ranking-device-label{max-width:none;flex:1 1 140px}.ranking-heading .ranking-device-label select{width:100%}}

/* Per-question key history. Error history wins when a key was also correct. */
.stage-keys .key-map span.is-next{background:linear-gradient(#202a42,#111b2b);color:#e5f5ff;border-color:#d9fdff;outline:2px solid #d9fdff;outline-offset:2px;box-shadow:0 0 12px #83e8ff44;font-weight:800}
.stage-keys .key-map span.is-correct-key{background:#124b8d;color:#e4f5ff;border-color:#53baff;box-shadow:inset 0 -3px 0 #2388d5,0 0 12px #289cff28}
.stage-keys .key-map span.is-error-key{background:#761f38;color:#fff0f3;border-color:#ff6985;box-shadow:inset 0 -3px 0 #c83456,0 0 12px #ff426928}
.stage-keys .key-map span.is-next:is(.is-correct-key,.is-error-key){outline:2px solid #e3ffff;outline-offset:2px}
.stage-keys .key-map span.is-space{width:clamp(44px,6vw,82px);font-size:8px}
.keyboard-heading small{font:7px/1.6 monospace;letter-spacing:0;margin-left:9px;color:#a9c3d9}.keyboard-heading small b{font-weight:400}.key-legend-correct{color:#69bdff}.key-legend-error{color:#ff8298}
.typing-miss-wash{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:0;background:linear-gradient(#ff254814,#ff25481c);box-shadow:inset 0 0 60px #ff34556b;border:2px solid #ff5d7d99}
.typing-stage.is-miss-feedback{outline:2px solid #ff6884;outline-offset:-3px}
html[data-motion=off] .typing-miss-wash{display:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .typing-miss-wash{display:none}html:not([data-motion=on]) .stage-keys .key-map span{transition:none!important}}
@media(max-width:760px){.keyboard-heading small{font-size:6px;margin-left:5px}html[data-tiny-viewport=true][data-game-view=typing] .shield-block-fx{top:72px;padding:3px 8px}html[data-tiny-viewport=true][data-game-view=typing] .shield-block-fx svg{height:20px;width:18px}.is-shield-blocking>.shield-status{visibility:hidden}}

html[data-motion=off] .stage-keys .key-map span{transition:none}

/* Independent highway loops at their native motion; two fixed surfaces per arena. */
.typing-shell .typing-stage .game-motion,.simon-shell .simon-arena .game-motion{opacity:0;filter:none;transition:opacity .24s ease}
.typing-shell .typing-stage .game-motion.is-current,.simon-shell .simon-arena .game-motion.is-current{opacity:var(--music-opacity)}
.simon-shell[data-state=showing] .simon-arena .game-motion.is-current{opacity:calc(var(--music-opacity)*.45)}
html[data-motion=off] .game-motion{transition:none}

/* Keep the actual scenery visible; foreground HUD and keys have their own scrims. */
.typing-shell,.simon-shell{--music-opacity:.46}
.typing-shell[data-music-level="1"],.simon-shell[data-music-level="1"]{--music-opacity:.56}
.typing-shell[data-music-level="2"],.simon-shell[data-music-level="2"]{--music-opacity:.68}
.typing-shell[data-music-level="3"],.simon-shell[data-music-level="3"]{--music-opacity:.8}
.typing-shell[data-music-level="4"],.simon-shell[data-music-level="4"]{--music-opacity:.92}
.typing-stage .rush-scrim,.simon-arena .rush-scrim{background:linear-gradient(#04091488,#0409144d 45%,#040914a6)}
.typing-stage .word-display{ text-shadow:0 2px 5px #01050a,0 0 24px #01050a}
.simon-shell[data-state=showing] .simon-arena .game-motion.is-current{opacity:calc(var(--music-opacity)*.6)}

@media(max-width:760px){html[data-game-view=typing] .typing-toolbar [data-game-video-toggle]{display:block;font-size:8px;padding:5px 7px;min-height:30px;white-space:nowrap}html[data-game-view=typing] .typing-toolbar .toolbar-right{gap:5px}}

.typing-stage .word-display{isolation:isolate}
.typing-stage .word-display:before{content:"";position:absolute;inset:-8px 16%;z-index:-1;border-radius:20px;background:radial-gradient(ellipse,#030914e6 5%,#030914a6 48%,#03091400 75%);pointer-events:none}
.typing-stage .word-romaji .remaining{color:#a5f1ff;text-shadow:0 2px 4px #01050a,0 0 12px #01050a}
.typing-stage .word-romaji .typed{color:#76b8dc;text-shadow:0 2px 4px #01050a}
@media(max-width:760px){.typing-stage .word-display:before{inset:-10px 2%}}

.game-motion-still{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0}
.typing-shell .typing-stage[data-video-mode=still] .game-motion-still,.simon-shell .simon-arena[data-video-mode=still] .game-motion-still{opacity:var(--music-opacity)}
.typing-shell .typing-stage[data-video-mode=still] .game-motion,.simon-shell .simon-arena[data-video-mode=still] .game-motion{opacity:0}
.game-cut-wash{position:absolute;inset:0;z-index:3;pointer-events:none;background:#eefaff;opacity:0}
html[data-motion=off] .game-cut-wash{display:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .game-cut-wash{display:none}}

.voltage-meter{display:flex;align-items:center;gap:7px;min-width:0;margin-inline:auto;padding-inline:12px;color:#a6e8f5;font:7px/1.3 monospace;letter-spacing:.02em}
.voltage-meter>span{white-space:nowrap}.voltage-meter b{color:#c7faff;font-size:9px}.voltage-meter>div{display:flex;gap:3px;width:88px;flex:none}.voltage-meter i{position:relative;display:block;flex:1;height:5px;background:#29344c;overflow:hidden;border-radius:1px}.voltage-meter i:after{content:"";position:absolute;inset:0;background:#55e8ff;transform-origin:left;transform:scaleX(var(--charge,0));transition:transform .25s ease}.voltage-meter i:nth-child(2):after{background:#7eaaff}.voltage-meter i:nth-child(3):after{background:#e573dd}.voltage-meter i:nth-child(4):after{background:#e1fb53}.voltage-meter small{font:7px monospace;white-space:nowrap;color:#adc6d5;min-width:39px}.voltage-meter[data-level="4"] b,.voltage-meter[data-level="4"] small{color:#e1fb53}
html[data-motion=off] .voltage-meter i:after{transition:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .voltage-meter i:after{transition:none}}
@media(max-width:760px){.voltage-meter{font-size:6px;gap:4px;padding-inline:4px}.voltage-meter>div{width:48px;gap:2px}.voltage-meter b{font-size:7px}.voltage-meter small{font-size:6px;min-width:28px}.voltage-meter i{height:4px}.wave-progress>div:first-child{gap:3px}}

.voltage-meter{font-size:10px;gap:9px}.voltage-meter b{font-size:12px}.voltage-meter>div{width:140px;gap:4px}.voltage-meter i{height:7px}.voltage-meter small{font-size:10px;min-width:50px}
@media(max-width:760px){.voltage-meter{font-size:8px;gap:4px;padding-inline:4px}.voltage-meter b{font-size:10px}.voltage-meter>div{width:60px;gap:2px}.voltage-meter i{height:6px}.voltage-meter small{font-size:8px;min-width:32px}}

/* Audio-reactive spectrum, sampled by the existing particle loop. */
.voltage-spectrum{align-items:center!important;height:24px!important;gap:2px!important}.voltage-meter .voltage-spectrum i{height:24px!important;min-width:2px;background:linear-gradient(#e7ff78,#50eaff 55%,#8070ff);transform:scaleY(var(--eq-height,.12));transform-origin:center;opacity:.28;transition:transform .055s linear,opacity .2s}.voltage-meter .voltage-spectrum i:after{display:none}.voltage-meter .voltage-spectrum i.is-charged{opacity:1}.voltage-meter[data-level="4"] .voltage-spectrum i.is-charged{background:linear-gradient(#fff2ae,#e9ff4d 55%,#ef8ce4)}.typing-stage .word-display{padding-top:15px}.typing-shell[data-course=ultra] .typing-stage .word-display{padding-top:5px}
.shield-shards{position:absolute;z-index:9;width:160px;height:160px;transform:translate(-50%,-50%);overflow:visible;pointer-events:none}.shield-shards polygon{fill:#72efff55;stroke:#c1ffff;stroke-width:1.5;transform-box:fill-box;transform-origin:center}.is-shield-blocking .shield-block-fx>svg{opacity:.15}
html[data-motion=off] .shield-shards{display:none}html[data-motion=off] .voltage-spectrum i{transition:none}
@media(max-width:760px){.voltage-spectrum{height:14px!important;gap:1px!important}.voltage-meter .voltage-spectrum i{height:14px!important;min-width:1px}.shield-shards{width:110px;height:110px}}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .shield-shards{display:none}html:not([data-motion=on]) .voltage-spectrum i{transition:none!important}}

.shield-shards polygon{opacity:0}

.voltage-meter .voltage-spectrum i{transform:none!important;clip-path:inset(calc((1 - var(--eq-height,.12))*100%) 0 0);background:repeating-linear-gradient(to top,#803bff 0,#803bff 3px,transparent 3px,transparent 5px);transition:clip-path .055s linear,opacity .2s}.voltage-meter .voltage-spectrum i:nth-child(n+8){background:repeating-linear-gradient(to top,#b534ff 0,#b534ff 3px,transparent 3px,transparent 5px)}.voltage-meter .voltage-spectrum i:nth-child(n+15),.voltage-meter[data-level="4"] .voltage-spectrum i.is-charged{background:repeating-linear-gradient(to top,#e83aff 0,#e83aff 3px,transparent 3px,transparent 5px)}

.arena-equalizer{position:absolute;inset:0;z-index:1;pointer-events:none;width:100%;height:100%;opacity:1}html[data-motion=off] .arena-equalizer{display:none}@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .arena-equalizer{display:none}}

/* Muted 480p background playback and controls remain visible on phones. */
@media(max-width:760px){
  html[data-game-view=simon] .simon-toolbar [data-game-video-toggle]{display:block;font-size:8px;padding:5px 7px;min-height:30px;white-space:nowrap}
  .typing-shell .typing-stage .game-motion.is-current,.simon-shell .simon-arena .game-motion.is-current,.typing-shell .typing-stage[data-video-mode=still] .game-motion-still,.simon-shell .simon-arena[data-video-mode=still] .game-motion-still{opacity:min(.78,calc(var(--music-opacity) + .2))}
  .simon-shell[data-state=showing] .simon-arena .game-motion.is-current{opacity:calc(min(.78,var(--music-opacity) + .2)*.6)}
  .typing-stage .rush-scrim,.simon-arena .rush-scrim{background:linear-gradient(#070c19bd,#070c1973 48%,#070c19c2)}
  .typing-shell .typing-stage[data-video-mode=still] .game-motion,.simon-shell .simon-arena[data-video-mode=still] .game-motion{opacity:0}
}

/* Memory arcade lives use the existing HUD footprint. */
#simon-lives{color:#8df6c0;font-size:clamp(21px,2.2vw,30px);letter-spacing:.03em;white-space:nowrap}#simon-lives[data-low=true]{color:#ff829c}.simon-mode-choice{display:flex;align-items:center;gap:12px;font-size:11px;color:#b6cce1}.simon-mode-choice select{min-width:210px;min-height:40px}.simon-shell[data-state=retrying] .simon-arena{border-color:#e77799;box-shadow:inset 0 0 28px #ef56781a}.simon-shell[data-state=retrying] .game-state{color:#ff92ac}
@media(max-width:760px){html[data-game-view=simon] #simon-lives{font-size:21px;line-height:1.1}.simon-mode-choice{gap:8px;font-size:10px}.simon-mode-choice select{min-width:190px}.simon-launch{gap:12px}.ranking-heading label[for=simon-board-course]{flex:1 1 145px}}

@media(max-width:760px){html[data-game-view=simon] .simon-shell[data-state=idle] #game-start{display:inline-flex}}

/* Animation controls remain reachable inside either mobile game. */
.game-motion-toggle{min-height:34px;padding:6px 9px;border:1px solid #57536f;border-radius:3px;background:#11101fcc;color:#c4c5de;font-size:10px;white-space:nowrap}.game-motion-toggle[aria-pressed=true]{border-color:#526a76;color:#96edff}
@media(max-width:760px){html[data-game-view] .game-motion-toggle{display:block;font-size:8px;padding:5px 7px;min-height:30px}html[data-game-view=simon] .simon-toolbar .game-state,html[data-game-view=typing] #typing-state{display:none}html[data-game-view=simon] .simon-toolbar .toolbar-right{gap:5px}}

/* Font-independent asterisk marks keep the same color and shape on iOS/Android. */
.asterisk-mark{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex:none}.pad-shape>.asterisk-mark{display:block}.brand-icon{display:inline-flex;align-items:center}.brand-icon>.asterisk-mark{filter:drop-shadow(0 0 8px #dbff0040)}

@media(max-width:760px){html[data-game-view=simon] .simon-arena .simon-board{width:min(calc(100% - 40px),330px)}}
