@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');
:root{color-scheme:dark;--bg:#111410;--panel:#1a1e18;--line:#2b3028;--text:#f4f5ef;--muted:#969f90;--lime:#c3f85c;--font:'Noto Sans JP',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--lime);outline-offset:5px}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 40px;gap:30px}.brand{display:flex;align-items:center;gap:9px;font:800 30px 'Barlow Condensed',sans-serif;letter-spacing:.4px}.brand-icon{background:var(--lime);color:var(--bg);font-size:27px;width:31px;height:33px;display:grid;place-items:center;border-radius:7px;transform:skew(-8deg)}.hundred{font:700 12px var(--font);border:1px solid #5e6855;border-radius:5px;padding:2px 5px;color:var(--lime);align-self:center}.header-note{font-size:13px;color:var(--muted);margin-left:15px}.outline{background:transparent;border:1px solid #424a3c;padding:11px 17px;border-radius:8px;font-size:14px;font-weight:600}.outline:hover{background:#2b3226}.random{margin-left:auto}.layout{display:grid;grid-template-columns:215px minmax(0,1fr)}aside{padding:36px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:18px}.nav-label{font:600 12px var(--font);letter-spacing:2px;color:#7e8876;padding-left:16px}nav{display:flex;flex-direction:column;gap:8px}.nav-item{background:transparent;text-align:left;border-radius:7px;padding:13px 15px;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500;color:#a9b1a3}.nav-item b{margin-left:auto;font:500 12px var(--font);opacity:.7}.nav-item.active{color:var(--lime);background:#29341d}.nav-item:hover{background:#242a20}.nav-icon{font-size:19px;width:22px;text-align:center}.side-bottom{position:sticky;top:40px;margin-top:90px;padding:20px 13px}.tiny-mark{display:block;font-size:36px;color:var(--lime);margin-bottom:17px}.side-bottom strong{font-size:14px}.side-bottom p{font-size:12px;line-height:2;color:var(--muted)}.free{font-size:12px;color:var(--lime);display:block;margin-top:22px}main{max-width:1580px;width:100%;padding:38px 42px 0;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}.eyebrow{font:700 11px var(--font);letter-spacing:2px;color:var(--lime);display:flex;align-items:center;gap:8px}.eyebrow>span{width:6px;height:6px;background:var(--lime);border-radius:50%}h1{font-size:clamp(35px,4.3vw,64px);letter-spacing:-3px;line-height:1.3;margin:12px 0 12px;font-weight:900}h1>span:not(.spark){color:var(--lime)}.spark{display:inline-block;font-size:58px;color:var(--lime);margin-left:18px;font-weight:400;vertical-align:middle}.intro p{margin:0;font-size:14px;color:var(--muted)}.game-count{text-align:right;display:flex;flex-direction:column;gap:9px}.game-count strong{font:700 70px/.9 'Barlow Condensed',sans-serif;letter-spacing:-2px}.game-count strong span{font:600 11px var(--font);letter-spacing:1px;margin-left:8px}.game-count>span{font-size:12px;color:var(--muted)}.featured{display:grid;grid-template-columns:1.65fr 1fr;gap:20px;margin-bottom:38px}.feature{min-height:285px;border-radius:13px;position:relative;overflow:hidden;text-align:left;transition:transform .2s}.feature:hover{transform:translateY(-3px)}.feature-main{background:var(--lime);color:#18250b;display:flex;padding:27px 30px;justify-content:space-between;gap:12px}.pill{font-size:11px;border:1px solid currentColor;border-radius:30px;padding:5px 10px;display:inline-block;font-weight:600}.feature h2{font-size:28px;line-height:1.5;letter-spacing:-1px;margin:16px 0 6px;font-weight:900}.feature p{font-size:12px;margin:5px 0 23px}.play-cta{font-size:14px;display:flex;gap:36px;font-weight:800}.play-cta>span{font-size:21px;line-height:1}.feature-meta{display:block;font-size:11px;opacity:.6;margin-top:12px}.reaction-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44%;flex-shrink:0}.orbit{width:142px;height:142px;border:1px solid #9bd244;border-radius:50%;display:grid;place-items:center;outline:1px solid #b1e64e;outline-offset:18px}.target-dot{width:98px;height:98px;border-radius:50%;background:#192b0a;border:17px solid #abd94f;outline:1px solid #7fae33}.preview-label{font-size:8px;letter-spacing:1.5px;margin-top:26px}.ms{font:700 42px 'Barlow Condensed',sans-serif}.ms small{font:500 14px var(--font)}.feature-side{background:#cbb9ff;color:#302050;padding:27px 27px 22px;display:flex;flex-direction:column;justify-content:space-between}.feature-side .pill{align-self:flex-start}.stack-preview{height:139px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px;transform:rotate(-8deg)}.stack-preview i{height:20px;width:115px;background:#7157b2;border:1px solid #4c3585;border-radius:4px;box-shadow:0 5px 0 #4c3585}.stack-preview i:nth-child(1){background:#fff0a2;width:87px;transform:translateX(28px);box-shadow:0 5px 0 #bc9c46;border-color:#bc9c46}.stack-preview i:nth-child(2){width:92px;transform:translateX(-9px)}.stack-preview i:nth-child(3){width:105px;transform:translateX(6px)}.feature-side-bottom{display:flex;align-items:end;justify-content:space-between}.feature-side h2{font-size:23px;margin:4px 0 0}.circle-arrow{height:38px;width:38px;border:1px solid #675387;border-radius:50%;display:grid;place-items:center;font-size:22px}.library-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.library-head h2{font-size:21px;margin:0}.library-head h2>span{color:var(--muted);font-size:13px;font-weight:400;margin-left:8px}.library-head p{font-size:12px;color:var(--muted);margin:8px 0 0}.search{height:41px;width:230px;display:flex;align-items:center;gap:9px;background:#1b2018;border:1px solid var(--line);border-radius:8px;padding:0 12px}.search>span{font-size:25px;color:var(--muted)}.search input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font-size:13px;outline:none}.search kbd{border:1px solid #41483b;color:#87917e;border-radius:3px;font-size:11px;padding:0 5px}.filter-row{display:flex;gap:9px;margin:22px 0;overflow:auto;padding:2px}.chip{white-space:nowrap;background:transparent;border:1px solid var(--line);font-size:12px;padding:8px 16px;border-radius:30px;color:#aab1a4}.chip.active{background:var(--text);border-color:var(--text);color:#171d12;font-weight:700}.games{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 18px}.game-card{position:relative;min-width:0}.card-open{display:block;width:100%;padding:0;background:none;text-align:left}.card-art{height:151px;border:1px solid #343d2c;border-radius:10px;background:var(--cardbg);overflow:hidden;position:relative;display:flex;justify-content:center;align-items:center;color:var(--accent);transition:transform .2s}.card-open:hover .card-art{transform:translateY(-4px);border-color:var(--accent)}.card-number{position:absolute;left:12px;top:10px;font:600 11px 'Barlow Condensed',sans-serif;letter-spacing:1px;opacity:.65}.card-art .motif{font:700 65px 'Barlow Condensed',sans-serif;white-space:pre-line;text-align:center;letter-spacing:4px;line-height:1.1}.card-art .small-motif{font-size:38px}.card-bottom{display:flex;align-items:center;gap:7px;margin-top:12px}.card-bottom h3{font-size:14px;margin:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:26px}.card-meta{font-size:11px;color:#8e9786;margin-top:6px}.card-meta span{margin:0 6px;opacity:.5}.favorite{position:absolute;right:0;bottom:22px;background:none;color:#8f9b83;width:30px;height:30px;font-size:20px}.favorite.selected{color:var(--lime)}.badge{position:absolute;right:10px;top:9px;background:var(--accent);color:#17200e;border-radius:4px;padding:3px 6px;font-size:9px;font-weight:800}.library{min-height:400px}#empty{padding:60px 10px;color:var(--muted);text-align:center}footer{border-top:1px solid var(--line);margin-top:44px;padding:27px 0;display:flex;gap:25px;align-items:center;color:var(--muted);font-size:11px}footer .brand{font-size:21px;color:var(--text)}footer>span:last-child{margin-left:auto}dialog{width:min(650px,calc(100% - 28px));max-height:94dvh;padding:24px;border:1px solid #49523e;border-radius:18px;background:#171d13;color:var(--text)}dialog::backdrop{background:#080c08d9;backdrop-filter:blur(7px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;color:var(--lime);font-size:13px}.icon-button{background:#2a3224;border-radius:50%;font-size:26px;width:36px;height:36px;line-height:1}.game-heading{text-align:center}.game-heading>span{font:600 12px 'Barlow Condensed',sans-serif;color:var(--muted);letter-spacing:3px}.game-heading h2{font-size:27px;margin:7px 0}.game-heading p{font-size:14px;color:var(--muted);line-height:1.8;margin:8px auto 18px;max-width:480px}.hud{display:flex;justify-content:space-around;background:#252d1e;border-radius:9px;padding:13px;font-size:12px;color:var(--muted)}.hud strong{font:600 24px 'Barlow Condensed',sans-serif;color:var(--text);margin-left:7px}#arena{height:300px;position:relative;border-radius:11px;background:#10160d;margin-top:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;touch-action:manipulation;gap:15px}#arena button{touch-action:manipulation}.start-game,.big-tap{background:var(--lime);color:#17230b;font-weight:800;border-radius:12px;padding:22px 32px;font-size:22px}.big-tap{width:90%;height:82%}.big-tap.waiting{background:#7b3c40;color:white}.big-tap.go{background:var(--lime)}.big-tap small{display:block;font-size:14px;margin-top:12px}.primary{background:var(--lime);color:#17230b;border-radius:8px;padding:11px 26px;font-weight:700}.game-actions{display:flex;justify-content:center;gap:12px;margin-top:12px}#game-message{min-height:35px;text-align:center;font-size:14px;padding-top:13px}.local-note{text-align:center;color:#8c9782;font-size:11px;margin:18px 0 0}.board{display:grid;gap:8px;width:min(90%,330px)}.tile{border-radius:8px;background:#303d25;color:var(--text);height:54px;font-size:23px;font-weight:700}.tile.lit{background:var(--lime);color:#17230b}.tile.matched{background:#283e14;color:var(--lime)}.tile:disabled{cursor:default}.question{font-size:38px;font-weight:800;text-align:center}.answers{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.answer{min-width:72px;padding:14px 18px;border-radius:8px;background:#303d25;color:var(--text);font-size:22px}.target{position:absolute;border-radius:50%;background:var(--lime);color:#17230b;font-weight:900;display:grid;place-items:center;padding:0}.track{width:86%;height:40px;background:#303d25;border-radius:6px;position:relative;overflow:hidden}.zone{position:absolute;top:0;bottom:0;background:#749937}.cursor{position:absolute;top:0;bottom:0;width:5px;background:white}.arena-tip{font-size:13px;color:var(--muted);text-align:center;margin:0 10px}.result{text-align:center}.result strong{font:800 76px 'Barlow Condensed',sans-serif;color:var(--lime);display:block}.result h3{font-size:20px;margin:10px}.result p{font-size:13px;color:var(--muted)}.color-word{font-size:40px;font-weight:900}.maze-player{background:var(--lime)!important;color:#16200d!important}.direction-pad{display:flex;gap:7px}.direction-pad button{background:#303d25;border-radius:6px;width:46px;height:40px;font-size:22px}.lane-board{height:195px;width:250px;border-left:1px solid #3d4732;border-right:1px solid #3d4732;position:relative;background:repeating-linear-gradient(90deg,transparent 0 82px,#2b3523 82px 83px)}.runner{position:absolute;bottom:8px;width:45px;height:20px;background:var(--lime);border-radius:4px}.hazard{position:absolute;width:45px;height:21px;background:#fb987e;border-radius:4px}.coin{background:#e8d371;border-radius:50%;width:22px;height:22px}.number-display{font:700 50px 'Barlow Condensed',sans-serif;letter-spacing:8px}.recall-input{width:190px;font-size:27px;text-align:center;border:1px solid var(--lime);background:#26321e;color:white;padding:12px;border-radius:8px}.storage-notice{color:#eac57c!important} @media(min-width:1600px){.card-art{height:180px}}@media(max-width:1200px){header{padding:0 26px}.layout{grid-template-columns:185px 1fr}aside{padding:30px 12px}main{padding:30px 27px 0}.games{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-main{padding:24px}.feature h2{font-size:25px}.reaction-preview{width:40%}.orbit{width:107px;height:107px}.target-dot{width:80px;height:80px}.feature-side{padding:24px 20px}.feature-side h2{font-size:20px}.spark{font-size:45px}}@media(max-width:900px){.header-note{display:none}.layout{grid-template-columns:1fr}aside{padding:17px 25px;border-right:0;border-bottom:1px solid var(--line)}.nav-label,.side-bottom{display:none}nav{flex-direction:row;overflow:auto;gap:8px}.nav-item{white-space:nowrap;padding:9px 13px;font-size:13px}.nav-item b{display:none}.featured{grid-template-columns:1.5fr 1fr}.intro{margin-top:4px}h1{font-size:49px}.game-count strong{font-size:60px}.feature h2{font-size:24px}.feature-side h2{font-size:20px}header{height:75px}}@media(max-width:600px){header{padding:0 18px;height:69px;gap:10px}.brand{font-size:25px}.brand-icon{width:25px;height:28px;font-size:23px}.random{font-size:11px;padding:9px}.hundred{font-size:10px}aside{padding:10px 14px}.nav-item{font-size:12px;padding:8px 11px;gap:6px}.nav-icon{font-size:17px}main{padding:27px 18px 0}.eyebrow{font-size:9px}h1{font-size:43px;letter-spacing:-2px}.spark{font-size:36px;margin-left:10px}.intro p{font-size:12px}.game-count{display:none}.featured{gap:12px;grid-template-columns:1fr;margin-bottom:29px}.feature{min-height:245px}.feature h2{font-size:27px}.feature-main{padding:23px}.feature-side{display:none}.reaction-preview{width:42%}.orbit{width:111px;height:111px}.library-head{flex-wrap:wrap;gap:17px}.library-head h2{font-size:20px}.search{width:100%}.filter-row{margin:18px 0}.games{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 13px}.card-art{height:131px}.card-art .motif{font-size:55px}.card-art .small-motif{font-size:30px}.card-bottom h3{font-size:13px}.card-meta{font-size:10px}.chip{font-size:12px;padding:8px 13px}footer{flex-wrap:wrap;gap:13px}footer>span:last-child{margin:0;width:100%}dialog{padding:17px}#arena{height:290px}.game-heading h2{font-size:24px}.game-heading p{font-size:13px}.game-count{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.card-art .motif{max-height:100%;display:flex;align-items:center;justify-content:center}.card-art .motif:has(br){font-size:38px}
.layout>*{min-width:0}.feature-copy{min-width:0}
@media(max-width:600px){.reaction-preview{width:35%}.feature-main h2{font-size:23px}.feature-main .play-cta{gap:12px}.feature-main .preview-label{font-size:7px;letter-spacing:.7px}.feature-main .orbit{width:90px;height:90px}.feature-main .target-dot{width:65px;height:65px;border-width:11px}.feature-main .feature-copy{flex:1}}@media(max-width:360px){.feature-main{padding:20px}.feature-main h2{font-size:20px}.feature-main .reaction-preview{width:30%}.feature-main .orbit{width:65px;height:65px;outline-offset:9px}.feature-main .target-dot{width:48px;height:48px;border-width:8px}.feature-main .preview-label{display:none}.feature-main .ms{font-size:30px;margin-top:16px}h1{font-size:36px}.spark{font-size:27px}.intro p{font-size:11px}}
/* Keep the longer, kana-based labels readable without cutting off game names. */
.card-bottom h3{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.7;font-size:14px}.card-meta{font-size:12px}.favorite{bottom:auto;top:163px}.game-heading p{font-size:16px;line-height:1.9}.feature p,.intro p,.library-head p,.search input,.chip,.nav-item{font-size:14px}.local-note{font-size:12px;line-height:1.8}.arena-tip{font-size:14px}.game-heading h2{line-height:1.6}.game-count strong span{letter-spacing:0}
@media(min-width:1600px){.favorite{top:192px}}
@media(max-width:600px){.spark{display:none}.favorite{top:143px}.game-heading p{font-size:14px}.nav-item{font-size:13px}.intro p{line-height:1.8}.game-heading h2{font-size:22px}.game-actions{flex-wrap:wrap}}

/* Touch controls and flexible game surfaces. Zoom remains available. */
body.game-open{overflow:hidden}
button{touch-action:manipulation}
.icon-button,.primary,.outline,.chip,.nav-item{min-height:48px}
.icon-button{width:48px;flex-shrink:0}
.search{min-height:48px}.search input{font-size:16px}
.game-card{--art-height:151px}.card-art{height:var(--art-height)}
.favorite{top:calc(var(--art-height) - 52px);right:8px;bottom:auto;width:44px;height:44px;border:1px solid #566349;border-radius:50%;background:#141c10;color:#c5cdbf;font-size:24px}
.card-bottom h3{padding-right:0}
#game-help summary{cursor:pointer;min-height:44px;align-content:center;color:var(--lime);font-size:14px}
#game-help summary:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
#game-help p{margin:4px auto 12px}
#game-dialog[data-state="playing"] #game-number,#game-dialog[data-state="playing"] .local-note{display:none}
#arena{min-height:300px;user-select:none;-webkit-user-select:none}
#arena .tile{min-height:48px}
.answers{width:94%;gap:10px}.answer{min-width:72px;min-height:56px}
.direction-pad{width:min(90%,420px);gap:16px;flex-shrink:0}
.direction-pad button{width:50%;height:56px;font-size:30px}
.lane-board{width:min(90%,420px);height:195px;flex-shrink:0;overflow:hidden;background:linear-gradient(90deg,transparent 32.9%,#2b3523 33%,#2b3523 33.4%,transparent 33.5%,transparent 66.2%,#2b3523 66.3%,#2b3523 66.7%,transparent 66.8%)}
.runner,.hazard{transform:translateX(-50%)}
.runner{bottom:4.1%;height:10.25%;width:18%}.hazard{width:18%;height:10.77%}.coin{width:22px;height:22px}
.number-display{font-size:clamp(28px,8vw,50px);letter-spacing:3px;max-width:100%;overflow-wrap:anywhere;text-align:center}
.recall-panel{width:min(92%,340px);display:grid;gap:8px}
.recall-input{width:100%;height:48px;padding:4px 10px;font-size:24px;letter-spacing:2px}
.number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.number-pad button{height:48px;border-radius:8px;background:#303d25;font-size:22px}
.recall-panel .primary{min-height:48px}
#arena:has(.recall-panel){min-height:328px}
@media(min-width:1600px){.game-card{--art-height:180px}}
@media(hover:none){.feature:hover,.card-open:hover .card-art{transform:none}.outline:hover{background:transparent}.nav-item:hover{background:transparent}.nav-item.active:hover{background:#29341d}}
@media(max-width:1180px),(pointer:coarse){
 header{height:auto;min-height:72px;padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));gap:12px}
 .header-note{display:none}.random{font-size:13px;padding:10px 12px}
 .layout{grid-template-columns:minmax(0,1fr)}
 aside{padding:8px max(12px,env(safe-area-inset-left));border-right:0;border-bottom:1px solid var(--line)}
 .nav-label,.side-bottom{display:none}nav{flex-direction:row;overflow:auto;gap:8px;padding:4px}
 .nav-item{white-space:nowrap;padding:10px 14px;gap:8px}.nav-item b{display:none}
 main{padding:24px max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left))}
 .intro{margin:0 0 20px}h1{font-size:44px}.spark{display:none}
 .featured{margin-bottom:26px;gap:16px}.feature{min-height:210px}.feature-main{padding:20px}.feature h2{font-size:24px;margin:12px 0 6px}.feature p{margin-bottom:14px}
 .feature-side{padding:20px}.stack-preview{height:92px}.stack-preview i{height:15px}
 .filter-row{display:none}.library-head{margin-bottom:20px}.search kbd{display:none}
 .games{grid-template-columns:repeat(3,minmax(0,1fr))}
 footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}
 #game-dialog{box-sizing:border-box;width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow:auto;overscroll-behavior:contain}
 #game-dialog[open]{display:grid;grid-template-rows:auto auto auto minmax(300px,1fr) auto auto auto;gap:8px}
 .dialog-head{min-height:48px}.game-heading h2{font-size:24px;line-height:1.5;margin:0}.game-heading>span{display:none}
 #game-help p{font-size:14px;line-height:1.8}.hud{padding:8px 4px;min-height:44px}.hud strong{font-size:24px;margin-left:4px}
 #arena{height:auto;min-height:300px;margin:0;gap:14px}
 .board{width:min(94%,380px);gap:8px}
 #game-message{min-height:26px;padding:0;font-size:14px;align-content:center}
 .game-actions{margin:0;flex-wrap:nowrap;gap:10px}.game-actions button{flex:1;max-width:260px;padding:10px 8px;font-size:14px}
 .local-note{margin:0;font-size:11px}.result{padding:12px}.result strong{font-size:64px}
 #arena:has(.lane-board){justify-content:space-evenly}.lane-board{height:clamp(195px,35dvh,360px)}
}
@media(max-width:600px){
 header{gap:8px}.brand{font-size:23px;gap:6px}.brand-icon{display:none}.random{font-size:12px;padding:8px}
 main{padding:20px max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left))}
 h1{font-size:36px;margin:8px 0}.eyebrow{font-size:10px;letter-spacing:1px}.intro p{font-size:13px}
 .featured{margin-bottom:24px}.feature{min-height:0}.feature-main{padding:16px;align-items:center}.feature-main h2{font-size:22px}.feature-main h2 br{display:none}.feature p,.feature-meta{display:none}.feature .pill{font-size:10px}.feature .play-cta{margin-top:12px;font-size:13px}
 .feature-main .reaction-preview{width:25%;min-width:60px}.feature-main .orbit{width:58px;height:58px;outline-offset:7px}.feature-main .target-dot{width:42px;height:42px;border-width:7px}.feature-main .preview-label,.feature-main .ms{display:none}
 .library-head{gap:14px}.library-head p{display:none}.library-head h2{font-size:20px}.search{width:100%}
 .games{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.game-card{--art-height:132px}.card-art .motif{font-size:48px}.card-art .small-motif{font-size:28px}.card-meta{font-size:11px}.card-bottom{margin-top:9px}
 .game-heading h2{font-size:21px}#game-dialog{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .answers{gap:8px}.answer{padding:12px 14px;min-width:64px}.hud{font-size:11px}.hud strong{font-size:23px}
}
/* Keep the play area beside the controls on short, landscape screens. */
@media(max-height:600px) and (min-width:601px) and (orientation:landscape){
 #game-dialog[open]{grid-template-columns:minmax(210px,36%) minmax(0,1fr);grid-template-rows:48px auto auto minmax(26px,1fr) auto;gap:8px 16px}
 .dialog-head{grid-column:1 / -1;grid-row:1}.game-heading{grid-column:1;grid-row:2}.hud{grid-column:1;grid-row:3}
 #arena{grid-column:2;grid-row:2 / 6;min-height:276px}.game-heading h2{font-size:20px}#game-help summary{min-height:44px}#game-help p{font-size:13px}
 #game-message{grid-column:1;grid-row:4}.game-actions{grid-column:1;grid-row:5}.game-actions button{font-size:12px}.local-note{display:none}
 .lane-board{height:195px}.direction-pad button{height:48px}#arena{gap:8px}.board{gap:6px;width:min(94%,360px)}
 #arena:has(.recall-panel){min-height:276px}.recall-panel{grid-template-columns:minmax(0,1fr) 100px;gap:8px}.recall-input{grid-column:1 / -1}.number-pad{grid-column:1;grid-row:2}.recall-panel>.primary{grid-column:2;grid-row:2;align-self:end;padding:12px 8px}
 .result strong{font-size:48px}.result h3{font-size:18px}.result p{font-size:12px}
}
@media(max-height:360px) and (min-width:601px) and (orientation:landscape){
 .dialog-head{grid-column:1}.game-heading h2{font-size:18px}
 #arena{grid-row:1 / 6}.game-actions{gap:6px}.game-actions button{font-size:11px;padding:8px 4px}
}

/* Searchable guides share the same readable, touch-friendly interface. */
h1>small{display:block;font:600 14px/1.8 var(--font);letter-spacing:.04em;margin-top:12px;color:var(--text)}
.guide-link{display:inline-flex;align-items:center;min-height:44px;padding:6px 10px;color:var(--lime);font-size:14px;text-decoration:underline;text-underline-offset:4px}
.site-guide{border-top:1px solid var(--line);margin-top:40px;padding-top:24px}
.site-guide h2,.guide-main h2{font-size:21px;line-height:1.7}
.site-guide p,.guide-main p{font-size:15px;line-height:2;color:#b2bcaa;overflow-wrap:anywhere}
.guide-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:20px 0 32px}
.guide-links a{min-height:72px;padding:14px 16px;border:1px solid #424a3c;border-radius:10px;font-size:15px;line-height:1.8}
.guide-links a span{display:block;font-size:12px;color:var(--muted)}
.site-guide details{border-bottom:1px solid var(--line);padding:6px 0}
.site-guide summary{min-height:48px;padding:12px 0;cursor:pointer;line-height:1.8;font-size:15px}
summary:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.guide-main{max-width:1000px;padding-top:24px}
.breadcrumbs{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--muted)}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.guide-intro{padding:24px 0}.guide-intro h1{font-size:clamp(28px,5vw,48px);letter-spacing:-.02em;line-height:1.5;overflow-wrap:anywhere}
.guide-intro .eyebrow{color:var(--lime);font-size:12px}.guide-play{display:inline-flex;align-items:center;justify-content:center;min-height:48px;font-size:15px;line-height:1.6;text-align:center}
.guide-tip{padding:16px 20px;margin:12px 0 28px;border-radius:12px;background:#1a2115}
.variant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.variant{padding:22px;border:1px solid #424a3c;border-radius:12px;scroll-margin-top:20px}.variant h3{font-size:20px;line-height:1.7;margin:10px 0}.variant-number{color:var(--lime);font-size:13px}.variant-time{font-size:13px!important}.variant .guide-play{width:100%}
@media(max-width:600px){h1>small{font-size:13px;margin-top:8px}.guide-main{padding-top:16px}.guide-page header .brand{font-size:22px}.guide-page .random{font-size:12px}.variant-list{grid-template-columns:1fr}.variant{padding:18px}.site-guide h2,.guide-main h2{font-size:19px}.guide-tip{padding:14px 16px}.guide-links{grid-template-columns:1fr}.site-guide p,.guide-main p{font-size:14px}}
.collection-note{text-align:center;font-size:12px;line-height:1.8;color:#b2bcaa;margin:8px 0 0}
#game-dialog[data-state="playing"] .collection-note{display:none}

/* Stop target: the score rises toward the darkest center band. */
.stop-track .zone{background:linear-gradient(90deg,#d9f99d 0% 20%,#a3d84b 20% 40%,#4d7c0f 40% 60%,#a3d84b 60% 80%,#d9f99d 80% 100%)}
.stop-hint{font-size:12px;line-height:1.5;color:var(--muted);text-align:center;margin:0}

.sound-toggle{margin-left:auto;margin-right:12px;min-height:44px;padding:8px 12px;border:1px solid #424a3c;border-radius:8px;background:transparent;color:var(--muted);font-size:13px;white-space:nowrap}
.sound-toggle[aria-pressed="true"]{color:var(--lime);border-color:#5e6855}.sound-toggle:disabled{opacity:.6;cursor:default}
/* Language navigation and readable layouts across writing systems. */
.language-picker{position:relative;flex-shrink:0;font-size:13px;letter-spacing:normal;z-index:10}
.language-picker summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:44px;padding:8px 10px;border:1px solid #424a3c;border-radius:8px;cursor:pointer;white-space:nowrap}
.language-picker summary::-webkit-details-marker{display:none}
.language-picker summary:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.language-options{position:absolute;inset-inline-end:0;top:100%;width:190px;max-height:60dvh;overflow:auto;display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid #424a3c;border-radius:8px;padding:6px;box-shadow:0 4px 8px #0005}
.language-options a{display:block;min-height:44px;padding:10px;border-radius:5px;text-align:start}
.language-options a[aria-current]{background:#29341d;color:var(--lime)}
.dialog-head{gap:8px}.dialog-head .language-picker{margin-inline-start:auto}.dialog-head .sound-toggle{margin:0}.dialog-head .icon-button{flex-shrink:0}
html:not([lang="ja"]) h1,html:not([lang="ja"]) h2,html:not([lang="ja"]) .eyebrow{letter-spacing:normal}
html[lang="ar"]{--font:Tahoma,Arial,sans-serif}html[lang="th"]{--font:Tahoma,'Noto Sans Thai',sans-serif}
html:not([lang="ja"]) .feature h2{overflow-wrap:anywhere}html:not([lang="ja"]) .feature-copy{min-width:0}
html:not([lang="ja"]) .color-word{font-size:clamp(26px,5vw,40px);max-width:100%;overflow-wrap:anywhere}
html:not([lang="ja"]) .answers .answer{font-size:18px}
[dir="rtl"] .nav-item,[dir="rtl"] .card-open,[dir="rtl"] .feature{text-align:start}
[dir="rtl"] .layout>aside{border-right:0;border-left:1px solid var(--line)}
[dir="rtl"] .nav-item b{margin-left:0;margin-right:auto}[dir="rtl"] .random{margin-left:0;margin-right:auto}
[dir="rtl"] .favorite{right:auto;left:0}[dir="rtl"] .card-bottom h3{padding-right:0;padding-left:26px}
[dir="rtl"] .hud strong{margin-left:0;margin-right:7px}
.board,.direction-pad,.number-pad,.recall-input,.lane-board,.track,.number-display{direction:ltr}
.brand,.card-number,.variant-number{direction:ltr;unicode-bidi:isolate}
#arena .question{direction:ltr;unicode-bidi:isolate}
@media(max-width:600px){header{flex-wrap:wrap}header .language-picker{margin-inline-start:auto}header>.random{margin-inline-start:0;width:100%}.dialog-head>span{font-size:11px}.dialog-head .language-picker{font-size:12px}.dialog-head .language-picker summary{padding:8px}.dialog-head .sound-toggle{font-size:12px;padding:8px}.game-heading h2{overflow-wrap:anywhere}.game-actions button{white-space:normal}html:not([lang="ja"]) h1{font-size:32px}}
@media(max-width:360px){.dialog-head{gap:5px}.dialog-head>span{display:none}.dialog-head .language-picker{margin-inline-start:0;margin-inline-end:auto}.language-picker summary{max-width:130px;overflow:hidden}}

.answers{direction:ltr}.answers>.answer{unicode-bidi:plaintext}

/* New learning games reuse native touch and keyboard controls. */
.learning-discovery{margin:0 0 32px}.learning-discovery h2{font-size:20px;text-wrap:balance}
.learning-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.learning-links a{display:flex;align-items:center;gap:10px;min-height:64px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:14px;line-height:1.6}
.learning-links a>span:first-child{font-size:22px;color:var(--lime);direction:ltr;white-space:pre-line}.learning-links a>span:last-child{margin-inline-start:auto;color:var(--lime)}
@media(max-width:900px){.learning-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.learning-links{grid-template-columns:1fr}}
.learning-target{font-size:24px;font-weight:800;color:var(--lime);text-align:center}
.learning-current{font-size:20px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.learning-remaining,.learning-hint{font-size:14px;color:var(--muted);text-align:center}
.learning-tile,.learning-operation{min-width:44px;min-height:48px;border-radius:8px;background:#303d25;font-size:23px;font-weight:700;direction:ltr;font-variant-numeric:tabular-nums}
.learning-tile.selected{background:var(--lime);color:#17230b;outline:2px solid var(--text);outline-offset:2px}
.learning-submit{background:var(--lime);color:#17230b;border-radius:8px;padding:10px 20px;min-height:44px;font-weight:700}
#arena:has(.learning-target){padding:12px;gap:10px;min-height:350px;height:auto}
#arena:has(.physics-question){padding:10px;gap:8px;height:auto;min-height:350px}
.physics-question{font-size:20px!important;text-wrap:balance}.physics-fact{font-size:13px;text-align:center;font-variant-numeric:tabular-nums}
.physics-ramp-svg,.physics-seesaw-svg{width:min(100%,420px);height:150px;flex-shrink:0;direction:ltr;overflow:visible}
.physics-ground{stroke:#626e58;stroke-width:3}.physics-ramp,.physics-beam{stroke:#b4bea9;stroke-width:8;stroke-linecap:round}
.physics-goal,.physics-ball,.physics-player-weight{fill:var(--lime)}.physics-fixed-weight,.physics-pivot{fill:#b4bea9}
.physics-goal-label{fill:var(--text);font-size:20px}.physics-weight-label{fill:#17230b;font-size:20px;font-weight:800}
.physics-control{width:min(100%,340px)}.physics-control-label{display:flex;align-items:center;gap:12px;font-size:14px}
.physics-range{min-width:0;flex:1;min-height:44px;accent-color:var(--lime);direction:ltr}
.physics-minus,.physics-plus{min-width:48px;min-height:44px;padding:6px 16px;font-size:22px}
.physics-buttons,.physics-adjust{display:flex;gap:10px;justify-content:center;direction:ltr}
.physics-launch,.physics-submit{min-height:44px}.physics-status{min-height:20px}
@media(max-height:600px) and (min-width:601px){#arena:has(.learning-target),#arena:has(.physics-question){min-height:276px;gap:6px}.physics-ramp-svg,.physics-seesaw-svg{height:105px}.physics-question{font-size:16px!important}}
.learning-reset{min-height:44px;border:1px solid #626e58;background:transparent;border-radius:8px;padding:8px 14px;font-size:14px}
