@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/archivo-latin-800-normal.cB6v3kRN.woff2) format("woff2"),url(/_astro/archivo-latin-800-normal.DZa_k145.woff) format("woff")}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-italic.DKMiL14s.woff2) format("woff2"),url(/_astro/instrument-serif-latin-400-italic.u__WvvIK.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff")}:root{--c-ink: #0e0e10;--c-ink-2: #17171a;--c-cream: #f4efe6;--c-cream-2: #fbf8f2;--c-coral: #e8572a;--c-coral-lit: #f06e43;--c-coral-deep: #b53d18;--c-violet: #8b6cf0;--c-lime: #c6f432;--f-display: "Archivo", "Helvetica Neue", Arial, sans-serif;--f-serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;--f-body: "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--t-xs: .75rem;--t-sm: .875rem;--t-md: 1rem;--t-lg: 1.25rem;--t-xl: clamp(1.4rem, 1.1rem + 1.2vw, 2rem);--t-2xl: clamp(2rem, 1.2rem + 3.2vw, 3.6rem);--t-3xl: clamp(2.6rem, 1rem + 6vw, 6rem);--t-hero: clamp(3rem, 9vw, 7.5rem);--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: 7rem;--gutter: clamp(1rem, 4vw, 2rem);--measure: 70ch;--wrap: 76rem;--r-s: 4px;--r-m: 10px;--r-l: 18px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .18), 0 8px 24px rgba(0, 0, 0, .14);--shadow-2: 0 2px 4px rgba(0, 0, 0, .2), 0 18px 44px rgba(0, 0, 0, .26);--dur-fast: .15s;--dur: .25s;--dur-slow: .4s;--dur-reveal: .6s;--ease: cubic-bezier(.2, .7, .2, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}.s-base,.tone-cream,:root[data-theme=dark] .s-alt{--bg: var(--c-cream);--fg: #14120f;--mut: #5d574c;--line: rgba(20, 18, 15, .16);--acc: var(--c-coral-deep);--card: var(--c-cream-2);--card-fg: #14120f;--card-mut: #5d574c;--card-acc: var(--c-coral-deep);--chip-bg: rgba(20, 18, 15, .08);--chip-fg: #14120f;--focus: var(--c-coral-deep)}.s-alt,.tone-dark,:root[data-theme=dark] .s-base{--bg: var(--c-ink);--fg: var(--c-cream);--mut: #a8a296;--line: rgba(244, 239, 230, .16);--acc: var(--c-coral-lit);--card: var(--c-ink-2);--card-fg: var(--c-cream);--card-mut: #a8a296;--card-acc: var(--c-coral-lit);--chip-bg: rgba(244, 239, 230, .1);--chip-fg: var(--c-cream);--focus: var(--c-coral-lit)}:root[data-theme=dark] .s-alt{--bg: var(--c-cream);--fg: #14120f;--mut: #5d574c;--line: rgba(20, 18, 15, .16);--acc: var(--c-coral-deep);--card: var(--c-cream-2);--card-fg: #14120f;--card-mut: #5d574c;--card-acc: var(--c-coral-deep);--chip-bg: rgba(20, 18, 15, .08);--chip-fg: #14120f;--focus: var(--c-coral-deep)}:root[data-theme=light] .s-alt{--bg: var(--c-ink);--fg: var(--c-cream);--mut: #a8a296;--line: rgba(244, 239, 230, .16);--acc: var(--c-coral-lit);--card: var(--c-ink-2);--card-fg: var(--c-cream);--card-mut: #a8a296;--card-acc: var(--c-coral-lit);--chip-bg: rgba(244, 239, 230, .1);--chip-fg: var(--c-cream);--focus: var(--c-coral-lit)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .s-base{--bg: var(--c-ink);--fg: var(--c-cream);--mut: #a8a296;--line: rgba(244, 239, 230, .16);--acc: var(--c-coral-lit);--card: var(--c-ink-2);--card-fg: var(--c-cream);--card-mut: #a8a296;--card-acc: var(--c-coral-lit);--chip-bg: rgba(244, 239, 230, .1);--chip-fg: var(--c-cream);--focus: var(--c-coral-lit)}:root:not([data-theme]) .s-alt{--bg: var(--c-cream);--fg: #14120f;--mut: #5d574c;--line: rgba(20, 18, 15, .16);--acc: var(--c-coral-deep);--card: var(--c-cream-2);--card-fg: #14120f;--card-mut: #5d574c;--card-acc: var(--c-coral-deep);--chip-bg: rgba(20, 18, 15, .08);--chip-fg: #14120f;--focus: var(--c-coral-deep)}}.s-coral,.tone-coral{--bg: var(--c-coral);--fg: var(--c-ink);--mut: #1a0a05;--line: rgba(14, 14, 16, .3);--acc: var(--c-ink);--card: var(--c-ink);--card-fg: var(--c-cream);--card-mut: #b9b3a7;--card-acc: var(--c-coral-lit);--chip-bg: rgba(14, 14, 16, .14);--chip-fg: var(--c-ink);--focus: var(--c-ink)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;font-family:var(--f-body);font-size:var(--t-md);line-height:1.6;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}img,svg{max-width:100%}a{color:var(--acc);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}::selection{background:var(--c-coral);color:var(--c-ink)}h1,h2,h3,h4{font-family:var(--f-display);font-weight:800;color:var(--fg);margin:0}h1,h2{text-transform:uppercase;line-height:.95;letter-spacing:-.02em}h1{font-size:var(--t-3xl)}h2{font-size:var(--t-2xl)}h3{font-size:var(--t-xl);line-height:1.1;letter-spacing:-.01em}p{margin:0 0 var(--s-4)}.serif{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:0;text-transform:none}.mono{font-family:var(--f-mono);font-weight:500;font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase}.mut{color:var(--mut)}em.hl,.hl{font-style:normal;color:var(--acc)}.s-coral .hl{color:var(--c-ink);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.12em}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}.skip{position:absolute;left:-9999px;top:0;background:var(--c-cream);color:var(--c-ink);padding:.5rem 1rem;z-index:100}.skip:focus{left:0}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.section{position:relative;isolation:isolate;background:var(--bg);color:var(--fg);padding-block:clamp(3.5rem,8vw,7rem);overflow:hidden}.section>.wrap{position:relative;z-index:1}.section.tight{padding-block:clamp(2rem,4vw,3.5rem)}.bg{position:absolute;inset:0;z-index:0;pointer-events:none}.bg-grid{background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:56px 56px;opacity:.55;-webkit-mask-image:radial-gradient(ellipse at 30% 20%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse at 30% 20%,#000 20%,transparent 75%)}.bg-dots{background-image:radial-gradient(var(--line) 1.2px,transparent 1.6px);background-size:22px 22px;opacity:.9;-webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000 15%,transparent 72%);mask-image:radial-gradient(ellipse at 70% 30%,#000 15%,transparent 72%)}.grid{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}.stack>*+*{margin-top:var(--s-4)}.row{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center}.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--f-mono);font-weight:500;font-size:var(--t-sm);letter-spacing:.04em;text-transform:uppercase;padding:.85rem 1.25rem;border-radius:var(--r-pill);border:1.5px solid transparent;text-decoration:none;cursor:pointer;line-height:1;transition:transform var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.btn .arrow{transition:transform var(--dur-fast) var(--ease)}.btn:hover .arrow{transform:translate(3px)}.btn-primary{background:var(--c-coral);color:var(--c-ink)}.btn-primary:hover{background:var(--c-coral-lit);transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--fg);border-color:var(--fg)}.btn-ghost:hover{background:var(--fg);color:var(--bg);transform:translateY(-2px)}.s-coral .btn-primary{background:var(--c-ink);color:var(--c-cream)}.s-coral .btn-primary:hover{background:#26262b}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-flex;align-items:center;font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.02em;padding:.28rem .6rem;border-radius:var(--r-s);border:0;background:var(--chip-bg);color:var(--chip-fg);white-space:nowrap}.chip-accent{background:var(--c-coral);color:var(--c-ink)}.chip-violet{background:var(--c-violet);color:var(--c-ink)}.chip-lime{background:var(--c-lime);color:var(--c-ink)}.card{position:relative;display:flex;flex-direction:column;gap:var(--s-3);background:var(--card);color:var(--card-fg);border:1px solid var(--line);border-radius:var(--r-m);padding:var(--s-5);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.card h3,.card h4{color:var(--card-fg)}.card p{color:var(--card-mut);margin:0}.card:hover,.card:focus-within{transform:translateY(-4px);border-color:var(--c-coral);box-shadow:var(--shadow-1)}.card a.stretch:after{content:"";position:absolute;inset:0;border-radius:inherit}.card a.stretch{color:inherit;text-decoration:none}.card .idx{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;color:var(--card-acc)}.sh{display:grid;gap:var(--s-3);margin-bottom:var(--s-7);max-width:56rem}.sh .eyebrow{display:flex;align-items:center;gap:var(--s-3);color:var(--acc)}.sh .eyebrow:before{content:"";width:2.2rem;height:2px;background:currentColor}.sh .lead{font-family:var(--f-serif);font-style:italic;font-size:var(--t-xl);line-height:1.25;color:var(--mut);margin:0}.s-coral .sh .eyebrow,.s-coral .sh .lead{color:var(--c-ink)}.frame{position:relative;padding:clamp(1.25rem,3vw,2.25rem)}.frame>.corner{position:absolute;width:22px;height:22px;border:0 solid var(--fg);pointer-events:none;opacity:.85}.frame>.tl{top:0;left:0;border-top-width:2px;border-left-width:2px}.frame>.tr{top:0;right:0;border-top-width:2px;border-right-width:2px}.frame>.bl{bottom:0;left:0;border-bottom-width:2px;border-left-width:2px}.frame>.br{bottom:0;right:0;border-bottom-width:2px;border-right-width:2px}.frame>.tc{position:absolute;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}.frame>.tc-tl{top:.6rem;left:2rem}.frame>.tc-tr{top:.6rem;right:2rem}.frame>.tc-bl{bottom:.6rem;left:2rem}.frame>.tc-br{bottom:.6rem;right:2rem}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);align-items:center;justify-content:space-between;padding-block:.7rem}.brand{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;text-decoration:none;color:var(--fg);display:inline-flex;align-items:center;gap:.5rem}.brand:before{content:"";width:.7rem;height:.7rem;background:var(--c-coral);border-radius:50%}.site-header nav{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);align-items:center}.site-header nav a:not(.btn){font-family:var(--f-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;color:var(--fg);padding-block:.4rem;border-bottom:2px solid transparent;transition:border-color var(--dur-fast) var(--ease)}.site-header nav a:not(.btn):hover,.site-header nav a[aria-current=page]{border-bottom-color:var(--c-coral)}.theme-toggle{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.theme-toggle:hover{border-color:var(--c-coral);transform:rotate(18deg)}.theme-toggle svg{width:1.1rem;height:1.1rem}.theme-toggle .i-sun{display:none}:root[data-theme=dark] .theme-toggle .i-sun{display:block}:root[data-theme=dark] .theme-toggle .i-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme]) .theme-toggle .i-sun{display:block}:root:not([data-theme]) .theme-toggle .i-moon{display:none}}.site-footer{background:var(--bg);color:var(--fg);border-top:1px solid var(--line);padding-block:var(--s-6)}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);justify-content:space-between;align-items:center}.site-footer a{color:var(--fg)}.hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(3rem,7vw,6rem)}.hero-grid{display:grid;gap:var(--s-7);align-items:end}@media(min-width:75rem){.hero-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}}.hero h1{font-size:var(--t-hero);line-height:.88;letter-spacing:-.035em;font-weight:800}.hero h1 .line{display:block;white-space:nowrap}.ch{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}.ch>span{display:inline-block;animation:rise .7s var(--ease) both;animation-delay:calc(var(--i) * 45ms + .12s)}.hero h1 .hl{color:var(--c-coral)}@keyframes rise{0%{transform:translateY(105%)}to{transform:none}}.hero .role{color:var(--acc);margin-bottom:var(--s-4)}.hero .sub{font-family:var(--f-serif);font-style:italic;font-size:clamp(1.5rem,1rem + 2vw,2.4rem);line-height:1.12;margin:var(--s-5) 0 var(--s-4);max-width:34ch;color:var(--fg)}.hero .sub .hl{color:var(--acc)}.hero .summary{max-width:58ch;color:var(--mut)}.hero .where{color:var(--mut)}.hero .fade{animation:fadeup .6s var(--ease) both;animation-delay:.7s}@keyframes fadeup{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}.words .w>span{display:inline-block}.words .w.em>span{color:var(--acc)}.s-coral .words .w.em>span{color:var(--c-ink);font-family:var(--f-serif);font-style:italic;text-transform:none;font-weight:400}.words .w.serif>span{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0}@media(prefers-reduced-motion:no-preference){html.js .reveal:not(.in){opacity:0;transform:translateY(14px)}html.js .reveal.in{animation:revealin var(--dur-reveal) var(--ease) backwards;animation-delay:calc(var(--d, 0) * 80ms)}html.js .words:not(.in) .w>span{transform:translateY(110%)}html.js .words .w>span{transition:transform .6s var(--ease);transition-delay:calc(var(--i) * 45ms)}html.js .words.in .w>span{transform:none}}@keyframes revealin{0%{opacity:0;transform:translateY(14px)}}.metrics{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}.metric{position:relative;display:flex;flex-direction:column;gap:var(--s-2);background:var(--card);color:var(--card-fg);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--s-5);min-height:12rem;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.metric:hover{transform:translateY(-4px);border-color:var(--c-coral);box-shadow:var(--shadow-1)}.metric .num{font-family:var(--f-display);font-weight:800;font-size:clamp(2.6rem,2rem + 3vw,4.4rem);line-height:.95;letter-spacing:-.03em;color:var(--card-fg);font-variant-numeric:tabular-nums}.metric .num.text{font-size:clamp(1.6rem,1.3rem + 1.4vw,2.3rem);line-height:1.05}.metric .num .pre,.metric .num .suf{color:var(--card-acc)}.metric .label{color:var(--card-fg);font-size:var(--t-sm);line-height:1.35;margin:0}.metric .src{color:var(--card-mut);font-family:var(--f-mono);font-size:10px;letter-spacing:.04em;margin:auto 0 0;padding-top:var(--s-3)}.metric .ctx{margin:0;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--card-mut)}.metric.accent .ctx{color:var(--c-ink)}.metric .ring-label{margin:0;align-self:center;max-width:14rem;font-size:var(--t-sm);line-height:1.35;color:var(--card-fg)}.metric.accent .ring-label{color:var(--c-ink)}.metric .go{align-self:flex-start;font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;color:var(--card-acc);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}.metric .go:hover{color:var(--c-coral)}.metric.accent .go{color:var(--c-ink)}.metric .src+.go{margin-top:var(--s-1)}.metric .gain{margin:0;padding-left:.7rem;border-left:2px solid var(--c-coral);font-size:var(--t-sm);line-height:1.35;font-weight:600;color:var(--card-fg)}.metric.accent .gain{border-left-color:var(--c-ink);color:var(--c-ink)}.pillar-gain{margin:var(--s-3) 0 0;padding-left:.7rem;border-left:2px solid var(--c-coral);font-weight:600}.metric .viz{display:flex;align-items:flex-end;gap:var(--s-4);margin-top:var(--s-2)}.metric.accent{background:var(--c-coral);color:var(--c-ink);border-color:transparent}.metric.accent .num,.metric.accent .label,.metric.accent .num .pre,.metric.accent .num .suf,.metric.accent .src{color:var(--c-ink)}.metric.compact{min-height:0;padding:var(--s-4)}.metric.compact .num{font-size:clamp(1.9rem,1.5rem + 1.6vw,2.8rem)}.ring{flex:none;width:5.2rem;height:5.2rem;position:relative}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring .track{fill:none;stroke:var(--line);stroke-width:7}.ring .arc{fill:none;stroke:var(--c-coral);stroke-width:7;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--pct) * 100);transition:stroke-dashoffset 1s var(--ease-in-out)}.metric.accent .ring .arc{stroke:var(--c-ink)}.ring .pct{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-mono);font-size:11px;font-weight:500;color:var(--card-fg)}.metric.accent .ring .pct{color:var(--c-ink)}.bars{display:flex;align-items:flex-end;gap:6px;height:4.2rem;flex:1;min-width:5rem}.bars>span{flex:1;height:calc(var(--h) * 100%);min-height:4px;background:color-mix(in srgb,var(--card-fg) 28%,transparent);border-radius:3px 3px 0 0;transform-origin:bottom;transition:transform .7s var(--ease);transition-delay:calc(var(--i) * 90ms)}.bars>span.hot{background:var(--c-coral)}.metric.accent .bars>span{background:#0e0e1059}.metric.accent .bars>span.hot{background:var(--c-ink)}.legend{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .9rem;font-family:var(--f-mono);font-size:10px;letter-spacing:.03em;color:var(--card-mut)}.metric.accent .legend{color:var(--c-ink)}.legend b{font-weight:500;color:var(--card-fg)}.metric.accent .legend b{color:var(--c-ink)}@media(prefers-reduced-motion:no-preference){html.js .metric:not(.in) .arc{stroke-dashoffset:100}html.js .metric:not(.in) .bars>span{transform:scaleY(0)}}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--s-4)}.prose h2{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.4rem);margin-top:var(--s-8);padding-top:var(--s-5);border-top:2px solid var(--fg);display:flex;gap:var(--s-3);align-items:baseline}.prose h2:first-child{margin-top:0}.prose h3{margin-top:var(--s-6)}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:var(--s-2)}.prose li::marker{color:var(--acc)}.prose code{font-family:var(--f-mono);font-size:.88em;background:var(--chip-bg);padding:.1em .35em;border-radius:var(--r-s)}.prose strong{color:var(--fg)}.prose blockquote{margin-inline:0;padding-left:var(--s-5);border-left:3px solid var(--c-coral);font-family:var(--f-serif);font-style:italic;font-size:var(--t-xl);line-height:1.3}.prose .tablewrap,.tablewrap{overflow-x:auto;max-width:100%}.prose table,.dt{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--t-sm);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}.prose-wide{max-width:none}.prose table{display:block;overflow-x:auto}.prose th,.prose td,.dt th,.dt td{padding:.8rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.prose th:last-child,.prose td:last-child,.dt th:last-child,.dt td:last-child{border-right:0}.prose tr:last-child td,.dt tr:last-child td{border-bottom:0}.prose thead th,.dt thead th{background:var(--fg);color:var(--bg);font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;white-space:nowrap}.prose tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--fg) 4%,transparent)}.prose tbody td:first-child{font-weight:600;color:var(--fg);min-width:11rem}.prose-wide table{display:table}.demo iframe{width:100%;height:640px;border:0;display:block;background:#fff;border-radius:2px}.demo .links{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);margin-top:var(--s-4)}.chart{margin:var(--s-6) 0;max-width:100%}.chart figcaption{font-family:var(--f-mono);font-size:11px;color:var(--mut);margin-top:var(--s-2);letter-spacing:.02em}.chart .ct{font-family:var(--f-display);font-weight:800;font-size:var(--t-lg);margin:0 0 var(--s-2);color:var(--fg)}.chart .cd{color:var(--mut);font-size:var(--t-sm);margin:0 0 var(--s-4);max-width:60ch}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart svg text{font-family:var(--f-mono);font-size:11px;fill:var(--fg)}.chart svg .muted{fill:var(--mut)}.chart svg .big{font-family:var(--f-display);font-weight:800;font-size:15px}.chart .mark{outline:none}.chart .mark .tip{opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}.chart .mark:hover .tip,.chart .mark:focus .tip{opacity:1}.chart .mark:focus .shape,.chart .mark:hover .shape{stroke:var(--fg);stroke-width:2}.chart .mark:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.chart .tip rect{fill:var(--fg)}.chart .tip text{fill:var(--bg)}.chart details{margin-top:var(--s-3);font-size:var(--t-sm)}.chart summary{cursor:pointer;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}.chart details table{margin-top:var(--s-2);border-collapse:collapse;width:100%;max-width:40rem}.chart details th,.chart details td{border:1px solid var(--line);padding:.35rem .6rem;text-align:left;font-size:12px}.chart .key{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-family:var(--f-mono);font-size:11px;margin:0 0 var(--s-3);padding:0;list-style:none}.chart .key i{display:inline-block;width:.8rem;height:.8rem;border-radius:2px;margin-right:.4rem;vertical-align:-1px}.matrix-wrap{overflow-x:auto}.matrix{border-collapse:collapse;width:100%;font-size:var(--t-sm);min-width:44rem}.matrix th,.matrix td{border:1px solid var(--line);padding:.5rem .6rem;text-align:center}.matrix thead th{font-family:var(--f-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;background:var(--fg);color:var(--bg);font-weight:500}.matrix tbody th{text-align:left;font-weight:600}.matrix abbr{text-decoration:none;color:var(--acc);font-weight:800;cursor:help}.timeline{position:relative;display:grid;gap:var(--s-5)}.tl-entry{position:relative;display:grid;gap:var(--s-2);padding:var(--s-5);border:1px solid var(--line);border-left:4px solid var(--fg);border-radius:var(--r-m);background:var(--card);color:var(--card-fg);transition:opacity var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.tl-entry[data-lane=parallel]{margin-left:clamp(0rem,4vw,3rem);border-left-color:var(--c-coral)}.tl-entry .when{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--card-acc)}.tl-entry h3{color:var(--card-fg);font-size:var(--t-lg)}.tl-entry .org{color:var(--card-mut);font-size:var(--t-sm);margin:0}.tl-entry ul{margin:var(--s-3) 0 0;padding-left:1.1rem;color:var(--card-fg);font-size:var(--t-sm)}.tl-entry li+li{margin-top:.5rem}.tl-entry li::marker{color:var(--card-acc)}.tl-entry .note{font-family:var(--f-mono);font-size:11px;color:var(--card-mut)}.tl-entry .links{display:flex;gap:var(--s-4);font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.tl-entry .links a{color:var(--card-acc)}.tl-entry.is-related{border-color:var(--c-coral);transform:translate(4px)}.tl-entry.is-dim{opacity:.4}.skill-groups{display:grid;gap:var(--s-6)}.skill-group h3{font-size:var(--t-lg);margin-bottom:var(--s-3)}.skill-group .chips{gap:.5rem}.chip-btn{font:inherit;font-family:var(--f-mono);font-size:11px;background:var(--chip-bg);color:var(--chip-fg);border:1px solid transparent;border-radius:var(--r-s);padding:.35rem .65rem;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.chip-btn:hover,.chip-btn:focus-visible,.chip-btn.is-active{border-color:var(--c-coral);background:color-mix(in srgb,var(--c-coral) 18%,var(--chip-bg))}.skill-chip{display:inline-flex;flex-direction:column;gap:.25rem;vertical-align:top}.rel{list-style:none;margin:0;padding:0;font-size:11px;font-family:var(--f-mono)}.rel a{color:var(--acc)}html.js .rel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}html.js .skill-chip:hover .rel,html.js .skill-chip:focus-within .rel{position:static;width:auto;height:auto;overflow:visible;clip:auto}.two-col{display:grid;gap:var(--s-7)}@media(min-width:60rem){.two-col{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}}.credits{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-6);color:var(--mut);margin:var(--s-4) 0}.credits b{color:var(--fg);font-weight:500}.back{display:inline-block;margin-bottom:var(--s-5);color:var(--mut);text-decoration:none}.back:hover{color:var(--acc)}.pcard h3{font-size:var(--t-lg)}.pcard .status{margin-top:auto;color:var(--card-mut)}.ph1{font-size:clamp(2.2rem,1rem + 5.2vw,5rem);line-height:.95}.cv-head,.project-head{padding-block:clamp(2rem,5vw,4rem)}.prose h1{font-size:clamp(2.4rem,1.2rem + 5vw,4.6rem);margin-bottom:var(--s-6)}.bigquote{font-family:var(--f-serif);font-style:italic;font-size:clamp(1.8rem,1.1rem + 3vw,3.6rem);line-height:1.1;max-width:26ch;margin:0 0 var(--s-6)}.swatches{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}.swatch{border-radius:var(--r-m);padding:var(--s-4);min-height:6rem;display:flex;flex-direction:column;justify-content:flex-end;font-family:var(--f-mono);font-size:11px;border:1px solid var(--line)}.specimen{border-top:1px solid var(--line);padding-block:var(--s-4);display:grid;gap:var(--s-2)}@view-transition{navigation:auto}::view-transition-old(root){animation:.2s var(--ease) both vt-out}::view-transition-new(root){animation:.3s var(--ease) both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.reveal,.words .w>span,.ch>span{opacity:1!important;transform:none!important}}.card .pthumb{display:block;margin:calc(-1 * var(--s-5)) calc(-1 * var(--s-5)) var(--s-2);border-radius:var(--r-m) var(--r-m) 0 0;overflow:hidden;border-bottom:1px solid var(--line);line-height:0}.card .pthumb img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;object-position:top;transition:transform var(--dur-slow) var(--ease)}.card:hover .pthumb img{transform:scale(1.03)}@media(prefers-reduced-motion:reduce){.card:hover .pthumb img{transform:none}.card .pthumb img{transition:none}}.with-rail{display:flex;flex-direction:column;gap:var(--s-5)}.rail{order:-1}.rail-block{margin:0}.rail-block:not(.rail-pitch){display:none}.rail-h{color:var(--acc, var(--c-coral));margin:0 0 var(--s-2)}.rail-pitch{border-left:3px solid var(--c-coral);padding:var(--s-2) 0 var(--s-2) var(--s-4)}.rail-text{margin:0;font-family:var(--f-serif);font-size:var(--t-lg, 1.25rem);line-height:1.3}.rail-bar{height:3px;background:var(--line);border-radius:2px;overflow:hidden;margin-bottom:var(--s-3)}.rail-bar>span{display:block;height:100%;background:var(--c-coral);transform:scaleX(0);transform-origin:left}.rail-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}.rail-toc a{display:grid;grid-template-columns:1.8rem 1fr;gap:var(--s-2);padding:.4rem .6rem;border-left:2px solid var(--line);font-size:var(--t-sm);line-height:1.3;text-decoration:none;color:var(--mut);transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.rail-toc a .mono{font-size:11px;color:var(--mut)}.rail-toc a:hover{color:var(--fg)}.rail-toc a[aria-current]{color:var(--fg);border-left-color:var(--c-coral);background:color-mix(in srgb,var(--c-coral) 10%,transparent);font-weight:600}.rail-img{line-height:0;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:var(--card)}.rail-img img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;object-position:top;transition:transform var(--dur-slow) var(--ease)}.rail-img:hover img{transform:scale(1.03)}.rail-btns{gap:var(--s-2);flex-wrap:wrap}.rail-btns .btn{padding:.55rem .9rem;font-size:var(--t-xs)}@media(min-width:1100px){.with-rail{display:grid;grid-template-columns:minmax(0,var(--measure)) 20rem;justify-content:space-between;gap:var(--s-8);align-items:start}.rail{order:0;position:sticky;top:5.5rem;display:grid;gap:var(--s-5);max-height:calc(100vh - 6.5rem);overflow-y:auto;scrollbar-width:thin;padding-right:2px}.rail-block:not(.rail-pitch){display:block}.rail-btns{display:flex}.rail-pitch{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--c-coral);border-radius:var(--r-m);padding:var(--s-4)}.rail-text{font-size:var(--t-md, 1.1rem)}}@media(prefers-reduced-motion:reduce){.rail-img img,.rail-toc a{transition:none}.rail-img:hover img{transform:none}}.dg-f{fill:none;stroke:var(--dg-accent);stroke-width:2.4;stroke-dasharray:5 11;opacity:0}@media(prefers-reduced-motion:no-preference){html.js .dg:not(.dg-in) .dg-b,html.js .dg:not(.dg-in) .dg-l,html.js .dg:not(.dg-in) .dg-n{opacity:0}html.js .dg:not(.dg-in) .dg-a{stroke-dashoffset:100;marker-end:none}html.js .dg .dg-b,html.js .dg .dg-l,html.js .dg .dg-n{transform-box:fill-box}html.js .dg.dg-in .dg-b{animation:dg-pop .52s var(--ease) backwards;animation-delay:calc(var(--i) * .15s)}html.js .dg.dg-in .dg-a{stroke-dasharray:100;animation:dg-draw .65s ease-out backwards;animation-delay:calc(var(--i) * .15s + .25s)}html.js .dg.dg-in .dg-l{animation:dg-fade .4s ease-out backwards;animation-delay:calc(var(--i) * .15s + .65s)}html.js .dg.dg-in .dg-n{animation:dg-fade .6s ease-out backwards;animation-delay:.9s}html.js .dg.dg-in .dg-f{animation:dg-fade-to .5s ease-out forwards,dg-flow 1.5s linear infinite;animation-delay:calc(var(--i) * .15s + .95s),0s}}@keyframes dg-pop{0%{opacity:0;transform:translateY(8px)}}@keyframes dg-fade{0%{opacity:0}}@keyframes dg-fade-to{to{opacity:.85}}@keyframes dg-draw{0%{stroke-dashoffset:100;marker-end:none}85%{stroke-dashoffset:0;marker-end:none}}@keyframes dg-flow{to{stroke-dashoffset:-16}}
