@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700&display=swap";:root{--sumi:#1a1410;--washi:#f5f0e8;--beni:#b5341c;--beni-dark:#8f2a1b;--ai:#1b2b4b;--kuchiba:#8b7355;--tokiwa:#4a5c3f;--usuzumi:#ede8de;--cha:#c4bdb0;--paper:var(--washi);--paper-dark:var(--usuzumi);--ink:var(--sumi);--muted:#6f6256;--torii:var(--beni);--torii-dark:var(--beni-dark);--cream:#fffaf1;--line:#1a141024;--shadow:0 20px 54px #1a14101c;--button-min-width:138px;--button-height:46px}*{box-sizing:border-box}html{max-width:100%;overflow-x:hidden}body{background:radial-gradient(circle at top left, #b5341c1a, transparent 30rem), radial-gradient(circle at bottom right, #1b2b4b17, transparent 34rem), linear-gradient(135deg, var(--washi), #fffaf1 58%, var(--usuzumi));max-width:100%;color:var(--ink);margin:0;font-family:Inter,Noto Sans JP,sans-serif;overflow-x:hidden}button,select,input{font:inherit}input{border:1px solid var(--line);background:var(--cream);width:100%;color:var(--ink);border-radius:14px;padding:12px}button{cursor:pointer}button,a,strong,small{overflow-wrap:break-word}button,a{word-break:normal;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.app-shell{width:min(1440px,100%);margin:0 auto;padding:32px}.site-header{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fffaf1e6,#f5f0e8c7);border-radius:28px;justify-content:space-between;align-items:flex-start;gap:24px;padding:32px;display:flex}.header-main{min-width:0}.page-content-anchor{height:1px;scroll-margin-top:16px}.eyebrow{color:var(--beni);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-family:DM Mono,Noto Sans JP,monospace;font-weight:500}h1{color:var(--ai);margin:0;font-family:Inter,Noto Sans JP,sans-serif;font-size:clamp(2.4rem,6vw,5rem);line-height:.95}.site-title{color:var(--ai);font:inherit;text-align:left;background:0 0;border:0;align-items:baseline;margin:0;padding:0;font-family:Inter,Noto Sans JP,sans-serif;font-size:clamp(2.4rem,6vw,5rem);font-weight:700;line-height:.95;display:inline-flex}.site-title:hover,.site-title:focus-visible{color:var(--beni-dark);outline:none}.brand-kanji{color:var(--beni);margin-right:.08em;font-family:Noto Sans JP,sans-serif;font-weight:400}.subtitle{max-width:720px;color:var(--muted);margin:14px 0 0;font-size:1.05rem}.main-nav{background:#fffaf1a8;border:1px solid #1b2b4b1f;border-radius:999px;flex-wrap:wrap;gap:4px;width:fit-content;margin-top:18px;padding:5px;display:flex;box-shadow:inset 0 1px #ffffff8c}.main-nav a,.main-nav button{min-width:0;min-height:34px;color:var(--ai);font:inherit;text-align:center;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;padding:8px 13px;font-size:.84rem;font-weight:700;line-height:1.2;text-decoration:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}.main-nav a:hover,.main-nav button:hover,.main-nav a:focus-visible,.main-nav button:focus-visible{color:var(--beni-dark);background:#fffaf1eb;border-color:#b5341c33;outline:none}.main-nav a[aria-current=page],.main-nav button[aria-current=page],.main-nav a.is-active,.main-nav button.is-active{color:var(--beni-dark);background:#b5341c1f;border-color:#b5341c4d;box-shadow:0 6px 14px #b5341c1a}.header-actions,.button-row{flex-wrap:wrap;gap:12px;display:flex}.header-actions{justify-self:end;width:min(182px,100%)}.language-selector{width:100%;color:var(--muted);text-align:right;gap:3px;font-size:.68rem;font-weight:700;display:grid}.language-selector select{width:100%;min-width:0;min-height:30px;color:var(--beni-dark);font:inherit;text-align:center;background:#fffaf1eb;border:1px solid #b5341c3d;border-radius:999px;padding:6px 9px;font-size:.78rem;font-weight:800}.header-panel{align-self:end;justify-items:end;gap:8px;min-width:min(182px,100%);display:grid}.header-progress-pill{width:min(182px,100%);min-height:30px;color:var(--beni-dark);font:inherit;background:#b5341c1a;border:1px solid #b5341c3d;border-radius:999px;justify-content:center;justify-self:end;align-items:center;gap:7px;padding:6px 10px;font-size:.78rem;font-weight:800;transition:background .16s,box-shadow .16s,transform .16s;display:inline-flex}.header-progress-pill:hover,.header-progress-pill:focus-visible{background:#b5341c29;outline:none;transform:translateY(-1px);box-shadow:0 10px 24px #b5341c24}.header-progress-pill span{white-space:nowrap}.header-progress-pill img{object-fit:contain;width:18px;height:18px}.header-progress{border:1px solid var(--line);background:linear-gradient(135deg,#fffaf1e0,#f5f0e8c2);border-radius:18px;gap:8px;padding:16px;display:grid}.header-progress-top,.header-progress-bottom{justify-content:space-between;align-items:center;gap:14px;display:flex}.header-progress span,.header-progress small{color:var(--muted)}.header-progress strong{font-size:1.45rem}.header-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ghost-button,.primary-button,.secondary-button{min-width:var(--button-min-width);min-height:var(--button-height);border:1px solid var(--line);background:var(--cream);color:var(--ai);font:inherit;text-align:center;text-wrap:balance;white-space:normal;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-weight:700;line-height:1.18;text-decoration:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s;display:inline-flex}a.ghost-button,button.ghost-button{background:#fffaf1db;border-color:#1b2b4b2e}a.secondary-button,button.secondary-button{border-color:var(--ai)}a.primary-button,button.primary-button{border-color:var(--beni)}a.ghost-button:hover,button.ghost-button:hover,a.ghost-button:focus-visible,button.ghost-button:focus-visible{color:var(--ai);background:#fffdf8;border-color:#1b2b4b4d;outline:none;transform:translateY(-1px);box-shadow:0 10px 24px #1b2b4b1f}.primary-button{background:var(--beni);color:#fff;border-color:var(--beni);box-shadow:0 12px 28px #b5341c33}.primary-button:hover,.primary-button:focus-visible{background:var(--beni-dark);border-color:var(--beni-dark);color:#fff;outline:none;transform:translateY(-1px)}.secondary-button{background:var(--ai);color:#fff;border-color:var(--ai);box-shadow:0 12px 28px #1b2b4b29}.secondary-button:hover,.secondary-button:focus-visible{color:#fff;background:#14213d;border-color:#14213d;outline:none;transform:translateY(-1px)}.ad-slot{color:#244f82;text-align:center;background:linear-gradient(135deg,#dbebfceb,#e8f2fdc7);border:1px solid #3a6fb23d;border-radius:18px;place-items:center;gap:4px;min-height:96px;margin-top:24px;padding:20px;display:grid;box-shadow:0 16px 42px #244f821a}.ad-slot strong{color:#1f4775;font-size:1rem}.ad-slot span{color:#315f91;font-size:.88rem}.home-ad-slot{margin-top:0}.daily-leaderboard{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1d6;border-radius:20px;gap:16px;margin-top:18px;padding:20px;display:grid}.leaderboard-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.leaderboard-heading h2,.leaderboard-heading p{margin:0}.leaderboard-heading>span,.daily-leaderboard small{color:var(--muted);font-size:.84rem}.record-form{background:#b23a2f14;border:1px solid #b23a2f38;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:14px;display:grid}.record-form label{color:var(--torii-dark);gap:8px;font-weight:700;display:grid}.leaderboard-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-list li{border:1px solid var(--line);background:var(--cream);border-radius:14px;justify-content:space-between;gap:12px;padding:12px 14px;display:flex}.leaderboard-list span{color:var(--muted)}.leaderboard-list strong{color:var(--torii-dark)}.about-page{gap:24px;margin-top:24px;display:grid}.home-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:24px;margin-top:24px;display:grid}.home-main{gap:18px;display:grid}.home-page,.standalone-page{gap:24px;margin-top:24px;display:grid}.home-hero,.home-section,.home-footer{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1d6;border-radius:24px}.home-hero{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:32px;display:grid}.onboarding-screen{place-items:center;min-height:calc(100dvh - 64px);display:grid}.onboarding-card{border:1px solid var(--line);width:min(980px,100%);min-width:0;max-width:100%;box-shadow:var(--shadow);background:#fffaf1e6;border-radius:28px;gap:22px;padding:28px;display:grid;overflow:hidden}.onboarding-card .language-selector{justify-self:start}.onboarding-option-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.onboarding-option{border:1px solid var(--line);background:var(--cream);min-height:150px;color:var(--ink);text-align:left;border-radius:18px;align-content:start;gap:8px;padding:16px;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;display:grid}.onboarding-option:hover,.onboarding-option:focus-visible,.onboarding-option.is-selected{background:#b23a2f14;border-color:#b23a2f5c;outline:none;transform:translateY(-1px);box-shadow:0 10px 24px #b23a2f1a}.onboarding-option span,.placement-card p{color:var(--muted);font-size:.9rem;line-height:1.45}.onboarding-controls,.placement-card,.onboarding-footer{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:14px;display:grid}.placement-card{background:#fffaf1b8;border:1px solid #b23a2f2e;border-radius:18px;align-items:center;padding:18px}.placement-card h2,.placement-card p{margin:0}.placement-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.onboarding-footer{align-items:center}.onboarding-footer .primary-button{justify-self:end}.placement-test-screen{place-items:center;min-height:calc(100dvh - 92px);padding:24px 0;display:grid}.placement-test-card{border:1px solid var(--line);width:min(920px,100%);box-shadow:var(--shadow);background:radial-gradient(circle at 100% 0,#b23a2f14,#0000 18rem),#fffaf1eb;border-radius:28px;gap:20px;padding:28px;display:grid}.placement-intro-card{text-align:left}.placement-test-card h1,.placement-test-card h2,.placement-test-card p{margin:0}.placement-meta-grid,.placement-area-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.placement-meta-grid span{border:1px solid var(--line);min-height:42px;color:var(--ai);text-align:center;background:#fffaf1c2;border-radius:999px;justify-content:center;align-items:center;padding:9px 12px;font-weight:800;display:inline-flex}.placement-test-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.placement-manual-selector{max-width:360px}.placement-question-top{justify-content:space-between;align-items:start;gap:16px;display:flex}.placement-level-badge{min-width:56px;color:var(--torii-dark);text-align:center;background:#b23a2f1a;border:1px solid #b23a2f3d;border-radius:999px;padding:8px 12px;font-weight:900}.placement-question-card{background:#fffaf1c7;border:1px solid #1b2b4b1f;border-radius:22px;gap:16px;padding:20px;display:grid}.placement-question-card h2{color:var(--ink);font-weight:650;line-height:1.24}.placement-passage{color:var(--ink);background:#1b2b4b0f;border-radius:16px;padding:16px;font-family:Noto Sans JP,sans-serif;font-size:1.15rem;line-height:1.7}.placement-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.placement-option{border:1px solid var(--line);background:var(--cream);min-height:54px;color:var(--ink);text-align:left;border-radius:16px;padding:13px 14px;font-weight:500;line-height:1.3}.placement-option:not(:disabled):hover,.placement-option:not(:disabled):focus-visible{background:#b23a2f14;border-color:#b23a2f57}.placement-option.is-correct{color:#245c3d;background:#337d5424;border-color:#337d5475}.placement-option.is-incorrect{color:var(--torii-dark);background:#b23a2f1f;border-color:#b23a2f70}.placement-feedback{border-radius:14px;padding:12px 14px;font-weight:800}.placement-feedback.correct{color:#245c3d;background:#337d541f}.placement-feedback.incorrect{color:var(--torii-dark);background:#b23a2f1a}.placement-score-card{min-height:112px;color:var(--torii-dark);background:#b23a2f14;border:1px solid #b23a2f2e;border-radius:22px;place-items:center;gap:4px;display:grid}.placement-score-card strong{font-size:clamp(2rem,6vw,3.5rem);line-height:1}.home-hero h1,.home-hero p{margin:0}.home-hero p:not(.eyebrow){max-width:760px;margin-top:14px;line-height:1.7}.home-hero .home-hero-tagline{max-width:820px;color:var(--ai);font-size:clamp(2rem,4vw,3.4rem);font-weight:700;line-height:1}.home-hero .home-hero-subtitle{max-width:680px;color:var(--muted);margin-top:10px;font-size:1rem;line-height:1.65}.home-primary-cta{min-width:210px}.hero-actions,.daily-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero-actions .primary-button,.hero-actions .secondary-button,.daily-actions .primary-button,.daily-actions .secondary-button,.daily-actions .ghost-button{min-width:180px}.home-section{gap:18px;padding:24px;display:grid}.progress-summary{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr) auto;align-items:center}.progress-summary-card{background:#fffaf1c2;border:1px solid #b23a2f29;border-radius:18px;grid-template-columns:minmax(110px,.36fr) minmax(180px,.7fr) minmax(190px,.52fr);align-items:center;gap:14px;min-width:0;padding:16px;display:grid}.progress-summary-main{gap:4px;display:grid}.progress-summary-main span,.progress-summary-main small,.progress-summary-status span{color:var(--muted);font-size:.86rem}.progress-summary-main strong{color:var(--beni-dark);font-size:2rem;line-height:1}.progress-summary-status{gap:8px;min-width:0;display:grid}.progress-summary-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-actions{justify-items:stretch;gap:10px;display:grid}.summary-actions .primary-button,.summary-actions .ghost-button{white-space:nowrap}.learning-path-panel{border:1px solid var(--line);background:linear-gradient(135deg,#b5341c12,#0000),#fffaf1db;border-radius:20px;gap:16px;min-width:0;padding:18px;display:grid}.practice-aid-settings{border:1px solid var(--line);background:linear-gradient(135deg,#1b2b4b0f,#0000),#fffaf1db;border-radius:20px;gap:16px;min-width:0;padding:18px;display:grid}.practice-aid-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.practice-aid-card{background:#fffaf1c2;border:1px solid #1b2b4b1f;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;padding:14px;display:grid}.practice-aid-card span{gap:4px;display:grid}.practice-aid-card strong{color:var(--ai)}.practice-aid-card small{color:var(--muted);line-height:1.45}.practice-aid-card input{width:20px;height:20px;accent-color:var(--beni)}.learning-path-panel h3,.learning-path-panel h4,.learning-path-panel p{margin:0}.learning-path-panel h3{font-size:1.25rem}.learning-path-panel h4{font-size:.95rem}.learning-path-panel p{color:var(--muted);line-height:1.5}.learning-path-top,.jlpt-level-heading,.jlpt-progress-details,.learning-path-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.jlpt-selector{min-width:min(220px,100%);color:var(--muted);gap:6px;font-size:.82rem;font-weight:800;display:grid}.jlpt-level-buttons{flex-wrap:wrap;gap:8px;display:flex}.jlpt-level-buttons button{border:1px solid var(--line);min-width:64px;color:var(--ink);cursor:pointer;background:#fffaf1e0;border-radius:12px;padding:9px 11px;font-weight:800}.jlpt-level-buttons button.is-recommended{background:linear-gradient(#fff4cdf5,#fffaf1e6);border-color:#c68922ad;box-shadow:0 0 0 2px #c6892224}.jlpt-level-buttons button.is-active{color:var(--torii-dark);background:#b5341c1f;border-color:#b5341c6b}.jlpt-level-buttons button.is-active.is-recommended{background:linear-gradient(#b5341c24,#fff4cdb8);border-color:#b5341c8f;box-shadow:0 0 0 2px #b5341c21}.jlpt-level-buttons small{color:var(--muted);margin-top:2px;font-size:.66rem;font-weight:700;display:block}.recommendation-badge{color:#6f4610;background:#c689222e;border-radius:999px;width:max-content;margin-inline:auto;padding:2px 6px}.recommendation-note{max-width:360px;color:var(--muted);margin:0;font-size:.78rem;font-weight:600}.jlpt-selector select{border:1px solid var(--line);background:var(--cream);width:100%;color:var(--ai);border-radius:999px;padding:11px 14px}.jlpt-dual-progress{gap:12px;display:grid}.jlpt-dual-progress-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;display:grid}.jlpt-dual-progress-row>div:first-child{gap:2px;min-width:0;display:grid}.jlpt-dual-progress-row strong{color:var(--ai);font-size:.92rem}.jlpt-dual-progress-row span{color:var(--muted);font-size:.82rem;line-height:1.35}.jlpt-dual-progress-row>span{color:var(--ai);font-weight:900}.jlpt-dual-progress-row>small{color:var(--muted);white-space:nowrap;background:#fffaf1ad;border:1px solid #1b2b4b24;border-radius:999px;padding:6px 9px;font-size:.74rem;font-weight:800;line-height:1}.jlpt-dual-progress-row .progress-track{grid-column:1/-1;height:10px}.jlpt-dual-progress-row.is-mastery .progress-fill{background:var(--ai)}.jlpt-dual-progress-row.is-practice .progress-fill,.summary-meter.is-practice .progress-fill{background:linear-gradient(90deg,#b23a2fbd,#c68922b8)}.progress-context-note{border-left:3px solid #c68922b3;padding-left:10px}.dual-summary-status{gap:9px;display:grid}.summary-meter{gap:4px;display:grid}.summary-meter span{color:var(--muted);font-size:.82rem;font-weight:800}.jlpt-progress-card{background:#fffaf1b8;border:1px solid #b23a2f2e;border-radius:16px;gap:10px;padding:14px;display:grid}.jlpt-level-heading span,.jlpt-progress-details span{color:var(--muted);font-size:.86rem}.jlpt-level-heading strong{color:var(--torii-dark);font-size:1.1rem}.learning-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.learning-path-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.learning-path-columns article{gap:10px;min-width:0;display:grid}.objective-list,.unlock-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.objective-list li,.unlock-list li{border:1px solid var(--line);background:var(--cream);color:var(--muted);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.88rem;display:flex}.objective-list li.is-complete{color:#456f52;background:#4871531a;border-color:#456f523d}.objective-list strong{white-space:nowrap;color:var(--ink)}.learning-path-actions{justify-content:flex-start}.other-jlpt-progress{gap:10px;display:grid}.other-jlpt-list{gap:8px;display:grid}.other-jlpt-row{border:1px solid var(--line);background:#fffaf1b8;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.other-jlpt-row div{gap:2px;display:grid}.other-jlpt-row span{color:var(--muted);font-size:.82rem}.other-jlpt-row.is-active{background:#b5341c14;border-color:#b5341c4d}.danger-button{color:var(--torii-dark)}.danger-button-solid{background:var(--torii-dark);border-color:var(--torii-dark)}.confirm-dialog-backdrop{z-index:80;background:#1b2b4b5c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--line);background:var(--paper);width:min(520px,100%);box-shadow:var(--shadow);border-radius:18px;gap:14px;padding:22px;display:grid}.confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.learning-path-panel.compact{border-radius:18px;padding:14px}.learning-path-panel.compact .learning-path-top,.learning-path-panel.compact .learning-path-columns,.learning-path-panel.compact .learning-stats-grid{grid-template-columns:1fr;display:grid}.progress-summary .section-heading{margin-bottom:0}.progress-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.split-heading{grid-template-columns:minmax(0,1fr) minmax(240px,340px);align-items:end}.split-heading>div>p:last-child{color:var(--muted);line-height:1.6}.topic-search{color:var(--muted);gap:6px;font-size:.84rem;font-weight:700;display:grid}.topic-filter-controls{gap:10px;display:grid}.topic-level-toggle{color:var(--muted);align-items:center;gap:8px;font-size:.84rem;font-weight:700;line-height:1.35;display:flex}.topic-level-toggle input{width:16px;height:16px;accent-color:var(--accent)}.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.topic-card{border:1px solid var(--line);background:var(--cream);border-radius:18px;align-content:space-between;gap:16px;padding:18px;display:grid}.topic-card.is-disabled{opacity:.72;background:#fffaf194}.topic-card h3,.topic-card p{margin:0}.topic-card p{color:var(--muted);line-height:1.5}.topic-card-top,.topic-card-meta{justify-content:space-between;align-items:start;gap:12px;display:flex}.topic-japanese{color:var(--torii);font-family:Noto Sans JP,sans-serif;font-size:2.2rem;line-height:1;display:block}.topic-romaji{color:var(--muted);margin-top:4px;font-weight:700;display:block}.topic-kana{color:var(--muted);margin-top:4px;font-family:Noto Sans JP,Inter,sans-serif;font-size:.96rem;font-weight:600;line-height:1.3;display:block}.topic-status,.mode-state{color:#173c65;background:#1f4c7821;border:1px solid #1f4c7847;border-radius:999px;width:fit-content;padding:6px 10px;font-size:.78rem;font-weight:800}.mode-state.available{color:#214f36;background:#245c3d29;border-color:#245c3d57}.mode-state.soon{color:#4a4540;background:#48454224;border-color:#48454252}.topic-status.completed{color:#214f36;background:#245c3d29;border-color:#245c3d57}.topic-status.in-progress{color:#173c65;background:#1f4c7826;border-color:#1f4c7857}.topic-route-badge{width:fit-content;color:var(--torii-dark);background:#b23a2f14;border:1px solid #b23a2f33;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:800}.topic-status.coming-soon{color:#4a4540;background:#48454224;border-color:#48454252}.topic-card-meta{color:var(--muted);font-size:.9rem}.topic-card-meta>span:first-child{flex-wrap:wrap;align-items:center;gap:7px;display:inline-flex}.topic-level-pill{color:var(--torii-dark);background:#b23a2f1a;border:1px solid #b23a2f3d;border-radius:999px;align-items:center;padding:4px 8px;font-size:.76rem;font-weight:800;line-height:1;display:inline-flex}.topic-mini-progress{background:#211a1714;border-radius:999px;height:7px;overflow:hidden}.topic-mini-progress span{border-radius:inherit;background:var(--torii);height:100%;display:block}.centered-action{justify-self:center}.daily-card{background:linear-gradient(135deg,#b23a2f14,#0000),#ffefd1e0;grid-template-columns:minmax(0,.9fr) minmax(220px,1fr) minmax(190px,auto);align-items:center}.daily-card>*{min-width:0}.daily-page-card{grid-template-columns:minmax(0,.9fr) minmax(260px,1fr);align-items:start}.daily-page-intro{justify-items:start;gap:12px;display:grid}.daily-card h1,.daily-card h2,.daily-card h3,.daily-card p{margin:0}.daily-card p{color:var(--muted);line-height:1.6}.daily-topic{border:1px solid var(--line);overflow-wrap:break-word;background:#fffaf1db;border-radius:18px;gap:8px;padding:18px;display:grid}.daily-topic small{color:var(--muted);font-weight:700}.daily-topic .daily-streak-summary{margin-top:8px}.daily-card .daily-actions{justify-content:flex-end;justify-self:end;max-width:260px}.daily-card .daily-actions .note{text-align:right}.home-mode-grid .mode-card.is-disabled{filter:grayscale(.28);background:linear-gradient(135deg,#f5f0e8a3,#fffaf17a);border-color:#6f62561f}.home-mode-grid .mode-card.is-disabled button{cursor:not-allowed}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.collection-card{border:1px solid var(--line);background:var(--cream);border-radius:18px;gap:14px;padding:18px;display:grid}.collection-card h3{margin:0}.collection-links{flex-wrap:wrap;gap:8px;display:flex}.collection-links a,.collection-links span{border:1px solid var(--line);min-height:42px;color:var(--ai);text-align:center;overflow-wrap:anywhere;background:#fffaf1b8;border-radius:14px;flex:148px;justify-content:center;align-items:center;padding:9px 12px;font-size:.86rem;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.collection-links span{color:var(--muted)}.support-section p{max-width:900px;color:var(--muted);margin:0;line-height:1.7}.support-section{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:start;gap:28px}.support-copy{gap:12px;display:grid}.support-actions-panel{background:#fffaf1bd;border:1px solid #1b2b4b1f;border-radius:18px;gap:12px;padding:20px;display:grid}.support-actions-panel h3{margin:0;font-size:1.45rem}.support-option-grid{gap:10px;display:grid}.support-option{border:1px solid var(--line);min-height:72px;color:var(--ai);font:inherit;text-align:left;background:#fffaf1b8;border-radius:14px;gap:4px;padding:12px 14px;text-decoration:none;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;display:grid}.support-option strong{color:var(--ai);text-wrap:balance;line-height:1.2}.support-option span{color:var(--muted);font-size:.9rem;line-height:1.45}a.support-option:hover,a.support-option:focus-visible,button.support-option:hover,button.support-option:focus-visible{background:#fffdf8;border-color:#b23a2f52;outline:none;transform:translateY(-1px);box-shadow:0 12px 28px #1b2b4b1f}.primary-support-option{background:#fffaf1c7;border-color:#1b2b4b29}.support-share-option{background:#ede8dead;width:100%}.home-footer{grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(140px,1fr));align-items:start;gap:22px;margin-top:24px;padding:28px;display:grid}.footer-brand,.footer-link-section{gap:10px;min-width:0;display:grid}.footer-logo{color:var(--ai);font-family:Inter,Noto Sans JP,sans-serif;font-size:1.15rem;font-weight:700;text-decoration:none}.footer-brand p,.footer-link-section a,.footer-copyright{color:var(--muted);font-size:.9rem;line-height:1.5}.footer-brand p{margin:0}.footer-link-section h2{color:var(--ai);margin:0;font-size:.95rem}.footer-link-section a{width:fit-content;color:var(--beni-dark);line-height:1.3;text-decoration:none}.footer-logo:hover,.footer-logo:focus-visible,.footer-link-section a:hover,.footer-link-section a:focus-visible{color:var(--torii);outline:none;text-decoration:underline}.footer-language{grid-column:1/-1;justify-self:start}.content-page{gap:24px;margin-top:24px;display:grid}.content-hero,.content-body{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fffaf1e0,#f5f0e8c7);border-radius:24px}.content-hero{padding:32px}.content-hero h1{color:var(--ai);margin:0;font-family:Inter,Noto Sans JP,sans-serif;font-size:clamp(2rem,4vw,3.3rem);line-height:1}.content-hero p:last-child{max-width:820px;color:var(--muted);margin-bottom:0}.content-body{gap:24px;padding:32px;display:grid}.content-section{max-width:900px}.content-section h2{color:var(--ai);margin:0 0 10px;font-size:1.3rem}.content-section p,.content-section li{color:var(--muted);line-height:1.7}.content-section p{margin:0 0 12px}.content-section a{color:var(--beni-dark);font-weight:700}.content-section ul{margin:10px 0 0;padding-left:22px}.content-link-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:12px;display:grid}.support-methods{gap:18px}.support-method-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.support-method-grid .share-button-wrap{width:100%}.support-method-card{width:100%;min-height:210px;color:var(--ink);font:inherit;text-align:left;background:linear-gradient(135deg,#fffaf1f0,#f7efe2c7);border:1px solid #1b2b4b24;border-radius:20px;align-content:start;gap:10px;padding:20px;text-decoration:none;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;display:grid;position:relative}.support-method-card:hover,.support-method-card:focus-visible{background:linear-gradient(135deg,#fffaf1,#fff6ebe6);border-color:#b23a2f52;outline:none;transform:translateY(-2px);box-shadow:0 16px 34px #1b2b4b21}.support-method-type{color:#173c65;background:#1f4c781f;border:1px solid #1f4c7847;border-radius:999px;width:fit-content;padding:6px 10px;font-size:.78rem;font-weight:850}.support-method-card strong{color:var(--ai);font-size:1.25rem;line-height:1.2}.support-method-card span:not(.support-method-type){color:var(--muted);line-height:1.55}.support-method-card em{background:var(--ai);color:#fffaf1;border-radius:999px;align-self:end;width:fit-content;margin-top:auto;padding:9px 12px;font-style:normal;font-weight:850;line-height:1.15}.support-method-card-kofi,.support-method-card-patreon{border-color:#b23a2f33}.support-method-card-kofi .support-method-type,.support-method-card-patreon .support-method-type{color:var(--torii-dark);background:#b23a2f1f;border-color:#b23a2f47}.content-home-button{justify-self:start}.mode-selector,.progress-dashboard,.practice-mode{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fffaf1e0,#f5f0e8c2);border-radius:24px}.mode-selector,.progress-dashboard{gap:18px;min-width:0;padding:24px;display:grid;overflow:hidden}.section-heading{gap:6px;margin-bottom:18px;display:grid}.section-heading h1,.section-heading h2,.section-heading p{margin:0}.section-heading h1,.section-heading h2,.user-progress-hero h1,.topic-title{color:var(--ai);font-family:Inter,Noto Sans JP,sans-serif;font-size:clamp(2rem,4vw,3.4rem);font-weight:700;line-height:1}.section-heading h1,.section-heading h2,.user-progress-hero h1,.topic-title,.home-hero .home-hero-tagline{letter-spacing:0}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.mode-card{border:1px solid var(--line);background:#fffaf1db;border-radius:18px;align-content:space-between;gap:16px;min-height:230px;padding:18px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.mode-card:hover,.mode-card:focus-within{border-color:#1b2b4b38;transform:translateY(-1px);box-shadow:0 14px 34px #1b2b4b17}.mode-card h3,.mode-card p{margin:0}.mode-card-heading{grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:12px;margin-bottom:10px;display:grid}.mode-card h3{color:var(--ai);font-family:Inter,Noto Sans JP,sans-serif}.mode-card-heading .mode-state{text-align:center;white-space:nowrap;justify-self:end;margin-top:1px}.mode-card p,.mode-card span{color:var(--muted);line-height:1.5}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;display:grid}.mode-completions{gap:8px;margin:16px 0;display:grid}.mode-completions span{border:1px solid var(--line);color:var(--muted);background:#fffaf1b8;border-radius:12px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.mode-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}.learning-profile-dashboard{align-content:start}.learning-profile-section{gap:12px;min-width:0;display:grid}.section-heading.compact{margin-bottom:4px}.learning-profile-summary,.recommendation-card{border:1px solid var(--line);background:#fffaf1c2;border-radius:18px;grid-template-columns:minmax(220px,.9fr) minmax(0,1.4fr);align-items:center;gap:18px;padding:18px;display:grid}.recommendation-card{grid-template-columns:minmax(0,1fr) auto;align-items:end}.recent-activity-list{gap:10px;display:grid}.recent-activity-item{border:1px solid var(--line);background:#fffaf1c7;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.recent-activity-item>div{gap:3px;min-width:0;display:grid}.recent-activity-item span,.recent-activity-item small{color:var(--muted)}.jlpt-progress-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.jlpt-progress-card{border:1px solid var(--line);background:#fffaf1ad;border-radius:14px;gap:6px;padding:14px;display:grid}.jlpt-progress-card.is-current{background:#b5341c14;border-color:#b5341c57}.jlpt-progress-card h4,.jlpt-progress-card p{margin:0}.jlpt-progress-meters,.progress-meter{gap:6px;display:grid}.progress-meter>div:first-child{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;font-weight:800;display:flex}.progress-meter strong{color:var(--ai)}.compact-progress{height:7px}.jlpt-progress-card .progress-meter:first-child .progress-fill{background:var(--ai)}.activity-heatmap{border:1px solid var(--line);background:#fffaf1b8;border-radius:14px;grid-template-columns:repeat(35,minmax(8px,1fr));gap:5px;padding:12px;display:grid}.activity-day{aspect-ratio:1;background:#1b2b4b1a;border-radius:4px}.activity-day.intensity-2{background:#b5341c9e}.achievement-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.achievement-badge.locked{opacity:.58;filter:grayscale(.8)}.mode-stat-card{border:1px solid var(--line);background:#fffaf1c7;border-radius:18px;gap:10px;min-width:0;padding:16px;display:grid}.mode-stat-card h3{margin:0;font-size:1rem}.mode-stat-card .mode-completions{margin:0}.mode-play-heading{margin-bottom:18px}.mode-play-heading h1,.mode-play-heading h2,.mode-play-heading p{margin:0}.mode-play-heading h1{color:var(--ai);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1}.practice-mode{--practice-card-min-height:clamp(220px, 36dvh, 340px);grid-template-rows:auto minmax(0,auto) auto;align-content:start;gap:clamp(12px,2vh,18px);min-width:0;padding:clamp(18px,3vh,24px);display:grid}.mode-status{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;font-weight:700;display:flex}.maze-status{justify-content:center}.maze-status span{border:1px solid var(--line);min-height:30px;color:var(--ai);background:#fffaf1c7;border-radius:999px;padding:6px 10px;font-size:.86rem}.maze-mode-switch,.maze-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.maze-mode-switch button{border:1px solid var(--line);min-height:34px;color:var(--ai);background:#fffaf1d1;border-radius:999px;padding:7px 12px;font-weight:800}.maze-mode-switch button.active{color:var(--torii-dark);background:#b5341c1f;border-color:#b5341c5c}.flashcard,.question-card,.maze-target{min-height:var(--practice-card-min-height);border:1px solid var(--line);text-align:center;background:linear-gradient(135deg,#fffaf1f0,#f7efe2c7);border-radius:20px;align-content:center;place-items:center;gap:12px;padding:clamp(20px,3.6vh,28px);display:grid}.flashcard h2,.question-card h2,.maze-target h2{max-width:100%;margin:0}.flashcard-audio-stack{justify-items:center;gap:10px;display:grid}.flashcard-audio-stack .kana-display{margin:0}.kana-display,.kana-gap{color:var(--torii-dark);font-family:Noto Sans JP,sans-serif;font-size:clamp(2.2rem,min(8vw,9vh),4.5rem)}.revealed-content{width:min(100%,520px);min-height:112px;color:var(--muted);gap:6px;display:grid}.flashcard-meaning{color:var(--muted);font-size:1.14rem;font-weight:400;line-height:1.45}.mode-actions,.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.answer-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.answer-option{border:1px solid var(--line);background:var(--cream);min-height:clamp(44px,7vh,52px);color:var(--ai);text-align:center;white-space:normal;overflow-wrap:break-word;text-wrap:balance;border-radius:16px;padding:clamp(12px,2vh,16px);font-weight:700;line-height:1.25}.answer-option.correct{color:#245c3d;background:#337d541f;border-color:#337d5459}.answer-option.incorrect{color:var(--torii-dark);background:#b23a2f1f;border-color:#b23a2f59}.quiz-skip-button{min-height:44px;color:var(--ai);cursor:pointer;background:#fffaf1b8;border:1px dashed #1b2b4b3d;border-radius:999px;justify-self:center;padding:10px 18px;font-weight:800}.quiz-skip-button:hover,.quiz-skip-button:focus-visible{color:var(--torii-dark);background:#8f2f2714;border-color:#8f2f2757}.cozy-mode{background:radial-gradient(circle at 100% 0,#b23a2f14,#0000 18rem),#fffaf1d6;grid-template-rows:auto auto auto minmax(0,auto) auto auto}.kana-maze-grid{touch-action:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(5px,1vh,8px);width:min(520px,100%,100dvh - 360px);margin:0 auto;display:grid}.maze-cell{aspect-ratio:1;border:1px solid var(--line);background:var(--cream);color:var(--ink);-webkit-user-select:none;user-select:none;border-radius:16px;font-family:Noto Sans JP,sans-serif;font-size:clamp(1rem,min(4vw,4vh),1.8rem);box-shadow:0 8px 20px #211a170f}.maze-cell.selected{color:var(--torii-dark);background:#b23a2f1f;border-color:#b23a2f61}.kana-hunt-mode{--kana-hunt-board-size:min(680px, 100%, calc(100dvh - 360px));background:radial-gradient(circle at 0 0,#1b2b4b12,#0000 18rem),#fffaf1c7;border-radius:22px;grid-template-rows:auto auto auto auto;align-content:start;gap:clamp(10px,1.8vh,18px)}.kana-hunt-status{justify-content:center}.kana-hunt-status span{border:1px solid var(--line);min-height:30px;color:var(--ai);background:#fffaf1c7;border-radius:999px;padding:6px 10px;font-size:.86rem}.kana-hunt-script-switch{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.kana-hunt-script-switch button{border:1px solid var(--line);min-height:34px;color:var(--ai);background:#fffaf1d1;border-radius:999px;padding:7px 12px;font-weight:800}.kana-hunt-script-switch button.active{color:var(--torii-dark);background:#b5341c1f;border-color:#b5341c5c}.kana-hunt-target{text-align:center;background:linear-gradient(135deg,#fffaf1fa,#ede8deb8);border:1px solid #1b2b4b24;border-radius:20px;place-items:center;gap:6px;padding:clamp(18px,3vh,26px);display:grid;position:relative}.kana-hunt-audio{z-index:2;position:absolute;top:14px;left:14px}.kana-hunt-audio .japanese-audio-control{justify-items:start}.kana-hunt-listen-button{background:#fffaf1e6;border-color:#8f2f2738;width:40px;height:40px;padding:0;box-shadow:0 8px 18px #211a1714}.kana-hunt-listen-button .listen-button-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.kana-hunt-audio .tts-error{text-align:left;width:max-content;max-width:180px;position:absolute;top:calc(100% + 6px);left:0}.kana-hunt-target span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:800}.kana-hunt-target h2{color:var(--torii-dark);margin:0;font-family:Noto Sans JP,sans-serif;font-size:clamp(3.25rem,11vh,7rem);font-weight:500;line-height:1}.kana-hunt-target h2.kana-hunt-target-romaji,.practice-primary-romaji{letter-spacing:.02em;font-family:Inter,Noto Sans JP,sans-serif}.kana-hunt-target h2.kana-hunt-target-romaji{text-transform:lowercase;font-size:clamp(2.6rem,9vh,5.4rem);font-weight:800}.kana-hunt-target p{color:var(--muted);margin:0}.kana-hunt-grid{grid-template-columns:repeat(var(--kana-hunt-grid-size), minmax(0, 1fr));width:max(280px, var(--kana-hunt-board-size));gap:clamp(6px,1vw,10px);max-width:100%;margin:0 auto;display:grid}.kana-hunt-cell{aspect-ratio:1;min-width:0;min-height:0;color:var(--ink);-webkit-user-select:none;user-select:none;background:#fffaf1f5;border:1px solid #1b2b4b24;border-radius:clamp(10px,1.5vw,16px);font-family:Noto Sans JP,sans-serif;font-size:clamp(1.35rem,4.5vw,2.4rem);font-weight:500;box-shadow:0 8px 18px #211a170d}.kana-hunt-mode .note{margin:0}.daily-word-mode{background:radial-gradient(circle at 100% 0,#b5341c14,#0000 18rem),#fffaf1cc;border-radius:22px;justify-items:stretch;gap:0;padding:clamp(10px,1.5vh,16px)}.daily-word-play-layout{grid-template-columns:minmax(250px,.95fr) minmax(280px,340px);align-items:start;gap:clamp(10px,1.8vw,18px);width:min(900px,100%);margin:0 auto;display:grid}.daily-word-game-column,.daily-word-keyboard-column{min-width:0}.daily-word-game-column{justify-items:center;gap:clamp(5px,.85vh,9px);display:grid}.daily-word-keyboard-column{top:calc(var(--header-height,96px) + 6px);align-self:start;position:sticky}.daily-word-card{text-align:center;background:#fffaf1eb;border:1px solid #1b2b4b24;border-radius:16px;gap:2px;width:min(420px,100%);padding:clamp(6px,.9vh,9px) clamp(10px,1.6vw,14px);display:grid}.daily-word-card h2,.daily-word-card p{margin:0}.daily-word-card h2{font-size:clamp(.9rem,1.7vw,1.15rem)}.daily-word-card p{color:var(--muted);font-size:.76rem;line-height:1.18}.daily-word-date{border:1px solid var(--line);color:var(--muted);border-radius:999px;justify-self:center;padding:1px 7px;font-size:.68rem;font-weight:800}.daily-word-hint-card{background:#fffaf1bd;border:1px solid #1b2b4b1f;border-radius:16px;gap:5px;width:min(460px,100%);padding:8px 12px;display:grid}.daily-word-hint-card p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.28}.daily-word-hint-tags{flex-wrap:wrap;gap:5px;display:flex}.daily-word-hint-tags span{border:1px solid var(--line);color:var(--ai);background:#fffaf1e6;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:800}.daily-word-board{gap:3px;width:clamp(118px,min(32vw,23dvh),158px);max-width:100%;display:grid}.daily-word-row{grid-template-columns:repeat(var(--daily-word-length), minmax(0, 1fr));gap:3px;display:grid}.daily-word-cell{aspect-ratio:1;color:var(--ink);background:#fffaf1f5;border:1px solid #1b2b4b29;border-radius:6px;place-items:center;font-family:Noto Sans JP,sans-serif;font-size:clamp(.72rem,min(3.2vw,2.1vh),.95rem);font-weight:700;display:grid;box-shadow:0 3px 8px #211a170a}.daily-word-cell.correct{color:#1f5638;background:#337d5438;border-color:#337d546b}.daily-word-cell.present{color:#745015;background:#b57b2533;border-color:#b57b256b}.daily-word-cell.incorrect{color:var(--muted);background:#1b2b4b1f;border-color:#1b2b4b2e}.daily-word-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:5px;width:min(420px,100%);display:grid}.daily-word-form .control-group{gap:3px;margin:0}.daily-word-form .control-group span{font-size:.76rem}.daily-word-form input{border:1px solid var(--line);min-height:32px;color:var(--ink);font:inherit;background:#fffaf1f0;border-radius:999px;padding:5px 10px;font-family:Noto Sans JP,Inter,sans-serif}.daily-word-form .primary-button{min-height:32px;padding:5px 12px}.kana-keyboard{justify-self:center;gap:6px;width:min(280px,100%);display:grid}.kana-keyboard-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.script-toggle{border:1px solid var(--line);background:#fffaf1db;border-radius:999px;gap:3px;padding:2px;display:inline-flex}.script-toggle button,.kana-keyboard .compact{min-height:26px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:800}.script-toggle button{color:var(--muted);background:0 0}.script-toggle button.active{color:var(--torii-dark);background:#b5341c1a;border-color:#b5341c3d}.kana-keyboard-panel{overscroll-behavior:contain;background:linear-gradient(#fffaf1f0,#f7efe2e6);border:1px solid #1b2b4b1f;border-radius:20px;gap:6px;max-height:min(44dvh,340px);padding:7px;display:grid;overflow-y:auto;box-shadow:0 16px 32px #211a1714}.kana-key-grid{gap:3px;display:grid}.kana-key-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;display:grid}.kana-key-row:has(.kana-key:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr));padding-inline:16%}.kana-key-row:has(.kana-key:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr));padding-inline:8%}.kana-key-row:has(.kana-key:first-child:last-child){grid-template-columns:minmax(0,1fr);padding-inline:36%}.kana-key{min-width:0;min-height:clamp(18px,3.7vh,24px);color:var(--ink);cursor:pointer;background:linear-gradient(#ffffffd1,#fffaf1f0);border:1px solid #1b2b4b29;border-radius:7px;place-items:center;font-family:Noto Sans JP,sans-serif;font-size:clamp(.62rem,1.15vw,.76rem);font-weight:500;transition:transform .12s,box-shadow .12s,border-color .12s,background .12s;display:grid;box-shadow:0 1px #1b2b4b24,0 3px 7px #211a170d}.kana-key:hover,.kana-key:focus-visible{background:#b5341c14;border-color:#b5341c57}.kana-key:active{transform:translateY(2px);box-shadow:0 0 #1b2b4b24,0 3px 8px #211a170f}.kana-keyboard-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.kana-keyboard-actions .primary-button,.kana-keyboard-actions .secondary-button,.kana-keyboard-actions .ghost-button{min-width:0;min-height:26px;padding:4px 7px;font-size:.68rem}.daily-word-complete{align-content:start;gap:clamp(6px,1vh,10px);max-height:min(100dvh,860px);padding:clamp(8px,1.2vh,14px);position:relative;overflow:hidden}.daily-word-result-heading{text-align:center;gap:3px;width:min(560px,100%);display:grid}.daily-word-result-heading h2,.daily-word-result-heading p{margin:0}.daily-word-result-heading h2{color:var(--ai);font-size:clamp(1.1rem,min(3vw,3.4vh),1.8rem);line-height:1.05}.daily-word-result-heading p{font-size:.86rem;line-height:1.25}.daily-word-reveal-card{text-align:center;background:linear-gradient(135deg,#fffaf1fa,#f7efe2d6);border:1px solid #b5341c47;border-radius:18px;justify-items:center;gap:4px;width:min(420px,100%);padding:clamp(10px,1.8vh,16px) clamp(14px,2.4vw,20px);display:grid;box-shadow:0 10px 24px #211a1717}.daily-word-kana{color:var(--torii-dark);font-family:Noto Sans JP,sans-serif;font-size:clamp(2.1rem,min(12vw,9vh),4rem);font-weight:500;line-height:1}.daily-word-romaji{color:var(--muted);font-size:.92rem;font-weight:800}.daily-word-reveal-card strong{color:var(--ai);font-size:clamp(1rem,min(2.4vw,2.4vh),1.35rem);font-weight:800}.daily-word-tags{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.daily-word-tags span,.daily-word-result-stats div,.daily-word-countdown{border:1px solid var(--line);background:#fffaf1d1}.daily-word-tags span{color:var(--ai);border-radius:999px;padding:3px 8px;font-size:.74rem;font-weight:800}.daily-word-result-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(640px,100%);display:grid}.daily-word-result-stats div{text-align:center;border-radius:12px;gap:2px;padding:7px 9px;display:grid}.daily-word-result-stats span{color:var(--muted);font-size:.7rem;font-weight:800}.daily-word-result-stats strong{color:var(--ai);font-size:.92rem}.daily-word-learning-card{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(720px,100%);display:grid}.daily-word-learning-card>div{border:1px solid var(--line);background:#fffaf1db;border-radius:14px;padding:10px 12px}.daily-word-learning-card p{margin:0;font-size:.82rem;line-height:1.25}.daily-word-example-jp{color:var(--ink);margin-top:4px;font-family:Noto Sans JP,sans-serif;font-size:clamp(1rem,min(3vw,3vh),1.18rem)}.daily-word-example-romaji{color:var(--muted);font-size:.78rem;font-weight:700}.daily-word-countdown{text-align:center;border-radius:14px;justify-items:center;gap:1px;width:min(260px,100%);padding:7px 10px;display:grid}.daily-word-countdown span{font-size:1rem}.daily-word-countdown p{color:var(--muted);margin:0;font-size:.72rem;font-weight:800}.daily-word-countdown strong{color:var(--torii-dark);font-size:.95rem}.daily-word-result-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;width:min(760px,100%);display:grid}.daily-word-result-actions .primary-button,.daily-word-result-actions .secondary-button,.daily-word-result-actions .ghost-button{min-width:0;min-height:34px;padding:6px 10px;font-size:.82rem}.daily-word-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.daily-word-confetti span{background:var(--beni);opacity:.45;border-radius:999px;width:8px;height:18px;animation:1.2s ease-out forwards daily-word-confetti-fall;position:absolute;top:10%}.daily-word-confetti span:first-child{left:18%}.daily-word-confetti span:nth-child(2){background:var(--ai);animation-delay:.12s;left:38%}.daily-word-confetti span:nth-child(3){background:#b57b25;animation-delay:80ms;left:62%}.daily-word-confetti span:nth-child(4){animation-delay:.18s;left:82%}@keyframes daily-word-confetti-fall{0%{transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(190px)rotate(180deg)}}.kana-hunt-cell:hover,.kana-hunt-cell:focus-visible{background:#b5341c14;border-color:#b5341c57}.kana-hunt-cell.correct{color:#245c3d;background:#337d5424;border-color:#337d5473}.kana-hunt-cell.incorrect{color:var(--torii-dark);background:#b23a2f1f;border-color:#b23a2f6b}.soon-mode{text-align:center;align-content:center;min-height:320px}.about-hero,.about-content{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1d6;border-radius:24px}.about-hero{padding:32px}.about-hero h1,.about-hero h2{margin:0;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.about-hero p:last-child{max-width:780px;color:var(--muted);margin-bottom:0}.about-content{gap:24px;padding:32px;display:grid}.about-content section{max-width:880px}.about-content h3{margin:0 0 10px;font-size:1.35rem}.about-content p{color:var(--muted);margin:0 0 12px;line-height:1.7}.about-content a{color:var(--torii-dark);font-weight:700}.about-brand-highlight{color:var(--torii-dark);text-shadow:0 1px #fffaf1b8;font-weight:800}.about-content ul{color:var(--muted);margin:10px 0 0;padding-left:22px;line-height:1.7}.about-content blockquote{border-left:4px solid var(--torii);color:var(--ink);background:#b23a2f14;border-radius:0 14px 14px 0;margin:16px 0;padding:14px 18px;font-weight:700}.about-signoff{font-family:Noto Sans JP,sans-serif;font-size:1.25rem;font-weight:700;color:var(--ink)!important}.about-signoff span{color:var(--muted);font-family:Inter,sans-serif;font-size:1rem;font-weight:400}.about-support-callout{background:linear-gradient(135deg, #b23a2f1a, #fffaf1e6), var(--paper);border:1px solid #b23a2f33;border-radius:20px;justify-content:space-between;align-items:center;gap:18px;max-width:880px;padding:22px;display:flex}.about-support-callout p{margin-bottom:0}.about-content a.about-support-button{border-color:var(--ai);background:var(--ai);color:#fff;text-align:center;flex:none;box-shadow:0 12px 28px #1b2b4b2e}.about-content a.about-support-button:visited{color:#fff}.about-content a.about-support-button:hover,.about-content a.about-support-button:focus-visible{color:#fff;background:#14213c;border-color:#14213c}.about-back-button{width:fit-content}.topic-seo-page{gap:24px;margin-top:28px;display:grid}.topic-hero{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1c7;border-radius:24px;gap:16px;padding:32px;display:grid}.topic-hero p{max-width:820px;color:var(--muted);margin:0;line-height:1.7}.topic-title{max-width:900px;color:var(--ai);font-family:Inter,Noto Sans JP,sans-serif;font-size:clamp(2.1rem,5vw,4rem)}.topic-language-links{flex-wrap:wrap;gap:10px;display:flex}.topic-language-links a{border:1px solid var(--line);background:var(--cream);color:var(--torii);border-radius:999px;padding:9px 13px;font-weight:700;text-decoration:none}.topic-word-table-wrap{border:1px solid var(--line);background:#fffaf1db;border-radius:20px;overflow-x:auto}.topic-word-table{border-collapse:collapse;width:100%;min-width:720px}.topic-word-table th,.topic-word-table td{border-bottom:1px solid var(--line);text-align:left;padding:14px 16px}.topic-word-table th{color:var(--torii);text-transform:uppercase;font-size:.8rem}.topic-word-table td[lang=ja]{font-family:Noto Sans JP,sans-serif;font-size:1.15rem;font-weight:700}.layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:24px;margin-top:24px;display:grid}.control-panel,.game-area,.progress-card,.clue-card,.daily-banner{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1d6;border-radius:24px}.game-area{position:relative}.control-panel{min-width:0;max-width:100%;height:fit-content;padding:24px;position:sticky;top:24px}.practice-progress-panel{min-width:0;overflow:hidden}.practice-progress-panel .metric-grid,.practice-progress-panel .achievement-panel,.practice-progress-panel .achievement-grid{min-width:0}.practice-progress-panel .achievement-grid{max-height:340px}.mode-actions>.primary-button:only-child,.mode-actions>.secondary-button:only-child{grid-column:1/-1}.control-group{gap:8px;margin:20px 0;display:grid}.control-group span{color:var(--muted);font-weight:700}select{border:1px solid var(--line);background:var(--cream);width:100%;color:var(--ink);border-radius:14px;padding:12px;font-family:inherit}select option{color:var(--ink);font-family:inherit}.custom-dropdown,.difficulty-dropdown{position:relative}.custom-dropdown-trigger,.difficulty-dropdown-trigger{border:1px solid var(--line);background:var(--cream);width:100%;min-height:46px;color:var(--ink);font:inherit;text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px;transition:border-color .16s,box-shadow .16s,background .16s;display:flex;box-shadow:0 8px 18px #1a14100f}.custom-dropdown-trigger:hover,.custom-dropdown-trigger:focus-visible,.difficulty-dropdown-trigger:hover,.difficulty-dropdown-trigger:focus-visible{background:#fffdf8;border-color:#b23a2f57;outline:none;box-shadow:0 10px 24px #5c3a2c1f}.custom-dropdown-trigger:disabled,.difficulty-dropdown-trigger:disabled{opacity:.62;cursor:not-allowed}.custom-dropdown-chevron,.difficulty-dropdown-chevron{color:var(--muted);font-size:.95rem;line-height:1}.custom-dropdown-menu,.difficulty-dropdown-menu{z-index:30;background:var(--cream);border:1px solid #1a141029;border-radius:16px;gap:4px;max-height:min(320px,48vh);padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 42px #1a14102e}.custom-dropdown-option,.difficulty-dropdown-option{width:100%;color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;border-radius:12px;padding:10px 12px}.custom-dropdown-option:hover,.custom-dropdown-option:focus-visible,.custom-dropdown-option.is-selected,.difficulty-dropdown-option:hover,.difficulty-dropdown-option:focus-visible,.difficulty-dropdown-option.is-selected{color:var(--beni-dark);background:#b23a2f1a;outline:none}.help-toggles{gap:10px;margin:20px 0;display:grid}.help-toggles label{align-items:center;gap:10px;display:flex}.note{color:var(--muted);font-size:.92rem;line-height:1.5}.game-area{min-width:0;padding:24px}.advanced-content-notice{color:var(--ink);background:linear-gradient(135deg,#b23a2f14,#ffefd1bd);border:1px solid #b23a2f47;border-radius:16px;gap:4px;padding:12px 14px;display:grid}.advanced-content-notice strong{color:var(--torii-dark);font-size:.96rem}.advanced-content-notice span{color:var(--muted);font-size:.9rem;line-height:1.45}.game-controls{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin-bottom:18px;display:grid}.game-settings{gap:12px;display:grid}.game-settings:first-child{grid-template-columns:repeat(2,minmax(0,1fr))}.game-settings .button-row{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:28px;display:grid}.game-settings .button-row button{width:100%;min-width:0;min-height:var(--button-height)}.game-settings .control-group,.game-settings .help-toggles{margin:0}.word-search-game-area{padding:clamp(14px,2vw,20px)}.word-search-game-area .mode-play-heading{margin-bottom:10px}.word-search-game-area .mode-play-heading h1,.word-search-game-area .mode-play-heading h2{font-size:clamp(1.05rem,1.8vw,1.45rem);line-height:1.2}.word-search-game-area .mode-play-heading .eyebrow{margin-bottom:4px}.word-search-game-area .game-controls{gap:10px;margin-bottom:10px}.word-search-game-area .game-settings{gap:8px}.word-search-game-area .game-settings .button-row{padding-top:22px}.control-panel .clue-section{margin-top:18px}.control-panel .clue-list{grid-template-columns:1fr}.control-panel .help-toggles{flex-wrap:wrap;gap:10px 14px;margin:0;display:flex}.control-panel .help-toggles label{white-space:normal;min-height:44px}.mobile-game-header,.mobile-word-sheet,.mobile-orientation-hint{display:none}@media (width<=767px){.word-search-active-layout{gap:10px;margin-top:12px}.word-search-active-layout .control-panel{display:none}.word-search-game-area.has-active-word-search{border-radius:18px;gap:8px;padding:10px;display:grid}.word-search-game-area.has-active-word-search .mode-play-heading{display:none}.word-search-game-area.has-active-word-search .game-controls{background:#fffaf1b8;border:1px solid #1b2b4b1a;border-radius:16px;grid-template-columns:1fr;gap:8px;margin:0;padding:8px;display:grid;box-shadow:0 8px 18px #1a14100f}.word-search-game-area.has-active-word-search .game-controls .game-settings{gap:8px}.word-search-game-area.has-active-word-search .game-controls .game-settings:first-child{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.word-search-game-area.has-active-word-search .game-controls .control-group>span{font-size:.68rem;line-height:1.1}.word-search-game-area.has-active-word-search .custom-dropdown-trigger,.word-search-game-area.has-active-word-search .difficulty-dropdown-trigger{min-height:38px;box-shadow:none;border-radius:12px;padding:8px 10px;font-size:.76rem;line-height:1.15}.word-search-game-area.has-active-word-search .custom-dropdown-trigger>span:first-child,.word-search-game-area.has-active-word-search .difficulty-dropdown-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.word-search-game-area.has-active-word-search .custom-dropdown-menu,.word-search-game-area.has-active-word-search .difficulty-dropdown-menu{z-index:44;max-height:min(260px,46dvh)}.word-search-game-area.has-active-word-search .game-settings .button-row{gap:8px;padding-top:0}.word-search-game-area.has-active-word-search .game-settings .button-row button{border-radius:12px;min-height:38px;padding:8px 10px;font-size:.78rem;line-height:1.14}.word-search-game-area.has-active-word-search .daily-banner{border-radius:14px;padding:8px 10px;font-size:.78rem}.mobile-game-header{display:none}.mobile-game-back,.mobile-game-menu summary{width:32px;height:32px;color:var(--torii-dark);cursor:pointer;font:inherit;background:#fffaf1c2;border:1px solid #b23a2f2e;border-radius:10px;place-items:center;font-weight:900;display:inline-grid}.mobile-game-menu summary::-webkit-details-marker{display:none}.mobile-game-title{gap:1px;min-width:0;display:grid}.mobile-game-title strong,.mobile-game-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-game-title strong{color:var(--ai);font-size:.78rem;line-height:1.12}.mobile-game-title span{color:var(--muted);font-size:.68rem;font-weight:700}.mobile-game-progress{min-width:40px;color:var(--torii-dark);text-align:center;background:#b23a2f1a;border-radius:999px;padding:6px 8px;font-size:.82rem;font-weight:900}.mobile-game-menu{position:relative}.mobile-game-menu-panel{z-index:40;background:var(--cream);border:1px solid #1a141024;border-radius:16px;gap:6px;width:min(220px,100vw - 28px);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 40px #1a14102e}.mobile-game-menu-panel button{min-height:40px;color:var(--ink);font:inherit;text-align:left;background:#b23a2f14;border:0;border-radius:12px;padding:9px 10px;font-size:.88rem;font-weight:800}.mobile-game-back:focus-visible,.mobile-game-menu summary:focus-visible,.mobile-game-menu-panel button:focus-visible,.mobile-word-row:focus-within{outline-offset:2px;outline:3px solid #b23a2f38}.mobile-orientation-hint{color:var(--muted);text-align:center;background:#1b2b4b0f;border:1px solid #1b2b4b1f;border-radius:14px;margin:0;padding:8px 10px;font-size:.78rem;font-weight:800;display:block}.word-search-game-area.has-active-word-search .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100svh - 172px));padding-bottom:2px}@supports (height:100dvh){.word-search-game-area.has-active-word-search .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 172px))}}.word-search-game-area.has-active-word-search .puzzle-grid{--puzzle-grid-gap:clamp(1px, .7vw, 3px);width:min(100%, var(--puzzle-max-size));max-height:var(--puzzle-max-size)}.word-search-game-area.has-active-word-search .kana-cell{font-size:clamp(.5rem, calc(62cqw / var(--puzzle-grid-size,12)), 1.08rem);border-radius:clamp(4px,1.6vw,8px)}.mobile-word-sheet{z-index:1;background:#fffaf1e6;border:1px solid #1b2b4b1a;border-radius:16px;gap:8px;max-height:min(38dvh,320px);padding:8px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 20px #1a141012}.mobile-word-sheet-head{min-height:34px;color:var(--ink);background:#b23a2f12;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 10px;font-size:.84rem;font-weight:900;display:grid}.mobile-word-sheet-head span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-word-sheet-list{overscroll-behavior:contain;gap:8px;padding:1px 2px 1px 0;display:grid;overflow-y:auto}.mobile-word-row{background:#fffdf8b8;border:1px solid #1b2b4b14;border-radius:12px;align-items:flex-start;gap:8px;min-height:58px;padding:9px 10px;display:flex;overflow:hidden}.mobile-word-copy{gap:3px;width:100%;min-width:0;display:grid}.mobile-word-row strong{color:var(--ink);font-family:Noto Sans JP,sans-serif;font-size:.96rem;font-weight:650;line-height:1.2;display:block}.mobile-word-row small{flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0;margin-top:0;line-height:1.2;display:flex}.mobile-word-romaji{color:#211a1794;letter-spacing:.01em;font-size:.7rem;font-weight:500}.mobile-word-meaning{color:#211a17c7;font-size:.78rem;font-weight:400}.mobile-word-status{width:16px;color:var(--torii-dark);text-align:center;flex:0 0 16px;font-weight:900;line-height:1.15}.mobile-word-row.found{opacity:.68;background:#211a1714}.mobile-word-row.found strong{color:#211a179e}.word-search-game-area.has-active-word-search .word-found-feedback{margin-top:0}.word-search-game-area.has-active-word-search .word-search-below-fold{margin-top:16px}}@media (width<=900px) and (height<=500px) and (orientation:landscape){.word-search-game-area.has-active-word-search{grid-template-columns:minmax(0,1fr) minmax(180px,.42fr);align-items:start}.word-search-game-area.has-active-word-search .daily-banner,.word-search-game-area.has-active-word-search .mobile-orientation-hint,.word-search-game-area.has-active-word-search .word-found-feedback,.word-search-game-area.has-active-word-search .level-complete-overlay{grid-column:1/-1}.word-search-game-area.has-active-word-search .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 88px))}.word-search-game-area.has-active-word-search .mobile-word-sheet{max-height:calc(100dvh - 96px);position:sticky;top:78px;bottom:auto}}.level-complete-overlay{z-index:50;overscroll-behavior:contain;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a14108f;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.level-complete{background:var(--cream);width:min(520px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow);border:1px solid #b5341c47;border-radius:20px;gap:18px;padding:28px;display:grid;overflow-y:auto}@supports (height:100dvh){.level-complete{max-height:calc(100dvh - 40px)}}.level-complete h2,.level-complete p{margin:0}.level-complete h2{color:var(--ai);margin-bottom:8px;font-family:Inter,Noto Sans JP,sans-serif}.level-complete-actions{gap:12px;display:grid}.level-complete-main-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.level-complete-main-actions .primary-button,.level-complete-main-actions .secondary-button{width:100%;min-width:0;height:100%}.level-complete-main-actions.single-action{grid-template-columns:1fr}.word-found-feedback{width:min(100%,620px);color:var(--ink);background:linear-gradient(135deg,#fffaf1f5,#ffefd1e6);border:1px solid #b23a2f33;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;margin:12px auto 0;padding:14px 16px;animation:.24s ease-out wordFoundFeedbackIn;display:grid;box-shadow:0 16px 36px #4932261f}.word-found-feedback-label{color:var(--torii);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:.76rem;font-weight:800;display:block}.word-found-feedback strong{color:var(--ai);font-family:Noto Sans JP,sans-serif;font-size:clamp(1.55rem,3.6vw,2.3rem);line-height:1}.word-found-feedback-japanese{color:var(--torii-dark);font-family:Noto Sans JP,sans-serif;font-size:1.15rem;font-weight:700}.word-found-feedback-details{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 12px;font-size:.92rem;display:flex}.word-found-feedback-details span:first-child{color:var(--ink)}.word-found-feedback-details small{color:var(--torii);font-weight:750}@keyframes wordFoundFeedbackIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.donation-popup-overlay{z-index:70;overscroll-behavior:contain;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1a14106b;place-items:center;padding:18px;animation:.18s ease-out donationFadeIn;display:grid;position:fixed;inset:0;overflow-y:auto}.donation-popup{background:radial-gradient(circle at top left, #b5341c14, transparent 34%), var(--cream);border:1px solid #b5341c3d;border-radius:20px;gap:16px;width:min(520px,100%);max-height:calc(100vh - 36px);padding:28px;display:grid;position:relative;overflow-y:auto;box-shadow:0 22px 70px #221b1642}@supports (height:100dvh){.donation-popup{max-height:calc(100dvh - 36px)}}.donation-popup h2,.donation-popup p{margin:0}.donation-popup h2{color:var(--ai);font-family:Inter,Noto Sans JP,sans-serif;font-size:clamp(1.45rem,4vw,2rem);line-height:1.12}.donation-popup-copy{color:var(--ink);gap:10px;line-height:1.65;display:grid}.donation-popup-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.donation-popup-actions .primary-button,.donation-popup-actions .secondary-button{text-align:center;min-width:0}.donation-popup-close{width:38px;height:38px;color:var(--ink-muted);background:#fffcf6e0;border:1px solid #2a344124;border-radius:999px;place-items:center;font-size:1.35rem;line-height:1;display:inline-grid;position:absolute;top:14px;right:14px}.donation-popup-close:hover,.donation-popup-close:focus-visible{color:var(--beni);border-color:#b5341c57;box-shadow:0 8px 18px #b5341c24}@keyframes donationFadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme:dark){.donation-popup-overlay{background:#080c12b8}.donation-popup{color:#f6efe5;background:radial-gradient(circle at 0 0,#e15b3b29,#0000 34%),#161a20;border-color:#ecbca438;box-shadow:0 24px 80px #0000006b}.donation-popup h2{color:#f6efe5}.donation-popup-copy{color:#e8dccd}.donation-popup-close{color:#e8dccd;background:#f6efe514;border-color:#f6efe524}}.share-button-wrap{gap:8px;display:inline-grid;position:relative}.share-button-wrap-compact{width:100%}.share-button-wrap-compact .share-button{width:fit-content;padding:9px 13px;font-size:.88rem}.share-button-wrap-card{width:100%;display:grid}.share-button-wrap-card .share-menu{width:100%;margin-top:8px;position:static}.share-menu{z-index:4;border:1px solid var(--line);background:var(--cream);width:min(320px,100vw - 32px);max-height:min(70vh,520px);box-shadow:var(--shadow);border-radius:16px;gap:6px;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.share-menu-heading{justify-content:space-between;align-items:center;gap:10px;padding:2px 2px 6px;display:flex}.share-menu-heading strong{color:var(--ai);font-size:.92rem}.level-complete .share-button-wrap{width:100%}.level-complete .share-menu{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));width:100%;margin-top:8px;position:static}.daily-word-share-menu{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));width:min(760px,100%);max-height:min(42vh,360px);margin-top:-2px;position:static}.daily-word-share-menu .share-menu-heading{grid-column:1/-1}.daily-word-share-menu a,.daily-word-share-menu button{min-height:34px;padding:7px 10px;font-size:.78rem}@media (width<=899px){.daily-word-play-layout{grid-template-columns:1fr;width:min(680px,100%)}.daily-word-keyboard-column{position:static}.kana-keyboard-panel{max-height:min(48dvh,430px)}}@media (width>=760px) and (width<=899px) and (orientation:landscape){.daily-word-play-layout{grid-template-columns:minmax(250px,.9fr) minmax(300px,390px);gap:12px;width:min(920px,100%)}.daily-word-keyboard-column{position:sticky;top:8px}.kana-keyboard-panel{max-height:min(68dvh,420px)}}@media (width<=560px){.level-complete-main-actions,.daily-word-result-actions,.daily-word-learning-card{grid-template-columns:1fr}.daily-word-result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-word-form{grid-template-columns:1fr}.kana-keyboard-toolbar{justify-content:center}.kana-keyboard{gap:7px;width:100%}.script-toggle{width:100%}.script-toggle button{flex:1;min-height:34px;font-size:.78rem}.kana-keyboard-actions{grid-template-columns:1fr}.kana-key-row{gap:4px}:is(.kana-key-row:has(.kana-key:nth-child(3):last-child),.kana-key-row:has(.kana-key:nth-child(4):last-child),.kana-key-row:has(.kana-key:first-child:last-child)){padding-inline:0}.kana-key{border-radius:11px;min-height:40px;font-size:1rem}.kana-keyboard-actions .primary-button,.kana-keyboard-actions .secondary-button,.kana-keyboard-actions .ghost-button{min-height:40px;font-size:.82rem}}@media (height<=720px){.daily-word-mode{padding:7px}.daily-word-play-layout{gap:8px}.daily-word-card{padding-block:5px}.daily-word-board{width:clamp(108px,min(28vw,20dvh),140px)}.daily-word-form input,.daily-word-form .primary-button{min-height:28px}.daily-word-complete{gap:5px;padding:8px}.daily-word-learning-card{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-word-result-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-word-result-actions .primary-button,.daily-word-result-actions .secondary-button,.daily-word-result-actions .ghost-button{min-height:30px;padding:5px 8px;font-size:.74rem}.daily-word-hint-card{padding:6px 9px}.daily-word-hint-card p:not(.eyebrow){display:none}.kana-keyboard-panel{max-height:min(30dvh,230px);overflow-y:auto}.kana-key-grid,.kana-key-row{gap:3px}.kana-key{border-radius:7px;min-height:24px;font-size:.7rem}.kana-keyboard-actions .primary-button,.kana-keyboard-actions .secondary-button,.kana-keyboard-actions .ghost-button{min-height:28px;padding:4px 7px;font-size:.7rem}}@media (width<=560px) and (height>=721px){.kana-key{min-height:40px;font-size:1rem}}@media (width<=420px) and (height<=760px){.daily-word-result-heading p:not(.eyebrow){display:none}.daily-word-reveal-card{width:min(320px,100%)}.daily-word-kana{font-size:clamp(1.9rem,10vw,3rem)}.daily-word-learning-card{grid-template-columns:1fr}.daily-word-result-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.level-complete .share-menu-heading,.share-button-wrap-card .share-menu-heading{grid-column:1/-1}.share-button-wrap-compact .share-menu{left:0;right:auto}.share-menu a,.share-menu button{min-height:42px;color:var(--ai);font:inherit;text-align:left;white-space:normal;text-wrap:balance;background:#fffaf1e0;border:0;border-radius:12px;padding:10px 12px;font-weight:700;text-decoration:none}.share-menu a:hover,.share-menu a:focus-visible,.share-menu button:hover,.share-menu button:focus-visible{color:var(--beni-dark);background:#b5341c1a;outline:none}.share-menu small{color:var(--muted);overflow-wrap:anywhere;grid-column:1/-1;line-height:1.4}.daily-banner{color:#fff;background:#1f1a17;justify-content:space-between;align-items:center;margin-bottom:18px;padding:16px 18px;display:flex}.daily-banner-flowers{color:currentColor;white-space:nowrap;margin-left:8px;font-size:.9em;display:inline-block}.daily-page{gap:18px;display:grid}.daily-game-anchor{scroll-margin-top:16px}.daily-date-status,.daily-streak-summary,.daily-calendar-heading,.daily-calendar-nav,.daily-calendar-legend{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.daily-date-status{justify-content:space-between}.daily-streak-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));width:100%;display:grid}.daily-calendar-page .daily-card{grid-template-columns:minmax(0,1fr);align-items:stretch}.daily-calendar-page .daily-streak-summary{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;max-width:none}.daily-calendar-page .daily-streak-summary .metric-pill{text-align:left;align-content:center;min-width:0;padding:16px}.daily-calendar-page .daily-streak-summary .metric-pill span{white-space:normal;line-height:1.25}.daily-calendar-page .daily-streak-summary .metric-pill strong{margin-top:2px;font-size:1.45rem}.daily-unavailable{gap:12px;display:grid}.daily-calendar{border:1px solid var(--line);background:#fffaf194;border-radius:18px;gap:12px;margin-top:4px;padding:14px;display:grid}.daily-calendar-heading{justify-content:space-between}.daily-calendar-heading h3{text-transform:capitalize;margin:0}.daily-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.daily-calendar-day{border:1px solid var(--line);min-height:58px;color:var(--ink);font:inherit;text-align:left;background:#fffaf1d1;border-radius:10px;gap:5px;padding:7px;display:grid}.daily-calendar-day-heading{justify-content:space-between;align-items:baseline;gap:4px;min-width:0;display:flex}.daily-difficulty-flowers{color:var(--beni-dark);white-space:nowrap;font-size:.72rem;line-height:1}button.daily-calendar-day:hover,button.daily-calendar-day:focus-visible{border-color:#b23a2f5c;outline:none;box-shadow:0 10px 24px #5c3a2c1f}.daily-calendar-day.completed{background:#4485621f}.daily-calendar-day.pending.today,.daily-calendar-day.selected{background:#b23a2f1a;border-color:#b23a2f70}.daily-calendar-day.future{opacity:.52;cursor:not-allowed}.daily-status-badge{border:1px solid var(--line);width:fit-content;color:var(--muted);border-radius:999px;padding:3px 6px;font-size:.68rem;font-weight:700}.daily-status-badge.completed{color:#2f6f4e;background:#4485621f;border-color:#44856252}.daily-status-badge.pending{color:var(--torii-dark);background:#b23a2f14;border-color:#b23a2f47}.daily-status-badge.future{background:#211a170f}.progress-card{gap:12px;padding:18px;display:grid}.progress-heading,.achievement-heading{justify-content:space-between;align-items:center;display:flex}.progress-card span,.progress-card small{color:var(--muted)}.progress-heading strong{font-size:1.35rem}.progress-details,.achievement-summary{gap:6px;display:grid}.progress-track{background:var(--paper-dark);border-radius:999px;height:12px;overflow:hidden}.progress-fill{background:var(--torii);border-radius:999px;height:100%;transition:width .3s}.gamification-panel{gap:14px;margin-top:18px;display:grid}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metric-pill{border:1px solid var(--line);background:#fffaf1b8;border-radius:14px;gap:4px;padding:12px;display:grid}.metric-pill span{color:var(--muted);font-size:.78rem;font-weight:700}.metric-pill strong{color:var(--ink);font-size:1rem}.achievement-panel{gap:10px;display:grid}.achievement-list{flex-wrap:wrap;gap:6px;display:flex}.achievement-grid{gap:8px;max-height:280px;padding-right:4px;display:grid;overflow:auto}.achievement-card{border:1px solid var(--line);color:var(--muted);background:#211a170f;border-radius:12px;gap:3px;padding:10px;display:grid}.achievement-card.unlocked{color:var(--ink);background:#b23a2f1a;border-color:#b23a2f47}.achievement-card span{color:inherit;font-size:.78rem;line-height:1.35}.achievement-badge{width:fit-content;color:var(--torii-dark);background:#b23a2f1a;border:1px solid #b23a2f47;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.completion-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.completion-stats div,.xp-breakdown{border:1px solid var(--line);background:#fffaf1b8;border-radius:14px;gap:4px;padding:12px;display:grid}.completion-stats span,.xp-breakdown span{color:var(--muted);font-size:.84rem}.completion-stats strong{font-size:1.2rem}.modal-achievements{gap:8px;display:grid}.puzzle-wrapper{--puzzle-max-size:min(100%, calc(100vh - 330px));touch-action:none;padding-bottom:12px;overflow:hidden}@supports (height:100dvh){.puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 330px))}}.puzzle-grid{--puzzle-grid-gap:5px;gap:var(--puzzle-grid-gap);width:min(100%, var(--puzzle-max-size));max-width:100%;max-height:max(280px, var(--puzzle-max-size));touch-action:none;margin-inline:auto;display:grid;position:relative;container-type:inline-size}.word-search-game-area .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100vh - 140px))}@supports (height:100dvh){.word-search-game-area .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 100px))}}.word-search-below-fold{margin-top:clamp(20px,5vh,48px)}.word-search-below-fold .ad-slot:first-child,.word-search-below-fold .daily-leaderboard:first-child{margin-top:0}.kana-cell{aspect-ratio:1;border:1px solid var(--line);background:var(--cream);color:var(--ink);min-width:0;min-height:0;font-family:Noto Sans JP,sans-serif;font-weight:700;font-size:clamp(.42rem, calc(56cqw / var(--puzzle-grid-size,12)), 1.35rem);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;border-radius:10px;padding:0;line-height:1;overflow:hidden}.kana-cell.selected{border-color:var(--torii);background:#efe0c8}.kana-cell.found{color:var(--torii-dark);background:#b23a2f29;border-color:#b23a2f59}.kana-cell.shared-found{color:var(--torii-dark);background:#b23a2f47;border-color:#8f2f2794;box-shadow:inset 0 0 0 2px #8f2f2738,0 0 0 1px #fffaf1cc}.found-word-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.found-word-lines path,.found-word-lines circle{fill:none;stroke:#8f2f2785;stroke-width:1.25px;stroke-linejoin:round;stroke-linecap:round}.clue-section{margin-top:28px}.clue-section h2{margin:0 0 16px}.clue-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.clue-card{padding:16px;transition:background .2s,border-color .2s,color .2s;position:relative;overflow:hidden}.clue-card-header{z-index:1;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.japanese-audio-control{z-index:3;justify-items:end;gap:4px;display:inline-grid;position:relative}.listen-button{z-index:3;color:var(--torii);cursor:pointer;white-space:nowrap;background:#fffaf1d6;border:1px solid #8f2f2742;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.78rem;font-weight:700;line-height:1;transition:background .2s,border-color .2s,color .2s,transform .2s;display:inline-flex;position:relative}.listen-button-label{display:inline-block}.listen-button:hover:not(:disabled),.listen-button:focus-visible{background:#8f2f271a;border-color:#8f2f276b;transform:translateY(-1px)}.listen-button:disabled{cursor:wait;opacity:.72}.speech-settings{background:#fffaf18a;border:1px solid #8f2f2724;border-radius:14px;margin:-4px 0 14px}.speech-settings summary{cursor:pointer;color:var(--ai);padding:10px 12px;font-size:.86rem;font-weight:800}.speech-settings-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:0 12px 12px;display:grid}.speech-settings label{color:var(--muted);gap:6px;font-size:.8rem;font-weight:700;display:grid}.speech-settings select,.speech-settings input[type=range]{width:100%}.speech-settings-check{grid-template-columns:auto 1fr;align-content:end;align-items:center}.speech-settings-note{color:var(--torii);margin:0;padding:0 12px 12px;font-size:.8rem}.clue-card.found{color:#211a179e;background:#211a171f;border-color:#211a1738}.clue-card.found .kana-word,.clue-card.found .clue-info{color:#211a1794}.clue-card.found .listen-button{color:#211a17ad;background:#fffaf19e;border-color:#211a172e}.clue-card.found .localized-meaning{color:#211a179e}.clue-card.found:after{content:"";z-index:2;transform-origin:0;pointer-events:none;background:#b23a2fbf;border-radius:999px;height:4px;animation:.35s ease-out pencilStrike;position:absolute;top:50%;left:12px;right:12px;transform:rotate(-3deg)scaleX(1)}@keyframes pencilStrike{0%{transform:rotate(-3deg)scaleX(0)}to{transform:rotate(-3deg)scaleX(1)}}.kana-word{font-family:Noto Sans JP,sans-serif;font-size:1.25rem}.kana-word-placeholder{color:var(--muted);font-size:.82rem;font-weight:700}.clue-info{z-index:1;color:var(--muted);gap:4px;margin-top:8px;display:grid;position:relative}.localized-meaning{color:var(--ink);font-weight:400}.tts-error{color:var(--torii);font-size:.78rem}@media (width<=980px){.app-shell{padding:18px}.site-header{padding:24px;display:grid}.header-panel,.header-progress-pill{justify-self:end}.layout,.home-layout,.home-hero,.progress-summary,.split-heading,.onboarding-controls,.placement-card,.onboarding-footer,.placement-meta-grid,.placement-area-grid,.placement-options,.support-section,.home-footer{grid-template-columns:1fr}.home-hero{align-items:start}.onboarding-screen{place-items:start center;width:100%;max-width:100%;overflow:hidden}.onboarding-card{border-radius:22px;width:100%;padding:18px}.onboarding-card .section-heading{min-width:0}.onboarding-card .section-heading h1{max-width:100%;font-size:clamp(1.68rem,7.2vw,2rem);line-height:1.02}.onboarding-card .section-heading p{overflow-wrap:anywhere;max-width:100%}.onboarding-card>*,.onboarding-option,.onboarding-card .language-selector{min-width:0;max-width:100%}.onboarding-card .language-selector,.onboarding-card .language-selector select{width:100%}.onboarding-option-grid{grid-template-columns:1fr}.onboarding-option{min-height:auto}.placement-actions,.placement-test-actions,.onboarding-footer .primary-button{justify-content:flex-start;justify-self:start}.placement-test-actions>*{flex:100%}.placement-question-top{display:grid}.progress-summary>.ghost-button{justify-self:start}.progress-summary-card{grid-template-columns:minmax(0,.5fr) minmax(0,1fr)}.progress-summary-grid.compact{grid-column:1/-1}.daily-card{grid-template-columns:minmax(0,1fr) minmax(210px,.8fr);align-items:start}.daily-card .daily-actions{grid-column:2;align-self:start}.progress-summary-grid,.learning-stats-grid,.practice-aid-grid,.topic-grid,.support-method-grid,.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-path-columns{grid-template-columns:1fr}.home-footer p{text-align:left}.share-button-wrap,.share-button{width:100%}.share-menu{width:100%;margin-top:8px;position:static}.game-area{order:1}.control-panel{order:2}.game-controls{grid-template-columns:1fr}.game-settings .button-row{padding-top:0}.control-panel{position:static}}@media (width<=820px){.app-shell{padding:12px}.site-header,.control-panel,.game-area{border-radius:20px}.site-header{text-align:left;border-radius:22px;justify-items:stretch;gap:12px;padding:16px}.site-header>*{width:100%}.header-main{justify-items:start;gap:8px;width:100%;display:grid}.site-header .eyebrow{letter-spacing:.06em;margin:0;font-size:.72rem}.site-title{text-align:left;justify-content:flex-start;font-size:clamp(1.9rem,10vw,2.45rem);line-height:.98}.brand-kanji{margin-right:.05em}.subtitle{text-align:left;max-width:34ch;margin:0;font-size:.86rem;line-height:1.32}.main-nav{border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));justify-self:center;gap:4px;width:100%;margin-top:4px;padding:5px;display:grid;overflow:visible}.main-nav a,.main-nav button{white-space:nowrap;min-width:0;min-height:32px;padding:7px;font-size:clamp(.7rem,3.1vw,.78rem);line-height:1.12}.main-nav a:last-child,.main-nav button:last-child{border-top:1px solid #1b2b4b14;border-radius:12px;grid-column:1/-1;justify-self:stretch}.about-support-callout{flex-direction:column;align-items:stretch}.about-support-button{width:100%}.header-panel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);justify-self:center;place-items:end stretch;gap:8px;width:100%;min-width:0;display:grid}.header-progress-pill{justify-self:stretch;width:100%;min-height:34px;padding:6px 8px;font-size:.72rem;display:inline-flex}.header-progress-pill img{width:16px;height:16px}.header-actions{justify-self:stretch;width:100%}.site-header .language-selector{text-align:left;grid-template-columns:1fr;justify-self:stretch;align-items:end;gap:3px;width:100%;font-size:.66rem}.site-header .language-selector select{text-align:left;width:100%;min-height:34px;padding:6px 30px 6px 10px}.home-page{gap:16px;margin-top:16px}.home-hero{gap:18px;padding:22px}.home-hero .home-hero-tagline{font-size:clamp(1.55rem,8vw,2.1rem)}.home-hero .home-hero-subtitle{font-size:.98rem;line-height:1.55}.jlpt-dual-progress-row{grid-template-columns:minmax(0,1fr) auto}.jlpt-dual-progress-row>small{justify-self:start}.word-found-feedback{grid-template-columns:1fr;padding:12px}.word-found-feedback .listen-button{justify-self:start}.hero-actions,.hero-actions .primary-button,.hero-actions .secondary-button{width:100%}.home-section{padding:20px}.game-settings:first-child,.game-settings .button-row,.mode-grid,.onboarding-option-grid,.progress-summary-grid,.learning-stats-grid,.practice-aid-grid,.topic-grid,.support-method-grid,.collection-grid,.dashboard-metrics,.mode-stats-grid,.learning-profile-summary,.recommendation-card,.recent-activity-item,.jlpt-progress-grid,.achievement-columns,.daily-calendar-grid,.daily-streak-summary,.mode-actions{grid-template-columns:1fr}.activity-heatmap{grid-template-columns:repeat(7,minmax(0,1fr))}.recommendation-card .secondary-button{width:100%}.learning-path-top,.jlpt-level-heading,.jlpt-progress-details,.learning-path-actions{justify-content:stretch;display:grid}.progress-summary-card,.progress-summary-grid.compact,.summary-actions{grid-template-columns:1fr}.header-progress-pill{width:100%}.donation-popup{border-radius:18px;padding:24px 18px 20px}.donation-popup-actions{grid-template-columns:1fr}.donation-popup-actions .primary-button,.donation-popup-actions .secondary-button{width:100%}.daily-card{grid-template-columns:1fr}.daily-card .daily-actions{grid-column:auto;justify-content:flex-start;justify-self:start;max-width:none}.daily-card .daily-actions .note{text-align:left}.daily-difficulty-flowers{font-size:.64rem}.mode-card-heading{grid-template-columns:1fr}.mode-card-heading .mode-state{justify-self:start}.answer-grid,.answer-grid.compact{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.practice-mode{grid-template-rows:auto minmax(320px,auto) auto;padding:18px}.flashcard,.question-card,.maze-target{min-height:300px;padding:22px}.leaderboard-heading,.record-form{grid-template-columns:1fr}.leaderboard-heading{display:grid}.kana-cell{border-radius:8px}}@media (height<=500px) and (orientation:landscape){.app-shell{padding:10px}.site-header,.control-panel,.game-area,.home-section,.home-hero,.home-footer,.progress-dashboard,.practice-mode{border-radius:16px}.site-header,.control-panel,.game-area,.progress-dashboard,.practice-mode{padding:14px}.practice-mode{grid-template-rows:auto minmax(220px,auto) auto;gap:10px}.flashcard,.question-card,.maze-target{min-height:220px;padding:16px}.revealed-content{min-height:72px}.kana-display,.kana-gap{font-size:clamp(2rem,7vw,3rem)}.level-complete-overlay{align-items:start;padding:8px}.level-complete{border-radius:16px;gap:10px;width:min(760px,100%);max-height:calc(100dvh - 16px);padding:14px}.completion-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.xp-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.level-complete-main-actions{grid-template-columns:repeat(2,minmax(132px,1fr))}.share-menu{max-height:42dvh;overflow-y:auto}}@media (height<=760px){.game-area{padding:16px}.game-controls{gap:10px;margin-bottom:12px}.game-settings{gap:8px}.practice-mode{--practice-card-min-height:clamp(170px, 30dvh, 260px);gap:10px;padding:16px}.mode-status{gap:6px 10px;font-size:.86rem}.flashcard,.question-card,.maze-target{gap:8px;padding:16px}.kana-display,.kana-gap{font-size:clamp(1.9rem,min(6vw,7vh),3.4rem)}.revealed-content{min-height:78px}.answer-grid{gap:8px}.answer-option{min-height:42px;padding:10px 12px;font-size:.9rem}.mode-actions{gap:8px}.kana-maze-grid{gap:6px;width:min(460px,100%,100dvh - 300px)}.maze-cell{border-radius:12px}.puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 280px))}.word-search-game-area .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 110px))}.puzzle-grid{width:min(100%, var(--puzzle-max-size));max-height:max(240px, var(--puzzle-max-size));--puzzle-grid-gap:4px}.kana-cell{border-radius:8px}.kana-hunt-mode{--kana-hunt-board-size:min(620px, 100%, calc(100dvh - 330px));gap:10px;padding:16px}.kana-hunt-status{gap:6px}.kana-hunt-status span{min-height:28px;padding:5px 9px;font-size:.78rem}.kana-hunt-script-switch{gap:6px}.kana-hunt-script-switch button{min-height:30px;padding:5px 10px;font-size:.82rem}.kana-hunt-target{padding:14px 18px}.kana-hunt-target h2{font-size:clamp(2.9rem,9vh,4.8rem)}.kana-hunt-target p{font-size:.9rem}.kana-hunt-listen-button{width:34px;height:34px}.kana-hunt-audio{top:10px;left:10px}.kana-hunt-grid{gap:clamp(4px,.8vh,8px)}.kana-hunt-cell{border-radius:clamp(8px,1vh,14px);font-size:clamp(1.05rem,3.6vh,2rem)}}@media (height<=620px){.game-area{padding:12px}.practice-mode{--practice-card-min-height:clamp(135px, 26dvh, 210px);gap:8px;padding:12px}.mode-status{font-size:.78rem}.flashcard,.question-card,.maze-target{padding:12px}.revealed-content{min-height:62px;font-size:.86rem}.flashcard-meaning{font-size:1rem}.answer-grid,.answer-grid.compact{gap:6px}.answer-option{border-radius:12px;min-height:36px;padding:8px 10px;font-size:.82rem}.kana-maze-grid{gap:5px;width:min(400px,100%,100dvh - 245px)}.puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 235px));padding-bottom:6px}.word-search-game-area .puzzle-wrapper{--puzzle-max-size:min(100%, calc(100dvh - 90px))}.puzzle-grid{width:min(100%, var(--puzzle-max-size));max-height:max(200px, var(--puzzle-max-size));--puzzle-grid-gap:3px}.kana-cell{font-size:clamp(.38rem, calc(54cqw / var(--puzzle-grid-size,12)), 1rem);border-radius:6px}.kana-hunt-mode{--kana-hunt-board-size:min(560px, 100%, calc(100dvh - 285px));gap:8px;padding:12px}.kana-hunt-target{padding:12px 16px}.kana-hunt-target span,.kana-hunt-target p,.kana-hunt-mode .note{font-size:.78rem}.kana-hunt-target h2{font-size:clamp(2.4rem,8vh,3.8rem)}}.tutorial-shell{place-items:center;min-height:min(680px,100dvh - 220px);padding:16px 0 24px;display:grid}.tutorial-card{width:min(760px,100%);box-shadow:var(--shadow);background:radial-gradient(circle at 100% 0,#b23a2f14,#0000 16rem),#fffaf1eb;border:1px solid #1b2b4b24;border-radius:28px;gap:18px;padding:28px;display:grid}.tutorial-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.tutorial-card h2,.tutorial-card h3,.tutorial-card p{margin:0}.tutorial-card h2{color:var(--ai);font-size:clamp(1.9rem,4vw,3rem);line-height:1}.tutorial-layer-pill{width:fit-content;color:var(--torii-dark);letter-spacing:.02em;background:#b23a2f14;border:1px solid #b23a2f2e;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:800}.tutorial-stage,.tutorial-action-stack{text-align:center;justify-items:center;gap:16px;display:grid}.tutorial-step-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tutorial-instruction,.tutorial-success,.tutorial-feedback,.tutorial-target{color:var(--torii-dark);font-weight:800}.tutorial-target-label{color:var(--torii-dark);background:#b23a2f14;border:1px solid #b23a2f33;border-radius:999px;justify-content:center;align-items:center;gap:10px;margin-top:-6px;padding:8px 12px;font-weight:800;display:inline-flex}.tutorial-target-label span{letter-spacing:.08em;text-transform:uppercase;font-size:.86rem}.tutorial-target-cue{min-width:82px;color:var(--ai);letter-spacing:.04em;justify-content:center;align-items:center;font-family:Noto Sans JP,sans-serif;font-size:clamp(1.45rem,6vw,2.1rem);font-weight:700;line-height:1.1;display:inline-flex}.tutorial-mini-grid{touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid var(--line);background:#f5f0e8b8;border-radius:22px;grid-template-columns:repeat(3,minmax(44px,72px));justify-content:center;gap:10px;padding:14px;display:grid;position:relative}.tutorial-mini-grid.word-search-demo{grid-template-columns:repeat(4,minmax(42px,64px))}.tutorial-mini-grid span,.tutorial-mini-grid button,.tutorial-word-grid span{background:var(--cream);min-width:44px;min-height:44px;color:var(--ink);border:1px solid #1b2b4b24;border-radius:12px;place-items:center;font-family:Noto Sans JP,sans-serif;font-size:1.2rem;display:grid;box-shadow:inset 0 -2px #1a14100d}.tutorial-mini-grid button{cursor:pointer;-webkit-tap-highlight-color:transparent}.tutorial-mini-grid button:hover,.tutorial-mini-grid button:focus-visible,.tutorial-answer-grid button:hover,.tutorial-answer-grid button:focus-visible{outline-offset:2px;background:#b23a2f14;border-color:#b23a2f57;outline:3px solid #b23a2f2e}.tutorial-mini-grid .demo-path,.tutorial-mini-grid .correct,.tutorial-word-grid .correct{color:var(--torii-dark);background:#b23a2f1f;border-color:#b23a2f6b}.tutorial-word-grid{justify-content:center;gap:10px;display:flex}.tutorial-word-grid .present{background:#8b73551f;border-color:#8b735573}.tutorial-cursor{--tutorial-cursor-step:74px;--tutorial-cursor-origin:37px;--tutorial-cursor-start-x:calc(var(--tutorial-cursor-origin) + (var(--cursor-start-col,0) * var(--tutorial-cursor-step)));--tutorial-cursor-start-y:calc(var(--tutorial-cursor-origin) + (var(--cursor-start-row,0) * var(--tutorial-cursor-step)));--tutorial-cursor-end-x:calc(var(--tutorial-cursor-origin) + (var(--cursor-end-col,1) * var(--tutorial-cursor-step)));--tutorial-cursor-end-y:calc(var(--tutorial-cursor-origin) + (var(--cursor-end-row,0) * var(--tutorial-cursor-step)));border:2px solid var(--beni);background:#fffaf1cc;border-radius:999px;width:18px;height:18px;animation:2.6s ease-in-out infinite tutorialCursor;position:absolute;box-shadow:0 10px 20px #b23a2f2e}@keyframes tutorialCursor{0%,to{transform:translate(var(--tutorial-cursor-start-x), var(--tutorial-cursor-start-y)) scale(.9);opacity:.2}20%{opacity:1}55%{transform:translate(var(--tutorial-cursor-end-x), var(--tutorial-cursor-end-y)) scale(1);opacity:1}80%{transform:translate(var(--tutorial-cursor-end-x), var(--tutorial-cursor-end-y)) scale(.86);opacity:.45}}.tutorial-flashcard-demo{background:#fffaf1e6;border:1px solid #b23a2f33;border-radius:22px;place-items:center;gap:8px;width:min(280px,100%);min-height:180px;padding:22px;transition:transform .18s,background .18s;display:grid;box-shadow:0 14px 32px #1a141014}.tutorial-flashcard-demo.revealed{background:#1b2b4b0f;transform:rotateY(3deg)translateY(-2px)}.tutorial-flashcard-demo span{color:var(--ai);font-family:Noto Sans JP,sans-serif;font-size:2.5rem}.tutorial-answer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(520px,100%);display:grid}.tutorial-answer-grid button{border:1px solid var(--line);background:var(--cream);min-height:48px;color:var(--ink);border-radius:14px;font-weight:800}.tutorial-celebration{width:86px;height:86px;color:var(--torii-dark);background:#b23a2f1a;border-radius:50%;place-items:center;font-family:Noto Sans JP,sans-serif;font-size:2rem;animation:1.8s ease-in-out infinite tutorialPulse;display:grid}@keyframes tutorialPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.tutorial-progress-dots{justify-content:center;gap:8px;display:flex}.tutorial-progress-dots span{background:#1b2b4b2e;border-radius:999px;width:9px;height:9px}.tutorial-progress-dots span.active{background:var(--beni)}.tutorial-reset-panel{background:#fffaf1b3;border:1px solid #1b2b4b1f;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding:16px;display:flex}.tutorial-reset-panel p{color:var(--muted);margin:4px 0 0}.tutorial-reset-panel .tutorial-reset-confirmation{color:var(--matcha);background:#386c561a;border:1px solid #386c5638;border-radius:999px;flex-basis:100%;margin:0;padding:8px 12px;font-weight:800}@media (prefers-reduced-motion:reduce){.tutorial-cursor,.tutorial-celebration{animation:none}.tutorial-cursor{opacity:1;transform:translate(74px,18px)scale(1)}.tutorial-flashcard-demo{transition:none}}@media (width<=760px){.tutorial-shell{min-height:auto}.tutorial-card{padding:20px}.tutorial-answer-grid,.tutorial-reset-panel{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.tutorial-step-actions{width:100%}.tutorial-step-actions button{flex:180px}}.about-hero h1,.about-hero h2,.user-progress-hero h1,.progress-dashboard>.section-heading h1,.progress-dashboard>.section-heading h2,.daily-page-intro h1,.mode-selector>.section-heading h1,.mode-selector>.section-heading h2,.topic-explorer>.section-heading h1,.topic-explorer>.section-heading h2,.home-hero .home-hero-tagline{color:var(--ai)}@media (width<=767px){.hero-actions,.summary-actions,.donation-popup-actions,.level-complete-main-actions,.tutorial-step-actions,.confirm-dialog-actions,.game-settings .button-row,.word-search-game-area .game-settings .button-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px;width:100%;display:grid}.hero-actions .primary-button,.hero-actions .secondary-button,.summary-actions .primary-button,.summary-actions .secondary-button,.summary-actions .ghost-button,.donation-popup-actions .primary-button,.donation-popup-actions .secondary-button,.level-complete-main-actions .primary-button,.level-complete-main-actions .secondary-button,.tutorial-step-actions .primary-button,.tutorial-step-actions .secondary-button,.tutorial-step-actions .ghost-button,.confirm-dialog-actions .primary-button,.confirm-dialog-actions .secondary-button,.confirm-dialog-actions .ghost-button,.game-settings .button-row button{width:100%;min-width:0;min-height:40px;padding:10px 12px;font-size:clamp(.78rem,3.2vw,.92rem);line-height:1.16}:is(.mode-actions:not(:has(>:nth-child(3))),.placement-actions:not(:has(>:nth-child(3))),.placement-test-actions:not(:has(>:nth-child(3))),.learning-path-actions:not(:has(>:nth-child(3)))){grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px;width:100%;display:grid}:is(.mode-actions:not(:has(>:nth-child(3)))>*,.placement-actions:not(:has(>:nth-child(3)))>*,.placement-test-actions:not(:has(>:nth-child(3)))>*,.learning-path-actions:not(:has(>:nth-child(3)))>*){width:100%;min-width:0;min-height:40px;padding:10px 12px;font-size:clamp(.78rem,3.2vw,.92rem);line-height:1.16}:is(.mode-actions:has(>:nth-child(3)),.placement-test-actions:has(>:nth-child(3)),.daily-word-result-actions:has(>:nth-child(3)),.kana-keyboard-actions:has(>:nth-child(3))),.level-complete-main-actions.single-action{grid-template-columns:1fr}}
