:root{--c-navy:#253047;--c-navy-deep:#1b2335;--c-cream:#fff8f5;--c-white:#fff;--c-rose:#ad1457;--c-rose-pressed:#8c0f45;--c-pink:#f48fb1;--c-pink-soft:#fce4ec;--c-lavender:#b39ddb;--c-lavender-soft:#ede7f6;--c-gold:#e6b85c;--c-gold-soft:#fff1cc;--c-gold-text:#7a5300;--c-mist:#c9d1e0;--c-gray-600:#5b6377;--c-gray-500:#737b8c;--c-gray-450:#767c8a;--c-surface-2:#f4eeec;--c-green-700:#1e7a46;--c-green-50:#e7f5ec;--c-red-700:#b42318;--c-red-50:#fdecea;--c-new-read:#ffe7a3;--c-new-read-line:#8a5a00;--c-blue-focus:#1f5fbf;--color-bg:var(--c-cream);--color-surface:var(--c-white);--color-surface-2:var(--c-surface-2);--color-text:var(--c-navy);--color-text-muted:var(--c-gray-600);--color-text-disabled:var(--c-gray-450);--color-text-on-primary:var(--c-white);--color-primary:var(--c-rose);--color-primary-pressed:var(--c-rose-pressed);--color-primary-soft:var(--c-pink-soft);--color-link:var(--c-rose);--color-border:var(--c-gray-500);--color-divider:#e6dedb;--color-focus:var(--c-blue-focus);--color-focus-on-dark:var(--c-gold);--color-success:var(--c-green-700);--color-success-soft:var(--c-green-50);--color-error:var(--c-red-700);--color-error-soft:var(--c-red-50);--color-bet-text:var(--c-gold-text);--color-bet-bg:var(--c-gold-soft);--color-accent:var(--c-pink);--color-accent-2:var(--c-lavender);--color-dialog-bg:#1b2335e6;--color-dialog-text:var(--c-white);--color-dialog-subtext:var(--c-mist);--color-dialog-speaker:var(--c-pink);--color-kana-unread:var(--c-navy);--color-kana-unread-smudge:#25304714;--color-kana-new-bg:var(--c-new-read);--color-kana-new-line:var(--c-new-read-line);--color-teacher-audio-bg:var(--c-white);--color-teacher-audio-text:var(--c-navy);--color-teacher-audio-border:var(--color-border);--color-teacher-audio-playing-bg:var(--c-pink-soft);--color-voice-pill-text:var(--c-pink);--color-voice-pill-border:var(--c-pink);--color-voice-pill-bg:transparent;--color-voice-pill-playing-bg:var(--c-pink);--color-voice-pill-playing-text:var(--c-navy-deep);--color-voice-pill-light-text:var(--c-rose);--color-voice-pill-light-border:var(--c-rose);--color-voice-pill-light-playing-bg:var(--c-rose);--color-voice-pill-light-playing-text:var(--c-white);--color-progress-track:var(--c-surface-2);--color-progress-fill:var(--c-rose);--color-scrim:#1b233599;--color-age-btn-bg:var(--c-white);--color-age-btn-border:var(--color-border);--color-age-btn-text:var(--c-navy);--color-consent-text:var(--color-text);--font-en:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-ja:"Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", sans-serif;--font-kana:"Klee One", "Noto Sans JP", "Hiragino Sans", sans-serif;--font-kana-print:var(--font-ja);--fs-kana-hero:6.5rem;--fs-kana-choice:2rem;--fs-kana-sign:1.625rem;--fs-kana-sign-zoom:2.5rem;--fs-ja-dialog:1.25rem;--fs-ja-body:1.125rem;--fs-en-h1:1.75rem;--fs-en-h2:1.375rem;--fs-en-body:1rem;--fs-en-small:.875rem;--fs-romaji:.9375rem;--lh-tight:1.1;--lh-heading:1.3;--lh-en:1.5;--lh-ja:1.7;--fw-regular:400;--fw-semibold:600;--fw-bold:700;--ls-ja:.02em}:root[data-text-size=large]{--fs-ja-dialog:1.5rem;--fs-ja-body:1.25rem;--fs-en-body:1.125rem;--fs-en-small:1rem;--fs-kana-sign:2rem;--voice-pill-h:36px}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--gutter:var(--space-4);--content-max:480px;--tap-min:48px;--btn-h:56px;--btn-h-secondary:48px;--btn-h-age:var(--btn-h);--choice-h:64px;--header-h:48px;--icon:24px;--voice-pill-h:32px;--voice-pill-gap:var(--space-4);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--vh-full:100dvh;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--border-w:1.5px;--border-w-strong:2px;--focus-ring:0 0 0 3px var(--color-bg), 0 0 0 5px var(--color-focus);--focus-ring-dark:0 0 0 3px var(--color-focus-on-dark);--shadow-1:0 1px 2px #2530471a, 0 1px 1px #2530470f;--shadow-2:0 4px 12px #2530471f;--shadow-sheet:0 -8px 24px #25304729;--shadow-dialog-text:0 1px 2px #00000059;--dur-instant:80ms;--dur-fast:.15s;--dur-base:.24s;--dur-slow:.4s;--dur-reveal:.7s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-enter:cubic-bezier(0, 0, 0, 1);--ease-exit:cubic-bezier(.3, 0, 1, 1);--press-scale:.97}@media (prefers-reduced-motion:reduce){:root{--dur-base:0s;--dur-slow:var(--dur-fast);--dur-reveal:0s;--press-scale:1}}:root[data-motion=reduce]{--dur-base:0s;--dur-slow:var(--dur-fast);--dur-reveal:0s;--press-scale:1}:root{--z-base:0;--z-sprite:10;--z-dialog:20;--z-header:30;--z-toast:40;--z-sheet:50;--z-modal:60;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-en);margin:0;font-size:100%}button{font:inherit}:focus-visible{box-shadow:var(--focus-ring);outline:none}[lang=ja]{font-family:var(--font-ja);letter-spacing:var(--ls-ja)}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:var(--content-max);min-height:var(--vh-full);margin:0 auto;position:relative}.screen{min-height:var(--vh-full);padding:0 var(--gutter) calc(var(--space-4) + var(--safe-bottom));gap:var(--space-3);flex-direction:column;display:flex}.bar-top{height:var(--header-h);align-items:center;gap:var(--space-2);display:flex}.ep-title{font-weight:var(--fw-semibold);font-size:var(--fs-en-body);flex:1;margin:0}.icon-btn{min-width:var(--tap-min);min-height:var(--tap-min);font-size:var(--icon);color:inherit;cursor:pointer;background:0 0;border:0}.btn-primary,.btn-secondary,.btn-age,.btn-choice{border-radius:var(--radius-md);cursor:pointer;transition:transform var(--dur-instant) var(--ease-standard)}.btn-primary:active,.btn-secondary:active,.btn-age:active,.btn-choice:active{transform:scale(var(--press-scale))}.btn-primary{min-height:var(--btn-h);background:var(--color-primary);color:var(--color-text-on-primary);font-weight:var(--fw-semibold);padding:0 var(--space-4);border:0}.btn-primary:disabled{background:var(--color-surface-2);color:var(--color-text-disabled)}.btn-secondary{min-height:var(--btn-h-secondary);color:var(--color-primary);border:var(--border-w) solid var(--color-primary);padding:0 var(--space-4);background:0 0}.btn-choice{min-height:var(--choice-h);background:var(--color-surface);color:var(--color-text);border:var(--border-w) solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left;font-size:var(--fs-en-body)}.btn-choice:not(.kana-choice) [lang=ja],.btn-choice:not(.kana-choice)[lang=ja]{font-size:var(--fs-ja-body)}.btn-choice.kana-choice,.btn-choice.kana-choice .jt{font-family:var(--font-kana);font-size:var(--fs-kana-choice);text-align:center}.btn-choice.is-correct{background:var(--color-success-soft);border:var(--border-w-strong) solid var(--color-success);color:var(--color-success)}.btn-choice.is-wrong{background:var(--color-error-soft);border:var(--border-w-strong) solid var(--color-error);color:var(--color-error)}.btn-choice.is-dim{opacity:.6}.age{justify-content:center}.age-deco{background:radial-gradient(circle at 30% 40%, var(--color-accent-2) 0 8px, transparent 9px), radial-gradient(circle at 70% 60%, var(--color-accent) 0 10px, transparent 11px);height:96px}.age-body{font-size:var(--fs-en-body);margin:0}.age-question{font-size:var(--fs-en-h2);line-height:var(--lh-heading);margin:0}.age-consent{font-size:var(--fs-en-small);color:var(--color-consent-text);margin:0}.age-consent a{color:var(--color-link)}.btn-age{min-height:var(--btn-h-age);background:var(--color-age-btn-bg);border:var(--border-w) solid var(--color-age-btn-border);color:var(--color-age-btn-text);font-weight:var(--fw-semibold)}.adults-only{justify-content:center}.adults-only h1{font-size:var(--fs-en-h2);line-height:var(--lh-heading)}.readable{align-items:center;gap:var(--space-2);font-size:var(--fs-en-small);display:flex}.readable .bar{background:var(--color-progress-track);border-radius:var(--radius-pill);flex:1;min-width:120px;height:8px;overflow:hidden}.readable .bar>span{background:var(--color-progress-fill);height:100%;display:block}.story{padding-bottom:var(--safe-bottom)}.story .choices{margin-bottom:var(--space-4)}.story .dialog{margin-bottom:var(--space-2)}.end-card .stop-note{text-align:center;font-weight:var(--fw-semibold);margin:0}.has-bg-image .end-card .stop-note,.has-bg-image .choice-prompt{border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:#ffffffeb}.bg-lounge{background:linear-gradient(var(--c-lavender-soft), var(--color-bg))}.bg-study{background:linear-gradient(var(--color-surface-2), var(--color-bg))}.bg-cafe{background:linear-gradient(var(--c-pink-soft), var(--color-bg))}.story .bar-top{margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);z-index:var(--z-dialog);background:#fff8f5eb;position:relative}.story .bar-top .ep-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.story .bar-top>:not(.ep-title){flex-shrink:0}.story>.readable.story-readable{top:calc(var(--header-h) + var(--space-2));right:var(--gutter);z-index:var(--z-dialog);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);background:#fff8f5eb;position:absolute}.has-bg-image .btn-secondary{background:var(--color-surface)}.story.has-bg-image{background-position:50%;background-repeat:no-repeat;background-size:cover}.letter-paper{inset:var(--space-4) 0 var(--space-2) 0;background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);padding:var(--space-4) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex;position:absolute;overflow:auto}.letter-line{flex-direction:column;margin:0;display:flex}.letter-line .ja{font-family:var(--font-kana);font-size:var(--fs-ja-dialog);line-height:var(--lh-ja)}.letter-line .en{font-size:var(--fs-en-small);color:var(--color-text-muted)}.hint-word{gap:var(--space-2);flex-wrap:wrap;display:flex}.stage{flex:1;justify-content:center;align-items:flex-end;min-height:240px;display:flex;position:relative}.story-sprite{max-height:100%;margin-bottom:calc(-1 * var(--space-3) - 2px);flex-shrink:0}.sprite-fallback{justify-content:center;align-items:center;height:240px;display:flex}.nametag-fallback{background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:var(--fw-semibold)}.sakura-face{background:var(--color-surface-2);border-radius:50%;flex-shrink:0;width:64px;height:64px;overflow:hidden}.sakura-face .sprite-fallback{height:100%}.sakura-face .nametag-fallback{display:none}.home-sprite{flex-shrink:0}.props{top:var(--space-4);gap:var(--space-3);z-index:1;pointer-events:none;display:flex;position:absolute;left:0;right:0}.props>*{pointer-events:auto}.props-zoom{justify-content:center;left:0;right:0}.story .props-zoom{top:var(--zoom-top,var(--space-4))}.prop{background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-1)}.prop-zoom{text-align:center;padding:var(--space-6);flex:1}.props-zoom.props-multi{left:var(--space-2);right:var(--space-2);gap:var(--space-2)}.props-multi .prop-zoom{min-width:0;padding:var(--space-4) var(--space-2);flex:1 1 0}.props-multi .jt-sign-zoom{font-size:var(--fs-kana-sign)}.prop-nametag{border-radius:var(--radius-md);border-top:6px solid var(--color-primary)}.dialog{background:var(--color-dialog-bg);color:var(--color-dialog-text);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4);cursor:pointer;min-height:136px;z-index:var(--z-dialog);position:relative}.dialog-card{text-align:center}.dialog .speaker{color:var(--color-dialog-speaker);font-size:var(--fs-en-small);font-weight:var(--fw-semibold)}.dialog .ja{font-size:var(--fs-ja-dialog);line-height:var(--lh-ja);text-shadow:var(--shadow-dialog-text)}.dialog .en{color:var(--color-dialog-subtext);font-size:var(--fs-en-body);line-height:var(--lh-en)}.dialog-text .en{padding-right:var(--space-6)}.dialog .more{line-height:var(--lh-en);position:absolute;bottom:0;right:0}.choices{gap:var(--space-2);z-index:var(--z-dialog);flex-direction:column;display:flex}.choice-prompt{font-weight:var(--fw-semibold);margin:0}.hint{gap:var(--space-2);border-radius:var(--radius-sm);padding:var(--space-3);background:#ffffffeb;flex-direction:column;display:flex}.hint-head{font-size:var(--fs-en-small);color:var(--color-text-muted);margin:0}.letter-tile{min-width:56px;min-height:64px;padding:0 var(--space-1);background:var(--color-teacher-audio-bg);color:var(--color-text);border:var(--border-w) solid var(--color-teacher-audio-border);border-radius:var(--radius-sm);cursor:pointer;font:inherit;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:inline-flex}.letter-tile.is-playing{background:var(--color-teacher-audio-playing-bg)}.letter-tile.is-playing .letter-tile-kana{box-shadow:inset 0 -2px 0 var(--color-primary)}.letter-tile-kana{font-family:var(--font-kana);font-size:2rem;line-height:1.1}.letter-tile-romaji{font-size:var(--fs-romaji);color:var(--color-text-muted);line-height:1.1}.hint-kana{min-width:var(--tap-min);min-height:var(--tap-min);background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);flex-direction:column;align-items:center;display:flex}.hint-kana>span[lang]{font-family:var(--font-kana);font-size:var(--fs-kana-choice)}.hint-kana .romaji,.contrast .romaji{font-size:var(--fs-romaji);font-family:var(--font-en);color:var(--color-text-muted)}.jt{display:inline}.jt-sign,.jt-sign-zoom{font-family:var(--font-kana);font-size:var(--fs-kana-sign)}.jt-sign-zoom{font-size:var(--fs-kana-sign-zoom)}.g{display:inline-block}.g-unread{filter:blur(.22em);opacity:.55;background:radial-gradient(ellipse, var(--color-kana-unread-smudge), transparent 70%);cursor:help;-webkit-user-select:none;user-select:none}.g-mark{white-space:pre}.jw{white-space:nowrap}.g-space{white-space:normal}.card,.quiz{gap:var(--space-3);flex-direction:column;align-items:stretch;display:flex}.kana-hero{font-family:var(--font-kana);font-size:var(--fs-kana-hero);line-height:var(--lh-tight);text-align:center}.kana-hero-small{font-size:4.5rem}@media (height<=480px){.card.intro{gap:var(--space-2)}.card.intro .kana-hero{font-size:4.5rem}}.romaji{text-align:center;color:var(--color-text-muted);font-size:var(--fs-romaji)}.note,.small{font-size:var(--fs-en-small);color:var(--color-text-muted);margin:0}.contrast{gap:var(--space-4);background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.contrast-kana{font-family:var(--font-kana);flex-direction:column;align-items:center;font-size:3rem;display:flex}.contrast p{font-size:var(--fs-en-small);flex-basis:100%;margin:0}.quiz-head{align-items:center;gap:var(--space-2);display:flex}.grid4{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.list{gap:var(--space-2);flex-direction:column;display:flex}.answer-input{gap:var(--space-2);display:flex}.answer-input input{min-height:var(--btn-h-secondary);font-size:var(--fs-en-body);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-xs);padding:0 var(--space-3);flex:1}.word{font-family:var(--font-kana);text-align:center;font-size:3.5rem}.feedback{border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);bottom:calc(var(--space-2) + var(--safe-bottom));z-index:var(--z-toast);box-shadow:var(--shadow-2);flex-direction:column;display:flex;position:sticky}.feedback.ok{background:var(--color-success-soft);border:var(--border-w) solid var(--color-success)}.feedback.ng{background:var(--color-error-soft);border:var(--border-w) solid var(--color-error)}.feedback p{margin:0}.reaction{background:var(--color-dialog-bg);color:var(--color-dialog-text);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.reaction .en{color:var(--color-dialog-subtext)}.bet-banner{background:var(--color-bet-bg);color:var(--color-bet-text);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-weight:var(--fw-semibold)}.bet-note{font-size:var(--fs-en-small);color:var(--color-text-muted);text-align:center;margin-top:auto}.dialog-modal{max-width:var(--content-max);background:var(--color-surface);padding:var(--space-6) var(--gutter);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-sheet);gap:var(--space-2);z-index:var(--z-modal);flex-direction:column;margin:0 auto;display:flex;position:fixed;inset:auto 0 0}.home-hero{justify-content:flex-start;align-items:flex-end;column-gap:var(--space-4);row-gap:var(--space-2);padding-top:var(--space-6);flex-wrap:wrap-reverse;display:flex}.home-status,.home-next,.memories{gap:var(--space-2);flex-direction:column;display:flex}.home-status .stage-name{font-weight:var(--fw-semibold);margin:0}.memories h2{font-size:var(--fs-en-body);margin:0}.kana-shape{font-family:var(--font-kana)}.home-nametag{max-width:100%;margin-top:var(--space-2);min-height:var(--tap-min);box-sizing:border-box;background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);flex:none;align-items:center;display:flex}.scrim{background:var(--color-scrim);z-index:var(--z-modal);position:fixed;inset:0}.banner{background:var(--color-bet-bg);color:var(--color-bet-text);padding:var(--space-2) var(--gutter);align-items:center;gap:var(--space-2);font-size:var(--fs-en-small);display:flex}.toast{left:50%;bottom:var(--space-4);max-width:calc(var(--content-max) - 2 * var(--gutter));background:var(--c-navy);color:var(--c-white);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:var(--z-toast);position:fixed;transform:translate(-50%)}.toast:empty{display:none}.devlog{z-index:var(--z-modal);max-width:60vw;font:11px/1.3 ui-monospace,monospace;position:fixed;top:52px;right:4px}.devlog button{font:inherit;opacity:.7}.devlog ol{border:1px solid var(--color-border);background:#fffffff2;max-height:40vh;margin:2px 0 0;padding:4px 4px 4px 20px;overflow:auto}.btn-teacher-audio{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--space-4);background:var(--color-teacher-audio-bg);color:var(--color-teacher-audio-text);border:var(--border-w) solid var(--color-teacher-audio-border);border-radius:var(--radius-md);font:inherit;font-size:var(--fs-en-body);font-weight:var(--fw-semibold);cursor:pointer;align-self:center;display:inline-flex}.btn-teacher-audio.is-playing{background:var(--color-teacher-audio-playing-bg)}.btn-teacher-audio.icon-only{padding:0}.btn-teacher-audio.big{min-height:64px;padding:0 var(--space-6,24px);font-size:1.125rem}.btn-teacher-audio:focus-visible,.voice-pill:focus-visible{box-shadow:var(--focus-ring);outline:none}.speaker-row{justify-content:space-between;align-items:center;gap:var(--voice-pill-gap);min-height:24px;display:flex}.voice-pill{align-items:center;gap:var(--space-1,4px);height:var(--voice-pill-h);padding:0 var(--space-3,12px);background:var(--color-voice-pill-bg);color:var(--color-voice-pill-text);border:var(--border-w) solid var(--color-voice-pill-border);border-radius:var(--radius-pill);font:inherit;font-size:var(--fs-en-small);font-weight:var(--fw-semibold);cursor:pointer;margin:8px 0;display:inline-flex;position:relative}.voice-pill:before{content:"";position:absolute;inset:-8px 0}.voice-pill.is-playing{background:var(--color-voice-pill-playing-bg);color:var(--color-voice-pill-playing-text)}.voice-pill:focus-visible{box-shadow:0 0 0 3px var(--c-gold)}.voice-pill.light{color:var(--color-voice-pill-light-text);border-color:var(--color-voice-pill-light-border)}.voice-pill.light.is-playing{background:var(--color-voice-pill-light-playing-bg);color:var(--color-voice-pill-light-playing-text)}.dialog-text{outline-offset:2px;position:relative}.wave{align-items:center;display:inline-flex}.wave-bars{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.wave-bars i{background:currentColor;width:3px;height:100%;animation:.9s ease-in-out infinite nr-wave;display:block}.wave-bars i:nth-child(2){animation-delay:.15s}.wave-bars i:nth-child(3){animation-delay:.3s}.wave-text{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@keyframes nr-wave{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.wave-bars{display:none}.wave-text{clip:auto;width:auto;height:auto;font-size:var(--fs-en-small);position:static}}.tap-to-hear{text-align:center;font-size:var(--fs-en-small);color:var(--color-text-muted);margin:0}.kana-print{font-family:var(--font-kana-print,var(--font-ja));font-size:2rem}.glyph-note p{text-align:center;margin:0}.tiles{gap:var(--space-3,12px);flex-direction:column;align-items:center;display:flex}.tile-frame,.tile-row{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.tile{width:56px;height:56px;font-family:var(--font-kana);background:var(--color-surface,#fff);color:var(--color-text);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:1.75rem}.tile:disabled{opacity:.45;cursor:default}.tile-slot{border-style:dashed}.tile-slot:disabled{opacity:1}.tile-prompt{text-align:center;font-size:var(--fs-en-body);margin:0}.step-heading{margin:var(--space-2) var(--space-4) 0;font-size:var(--fs-en-small);color:var(--color-text-muted)}.rule-card h2,.summary h2{margin:0 0 var(--space-2)}.summary-new{gap:var(--space-2);flex-direction:column;display:flex}.summary-new-head{font-size:var(--fs-en-body);margin:0}.summary-new-tiles{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-start;display:flex}.kana-audio-tile{background:var(--color-teacher-audio-bg);width:56px;min-height:72px;color:var(--color-teacher-audio-text);border:var(--border-w) solid var(--color-teacher-audio-border);border-radius:var(--radius-md);cursor:pointer;font:inherit;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:inline-flex}.kana-audio-tile.is-playing{background:var(--color-teacher-audio-playing-bg)}.kana-audio-tile-kana{font-family:var(--font-kana);font-size:2rem;line-height:1.1}.kana-audio-tile-icon{font-size:16px;line-height:1}.secret{color:var(--c-gold-text);font-weight:var(--fw-semibold)}.big{text-align:center;font-size:2rem}.sheet-scrim{justify-content:center;align-items:flex-end;display:flex}.sheet{box-shadow:var(--shadow-sheet);background:var(--c-white);width:100%;max-width:480px;max-height:90dvh;color:var(--color-text);border-radius:var(--radius-xl,24px) var(--radius-xl,24px) 0 0;padding:var(--space-2) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));gap:var(--space-3,12px);flex-direction:column;display:flex;overflow:auto}.sheet-grip{background:var(--color-border);border-radius:2px;width:40px;height:4px;margin:0 auto}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{margin:0;font-size:1.25rem}.settings-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.settings-row{border:0;border-bottom:1px solid var(--c-surface-2);width:100%;min-height:56px;font:inherit;font-size:var(--fs-en-body);color:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:0;display:flex}.switch{background:var(--color-border);border-radius:13px;flex:none;width:44px;height:26px;position:relative}.switch:after{content:"";background:var(--c-white);width:20px;height:20px;transition:left var(--dur-fast,.15s);border-radius:50%;position:absolute;top:3px;left:3px}.switch.on{background:var(--color-primary)}.switch.on:after{left:21px}.text-size-row{cursor:default;gap:var(--space-2);flex-wrap:wrap}.seg{gap:var(--space-2);display:flex}.seg-btn{min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--space-3);background:var(--color-surface);color:var(--color-text);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:var(--fs-en-body);cursor:pointer}.seg-btn.is-selected{border:var(--border-w-strong) solid var(--color-primary);background:var(--color-primary-soft);font-weight:var(--fw-semibold)}.settings-legal{align-items:center;min-height:56px;display:flex}.link-btn{padding:0 var(--space-2);min-height:var(--tap-min);min-width:var(--tap-min);font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:0;text-decoration:underline}.danger-text{color:var(--color-error)}.btn-danger{min-height:var(--btn-h-secondary,48px);color:var(--color-error);border:var(--border-w) solid var(--color-error);border-radius:var(--radius-md);font:inherit;font-weight:var(--fw-semibold);cursor:pointer;background:0 0}.credits{padding:0 0 var(--space-2) var(--space-4);font-size:var(--fs-en-small);color:var(--color-text-muted);margin:0}.muted{color:var(--color-text-muted)}.code-box,.code-input{box-sizing:border-box;width:100%;padding:var(--space-2);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);word-break:break-all;resize:vertical;font-family:ui-monospace,Menlo,monospace;font-size:15px}.error{color:var(--color-error);margin:0}.not-on-sale{font-weight:var(--fw-semibold);color:var(--color-text);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3,12px);margin:0}.survey{gap:var(--space-2);border:0;flex-direction:column;margin:0;padding:0;display:flex}.scale{gap:var(--space-2);justify-content:center;display:flex}.scale-btn{min-width:48px;min-height:48px}.btn-choice.is-selected{border:var(--border-w-strong) solid var(--color-primary);background:var(--c-pink-soft)}.scale-labels{justify-content:space-between;display:flex}.quick-test-card{margin:var(--space-2) 0;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);flex-flow:wrap;display:flex}.quick-test-card>p{flex-basis:100%;margin:0}.learn.with-backdrop{position:relative}.intro-backdrop{inset:var(--header-h) 0 0 0;pointer-events:none;z-index:0;position:absolute;overflow:hidden}.intro-stage{top:var(--space-3);left:var(--gutter);right:var(--gutter);height:calc(var(--vh-full) - var(--header-h) - var(--space-3) - var(--safe-bottom) - var(--story-stage-below));justify-content:center;align-items:flex-end;display:flex;position:absolute}.intro-stage .story-sprite{-webkit-mask-image:linear-gradient(#000 85%,#0000);mask-image:linear-gradient(#000 85%,#0000)}.intro-stage.no-sprite .story-sprite{visibility:hidden}.learn.with-backdrop>:not(.intro-backdrop){z-index:1;position:relative}.learn.with-backdrop .card.intro{border-radius:var(--radius-lg);padding:var(--space-3);background:#ffffffeb;margin-top:auto}.bet-result{gap:var(--space-3);flex-direction:column;flex:1;display:flex}.bet-result-live{margin-top:var(--space-8);gap:var(--space-3);flex-direction:column;display:flex}.bet-result-head{text-align:center;font-size:var(--fs-en-small);color:var(--color-text-muted);margin:0}.bet-line{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.bet-line .speaker{color:var(--color-primary);font-size:var(--fs-en-small);font-weight:var(--fw-semibold)}.bet-line .en{font-size:var(--fs-en-body);line-height:var(--lh-en);color:var(--color-text);margin:0}.bet-result-next{margin-top:auto}.story{height:var(--vh-full);min-height:0;position:relative;overflow:hidden}.story-bottom{left:var(--gutter);right:var(--gutter);top:calc(var(--header-h) + var(--space-3));bottom:var(--safe-bottom);justify-content:flex-end;gap:var(--space-3);z-index:var(--z-dialog);pointer-events:none;flex-direction:column;display:flex;position:absolute}.story-bottom>*{pointer-events:auto}.story-bottom>.dialog,.story-bottom>.choices{flex-shrink:1;min-height:0;overflow-y:auto}.story-bottom>.dialog{min-height:min(136px, calc(.4 * var(--vh-full)));max-height:calc(.4 * var(--vh-full));flex-shrink:0}:root{--story-stage-below:calc(var(--space-2) + 136px + var(--space-3))}.story .stage{min-height:0;margin-bottom:var(--story-stage-below)}.story .story-sprite{clip-path:inset(0 0 var(--sprite-cut,0px) 0)}.story.no-dialog .story-sprite{-webkit-mask-image:linear-gradient(#000 85%,#0000);mask-image:linear-gradient(#000 85%,#0000)}.story.letter .story-bottom{flex-shrink:0;position:static}.story.letter .stage{margin-bottom:0}.story[data-zoom-flow]{height:auto;min-height:var(--vh-full);overflow:visible}.story[data-zoom-flow] .stage{height:var(--zoom-flow-h,auto);flex:none;margin-bottom:0}.story[data-zoom-flow] .story-bottom{flex-shrink:0;position:static}.story .read-bundle{left:var(--gutter);right:var(--gutter);bottom:max(var(--space-4), env(safe-area-inset-bottom,0px));gap:var(--space-2);max-height:calc(100% - var(--header-h) - var(--space-2) - max(var(--space-4), env(safe-area-inset-bottom,0px)));overscroll-behavior:contain;margin:0;position:absolute;overflow-y:auto}.story .read-bundle .btn-choice{flex-shrink:0;align-items:center;min-height:56px;padding-block:0;display:flex}.story .read-bundle>*{flex-shrink:0}.story .read-bundle>.bundle-shade{z-index:1;height:24px;margin-bottom:calc(-24px - var(--space-2));pointer-events:none;background:linear-gradient(to bottom, var(--color-bg), transparent);opacity:0;position:sticky;top:0}.story .read-bundle>.bundle-shade.is-on{opacity:1}
