.nav-links a[aria-current=page]{color:var(--paper);background:#eceae41a}.page-hero{position:relative;padding:clamp(140px,16vw,200px) 0 clamp(56px,7vw,96px);overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line)}.page-hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 70% at 85% 0%,color-mix(in srgb,var(--accent, var(--signal)) 16%,transparent),transparent 70%),linear-gradient(rgba(236,234,228,.035) 1px,transparent 1px) 0 0 / 100% 64px,linear-gradient(90deg,rgba(236,234,228,.035) 1px,transparent 1px) 0 0 / 64px 100%;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)}.page-hero--tight{padding-bottom:72px;min-height:70vh;display:grid;align-items:center}.page-title{max-width:16ch;font-size:clamp(48px,7.6vw,120px);font-weight:750;line-height:.92;letter-spacing:-.05em}.page-title .serif{display:block;font-weight:400;letter-spacing:-.035em;color:var(--paper-2)}.page-lede{max-width:60ch;margin-top:28px;font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--paper-2)}.page-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:30px;font:500 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.page-meta b{color:var(--paper);font-weight:500}.crumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;font:500 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.crumbs a{color:var(--paper-2);text-decoration:none}.crumbs a:hover{color:var(--signal)}.crumbs span[aria-hidden]{color:var(--line-2)}.section{padding-block:clamp(64px,8vw,112px)}.section+.section{border-top:1px solid var(--line)}.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:40px}.section-head h2{font-size:clamp(32px,4vw,56px);font-weight:750;letter-spacing:-.04em;line-height:1}.section-head h2 .serif{color:var(--paper-2)}.section-head p{max-width:52ch;color:var(--paper-2)}.link-arrow{display:inline-flex;align-items:center;gap:8px;color:var(--paper);font:500 12px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.link-arrow:after{content:"\2192";transition:transform .4s var(--ease-out)}.link-arrow:hover{color:var(--signal)}.link-arrow:hover:after{transform:translate(4px)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip-btn{padding:9px 15px;border-radius:999px;border:1px solid var(--line-2);background:#eceae408;color:var(--paper-2);font:500 12px var(--f-mono);letter-spacing:.04em;text-decoration:none;transition:background .3s,color .3s,border-color .3s}.chip-btn:hover{color:var(--paper);border-color:#eceae459}.chip-btn[aria-pressed=true],.chip-btn[aria-current=page]{background:var(--paper);border-color:var(--paper);color:var(--ink-1)}.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.post-card{position:relative;display:flex;flex-direction:column;gap:16px;padding:clamp(24px,2.4vw,34px);border-radius:24px;border:1px solid var(--line-2);background:var(--ink-2);color:var(--paper);text-decoration:none;transition:border-color .4s,transform .6s var(--ease-out),background .4s}.post-card:hover{border-color:#eceae44d;transform:translateY(-4px);background:#121820}.post-card .post-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.post-card h3{font-size:clamp(24px,2.2vw,32px);font-weight:700;line-height:1.08;letter-spacing:-.03em}.post-card .post-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.result-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#3be37f1a;color:var(--ok);font:600 12px var(--f-mono)}.result-chip:before{content:"\25b2";font-size:9px}.result-chip.down:before{content:"\25bc"}.post-card .read{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-2)}.post-card--feature{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px 48px;padding:clamp(28px,3.4vw,48px);background:radial-gradient(80% 120% at 0% 0%,rgba(255,107,53,.12),transparent 60%),var(--ink-2)}.post-card--feature h3{font-size:clamp(30px,3.4vw,52px)}.post-card--feature .post-foot{grid-column:1 / -1}.ps-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(40px,5vw,64px);border:1px solid var(--line-2);border-radius:24px;overflow:hidden;background:var(--ink-2)}.ps-card>div{padding:clamp(22px,2.6vw,34px)}.ps-card>div+div{border-left:1px solid var(--line)}.ps-card h2{display:flex;align-items:center;gap:10px;margin-bottom:12px;font:600 11px var(--f-mono);letter-spacing:.14em;text-transform:uppercase}.ps-card h2 i{width:8px;height:8px;border-radius:50%}.ps-card .ps-p h2{color:#ff8a8a}.ps-card .ps-p h2 i{background:#ff6b6b}.ps-card .ps-s h2{color:#4fd8c8}.ps-card .ps-s h2 i{background:var(--teal)}.ps-card p{font-size:17px;line-height:1.55;color:var(--paper)}.ps-results{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-top:1px solid var(--line)}.ps-results>div{padding:22px clamp(22px,2.6vw,34px)}.ps-results>div+div{border-left:1px solid var(--line)}.ps-results b{display:block;font-size:clamp(28px,2.8vw,40px);font-weight:700;letter-spacing:-.04em;line-height:1}.ps-results span{display:block;margin-top:8px;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.article{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(32px,6vw,96px);align-items:start;padding-block:clamp(48px,6vw,80px) clamp(72px,9vw,120px)}.toc{position:sticky;top:110px;font-size:14px}.toc p{margin-bottom:12px;font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.toc ol{display:grid;gap:2px;border-left:1px solid var(--line-2)}.toc a{display:block;padding:6px 0 6px 16px;margin-left:-1px;border-left:1px solid transparent;color:var(--paper-2);text-decoration:none;line-height:1.35;transition:color .3s,border-color .3s}.toc a:hover{color:var(--paper)}.toc a.is-active{color:var(--paper);border-left-color:var(--signal)}.toc .toc-share{display:grid;gap:8px;margin-top:32px}.toc .toc-share a,.toc .toc-share button{padding:0;border:0;color:var(--paper-2);font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;text-align:left}.prose{max-width:70ch;font-size:18px;line-height:1.75;color:#d6d8dc}.prose>*+*{margin-top:1.15em}.prose h2{margin-top:2.2em;font-size:clamp(28px,2.6vw,36px);font-weight:700;line-height:1.12;letter-spacing:-.03em;color:var(--paper);scroll-margin-top:110px}.prose h3{margin-top:1.8em;font-size:22px;font-weight:650;line-height:1.25;letter-spacing:-.02em;color:var(--paper);scroll-margin-top:110px}.prose h2 a,.prose h3 a{color:inherit;text-decoration:none}.prose h2 a:hover:after,.prose h3 a:hover:after{content:" #";color:var(--signal)}.prose a{color:var(--signal-2);text-decoration-thickness:1px;text-underline-offset:3px}.prose strong{color:var(--paper);font-weight:650}.prose ul,.prose ol{padding-left:1.3em}.prose ul{list-style:none;padding-left:0}.prose ul>li{position:relative;padding-left:1.5em}.prose ul>li:before{content:"\2192";position:absolute;left:0;color:var(--mute)}.prose ol{list-style:decimal}.prose ol>li::marker{color:var(--mute);font-family:var(--f-mono);font-size:.85em}.prose li+li{margin-top:.45em}.prose blockquote{padding:4px 0 4px 22px;border-left:2px solid var(--signal);font-family:var(--f-serif);font-style:italic;font-size:1.3em;line-height:1.45;color:var(--paper)}.prose code{padding:.12em .4em;border-radius:6px;background:#eceae414;font:500 .86em var(--f-mono);color:var(--paper)}.prose pre{padding:20px 22px;border-radius:16px;border:1px solid var(--line-2);background:#07090c;overflow-x:auto;font-size:14px;line-height:1.65}.prose pre code{padding:0;background:none;font-size:1em;color:#c9cdd3}.prose hr{height:1px;margin-block:2.6em;border:0;background:var(--line-2)}.prose table{width:100%;border-collapse:collapse;font-size:15px}.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}.prose th{font:600 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.prose figure img{border-radius:16px;border:1px solid var(--line-2)}.prose figcaption{margin-top:10px;font:500 12px var(--f-mono);color:var(--mute)}.callout{padding:20px 22px;border-radius:16px;border:1px solid var(--line-2);background:#eceae408;font-size:16px;line-height:1.6}.callout strong:first-child{display:block;margin-bottom:6px;font:600 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal)}.post-end{display:grid;gap:40px;padding-block:clamp(56px,7vw,96px);border-top:1px solid var(--line)}.filter-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.case-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:24px;border:1px solid var(--line-2);background:var(--ink-2);color:var(--paper);text-decoration:none;transition:border-color .4s,transform .6s var(--ease-out)}.case-card:hover{border-color:#eceae44d;transform:translateY(-4px)}.case-card[hidden]{display:none}.case-thumb{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 1px 1px,rgba(236,234,228,.07) 1px,transparent 0) 0 0 / 20px 20px,radial-gradient(80% 90% at 30% 20%,color-mix(in srgb,var(--accent, var(--signal)) 22%,transparent),transparent 70%),#0c1015}.case-thumb{container-type:size}.thumb-stage{position:absolute;inset:0;display:grid;place-items:center;padding:6%;content-visibility:auto}.thumb-stage .stage{width:min(100cqw * .88,100cqh * .88 * 4 / 3)}.stretched{color:inherit;text-decoration:none}.stretched:after{content:"";position:absolute;inset:0;z-index:4;border-radius:inherit}.stretched:focus-visible{outline:none}.case-card:has(.stretched:focus-visible){outline:2px solid var(--signal);outline-offset:3px}.case-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}.case-card:hover .case-thumb img{transform:scale(1.04)}.case-thumb .thumb-art{position:absolute;inset:0;display:grid;place-items:center}.case-thumb .thumb-art svg{width:78%;height:78%}.case-body{display:flex;flex-direction:column;gap:12px;flex:1;padding:24px 26px 26px}.case-body .case-top{margin-bottom:2px}.case-body h3{font-size:clamp(24px,2.2vw,30px);font-weight:700;letter-spacing:-.03em;line-height:1.1}.case-body p{color:var(--paper-2);font-size:15.5px;line-height:1.55}.case-body .tags{margin-top:auto;padding-top:8px}.case-hero .page-title{max-width:18ch;font-size:clamp(44px,6.4vw,100px)}.case-hero .page-title .serif{color:var(--accent)}.case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:48px;border:1px solid var(--line-2);border-radius:18px;overflow:hidden}.case-facts>div{padding:18px 20px}.case-facts>div+div{border-left:1px solid var(--line)}.case-facts dt{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.case-facts dd{margin-top:8px;font-size:15.5px;line-height:1.45;color:var(--paper)}.case-visual-wide{margin-top:clamp(40px,5vw,64px)}.case-visual-wide .case-visual{border:1px solid var(--line-2);border-radius:var(--radius)}.case-visual-wide .stage{max-width:980px;margin-inline:auto}.case-metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin-block:8px 0;border:1px solid var(--line-2);border-radius:18px;overflow:hidden;background:var(--line)}.case-metric-row>div{padding:22px 24px;background:var(--ink-1)}@media(max-width:575px){.case-metric-row>div:last-child:nth-child(odd){grid-column:1 / -1}}.case-metric-row b{display:block;font-size:clamp(30px,3vw,44px);font-weight:700;letter-spacing:-.04em;line-height:1}.case-metric-row span{display:block;margin-top:10px;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.case-gallery figure{margin:0}.case-gallery img{width:100%;border-radius:16px;border:1px solid var(--line-2)}.viz{--surface-1: var(--ink-2);--series-1: #3d8fe6;--series-2: #e8602c;--series-3: #1aa595;--grid: #1f262f;--axis: #323b46;--good: #3be37f;--bad: #ff7a7a}.period-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.period{display:grid;gap:4px;padding:14px 18px;border-radius:14px;border:1px solid var(--line-2);background:#eceae408}.period span{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.period b{font-size:15px;font-weight:600}.period.is-now{border-color:#ff6b3573}.hero-figure{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 28px;margin-top:48px}.hero-figure b{font-size:clamp(72px,12vw,176px);font-weight:750;line-height:.85;letter-spacing:-.06em}.hero-figure p{max-width:30ch;padding-bottom:12px;color:var(--paper-2);font-size:18px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line-2);border-radius:22px;overflow:hidden;background:var(--line)}.kpi{display:flex;flex-direction:column;gap:10px;min-height:196px;padding:22px 22px 18px;background:var(--ink-2)}.kpi-label{font-size:15px;font-weight:500;color:var(--paper-2)}.kpi-value{display:flex;align-items:baseline;gap:10px;font-size:clamp(36px,3.6vw,52px);font-weight:700;letter-spacing:-.045em;line-height:1}.kpi-delta{display:inline-flex;align-items:center;gap:6px;font:600 11.5px var(--f-mono);letter-spacing:.02em}.kpi-delta.good{color:var(--good)}.kpi-delta.bad{color:var(--bad)}.kpi-note{font:500 11px var(--f-mono);letter-spacing:.04em;color:var(--mute)}.kpi svg.spark{width:100%;height:40px;margin-top:auto;overflow:visible}.spark-line{fill:none;stroke:#59626e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.spark-now{fill:none;stroke:var(--series-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.chart-card{display:flex;flex-direction:column;gap:14px;padding:24px 24px 18px;border-radius:22px;border:1px solid var(--line-2);background:var(--surface-1);min-width:0}.chart-card.wide{grid-column:1 / -1}.chart-card h3{font-size:20px;font-weight:650;letter-spacing:-.02em}.chart-card .chart-sub{margin-top:-8px;font-size:14px;color:var(--mute)}.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--paper-2)}.legend span{display:inline-flex;align-items:center;gap:8px}.legend i{width:16px;height:2px;border-radius:2px;background:var(--c)}.plot{position:relative;height:280px}.plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.plot .gridline{stroke:var(--grid);stroke-width:1;shape-rendering:crispEdges}.plot .baseline{stroke:var(--axis);stroke-width:1;shape-rendering:crispEdges}.plot .tick{fill:var(--mute);font:500 11px var(--f-mono);font-variant-numeric:tabular-nums}.plot .area{opacity:.1}.plot .line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.plot .end-dot{stroke:var(--surface-1);stroke-width:2}.plot .end-label{fill:var(--paper);font:600 12px var(--f-display)}.plot .marker-line{stroke:#eceae452;stroke-width:1}.plot .marker-label{fill:var(--paper-2);font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase}.plot .crosshair{stroke:#eceae466;stroke-width:1;opacity:0;transition:opacity .15s}.plot.is-hover .crosshair{opacity:1}.plot .hit{fill:transparent;cursor:crosshair}.plot .hit:focus{outline:none}.plot .hit:focus-visible{outline:2px solid var(--signal)}.viz-tip{position:absolute;z-index:3;top:0;left:0;min-width:150px;padding:10px 12px;border-radius:12px;border:1px solid var(--line-2);background:#07090cf0;box-shadow:0 18px 40px -16px #000000b3;pointer-events:none;opacity:0;transition:opacity .15s}.plot.is-hover .viz-tip{opacity:1}.viz-tip .tip-x{margin-bottom:6px;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.viz-tip .tip-row{display:grid;grid-template-columns:14px auto 1fr;align-items:center;gap:8px;font-size:13px;color:var(--paper-2)}.viz-tip .tip-row i{width:14px;height:2px;border-radius:2px;background:var(--c)}.viz-tip .tip-row b{color:var(--paper);font-weight:650}.table-view summary{cursor:pointer;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.table-view summary:hover{color:var(--paper)}.table-view table{width:100%;margin-top:12px;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.table-view th,.table-view td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right}.table-view th:first-child,.table-view td:first-child{text-align:left}.table-view th{font:600 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.method>div{padding:22px;border-radius:18px;border:1px solid var(--line-2)}.method h3{margin-bottom:8px;font:600 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal)}.method p{font-size:15px;color:var(--paper-2)}.ship-log{display:grid;gap:0;border-top:1px solid var(--line-2)}.ship-week{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line-2)}.ship-week h3{font:500 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding-top:6px}.ship-week h3 b{display:block;margin-bottom:4px;font:700 22px var(--f-display);letter-spacing:-.02em;text-transform:none;color:var(--paper)}.ship-items{display:grid;gap:12px}.ship-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:baseline}.ship-item .area-tag{justify-self:start;padding:4px 9px;border-radius:999px;border:1px solid var(--line-2);font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-2)}.ship-item p{color:var(--paper-2);font-size:16px;line-height:1.55}.ship-item p strong{color:var(--paper);font-weight:600}.about-page .about-grid{align-items:start}.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.values>div{padding:24px;border-radius:20px;border:1px solid var(--line-2);background:var(--ink-2)}.values h3{margin-bottom:10px;font-size:21px;font-weight:650;letter-spacing:-.02em}.values p{font-size:15.5px;color:var(--paper-2)}.resume-wrap{padding-block:40px clamp(72px,9vw,120px)}.resume-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.cv-sheet{--cv-ink: #14171c;--cv-ink-2: #454b54;--cv-mute: #5d636b;--cv-line: #e3dfd6;--cv-accent: #c2410c;width:min(100%,210mm);margin-inline:auto;padding:9mm 13mm 7mm;background:#fbfaf7;color:var(--cv-ink);font-family:var(--f-display);font-size:9.6pt;line-height:1.4;border-radius:14px;box-shadow:0 40px 90px -40px #000c}.cv-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;padding-bottom:5mm;border-bottom:1.5px solid var(--cv-ink)}.cv-head .cv-name{font-size:2.812em;font-weight:750;letter-spacing:-.035em;line-height:.95}.cv-head .cv-name span{font-family:var(--f-serif);font-style:italic;font-weight:400;color:var(--cv-accent)}.cv-head .cv-role{margin-top:2.2mm;font:600 .896em var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cv-ink-2)}.cv-contact{display:grid;gap:1mm;justify-items:end;font-size:.917em;color:var(--cv-ink-2);text-align:right}.cv-contact a{color:inherit;text-decoration:none;padding-block:2px}.cv-body{display:grid;grid-template-columns:minmax(0,1fr) 52mm;gap:6mm;margin-top:4.5mm}.cv-section+.cv-section{margin-top:4mm}.cv-section h2{display:flex;align-items:center;gap:2.5mm;margin-bottom:2.4mm;font:700 .833em var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cv-accent)}.cv-section h2:after{content:"";flex:1;height:1px;background:var(--cv-line)}.cv-summary{font-size:.979em;color:var(--cv-ink)}.cv-job+.cv-job{margin-top:2.8mm}.cv-job+.cv-job--same{margin-top:1.8mm}.cv-job-head{display:flex;justify-content:space-between;gap:4mm;align-items:baseline}.cv-job-head h3{font-size:1.104em;font-weight:700;letter-spacing:-.01em}.cv-job-head h3 span{font-weight:500;color:var(--cv-ink-2)}.cv-job-head time{flex:none;font:500 .833em var(--f-mono);color:var(--cv-mute)}.cv-job ul{margin-top:1.2mm;display:grid;gap:.9mm}.cv-job li{position:relative;padding-left:3.6mm;font-size:.927em;line-height:1.34;color:var(--cv-ink)}.cv-job li:before{content:"";position:absolute;left:0;top:.62em;width:1.6mm;height:1px;background:var(--cv-accent)}.cv-job li b{font-weight:650}.cv-side .cv-section+.cv-section{margin-top:5mm}.cv-side dl{display:grid;gap:2mm}.cv-side dt{font:700 .792em var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cv-ink-2)}.cv-side dd{margin-top:.4mm;font-size:.938em;color:var(--cv-ink)}.cv-impact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2mm}.cv-impact div{padding:2.2mm;border-radius:2mm;background:#f1ede5}.cv-impact b{display:block;font-size:1.354em;font-weight:750;letter-spacing:-.03em;line-height:1}.cv-impact span{display:block;margin-top:.8mm;font-size:.771em;line-height:1.3;color:var(--cv-ink-2)}.cv-edu p{font-size:.938em}.cv-edu p+p{margin-top:1.6mm}.cv-edu b{display:block;font-weight:650}.cv-foot{margin-top:3.5mm;padding-top:2.4mm;border-top:1px solid var(--cv-line);font:500 .771em var(--f-mono);letter-spacing:.06em;color:var(--cv-mute);display:flex;justify-content:space-between}.foot-cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;padding-block:clamp(64px,8vw,110px) 48px}.foot-cta-title{max-width:16ch;font-size:clamp(40px,5.6vw,84px);font-weight:750;line-height:.95;letter-spacing:-.05em}.foot-cta-title .serif{color:var(--signal)}.foot-cta-links{display:flex;flex-wrap:wrap;gap:12px}.foot-row{border-top:1px solid var(--line)}.foot-links{display:flex;flex-wrap:wrap;gap:8px 22px}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article{grid-template-columns:minmax(0,1fr)}.toc{display:none}}@media(max-width:900px){.post-grid,.case-grid,.chart-grid,.method,.values,.post-card--feature{grid-template-columns:minmax(0,1fr)}.case-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.case-facts>div:nth-child(3){border-left:0}.case-facts>div:nth-child(n+3){border-top:1px solid var(--line)}.ship-week{grid-template-columns:minmax(0,1fr);gap:12px}}@media(max-width:640px){.ps-card{grid-template-columns:minmax(0,1fr)}.ps-card>div+div{border-left:0;border-top:1px solid var(--line)}.ps-results>div+div{border-left:0;border-top:1px solid var(--line)}.kpi-grid{grid-template-columns:minmax(0,1fr)}.ship-item{grid-template-columns:minmax(0,1fr);gap:6px}.plot{height:230px}.prose{font-size:17px}.cv-sheet{padding:22px 18px;font-size:13.5px}.cv-contact a{padding-block:10px}.cv-head,.cv-body{grid-template-columns:minmax(0,1fr)}.cv-contact{justify-items:start;text-align:left}}@page{size:A4;margin:0}@media print{html,body{background:#fff!important}body:after,.nav,.menu,.foot,.progress,.cursor,.skip,.resume-actions,.page-hero,.no-print{display:none!important}.resume-wrap{padding:0!important}.resume-wrap .wrap{max-width:none;padding:0}.cv-sheet{width:210mm;min-height:297mm;margin:0;border-radius:0;box-shadow:none}a{color:inherit}}.stats-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:34px}.stats-head .sec-label{margin-bottom:0}.stat b{white-space:nowrap}.case-links{display:flex;flex-wrap:wrap;gap:20px}.writing{padding-block:clamp(80px,10vw,140px);border-top:1px solid var(--line)}.post-title{max-width:22ch;font-size:clamp(40px,5.2vw,78px)}@media(pointer:coarse){.chip-btn{display:inline-flex;align-items:center;min-height:44px;padding-inline:16px}.toc .toc-share a,.toc .toc-share button{padding-block:10px}.mo-tabs button{padding:10px 12px}.foot-row a{padding-block:10px}}.hero-cv{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:22px;font-size:15px}.hero-cv a{color:var(--paper);text-decoration:underline;text-decoration-color:#eceae459;text-underline-offset:4px}.hero-cv a:hover{color:var(--signal-2);text-decoration-color:currentColor}.hero-cv span{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.case-links{padding-top:6px}.case-links .btn svg{transition:transform .4s var(--ease-out)}.case-links .btn:hover svg{transform:translate(3px)}.lab-link{align-self:flex-start;margin-top:4px}.page-hero .hero-figure{margin-top:36px}.prose pre[class*=language-]{tab-size:2}.prose .token.comment,.prose .token.prolog,.prose .token.doctype{color:#8a919b;font-style:italic}.prose .token.punctuation{color:#a3a9b1}.prose .token.property,.prose .token.tag,.prose .token.constant,.prose .token.symbol,.prose .token.deleted{color:#ff9466}.prose .token.boolean,.prose .token.number{color:#ffc266}.prose .token.string,.prose .token.char,.prose .token.attr-value,.prose .token.template-string,.prose .token.inserted{color:#b8e07e}.prose .token.keyword,.prose .token.atrule,.prose .token.selector{color:#93bbff}.prose .token.function,.prose .token.class-name,.prose .token.builtin{color:#5fdccd}.prose .token.regex,.prose .token.important,.prose .token.variable,.prose .token.interpolation-punctuation{color:#ff8fa8}.prose .token.operator,.prose .token.entity,.prose .token.url{color:#d4d7dc}.prose-col{min-width:0}.author-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:start;max-width:70ch;margin-top:56px;padding:22px;border-radius:20px;border:1px solid var(--line-2);background:var(--ink-2)}.author-card img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:50% 22%;background:#fff}.author-card p{font-size:15px;line-height:1.55;color:var(--paper-2)}.author-card .author-name{margin-bottom:4px;font-size:17px;font-weight:650;color:var(--paper)}.author-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px}.author-links a{color:var(--signal-2);font-size:14px;text-underline-offset:3px}.hero{padding-bottom:72px}.hero-scroll{position:absolute;left:50%;bottom:26px;width:1px;height:44px;overflow:hidden;background:var(--line-2);translate:-50% 0}.hero-scroll i{position:absolute;left:0;top:0;width:1px;height:14px;background:var(--signal);animation:drip 2s var(--ease-io) infinite}@keyframes drip{0%{transform:translateY(-14px)}to{transform:translateY(44px)}}.stats-title{font:500 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}.sec-head--min{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px}.sec-head--min .sec-title{max-width:none}.sec-head--min .sec-title .serif{display:inline}.sec-head--min .mono{color:var(--mute);padding-bottom:12px}.case-desc{font-size:19px;max-width:34ch;color:var(--paper-2)}.case-top{gap:14px}.post-list{margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--line-2)}.post-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto 28px;align-items:center;gap:28px;padding:28px 10px;border-bottom:1px solid var(--line-2);color:var(--paper);text-decoration:none;transition:background .3s,padding .4s var(--ease-out)}.post-row:hover{background:#eceae408;padding-left:18px}.post-row-tag{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.post-row-title{font-size:clamp(20px,2.1vw,30px);font-weight:650;line-height:1.15;letter-spacing:-.025em}.post-row-result{text-align:right;font-size:22px;font-weight:700;letter-spacing:-.03em;color:var(--ok);white-space:nowrap}.post-row-result small{display:block;margin-top:2px;font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.post-row-arrow{font-size:22px;color:var(--mute);transition:transform .4s var(--ease-out),color .3s}.post-row:hover .post-row-arrow{color:var(--signal);transform:translate(4px)}.lab-meta{gap:6px}.lab-meta h3 a{color:inherit;text-decoration:none}.lab-meta h3 a:hover{color:var(--signal-2)}.lab-meta h3 a:after{content:" \2192";color:var(--mute)}.post-card{gap:14px}.post-card .post-meta span+span:before{content:"\b7";margin-right:16px;color:var(--line-2)}.post-card .post-sum{max-width:60ch;color:var(--paper-2);font-size:17px;line-height:1.55}.post-card .post-result{margin-top:auto;padding-top:14px;font:500 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.post-card .post-result b{margin-right:6px;font:700 22px var(--f-display);letter-spacing:-.03em;text-transform:none;color:var(--ok)}.post-card--feature{display:flex;grid-template-columns:none}.post-card--feature h3{max-width:22ch}.case-card-meta{display:flex;justify-content:space-between;gap:12px;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.case-body{gap:10px;padding:22px 24px 26px}.case-body p:last-child{font-size:16px;color:var(--paper-2)}.journal-author{margin-top:26px}.writing-more{margin-top:28px}.journal-list .post-row{grid-template-columns:170px minmax(0,1fr) auto 28px}.journal-list li[hidden]{display:none}.post-row-result.journal-mins{font:500 13px var(--f-mono);letter-spacing:.04em;color:var(--mute)}.journal-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;margin-bottom:28px;padding:22px 26px;border:1px solid var(--line-2);border-radius:20px;background:var(--ink-2);color:var(--paper);text-decoration:none;transition:border-color .3s}.journal-band:hover{border-color:#eceae459}.journal-band b{font-size:clamp(40px,5vw,60px);font-weight:750;line-height:1;letter-spacing:-.05em;color:var(--signal)}.journal-band strong{display:block;margin-bottom:4px;font-size:19px;font-weight:650;letter-spacing:-.02em}.journal-band span{color:var(--paper-2);font-size:15.5px;line-height:1.45}.journal-band i{font-style:normal;font-size:22px;color:var(--mute);transition:transform .4s var(--ease-out),color .3s}.journal-band:hover i{color:var(--signal);transform:translate(4px)}.case-helped{padding-left:14px;border-left:2px solid var(--accent, var(--signal));font-size:15.5px;line-height:1.45;color:var(--paper)}.case-body p.case-helped{margin-top:auto;padding-top:2px;font-size:15.5px;color:var(--paper)}.case-info .case-helped{max-width:40ch;margin-top:18px;font-size:16.5px}.case-helped span{display:block;margin-bottom:5px;font:500 11px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent, var(--signal))}.helped{margin-top:clamp(48px,6vw,80px)}.helped-title{font-size:clamp(28px,3.2vw,44px);font-weight:750;letter-spacing:-.035em;line-height:1.05}.helped-title .serif{color:var(--accent)}.helped-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none}.helped-list li{padding:24px 24px 26px;border:1px solid var(--line-2);border-radius:18px;background:var(--ink-1);box-shadow:inset 0 2px 0 var(--accent);color:var(--paper-2);font-size:16px;line-height:1.55}.helped-list b{display:block;margin-bottom:8px;font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:1.2;color:var(--paper)}.section--note{padding-block:0 clamp(48px,6vw,80px)}.section+.section--note{border-top:0}.method-details{border-block:1px solid var(--line-2)}.method-details summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;padding-block:22px;list-style:none;font:500 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-2)}.method-details summary::-webkit-details-marker{display:none}.method-details summary:after{content:"+";font:400 26px/1 var(--f-display);color:var(--signal);transition:transform .3s var(--ease-out)}.method-details[open] summary:after{transform:rotate(45deg)}.method-details[open]{padding-bottom:28px}.method-details summary:hover{color:var(--paper)}.method-details>p{max-width:70ch;margin:22px 0;color:var(--paper-2)}.ship-item{grid-template-columns:96px minmax(0,1fr)}.ship-week{padding:22px 0}.tl-line{margin-top:10px;color:var(--paper-2);font-size:16px}.values>div p{font-size:16px}@media(max-width:680px){.stat>span,.case-top,.case-card-meta,.lab-org,.post-row-tag,.post-row-result small,.foot-row,.case-helped span{font-size:12px}.case-metrics dt{font-size:12px;letter-spacing:.04em}.case-gallery{gap:8px}.case-gallery img{border-radius:10px}}@media(max-width:760px){.post-row,.journal-list .post-row{grid-template-columns:minmax(0,1fr);gap:8px;padding:22px 4px}.post-row-arrow{display:none}.post-row-result{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;text-align:left;font-size:18px;white-space:normal}.post-row-result small{margin-top:0}}.brand{min-height:44px}.menu{justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain}.menu>nav{margin-top:auto}.plot .hit{touch-action:pan-y}@media(max-width:680px),(pointer:coarse)and (max-height:500px){.nav{padding-block:10px}.nav.is-scrolled{padding-block:8px}.kicker,.stats-title,.link-arrow,.stat>span,.case-top,.case-helped span,.case-metrics dt,.post-row-tag,.post-row-result small,.sec-label,.sec-head .mono,.lab-org,.crumbs,.page-meta,.case-facts dt,.case-metric-row span,.case-card-meta,.ps-card h2,.ps-results span,.post-card .post-meta,.post-card .post-result,.post-card .read,.result-chip,.chip-btn,.kpi-delta,.kpi-note,.period span,.table-view summary,.ship-week h3,.method-details summary,.method h3,.toolbox h3,.tl-when,.tags li,.callout strong:first-child,.menu-foot,.foot-row,.prose figcaption,.viz-tip .tip-x,.copy-hint{font-size:13px;letter-spacing:.07em}.id-top,.id-foot,.id-meta span,.ph figcaption,.grad-photo figcaption .mono,.offclock .mono,.ship-item .area-tag,.prose th,.table-view th,.plot .tick,.plot .marker-label{font-size:12px}.case-top{flex-wrap:wrap;row-gap:8px}.tl-item:before{inset:-1px -10px}.ph figcaption{max-width:calc(100% - 24px);white-space:normal;border-radius:10px}}@media(max-width:640px){.cv-sheet{font-size:14.5px}.cv-head .cv-role,.cv-section h2,.cv-job-head time,.cv-side dt,.cv-impact span,.cv-foot{font-size:12.5px}.cv-foot{gap:16px}}@media(max-width:480px){.case-facts{grid-template-columns:minmax(0,1fr)}.case-facts>div{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:baseline;gap:12px;padding:14px 16px}.case-facts>div+div{border-left:0;border-top:1px solid var(--line)}.case-facts dd{margin-top:0}.toolbox{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px)and (max-height:560px){.menu{padding-top:84px}.menu nav a{padding-block:6px;font-size:32px}}@media(pointer:coarse){.btn-small{min-height:44px}.link-arrow,.crumbs a{padding-block:14px;margin-block:-14px}.hero-cv a,.author-links a{display:inline-block;padding-block:11px}.table-view summary{padding-block:15px}.foot-row a{display:inline-flex;align-items:center;min-height:44px;padding-block:0}.menu-foot a{display:inline-block;padding-block:14px}.cv-contact a{display:inline-flex;align-items:center;min-height:44px;padding-block:0}.mo-tabs button{display:inline-flex;align-items:center;min-height:40px}.hero-scroll{width:44px;background:linear-gradient(var(--line-2),var(--line-2)) 50% 0 / 1px 100% no-repeat}.hero-scroll i{left:calc(50% - .5px)}}
