:root{--paper: #fdfaf3;--paper-deep: #f4ecda;--paper-shade: #efe6d2;--surface: #fffdf7;--card: var(--surface);--line: #e7ddc9;--line-deep: #eadfc9;--line-shade: #e3d8c1;--line-strong: #d8cdb6;--line-dash: #cbbfa3;--ink: #33302b;--ink-soft: #6f685d;--ink-faint: #9b917d;--ink-disabled: #b7ae9d;--ink-ghost: #c7bfae;--sub: var(--ink-soft);--shu: #e8462e;--shu-soft: #fce3dc;--shu-deep: #c4351f;--shu-darker: #a52a16;--teal: #1f9e8f;--teal-soft: #d7efeb;--teal-deep: #14766a;--teal-bright: #7fd8c9;--gold: #f2b21e;--gold-soft: #fbecc2;--gold-deep: #cf9109;--gold-bright: #f9d268;--gold-ink: #7a5300;--indigo: #34558c;--indigo-soft: #dde6f4;--indigo-deep: #25406e;--indigo-line: #b7c3dd;--sky: #3a9dd8;--sky-soft: #ddeef9;--sky-deep: #2b7bb0;--rarity-bronze: #b6773f;--rarity-silver: #9aa4ab;--rarity-gold: #f2b21e;--rarity-legendary: conic-gradient(from 0deg, #f2b21e, #e8462e, #3a9dd8, #1f9e8f, #f2b21e);--state-correct: var(--teal);--state-correct-surface:var(--teal-soft);--state-wrong: var(--ink-soft);--state-wrong-surface: var(--paper-deep);--link: var(--sky);--link-hover: var(--sky-deep);--font-kana: "Klee One", "UD デジタル 教科書体 NP-R", serif;--font-ui: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", system-ui, sans-serif;--fs-kana-hero: 128px;--fw-kana-hero: 600;--fs-display: 40px;--fw-display: 600;--fs-title: 28px;--fw-title: 700;--fs-body: 17px;--fw-body: 500;--fs-label: 14px;--fw-label: 700;--fs-caption: 12px;--fw-caption: 500;--sp-1: 8px;--sp-2: 12px;--sp-3: 16px;--sp-4: 24px;--sp-5: 32px;--sp-6: 48px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--hit-min: 88px;--hit-rec: 108px;--hit-gap: 20px;--safe-top: max(8%, env(safe-area-inset-top, 0px));--safe-x: max(8%, env(safe-area-inset-left, 0px));--shadow-btn-y: 3px;--shadow-press-y: 1px;--shadow-card: 0 2px 0 var(--paper-shade), 0 12px 28px rgba(51,48,43,.06);--shadow-btn: 0 var(--shadow-btn-y) 0 var(--indigo-deep);--shadow-btn-press: 0 var(--shadow-press-y) 0 var(--indigo-deep);--shadow-chip: 0 6px 16px -8px rgba(51,48,43,.28);--motion-tap: .16s ease;--motion-pop: .22s cubic-bezier(.2,.9,.2,1);--text-primary: var(--ink);--text-secondary: var(--ink-soft);--surface-page: var(--paper);--surface-card: var(--surface);--border-default: var(--line);--brand-primary: var(--indigo);--accent-action: var(--shu);--accent-correct: var(--teal);--accent-reward: var(--gold)}@media(prefers-reduced-motion:reduce){:root{--motion-tap: 0ms;--motion-pop: 0ms}}:root{--ht-paper: var(--paper);--ht-paper-deep: var(--paper-deep);--ht-paper-shade: var(--paper-shade);--ht-surface: var(--surface);--ht-card: var(--card);--ht-line: var(--line);--ht-line-deep: var(--line-deep);--ht-line-shade: var(--line-shade);--ht-line-strong: var(--line-strong);--ht-line-dash: var(--line-dash);--ht-ink: var(--ink);--ht-ink-soft: var(--ink-soft);--ht-ink-faint: var(--ink-faint);--ht-ink-disabled: var(--ink-disabled);--ht-ink-ghost: var(--ink-ghost);--ht-sub: var(--sub);--ht-shu: var(--shu);--ht-shu-soft: var(--shu-soft);--ht-shu-deep: var(--shu-deep);--ht-shu-darker: var(--shu-darker);--ht-teal: var(--teal);--ht-teal-soft: var(--teal-soft);--ht-teal-deep: var(--teal-deep);--ht-teal-bright: var(--teal-bright);--ht-gold: var(--gold);--ht-gold-soft: var(--gold-soft);--ht-gold-deep: var(--gold-deep);--ht-gold-bright: var(--gold-bright);--ht-gold-ink: var(--gold-ink);--ht-indigo: var(--indigo);--ht-indigo-soft: var(--indigo-soft);--ht-indigo-deep: var(--indigo-deep);--ht-indigo-line: var(--indigo-line);--ht-sky: var(--sky);--ht-sky-soft: var(--sky-soft);--ht-sky-deep: var(--sky-deep);--ht-rarity-bronze: var(--rarity-bronze);--ht-rarity-silver: var(--rarity-silver);--ht-rarity-gold: var(--rarity-gold);--ht-rarity-legendary: var(--rarity-legendary);--ht-state-correct: var(--state-correct);--ht-state-correct-surface: var(--state-correct-surface);--ht-state-wrong: var(--state-wrong);--ht-state-wrong-surface: var(--state-wrong-surface);--ht-link: var(--link);--ht-link-hover: var(--link-hover);--ht-font-kana: var(--font-kana);--ht-font-ui: var(--font-ui);--ht-fs-kana-hero: var(--fs-kana-hero);--ht-fw-kana-hero: var(--fw-kana-hero);--ht-fs-display: var(--fs-display);--ht-fw-display: var(--fw-display);--ht-fs-title: var(--fs-title);--ht-fw-title: var(--fw-title);--ht-fs-body: var(--fs-body);--ht-fw-body: var(--fw-body);--ht-fs-label: var(--fs-label);--ht-fw-label: var(--fw-label);--ht-fs-caption: var(--fs-caption);--ht-fw-caption: var(--fw-caption);--ht-sp-1: var(--sp-1);--ht-sp-2: var(--sp-2);--ht-sp-3: var(--sp-3);--ht-sp-4: var(--sp-4);--ht-sp-5: var(--sp-5);--ht-sp-6: var(--sp-6);--ht-radius-sm: var(--radius-sm);--ht-radius-md: var(--radius-md);--ht-radius-lg: var(--radius-lg);--ht-radius-pill: var(--radius-pill);--ht-hit-min: var(--hit-min);--ht-hit-rec: var(--hit-rec);--ht-hit-gap: var(--hit-gap);--ht-safe-top: var(--safe-top);--ht-safe-x: var(--safe-x);--ht-shadow-btn-y: var(--shadow-btn-y);--ht-shadow-press-y: var(--shadow-press-y);--ht-shadow-card: var(--shadow-card);--ht-shadow-btn: var(--shadow-btn);--ht-shadow-btn-press: var(--shadow-btn-press);--ht-shadow-chip: var(--shadow-chip);--ht-motion-tap: var(--motion-tap);--ht-motion-pop: var(--motion-pop);--ht-text-primary: var(--text-primary);--ht-text-secondary: var(--text-secondary);--ht-surface-page: var(--surface-page);--ht-surface-card: var(--surface-card);--ht-border-default: var(--border-default);--ht-brand-primary: var(--brand-primary);--ht-accent-action: var(--accent-action);--ht-accent-correct: var(--accent-correct);--ht-accent-reward: var(--accent-reward)}:root{--ht-ease-overshoot: cubic-bezier(.34, 1.56, .64, 1);--ht-rise-duration: .5s;--ht-rise-stagger: 90ms;--ht-rise-delay-base: .12s;--ht-rise-distance: 14px;--ht-count-duration: .85s;--ht-count-pop-duration: .34s;--ht-count-pop-scale: 1.18;--ht-count-delay-coins: .35s;--ht-count-delay-xp: .5s;--ht-reward-bob-duration: 1.8s;--ht-reward-bob-rise: 8px;--ht-reward-bob-tilt: 1.5deg;--ht-reward-shake-duration: .5s;--ht-reward-reveal-duration: .5s;--ht-reward-reveal-from: .3;--ht-reward-reveal-over: 1.15;--ht-combo-duration: 1.1s;--ht-goal-fill-duration: .6s;--ht-veil-transition: .5s ease;--ht-reveal-hold: 1.6s;--ht-veil-study: .9;--ht-veil-home: .52;--ht-veil-color: var(--paper);--ht-sky-top: #e7f2fb;--ht-sky-bottom: #fdf4e2;--ht-sun: #f9d268;--ht-sun-alpha: .65;--ht-cloud: #ffffff;--ht-hill-1: #d7efeb;--ht-hill-2: #bfe3d6;--ht-hill-3: #a9d8c4;--ht-dex-unseen: var(--line-strong);--ht-dex-unseen-surface:var(--paper);--ht-dex-seen: var(--ink-soft);--ht-dex-strong: var(--ink);--ht-dex-strong-border: var(--teal-soft);--ht-dex-master: var(--ink);--ht-dex-master-border: var(--teal);--ht-dex-master-glow: var(--teal-soft);--ht-dex-glow-width: 3px;--ht-dex-tile-size: 46px;--ht-dex-tile-radius: 12px;--ht-dex-tile-font: 22px;--ht-dex-grid-gap: 6px;--ht-finding-good: var(--teal-deep);--ht-finding-low: var(--indigo);--ht-finding-high: var(--gold-ink);--ht-goal-height: 14px;--ht-goal-max-width: 260px;--ht-goal-track: var(--paper-deep);--ht-goal-fill: var(--teal);--ht-goal-fill-done: var(--teal-bright);--ht-combo-surface: var(--gold-soft);--ht-combo-ink: var(--gold-ink);--ht-combo-shadow: 0 3px 0 var(--gold-bright);--ht-combo-z: 5;--ht-reward-box-size: 160px;--ht-reward-box-radius: 32px;--ht-reward-box-surface:var(--surface);--ht-reward-box-ink: var(--indigo);--ht-reward-box-shadow: 0 6px 0 var(--indigo-soft);--ht-reward-overlay: rgba(255, 253, 247, .86);--ht-reward-stamp-size: 132px;--ht-modal-overlay: rgba(51, 48, 43, .4);--ht-modal-z: 20;--ht-icon-viewbox: 24;--ht-icon-stroke: 2;--ht-icon-linecap: round;--ht-icon-linejoin: round;--ht-icon-size-sm: 16px;--ht-icon-size-md: 20px;--ht-icon-size-lg: 26px;--ht-icon-size-hero: 84px;--ht-icon-size-default: 24px;--ht-art-outline: #33302b;--ht-art-stroke-body: 3;--ht-art-stroke-detail: 2;--ht-art-linejoin: round;--ht-art-highlight: #ffffff;--ht-art-highlight-alpha:.35;--ht-pet-tori: #f6c85f;--ht-pet-tori-dark: #d9a531;--ht-pet-neko: #f0a878;--ht-pet-neko-dark: #d08350;--ht-pet-usa: #cdb4db;--ht-pet-usa-dark: #a98fc0;--ht-pet-kuma: #c69c78;--ht-pet-kuma-dark: #a37a56;--ht-pet-size-sm: 40px;--ht-pet-size-roster: 56px;--ht-pet-size-default: 72px;--ht-pet-size-hatch: 80px;--ht-pet-size-max: 96px;--ht-cos-frame: 120;--ht-cos-outer-cx: 60;--ht-cos-outer-cy: 60;--ht-cos-outer-r: 50;--ht-cos-face-safe-r: 36;--ht-cos-frame-ratio: 1.2;--ht-cos-tile-width: 82px;--ht-cos-tile-radius: 16px;--ht-cos-tile-border: 3px;--ht-sfx-gain-max: .14;--ht-sfx-gain-soft: .1;--ht-sfx-attack: .02;--ht-sfx-mute-key: "hiragana_trial_sfx_muted"}@font-face{font-family:Klee One;font-weight:400;font-style:normal;font-display:swap;src:local("Klee One"),url(/assets/KleeOne-Regular-DfxAFS4d.woff2) format("woff2")}@font-face{font-family:Klee One;font-weight:600;font-style:normal;font-display:swap;src:local("Klee One SemiBold"),url(/assets/KleeOne-SemiBold-DYToGUXV.woff2) format("woff2")}@font-face{font-family:Zen Maru Gothic;font-weight:400;font-style:normal;font-display:swap;src:local("Zen Maru Gothic"),url(/assets/ZenMaruGothic-Regular-BLZxGQMR.woff2) format("woff2")}@font-face{font-family:Zen Maru Gothic;font-weight:500;font-style:normal;font-display:swap;src:local("Zen Maru Gothic Medium"),url(/assets/ZenMaruGothic-Medium-CyEB7FcI.woff2) format("woff2")}@font-face{font-family:Zen Maru Gothic;font-weight:700;font-style:normal;font-display:swap;src:local("Zen Maru Gothic Bold"),url(/assets/ZenMaruGothic-Bold-Cx9wffaV.woff2) format("woff2")}@font-face{font-family:Zen Maru Gothic;font-weight:900;font-style:normal;font-display:swap;src:local("Zen Maru Gothic Black"),url(/assets/ZenMaruGothic-Black-xirO__EC.woff2) format("woff2")}@keyframes ht-ripple{0%{transform:scale(.6);opacity:.5}to{transform:scale(2.1);opacity:0}}@keyframes ht-pop{0%{transform:scale(.7)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes ht-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes ht-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes ht-glow{0%,to{box-shadow:0 var(--shadow-btn-y) 0 var(--teal-bright),0 0 #1f9e8f59}50%{box-shadow:0 var(--shadow-btn-y) 0 var(--teal-bright),0 0 0 8px #1f9e8f1f}}@media(prefers-reduced-motion:reduce){[class*=ht-],[class*=ht-]:before,[class*=ht-]:after{animation:none!important;transition-duration:1ms!important}}@keyframes ht-rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes ht-count-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes ht-reward-bob{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-8px) rotate(1.5deg)}}@keyframes ht-reward-shake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-7px) rotate(-4deg)}40%{transform:translate(7px) rotate(4deg)}60%{transform:translate(-5px) rotate(-3deg)}80%{transform:translate(5px) rotate(3deg)}}@keyframes ht-reward-reveal{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}@keyframes ht-combo-pop{0%{opacity:0;transform:translate(-50%) scale(.6)}22%{opacity:1;transform:translate(-50%) scale(1.12)}40%{transform:translate(-50%) scale(1)}78%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-10px) scale(1)}}@media(prefers-reduced-motion:reduce){.ht-rise-in,.ht-reward-reveal{animation:none;opacity:1}}.ht-app{font-family:var(--font-ui);color:var(--ink);background:var(--paper);min-height:100vh}.ht-app a{color:var(--link);text-decoration:none}.ht-app a:hover{color:var(--link-hover)}.ht-display{font-family:var(--font-kana);font-size:var(--fs-display);font-weight:var(--fw-display);line-height:1.2}.ht-title{font-size:var(--fs-title);font-weight:var(--fw-title);line-height:1.3}.ht-body{font-size:var(--fs-body);font-weight:var(--fw-body);line-height:1.6}.ht-label{font-size:var(--fs-label);font-weight:var(--fw-label);letter-spacing:.02em}.ht-caption{font-size:var(--fs-caption);font-weight:var(--fw-caption);color:var(--ink-soft)}.ht-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.ht-kana-hero{font-family:var(--font-kana);font-weight:var(--fw-kana-hero);font-size:var(--fs-kana-hero);line-height:1;color:var(--ink)}.ht-audio-btn{position:relative;width:var(--hit-rec);height:var(--hit-rec);min-width:var(--hit-min);min-height:var(--hit-min);border:none;border-radius:var(--radius-pill);background:var(--shu);box-shadow:0 var(--shadow-btn-y) 0 var(--shu-deep);color:var(--surface);font-size:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--motion-tap)}.ht-audio-btn:active{transform:translateY(var(--shadow-btn-y));box-shadow:none}.ht-audio-btn[data-state=playing]{background:var(--shu-deep);box-shadow:0 var(--shadow-btn-y) 0 var(--shu-darker);font-size:32px}.ht-audio-btn[data-state=playing]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:var(--shu);opacity:.35;animation:ht-ripple 1.3s ease-out infinite}.ht-audio-btn[disabled]{background:var(--paper-deep);box-shadow:0 var(--shadow-btn-y) 0 var(--line);color:var(--ink-disabled);cursor:not-allowed}.ht-choice-group{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--hit-gap)}.ht-choice-tile{position:relative;width:var(--hit-rec);height:var(--hit-rec);min-width:var(--hit-min);min-height:var(--hit-min);border-radius:var(--radius-lg);background:var(--surface);border:2px solid var(--line);box-shadow:0 var(--shadow-btn-y) 0 var(--line-deep);font-family:var(--font-kana);font-size:52px;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--motion-tap)}.ht-choice-tile[data-state=hover]{background:var(--paper);border-color:var(--indigo);box-shadow:0 var(--shadow-btn-y) 0 var(--indigo-soft)}.ht-choice-tile[data-state=selected]{background:var(--indigo-soft);border:3px solid var(--indigo);box-shadow:0 var(--shadow-btn-y) 0 var(--indigo-line)}.ht-choice-tile[data-state=correct]{background:var(--teal-soft);border:3px solid var(--teal);box-shadow:0 var(--shadow-btn-y) 0 var(--teal-bright)}.ht-choice-tile[data-state=correct][data-attention=true]{animation:ht-glow 1.4s ease-in-out infinite}.ht-choice-tile[data-state=correct][data-attention=false]{animation:ht-pop var(--motion-pop)}.ht-choice-tile[data-state=wrong]{background:var(--state-wrong-surface);border:3px solid var(--line-strong);box-shadow:0 var(--shadow-btn-y) 0 var(--line-shade);color:var(--state-wrong);animation:ht-wobble .5s ease}.ht-choice-tile[data-state=disabled]{opacity:.4;cursor:default}.ht-choice-tile .ht-mark{position:absolute;top:-10px;right:-10px;width:30px;height:30px;border-radius:50%;background:var(--teal);color:var(--surface);font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 6px #1f9e8f66}.ht-btn-big{height:var(--hit-min);padding:0 var(--sp-5);border:none;border-radius:var(--radius-lg);font-family:var(--font-ui);font-weight:var(--fw-title);font-size:22px;color:var(--surface);cursor:pointer;background:var(--shu);box-shadow:0 var(--shadow-btn-y) 0 var(--shu-deep);transition:transform var(--motion-tap),box-shadow var(--motion-tap)}.ht-btn-big:active{transform:translateY(var(--shadow-btn-y));box-shadow:none}.ht-btn-big[data-variant=secondary]{background:var(--teal);box-shadow:0 var(--shadow-btn-y) 0 var(--teal-deep)}.ht-btn-big[disabled]{background:var(--paper-deep);color:var(--ink-disabled);box-shadow:0 var(--shadow-btn-y) 0 var(--line);cursor:not-allowed}.ht-coin-tally{position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:10px 18px 10px 12px;box-shadow:var(--shadow-card)}.ht-coin-tally[data-state=earning]{background:var(--gold-soft);border:2px solid var(--gold);box-shadow:0 4px 12px #f2b21e4d;animation:ht-pop .5s ease-out}.ht-coin-tally .ht-coin-icon{width:36px;height:36px;border-radius:50%;background:var(--gold);border:3px solid var(--gold-deep);display:flex;align-items:center;justify-content:center;color:var(--gold-ink);font-weight:900;font-size:16px}.ht-coin-tally .ht-coin-count{font-weight:900;font-size:22px;color:var(--ink)}.ht-coin-tally .ht-coin-delta{position:absolute;top:-16px;right:8px;background:var(--teal);color:var(--surface);font-weight:900;font-size:var(--fs-label);padding:2px 10px;border-radius:var(--radius-pill);box-shadow:0 var(--shadow-btn-y) 0 var(--teal-deep)}.ht-mnemonic-card{width:300px;padding:var(--sp-4)}.ht-mnemonic-card .ht-art-slot{height:110px;border-radius:var(--radius-md);background:repeating-linear-gradient(45deg,var(--paper-deep) 0 10px,var(--paper-shade) 10px 20px);border:1px dashed var(--line-dash);display:flex;align-items:center;justify-content:center;font-family:ui-monospace,monospace;font-size:var(--fs-caption);color:var(--ink-faint);text-align:center}.ht-mnemonic-card .ht-mnemonic-phrase{font-size:20px;font-weight:700;color:var(--indigo);margin-top:var(--sp-3)}.ht-mnemonic-card .ht-mnemonic-phrase strong{color:var(--shu)}.ht-loanword-tile{min-width:96px;height:96px;padding:0 var(--sp-3);border-radius:var(--radius-lg);background:var(--surface);border:2px solid var(--line);box-shadow:0 var(--shadow-btn-y) 0 var(--line-deep);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:30px;color:var(--ink)}.ht-loanword-tile[data-state=matched]{background:var(--teal-soft);border:3px solid var(--teal);box-shadow:0 var(--shadow-btn-y) 0 var(--teal-bright)}.ht-bilingual-label{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 18px;box-shadow:var(--shadow-card)}.ht-bilingual-label .ht-primary{font-weight:700;font-size:24px;color:var(--ink)}.ht-bilingual-label .ht-secondary{font-size:var(--fs-body);color:var(--ink-soft);margin-top:2px;text-wrap:pretty}.ht-bilingual-label[data-emphasis=true]{background:var(--indigo-soft);border-color:var(--indigo-line)}.ht-bilingual-label[data-emphasis=true] .ht-primary{color:var(--indigo-deep)}.ht-bilingual-label[data-emphasis=true] .ht-secondary{color:var(--indigo)}.ht-furigana{font-size:34px;font-weight:700;color:var(--ink);ruby-align:center}.ht-furigana rt{font-size:var(--fs-label);font-weight:500;color:var(--ink-soft)}.ht-romaji{font-size:var(--fs-body);color:var(--ink-soft);letter-spacing:.08em;margin-top:var(--sp-1);transition:color var(--motion-pop)}.ht-romaji[data-state=faded]{color:var(--ink-ghost)}.ht-romaji[data-state=off]{color:transparent}.ht-parent-gate{width:300px;padding:26px 24px}.ht-parent-gate .ht-dial{margin:20px auto 0;width:96px;height:96px;border-radius:50%;background:var(--paper-deep);border:3px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:44px;color:var(--ink)}.ht-parent-gate .ht-dial[data-state=holding]{background:conic-gradient(var(--teal) var(--hold-progress, 75%),var(--line) 0)}.ht-parent-gate .ht-dial[data-state=holding] span{width:78px;height:78px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:40px;color:var(--teal-deep)}.ht-progress-trail{display:flex;align-items:center;max-width:420px}.ht-progress-trail .ht-node{flex:0 0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--surface);font-weight:var(--fw-label);font-size:var(--fs-label)}.ht-progress-trail .ht-node[data-state=done]{width:32px;height:32px;background:var(--teal)}.ht-progress-trail .ht-node[data-state=current]{width:36px;height:36px;background:var(--shu);box-shadow:0 var(--shadow-btn-y) 0 var(--shu-deep)}.ht-progress-trail .ht-node[data-state=upcoming]{width:32px;height:32px;background:var(--paper-deep);border:2px solid var(--line);color:var(--ink-disabled)}.ht-progress-trail .ht-link{flex:1;height:6px;background:var(--line)}.ht-progress-trail .ht-link[data-state=done]{background:var(--teal)}.ht-hit-min{min-width:var(--hit-min);min-height:var(--hit-min)}.ht-hit-rec{min-width:var(--hit-rec);min-height:var(--hit-rec)}.ht-safe-area{padding-top:var(--safe-top);padding-left:var(--safe-x);padding-right:var(--safe-x)}.ht-trace-surface{position:relative;width:280px;height:280px;border-radius:var(--radius-lg);background:var(--surface);border:2px solid var(--line);box-shadow:var(--shadow-card);display:flex;align-items:center;justify-content:center;overflow:hidden}.ht-trace-surface:before,.ht-trace-surface:after{content:"";position:absolute;background:repeating-linear-gradient(var(--line) 0 6px,transparent 6px 12px)}.ht-trace-surface:before{left:50%;top:0;width:1px;height:100%}.ht-trace-surface:after{top:50%;left:0;width:100%;height:1px}.ht-trace-surface .ht-trace-guide{font-family:var(--font-kana);font-size:96px;color:var(--line)}.ht-trace-surface .ht-trace-ink{position:absolute;font-family:var(--font-kana);font-size:96px;color:var(--ink)}.ht-trace-surface[data-state=tracing] .ht-trace-ink{color:var(--teal-deep)}.ht-trace-surface[data-state=complete]{background:var(--teal-soft);border-color:var(--teal);animation:ht-pop var(--motion-pop)}.ht-trace-surface[data-state=complete] .ht-trace-ink{color:var(--ink)}.ht-trace-surface .ht-trace-mark{position:absolute;top:-10px;right:-10px;width:30px;height:30px;border-radius:50%;background:var(--teal);color:var(--surface);font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 6px #1f9e8f66}.ht-mascot{position:relative;border-radius:50%;background:var(--paper-deep);border:3px dashed var(--line);display:flex;align-items:center;justify-content:center}.ht-mascot[data-size=sm]{width:64px;height:64px;border-width:2px}.ht-mascot[data-size=lg]{width:160px;height:160px}.ht-mascot .ht-mascot-face{position:relative;width:58%;height:58%;border-radius:50%;background:var(--ink)}.ht-mascot .ht-mascot-eye{position:absolute;top:36%;width:14%;height:14%;border-radius:50%;background:var(--surface)}.ht-mascot .ht-mascot-eye[data-side=l]{left:24%}.ht-mascot .ht-mascot-eye[data-side=r]{right:24%}.ht-mascot .ht-mascot-mouth{position:absolute;left:50%;bottom:22%;transform:translate(-50%);width:24%;height:12%;border-bottom:3px solid var(--surface);border-radius:0 0 10px 10px}.ht-mascot[data-state=idle]{animation:ht-bob 2.6s ease-in-out infinite}.ht-mascot[data-state=cheer]{border-color:var(--teal);background:var(--teal-soft);animation:ht-pop .5s ease-out}.ht-mascot[data-state=cheer] .ht-mascot-mouth{border-bottom:none;background:var(--teal);border-radius:0 0 12px 12px;height:16%}.ht-mascot[data-state=encourage]{border-color:var(--gold);background:var(--gold-soft);animation:ht-bob 1.8s ease-in-out infinite}.ht-mascot[data-state=encourage] .ht-mascot-mouth{border-bottom:none;border-top:3px solid var(--surface);border-radius:10px 10px 0 0;bottom:26%}.ht-mascot[data-state=thinking] .ht-mascot-eye{border:3px solid var(--surface);background:transparent;border-bottom-color:transparent}.ht-mascot[data-state=thinking] .ht-mascot-eye[data-side=l]{transform:rotate(45deg)}.ht-mascot[data-state=thinking] .ht-mascot-eye[data-side=r]{transform:rotate(-45deg)}.ht-reward-stamp{position:relative;width:80px;height:80px;border-radius:50%;background:var(--surface);border:4px solid var(--rarity-bronze);display:flex;align-items:center;justify-content:center;font-family:var(--font-kana);font-size:34px;color:var(--ink)}.ht-reward-stamp[data-rarity=silver]{border-color:var(--rarity-silver)}.ht-reward-stamp[data-rarity=gold]{border-color:var(--rarity-gold);box-shadow:0 4px 12px #f2b21e59}.ht-reward-stamp[data-rarity=legendary]{border:4px solid transparent;background-image:linear-gradient(var(--surface),var(--surface)),var(--rarity-legendary);background-origin:border-box;background-clip:content-box,border-box;box-shadow:0 4px 14px #33302b26}.ht-reward-stamp[data-state=locked]{color:var(--ink-disabled);border-color:var(--line);opacity:.6}.ht-reward-stamp[data-state=unlocked]{animation:ht-pop .5s ease-out}.ht-reward-stamp[data-state=placed]{animation:none}.ht-stamp-book{display:flex;flex-wrap:wrap;gap:var(--hit-gap)}.ht-onboarding{max-width:560px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:var(--shadow-card)}.ht-onboarding .ht-onboarding-label{font-size:var(--fs-label);font-weight:var(--fw-label);color:var(--indigo);margin-bottom:var(--sp-2)}.ht-onboarding .ht-onboarding-group{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4)}.ht-onboarding-option{flex:1;min-height:var(--hit-min);border-radius:var(--radius-md);border:2px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);font-family:var(--font-ui);font-weight:var(--fw-title);font-size:var(--fs-body);color:var(--ink-soft);cursor:pointer;transition:all var(--motion-tap)}.ht-onboarding-option[data-state=selected]{border:3px solid var(--indigo);background:var(--indigo-soft);color:var(--indigo-deep)}.ht-rise-in{opacity:0;animation:ht-rise-in var(--ht-rise-duration) var(--ht-ease-overshoot) both;animation-delay:calc(var(--i, 0) * var(--ht-rise-stagger) + var(--ht-rise-delay-base))}.ht-count-pop{display:inline-block;animation:ht-count-pop var(--ht-count-pop-duration) ease-out}.ht-goal-bar{height:var(--ht-goal-height);border-radius:var(--radius-pill);background:var(--ht-goal-track);overflow:hidden;max-width:var(--ht-goal-max-width);margin:6px auto 0}.ht-goal-fill{height:100%;border-radius:var(--radius-pill);background:var(--ht-goal-fill);transition:width var(--ht-goal-fill-duration) var(--ht-ease-overshoot)}.ht-goal-fill[data-reached=true]{background:var(--ht-goal-fill-done)}.ht-reward-banner{font-size:var(--fs-label);font-weight:var(--fw-label);letter-spacing:.02em;margin-top:var(--sp-2);text-wrap:pretty}.ht-reward-banner[data-kind=goal]{color:var(--teal-deep)}.ht-reward-banner[data-kind=streak],.ht-reward-banner[data-kind=weekly]{color:var(--indigo)}.ht-reward-banner[data-kind=egg]{color:var(--teal-deep)}.ht-quest-row{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-1)}.ht-quest-row .ht-quest-text{flex:1;text-align:left;font-size:var(--fs-caption);font-weight:var(--fw-caption);color:var(--ink-soft)}.ht-quest-row[data-state=claimed] .ht-quest-check{color:var(--teal);display:flex}.ht-quest-claim{background:var(--teal);color:var(--surface);border:none;border-radius:var(--radius-pill);padding:6px 14px;font-family:var(--font-ui);font-weight:600;cursor:pointer}.ht-quest-capstone[data-state=locked]{font-size:var(--fs-caption);color:var(--ink-soft);opacity:.55}.ht-quest-capstone[data-state=claimed]{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-caption);color:var(--teal-deep)}.ht-dex-section{margin-bottom:22px}.ht-dex-section-title{font-size:var(--fs-label);font-weight:var(--fw-label);color:var(--ink-soft);margin-bottom:var(--sp-1)}.ht-dex-grid{display:flex;flex-wrap:wrap;gap:var(--ht-dex-grid-gap);justify-content:center}.ht-dex-tile{width:var(--ht-dex-tile-size);height:var(--ht-dex-tile-size);border-radius:var(--ht-dex-tile-radius);display:flex;align-items:center;justify-content:center;font-family:var(--font-kana);font-size:var(--ht-dex-tile-font);border:2px solid var(--line);background:var(--surface);color:var(--ink)}.ht-dex-tile[data-stage=unseen]{color:var(--ht-dex-unseen);background:var(--ht-dex-unseen-surface);border-style:dashed}.ht-dex-tile[data-stage=seen]{color:var(--ht-dex-seen)}.ht-dex-tile[data-stage=strong]{color:var(--ht-dex-strong);border-color:var(--ht-dex-strong-border)}.ht-dex-tile[data-stage=master]{color:var(--ht-dex-master);border-color:var(--ht-dex-master-border);box-shadow:0 0 0 var(--ht-dex-glow-width) var(--ht-dex-master-glow)}.ht-dex-stats{font-size:var(--fs-caption);color:var(--ink-soft)}.ht-dex-stats[data-kind=mastered]{color:var(--teal-deep)}.ht-pet-roster{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center}.ht-pet-tile{background:transparent;border:3px solid transparent;border-radius:18px;padding:6px;line-height:0;cursor:pointer;min-width:var(--hit-min);min-height:var(--hit-min);transition:background var(--motion-tap),border-color var(--motion-tap)}.ht-pet-tile[data-state=active]{background:var(--teal-soft);border-color:var(--teal)}.ht-pet-tile[disabled]{opacity:.5;cursor:default}.ht-hatch-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ht-modal-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--ht-modal-z)}.ht-hatch-card{padding:28px;text-align:center;max-width:320px}.ht-hatch-choices{display:flex;gap:var(--sp-4);justify-content:center}.ht-hatch-choice{background:var(--surface);border:3px solid var(--line);border-radius:20px;padding:14px 14px 8px;cursor:pointer;min-width:var(--hit-rec);min-height:var(--hit-rec)}.ht-hatch-choice[data-state=pressed]{background:var(--teal-soft);border-color:var(--teal)}.ht-dress-stage{position:relative;display:inline-block}.ht-dress-layer{position:absolute;pointer-events:none}.ht-cos-shelf{display:flex;flex-wrap:wrap;gap:var(--sp-1);justify-content:center}.ht-cos-tile{position:relative;width:var(--ht-cos-tile-width);background:var(--surface);border:var(--ht-cos-tile-border) solid var(--line);border-radius:var(--ht-cos-tile-radius);padding:6px 4px 4px;cursor:pointer;font-family:var(--font-ui);transition:background var(--motion-tap),border-color var(--motion-tap)}.ht-cos-tile[data-state=equipped]{background:var(--teal-soft);border-color:var(--teal)}.ht-cos-tile[data-state=locked]{opacity:.5;cursor:default}.ht-cos-tile .ht-cos-name{font-size:var(--fs-caption);margin-top:2px;color:var(--ink-soft)}.ht-cos-tile .ht-cos-price{font-size:var(--fs-caption);color:var(--gold-ink)}.ht-cos-tile .ht-cos-worn{position:absolute;top:2px;right:2px;color:var(--teal);display:flex}.ht-reward-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ht-reward-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);z-index:var(--ht-modal-z);cursor:pointer}.ht-reward-box{width:var(--ht-reward-box-size);height:var(--ht-reward-box-size);display:flex;align-items:center;justify-content:center;border-radius:var(--ht-reward-box-radius);background:var(--ht-reward-box-surface);box-shadow:var(--ht-reward-box-shadow);color:var(--ht-reward-box-ink);animation:ht-reward-bob var(--ht-reward-bob-duration) ease-in-out infinite}.ht-reward-box[data-opening=true]{animation:ht-reward-shake var(--ht-reward-shake-duration) ease-in-out}.ht-reward-reveal{animation:ht-reward-reveal var(--ht-reward-reveal-duration) var(--ht-ease-overshoot) both}.ht-reward-stamp[data-scale=reveal]{width:var(--ht-reward-stamp-size);height:var(--ht-reward-stamp-size);font-size:56px}.ht-combo-flash{position:absolute;top:4px;left:50%;transform:translate(-50%);pointer-events:none;z-index:var(--ht-combo-z);padding:6px 16px;border-radius:var(--radius-pill);background:var(--ht-combo-surface);color:var(--ht-combo-ink);font-family:var(--font-ui);font-weight:700;white-space:nowrap;box-shadow:var(--ht-combo-shadow);animation:ht-combo-pop var(--ht-combo-duration) ease-out forwards}.ht-world{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.ht-world>svg{position:absolute;top:0;right:0;bottom:0;left:0}.ht-world-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ht-veil-color);transition:opacity var(--ht-veil-transition)}.ht-world[data-zone=study] .ht-world-veil{opacity:var(--ht-veil-study)}.ht-world[data-zone=home] .ht-world-veil{opacity:var(--ht-veil-home)}.ht-icon{display:inline-flex;align-items:center;justify-content:center;color:currentColor;flex:0 0 auto}.ht-icon>svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:var(--ht-icon-stroke);stroke-linecap:round;stroke-linejoin:round}.ht-icon[data-size=sm]{font-size:var(--ht-icon-size-sm)}.ht-icon[data-size=md]{font-size:var(--ht-icon-size-md)}.ht-icon[data-size=lg]{font-size:var(--ht-icon-size-lg)}.ht-icon[data-size=hero]{font-size:var(--ht-icon-size-hero)}.ht-section-head{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:4px;color:var(--indigo)}.ht-picture-glyph{background:none;border:none;cursor:pointer;display:block;margin:0 auto var(--sp-4)}.ht-picture{display:block;margin:0 auto;flex-shrink:0}.ht-picture-word{position:absolute;bottom:-22px;left:0;right:0;font-size:var(--fs-caption);color:var(--teal)}.ht-findings{margin-top:var(--sp-3)}.ht-findings-title{font-size:var(--fs-label);font-weight:var(--fw-label);color:var(--indigo);margin-bottom:var(--sp-1)}.ht-finding{font-size:var(--fs-body);line-height:1.6;margin-bottom:4px;text-wrap:pretty}.ht-finding[data-level=good]{color:var(--ht-finding-good)}.ht-finding[data-level=low]{color:var(--ht-finding-low)}.ht-finding[data-level=high]{color:var(--ht-finding-high)}.ht-weekly-summary .ht-metric{font-size:var(--fs-body);line-height:1.6}.ht-weekly-summary .ht-metric[data-empty=true]{font-size:var(--fs-caption);color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.ht-goal-fill,.ht-world-veil{transition:none}.ht-combo-flash{animation:none;opacity:1}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}
