:root{--bg:#faf8f5;--card:#fdfdfb;--muted:#f1eeea;--border:#e2ddd5;--ink:#1d2935;--primary:#283848;--muted-ink:#4d5c6a;--sakura:#bd491f;--sakura-cta:#e6aa94;--sakura-soft:#f9e4dc;--olive:#53683b;--olive-soft:#e5e9df;--skill-read:#bd491f;--skill-listen:#185fa5;--skill-write:#3b6d11;--skill-speak:#534ab7;--stamp-kanji:#eab5a0;--stamp-words:#a8cabb;--stamp-grammar:#c3b8e3;--ok:#3b6d11;--ok-soft:#e8f1dc;--warn-soft:#fbe6dc;--radius:0.9rem;--radius-lg:1.25rem;--shadow:0 1px 2px rgba(29,41,53,0.05),0 8px 24px rgba(29,41,53,0.06);--font-jp:var(--font-body),"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body),-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2{font-family:var(--font-display),"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;line-height:1.2;text-wrap:balance;letter-spacing:.01em}h1,h2,h3{font-weight:700;margin:0}h3{line-height:1.3}a{color:var(--sakura)}button,input{font:inherit}:focus-visible{outline:3px solid var(--sakura-cta);outline-offset:2px}[hidden]{display:none!important}.jp{font-family:var(--font-jp)}rt{font-size:.55em;color:var(--sakura);font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;padding:0 1.4rem;width:100%;border-radius:999px;border:1px solid transparent;background:var(--primary);color:var(--bg);font-weight:700;font-size:1rem;text-decoration:none;cursor:pointer;transition:transform .08s ease,background .15s ease}.btn:active{transform:scale(.98)}.btn:hover{background:#1f2c39}.btn--outline{background:var(--card);color:var(--ink);border-color:var(--border)}.btn--outline:hover{background:var(--muted)}.btn--sakura{background:var(--sakura-cta);color:var(--ink)}.btn--sakura:hover{background:#e09c83}.btn[disabled]{opacity:.45;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.875rem;font-weight:700}.input{min-height:52px;width:100%;padding:0 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);color:var(--ink);font-size:1rem}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--sakura-soft)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sakura)}.muted{color:var(--muted-ink)}.badge{display:inline-flex;gap:.4rem;border:1px solid var(--border);background:var(--card);border-radius:999px;padding:.3rem .8rem}.badge,.divider{align-items:center;font-size:.8rem;color:var(--muted-ink)}.divider{display:flex;gap:.75rem}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.legal{line-height:1.7}.legal h1{font-size:1.8rem;margin:1rem 0 .25rem}.legal h2{font-size:1.15rem;margin:1.6rem 0 .4rem;font-family:var(--font-body),sans-serif}.legal li,.legal p{color:var(--ink)}.legal .updated{color:var(--muted-ink);font-size:.85rem;margin:0}.legal .fill{background:var(--sakura-soft);border-radius:4px;padding:0 4px}