/* Both faces retain official internal Inter names. Exact, disjoint cmap ranges. */
@font-face {
  font-family: InterVariable;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('assets/fonts/InterVariable-latin.woff2') format('woff2');
  unicode-range: U+0000, U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA-02DC, U+0300-0304, U+0306-030A, U+030C, U+030F, U+0313, U+0315, U+031B, U+0323, U+0326-0328, U+032C, U+0337-0338, U+0342-0343, U+0346-036F, U+2000-200B, U+2010-2027, U+202F-2055, U+2057, U+205F, U+20A0-20AF, U+20B1-20B5, U+20B8-20BA, U+20BC-20C0, U+2113, U+FEFF;
}
@font-face {
  font-family: InterVariable;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('assets/fonts/InterVariable.woff2') format('woff2');
  unicode-range: U+0100-0130, U+0132-0148, U+014A-0151, U+0154-01C3, U+01C5-0254, U+0256-027B, U+027E-0284, U+0286-0290, U+0292-02A4, U+02A6-02BA, U+02BD-02C5, U+02C7-02D9, U+02DD-02FF, U+0374-0376, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03D7, U+03DC-03DD, U+03F0-03F6, U+03F9-03FA, U+03FC-0479, U+0480-049D, U+04A0-04FF, U+052F, U+0E3F, U+1D00, U+1D0D, U+1D1B, U+1D43, U+1D47-1D49, U+1D4D, U+1D4F-1D50, U+1D52, U+1D56-1D58, U+1D5B, U+1D62-1D65, U+1D9C, U+1DA0, U+1DBB, U+1DBF-1DF5, U+1DFC-1E9B, U+1E9D-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE, U+2070-2071, U+2074-208E, U+2090-209C, U+20DB-20DE, U+20E8, U+20F0, U+2100-2101, U+2103, U+2105-2106, U+2109, U+2116-2117, U+211E-2122, U+2126, U+212A-212B, U+212E, U+2132, U+213B, U+214D, U+2150-217F, U+2183-2186, U+2189, U+2190-2199, U+21A9-21AA, U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21D0, U+21D2, U+21D4, U+21DE-21DF, U+21E4-21E5, U+21E7, U+21EA, U+2202, U+2205-2206, U+220F, U+2211-2212, U+221A, U+221E, U+222B, U+2236, U+2248, U+2260, U+2264-2265, U+2295-2298, U+2303-2305, U+2318, U+2325-2327, U+232B, U+2380, U+2387, U+238B, U+23CE-23CF, U+2423, U+2460-2468, U+24B6-24CF, U+24EA, U+25A0-25A2, U+25AA, U+25B2-25B3, U+25B6-25B7, U+25BA-25BD, U+25C0-25C1, U+25C4-25C7, U+25CA-25CB, U+25CF, U+25E6, U+25EF, U+2600, U+2605-2606, U+263C, U+2661, U+2665, U+266A-266B, U+26A0, U+2713, U+2717, U+2756, U+2764, U+2780-2788, U+27EF, U+27F5-27FA, U+2913, U+2A38, U+2B06, U+2B12-2B13, U+2B1C, U+2B24, U+2C7C, U+2C7F, U+2DFF, U+2E18, U+A69F, U+A7FF, U+A92E, U+E000, U+E002-E05E, U+E06A-E0BD, U+E0C8-E0CC, U+E0DC-E0E6, U+E0F3-E0F5, U+E106, U+E109-E10A, U+E10C-E10F, U+E111-E113, U+E117-E118, U+E121-E122, U+E124, U+E12A-E15E, U+E163, U+E1C3, U+E1D2-E1DF, U+E1E1-E2DC, U+EE01-EE07, U+EE09-EE0A, U+EE0C-EE12, U+EE14, U+EE17, U+EE1D-EE45, U+EE47-EE84, U+EE87-EED6, U+EED8-EEE1, U+F6C3, U+1F12F-1F149, U+1F16A-1F16B, U+1F850, U+1F852;
}
:root{--paper:#efe7d8;--paper-2:#e4d9c4;--ink:#2a241c;--muted:#6b5f4f;--bar:rgba(250,246,238,.94);--accent:#a3472f;--line:rgba(42,36,28,.18);--dialog:#faf7f1;--sans:InterVariable,Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--serif:Georgia,"Times New Roman",serif;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#24201b;--paper-2:#1a1713;--ink:#f1e9dc;--muted:#b4a792;--bar:rgba(30,27,23,.94);--accent:#e08a6d;--line:rgba(241,233,220,.18);--dialog:#24201b;color-scheme:dark}}
:root[data-theme="dark"]{--paper:#24201b;--paper-2:#1a1713;--ink:#f1e9dc;--muted:#b4a792;--bar:rgba(30,27,23,.94);--accent:#e08a6d;--line:rgba(241,233,220,.18);--dialog:#24201b;color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);font:15px/1.45 var(--sans)}
body{background:radial-gradient(ellipse at 30% 20%,var(--paper),var(--paper-2))}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,.fig:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#board{position:fixed;inset:0;overflow:hidden}
.fig{position:absolute;left:0;top:0;transform-origin:50% 100%;transition:transform .45s ease;cursor:pointer;filter:drop-shadow(0 2px 3px rgba(0,0,0,.28))}
.fig img{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;user-select:none;-webkit-user-drag:none}
.fig.out{visibility:hidden}
.fig:hover,.fig:focus-visible{filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));z-index:100000!important}
.ai-overlay{opacity:0;transition:opacity .2s ease}
body.show-ai .ai-overlay{opacity:1}
#year-big{position:fixed;left:18px;top:6px;font:700 clamp(56px,11vw,150px)/1 var(--serif);letter-spacing:-.03em;color:var(--ink);opacity:.92;pointer-events:none;z-index:99000;text-shadow:0 0 18px var(--paper),0 0 4px var(--paper)}
.status{position:fixed;left:50%;top:45%;transform:translateX(-50%);margin:0;color:var(--muted);z-index:99100;pointer-events:none}
.status:empty{display:none}
#tools{position:fixed;right:14px;top:14px;display:flex;gap:4px;padding:4px;background:var(--bar);border:1px solid var(--line);border-radius:999px;z-index:99500;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
#tools button{border:0;background:none;padding:6px 12px;border-radius:999px;font-size:13px}
#tools button:hover{background:var(--line)}
#ai-toggle[aria-pressed="true"]{color:#e2007a}
#bar{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:8px;width:min(920px,calc(100% - 24px));padding:8px 12px;background:var(--bar);border:1px solid var(--line);border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:99500;box-shadow:0 6px 24px rgba(0,0,0,.18)}
#bar button{border:0;background:none;font-size:18px;padding:4px 8px;border-radius:999px;white-space:nowrap}
#bar button:hover{background:var(--line)}
#slider{flex:1;width:0;min-width:40px;accent-color:var(--accent);touch-action:pan-y}
#year-label{min-width:7.5em;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}
dialog{border:0;color:var(--ink);background:var(--dialog);padding:0;max-width:1040px;width:calc(100% - 40px);max-height:calc(100% - 40px);overflow:auto;border-radius:14px;box-shadow:0 15px 70px #0005}
dialog::backdrop{background:#1a1612a8;backdrop-filter:blur(4px)}
.dialog-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--dialog);z-index:1}
.eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin:0;color:var(--muted)}
.close-button{border:0;background:none;padding:0;width:36px;height:36px;font-size:2rem;line-height:1}
.detail-layout{display:grid;grid-template-columns:1fr 1fr}
.detail-image{min-width:0;padding:28px;background:color-mix(in srgb,var(--paper) 70%,transparent);display:flex;align-items:center;justify-content:center}
.detail-frame{position:relative;display:inline-flex;max-width:100%}
.detail-frame img{max-width:100%;height:min(66vh,570px);object-fit:contain}
.detail-frame .ai-overlay{position:absolute;inset:0;width:100%;height:100%}
.detail-copy{padding:32px 32px}
.detail-copy h2{font:600 1.9rem/1.12 var(--sans);letter-spacing:-.03em;margin:10px 0}
.status-line{font-size:.875rem;color:var(--muted);margin:10px 0 18px}
dl{font-size:.875rem;margin:18px 0}
dt{color:var(--muted);float:left;clear:left;width:118px}
dd{margin:0 0 8px 126px;overflow-wrap:anywhere}
dd a,.about-content a{color:var(--accent)}
.source-links{margin:24px 0}
.primary-link{display:inline-block;background:var(--ink);color:var(--paper);padding:10px 16px;text-decoration:none;font-size:.875rem;border-radius:999px}
.quality{border-top:1px solid var(--line);padding-top:16px}
h3{font-size:.875rem;font-weight:600;margin:0 0 8px}
.quality p{font-size:.8125rem;color:var(--muted);margin:8px 0}
.about-dialog{max-width:660px}
.about-content{padding:22px 34px 32px}
.about-content p{font-size:.95rem}
.about-content h3{font-size:.95rem;margin-top:24px}
.definition-list{list-style:none;padding:0;margin:10px 0}
.definition-list li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:18px}
.definition-list strong{font-size:.875rem;min-width:100px;font-weight:600}
.definition-list span{font-size:.875rem;color:var(--muted)}
.small-note{font-size:.8125rem!important;color:var(--muted);margin-top:22px}
@media (max-width:760px){#bar{gap:2px;padding:6px 8px}#year-label{display:none}#tools{top:10px;right:10px}#tools button{padding:5px 9px;font-size:12px}#year-big{left:12px;top:50px}.detail-layout{grid-template-columns:1fr}.detail-image{padding:18px}.detail-frame img{height:340px}.detail-copy{padding:20px}.about-content{padding:18px 20px 26px}dialog{width:calc(100% - 16px);max-height:calc(100% - 16px)}}
@media (prefers-reduced-motion:reduce){.fig{transition:none}}
