@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque-Variable-latin.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque-Variable-latin-ext.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;src:url(/fonts/InstrumentSans-Variable-latin.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;src:url(/fonts/InstrumentSans-Variable-latin-ext.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-400-latin.woff2)format("woff2");font-weight:400 500;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-400-latin-ext.woff2)format("woff2");font-weight:400 500;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-700-latin.woff2)format("woff2");font-weight:501 700;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-700-latin-ext.woff2)format("woff2");font-weight:501 700;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper:#f1ebdf;--paper-2:#e4dac7;--bone:#fbf8f2;--ink:#121109;--ink-2:#38352a;--muted:#5e594a;--soil:#0f1412;--soil-2:#16201d;--soil-3:#1f2b27;--cream:#f3eee3;--cream-2:#c6c0ad;--cream-3:#948f7d;--clay-deep:#7f350f;--clay-text:#963f14;--clay-fill:#a8461a;--clay:#bb5225;--clay-bright:#e07d3f;--wheat:#d6ab4d;--petrol-deep:#0b2f2c;--petrol-text:#175049;--petrol:#1d6b61;--petrol-bright:#4fb3a3;--line:#12110924;--line-2:#12110947;--line-dark:#f3eee324;--line-dark-2:#f3eee34d;--shadow-raise:0 1px 1px #1211090a, 0 10px 24px -18px #12110959;--shadow-dark:0 26px 54px -32px #000000bf;--font-display:"Bricolage Grotesque", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-sans:"Instrument Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"Space Mono", ui-monospace, "SF Mono", "Menlo", monospace;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(.33, 1, .68, 1);--ease-spring:cubic-bezier(.34, 1.32, .52, 1);--dur-1:.15s;--dur-2:.28s;--dur-3:.45s;--dur-4:.78s;--gutter:clamp(20px, 4.5vw, 60px);--shell:74rem;--section-y:clamp(72px, 8.5vw, 132px);--nav-h:68px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:var(--clay)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-synthesis:none;font-variant-numeric:lining-nums proportional-nums;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,p,figure,dl,dd,ul,ol{margin:0;padding:0}ul,ol{list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}[id]{scroll-margin-top:calc(var(--nav-h) + 20px)}h1,h2,h3{text-wrap:balance;hanging-punctuation:first}p{text-wrap:pretty}.cv-index,.cv-kicker,.cv-chip,.cv-impact-value,.cv-impact-detail,.cv-experience-meta,.cv-experience-index,.cv-work-meta,.cv-work-number,.cv-oss-card-index,.cv-hero-meta,.cv-hero-product-index,.cv-hero-product-caption{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1}::selection{background:var(--clay);color:var(--bone)}:focus-visible{outline:2px solid var(--clay-text);outline-offset:3px;border-radius:1px}.on-dark :focus-visible{outline-color:var(--clay-bright)}.cv-page{min-height:100dvh;position:relative;overflow:clip}.cv-page:after{content:"";z-index:9;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;position:fixed;inset:0}.cv-scroll-sentinel{pointer-events:none;width:1px;height:1px;position:absolute;top:40px;left:0}.cv-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cv-shell{width:100%;max-width:var(--shell);padding-inline:var(--gutter);margin-inline:auto}.cv-skip-link{z-index:200;background:var(--ink);color:var(--paper);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;transition:transform var(--dur-2) var(--ease);padding:12px 18px;font-size:.72rem;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.cv-skip-link:focus-visible{transform:translateY(0)}.cv-kicker{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--clay-text);align-items:center;gap:10px;font-size:.68rem;font-weight:500;display:inline-flex}.cv-kicker:before{content:"";opacity:.7;background:currentColor;width:22px;height:1px}.on-dark .cv-kicker{color:var(--clay-bright)}.cv-index{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--petrol-text);font-size:.68rem;font-weight:700}.on-dark .cv-index{color:var(--cream-3)}.cv-button{border:1px solid var(--clay-fill);background:var(--clay-fill);height:50px;color:var(--cream);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease-out);justify-content:center;align-items:center;gap:12px;padding-inline:22px;font-size:.72rem;font-weight:500;display:inline-flex}.cv-button svg{width:.95em;height:.95em;transition:transform var(--dur-3) var(--ease-spring)}.cv-button:focus-visible svg{transform:translate(3px,-3px)}.cv-button-down:focus-visible svg{transform:translateY(3px)}.cv-button:active{transform:translateY(1px)}.cv-button:not(.cv-button-secondary):active{background:var(--clay-deep);border-color:var(--clay-deep);color:var(--bone)}@media (hover:hover){.cv-button:hover svg{transform:translate(3px,-3px)}.cv-button-down:hover svg{transform:translateY(3px)}.cv-button:hover{background:var(--clay);border-color:var(--clay);color:var(--bone)}}.cv-button-secondary{color:var(--ink);border-color:var(--line-2);background:0 0}@media (hover:hover){.cv-button-secondary:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}}.on-dark .cv-button{background:var(--clay-fill);border-color:var(--clay-fill);color:var(--cream)}@media (hover:hover){.on-dark .cv-button:hover{background:var(--clay-bright);border-color:var(--clay-bright);color:var(--soil)}}.on-dark .cv-button-secondary{border-color:var(--line-dark-2);color:var(--cream);background:0 0}@media (hover:hover){.on-dark .cv-button-secondary:hover{background:var(--cream);border-color:var(--cream);color:var(--soil)}}.cv-chip{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-2);background:color-mix(in srgb, var(--bone) 60%, transparent);align-items:center;padding:5px 10px;font-size:.65rem;display:inline-flex}.on-dark .cv-chip{border-color:var(--line-dark);color:var(--cream-2);background:color-mix(in srgb, var(--cream) 5%, transparent)}.cv-link-inline{color:var(--ink);align-items:center;gap:6px;font-weight:450;display:inline-flex;position:relative}.cv-link-inline:after{content:"";transform-origin:0;height:1px;transition:transform var(--dur-3) var(--ease);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.cv-link-inline:hover:after,.cv-link-inline:focus-visible:after{transform:scaleX(1)}.on-dark .cv-link-inline{color:var(--cream)}[data-enter]{animation:enterUp var(--dur-4) var(--ease) both;animation-delay:calc(min(var(--reveal-delay,0), 6) * 65ms)}@keyframes enterUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}[data-reveal]{opacity:0;transition:opacity var(--dur-4) var(--ease-out), transform var(--dur-4) var(--ease);transition-delay:calc(min(var(--reveal-delay,0), 6) * 65ms);transform:translateY(18px)}[data-reveal=in]{opacity:1;transform:none}.cv-nav{z-index:60;color:var(--cream);transition:background var(--dur-3) var(--ease), color var(--dur-3) var(--ease), box-shadow var(--dur-3) var(--ease);background:0 0;position:sticky;top:0}.cv-nav:before{content:"";background:color-mix(in srgb, var(--paper) 93%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);border-bottom:1px solid var(--line);opacity:0;transition:opacity var(--dur-3) var(--ease);position:absolute;inset:0}.cv-nav[data-stuck=true]{color:var(--ink)}.cv-nav[data-stuck=true]:before{opacity:1}.cv-nav-progress{transform-origin:0;background:linear-gradient(90deg, var(--petrol), var(--clay), var(--clay-bright));opacity:0;width:100%;height:2px;transition:opacity var(--dur-3) var(--ease);display:none;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.cv-nav-progress{animation:linear both navProgress;animation-timeline:scroll(root);display:block}}@keyframes navProgress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.cv-nav[data-stuck=true] .cv-nav-progress{opacity:1}.cv-nav-inner{z-index:1;min-height:var(--nav-h);align-items:center;gap:clamp(12px,2vw,28px);display:flex;position:relative}.cv-nav-brand{align-items:center;gap:10px;margin-right:auto;display:inline-flex}.cv-nav-mark{background:var(--clay);width:30px;height:30px;color:var(--bone);font-family:var(--font-mono);letter-spacing:.04em;transition:transform var(--dur-3) var(--ease);place-items:center;font-size:.7rem;font-weight:600;display:grid}.cv-nav-brand:hover .cv-nav-mark{transform:rotate(-8deg)}.cv-nav-name{font-family:var(--font-display);letter-spacing:-.01em;font-variation-settings:"opsz" 24;font-size:1rem;font-weight:700}.cv-nav-links{align-items:center;gap:clamp(14px,1.8vw,26px);display:none}.cv-nav-links a{color:color-mix(in srgb, currentColor 74%, transparent);transition:color var(--dur-2) var(--ease);padding-block:4px;font-size:.9rem;position:relative}.cv-nav-links a:after{content:"";background:var(--clay);transform-origin:0;height:1px;transition:transform var(--dur-3) var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.cv-nav[data-stuck=false] .cv-nav-links a:after{background:var(--clay-bright)}.cv-nav-links a:hover,.cv-nav-links a[aria-current=true]{color:currentColor}.cv-nav-links a:hover:after,.cv-nav-links a[aria-current=true]:after{transform:scaleX(1)}.cv-nav-tools{align-items:center;gap:10px;display:flex}.cv-locale-switcher{border:1px solid color-mix(in srgb, currentColor 26%, transparent);align-items:center;display:flex}.cv-locale-switcher a{font-family:var(--font-mono);letter-spacing:.08em;color:color-mix(in srgb, currentColor 66%, transparent);transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);padding:6px 9px;font-size:.64rem;font-weight:500}.cv-locale-switcher a+a{border-left:1px solid color-mix(in srgb, currentColor 18%, transparent)}.cv-locale-switcher a:hover{color:currentColor}.cv-locale-switcher a[aria-current=page]{background:var(--cream);color:var(--soil)}.cv-nav[data-stuck=true] .cv-locale-switcher a[aria-current=page]{background:var(--ink);color:var(--paper)}.cv-nav-cta{border:1px solid color-mix(in srgb, currentColor 30%, transparent);height:38px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:background var(--dur-3) var(--ease), color var(--dur-3) var(--ease), border-color var(--dur-3) var(--ease);align-items:center;gap:9px;padding-inline:14px;font-size:.64rem;font-weight:500;display:none}.cv-nav-cta svg{width:.95em;height:.95em;transition:transform var(--dur-3) var(--ease)}.cv-nav-cta:hover{background:var(--clay);border-color:var(--clay);color:var(--bone)}.cv-nav-cta:hover svg{transform:translateY(3px)}.cv-nav-toggle{border:1px solid color-mix(in srgb, currentColor 30%, transparent);cursor:pointer;background:0 0;place-items:center;width:40px;height:38px;display:inline-grid}.cv-nav-toggle span{width:17px;height:11px;display:block;position:relative}.cv-nav-toggle span i{width:100%;height:1.5px;transition:transform var(--dur-3) var(--ease), opacity var(--dur-2) var(--ease);background:currentColor;position:absolute;left:0}.cv-nav-toggle span i:first-child{top:0}.cv-nav-toggle span i:nth-child(2){top:5px}.cv-nav-toggle span i:nth-child(3){top:10px}.cv-nav-toggle[aria-expanded=true] span i:first-child{transform:translateY(5px)rotate(45deg)}.cv-nav-toggle[aria-expanded=true] span i:nth-child(2){opacity:0}.cv-nav-toggle[aria-expanded=true] span i:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.cv-nav-scrim{inset:var(--nav-h) 0 0 0;z-index:0;cursor:default;animation:scrimIn var(--dur-3) var(--ease);background:#14130d80;border:0;padding:0;position:fixed}@keyframes scrimIn{0%{opacity:0}}.cv-nav-sheet{z-index:1;max-height:calc(100dvh - var(--nav-h));overscroll-behavior:contain;background:var(--paper);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);animation:sheetIn var(--dur-3) var(--ease);position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 24px 48px -28px #14130d80}@keyframes sheetIn{0%{opacity:0;transform:translateY(-8px)}}.cv-nav-sheet nav{flex-direction:column;padding-block:8px 20px;display:flex}.cv-nav-sheet nav a{border-bottom:1px solid var(--line);color:var(--ink-2);transition:color var(--dur-2) var(--ease), padding-left var(--dur-2) var(--ease);justify-content:space-between;align-items:center;gap:16px;padding-block:15px;font-size:1.05rem;display:flex}@media (hover:hover){.cv-nav-sheet nav a:hover{color:var(--clay-text);padding-left:6px}}.cv-nav-sheet nav a svg{width:.85em;height:.85em;color:var(--muted)}.cv-nav-sheet nav a.cv-button{border-bottom:1px solid var(--ink);width:100%;color:var(--paper);justify-content:center;margin-top:22px;padding-block:0;font-size:.72rem}.cv-nav-sheet nav a.cv-button:hover{border-bottom-color:var(--clay);color:var(--bone);padding-left:22px}.cv-hero{margin-top:calc(var(--nav-h) * -1);padding-top:calc(var(--nav-h) + clamp(48px, 7vw, 96px));background:var(--soil);color:var(--cream);padding-bottom:clamp(56px,7vw,104px);position:relative;overflow:hidden}.cv-hero-backdrop{pointer-events:none;opacity:.55;position:absolute;inset:0}.cv-hero-backdrop svg{width:100%;height:100%;position:absolute;inset:0}.cv-hero-backdrop path{fill:none;stroke:var(--wheat);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.18;stroke-dasharray:1400;stroke-dashoffset:1400px;animation:drawLine 2.6s var(--ease) forwards;animation-delay:calc(var(--line-i,0) * .16s + .26s)}@keyframes drawLine{to{stroke-dashoffset:0}}.cv-hero-glow{aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#b8552a3d 0%,#b8552a00 66%);width:min(60vw,720px);position:absolute;top:-22%;right:-12%}.cv-hero-glow:after{content:"";aspect-ratio:1;background:radial-gradient(circle,#cda8511a 0%,#cda85100 70%);width:78%;position:absolute;top:46%;right:34%}.cv-hero-inner{z-index:1;align-items:start;gap:clamp(44px,6vw,76px);display:grid;position:relative}.cv-hero-name{font-family:var(--font-display);letter-spacing:-.022em;font-variation-settings:"opsz" 96;margin-top:22px;font-size:clamp(2.9rem,7.4vw,5.6rem);font-weight:700;line-height:.94}.cv-hero-statement{max-width:22ch;font-family:var(--font-display);letter-spacing:-.015em;color:var(--cream);font-variation-settings:"opsz" 40;margin-top:clamp(24px,3vw,34px);font-size:clamp(1.35rem,2.5vw,2rem);font-weight:500;line-height:1.22}.cv-hero-summary{max-width:54ch;color:var(--cream-2);margin-top:20px;font-size:clamp(.98rem,1.1vw,1.06rem);line-height:1.68}.cv-hero-actions{flex-wrap:wrap;gap:12px;margin-top:clamp(28px,3vw,38px);display:flex}.cv-hero-meta{border-top:1px solid var(--line-dark);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cream-3);flex-wrap:wrap;align-items:center;gap:9px 16px;margin-top:clamp(30px,3.4vw,40px);padding-top:20px;font-size:.645rem;display:flex}.cv-hero-meta a{color:var(--cream-2);transition:color var(--dur-2) var(--ease);align-items:center;gap:5px;display:inline-flex}.cv-hero-meta a:hover{color:var(--clay-bright)}.cv-hero-meta svg{width:.85em;height:.85em}.cv-kicker-hero{flex-wrap:wrap;align-items:center;gap:9px 12px;display:flex}.cv-kicker-hero:before{flex:none}.cv-kicker-hero b{letter-spacing:.13em;color:var(--soil);background:var(--petrol-bright);padding:4px 9px;font-weight:700}.cv-hero-chips{flex-wrap:wrap;gap:8px;margin-top:clamp(18px,2vw,24px);display:flex}.cv-chip-strong{letter-spacing:.05em;padding:6px 11px;font-size:.68rem;font-weight:700}.on-dark .cv-chip-strong{color:var(--cream);border-color:var(--line-dark-2);background:color-mix(in srgb, var(--cream) 9%, transparent)}.on-dark .cv-hero-chips li:first-child{color:var(--soil);border-color:var(--wheat);background:var(--wheat)}.cv-hero-remote{border-left:2px solid var(--petrol-bright);color:var(--cream-2);flex-direction:column;gap:5px;margin-top:clamp(18px,2vw,24px);padding-left:13px;font-size:.9rem;line-height:1.5;display:flex}.cv-hero-remote-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--petrol-bright);font-size:.62rem;font-weight:700}.cv-hero-products{border-top:1px solid var(--line-dark-2);padding-top:18px}.cv-hero-products-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.cv-hero-products-head p:last-child{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cream-3);font-size:.64rem}.cv-hero-product-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.2vw,14px);margin-top:22px;display:grid}.cv-hero-product{transition:transform var(--dur-3) var(--ease);flex-direction:column;gap:10px;display:flex}.cv-hero-product:nth-child(2){transform:translateY(clamp(12px,2.4vw,26px))}.cv-hero-product:nth-child(3){transform:translateY(clamp(24px,4.8vw,52px))}.cv-hero-product:focus-visible{transform:translateY(-6px)}.cv-hero-product:nth-child(2):focus-visible{transform:translateY(calc(clamp(12px,2.4vw,26px) - 6px))}.cv-hero-product:nth-child(3):focus-visible{transform:translateY(calc(clamp(24px,4.8vw,52px) - 6px))}@media (hover:hover){.cv-hero-product:hover{transform:translateY(-6px)}.cv-hero-product:nth-child(2):hover{transform:translateY(calc(clamp(12px,2.4vw,26px) - 6px))}.cv-hero-product:nth-child(3):hover{transform:translateY(calc(clamp(24px,4.8vw,52px) - 6px))}}.cv-hero-product-visual{border:1px solid var(--line-dark);background:var(--soil-2);display:block;position:relative;overflow:hidden}.cv-hero-product-visual img{width:100%;height:auto;transition:transform var(--dur-4) var(--ease)}@media (hover:hover){.cv-hero-product:hover .cv-hero-product-visual img{transform:scale(1.035)}}.cv-hero-product-index{z-index:1;background:var(--clay);color:var(--bone);font-family:var(--font-mono);letter-spacing:.06em;padding:3px 6px;font-size:.6rem;position:absolute;top:0;left:0}.cv-hero-product-caption{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;flex-direction:column;gap:2px;font-size:.6rem;display:flex}.cv-hero-product-caption span:first-child{color:var(--cream)}.cv-hero-product-caption span:last-child{color:var(--cream-3)}.cv-hero-status{border-top:1px solid var(--line-dark);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cream-2);align-items:center;gap:10px;margin-top:clamp(46px,6vw,74px);padding-top:18px;font-size:.68rem;display:flex}.cv-hero-status i{background:var(--clay-bright);flex:none;width:7px;height:7px;position:relative}.cv-hero-status i:after{content:"";background:inherit;animation:ping 2.6s var(--ease) infinite;position:absolute;inset:0}@keyframes ping{0%{opacity:.7;transform:scale(1)}70%,to{opacity:0;transform:scale(3.2)}}.cv-hero-status span:last-child{color:var(--cream-3)}.cv-section{padding-block:var(--section-y);position:relative}.cv-section-paper-2{background:var(--paper-2);box-shadow:inset 0 1px 0 var(--line)}.cv-section-dark{background:var(--soil);color:var(--cream)}.cv-section-head{border-top:1px solid var(--line);gap:clamp(18px,2.4vw,30px);padding-top:22px;display:grid}.cv-section-dark .cv-section-head{border-top-color:var(--line-dark-2)}.cv-section-head h2{font-family:var(--font-display);letter-spacing:-.021em;font-variation-settings:"opsz" 84;max-width:18ch;font-size:clamp(2.1rem,4.4vw,3.5rem);font-weight:600;line-height:1.04}.cv-section-head-intro{max-width:46ch;color:var(--muted);font-size:clamp(.98rem,1.1vw,1.06rem);line-height:1.65}.cv-section-dark .cv-section-head-intro{color:var(--cream-2)}.cv-impact-board{background:var(--line);border:1px solid var(--line);gap:1px;margin-top:clamp(40px,5vw,62px);display:grid}.cv-impact-cell{background:var(--paper);transition:background var(--dur-3) var(--ease), box-shadow var(--dur-3) var(--ease);flex-direction:column;gap:6px;padding:clamp(22px,2.6vw,32px);display:flex;position:relative}@media (hover:hover){.cv-impact-cell:hover{background:var(--bone);box-shadow:var(--shadow-raise)}.cv-impact-cell-lead:hover{background:var(--petrol-text);box-shadow:var(--shadow-dark)}}.cv-impact-cell dt{flex-direction:column;gap:8px;display:flex}.cv-impact-cell-lead{background:var(--petrol-deep);color:var(--cream)}.cv-impact-value{font-family:var(--font-display);letter-spacing:-.024em;font-variation-settings:"opsz" 96;font-size:clamp(2.6rem,5.4vw,4.2rem);font-weight:700;line-height:.92}.cv-impact-cell-lead .cv-impact-value{color:var(--wheat)}.cv-impact-label{color:var(--ink);font-size:1rem;font-weight:500;line-height:1.35}.cv-impact-cell-lead .cv-impact-label{color:var(--cream)}.cv-impact-detail{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:.66rem}.cv-impact-cell-lead .cv-impact-detail{color:var(--cream-2)}.cv-impact-cell-index{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);order:-1;margin-bottom:clamp(14px,2vw,26px);font-size:.64rem;font-weight:500}.cv-impact-cell-lead .cv-impact-cell-index{color:var(--petrol-bright)}.cv-work-reels{gap:clamp(18px,2vw,26px);margin-top:clamp(40px,5vw,62px);display:grid}.cv-work-case{border:1px solid var(--line-dark);background:var(--soil-2);transition:border-color var(--dur-3) var(--ease), background var(--dur-3) var(--ease), box-shadow var(--dur-3) var(--ease);display:grid;overflow:hidden}@media (hover:hover){.cv-work-case:hover{border-color:var(--line-dark-2);background:var(--soil-3);box-shadow:var(--shadow-dark)}}.cv-work-media{background:var(--line-dark);grid-auto-columns:1fr;grid-auto-flow:column;gap:1px;display:grid}.cv-work-surface{background:var(--soil);display:block;position:relative;overflow:hidden}.cv-work-surface-media{height:clamp(224px,25vw,312px);display:block;position:relative;overflow:hidden}.cv-work-surface-media img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform var(--dur-4) var(--ease), opacity var(--dur-4) var(--ease)}.cv-work-surface-image-2{opacity:0;position:absolute;inset:0}@media (hover:hover){.cv-work-surface:hover .cv-work-surface-image-1{opacity:0}.cv-work-surface:hover .cv-work-surface-image-2{opacity:1}.cv-work-surface:hover .cv-work-surface-media img{transform:scale(1.04)}}.cv-work-surface-caption{border-top:1px solid var(--line-dark);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cream-3);justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;font-size:.64rem;display:flex}.cv-work-surface-caption strong{color:var(--cream);font-weight:500}.cv-work-surface-caption span:last-child{white-space:nowrap;transition:color var(--dur-2) var(--ease);align-items:center;gap:5px;display:inline-flex}.cv-work-surface-caption svg{width:.9em;height:.9em;transition:transform var(--dur-3) var(--ease)}.cv-work-surface:hover .cv-work-surface-caption span:last-child{color:var(--clay-bright)}.cv-work-surface:hover .cv-work-surface-caption svg{transform:translate(2px,-2px)}.cv-work-body{border-top:1px solid var(--line-dark);gap:clamp(16px,2vw,26px);padding:clamp(22px,2.6vw,32px);display:grid}.cv-work-identity{align-items:baseline;gap:14px;display:flex}.cv-work-number{font-family:var(--font-mono);letter-spacing:.1em;color:var(--cream-3);padding-top:6px;font-size:.66rem}.cv-work-identity h3{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 48;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:600;line-height:1.1}.cv-work-role{color:var(--cream-2);margin-top:5px;font-size:.94rem}.cv-work-meta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cream-3);flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:.64rem;display:flex}.cv-work-contribution dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cream-3);font-size:.64rem}.cv-work-contribution dd{max-width:62ch;color:var(--cream);margin-top:10px;font-size:1rem;line-height:1.6}.cv-capabilities{background:var(--line);border:1px solid var(--line);gap:1px;margin-top:clamp(40px,5vw,62px);display:grid}.cv-capability{background:var(--paper);transition:background var(--dur-3) var(--ease), box-shadow var(--dur-3) var(--ease);flex-direction:column;gap:14px;padding:clamp(24px,2.8vw,34px);display:flex}@media (hover:hover){.cv-capability:hover{background:var(--bone);box-shadow:var(--shadow-raise)}}.cv-capability-head{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);grid-template-columns:max-content max-content 1fr;justify-content:start;align-items:baseline;gap:5px 10px;font-size:.64rem;display:grid}.cv-capability-head span:last-child{grid-column:1/-1}.cv-capability-head b{color:var(--clay-text);font-weight:500}.cv-capability h3{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 48;font-size:clamp(1.4rem,2vw,1.75rem);font-weight:600;line-height:1.14}.cv-capability p{color:var(--ink-2);font-size:.97rem;line-height:1.62}.cv-capability ul{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px;display:flex}.cv-oss-grid{gap:clamp(18px,2vw,24px);margin-top:clamp(40px,5vw,62px);display:grid}.cv-oss-card{border:1px solid var(--line-dark);background:var(--soil-2);transition:background var(--dur-3) var(--ease), border-color var(--dur-3) var(--ease), box-shadow var(--dur-3) var(--ease);flex-direction:column;gap:12px;padding:clamp(24px,2.8vw,34px);display:flex}@media (hover:hover){.cv-oss-card:hover{background:var(--soil-3);border-color:var(--line-dark-2);box-shadow:var(--shadow-dark)}}.cv-oss-card-index{font-family:var(--font-mono);letter-spacing:.12em;color:var(--cream-3);font-size:.64rem}.cv-oss-card h3{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--cream);overflow-wrap:anywhere;font-size:clamp(1rem,1.5vw,1.18rem);font-weight:500}.cv-oss-card p{color:var(--cream-2);font-size:.96rem;line-height:1.62}.cv-oss-card a{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--clay-bright);align-items:center;gap:8px;margin-top:auto;padding-top:12px;font-size:.66rem;display:inline-flex}.cv-oss-card a svg{width:.95em;height:.95em;transition:transform var(--dur-3) var(--ease)}.cv-oss-card a:hover svg{transform:translate(3px,-3px)}.cv-oss-footer{border-top:1px solid var(--line-dark);color:var(--cream-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:clamp(28px,3vw,40px);padding-top:22px;font-size:.97rem;display:flex}.cv-experience-list{border-top:1px solid var(--line);margin-top:clamp(40px,5vw,62px)}.cv-experience{border-bottom:1px solid var(--line);transition:background var(--dur-3) var(--ease);gap:10px 28px;padding-block:clamp(22px,2.6vw,30px);display:grid}.cv-experience-index{font-family:var(--font-mono);letter-spacing:.1em;color:var(--petrol-text);font-size:.66rem;font-weight:700}.cv-experience-primary h3{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 48;font-size:clamp(1.3rem,1.9vw,1.6rem);font-weight:600;line-height:1.14}.cv-experience-primary p{color:var(--ink-2);margin-top:4px;font-size:.95rem}.cv-experience-meta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:3px;font-size:.64rem;display:flex}.cv-experience-detail>p{color:var(--ink-2);max-width:60ch;font-size:.99rem;line-height:1.62}.cv-experience-detail details{margin-top:14px}.cv-experience-detail summary{cursor:pointer;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color var(--dur-2) var(--ease);align-items:center;gap:9px;font-size:.64rem;list-style:none;display:inline-flex}.cv-experience-detail summary::-webkit-details-marker{display:none}.cv-experience-detail summary:hover{color:var(--clay-text)}.cv-experience-detail summary i{flex:none;width:10px;height:10px;position:relative}.cv-experience-detail summary i:before,.cv-experience-detail summary i:after{content:"";background:var(--petrol);transition:transform var(--dur-3) var(--ease), opacity var(--dur-2) var(--ease);position:absolute}.cv-experience-detail summary i:before{width:10px;height:1px;top:4.5px;left:0}.cv-experience-detail summary i:after{width:1px;height:10px;top:0;left:4.5px}.cv-experience-detail details[open] summary i:after{opacity:0;transform:rotate(90deg)}.cv-experience-detail details>div{animation:detailIn var(--dur-3) var(--ease);padding-top:16px}@keyframes detailIn{0%{opacity:0;transform:translateY(-6px)}}.cv-experience-points{gap:10px;max-width:62ch;display:grid}.cv-experience-points li{color:var(--ink-2);padding-left:20px;font-size:.96rem;line-height:1.6;position:relative}.cv-experience-points li:before{content:"";background:var(--clay);width:9px;height:1px;position:absolute;top:.62em;left:0}.cv-experience-stack{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.cv-faq-list{background:var(--line);border:1px solid var(--line);gap:1px;margin-top:clamp(40px,5vw,62px);display:grid}.cv-faq-item{background:var(--bone);gap:10px;padding:clamp(22px,2.6vw,30px);display:grid}.cv-faq-item dt{font-family:var(--font-display);letter-spacing:-.014em;color:var(--ink);font-variation-settings:"opsz" 40;align-items:baseline;gap:12px;font-size:clamp(1.12rem,1.6vw,1.32rem);font-weight:600;line-height:1.2;display:flex}.cv-faq-index{font-family:var(--font-mono);letter-spacing:.14em;color:var(--petrol-text);flex:none;font-size:.66rem;font-weight:700;transform:translateY(-.15em)}.cv-faq-item dd{max-width:62ch;color:var(--ink-2);font-size:.95rem;line-height:1.62}.cv-contact{padding-block:var(--section-y);background:var(--soil);color:var(--cream);position:relative}.cv-contact-grid{align-items:start;gap:clamp(36px,5vw,64px);margin-top:clamp(30px,3.4vw,44px);display:grid}.cv-contact h2{font-family:var(--font-display);letter-spacing:-.022em;font-variation-settings:"opsz" 96;max-width:15ch;font-size:clamp(2.3rem,5.2vw,4rem);font-weight:650;line-height:1.02}.cv-contact-intro{max-width:48ch;color:var(--cream-2);margin-top:20px;font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.65}.cv-contact-actions{flex-wrap:wrap;gap:12px;margin-top:clamp(26px,3vw,34px);display:flex}.cv-contact-list{border-top:1px solid var(--line-dark);font-style:normal;display:grid}.cv-contact-list a,.cv-contact-list div{border-bottom:1px solid var(--line-dark);transition:padding-left var(--dur-3) var(--ease), color var(--dur-2) var(--ease);justify-content:space-between;align-items:baseline;gap:16px;padding-block:16px;display:flex}@media (hover:hover){.cv-contact-list a:hover{color:var(--clay-bright);padding-left:8px}}.cv-contact-list dt,.cv-contact-list-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cream-3);flex:none;font-size:.62rem}.cv-contact-list-value{text-align:right;overflow-wrap:anywhere;align-items:center;gap:7px;font-size:.98rem;display:inline-flex}.cv-contact-list svg{flex:none;width:.85em;height:.85em}.cv-contact-footer{border-top:1px solid var(--line-dark);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--cream-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:clamp(46px,6vw,78px);padding-top:22px;font-size:.64rem;display:flex}.cv-contact-footer a{white-space:nowrap;transition:color var(--dur-2) var(--ease);align-items:center;gap:7px;display:inline-flex}.cv-contact-footer a:hover{color:var(--clay-bright)}@media (min-width:640px){.cv-impact-board,.cv-oss-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-nav-cta{display:inline-flex}}@media (min-width:860px){.cv-hero-inner{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:center}.cv-section-head{grid-template-columns:minmax(0,8rem) minmax(0,1fr) minmax(0,.85fr);align-items:start;gap:clamp(20px,3vw,44px)}.cv-section-head-intro{padding-top:8px}.cv-capabilities{grid-template-columns:repeat(3,minmax(0,1fr))}.cv-work-case{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:stretch}.cv-work-body{border-top:0;border-left:1px solid var(--line-dark);align-content:start}.cv-experience{grid-template-columns:minmax(0,2.2rem) minmax(0,1fr) minmax(0,9rem) minmax(0,1.35fr);align-items:start}.cv-experience-meta{text-align:right;align-items:flex-end}.cv-contact-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.cv-faq-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-faq-item dt{min-height:2.4em}}@media (min-width:1000px){.cv-nav-links{display:flex}.cv-nav-toggle{display:none}.cv-impact-board{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr}}@media (max-width:859px){.cv-section-head h2{max-width:20ch}.cv-hero-products{max-width:520px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}[data-reveal]{opacity:1;transform:none}[data-enter]{animation:none}.cv-hero-backdrop path{stroke-dashoffset:0}.cv-hero-product:nth-child(2),.cv-hero-product:nth-child(3){transform:none}.cv-nav-progress{display:none}}@media print{:root{--paper:#fff;--paper-2:#fff;--soil:#fff;--soil-2:#fff;--soil-3:#fff;--cream:#000;--cream-2:#333;--cream-3:#555;--shadow-raise:none;--shadow-dark:none}.cv-nav,.cv-skip-link,.cv-hero-backdrop,.cv-hero-glow,.cv-hero-actions,.cv-contact-actions,.cv-page:after{display:none!important}.cv-hero,.cv-section-dark,.cv-contact,.cv-work-case,.cv-oss-card,.cv-impact-cell-lead{color:#000!important;background:#fff!important;border-color:#ccc!important}[data-reveal],[data-enter]{opacity:1!important;animation:none!important;transform:none!important}.cv-section,.cv-experience,.cv-work-case{break-inside:avoid}.cv-experience-detail details{display:none}}
