:root{--bg:#f2e8d8;--surface:#e1d5c3;--recessed:#d2bea4;--border:#b8aa95;--text:#2d2c2a;--muted:#49443d;--accent:#76523a;--ornament:#a47c46;--glyph:#b8aa95;--on-accent:#f2e8d8;color-scheme:light;--font-display:var(--font-fraunces), "Iowan Old Style", Georgia, serif;--font-reading:var(--font-newsreader), "Iowan Old Style", Georgia, serif;--font-ui:var(--font-inter), system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:var(--font-plex-mono), ui-monospace, "SF Mono", Menlo, monospace;--step--1:.875rem;--step-0:1.125rem;--step-1:1.406rem;--step-2:1.758rem;--step-3:2.197rem;--step-4:clamp(2.1rem, 1.6rem + 2.2vw, 2.747rem);--step-5:clamp(2.4rem, 1.7rem + 3.2vw, 3.433rem);--read:1.25rem;--measure:66ch;--radius:3px;--gutter:max(16px, env(safe-area-inset-left,0px))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#2d2c2a;--surface:#3a3733;--recessed:#211f1c;--border:#49443d;--text:#f2e8d8;--muted:#b8aa95;--accent:#d1a054;--ornament:#d1a054;--glyph:#665038;--on-accent:#2d2c2a;color-scheme:dark}}:root[data-theme=dark]{--bg:#2d2c2a;--surface:#3a3733;--recessed:#211f1c;--border:#49443d;--text:#f2e8d8;--muted:#b8aa95;--accent:#d1a054;--ornament:#d1a054;--glyph:#665038;--on-accent:#2d2c2a;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-optical-sizing:auto;margin:0;font-size:1rem;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;margin:0;font-weight:400;line-height:1.12}p{margin:0}a{color:var(--accent)}:focus-visible{outline:2px solid var(--ornament);outline-offset:3px;border-radius:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.75rem}.frame{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.container{width:100%;max-width:1120px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin-inline:auto}.site-head{border-bottom:1px solid var(--border)}.site-head .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 28px;padding-block:16px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:var(--text);align-items:center;gap:10px;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.wordmark svg{width:14px;height:19px;color:var(--ornament);flex:none}.site-nav{flex-wrap:wrap;gap:24px;display:flex}.site-nav a{color:var(--text);letter-spacing:.02em;font-size:.95rem;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current]{color:var(--accent)}.site-tools{align-items:center;gap:10px;display:flex}.tool{font:500 .82rem/1 var(--font-ui);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:0 0;padding:8px 12px;text-decoration:none}.tool:hover{color:var(--text);border-color:var(--muted)}.site-foot{border-top:1px solid var(--border)}.site-foot .container{color:var(--muted);padding-block:24px 32px;font-size:.85rem}main{padding-block:clamp(32px,6vw,72px)}.badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.badge svg{width:12px;height:12px;color:var(--ornament);flex:none}.langmark{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);border-radius:2px;padding:0 5px;font-size:.68rem;line-height:1.6}.meta-line{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:.8rem;display:flex}.topics{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);flex-wrap:wrap;gap:4px 14px;display:flex}.topics span:before{content:"◇ ";color:var(--ornament)}.empty{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:var(--step-1);color:var(--muted)}.absent{color:var(--muted);text-underline-offset:.24em;text-decoration:underline 1.5px dotted;text-decoration-color:var(--glyph);cursor:help}.absent:after{content:"";vertical-align:.5em;border:1px solid var(--glyph);width:.42em;height:.42em;margin-left:.18em;display:inline-block;transform:rotate(45deg)}.note-list{margin:0;padding:0;list-style:none;display:grid}.note-list li{border-bottom:1px solid var(--border);gap:6px;padding-block:16px;display:grid}.note-list li:last-child{border-bottom:0}.note-list a.title{font-family:var(--font-display);font-size:var(--step-1);color:var(--text);text-decoration:none}.note-list a.title:hover{color:var(--accent)}.note-list .desc{color:var(--muted);max-width:var(--measure)}.prose{font-family:var(--font-reading);font-size:var(--read);gap:1.1em;line-height:1.6;display:grid}.prose.sans{font-family:var(--font-ui);font-size:var(--step-0);line-height:1.68}.prose.mono{font-family:var(--font-mono);font-size:1rem;line-height:1.75}.prose>*{min-width:0;margin:0}.prose h2{font-size:var(--step-3);margin-top:.6em}.prose h3{font-size:var(--step-2);margin-top:.6em}.prose a{text-underline-offset:.2em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent)}.prose a:hover{text-decoration-color:var(--accent);text-decoration-thickness:2px}.prose blockquote{border-left:1px solid var(--ornament);font-family:var(--font-display);font-size:var(--step-1);padding-left:22px;font-style:italic;font-weight:300;line-height:1.4}.prose code{font-family:var(--font-mono);font-size:.88em}.prose pre{font-family:var(--font-mono);background:var(--recessed);border:1px solid var(--border);border-radius:var(--radius);padding:16px;font-size:.9rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit}.prose img{max-width:100%;height:auto}.prose hr{border:0;border-top:1px solid var(--border)}.prose table{border-collapse:collapse;font-family:var(--font-ui);font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:8px 12px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
