:root{--serif:"Cormorant Garamond", "Noto Serif JP", Georgia, serif;--jp:"Noto Serif JP", "Cormorant Garamond", Georgia, serif;--ui:"Inter", system-ui, sans-serif;--ease:cubic-bezier(.22, .61, .36, 1);--radius-circle:999px;--ink-settle-duration:.9s}:root,:root[data-theme=sumi]{--surface:#f6f1e6;--surface-raised:#fdfaf2;--surface-sunken:#ede5d4;--ink:#221d18;--ink-soft:#5b524a;--ink-muted:#8c8073;--ink-faint:#b8ad9c;--seal:#b03a2e;--seal-soft:#b03a2e1f;--correct:#b08544;--correct-soft:#b0854429;--hairline:#221d1829;--hairline-strong:#221d1852;--mastery-learning:#b08544;--mastery-familiar:#5a6b8c;--tooltip-surface:#fdfaf2;--tooltip-shadow:0 6px 20px #221d181a;--scene-filter:sepia(.12) saturate(.9) contrast(1.02);--hero-glow:none;--paper-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.13  0 0 0 0 0.11  0 0 0 0 0.09  0 0 0 0.04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--paper-grain-blend:multiply;--paper-grain-opacity:.5}:root[data-theme=yoru]{--surface:#14110d;--surface-raised:#1c1813;--surface-sunken:#0e0c09;--ink:#ede4d3;--ink-soft:#c9bfa9;--ink-muted:#8a8071;--ink-faint:#5f574a;--seal:#c8463a;--seal-soft:#c8463a29;--correct:#c99a52;--correct-soft:#c99a522e;--hairline:#ede4d321;--hairline-strong:#ede4d347;--mastery-learning:#c99a52;--mastery-familiar:#8da3c2;--tooltip-surface:#221d18;--tooltip-shadow:0 8px 24px #00000080;--scene-filter:brightness(.78) sepia(.15) saturate(.85) contrast(1.05);--hero-glow:0 0 28px #ede4d32e, 0 2px 14px #00000080;--ink-settle-duration:1.1s;--paper-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.93  0 0 0 0 0.89  0 0 0 0 0.83  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--paper-grain-blend:normal;--paper-grain-opacity:.6}
*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:hidden}body{background-color:var(--surface);color:var(--ink);font-family:var(--serif);padding-top:env(safe-area-inset-top);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .4s var(--ease), color .4s var(--ease);line-height:1.55}body:before{content:"";background-image:var(--paper-grain);opacity:var(--paper-grain-opacity);mix-blend-mode:var(--paper-grain-blend);pointer-events:none;z-index:0;position:fixed;inset:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}[data-direction=rtl] .native{direction:rtl}@keyframes inkSettle{0%{opacity:0;letter-spacing:.2em;filter:blur(3px)}to{opacity:1;letter-spacing:.1em;filter:blur()}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (max-width:640px){body{padding-bottom:env(safe-area-inset-bottom)}body[data-subscribe-banner]{padding-bottom:calc(52px + env(safe-area-inset-bottom))}}
.AppShell-module__WVLZsa__chrome{z-index:20;position:sticky;top:0}.AppShell-module__WVLZsa__chromeWithBanner{padding-top:env(safe-area-inset-top)}.AppShell-module__WVLZsa__subscribeBanner{background:var(--surface-raised);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;padding:10px 20px;display:flex}.AppShell-module__WVLZsa__subscribeBannerDesktop{border-bottom:1px solid var(--hairline)}.AppShell-module__WVLZsa__subscribeBannerMobile{display:none}.AppShell-module__WVLZsa__subscribeCopy{font-family:var(--serif);color:var(--ink-soft);margin:0;font-size:15px;line-height:1.4}.AppShell-module__WVLZsa__subscribeLink{font-family:var(--ui);letter-spacing:.2em;text-transform:uppercase;color:var(--seal);border-bottom:1px solid var(--seal);padding-bottom:2px;font-size:10px;font-weight:600}.AppShell-module__WVLZsa__subscribeLink:hover{opacity:.85}.AppShell-module__WVLZsa__topNav{background:color-mix(in srgb, var(--surface) 92%, transparent);border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:24px;padding:14px 28px;display:flex}.AppShell-module__WVLZsa__chrome:not(.AppShell-module__WVLZsa__chromeWithBanner) .AppShell-module__WVLZsa__topNav{padding-top:calc(14px + env(safe-area-inset-top))}.AppShell-module__WVLZsa__wordmark{font-family:var(--serif);color:var(--ink);font-size:17px;font-weight:500}.AppShell-module__WVLZsa__links{align-items:center;gap:24px;display:inline-flex}.AppShell-module__WVLZsa__link{font-family:var(--ui);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid #0000;padding:5px 0;font-size:10px;font-weight:600}.AppShell-module__WVLZsa__link:hover,.AppShell-module__WVLZsa__active{color:var(--ink);border-bottom-color:var(--seal)}.AppShell-module__WVLZsa__bottomChrome,.AppShell-module__WVLZsa__footerNav{display:none}@media (max-width:640px){.AppShell-module__WVLZsa__chromeWithBanner{padding-top:0}.AppShell-module__WVLZsa__subscribeBannerDesktop{display:none}.AppShell-module__WVLZsa__subscribeBannerMobile{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:10px 16px;display:flex}.AppShell-module__WVLZsa__topNav{display:none}.AppShell-module__WVLZsa__bottomChrome{z-index:20;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.AppShell-module__WVLZsa__footerNav{padding:8px 10px calc(14px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 94%, transparent);grid-template-columns:repeat(4,1fr);display:grid}.AppShell-module__WVLZsa__footerLink{font-family:var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);flex-direction:column;align-items:center;gap:4px;font-size:9px;font-weight:600;display:inline-flex}.AppShell-module__WVLZsa__footerLink svg{width:18px;height:18px}.AppShell-module__WVLZsa__footerActive{color:var(--seal)}}
