:root{--bg: #000;--paper: #08090c;--surface: #0e1015;--surface-2: #14171e;--glass: rgba(6, 8, 14, .38);--glass-line: rgba(255, 255, 255, .09);--ink: #e8f0f8;--muted: #93a6bc;--accent: #6b9fff;--accent-dim: color-mix(in srgb, var(--accent) 14%, transparent);--cobalt: #8eb0e0;--warm: #e0b15c;--line: rgba(232, 244, 245, .1);--line-strong: rgba(232, 244, 245, .2);--sky: #000;--hero-veil: rgba(0, 0, 0, .28);--paper-veil: rgba(0, 0, 0, .55);--star-rgb: 232, 240, 248;--star-gold: 224, 177, 92;--star-cyan: 107, 159, 255;--display: "Fraunces", "Times New Roman", serif;--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--space: clamp(1.15rem, 4vw, 2.6rem);--max: 1180px;--nav-h: 68px;--ease-buoy: cubic-bezier(.22, 1, .36, 1);--t-fast: .16s;--t-mid: .28s;--t-slow: .82s}html[data-theme=light]{color-scheme:light;--bg: #eceae4;--paper: #f1eee8;--surface: #f4f2ec;--surface-2: #e4e1d9;--glass: rgba(244, 242, 236, .64);--glass-line: rgba(28, 36, 46, .1);--ink: #1c242e;--muted: #5d6b79;--accent: #456eac;--accent-dim: color-mix(in srgb, var(--accent) 12%, transparent);--cobalt: #4d6f96;--warm: #a17f2e;--line: rgba(28, 36, 46, .1);--line-strong: rgba(28, 36, 46, .16);--sky: #eceae4;--hero-veil: rgba(236, 234, 228, .38);--paper-veil: rgba(236, 234, 228, .9);--star-rgb: 0, 0, 0;--star-gold: 0, 0, 0;--star-cyan: 0, 0, 0}@view-transition{navigation:none}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-offset, var(--nav-h)) + 12px);scrollbar-gutter:stable;background:var(--bg);color-scheme:dark;-webkit-text-size-adjust:100%;text-size-adjust:100%}html[data-theme=light] .fx-grain{opacity:.045;mix-blend-mode:multiply}html[data-theme=light] .glass{box-shadow:inset 0 1px #fff6,0 14px 36px -30px #1c242e29}html[data-theme=light] .hero-photo{box-shadow:0 0 0 1px #1c242e0f,0 16px 36px -24px #1c242e2e,0 0 40px -18px color-mix(in srgb,var(--accent) 18%,transparent)}html[data-theme=light] .btn-solid,html[data-theme=light] a.btn-solid{color:#f4f1ea}html[data-theme=light] .btn-solid:hover,html[data-theme=light] a.btn-solid:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}@media(prefers-reduced-motion:no-preference){html,body{transition:background-color .38s var(--ease-buoy),color .28s var(--ease-buoy)}.nav,.paper,.hero-body{transition:background-color .38s var(--ease-buoy),background .38s var(--ease-buoy),color .28s var(--ease-buoy),border-color .28s var(--ease-buoy)}}html.is-booting{overflow:hidden}html.is-sky-drag,html.is-sky-drag *{user-select:none;-webkit-user-select:none}html.is-booting:not(.is-landing) .nav,html.is-booting:not(.is-landing) .footer,html.is-booting:not(.is-landing) .paper,html.is-booting:not(.is-landing) .fx-progress{opacity:0;pointer-events:none}html.is-landing .nav{opacity:1;transition:opacity .72s .28s var(--ease-buoy)}body{margin:0;isolation:isolate;color:var(--ink);background:var(--bg);font-family:var(--sans);font-optical-sizing:auto;font-size:18px;line-height:1.6;font-weight:400;letter-spacing:-.011em;-webkit-font-smoothing:antialiased}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:.18em}a:hover{color:var(--accent)}code{font-family:var(--mono);font-size:.84em;color:var(--cobalt);background:var(--accent-dim);padding:.12em .38em}button.btn{cursor:pointer;background:transparent;color:var(--ink);font-family:inherit}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin:0}.skip{position:absolute;left:12px;top:-40px;z-index:90;background:var(--accent);color:var(--bg);padding:.4rem .7rem}.skip:focus{top:12px}.wrap{width:min(var(--max),calc(100% - var(--space) * 2));margin-inline:auto}.desk,.footer{position:relative;z-index:2}.desk{min-width:0}.paper{position:relative;background:linear-gradient(180deg,var(--paper-veil),var(--bg) 48px,var(--bg));padding-bottom:4rem}.glass{position:relative;background:var(--glass);border:1px solid var(--glass-line);border-radius:18px;backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);box-shadow:inset 0 1px #ffffff0f,0 24px 60px -40px #000000e6}.starfield{position:fixed;inset:0;z-index:0;width:100%;height:100%;min-height:100svh;min-height:100dvh;pointer-events:none;background:var(--bg);contain:layout paint}.starfield.is-away,html.is-sky-away .starfield{visibility:hidden;pointer-events:none}.starfield-canvas{display:block;width:100%;height:100%}.starfield-skip{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));z-index:25;transform:translate(-50%);margin:0;padding:.55rem 1rem;min-height:44px;min-width:44px;border:1px solid var(--line-strong);background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--muted);font:500 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}.starfield-skip:hover,.starfield-skip:focus-visible{color:var(--ink);border-color:var(--accent)}html:not(.is-booting) .starfield-skip{display:none}.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}.kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.note{font-family:var(--display);font-size:1.15rem;font-weight:400;font-style:italic;line-height:1.35;color:var(--warm)}.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5rem;padding:.72rem 1.15rem;min-height:44px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:500 .78rem/1 var(--mono);letter-spacing:.08em;text-decoration:none;text-transform:uppercase;touch-action:manipulation;transition:background var(--t-fast) var(--ease-buoy),border-color var(--t-fast) var(--ease-buoy),color var(--t-fast) var(--ease-buoy),transform .42s var(--ease-buoy)}.btn:hover{color:var(--bg);background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent),0 12px 32px -14px color-mix(in srgb,var(--accent) 70%,transparent)}.fx-play{cursor:grab;transform-style:preserve-3d}@media(pointer:fine){.hero-stage,.fx-play{touch-action:none}}.fx-play.is-held{cursor:grabbing;z-index:5;transition:none}.fx-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:40;pointer-events:none}.fx-progress i{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--accent),var(--warm));box-shadow:0 0 12px color-mix(in srgb,var(--accent) 70%,transparent)}.fx-grain{position:fixed;inset:-50%;z-index:30;pointer-events:none;opacity:.016;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:160px 160px}.btn:active{transition-duration:60ms}.btn-solid,a.btn-solid{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-solid:hover,a.btn-solid:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-text,a.btn-text{border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:.28em;width:auto}.btn-text:hover,a.btn-text:hover{color:var(--ink);background:transparent;border-color:transparent;box-shadow:none}.contact-aside{margin:.85rem 0 0;color:var(--muted);font-size:.95rem}.contact-aside a{color:var(--ink)}.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 34%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.nav-tools{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.nav-theme{margin:0;padding:.35rem .7rem;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:500 .72rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;min-height:44px;cursor:pointer;touch-action:manipulation}.nav-theme:hover,.nav-theme:focus-visible{color:var(--accent);border-color:var(--accent)}.nav-theme .to-dark,html[data-theme=light] .nav-theme .to-light{display:none}html[data-theme=light] .nav-theme .to-dark{display:inline}.nav-toggle{display:none;margin:0;padding:.4rem .7rem;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:500 .72rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;min-height:44px;min-width:44px;cursor:pointer;touch-action:manipulation}.nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:var(--nav-h);gap:.75rem 1.25rem}.brand{font-family:var(--display);font-size:1.45rem;font-weight:500;font-style:italic;text-decoration:none;letter-spacing:-.03em}.brand em{color:var(--warm);font-weight:600}.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.2rem;margin-left:auto;font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.nav-links .nav-resume{margin-left:.35rem}.nav-links a{position:relative;text-decoration:none;color:var(--muted);touch-action:manipulation}.nav-links a:hover,.nav-links a.is-active,.nav-links a[aria-current=location]{color:var(--ink)}.nav-links a.is-active:after,.nav-links a[aria-current=location]:after{content:"";position:absolute;left:-2px;right:-2px;bottom:-6px;height:2px;background:var(--accent)}.nav-resume{padding:.35rem .7rem;border:1px solid var(--line-strong);color:var(--ink)!important;text-decoration:none;font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;touch-action:manipulation}.nav-resume:after{display:none!important}.hero{position:relative;display:flex;flex-direction:column;justify-content:flex-start;padding:0 var(--space) 1.6rem}.hero-stage{position:relative;z-index:1;min-height:42dvh;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:calc(var(--nav-offset, var(--nav-h)) + .4rem) 0 1.4rem;touch-action:pan-y;transition:min-height 1.1s var(--ease-buoy)}html.is-booting:not(.is-landing) .hero-stage{min-height:68dvh;transition:none}html.is-sky-away .hero-stage,html:has(.starfield.is-static) .hero-stage{min-height:0;padding-bottom:.55rem}.hero-kicker{position:static;margin:0 0 .55rem;text-align:left;pointer-events:none;font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.hero-body{position:relative;z-index:2;display:flex;flex-direction:column;width:100%;background:linear-gradient(180deg,var(--hero-veil),var(--bg) 18%)}@media(prefers-reduced-motion:no-preference){.hero-stage{transform:perspective(1400px) rotateY(calc(var(--sky-x, 0) * 9deg)) rotateX(calc(var(--sky-y, 0) * -6deg));transform-origin:50% 80%}.hero-body{transform:perspective(1600px) rotateY(calc(var(--sky-x, 0) * 11deg)) rotateX(calc(var(--sky-y, 0) * -8deg));transform-origin:50% 8%}}.hero-identity{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:2.2rem;row-gap:0;align-items:start;width:min(var(--max),100%);margin-inline:auto}.hero-identity>*{min-width:0}.hero-kicker,.hero-name,.hero-identity .lede,.hero-method,.hero-actions{grid-column:1}.hero-name{font-family:var(--display);font-size:clamp(2.1rem,5.5vw,3.35rem);font-weight:500;font-style:italic;letter-spacing:-.04em;line-height:.95;margin-bottom:.55rem}.hero-name em{color:var(--warm);font-weight:600}.hero-photo{grid-column:2;grid-row:2 / span 4;margin:0;width:176px;border:1px solid var(--line);background:var(--surface);box-shadow:0 0 0 1px #ffffff0a,0 22px 50px -28px #000000d9,0 0 48px -18px color-mix(in srgb,var(--accent) 35%,transparent)}.hero .lede{max-width:58ch;font-size:1.12rem;font-weight:500;letter-spacing:-.02em;line-height:1.45;overflow-wrap:anywhere;padding-inline-end:.2em}.hero-identity,.hero-body{min-width:0}.hero-method{margin:.85rem 0 0;padding:0;list-style:none;max-width:46ch}.hero-method li{font-family:var(--display);font-size:1.05rem;font-style:italic;letter-spacing:-.03em;line-height:1.35;overflow-wrap:anywhere;padding-inline-end:.2em}.hero-method li+li{margin-top:.35rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.15rem}.hero-photo img{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 28%}.section{width:min(var(--max),calc(100% - var(--space) * 2));margin:0 auto;min-width:0;padding:clamp(3.2rem,7vw,5.6rem) 0;border-top:1px solid var(--line)}.paper>.section:first-child{border-top:none}.built{margin-top:1.8rem;max-width:58ch}.built p{color:var(--muted);margin-top:.4rem}.section-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:clamp(1.6rem,4vw,2.6rem);min-width:0}.section-head h2{position:relative;display:inline-block;font-family:var(--display);font-size:clamp(2.4rem,6vw,4.4rem);font-weight:300;font-style:italic;letter-spacing:-.045em;line-height:.9;color:var(--ink);overflow-wrap:anywhere;padding-inline-end:.12em}.section-head p{max-width:28ch;color:var(--muted);overflow-wrap:anywhere}.section-head .note{font-size:clamp(1.25rem,2.8vw,1.75rem);max-width:22ch}.case-brief[hidden]{display:none}.case-title{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.2rem);font-style:italic;letter-spacing:-.03em;margin:.15rem 0 .4rem}.gal-metric{font-family:var(--display);font-style:italic;font-size:1.05rem;color:var(--accent);margin-bottom:1rem}.case-steps{margin:0;padding:0;list-style:none}.case-steps>*+*{margin-top:.95rem}.case-steps dt{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--warm)}.case-steps dd{margin:.25rem 0 0;color:var(--muted)}.case-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}.engage-block,.engage-block p,.services-notes{min-width:0;overflow-wrap:anywhere}.engage-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.2rem;margin:1.4rem 0 0;padding:0;list-style:none}.engage-paths li{min-width:0;padding:.85rem 0 0;border-top:1px solid var(--line)}.engage-paths strong{display:block;font-family:var(--display);font-size:1.45rem;font-weight:500;font-style:italic;letter-spacing:-.03em;overflow-wrap:anywhere;padding-inline-end:.15em}.engage-paths p{margin-top:.4rem;color:var(--muted);overflow-wrap:anywhere}.engage-rates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.2rem;margin:1.4rem 0 0;padding:0;list-style:none}.engage-rates li{min-width:0;padding:.85rem 0 0;border-top:1px solid var(--line)}.engage-rates .kicker{margin-bottom:.35rem}.engage-rates strong{display:block;font-family:var(--display);font-size:1.45rem;font-weight:500;font-style:italic;letter-spacing:-.03em;overflow-wrap:anywhere;padding-inline-end:.15em}.engage-price{margin-top:.2rem;font-family:var(--display);font-size:1.25rem;font-style:italic;color:var(--ink)}.range-thread{max-width:62ch;margin:-.6rem 0 0;font-size:1.08rem;line-height:1.5}.range-plot{margin:clamp(1.6rem,4vw,2.6rem) 0 0;padding:.6rem 0 0}.range-plot svg{width:100%;height:auto;overflow:visible}.plot-axis path{fill:none;stroke:var(--line-strong);stroke-width:1.5}.plot-baseline{stroke-dasharray:3 5}.plot-curve{fill:none;stroke:var(--ink);stroke-width:3.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}.peak{cursor:pointer}.peak-hit{fill:transparent;pointer-events:all}.peak-drop{fill:none;stroke:var(--line-strong);stroke-width:1.4;stroke-dasharray:4 6;transition:stroke var(--t-mid) var(--ease-buoy),stroke-width var(--t-mid) var(--ease-buoy)}.peak-dot{fill:var(--paper);stroke:var(--ink);stroke-width:2.6;transition:fill var(--t-mid) var(--ease-buoy),r var(--t-mid) var(--ease-buoy)}.peak-label{fill:var(--muted);font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;text-anchor:middle;transition:fill var(--t-mid) var(--ease-buoy)}.plot-axis-note{fill:var(--cobalt);font-family:var(--display);font-style:italic;font-size:18px}.range[data-active] .peak-dot{fill:var(--paper)}.range[data-active=theory] [data-peak=theory] .peak-dot,.range[data-active=build] [data-peak=build] .peak-dot,.range[data-active=strategy] [data-peak=strategy] .peak-dot{fill:var(--accent);stroke:var(--accent);r:10}.range[data-active=theory] [data-peak=theory] .peak-drop,.range[data-active=build] [data-peak=build] .peak-drop,.range[data-active=strategy] [data-peak=strategy] .peak-drop{stroke:var(--accent);stroke-width:2.2}.range[data-active=theory] [data-peak=theory] .peak-label,.range[data-active=build] [data-peak=build] .peak-label,.range[data-active=strategy] [data-peak=strategy] .peak-label{fill:var(--accent)}.range-plot figcaption{margin-top:1.4rem;font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--cobalt)}.spikes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:clamp(1.8rem,4vw,2.6rem)}.spike{position:relative;padding:1.15rem 1.2rem 1.3rem;background:var(--surface);border:1px solid var(--line)}.spike:nth-child(2){background:var(--surface-2)}.spike:hover,.spike:focus-visible{border-color:color-mix(in srgb,var(--accent) 28%,transparent)}.spike h3{font-family:var(--display);font-size:1.75rem;font-weight:500;font-style:italic;letter-spacing:-.03em;margin:.25rem 0 .4rem}.spike-trains{color:var(--muted);font-size:.95rem;line-height:1.45}.spike .points{margin-top:.9rem;padding-top:.85rem;border-top:1px dashed var(--line-strong);font-size:.92rem}.role{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:1rem 2rem;padding:1.35rem 0}.role-scan{padding:1.1rem 0}.when{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.role h3{font-size:1.05rem;font-weight:500}.role .company{font-family:var(--display);font-size:1.7rem;font-style:italic;letter-spacing:-.03em;margin-top:.15rem}.role-note{margin-top:.3rem;font-family:var(--display);font-style:italic;font-size:1.1rem;color:var(--warm)}.role ul{margin:.6rem 0 0;padding-left:1.1rem;color:var(--muted)}.role li+li{margin-top:.35rem}.role-explore{display:block;padding:0}.role-explore .role-fold{padding:1.1rem 0}.role-summary,.project-summary{position:relative;cursor:pointer;list-style:none}.role-summary::-webkit-details-marker,.project-summary::-webkit-details-marker,.role-summary::marker,.project-summary::marker{display:none;content:""}.role-summary,.role-head{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:1rem 2rem;padding-right:1.6rem}.role-head{padding-right:0}.role-highlights{margin:.85rem 0 .2rem;padding-left:1.1rem;color:var(--muted)}.role-highlights li+li{margin-top:.35rem}.role-summary:focus-visible,.project-summary:focus-visible{outline:1px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:4px}.role-summary:after,.project-summary:after{content:"";position:absolute;right:.15rem;top:1.15rem;width:.42rem;height:.42rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform var(--t-fast) var(--ease-buoy)}.project-summary:after{top:1rem}.role-fold[open]>.role-summary:after,.project-fold[open]>.project-summary:after{top:1.3rem;transform:rotate(225deg)}.role-projects{margin:.7rem 0 0;padding:.15rem 0 0;border-top:1px dashed var(--line-strong)}.project-fold+.project-fold{border-top:1px solid var(--line)}.project-summary{display:grid;gap:.2rem;padding:.85rem 1.6rem .85rem 0}.project-title{font-size:1.02rem;font-weight:500}.project-line{font-family:var(--display);font-style:italic;font-size:1.05rem;color:var(--muted)}.project-body{padding:0 0 1.05rem}.project-body .tags{margin:0 0 .7rem}.project-body .case-steps,.project-body .card-links{margin-top:1rem}.project-jump{margin-top:.75rem}.project-jump a{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);text-decoration:none}.archive-page .role-explore{border-top:1px solid var(--line)}.archive-page .role-explore:first-child{border-top:0}.archive-page .role-fold,.archive-page .project-fold{scroll-margin-top:calc(var(--nav-offset, 4.5rem) + .8rem)}.resume-jump{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}.resume-extras{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);margin-top:2.4rem;padding-top:1.8rem;border-top:1px dashed var(--line-strong)}.edu-list{list-style:none;margin:1rem 0 0;padding:0}.edu-list li+li{margin-top:1.2rem}.edu-degree{margin-top:.25rem;font-size:1.35rem;font-style:italic}.edu-school{color:var(--muted)}.edu-note{margin-top:.2rem;font-family:var(--display);font-style:italic;font-size:1.05rem;color:var(--warm)}.skills-panel{padding:1.2rem 1.25rem 1.4rem;background:var(--surface);border:1px solid var(--line)}.skill-block+.skill-block{margin-top:1rem}.skill-block h3{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--warm)}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}.tag{font-family:var(--mono);font-size:.64rem;padding:.22rem .45rem;border:1px solid var(--line-strong);color:var(--muted)}.work-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;align-items:start}.work-case{margin-top:clamp(1.8rem,4vw,2.6rem);max-width:72ch;padding:1.2rem 1.25rem 1.4rem;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.work-lead{margin-top:0;margin-bottom:clamp(1.8rem,4vw,2.6rem)}.work-feature{grid-column:1 / -1}.product-dossier{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.2rem,3vw,2.2rem);align-items:start}.product-dossier .lede{max-width:46ch;font-size:1.2rem;line-height:1.45}.product-dossier .points{margin-top:1.1rem}.product-dossier .card-links{margin-top:1.25rem}.product-dossier .polaroid{display:block}.product-dossier .polaroid img{width:100%;height:auto;display:block}.work-piece{position:relative;min-width:0;padding:1.1rem 1.15rem 1.3rem;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.polaroid{border-radius:12px}.achieve-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;margin:0;padding:0;list-style:none}.achieve-card{position:relative;padding:1.2rem 1.2rem 1.35rem;overflow:hidden}.achieve-card .achieve-value{margin:.35rem 0 .5rem;font-family:var(--display);font-size:clamp(2rem,4vw,2.8rem);font-weight:600;font-style:italic;letter-spacing:-.04em;line-height:1;color:var(--ink)}.achieve-card h3{font-family:var(--display);font-size:clamp(1.45rem,2.2vw,1.85rem);font-style:italic;font-weight:500;letter-spacing:-.03em;line-height:1.15;margin:.55rem 0;color:var(--ink)}.achieve-card p{color:var(--muted);font-size:.95rem}.work-piece h3{font-family:var(--display);font-size:clamp(1.45rem,2.2vw,1.9rem);font-style:italic;letter-spacing:-.03em;margin:.35rem 0 .25rem;overflow-wrap:anywhere}.work-piece>p,.work-piece .points{overflow-wrap:anywhere}.work-piece>p{color:var(--muted)}.polaroid{display:block;margin:.4rem 0 .9rem;background:var(--paper);overflow:hidden;border:1px solid var(--line)}.polaroid-cmd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;aspect-ratio:16 / 10;padding:1rem}.polaroid-cmd code{font-size:clamp(.82rem,1.8vw,1.05rem);background:none;padding:0;color:var(--cobalt);overflow-wrap:break-word;text-align:center}.cmd-roles{margin:0;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center}.polaroid-cmd .cmd-copy{margin-left:0}.polaroid img{width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top center}.case-url{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:lowercase;color:var(--cobalt);margin:0 0 .4rem}.points{margin:.9rem 0 0;padding-left:1.1rem;color:var(--ink)}.points li+li{margin-top:.35rem}.cmd-copy{margin-left:auto;padding:.28rem .5rem;min-height:44px;border:1px solid var(--ink);background:transparent;font:500 .7rem/1 var(--mono);text-transform:uppercase;cursor:pointer;touch-action:manipulation}.card-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.2rem}.services-notes{margin:1.2rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.9rem;max-width:62ch}.prose p+p{margin-top:1rem}.record-links{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .6rem;margin-top:.95rem;padding-top:.85rem;border-top:1px dashed var(--line-strong)}.record-links .kicker{flex-basis:100%;color:var(--warm)}.record-links a{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:.32rem .55rem;border:1px solid var(--line-strong);color:var(--muted);min-height:44px;display:inline-flex;align-items:center;touch-action:manipulation;transition:color var(--t-fast) var(--ease-buoy),border-color var(--t-fast) var(--ease-buoy)}.record-links a:hover,.record-links a:focus-visible{color:var(--ink);border-color:var(--accent)}.prose .record-links{max-width:58ch}.prose p{color:var(--muted);max-width:58ch}.contact-section{padding-bottom:calc(clamp(3.2rem,7vw,5.6rem) + env(safe-area-inset-bottom))}.contact-about{max-width:42ch;margin-bottom:clamp(1.8rem,4vw,2.8rem)}.contact-about p{color:var(--muted)}.contact-about .note{margin-bottom:.45rem}.contact-box{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:end}.contact-box h2{font-family:var(--display);font-size:clamp(3rem,8vw,5.6rem);font-weight:300;font-style:italic;letter-spacing:-.04em;line-height:.85;margin:0 0 .8rem}.contact-box p{color:var(--muted);max-width:34ch;overflow-wrap:anywhere}.mail{display:inline-block;font-family:var(--display);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.3rem);color:var(--accent);text-decoration:none;overflow-wrap:anywhere}.mail:hover{color:var(--ink)}.footer{padding:1.5rem var(--space) 2.2rem;background:transparent;color:var(--muted);font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.85rem 1.5rem}.footer-id{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;min-width:min(100%,16rem)}.footer-brand{font-family:var(--display);font-size:1.15rem;font-style:italic;text-transform:none;letter-spacing:-.03em;color:var(--ink)}.footer-brand em{color:var(--warm)}.footer-built{text-transform:none;letter-spacing:0;font-family:var(--sans);color:var(--muted)}.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem 1.1rem}.footer a{color:inherit;text-decoration:none}.footer a:hover{color:var(--ink)}.offer{padding:1.3rem 1.35rem 1.4rem;background:var(--surface);border:1px solid var(--line)}.offer h3{font-size:1.6rem;font-style:italic;margin:.35rem 0 .5rem}.offer p{color:var(--muted);overflow-wrap:anywhere}.missing{padding:6rem 0 8rem}.missing-title{font-family:var(--sans);font-size:clamp(2.4rem,9vw,5.6rem);font-weight:500;letter-spacing:-.04em;line-height:.92;margin:.5rem 0 1.1rem}.missing-copy{color:var(--muted);max-width:36ch}.resume-page{position:relative;z-index:1;min-width:0;padding:3.2rem 0 5.5rem}.resume-top{display:flex;justify-content:space-between;gap:1.5rem;align-items:end;margin-bottom:2.2rem}.resume-top h1{font-family:var(--display);font-size:clamp(2.6rem,6vw,4.4rem);font-weight:400;font-style:italic;letter-spacing:-.04em;line-height:.94}.resume-meta{min-width:0;color:var(--muted);font-size:.95rem;overflow-wrap:anywhere}.resume-meta a:not(.btn){color:var(--accent);text-decoration:none}.resume-block{padding:1.45rem 0;border-top:1px solid var(--line)}.resume-block h2{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}.resume-block h3{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:1.4rem 0 .4rem}.resume-copy{color:var(--muted);max-width:70ch}.resume-copy strong{color:var(--ink)}.resume-list{margin:.75rem 0 0;padding-left:1.1rem}.resume-copy-gap{margin-top:.75rem}.project-langs{margin:.45rem 0 0;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt)}.project-shots{display:grid;grid-template-columns:1.15fr .85fr;gap:.9rem;margin:0 0 1.6rem}.project-shot{display:block;margin:0;overflow:hidden;border:1px solid var(--line)}.project-shot img{display:block;width:100%;height:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top left}.project-split{display:grid;grid-template-columns:1fr 1fr;gap:0 2.4rem}.project-split .resume-block{min-width:0}.get-cmd{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin:1rem 0 0;padding:.95rem 1rem;border:1px solid var(--line);background:var(--surface)}.get-cmd code{flex:1;min-width:0;padding:0;background:none;font-size:.82rem;line-height:1.45;color:var(--cobalt);overflow-wrap:anywhere;white-space:pre-wrap}.project-steps{margin-top:1.1rem}.resume-page .role{grid-template-columns:minmax(160px,220px) 1fr;padding:1.25rem 0;border-top:1px solid var(--line)}.resume-page .role-explore{display:block;padding:0}.resume-page .role:first-child{border-top:0;padding-top:0}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes draw-curve{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes peak-pop{0%{opacity:0}to{opacity:1}}@keyframes rise-blur{0%{opacity:0;transform:translateY(16px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){[data-reveal]{animation:rise-in .9s var(--ease-buoy) both;animation-timeline:view();animation-range:entry 0% cover 42%}.section-head .note,.contact-box h2,.section-head h2{animation:rise-in 1s var(--ease-buoy) both;animation-timeline:view();animation-range:entry 0% cover 42%}.plot-curve{animation:draw-curve 1s linear both;animation-timeline:view();animation-range:entry 20% cover 48%}.peak{animation:peak-pop 1s var(--ease-buoy) both;animation-timeline:view()}[data-peak=theory]{animation-range:entry 26% cover 34%}[data-peak=build]{animation-range:entry 34% cover 42%}[data-peak=strategy]{animation-range:entry 42% cover 50%}}}@keyframes island-in{0%{opacity:0;transform:translate3d(var(--from-x, 0),var(--from-y, 28px),-36px) scale(.94);filter:blur(14px)}to{opacity:1;transform:none;filter:none}}html.is-booting:not(.is-landing) [data-island]{opacity:0;transform:translate3d(var(--from-x, 0),var(--from-y, 28px),-36px) scale(.94);filter:blur(14px)}html.is-landed:not(.is-landing) [data-island]{opacity:1;transform:none;filter:none}@media(prefers-reduced-motion:no-preference){html.is-landing [data-island]{animation:island-in 1.1s var(--ease-buoy) calc(var(--i, 0) * 95ms) both}@media(pointer:coarse),(max-width:860px){html.is-booting:not(.is-landing) [data-island]{filter:none;transform:translate3d(0,16px,0)}html.is-landing [data-island]{animation-name:rise-in;animation-duration:.48s}}[data-reveal].is-in{animation:rise-in var(--t-slow) var(--ease-buoy) both}}@media(max-width:980px){.nav-inner{position:relative;flex-wrap:nowrap}.nav-tools{margin-left:auto}.nav-toggle{display:inline-flex;align-items:center;margin-left:0}.nav-links{display:none;position:absolute;left:0;right:0;top:100%;z-index:22;flex-direction:column;align-items:stretch;gap:0;margin-left:0;padding:.75rem 0 1.4rem;background:var(--bg);border-bottom:1px solid var(--line);min-height:calc(100dvh - var(--nav-offset, var(--nav-h)) - env(safe-area-inset-top,0px))}.nav.is-open .nav-links{display:flex}.nav-links a{display:flex;align-items:center;padding:.85rem .1rem;min-height:48px;font-size:.84rem}.nav-links a.is-active:after,.nav-links a[aria-current=location]:after{display:none}.nav-links .nav-resume{margin:.55rem 0 .15rem;justify-content:center}html.is-nav-open .desk,html.is-nav-open .footer{visibility:hidden}.section-head{flex-direction:column;align-items:start}.hero-photo{width:140px}.engage-paths,.engage-rates{grid-template-columns:1fr 1fr}.work-board,.spikes,.contact-box,.resume-extras,.product-dossier{grid-template-columns:1fr}.peak-label{font-size:13px}.resume-top{flex-direction:column;align-items:start}}@media(pointer:coarse),(max-width:860px){html{scroll-behavior:auto}html.is-nav-open{overflow:hidden}.nav,.nav-links{backdrop-filter:none;-webkit-backdrop-filter:none}.nav{background:var(--bg)}.hero-stage,.hero-body{transform:none!important}.hero-stage{display:flex;min-height:0;padding:calc(var(--nav-offset, var(--nav-h)) + .15rem) 0 .4rem;align-items:center;justify-content:flex-end;transition:min-height .7s var(--ease-buoy);touch-action:pan-y}html.is-booting:not(.is-landing) .hero-stage{min-height:58dvh;transition:none}html.is-booting [data-island]{opacity:0;transform:none;filter:none;animation:none}html.is-landed [data-island]{opacity:1;transform:none;filter:none;animation:none}.fx-grain,.fx-progress{display:none}}@media(pointer:coarse),(max-width:860px){@supports (animation-timeline: view()){[data-reveal],.section-head .note,.contact-box h2,.section-head h2,.plot-curve,.peak{animation:none;animation-timeline:auto}}}@media(max-width:860px){:root{--space: clamp(1.15rem, 5.4vw, 1.85rem)}html,body{overflow-x:clip;overscroll-behavior-x:none}body{font-size:16px}.wrap,.section{width:min(var(--max),calc(100% - var(--space) * 2 - env(safe-area-inset-left) - env(safe-area-inset-right)))}.nav{padding-top:env(safe-area-inset-top)}.nav-inner{padding:.28rem 0;gap:.5rem .8rem;min-height:0}.brand{font-size:1.12rem;flex-shrink:0}.nav-toggle{font-size:.68rem;padding:.35rem .62rem}.nav-theme{font-size:.64rem;padding:.35rem .55rem}.nav-links .nav-resume{display:inline-flex;align-items:center;margin:.55rem 0 .15rem;padding:.45rem .7rem;font-size:.68rem;min-height:44px}.section{padding:clamp(1.85rem,7vw,3.4rem) 0}.section-head{margin-bottom:1.15rem;gap:.55rem}.section-head h2,.contact-box h2{font-size:clamp(1.7rem,8.5vw,2.55rem)}.fx-grain{display:none}.glass{backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,var(--surface) 78%,var(--bg))}.hero{min-height:0;padding:0 calc(var(--space) + env(safe-area-inset-right)) 1.15rem calc(var(--space) + env(safe-area-inset-left))}.hero-kicker{font-size:.64rem;letter-spacing:.12em;text-align:left;width:auto}.hero-body{background:linear-gradient(180deg,var(--hero-veil),var(--bg) 28%);padding-top:.55rem}.hero-identity{column-gap:1rem}.hero-name{font-size:clamp(1.7rem,8vw,2.4rem);margin-bottom:.4rem}.hero-photo{width:92px}.hero .lede{font-size:1.02rem;line-height:1.4}.hero-method{margin-top:.65rem}.hero-method li{font-size:.98rem}.hero-actions{width:100%;margin-top:.85rem}.hero-actions .btn{flex:0 1 auto;justify-content:center;min-height:44px}.polaroid-cmd{aspect-ratio:auto;flex-direction:column;align-items:flex-start;padding:.85rem .9rem;gap:.55rem}.polaroid-cmd code{font-size:.78rem;text-align:left}.polaroid-cmd .cmd-roles{flex:none;text-align:left}.polaroid-cmd .cmd-copy{margin-left:0}.project-shots,.project-split{grid-template-columns:1fr}.get-cmd{flex-direction:column}.get-cmd .cmd-copy{margin-left:0}.work-piece,.work-case,.achieve-card,.spike{padding:1rem 1rem 1.15rem}.achieve-grid,.engage-paths,.engage-rates{grid-template-columns:1fr}.achieve-card .achieve-value{font-size:clamp(1.7rem,8vw,2.3rem)}.contact-actions{display:flex;flex-direction:column;gap:.85rem}.mail{font-size:clamp(1.12rem,5.2vw,1.55rem);overflow-wrap:anywhere;word-break:break-word}.role .company{font-size:1.28rem}.resume-page{padding:1.25rem 0 3.4rem}.resume-top{margin-bottom:1.5rem;gap:.9rem}.resume-top h1{font-size:clamp(1.85rem,8.5vw,2.8rem)}.resume-meta .hero-actions{margin-top:.75rem}.footer{padding:1.05rem var(--space) calc(1.4rem + env(safe-area-inset-bottom));flex-direction:column;align-items:start;gap:.7rem}.missing{padding:3.2rem 0 5rem}}@media(max-width:640px){.hero-identity{column-gap:.85rem;row-gap:0}.hero-kicker{grid-column:1 / -1;grid-row:1;margin-bottom:.4rem}.hero-name{grid-column:1;grid-row:2}.hero-identity .lede{grid-column:1;grid-row:3}.hero-photo{width:84px;grid-column:2;grid-row:2 / span 2;align-self:start}.hero-method,.hero-actions{grid-column:1 / -1}.hero-method{margin-top:.55rem}.hero-actions{flex-direction:row;margin-top:.8rem}.hero-actions .btn{width:auto;min-width:10.5rem}.achieve-grid{grid-template-columns:1fr}.role,.resume-page .role{grid-template-columns:1fr;gap:.25rem 0}.role-summary,.role-head{grid-template-columns:1fr;gap:.2rem .7rem;padding-right:0}.role-summary .when-col,.role-summary>div:not(.when-col){grid-column:1}.role-summary:after{position:static;grid-column:2;grid-row:1 / span 2;align-self:center;margin:0;top:auto}.role-fold[open]>.role-summary:after{top:auto;transform:rotate(225deg)}.resume-jump .btn,.built .btn,.work-piece .btn{width:100%;justify-content:center}.contact-actions .card-links,.contact-actions,.work-piece .card-links{display:flex;flex-direction:column;align-items:stretch}.contact-actions .btn,.work-piece .btn{width:100%;justify-content:center}.work-piece .btn-text,.contact-actions .btn-text,.resume-jump .btn-text{width:auto;justify-content:flex-start}.section-head .note{max-width:none;font-size:clamp(1.05rem,4.8vw,1.32rem)}.range-plot{margin-top:1.2rem}.plot-axis-note{font-size:13px}.peak-label{font-size:13px;letter-spacing:.06em}.footer-links{gap:.2rem .85rem}.footer-links a{min-height:44px;display:inline-flex;align-items:center}}@media(max-width:560px){.engage-paths,.engage-rates{grid-template-columns:1fr}.engage-paths strong,.engage-rates strong{font-size:1.25rem}.cmd-copy{min-height:44px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-stage{min-height:0;padding-bottom:.55rem}@view-transition{navigation:none}.btn,.btn-solid,.hero-photo,.work-piece,.nav-links a:after,.section-head h2,.section-head .note{animation:none!important;transition:none}.fx-grain,.starfield,.starfield-skip{display:none}.fx-play{transform:none!important;transition:none}.work-piece:hover,.spike:hover,.spike:focus-visible{transform:none}.plot-curve,.peak{animation:none!important;stroke-dashoffset:0;opacity:1}}@media print{:root{--bg: #fff;--paper: #fff;--ink: #111;--muted: #333;--accent: #222;--warm: #444;--surface: #fff;--surface-2: #f4f4f2;--line: #d5d2cc;--line-strong: #b9b5ae}body,html{background:var(--bg);color:var(--ink);color-scheme:light}.archive-page .role-projects,.archive-page .project-body{display:block!important}.role-summary:after,.project-summary:after{display:none}.nav,.hero-actions,.resume-jump,.footer,.skip,.hero-photo,.starfield,.starfield-skip,.fx-grain,.fx-progress,#achievements,#range,#work,#contact{display:none!important}.desk,.paper,.work-piece,.offer,.skills-panel{background:#fff;box-shadow:none;transform:none}a{color:inherit;text-decoration:none}}
