@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2")}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2)format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2")}@font-face{font-family:Doto;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/doto-latin-wght-normal-DtlIPefW.woff2)format("woff2")}@font-face{font-family:Daft Font;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/daft-font-BukcKLjL.woff2)format("woff2")}:root{--color-bg:#0e0f11;--color-text:#eef0f2;--color-muted:#9aa0a8;--color-dim:#5d626a;--color-border:#2c2f34;--color-placeholder:#1b1d21;--color-placeholder-2:#23262b;--color-glass:#0e0f11c7;--color-accent:#ff4fa3;--color-accent-2:#8f9bff;--color-on-accent:#0e0f11;--gradient-accent:linear-gradient(90deg, #3b4bff, #ff4fa3);--color-tint:#3b4bff29;--font-display:"Instrument Serif", Georgia, serif;--font-sans:"Instrument Sans", system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, Menlo, monospace;--font-dot:"Doto", "DM Mono", monospace;--font-daft:"Daft Font", var(--font-display);--beat:calc(60s / 123);--content-width:1280px;--gutter:clamp(20px, 3.2vw, 48px)}@media (prefers-color-scheme:light){:root{--color-bg:#f3f3f1;--color-text:#111214;--color-muted:#62676e;--color-dim:#a3a7ac;--color-border:#d4d5d2;--color-placeholder:#e0e1de;--color-placeholder-2:#d5d6d3;--color-glass:#f3f3f1cc;--color-accent:#d6267a;--color-accent-2:#2a39e0;--color-on-accent:#fff;--gradient-accent:linear-gradient(90deg, #2a39e0, #d6267a);--color-tint:#2a39e014}}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-synthesis:none;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}::selection{background:var(--color-text);color:var(--color-bg)}h1,h2,h3{text-wrap:balance;margin:0;font-weight:400}em{font-style:italic}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--color-text);color:var(--color-bg);z-index:10;padding:12px;position:absolute;top:12px;left:24px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,:before,:after{transition:none!important;animation:none!important}}html{scroll-behavior:smooth}#app{max-width:var(--content-width);padding-inline:var(--gutter);margin-inline:auto}.site-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-block:clamp(16px,1.8vw,24px);display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(20px,1.8vw,24px);line-height:1}.site-nav{font-family:var(--font-mono);letter-spacing:.06em;flex-wrap:wrap;align-items:center;gap:8px clamp(14px,1.8vw,26px);font-size:12px;display:flex}.site-nav a:not(.cv-link){color:var(--color-muted);transition:color .12s}.site-nav a:not(.cv-link):hover{color:var(--color-text)}.site-nav .cv-link{padding:8px 14px}@media (width<=560px){.site-nav{gap:8px 14px;font-size:11px}.site-nav .cv-link{padding:7px 11px}}.hero{grid-template-columns:clamp(96px,13vw,170px) minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:clamp(20px,3vw,44px);padding-block:clamp(48px,7vw,96px) clamp(40px,5vw,72px);display:grid}.hero-portrait{object-fit:cover;aspect-ratio:4/5;background:repeating-linear-gradient(135deg, var(--color-placeholder) 0 10px, var(--color-placeholder-2) 10px 20px);width:100%;max-width:100%;height:auto;display:block}.hero-hello{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(40px,5.2vw,72px);line-height:1.02}.hero-name{color:var(--color-accent-2);cursor:default;font-style:italic}@media (hover:hover){.hero-name:hover{font-family:var(--font-daft);letter-spacing:0;font-size:.8em;font-style:normal}}.hero-typed{color:var(--color-muted)}.caret{vertical-align:-.06em;background:var(--color-accent);width:.06em;height:.85em;animation:blink calc(var(--beat) * 2) steps(1) infinite;margin-left:.04em;display:inline-block}@keyframes blink{50%{opacity:0}}.hero-bio{color:var(--color-muted);max-width:46ch;margin:0;padding-top:.6em;font-size:clamp(15px,1.2vw,17px);line-height:1.6}.hero-bio b{color:var(--color-text);font-weight:500}@media (width<=720px){.hero{grid-template-columns:96px minmax(0,1fr)}.hero-bio{grid-column:1/-1;padding-top:0}}.hero-main{gap:14px;display:grid}.hero-meta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:12px}.cases-head{border-top:1px solid var(--color-border);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);justify-content:space-between;align-items:baseline;padding-top:12px;font-size:12px;display:flex}.cases-head h2{font:inherit;color:var(--color-text)}.tagbar{z-index:5;margin-inline:calc(var(--gutter) * -1);padding:14px var(--gutter);background:var(--color-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}.tags{scrollbar-width:none;border:1px solid var(--color-border);border-radius:999px;gap:8px;padding:6px;display:flex;overflow-x:auto}.tags::-webkit-scrollbar{display:none}.tag{font:500 13px/1 var(--font-mono);letter-spacing:.03em;color:var(--color-muted);border:1px solid #0000;border-radius:999px;flex:none;padding:10px 16px;transition:color .12s,border-color .12s,background-color .12s}.tag:hover{color:var(--color-text);border-color:var(--color-border)}.tag.is-active{color:var(--color-bg);background:var(--color-text)}.tag.is-active:before{content:"";background:var(--color-accent);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.tag:focus-visible{outline-offset:2px}.case{border-bottom:1px solid var(--color-border);grid-template-columns:64px minmax(0,1.2fr) minmax(0,1fr);gap:clamp(16px,2vw,28px);padding-block:clamp(32px,4vw,48px);scroll-margin-top:88px;display:grid}.case-n{font-family:var(--font-mono);color:var(--color-muted);font-variant-numeric:tabular-nums;padding-top:.7em;font-size:12px}.case h3{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(32px,3.6vw,48px);line-height:1}.case h3 a:hover{color:var(--color-muted)}.case p{color:var(--color-muted);max-width:48ch;margin:0;font-size:clamp(15px,1.15vw,17px);line-height:1.6}.case-media{aspect-ratio:21/8;background:repeating-linear-gradient(135deg, var(--color-placeholder) 0 10px, var(--color-placeholder-2) 10px 20px);grid-column:2/-1;max-width:100%}.case-more{border:1px solid var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;border-radius:999px;justify-self:start;align-items:center;gap:10px;padding:14px 22px;font-size:13px;transition:background-color .15s,color .15s;display:inline-flex}.case-more:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}@media (width<=720px){.case{grid-template-columns:minmax(0,1fr)}.case-n{padding-top:0}.case-media{grid-column:auto}}.case.is-wip{grid-template-columns:64px minmax(0,1.2fr) minmax(0,1fr);align-items:baseline;padding-block:clamp(24px,3vw,32px)}.case.is-wip h3{color:var(--color-muted);font-size:clamp(26px,2.8vw,36px)}.wip-badge{vertical-align:middle;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);align-items:center;gap:8px;margin-left:14px;font-size:11px;display:inline-flex}.wip-badge:before{content:"";background:var(--color-accent);width:7px;height:7px;animation:blink calc(var(--beat) * 2) steps(1) infinite;border-radius:50%}.tag.is-wip{color:var(--color-dim)}.site-footer{border-top:1px solid var(--color-text);gap:20px;margin-top:clamp(64px,8vw,120px);padding-block:clamp(40px,6vw,72px) 48px;display:grid}.site-footer h2{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(48px,7vw,96px);line-height:.95}.site-footer-links{flex-wrap:wrap;gap:12px 28px;font-size:clamp(17px,1.6vw,22px);display:flex}.site-footer-links a{border-bottom:1px solid var(--color-border);padding-bottom:2px}.site-footer-links a:hover{border-color:var(--color-text)}.site-footer-meta{font-family:var(--font-mono);color:var(--color-muted);margin:0;font-size:12px}.hero.no-photo{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}@media (width<=720px){.case.is-wip{grid-template-columns:minmax(0,1fr)}.wip-badge{margin-top:8px;margin-left:0;display:flex}.hero.no-photo{grid-template-columns:minmax(0,1fr)}}.cs-head{gap:18px;padding-block:clamp(40px,6vw,88px) clamp(28px,4vw,48px);display:grid}.cs-back{font-family:var(--font-mono);letter-spacing:.06em;color:var(--color-muted);justify-self:start;font-size:12px}.cs-back:hover{color:var(--color-text)}.cs-head h1{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(56px,9vw,128px);line-height:.9}.cs-tagline{font-family:var(--font-display);color:var(--color-muted);max-width:30ch;margin:0;font-size:clamp(26px,3vw,40px);line-height:1.1}.cs-tagline em,.cs-section h2 em{color:var(--color-text)}.cs-meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 clamp(12px,1.6vw,24px);margin:12px 0 0;display:grid}.cs-meta div{border-top:1px solid var(--color-border);gap:4px;padding-top:10px;display:grid}.cs-meta dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.cs-meta dd{margin:0;font-size:15px}.cs-media{gap:10px;margin:0 0 clamp(48px,6vw,88px);display:grid}.cs-media-video{aspect-ratio:16/9;border:1px solid var(--color-border);background:#f4f2ed;border-radius:12px;width:100%;max-width:100%;height:auto;display:block}.cs-media figcaption{font-family:var(--font-mono);color:var(--color-muted);font-size:12px}.cs-body{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:clamp(24px,4vw,64px);display:grid}.cs-index{position:sticky;top:24px}.cs-index ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.cs-index a{font-family:var(--font-mono);color:var(--color-dim);gap:12px;padding:8px 0;font-size:13px;transition:color .12s;display:flex}.cs-index a span{font-variant-numeric:tabular-nums}.cs-index a:hover,.cs-index a.is-active{color:var(--color-text)}.cs-index a.is-active span{color:var(--color-accent)}.cs-content{gap:clamp(56px,7vw,104px);max-width:720px;display:grid}.cs-section{gap:18px;scroll-margin-top:32px;display:grid}.cs-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);gap:12px;margin:0;font-size:12px;display:flex}.cs-section h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-muted);font-size:clamp(32px,3.6vw,52px);line-height:1.04}.cs-section>p:not(.cs-eyebrow){color:var(--color-muted);max-width:62ch;margin:0;font-size:clamp(16px,1.25vw,18px);line-height:1.65}.cs-section b{color:var(--color-text);font-weight:500}.cs-options{border-top:1px solid var(--color-border);display:grid}.cs-option{border-bottom:1px solid var(--color-border);color:var(--color-muted);grid-template-columns:minmax(0,11rem) 7rem minmax(0,1fr);gap:8px 20px;padding-block:14px;font-size:15px;line-height:1.5;display:grid}.cs-option-name{color:var(--color-text)}.cs-option-verdict{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-dim);padding-top:.25em;font-size:11px}.cs-option.is-chosen .cs-option-name{font-family:var(--font-display);font-size:20px;font-style:italic;line-height:1.2}.cs-option.is-chosen .cs-option-verdict{color:var(--color-text)}.cs-option.is-step .cs-option-verdict{color:var(--color-muted)}.cs-option:not(.is-chosen):not(.is-step) .cs-option-name{text-decoration:line-through;-webkit-text-decoration-color:var(--color-dim);text-decoration-color:var(--color-dim)}@media (width<=560px){.cs-option{grid-template-columns:minmax(0,1fr) auto}.cs-option-reason{grid-column:1/-1}}.cs-list{border-left:1px solid var(--color-text);gap:8px;padding-left:18px;display:grid}.cs-list p{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:11px}.cs-list ul{gap:6px;margin:0;padding-left:18px;font-size:clamp(16px,1.25vw,18px);line-height:1.5;display:grid}.cs-pending{border:1px dashed var(--color-border);color:var(--color-muted);padding:14px 18px;font-size:14px}.cs-pending p{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;font-size:11px}.cs-pending ul{gap:4px;margin:0;padding-left:18px;display:grid}.cs-ba{grid-template-columns:1fr 1fr;gap:0 clamp(12px,1.6vw,24px);margin-top:clamp(64px,8vw,120px);display:grid}.cs-ba div{border-top:1px solid var(--color-text);gap:10px;padding-top:12px;display:grid}.cs-ba span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.cs-ba div:last-child b{color:var(--color-accent)}.cs-ba b{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(44px,7vw,104px);font-weight:400;line-height:1}.cs-ba div:first-child b{color:var(--color-dim);text-decoration:line-through;text-decoration-thickness:2px}.cs-ba p{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);grid-column:1/-1;margin:18px 0 0;font-size:13px}.cs-foot{border-top:1px solid var(--color-border);font-family:var(--font-mono);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-block:clamp(64px,8vw,120px) 48px;padding-top:16px;font-size:13px;display:flex}.cs-foot a:hover{color:var(--color-muted)}@media (width<=860px){.cs-body{grid-template-columns:minmax(0,1fr)}.cs-index{display:none}}@media (prefers-reduced-motion:no-preference){.js .reveal{opacity:0;transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.2,1);transform:translateY(18px)}.js .reveal.is-visible{opacity:1;transform:none}.js .reveal li{opacity:0;transition:opacity .4s,transform .4s;transition-delay:calc(var(--i,0) * 70ms + .15s);transform:translateY(8px)}.js .reveal.is-visible li{opacity:1;transform:none}}.v{margin:8px 0}.v figcaption,.v-tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:11px}.v-chips{gap:12px;display:grid}.v-chips ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.v-chips li{border:1px solid var(--color-border);border-radius:999px;padding:9px 14px;font-size:14px}.v-ids{border:1px solid var(--color-border);gap:14px;padding:clamp(16px,2vw,24px);display:grid}.v-store,.v-node{border:1px solid var(--color-text);justify-self:start;gap:2px;padding:12px 16px;font-size:16px;display:grid}.v-store span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:10px}.v-ids ul{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.v-ids li{background:var(--color-placeholder);border-left:2px solid var(--color-dim);gap:4px;padding:12px;display:grid}.v-ids li span{color:var(--color-muted);font-size:12px}.v-ids li b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:17px;font-weight:500}.v-phone{justify-items:start;gap:18px;display:grid}.v-phone ul{font-family:var(--font-mono);color:var(--color-dim);flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.v-phone li{text-decoration:line-through}.v-phone-num{gap:6px;display:grid}.v-phone-num span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.v-phone-num b{color:var(--color-accent);font-family:var(--font-dot);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:clamp(40px,6vw,72px);font-weight:700;line-height:1}.v-identity{background:var(--color-border);border:1px solid var(--color-border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.v-col{background:var(--color-bg);align-content:start;justify-items:start;gap:10px;padding:clamp(16px,2vw,24px);display:grid}.v-node{font-size:15px}.v-node.is-phone{font-family:var(--font-mono);border-color:var(--color-muted);font-size:14px}.v-node.is-brand{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.v-fan{border-left:1px solid var(--color-border);gap:6px;width:100%;margin:0;padding:0 0 0 16px;list-style:none;display:grid}.v-fan li{background:var(--color-placeholder);align-items:baseline;gap:10px;padding:8px 10px;font-size:14px;display:flex}.v-fan b{font-family:var(--font-mono);color:var(--color-muted);font-size:13px;font-weight:500;text-decoration:line-through}.v-fan.is-after{border-left-color:var(--color-text)}.v-fan.is-after li:before{content:"✓";font-size:12px}.v-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0;padding:0;list-style:none;display:grid}.v-steps li{border:1px solid var(--color-border);font-family:var(--font-display);gap:18px;padding:16px;font-size:clamp(20px,2vw,26px);line-height:1.1;display:grid}.v-steps span{font-family:var(--font-mono);color:var(--color-muted);font-size:12px}.v-shot{gap:10px;display:grid}.v-shot-frame{border:1px solid var(--color-border);background:#fff;border-radius:10px;overflow:hidden}.v-shot img{width:100%;height:auto;display:block}@media (width<=560px){.v-identity,.v-steps{grid-template-columns:minmax(0,1fr)}}.v-gallery{gap:12px;display:grid}.v-gallery ul{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;gap:12px;margin:0;padding:0;list-style:none;display:grid}.v-gallery li{gap:8px;display:grid}.v-gallery img{border:1px solid var(--color-border);border-radius:12px;width:100%;height:auto;display:block}.v-gallery span{font-family:var(--font-mono);color:var(--color-muted);font-size:12px}.v-metrics{border-top:1px solid var(--color-border);gap:0;margin:8px 0;display:grid}.v-metrics div{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,12rem) minmax(0,1fr);align-items:baseline;gap:8px 20px;padding-block:16px;display:grid}.v-metrics dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.v-metrics dd{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:0;display:flex}.v-metrics s{font-family:var(--font-mono);color:var(--color-dim);font-size:15px}.v-metrics dd>span{color:var(--color-muted)}.v-metrics b{color:var(--color-accent);font-family:var(--font-dot);font-variant-numeric:tabular-nums;font-size:clamp(28px,3.4vw,44px);font-weight:700;line-height:1}.v-compare{border-top:1px solid var(--color-text);font-size:15px;display:grid}.v-compare-row{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,10rem) minmax(0,1fr) minmax(0,1fr);gap:8px 20px;padding-block:12px;display:grid}.v-compare-row.is-head span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.v-compare-row [role=rowheader]{color:var(--color-muted)}.v-compare-row [role=cell]:nth-child(2){color:var(--color-dim)}@media (width<=560px){.v-metrics div,.v-compare-row{grid-template-columns:minmax(0,1fr)}.v-compare-row.is-head{display:none}.v-compare-row [role=cell]:nth-child(2){text-decoration:line-through}}.v-curve{gap:10px;display:grid}.v-curve-svg{width:100%;max-width:100%;height:auto;color:var(--color-text);display:block;overflow:visible}.v-curve-svg text{font-family:var(--font-mono);fill:var(--color-muted);paint-order:stroke;stroke:var(--color-bg);stroke-width:5px;stroke-linejoin:round;font-size:12px}.v-curve-svg .axis{stroke:var(--color-border);stroke-width:1px}.v-curve-svg .area{fill:var(--color-text);opacity:.06}.v-curve-svg .line{fill:none;stroke:var(--color-text);stroke-width:2.5px;stroke-linejoin:round}.v-curve-svg circle{fill:var(--color-bg);stroke:var(--color-text);stroke-width:2px}.v-curve-svg .threshold{stroke:var(--color-muted);stroke-width:1px;stroke-dasharray:4 5}.v-curve-svg .threshold-t{fill:var(--color-text)}.v-curve-svg .tick{text-anchor:middle;fill:var(--color-dim);font-size:11px}.v-curve-svg .axis-t{text-anchor:end}.v-curve-svg .band{fill:var(--color-placeholder-2)}.v-curve-svg .band.b1{fill:var(--color-border)}.v-curve-svg .band.b2{fill:var(--color-text)}.v-curve-svg .band-t{stroke:none;text-anchor:middle;letter-spacing:.1em;text-transform:uppercase;fill:var(--color-text);font-size:11px}.v-curve-svg .band-t.b2{fill:var(--color-bg)}.js .reveal .v-curve-svg .line,.js .scene .v-curve-svg .line{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1) .2s}.js .reveal.is-visible .v-curve-svg .line,.js .scene.is-active .v-curve-svg .line{stroke-dashoffset:0}.v-tiers{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0;padding:0;list-style:none;display:grid}.tier{border:1px solid var(--color-border);border-top:3px solid var(--color-dim);align-content:start;gap:8px;padding:16px;display:grid;position:relative}.tier.t1{border-top-color:var(--color-muted)}.tier.t2:before{content:"";background:var(--gradient-accent);height:3px;position:absolute;top:-3px;left:-1px;right:-1px}.tier-name{font-family:var(--font-display);font-size:26px;line-height:1}.tier-range,.tier-note{color:var(--color-muted);font-size:13px;line-height:1.45}.tier-range{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.tier b{color:var(--color-accent);font-family:var(--font-dot);font-size:clamp(36px,4vw,52px);font-weight:700;line-height:1}@media (width<=560px){.v-tiers{grid-template-columns:minmax(0,1fr)}}.scene-curve,.scene-tiers{align-content:center;padding:clamp(16px,3vw,36px);display:grid}.js .scene-tiers .tier{opacity:0;transition:opacity .45s,translate .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * .18s + .2s);translate:0 16px}.js .scene-tiers.is-active .tier{opacity:1;translate:0}.scene-tiers .v-tiers{margin:0}.v-gallery.is-wide ul{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.v-gallery.is-wide img{aspect-ratio:16/10;object-fit:cover;object-position:top}.reel{grid-column:2/-1;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-areas:"steps stage";gap:clamp(24px,4vw,64px);margin-top:8px;display:grid}.r-stage{grid-area:stage;align-content:start;gap:12px;display:grid}.r-steps{grid-area:steps;align-content:start;gap:28px;display:grid}.r-seq{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.r-seq i{background:var(--color-border);height:3px;transition:background-color .2s}.r-seq i.is-active{background:var(--gradient-accent)}.r-scenes{gap:12px;display:grid}.scene{border:1px solid var(--color-border);background:radial-gradient(120% 90% at 50% 40%, var(--color-tint), transparent 70%), var(--color-bg);height:clamp(380px,60vh,580px);position:relative;overflow:hidden}.reel .r-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);gap:12px;margin:0 0 10px;font-size:12px;display:flex}.reel .r-text{font-family:var(--font-display);letter-spacing:-.015em;max-width:22ch;margin:0;font-size:clamp(24px,2.4vw,34px);line-height:1.12}.r-steps .case-more{margin-top:12px}.r-node{border:1px solid var(--color-text);background:var(--color-bg);z-index:1;gap:2px;padding:14px 18px;font-size:17px;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.r-node span,.r-phone span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:10px}.r-chip{left:var(--l);top:var(--t);border:1px solid var(--color-border);background:var(--color-bg);font-family:var(--font-mono);white-space:nowrap;font-variant-numeric:tabular-nums;padding:8px 12px;font-size:14px;position:absolute;translate:-50% -50%}.reel .r-count{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);align-items:baseline;gap:10px;margin:0;font-size:11px;display:flex;position:absolute;bottom:14px;left:18px}.r-count b{font-family:var(--font-dot);letter-spacing:0;color:var(--color-accent);font-size:40px;font-weight:700}.scene-converge .r-chip{color:var(--color-dim);text-decoration:line-through}.r-phone{text-align:center;justify-items:center;gap:8px;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.r-phone b{color:var(--color-accent);font-family:var(--font-dot);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(34px,4.4vw,60px);font-weight:700;line-height:1}.r-img{border-radius:14px;max-width:none;display:block;position:absolute;box-shadow:0 24px 60px #00000059}.r-img.is-phone{object-fit:cover;object-position:top;width:auto;max-width:54%;height:88%}.r-img.is-desktop{border:1px solid var(--color-border);width:62%;height:auto}.scene-screens .r-img:first-child{top:6%;left:5%;rotate:-2.5deg}.scene-screens .r-img:nth-child(2){bottom:6%;right:5%;rotate:2deg}.r-img.is-screen{object-fit:cover;object-position:top;border:1px solid var(--color-border);border-radius:18px;width:auto;max-width:48%;height:84%}.scene-screens .r-img:only-child{max-width:70%;margin:auto;inset:0;rotate:0deg}.scene-metric{align-content:center;gap:clamp(20px,4vh,40px);padding:0 clamp(20px,4vw,48px);display:grid}.r-metric{gap:8px;display:grid}.r-metric span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.r-metric p{flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0;display:flex}.r-metric s{font-family:var(--font-mono);color:var(--color-dim);font-size:clamp(18px,2vw,26px)}.r-metric b{color:var(--color-accent);font-family:var(--font-dot);font-variant-numeric:tabular-nums;font-size:clamp(44px,6vw,84px);font-weight:700;line-height:1}.js .scene-metric .r-metric b{opacity:0;transition:opacity .5s,translate .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * .25s + .45s);translate:0 12px}.js .scene-metric.is-active .r-metric b{opacity:1;translate:0}.js .r-stage{z-index:2;background:var(--color-bg);align-self:start;padding-block:8px;position:sticky;top:max(96px,50vh - 300px)}.js .r-scenes{height:clamp(380px,60vh,580px);display:block;position:relative}.js .scene{opacity:0;visibility:hidden;height:auto;transition:opacity .45s,visibility 0s linear .45s;position:absolute;inset:0}.js .scene.is-active{opacity:1;visibility:visible;transition:opacity .45s}.js .r-step{opacity:.3;flex-direction:column;justify-content:center;min-height:52vh;transition:opacity .3s;display:flex}.js .r-step.is-active{opacity:1}.js .scene-burst .r-chip{opacity:0;transition:left .8s cubic-bezier(.2,.8,.2,1),top .8s cubic-bezier(.2,.8,.2,1),opacity .3s;transition-delay:calc(var(--i) * 70ms + .15s);top:50%;left:50%}.js .scene-burst.is-active .r-chip{left:var(--l);top:var(--t);opacity:1}.js .scene-burst .r-count{opacity:0;transition:opacity .4s .9s}.js .scene-burst.is-active .r-count{opacity:1}.js .scene-converge .r-chip{transition:left .7s cubic-bezier(.6,0,.4,1),top .7s cubic-bezier(.6,0,.4,1),opacity .5s;transition-delay:calc(var(--i) * 45ms + .25s)}.js .scene-converge.is-active .r-chip{opacity:0;top:50%;left:50%}.js .scene-converge .r-phone{opacity:0;transition:opacity .5s .85s,scale .6s cubic-bezier(.2,.8,.2,1) .85s;scale:.92}.js .scene-converge.is-active .r-phone{opacity:1;scale:1}.js .scene-screens .r-img{opacity:0;transition:opacity .5s,translate .7s cubic-bezier(.2,.8,.2,1);translate:0 36px}.js .scene-screens .r-img:nth-child(2){transition-delay:.2s}.js .scene-screens.is-active .r-img{opacity:1;translate:0}@media (width<=900px){.reel{grid-column:auto;grid-template-columns:minmax(0,1fr);grid-template-areas:"stage""steps"}.js .r-stage{top:84px}.scene,.js .r-scenes{height:min(42vh,400px)}.js .r-step{min-height:46vh}.r-chip{padding:6px 9px;font-size:12px}.reel .r-text{font-size:22px}.reel .r-count{bottom:10px;left:12px}.r-count b{font-size:28px}.js .r-step{justify-content:flex-end;padding-bottom:8vh}}.scene-screens .r-img.is-desktop:only-child{width:88%;max-width:88%;height:auto}.experience{gap:clamp(24px,3vw,40px);margin-top:clamp(72px,9vw,128px);display:grid}.section-head{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-top:12px;display:flex}.section-head h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:12px}.experience-intro{font-family:var(--font-display);letter-spacing:-.015em;max-width:30ch;margin:0;font-size:clamp(26px,3vw,40px);line-height:1.12}.jobs{border-top:1px solid var(--color-text);display:grid}.job{border-bottom:1px solid var(--color-border);grid-template-columns:9.5rem minmax(0,.9fr) minmax(0,1.4fr);gap:8px clamp(16px,2.4vw,32px);padding-block:clamp(20px,2.4vw,28px);display:grid}.job-period{font-family:var(--font-mono);color:var(--color-muted);font-variant-numeric:tabular-nums;margin:0;padding-top:.45em;font-size:12px}.job-head h3{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(26px,2.6vw,34px);line-height:1.05}.job-role{color:var(--color-accent-2);margin:6px 0 0;font-size:14px}.job-earlier{color:var(--color-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.job-body{color:var(--color-muted);gap:10px;font-size:15px;line-height:1.55;display:grid}.job-body p{color:var(--color-text);margin:0}.job-body ul{gap:4px;margin:0;padding-left:18px;display:grid}.experience-extra{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:clamp(20px,3vw,40px);display:grid}.experience-extra h3{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-bottom:12px;font-size:11px}.experience-extra p{margin:0;font-size:15px;line-height:1.5}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--color-border);border-radius:999px;padding:7px 12px;font-size:13px}.cv-link{border:1px solid var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:12px;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.cv-link:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}@media (width<=860px){.job{grid-template-columns:minmax(0,1fr)}.job-period{padding-top:0}.experience-extra{grid-template-columns:minmax(0,1fr)}}
