:root{--color-paper:oklch(97.2% 0.018 78);--color-paper-2:oklch(94.6% 0.028 76);--color-paper-3:oklch(91.5% 0.036 74);--color-ink:oklch(32% 0.018 50);--color-ink-muted:oklch(50% 0.015 50);--color-ink-faint:oklch(64% 0.012 50);--color-accent:oklch(58% 0.125 38);--color-accent-deep:oklch(46% 0.125 36);--color-accent-soft:oklch(89% 0.045 45);--color-sage:oklch(62% 0.05 132);--color-sage-soft:oklch(91% 0.028 132);--color-rule:oklch(85% 0.022 60);--color-focus:oklch(44% 0.135 36);--font-display:"Zen Maru Gothic",ui-rounded,system-ui,sans-serif;--font-body:"Zen Kaku Gothic New",system-ui,sans-serif;--font-hand:"Caveat",ui-rounded,cursive;--text-xs:0.8125rem;--text-sm:0.9375rem;--text-base:1.0625rem;--text-lg:1.1875rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-display-s:2.5rem;--text-display:3.25rem;--space-3xs:0.25rem;--space-2xs:0.5rem;--space-xs:0.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4rem;--space-3xl:6rem;--radius-sm:8px;--radius-md:12px;--radius-frame:20px;--radius-pill:999px;--rule-hair:1px;--rule-thick:2px;--dur-instant:90ms;--dur-short:160ms;--dur-med:280ms;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in:cubic-bezier(0.7,0,0.84,0);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--shadow-card:0 8px 24px -14px oklch(46% 0.125 36/0.35);--shadow-lift:0 14px 30px -16px oklch(46% 0.125 36/0.45)}*,:after,:before{box-sizing:border-box}body,html{overflow-x:clip}html{color-scheme:light;-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.75;font-feature-settings:"palt" 1}h1,h2,h3{font-family:var(--font-display);font-style:normal;font-weight:700;line-height:1.35;letter-spacing:.01em;word-break:auto-phrase;overflow-wrap:anywhere;min-width:0;margin:0}p{margin:0}button{font:inherit;color:inherit}img{max-width:100%;height:auto}:focus-visible{outline:var(--rule-thick) solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}.shell{min-height:100dvh;display:flex;flex-direction:column;background-image:repeating-linear-gradient(-45deg,transparent 0 22px,oklch(46% .125 36/.012) 22px 23px)}.shell__main{flex:1 1;width:100%;max-width:44rem;margin-inline:auto;padding:var(--space-lg) var(--space-md) var(--space-2xl)}.screen{animation:screen-in var(--dur-med) var(--ease-out) both}.sectionIntro{display:flex;align-items:center;justify-content:center;width:100%;min-height:50vh;padding:0;border:0;background:none;cursor:pointer}.sectionIntro__label{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);color:var(--color-accent-deep)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}}.intro__hand{font-family:var(--font-hand);font-size:var(--text-2xl);font-weight:700;color:var(--color-accent);line-height:1;margin-bottom:var(--space-2xs)}.intro__title{font-size:var(--text-3xl)}.intro__title>span{display:inline-block}.intro__title em{font-style:normal;color:var(--color-accent-deep)}.intro__lead{margin-top:var(--space-md);max-width:42ch;color:var(--color-ink-muted)}.intro__cast{margin-top:var(--space-xl);padding:var(--space-md) 0;border-top:var(--rule-hair) solid var(--color-rule);border-bottom:var(--rule-hair) solid var(--color-rule)}.intro__castLabel{font-size:var(--text-xs);color:var(--color-ink-faint);letter-spacing:.08em;margin-bottom:var(--space-2xs)}.intro__castGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--space-2xs);gap:var(--space-2xs);list-style:none;padding:0;margin:0}.intro__castGrid img{display:block;width:100%;border-radius:var(--radius-md);background:var(--color-paper-2)}.intro__actions{margin-top:var(--space-lg)}.progress__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-2xs)}.progress__section{font-size:var(--text-sm);font-weight:500;color:var(--color-ink-muted)}.progress__count{font-family:var(--font-hand);font-size:var(--text-xl);font-weight:700;color:var(--color-accent-deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.progress__track{display:flex;gap:3px}.progress__seg{flex:1 1;height:6px;border-radius:var(--radius-pill);background:var(--color-paper-3);transition:background-color var(--dur-short) var(--ease-out)}.progress__seg[data-filled=true]{background:var(--color-accent)}.question{margin-top:var(--space-xl)}.question__text{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:1.6;overflow-wrap:anywhere}.question__text--latin{font-family:var(--font-body);font-weight:500;letter-spacing:.01em;line-height:1.7}.question__blank{display:inline-block;width:4em;border-bottom:var(--rule-thick) solid var(--color-accent);margin:0 .2em;vertical-align:.1em}.question__options{list-style:none;padding:0;margin:var(--space-md) 0 0;display:grid;grid-gap:var(--space-2xs);gap:var(--space-2xs)}.option{width:100%;text-align:left;background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer;display:flex;align-items:center;gap:var(--space-sm);transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-short) var(--ease-out)}.option__key{flex:none;width:1.75rem;height:1.75rem;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);font-family:var(--font-hand);font-size:var(--text-lg);font-weight:700;color:var(--color-ink-muted);transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out)}.option__label{flex:1 1;min-width:0;overflow-wrap:anywhere}.option.is-hover,.option:hover{background:var(--color-paper);border-color:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-card)}.option.is-hover .option__key,.option:hover .option__key{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-deep)}.option.is-active,.option:active{transform:translateY(0);background:var(--color-paper-3);box-shadow:none}.option:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}@media (hover:none){.option:hover{transform:none;box-shadow:none;background:var(--color-paper-2);border-color:var(--color-rule)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);white-space:nowrap;border-radius:var(--radius-pill);border:var(--rule-thick) solid transparent;padding:var(--space-xs) var(--space-lg);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);cursor:pointer;text-decoration:none;transition:background-color var(--dur-short) var(--ease-out),transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-short) var(--ease-out)}.btn--primary{background:var(--color-accent-deep);color:var(--color-paper);box-shadow:var(--shadow-card)}.btn--primary.is-hover,.btn--primary:hover{background:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-lift)}.btn--primary.is-active,.btn--primary:active{transform:translateY(0);box-shadow:none}.btn--quiet{background:transparent;border-color:var(--color-rule);color:var(--color-ink-muted);font-size:var(--text-base);padding:var(--space-2xs) var(--space-md)}.btn--quiet.is-hover,.btn--quiet:hover{border-color:var(--color-ink-faint);color:var(--color-ink)}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}.result__hand{font-family:var(--font-hand);font-size:var(--text-xl);font-weight:700;color:var(--color-accent);line-height:1}.result__head{display:grid;grid-template-columns:minmax(0,7.5rem) minmax(0,1fr);grid-gap:var(--space-md);gap:var(--space-md);align-items:center;margin-top:var(--space-2xs)}.result__portrait{display:block;width:100%;border-radius:var(--radius-frame);background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule)}.result__typeName{font-size:var(--text-2xl);color:var(--color-accent-deep)}.result__typeCatch{margin-top:var(--space-3xs);font-size:var(--text-sm);color:var(--color-ink-muted)}.result__levelRow{margin-top:var(--space-xs);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2xs)}.result__levelPill{display:inline-flex;align-items:center;gap:var(--space-3xs);background:var(--color-sage-soft);border:var(--rule-hair) solid var(--color-sage);color:var(--color-ink);border-radius:var(--radius-pill);padding:.15rem var(--space-xs);font-size:var(--text-sm);font-weight:500;line-height:1.6}.result__eiken{font-size:var(--text-xs);color:var(--color-ink-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.result__declaration{margin-top:var(--space-lg);font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:1.6;padding-bottom:var(--space-md);border-bottom:var(--rule-thick) solid var(--color-accent-soft);overflow-wrap:anywhere}.result__blocks{margin-top:var(--space-lg);display:grid;grid-gap:var(--space-md);gap:var(--space-md)}.result__block h2{font-size:var(--text-sm);color:var(--color-accent-deep);letter-spacing:.06em;margin-bottom:var(--space-3xs)}.result__block p{color:var(--color-ink)}.result__levelNote{margin-top:var(--space-md);font-size:var(--text-sm);color:var(--color-ink-muted)}.result__cta{margin-top:var(--space-xl);padding:var(--space-md);background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.result__ctaNote{font-size:var(--text-sm);color:var(--color-ink-muted)}.result__restart{margin-top:var(--space-md)}@media (max-width:30rem){:root{--text-3xl:1.875rem;--text-2xl:1.5rem;--text-xl:1.25rem}.shell__main{padding:var(--space-md) var(--space-sm) var(--space-xl)}.result__head{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}.result__portrait{max-width:9rem}.intro__castGrid{gap:4px}.result__cta{padding:var(--space-sm)}.intro__actions .btn,.result__cta .btn{width:100%;padding-inline:var(--space-sm);font-size:var(--text-base)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.screen{animation:reduced-in .14s linear both}@keyframes reduced-in{0%{opacity:0}}.btn--primary:hover,.option:hover{transform:none}}