:root{--black: #0b0b0f;--offwhite: #f3ecd9;--ink: var(--offwhite);--paper: var(--black);--ink-2: rgba(11, 11, 15, .045);--ink-3: rgba(11, 11, 15, .1);--paper-2: var(--black);--paper-dim: rgba(11, 11, 15, .62);--paper-mute:rgba(11, 11, 15, .42);--rule: rgba(11, 11, 15, .18);--rule-soft: rgba(11, 11, 15, .1);--rule-strong: rgba(11, 11, 15, .36);--accent: var(--black);--accent-soft: rgba(11, 11, 15, .08);--accent-hover: var(--black);--amber: var(--black);--danger: var(--black);--serif: Georgia, "Times New Roman", Times, serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Cascadia Mono", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--measure: 62ch;--measure-wide: 78ch;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4.5rem;--s-9: 6rem;--t-fast: .12s;--t-med: .22s}:root[data-theme=dark]{--ink: var(--black);--paper: var(--offwhite);--ink-2: rgba(243, 236, 217, .055);--ink-3: rgba(243, 236, 217, .12);--paper-2: var(--offwhite);--paper-dim: rgba(243, 236, 217, .68);--paper-mute:rgba(243, 236, 217, .42);--rule: rgba(243, 236, 217, .2);--rule-soft: rgba(243, 236, 217, .11);--rule-strong: rgba(243, 236, 217, .36);--accent: var(--offwhite);--accent-soft: rgba(243, 236, 217, .08);--accent-hover: var(--offwhite);--amber: var(--offwhite);--danger: var(--offwhite)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:clamp(15.5px,.35vw + 14px,17.5px);line-height:1.62;color-scheme:light dark;-webkit-text-size-adjust:100%;scrollbar-color:var(--paper-mute) var(--ink);scrollbar-width:thin}body{background:var(--ink);color:var(--paper);font-family:var(--serif);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh;display:flex;flex-direction:column}::selection{background:var(--paper);color:var(--ink)}main{flex:1}h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:600;line-height:1.18;color:var(--paper-2);letter-spacing:0}h1{font-size:clamp(1.85rem,2.4vw + 1rem,2.85rem);font-weight:600}h2{font-size:clamp(1.35rem,1vw + 1rem,1.7rem)}h3{font-size:1.18rem}h4{font-size:1rem}p,li,blockquote{max-width:var(--measure)}a{color:inherit;text-decoration:none;text-decoration-color:var(--rule-strong);text-underline-offset:.18em;transition:color var(--t-fast),text-decoration-color var(--t-fast)}a:hover{text-decoration-color:var(--accent)}img,svg,video{display:block;max-width:100%;height:auto}hr{border:0;height:1px;background:var(--rule);margin:var(--s-6) 0}button,input,select,textarea{font:inherit;color:inherit}code,pre,kbd{font-family:var(--mono)}.wrap{width:100%;max-width:1100px;margin-inline:auto;padding-inline:clamp(1rem,3vw,2rem)}.col-read{max-width:var(--measure)}.col-wide{max-width:var(--measure-wide)}.stack>*+*{margin-top:var(--s-4)}.stack-tight>*+*{margin-top:var(--s-2)}.stack-loose>*+*{margin-top:var(--s-6)}.classbar{font-family:var(--mono);font-size:.7rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim);padding:var(--s-3) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;gap:var(--s-4);align-items:baseline;flex-wrap:wrap}.classbar .accent{color:var(--accent)}.stamp{display:inline-block;font-family:var(--mono);font-size:.7rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim)}.stamp--accent{color:var(--accent)}.stamp--amber{color:var(--amber)}.stamp--rule{border:1px solid var(--rule-strong);padding:2px 7px}.meta{font-family:var(--mono);font-size:.76rem;color:var(--paper-dim);letter-spacing:0;text-transform:uppercase;display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:baseline}.meta a{color:var(--paper-dim)}.meta a:hover{color:var(--paper-2)}.sep{display:inline-flex;width:.62rem;min-width:.62rem;align-items:center;justify-content:center;color:var(--rule-strong);font-size:0;line-height:1;vertical-align:middle}.sep:before{content:"";display:block;width:1px;height:.62rem;background:currentColor;opacity:.72;transform:rotate(18deg);transform-origin:center}.masthead{border-bottom:1px solid var(--rule);background:var(--ink)}.masthead-inner{max-width:1100px;margin-inline:auto;padding:var(--s-4) clamp(1rem,3vw,2rem);display:flex;align-items:baseline;gap:var(--s-4) var(--s-5);flex-wrap:wrap}.wordmark{font-family:Georgia,Times New Roman,Times,serif;font-weight:700;font-size:1.08rem;letter-spacing:0;line-height:1;color:var(--ink);background:var(--paper);border:1px solid var(--paper);padding:.18em .36em .22em;margin-right:auto}.wordmark:hover{text-decoration:none}.wordmark .amp{color:inherit;font-style:normal;font-weight:700}.masthead-nav{display:flex;gap:var(--s-4);align-items:baseline;font-family:var(--mono);font-size:.78rem;letter-spacing:0;flex-wrap:wrap}.masthead-nav a{color:var(--paper-dim);padding-bottom:2px;border-bottom:1px solid transparent;transition:color var(--t-fast),border-color var(--t-fast)}.masthead-nav a:hover{color:var(--paper)}.masthead-nav a.is-active{color:var(--paper-2);border-bottom-color:var(--paper)}.masthead-nav a.is-accent{color:var(--accent)}.masthead-nav a.is-accent:hover{color:var(--accent-hover)}.masthead-nav .mh-sep{height:.85em;width:1px;background:var(--rule-strong);display:inline-block;align-self:center;margin:0 var(--s-1)}.masthead-lang{font-size:.72rem;letter-spacing:0;text-transform:uppercase}.theme-form{display:inline-flex;align-items:center}.theme-toggle,.lang-toggle{width:1.65rem;height:1.65rem;display:inline-grid;place-items:center;border:1px solid var(--rule-strong);border-radius:50%;background:transparent;color:var(--paper-dim);cursor:pointer;font-family:var(--serif);font-size:.92rem;line-height:1;padding:0}.lang-toggle{font-family:var(--mono);font-size:.62rem}.theme-toggle:hover,.lang-toggle:hover{color:var(--paper);border-color:var(--paper)}@media (max-width: 680px){.masthead-inner{padding-block:var(--s-3);gap:var(--s-3)}.wordmark{font-size:1rem}.masthead-nav{width:100%;gap:var(--s-2) var(--s-3);font-size:.72rem}.masthead-nav .mh-sep{display:none}.theme-toggle,.lang-toggle{width:1.5rem;height:1.5rem}}.hero{padding:clamp(3rem,9vw,5.5rem) 0 clamp(2rem,6vw,3.5rem);max-width:var(--measure-wide)}.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem,4vw + .6rem,3.5rem);letter-spacing:0;color:var(--paper-2);line-height:1.05}.hero .lede{margin-top:var(--s-4);font-family:var(--serif);font-size:clamp(1.05rem,.5vw + .95rem,1.18rem);line-height:1.55;color:var(--paper);max-width:52ch}.hero .meta{margin-bottom:var(--s-4)}.index{display:grid;border-top:1px solid var(--rule)}.index-row{display:grid;grid-template-columns:4.5ch 11ch 1fr auto;gap:var(--s-4);align-items:baseline;padding:var(--s-5) 0;border-bottom:1px solid var(--rule-soft);color:var(--paper);transition:background var(--t-fast),border-color var(--t-fast)}.index-row:hover{background:var(--ink-2)}.index-row .idx{font-family:var(--mono);font-size:.72rem;color:var(--paper-dim);letter-spacing:0;padding-top:.35em}.index-row .date{font-family:var(--mono);font-size:.72rem;letter-spacing:0;color:var(--paper-dim);text-transform:uppercase;padding-top:.35em}.index-row h2{font-family:var(--serif);font-size:clamp(1.15rem,.5vw + 1rem,1.35rem);font-weight:600;letter-spacing:0;color:var(--paper-2);line-height:1.25}.index-row .sub{font-family:var(--serif);margin-top:var(--s-1);color:var(--paper-dim);font-size:.98rem;line-height:1.45;max-width:58ch}.index-row .flag{font-family:var(--mono);font-size:.68rem;letter-spacing:0;color:var(--paper-dim);align-self:start;padding-top:.5em}.index-row .flag[data-state=paid]{color:var(--accent)}@media (max-width: 720px){.index-row{grid-template-columns:auto 1fr auto;gap:var(--s-2) var(--s-3);padding:var(--s-4) 0}.index-row .idx{display:none}.index-row .date{grid-column:1;padding-top:.2em}.index-row .flag{padding-top:.3em}.index-row h2{grid-column:1 / -1;font-size:1.1rem}.index-row .sub{grid-column:1 / -1;font-size:.92rem}}.article.wrap{max-width:calc(var(--measure) + (clamp(1rem,3vw,2rem) * 2))}.article .dossier,.article .prose,.article .article-byline,.article .fence-shell,.article .fence-seal{width:100%;max-width:none;margin-left:0;margin-right:0}.dossier{max-width:var(--measure);margin:0 auto var(--s-6);padding-top:var(--s-5)}.dossier-top{font-family:var(--mono);font-size:.72rem;letter-spacing:0;color:var(--paper-dim);display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--rule);margin-bottom:var(--s-5);flex-wrap:wrap}.dossier-top .stamp-id{color:var(--paper-2)}.dossier-top .dossier-lang{color:var(--paper-dim);border-bottom:1px solid transparent}.dossier-top .dossier-lang:hover{color:var(--paper-2);border-bottom-color:var(--accent)}.dossier-title{font-family:var(--serif);font-weight:600;font-size:clamp(1.85rem,2.4vw + .9rem,2.7rem);line-height:1.1;letter-spacing:0;color:var(--paper-2)}.dossier-sub{margin-top:var(--s-3);font-family:var(--serif);font-style:italic;font-size:clamp(1.02rem,.3vw + .98rem,1.15rem);line-height:1.5;color:var(--paper-dim);max-width:54ch}.dossier-meta{margin-top:var(--s-5);font-family:var(--mono);font-size:.72rem;letter-spacing:0;color:var(--paper-dim);display:flex;gap:var(--s-3);flex-wrap:wrap}.dossier-meta .kind{color:var(--accent)}.series-nav{width:100%;max-width:var(--measure);margin:calc(-1 * var(--s-2)) auto var(--s-5);padding:var(--s-4) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule-soft)}.series-kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim);margin-bottom:var(--s-2)}.series-nav h2{font-size:clamp(1.15rem,.5vw + 1rem,1.45rem);margin-bottom:var(--s-3)}.series-nav ol{list-style:none;display:grid;gap:var(--s-1);max-width:none}.series-nav li{display:block;max-width:none;font-family:var(--mono);font-size:.74rem;color:var(--paper-dim)}.series-nav li[data-state=current]{color:var(--paper-2)}.series-nav a{color:var(--paper-dim);text-decoration:underline;text-decoration-color:transparent}.series-nav a:hover{color:var(--paper-2);text-decoration-color:var(--accent)}.prose{max-width:var(--measure);margin:0 auto;font-family:var(--serif);font-size:1.075rem;line-height:1.72;color:var(--paper);text-align:left}.article-byline{width:min(100%,var(--measure));max-width:var(--measure);margin:0 auto var(--s-3);font-family:var(--mono);font-size:.72rem;line-height:1.4;text-align:left;text-transform:uppercase;color:var(--paper-dim)}.prose>*+*{margin-top:1.15em}.prose>p:first-of-type:first-letter{font-family:var(--serif);float:left;font-size:3.6em;line-height:.86;padding:.08em .1em 0 0;margin-right:.08em;color:var(--paper-2);font-weight:600}.prose h2{font-family:var(--serif);font-size:1.45rem;font-weight:600;margin-top:2em;color:var(--paper-2);letter-spacing:0}.prose h2:before{content:"§ ";color:var(--paper-mute);font-weight:400}.prose h3{font-family:var(--serif);font-size:1.15rem;font-weight:600;margin-top:1.6em;color:var(--paper-2)}.prose a{color:var(--paper-2);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.22em}.prose a:hover{color:var(--accent)}.prose blockquote{margin-left:0;padding-left:var(--s-5);border-left:2px solid var(--accent);color:var(--paper-dim);font-style:italic}.prose code{font-family:var(--mono);font-size:.9em;background:var(--ink-2);padding:.1em .35em;border-radius:2px;color:var(--paper-2)}.prose pre{font-family:var(--mono);background:var(--ink-2);padding:var(--s-4);overflow-x:auto;border-left:2px solid var(--rule-strong);font-size:.88rem;line-height:1.55}.prose pre code{background:transparent;padding:0}.prose ul,.prose ol{padding-left:1.5em}.prose li+li{margin-top:.4em}.prose hr{margin:2em 0;background:var(--rule)}.prose img{margin:var(--s-5) 0;border:1px solid var(--rule)}.prose figure{margin:var(--s-5) 0}.prose figcaption{margin-top:var(--s-2);color:var(--paper-dim);font-family:var(--mono);font-size:.75rem;letter-spacing:0}.pgp-note{width:100%;max-width:none;margin:var(--s-6) 0 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule-soft);padding:var(--s-3) 0;font-family:var(--mono);font-size:.7rem;line-height:1.55;color:var(--paper-dim)}.pgp-kicker{max-width:none;margin-bottom:var(--s-1);color:var(--paper-2);text-transform:uppercase}.pgp-links,.pgp-fingerprint{max-width:none}.pgp-links{display:flex;flex-wrap:wrap;gap:var(--s-2)}.pgp-note a{color:var(--paper-dim);text-decoration:underline;text-decoration-color:transparent}.pgp-note a:hover{color:var(--paper-2);text-decoration-color:var(--accent)}.pgp-fingerprint{margin-top:var(--s-1);overflow-wrap:anywhere}.canary-card{max-width:var(--measure-wide);border-top:1px solid var(--rule);padding-top:var(--s-5);padding-bottom:var(--s-7)}.canary-card[data-state=stale]{border-top-color:var(--paper)}.canary-signature{max-width:var(--measure);margin-top:var(--s-3);font-family:var(--mono);font-size:.78rem;letter-spacing:0;color:var(--paper-dim)}.canary-dl{margin-bottom:var(--s-4)}.canary-fingerprint{overflow-wrap:anywhere}.canary-empty{max-width:var(--measure);color:var(--paper-dim)}.canary-links{margin-top:var(--s-4)}.fence-shell{position:relative;max-width:var(--measure);margin:0 auto var(--s-6)}.prose.fenced{max-height:26em;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}.fence-seal{max-width:var(--measure);margin:calc(-1 * var(--s-8)) auto 0;border:1px solid var(--rule-strong);background:var(--ink-2);padding:var(--s-6);position:relative;z-index:2}.fence-kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim);margin-bottom:var(--s-3)}.fence-title{font-family:var(--serif);font-size:clamp(1.15rem,.7vw + 1rem,1.4rem);font-weight:600;color:var(--paper-2);margin-bottom:var(--s-3);letter-spacing:0}.fence-note{font-family:var(--serif);color:var(--paper-dim);max-width:48ch;margin:0 0 var(--s-5);font-size:.98rem;line-height:1.55}.fence-actions{display:flex;gap:var(--s-3);flex-wrap:wrap}.progress{position:fixed;top:0;left:0;right:0;height:2px;background:transparent;z-index:60;pointer-events:none}.progress-bar{height:100%;background:var(--accent);width:var(--_w, 0%);transition:width var(--t-fast) linear}.input,input[type=email],input[type=text],input[type=password]{font-family:var(--mono);font-size:.95rem;background:var(--ink-2);color:var(--paper-2);border:1px solid var(--rule-strong);padding:.75em .9em;width:100%;border-radius:2px;transition:border-color var(--t-fast)}.input:focus,input:focus{outline:none;border-color:var(--accent)}.btn{display:inline-block;font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:0;text-transform:uppercase;background:var(--accent);color:var(--ink);border:1px solid var(--accent);padding:.82em 1.4em;cursor:pointer;border-radius:2px;transition:background var(--t-fast),border-color var(--t-fast)}.btn:hover{background:transparent;border-color:var(--accent-hover);color:var(--paper)}.btn--ghost{background:transparent;color:var(--paper);border:1px solid var(--rule-strong)}.btn--ghost:hover{border-color:var(--paper);color:var(--ink);background:var(--paper)}.card{background:var(--ink-2);border:1px solid var(--rule-strong);padding:var(--s-6);border-radius:3px;max-width:var(--measure)}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-4);margin-top:var(--s-5)}.plan{background:var(--ink-2);border:1px solid var(--rule-strong);padding:var(--s-5);border-radius:3px;display:flex;flex-direction:column;gap:var(--s-3);position:relative}.plan h3{font-family:var(--mono);font-size:.72rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim);font-weight:500}.plan .price{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--paper-2);letter-spacing:0}.plan .price small{font-family:var(--mono);font-size:.7rem;color:var(--paper-dim);font-weight:400;margin-left:.3em;letter-spacing:0;text-transform:uppercase}.plan .price-alt{font-size:.72rem;color:var(--paper-dim);letter-spacing:0;margin-top:-.2rem}.plan .note{color:var(--paper-dim);font-size:.94rem;line-height:1.5;flex:1;font-family:var(--serif)}.plan[data-featured=true]{border-color:var(--paper);box-shadow:inset 0 0 0 1px var(--paper)}.dl{display:grid;grid-template-columns:minmax(10ch,max-content) 1fr;gap:var(--s-3) var(--s-6);font-family:var(--mono);font-size:.88rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:var(--s-5) 0}.dl dt{color:var(--paper-dim);font-size:.68rem;letter-spacing:0;text-transform:uppercase;padding-top:.3em}.dl dd{color:var(--paper-2)}.dl dd.muted{color:var(--paper-dim)}.dl dd.accent{color:var(--accent)}.dl dd.amber{color:var(--amber)}.section{margin-top:var(--s-7)}.section-head{font-family:var(--mono);font-size:.7rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim);padding-bottom:var(--s-3);border-bottom:1px solid var(--rule);margin-bottom:var(--s-5)}.notice{border:1px solid var(--rule-strong);background:var(--ink-2);padding:var(--s-4) var(--s-5);display:grid;grid-template-columns:auto 1fr auto;gap:var(--s-4);align-items:center;font-family:var(--serif);color:var(--paper)}.notice[data-kind=warn]{border-color:var(--amber)}.notice[data-kind=warn] .notice-label{color:var(--amber)}.notice[data-kind=danger]{border-color:var(--accent)}.notice[data-kind=danger] .notice-label{color:var(--accent)}.notice-label{font-family:var(--mono);font-size:.7rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim)}.notice-body{font-size:.96rem;line-height:1.5}@media (max-width: 640px){.notice{grid-template-columns:1fr}}.foot{margin-top:var(--s-9);border-top:1px solid var(--rule-soft);padding:var(--s-5) 0 var(--s-6);font-family:var(--mono);font-size:.72rem;letter-spacing:0;text-transform:uppercase;color:var(--paper-dim)}.foot-inner{max-width:1100px;margin-inline:auto;padding-inline:clamp(1rem,3vw,2rem);display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-5);justify-content:space-between;align-items:baseline}.foot a{color:var(--paper-dim)}.foot a:hover{color:var(--paper)}.foot .links{display:flex;flex-wrap:wrap;gap:var(--s-5)}.mono{font-family:var(--mono)}.sans{font-family:var(--sans)}.serif{font-family:var(--serif)}.dim{color:var(--paper-dim)}.bright{color:var(--paper-2)}.accent{color:var(--accent)}.amber{color:var(--amber)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0ms!important;animation-duration:0ms!important}html{scroll-behavior:auto}}
