:root{--night: #08080f;--night-soft: #0e0e1a;--ink: #e8e6dd;--ink-dim: #a8a5b4;--ink-faint: #6f6d80;--glow: #fff6d8;--rule: #2a2a3c;--serif: "Iowan Old Style", "Palatino Linotype", "Charter", Georgia, "Times New Roman", serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--night);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--glow);text-decoration-thickness:1px;text-underline-offset:2px}.hero{min-height:96vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;background:radial-gradient(ellipse at center,#12122400 0%,#131327 0%,var(--night) 72%)}.hero-kicker{font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;font-size:12px;color:var(--ink-faint);margin-bottom:1.2em}.hero h1{font-size:clamp(44px,7.5vw,86px);line-height:.98;margin:0 0 .4em;font-weight:600;letter-spacing:-.02em;color:var(--glow)}.hero h1 em{font-style:italic}.hero-sub{font-size:clamp(17px,2vw,21px);color:var(--ink-dim);margin:0 auto;max-width:620px}.hero-sub b{color:var(--ink);font-weight:600}.root-word{color:var(--glow)}.hero-scroll{margin-top:3em;font-family:var(--sans);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.story{display:grid;grid-template-columns:minmax(320px,30rem) 1fr;gap:0}.steps{padding:20vh 2.5rem 30vh 4vw}.step{min-height:78vh;max-width:30rem;opacity:.32;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease;display:flex;flex-direction:column;justify-content:center}.step-active{opacity:1;transform:none}.step-num{font-family:var(--sans);font-size:12px;letter-spacing:.16em;color:var(--ink-faint);margin-bottom:.8em}.step h2{font-size:clamp(24px,3vw,33px);line-height:1.12;margin:0 0 .5em;font-weight:600;letter-spacing:-.01em;color:var(--glow)}.step p{margin:0 0 .7em;color:var(--ink-dim);font-size:19px}.step p:last-child{margin-bottom:0}.step strong{color:var(--glow);font-weight:600}.step em{font-style:italic}.chart-pane{position:sticky;top:0;height:100vh}.starchart{width:100%;height:100%;display:block}.label{paint-order:stroke;stroke:var(--night);stroke-width:3px;stroke-linejoin:round}.label-form{font-family:var(--serif);font-weight:600;font-size:12.5px}.label-modern .label-form{font-size:14px}.label-root .label-form{font-size:17px;font-style:italic}.label-translit{font-family:var(--sans);font-size:9px;fill:var(--ink-dim)}.label-gloss{font-family:var(--sans);font-style:italic;font-size:9.5px;fill:var(--ink-dim)}.label-lang{font-family:var(--sans);font-size:7.5px;letter-spacing:.06em;text-transform:uppercase;fill:var(--ink-faint)}.explore-button{margin-top:1.4em;align-self:flex-start;background:var(--glow);border:1px solid var(--glow);border-radius:9px;color:var(--night);font-family:var(--sans);font-size:16px;font-weight:600;padding:13px 22px;cursor:pointer;transition:transform .15s ease,background .2s ease}.explore-button:hover{transform:translateY(-1px)}.explore-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--night);z-index:20}.explore-close{position:fixed;top:1rem;left:1rem;z-index:22;background:color-mix(in srgb,var(--night-soft) 82%,transparent);border:1px solid var(--rule);border-radius:999px;color:var(--ink-dim);font-family:var(--sans);font-size:12px;letter-spacing:.02em;padding:6px 13px;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.explore-close:hover{border-color:var(--ink-faint);color:var(--ink)}.legend{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:22;display:flex;flex-wrap:wrap;gap:.4em 1.1em;justify-content:center;background:color-mix(in srgb,var(--night-soft) 82%,transparent);border:1px solid var(--rule);border-radius:999px;padding:6px 14px;font-family:var(--sans);font-size:12px;color:var(--ink-dim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.legend-item{display:inline-flex;align-items:center;gap:.4em;white-space:nowrap}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.detail{position:fixed;right:1rem;top:1rem;bottom:auto;max-height:calc(100vh - 2rem);overflow-y:auto;width:min(22rem,calc(100vw - 2rem));background:var(--night-soft);border:1px solid var(--rule);border-top:4px solid var(--glow);border-radius:10px;padding:1.2rem 1.3rem;z-index:30;box-shadow:0 8px 40px #0009}.detail-close{float:right;background:none;border:none;color:var(--ink-faint);font-size:1.4rem;cursor:pointer;line-height:1}.detail-close:hover{color:var(--ink)}.detail-kind{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink-dim)}.detail-form{font-size:27px;font-weight:600;color:var(--glow);margin:4px 0 2px}.detail-translit{font-family:var(--sans);font-size:15px;color:var(--ink-dim);font-weight:400}.detail-lang{font-family:var(--sans);font-size:13px;color:var(--ink-dim)}.detail-gloss{margin-top:.7em;font-style:italic}.detail-sense{display:flex;align-items:center;gap:7px;margin-top:10px;font-family:var(--sans);font-size:12.5px;color:var(--ink-dim)}.detail-disputed{font-family:var(--sans);margin-top:.7em;padding:8px 11px;border:1px dashed #b58a4e;border-radius:8px;color:#e8b877;font-size:13px;line-height:1.45}.detail-note{margin-top:.8em;font-size:15px;line-height:1.5;color:var(--ink)}.detail-quote{margin-top:.8em;padding:6px 0 6px 13px;border-left:3px solid var(--rule);color:var(--ink-dim);font-size:14px;font-style:italic}.detail-sources{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px}.detail-sources-title{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:6px}.detail-sources ul{list-style:none}.detail-sources li{font-family:var(--sans);font-size:13px;line-height:1.35;margin-bottom:6px}.detail-sources a{color:var(--ink-dim)}.detail-sources a:hover{color:var(--glow)}.footer{padding:2.5rem 1rem 3rem;text-align:center;font-family:var(--sans);color:var(--ink-faint);font-size:13px;border-top:1px solid var(--rule)}.footer a{color:var(--ink-dim)}@media(max-width:900px){body{font-size:17px}.story{grid-template-columns:1fr}.chart-pane{position:sticky;top:0;height:52vh;order:-1;background:var(--night);z-index:5}.steps{padding:2rem 1.4rem 20vh}.step{min-height:55vh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
