:root{--color-bg:#0a0c14;--color-bg-alt:#10131f;--color-surface:#161a2a;--color-surface-2:#1d2234;--color-text:#eef0f6;--color-text-muted:#9aa1b8;--color-accent:#6b7cf0;--color-accent-hi:#8b99f5;--color-accent-warm:#e8434f;--color-on-accent:#0a0c14;--gradient-brand:linear-gradient(90deg,#4f5ce8,#e8434f);--color-border:rgba(255,255,255,.08);--sheen:linear-gradient(180deg,rgba(255,255,255,.055) 0 1px,rgba(255,255,255,.030) 1px,rgba(255,255,255,0) 58%);--color-border-hi:rgba(255,255,255,.16);--radius:10px;--radius-lg:18px;--radius-pill:999px;--font-body:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-display:var(--font-body);--step--1:clamp(.82rem,.8rem + .1vw,.89rem);--step-0:clamp(.94rem,.92rem + .12vw,1rem);--step-1:clamp(1.05rem,1rem + .28vw,1.2rem);--step-2:clamp(1.5rem,1.35rem + .72vw,2rem);--step-3:clamp(1.95rem,1.65rem + 1.5vw,2.9rem);--step-4:clamp(2.5rem,1.9rem + 3vw,4.5rem);--wrap:1200px;--gutter:clamp(1.15rem,.8rem + 1.6vw,2.5rem);--section-y:clamp(4rem,2.5rem + 6vw,8rem);--ease:cubic-bezier(.22,.61,.36,1);--dur:.28s;--header-h:72px;--loader-hold:800ms;--loader-fade:420ms;--enter-dur:560ms;--enter-step:80ms}@media (min-width:1600px){:root{--wrap:1320px}}@font-face{font-family:"Archivo Fig";font-style:normal;font-weight:700;font-stretch:110%;font-display:swap;src:url("/assets/fonts/archivo-110-700-digits.woff2") format("woff2");unicode-range:U+20,U+25,U+2b-2c,U+2e,U+30-39,U+4b,U+4d,U+58,U+6b,U+6d,U+78}@font-face{font-family:"Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/plex-mono-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22160%22%20height%3D%22160%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.8%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22160%22%20height%3D%22160%22%20filter%3D%22url%28%23n%29%22%20opacity%3D%22.055%22%2F%3E%3C%2Fsvg%3E"),radial-gradient(58% 26% at 84% 3%,rgba(79,92,232,.11),transparent 70%),radial-gradient(50% 22% at 6% 27%,rgba(232,67,79,.07),transparent 70%),radial-gradient(56% 24% at 94% 56%,rgba(79,92,232,.08),transparent 70%),radial-gradient(48% 20% at 4% 84%,rgba(232,67,79,.06),transparent 70%);background-repeat:repeat,no-repeat,no-repeat,no-repeat,no-repeat;color:var(--color-text);font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img,svg,video{display:block;max-width:100%;height:auto}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.08;letter-spacing:-.022em;text-wrap:balance;font-weight:700}p{text-wrap:pretty}a{color:inherit;text-decoration:none}ul,ol{list-style:none;padding:0}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent-hi);outline-offset:3px;border-radius:4px}:focus:not(:focus-visible){outline:none}::selection{background:var(--color-accent);color:var(--color-on-accent)}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-y)}.section--alt{background:var(--color-bg-alt)}.section--alt{background-color:color-mix(in srgb,var(--color-bg-alt) 88%,transparent);background-image:radial-gradient(58% 88% at 10% 0%,rgba(79,92,232,.09),transparent 68%)}.section--alt:nth-of-type(even){background-image:radial-gradient(58% 88% at 90% 100%,rgba(232,67,79,.08),transparent 68%)}.section--tight-top{padding-top:0}.section--after-hero{padding-top:clamp(1.5rem,1rem + 2vw,2.5rem)}.section-head{max-width:62ch;margin-bottom:clamp(2rem,1.4rem + 2vw,3.5rem)}.section-head--split{max-width:none;display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem}.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:var(--step--1);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:1rem}.eyebrow--flush{margin-bottom:0}.eyebrow::before{content:"";width:26px;height:2px;background:var(--gradient-brand);border-radius:2px}.section-title{font-size:var(--step-3)}.section-lede{margin-top:1rem;color:var(--color-text-muted);font-size:var(--step-1);line-height:1.55;max-width:56ch}.skip{position:absolute;left:50%;top:0;transform:translate(-50%,-120%);z-index:200;background:var(--color-accent);color:var(--color-on-accent);font-weight:600;padding:.7rem 1.2rem;border-radius:0 0 var(--radius) var(--radius);transition:transform var(--dur) var(--ease)}.skip:focus{transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.5rem;border-radius:var(--radius-pill);font-weight:600;font-size:var(--step-0);letter-spacing:-.01em;border:1px solid transparent;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease);will-change:transform}.btn .icon{width:1.05em;height:1.05em;flex:none}.icon--sm{width:14px;height:14px}.btn--accent{background:var(--color-accent);color:var(--color-on-accent)}.btn--accent:hover{background:var(--color-accent-hi);transform:translateY(-2px)}.btn--ghost{border-color:var(--color-border-hi);color:var(--color-text)}.btn--ghost:hover{border-color:var(--color-text);background:rgba(255,255,255,.04);transform:translateY(-2px)}.btn--sm{padding:.6rem 1.1rem;font-size:var(--step--1)}.link-arrow{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;color:var(--color-accent-hi)}.link-arrow .icon{width:1em;height:1em;transition:transform var(--dur) var(--ease)}.link-arrow:hover .icon{transform:translateX(4px)}.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--color-bg) 82%,transparent);border-bottom:1px solid transparent;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),backdrop-filter var(--dur) var(--ease)}@supports (backdrop-filter:blur(1px)){.site-header{backdrop-filter:saturate(150%) blur(14px)}}.site-header.is-stuck{background:color-mix(in srgb,var(--color-bg) 94%,transparent);border-bottom-color:var(--color-border)}.header-inner{display:flex;align-items:center;gap:1.5rem;height:var(--header-h);transition:height var(--dur) var(--ease)}.site-header.is-stuck .header-inner{height:60px}.brand{display:inline-flex;align-items:center;gap:.7rem;flex:none}.brand-mark{width:auto;height:30px;color:var(--color-text);transition:height var(--dur) var(--ease)}.site-header.is-stuck .brand-mark{height:26px}.brand-text{display:flex;flex-direction:column;line-height:1.05;font-weight:700;letter-spacing:-.02em}.brand-text em{font-style:normal;font-size:.68em;font-weight:500;letter-spacing:.04em;color:var(--color-text-muted)}.nav-desktop{margin-left:auto}.nav-desktop ul{display:flex;gap:clamp(1rem,.3rem + 1.5vw,2.1rem)}.nav-link{position:relative;font-size:var(--step--1);font-weight:500;color:var(--color-text-muted);padding-block:.4rem;transition:color var(--dur) var(--ease)}.nav-link::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--gradient-brand);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}.nav-link:hover{color:var(--color-text)}.nav-link:hover::after{transform:scaleX(1)}body[data-page="home"] .nav-link[data-nav="home"],body[data-page="about"] .nav-link[data-nav="about"],body[data-page="services"] .nav-link[data-nav="services"],body[data-page="portfolio"] .nav-link[data-nav="portfolio"],body[data-page="contact"] .nav-link[data-nav="contact"]{color:var(--color-text)}body[data-page="home"] .nav-link[data-nav="home"]::after,body[data-page="about"] .nav-link[data-nav="about"]::after,body[data-page="services"] .nav-link[data-nav="services"]::after,body[data-page="portfolio"] .nav-link[data-nav="portfolio"]::after,body[data-page="contact"] .nav-link[data-nav="contact"]::after{transform:scaleX(1)}.lang-switch{display:inline-flex;align-items:center;gap:1px;flex:none;border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);overflow:hidden;font-size:var(--step--1);font-weight:600;line-height:1}.lang-switch > *{padding:.42rem .62rem;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.lang-current{background:var(--color-accent);color:var(--color-on-accent)}.lang-alt{color:var(--color-text-muted)}.lang-alt:hover{background:rgba(255,255,255,.07);color:var(--color-text)}.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text)}.nav-toggle .icon{width:20px;height:20px}.nav-toggle .icon-close,.nav-toggle[aria-expanded="true"] .icon-menu{display:none}.nav-toggle[aria-expanded="true"] .icon-close{display:block}.mobile-nav{position:fixed;inset:0;z-index:99;background:var(--color-bg);padding:calc(var(--header-h) + 2.5rem) var(--gutter) 2.5rem;display:flex;flex-direction:column;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease),visibility var(--dur) var(--ease)}.mobile-nav[hidden]{display:none}.mobile-nav.is-open{opacity:1;visibility:visible}.mobile-nav ul{display:flex;flex-direction:column;gap:.25rem}.mobile-nav li{opacity:0;transform:translateY(14px);transition:opacity .4s var(--ease),transform .4s var(--ease);transition-delay:calc(var(--i,0) * 55ms);border-bottom:1px solid var(--color-border)}.mobile-nav.is-open li{opacity:1;transform:none}.mobile-nav a.mobile-link{display:flex;align-items:baseline;gap:1rem;padding:1rem 0;font-size:var(--step-2);font-weight:700;letter-spacing:-.02em}.mobile-link span{font-size:var(--step--1);font-weight:500;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.mobile-nav-foot{margin-top:auto;padding-top:2.5rem;display:grid;gap:.9rem}@media (max-width:860px){.nav-desktop,.header-cta{display:none}.nav-toggle{display:inline-flex}.lang-switch{margin-left:auto}}.no-js .nav-toggle{display:none}.no-js .nav-desktop{display:block;margin-left:auto}.no-js .nav-desktop ul{flex-wrap:wrap;gap:.5rem 1rem;justify-content:flex-end}body.nav-open{overflow:hidden}.page-loader{position:fixed;inset:0;z-index:300;display:grid;place-content:center;justify-items:center;gap:1.5rem;background:var(--color-bg);animation:loaderOut var(--loader-fade) var(--ease) var(--loader-hold) forwards}@keyframes loaderOut{to{opacity:0;visibility:hidden}}.loader-mark{width:clamp(54px,8vw,78px);height:auto;color:var(--color-text);animation:loaderMark 620ms var(--ease) both}@keyframes loaderMark{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}.loader-bar{display:block;width:min(150px,38vw);height:2px;border-radius:2px;background:var(--color-border-hi);overflow:hidden}.loader-bar::after{content:"";display:block;height:100%;width:100%;background:var(--gradient-brand);transform-origin:left;animation:loaderBar var(--loader-hold) var(--ease) forwards}@keyframes loaderBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-copy > *:nth-child(-n+4),.page-hero > .wrap > *:nth-child(-n+3){animation:enterUp var(--enter-dur) var(--ease) both;animation-delay:calc(var(--loader-hold) + var(--enter-i,0) * var(--enter-step))}.hero-copy > *:nth-child(2),.page-hero > .wrap > *:nth-child(2){--enter-i:1}.hero-copy > *:nth-child(3),.page-hero > .wrap > *:nth-child(3){--enter-i:2}.hero-copy > *:nth-child(4){--enter-i:3}@keyframes enterUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.skip-loader .page-loader{display:none}.skip-loader .hero-copy > *,.skip-loader .page-hero > .wrap > *{animation:none}.hero{position:relative;display:grid;align-content:center;min-height:74vh;min-height:min(74svh,780px);padding-block:clamp(3rem,1.5rem + 5vw,5.5rem) clamp(2.5rem,1.5rem + 3vw,4.5rem);overflow:hidden}.hero::before{content:"";position:absolute;top:-28%;right:-8%;width:min(1000px,90vw);aspect-ratio:1 / 1;background:radial-gradient(44% 44% at 58% 46%,rgba(79,92,232,.26),transparent 70%),radial-gradient(34% 34% at 30% 68%,rgba(232,67,79,.16),transparent 70%);pointer-events:none;z-index:-1}.hero-copy{max-width:100%}.hero h1{font-size:var(--step-4);max-width:17ch}.hero h1 .grad{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lede{margin-top:1.4rem;font-size:var(--step-1);color:var(--color-text-muted);line-height:1.55;max-width:46ch}.hero-actions{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.8rem}.marquee{--marquee-dur:42s;position:relative;padding-block:1.6rem;border-block:1px solid var(--color-border);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:flex;width:max-content;animation:marquee var(--marquee-dur) linear infinite}.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}.marquee-group{display:flex;align-items:center;gap:clamp(2rem,1rem + 3vw,4rem);padding-right:clamp(2rem,1rem + 3vw,4rem)}.marquee-group li{font-size:var(--step-1);font-weight:600;letter-spacing:-.01em;color:var(--color-text-muted);white-space:nowrap;transition:color var(--dur) var(--ease)}.marquee-group li:hover{color:var(--color-text)}@keyframes marquee{to{transform:translateX(-50%)}}.grid{display:grid;gap:clamp(1rem,.6rem + 1.2vw,1.6rem)}.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}.grid--work{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}.card{position:relative;background-color:var(--color-surface);background-image:var(--sheen);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(1.5rem,1.2rem + 1vw,2.2rem);display:flex;flex-direction:column;gap:.9rem;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.card:hover{border-color:var(--color-border-hi);background:var(--color-surface-2);transform:translateY(-3px)}.card h3{font-size:var(--step-2)}.card p{color:var(--color-text-muted)}.card-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:var(--radius);background:rgba(107,124,240,.12);color:var(--color-accent-hi);margin-bottom:.3rem}.card-icon .icon{width:22px;height:22px}.card .link-arrow{margin-top:auto;padding-top:.4rem}.work-item{position:relative}.work-media{position:relative;display:block;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg-alt)}.work-media img{width:100%;aspect-ratio:4 / 3;object-fit:cover;transition:transform .5s var(--ease),filter .5s var(--ease)}.work-media:hover img{transform:scale(1.04);filter:saturate(1.15)}.work-overlay{position:absolute;inset:auto 0 0 0;z-index:2;padding:1.2rem;display:flex;flex-direction:column;gap:.5rem;background:linear-gradient(transparent,rgba(10,12,20,.92) 55%);opacity:1;transform:translateY(0);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}@media (hover:hover) and (min-width:861px){.work-overlay{opacity:0;transform:translateY(10px)}.work-media:hover .work-overlay,.work-media:focus-visible .work-overlay{opacity:1;transform:none}}.work-overlay h3{font-size:var(--step-1)}.work-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-size:var(--step--1);color:var(--color-text-muted);border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);padding:.12rem .6rem}.filter-pills{display:flex;flex-wrap:wrap;gap:.5rem}.filter-pills[hidden]{display:none}.pill{border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);padding:.5rem 1.1rem;font-size:var(--step--1);font-weight:600;color:var(--color-text-muted);transition:all var(--dur) var(--ease)}.pill:hover{color:var(--color-text);border-color:var(--color-text)}.pill[aria-pressed="true"]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.stats-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,1.4rem + 4vw,5.5rem);align-items:center}@media (max-width:860px){.stats-split{grid-template-columns:1fr;gap:2.5rem}}.stats-copy{display:grid;gap:1.15rem;justify-items:start}.stats-copy h2{font-size:clamp(1.9rem,1.4rem + 2.4vw,3.1rem);line-height:1.02;letter-spacing:-.03em;max-width:16ch}.stats-copy p{color:var(--color-text-muted);max-width:46ch}.stat-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.7rem,.5rem + .5vw,1rem)}@media (max-width:420px){.stat-cards{grid-template-columns:1fr}}.stat-card{background-color:var(--color-surface);background-image:var(--sheen);border:1px solid var(--color-border);border-radius:13px;padding:clamp(1.05rem,.9rem + .6vw,1.4rem) clamp(1.1rem,.9rem + .8vw,1.5rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.045);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.stat-card:hover{transform:translateY(-2px);border-color:var(--color-border-hi);background:var(--color-surface-2)}.stat-k{font-family:var(--font-label);font-size:.74rem;letter-spacing:.05em;color:var(--color-text-muted)}.stat-v{font-family:var(--font-figure);font-weight:700;font-stretch:110%;line-height:1;letter-spacing:-.03em;color:var(--color-text);font-variant-numeric:tabular-nums lining-nums}.stat-v sup{font-size:.38em;vertical-align:super;color:var(--color-accent-hi);margin-left:.08em}.stat-card--sm{display:grid;gap:.85rem;align-content:start}.stat-card--sm .stat-v{font-size:clamp(1.9rem,1.5rem + 1.5vw,2.6rem)}.stat-card--wide{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.25rem}@media (max-width:420px){.stat-card--wide{grid-template-columns:1fr;gap:.85rem}}.stat-card--wide .stat-v{font-size:clamp(2.6rem,2rem + 2.4vw,3.7rem)}@media (min-width:421px){.stat-card--wide .stat-v{text-align:right}}.stat-sub{color:var(--color-text-muted);font-size:var(--step--1);margin-top:.35rem;max-width:30ch}.insight-nav{margin-bottom:clamp(2rem,1.5rem + 2vw,3rem)}.insight-cat + .insight-cat{margin-top:clamp(3rem,2.4rem + 3vw,5rem)}.insight-cat-head{display:grid;gap:.6rem;margin-bottom:clamp(1.4rem,1.1rem + 1vw,2rem);padding-bottom:1.1rem;border-bottom:1px solid var(--color-border);scroll-margin-top:calc(var(--header-h) + 1rem)}.insight-cat{scroll-margin-top:calc(var(--header-h) + 1rem)}.insight-cat-head h2{font-size:var(--step-2)}.insight-cat-head p{color:var(--color-text-muted);max-width:58ch}.insight-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:clamp(1.4rem,1rem + 1.6vw,2.4rem)}.insight-card--lead{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.5rem,1rem + 2vw,3rem);align-items:center}@media (max-width:780px){.insight-card--lead{grid-template-columns:1fr}}.insight-grid--strip .insight-card--lead{grid-column:auto;grid-template-columns:1fr}.insight-card{display:grid;gap:1.1rem;align-content:start}.insight-media{display:block;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);background-color:var(--color-surface);background-image:var(--sheen)}.insight-media img{width:100%;aspect-ratio:16 / 9;object-fit:cover;transition:transform .5s var(--ease)}.insight-media:hover img{transform:scale(1.03)}.insight-text{display:grid;gap:.6rem}.insight-text .eyebrow{margin:0;gap:.7rem}.insight-text .eyebrow time{font-size:.78em;color:var(--color-text-muted);letter-spacing:.06em}.insight-text :is(h2,h3){font-size:var(--step-2)}.insight-text :is(h2,h3) a{transition:color var(--dur) var(--ease)}.insight-text :is(h2,h3) a:hover{color:var(--color-accent-hi)}.insight-text p{color:var(--color-text-muted)}.insight-card--lead .insight-text :is(h2,h3){font-size:var(--step-3)}.article-hero{width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.article-body{max-width:84ch;margin-inline:auto;padding-block:clamp(2.5rem,2rem + 2vw,4rem);display:grid;gap:1.4rem}.article-body p{font-size:var(--step-1);line-height:1.7;color:var(--color-text-muted)}[data-page="portfolio"] .article-body p{font-size:clamp(1rem,.96rem + .2vw,1.1rem)}.article-body h2{font-size:var(--step-2);color:var(--color-text);margin-top:1.2rem;max-width:30ch}.article-body a{color:var(--color-accent-hi);text-decoration:underline;text-underline-offset:.2em}.article-body ul{display:grid;gap:.7rem;padding-left:1.1rem;list-style:disc;color:var(--color-text-muted)}.article-body blockquote{border-left:2px solid var(--color-accent);padding-left:1.2rem;font-size:var(--step-1);color:var(--color-text)}.article-foot{max-width:84ch;margin-inline:auto;padding-block:0 clamp(2.5rem,2rem + 2vw,4rem);border-top:1px solid var(--color-border);padding-top:1.6rem}.article{display:block}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--step--1);color:var(--color-text-muted);margin-bottom:1.4rem}.crumbs a{transition:color var(--dur) var(--ease)}.crumbs a:hover{color:var(--color-text)}.article-head{padding-block:clamp(3rem,2rem + 5vw,5.5rem) clamp(1.5rem,1rem + 2vw,2.5rem)}.article-head h1{font-size:var(--step-3);max-width:20ch}.article-head .eyebrow{gap:.7rem}.article-lede{margin-top:1.1rem;font-size:var(--step-1);line-height:1.55;color:var(--color-text-muted);max-width:66ch}.case-meta{margin-top:1.6rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.draft-note{display:inline-block;margin-bottom:1.2rem;border:1px dashed var(--color-border-hi);border-radius:var(--radius-pill);padding:.35rem .9rem;font-size:var(--step--1);color:var(--color-text-muted)}.work-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-size:var(--step--1);color:var(--color-text-muted);border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);padding:.12rem .6rem}.case-poster{display:block;width:100%;max-width:680px;height:auto;margin-inline:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:0 24px 60px rgba(0,0,0,.4)}.case-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(1rem,.6rem + 1.2vw,1.6rem);padding-bottom:clamp(2.5rem,2rem + 2vw,4rem)}.case-gallery figure{margin:0;display:grid;gap:.7rem}.case-gallery img{width:100%;aspect-ratio:4 / 3;object-fit:contain;background:var(--color-bg-alt);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.case-gallery figcaption{font-size:var(--step--1);color:var(--color-text-muted)}.map-facade{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.map-facade img{width:100%;aspect-ratio:12 / 5;object-fit:cover}.map-card{position:absolute;left:clamp(1rem,.5rem + 2vw,2rem);bottom:clamp(1rem,.5rem + 2vw,2rem);right:clamp(1rem,.5rem + 2vw,2rem);max-width:380px;background:color-mix(in srgb,var(--color-surface) 92%,transparent);backdrop-filter:blur(10px);border:1px solid var(--color-border-hi);border-radius:var(--radius);padding:1.2rem 1.4rem;display:grid;gap:.8rem}.map-card address{font-style:normal;color:var(--color-text-muted)}@media (max-width:640px){.map-facade img{aspect-ratio:4 / 3}.map-card{position:static;max-width:none;border:0;border-top:1px solid var(--color-border-hi);border-radius:0;backdrop-filter:none;background:var(--color-surface);padding:1.1rem 1.2rem}}.cta-band{position:relative;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:radial-gradient(70% 140% at 12% 0%,rgba(79,92,232,.22),transparent 62%),radial-gradient(60% 130% at 92% 100%,rgba(232,67,79,.16),transparent 62%),var(--color-bg-alt);padding:clamp(2.2rem,1.6rem + 3vw,4rem);text-align:center;display:grid;justify-items:center;gap:1.2rem}.cta-band h2{font-size:var(--step-3);max-width:20ch}.cta-band p{color:var(--color-text-muted);max-width:52ch}.site-footer{position:relative;background-color:color-mix(in srgb,var(--color-bg-alt) 86%,transparent);background-image:radial-gradient(62% 120% at 92% 108%,rgba(79,92,232,.13),transparent 68%),radial-gradient(48% 100% at 4% 0%,rgba(232,67,79,.07),transparent 70%);border-top:1px solid var(--color-border);padding-block:clamp(3rem,2rem + 4vw,5rem) 2rem}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:clamp(2rem,1.4rem + 2vw,3.5rem)}.footer-col h2{font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:1.1rem;font-weight:600}.footer-col li + li{margin-top:.6rem}.footer-col a{color:var(--color-text-muted);transition:color var(--dur) var(--ease)}.footer-col a:hover{color:var(--color-text)}.footer-brand p{color:var(--color-text-muted);margin-top:1rem;max-width:34ch}.footer-contact address{font-style:normal;color:var(--color-text-muted)}.contact-row{display:flex;align-items:center;gap:.5rem;margin-top:.7rem;flex-wrap:nowrap}.contact-row a{white-space:nowrap}.contact-row .icon{width:16px;height:16px;color:var(--color-accent-hi);flex:none}.mini-form{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.mini-form input{flex:1 1 190px;min-width:0;background:var(--color-bg);border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);padding:.75rem 1.1rem;transition:border-color var(--dur) var(--ease)}.mini-form input::placeholder{color:var(--color-text-muted)}.mini-form input:focus{border-color:var(--color-accent);outline:none}.footer-bottom{margin-top:clamp(2.5rem,2rem + 2vw,4rem);padding-top:1.6rem;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;color:var(--color-text-muted);font-size:var(--step--1)}.wa-fab{position:fixed;right:clamp(1rem,.5rem + 1.5vw,1.75rem);bottom:clamp(1rem,.5rem + 1.5vw,1.75rem);z-index:90;display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.15rem;border-radius:var(--radius-pill);background:#25d366;color:#06210f;font-weight:700;font-size:var(--step--1);box-shadow:0 10px 30px rgba(0,0,0,.45);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.wa-fab .icon{width:20px;height:20px}.wa-fab:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(0,0,0,.55)}.wa-fab-text{display:none}@media (min-width:600px){.wa-fab-text{display:inline}}.page-hero{padding-block:clamp(3rem,2rem + 5vw,5.5rem) clamp(2rem,1.5rem + 2vw,3rem)}.page-hero h1{font-size:var(--step-3)}.page-hero p{margin-top:1rem;color:var(--color-text-muted);font-size:var(--step-1);max-width:56ch}.phase-note{margin-top:2.5rem;border:1px dashed var(--color-border-hi);border-radius:var(--radius-lg);padding:clamp(1.5rem,1.2rem + 1vw,2.2rem);color:var(--color-text-muted);display:grid;gap:.8rem;max-width:62ch}.phase-note strong{color:var(--color-text)}html:not(.no-js) [data-reveal]{opacity:0;transform:translateY(18px)}html:not(.no-js) [data-reveal].is-revealed{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--reveal-i,0) * 70ms)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}.filter-bar[hidden]{display:none}.filter-search{position:relative;flex:0 1 260px}.filter-search input{width:100%;background:var(--color-surface);border:1px solid var(--color-border-hi);border-radius:var(--radius-pill);padding:.6rem 1.1rem;font-size:var(--step--1);transition:border-color var(--dur) var(--ease)}.filter-search input::placeholder{color:var(--color-text-muted)}.filter-search input:focus{border-color:var(--color-accent);outline:none}.filter-search input[hidden]{display:none}.is-filtered-out{opacity:0;transform:scale(.97);pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease)}[data-filter-grid] > *{transition:opacity .2s var(--ease),transform .2s var(--ease)}[data-filter-grid] > [hidden]{display:none}.filter-empty{border:1px dashed var(--color-border-hi);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;text-align:center;color:var(--color-text-muted)}.filter-empty[hidden]{display:none}.card-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;text-align:left;font:inherit}.card-toggle h3{font-size:var(--step-2)}.card-chevron{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--color-border-hi);color:var(--color-text-muted);transition:transform var(--dur) var(--ease),color var(--dur) var(--ease)}.card-chevron .icon{width:14px;height:14px;transform:rotate(90deg)}.card.is-collapsible .card-body{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows var(--dur) var(--ease),opacity var(--dur) var(--ease),visibility var(--dur) var(--ease)}.card.is-collapsible .card-body > div{overflow:hidden}.card.is-collapsible.is-open .card-body{grid-template-rows:1fr;opacity:1;visibility:visible}.card.is-collapsible.is-open .card-chevron{transform:rotate(180deg);color:var(--color-text)}@media (hover:hover) and (min-width:861px){.card.is-collapsible:hover .card-body{grid-template-rows:1fr;opacity:1;visibility:visible}.card.is-collapsible:hover .card-chevron{transform:rotate(180deg);color:var(--color-text)}}.tablist{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.tablist[hidden]{display:none}.tablist .pill[aria-selected="true"]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}[data-tab-panel][hidden]{display:none}[data-tab-panel]:focus-visible{outline-offset:8px}.tablist.is-ready ~ [data-tab-panel] .panel-heading{display:none}.marquee.is-enhanced{overflow-x:auto;scrollbar-width:none;cursor:grab}.marquee.is-enhanced::-webkit-scrollbar{display:none}.marquee.is-enhanced .marquee-track{animation:none}.marquee.is-enhanced.is-dragging{cursor:grabbing;user-select:none}.work-media{background:var(--color-surface)}.work-media::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.05) 40%,transparent 60%);background-size:220% 100%;animation:shimmer 1.6s linear 6;pointer-events:none}.work-media img{position:relative;z-index:1}@keyframes shimmer{to{background-position:-220% 0}}.service-block{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(1.5rem,1rem + 2vw,3rem);align-items:start;padding-block:clamp(2.5rem,2rem + 2vw,4rem);border-top:1px solid var(--color-border)}.service-block:first-of-type{border-top:0}.service-block h2{font-size:var(--step-2)}.service-block p{color:var(--color-text-muted);margin-top:.9rem}.service-list{margin-top:1.4rem;display:grid;gap:.7rem}.service-list li{display:flex;gap:.7rem;align-items:flex-start;color:var(--color-text-muted)}.service-list .icon{width:16px;height:16px;color:var(--color-accent-hi);flex:none;margin-top:.35rem}.contact-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2rem,1.5rem + 3vw,4.5rem);align-items:start}@media (max-width:900px){.contact-layout{grid-template-columns:1fr}}.form-card{background-color:var(--color-surface);background-image:var(--sheen);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(1.5rem,1.2rem + 1.5vw,2.5rem)}.field-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:1.1rem;align-items:start}@media (max-width:620px){.field-grid{grid-template-columns:1fr}}.field-grid .field--full{grid-column:1 / -1}.field{display:grid;gap:.45rem;align-content:start}@supports (grid-template-rows:subgrid){.field-grid > .field{grid-row:span 3;grid-template-rows:subgrid;row-gap:.45rem}.field-grid > .field--full{grid-row:span 3}}@supports not (grid-template-rows:subgrid){.field-grid > .field > label{min-height:2.6em;display:flex;align-items:flex-end}}.field label{font-size:var(--step--1);font-weight:600}.field .optional{color:var(--color-text-muted);font-weight:500}.field input,.field select,.field textarea{width:100%;background:var(--color-bg);border:1px solid var(--color-border-hi);border-radius:var(--radius);padding:.8rem 1rem;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.field textarea{resize:vertical;min-height:8.5rem;line-height:1.55}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-muted)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(107,124,240,.22)}.field [aria-invalid="true"]{border-color:var(--color-accent-warm)}.field [aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(232,67,79,.22)}.field-error{font-size:var(--step--1);color:#f79aa1;display:flex;gap:.4rem}.field-error[hidden]{display:none}.field-hint{font-size:var(--step--1);color:var(--color-text-muted)}.field-hint.field--full{margin-top:-.35rem}.field-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:1rem;min-height:1.4em}.field-meta .field-error[hidden]{display:none}.field-meta .field-hint{grid-column:2;text-align:right}.form-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem}.form-status{margin-top:1.2rem;border-radius:var(--radius);padding:.85rem 1.1rem;font-size:var(--step--1);border:1px solid var(--color-border-hi)}.form-status[hidden]{display:none}.form-status--static{display:block}.form-status.is-error{border-color:rgba(232,67,79,.45);background:rgba(232,67,79,.1);color:#f79aa1}.form-status a{color:inherit;text-decoration:underline}.form-success{border:1px solid var(--color-border-hi);border-radius:var(--radius-lg);padding:clamp(1.8rem,1.5rem + 1.5vw,2.8rem);background:radial-gradient(80% 140% at 10% 0%,rgba(79,92,232,.2),transparent 62%),var(--color-surface);display:grid;gap:.9rem;justify-items:start}.form-success[hidden]{display:none}.form-success h2{font-size:var(--step-2)}.form-success p{color:var(--color-text-muted)}.hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;pointer-events:none}.prefill-note{margin-bottom:1.4rem;border:1px solid rgba(107,124,240,.4);background:rgba(107,124,240,.1);border-radius:var(--radius);padding:.8rem 1.1rem;font-size:var(--step--1);color:var(--color-text-muted)}.prefill-note[hidden]{display:none}.contact-aside{display:grid;gap:1.6rem}.contact-block{border:1px solid var(--color-border);background-color:var(--color-bg-alt);background-image:var(--sheen);border-radius:var(--radius-lg);padding:clamp(1.3rem,1.1rem + 1vw,1.9rem)}.contact-block h2{font-size:var(--step-1);margin-bottom:1.1rem;padding-bottom:.8rem;border-bottom:1px solid var(--color-border)}.contact-facts{display:grid;gap:.95rem}.contact-facts > div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.3rem 1rem;align-items:baseline}@media (max-width:420px){.contact-facts > div{grid-template-columns:1fr}}.contact-facts dt{font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}.contact-facts dd{margin:0}.contact-facts a{transition:color var(--dur) var(--ease)}.contact-facts a:hover{color:var(--color-accent-hi)}.contact-facts address{font-style:normal;color:var(--color-text-muted)}.contact-person{display:grid;gap:.6rem;padding-block:.9rem;border-top:1px solid var(--color-border)}.contact-person:first-of-type{border-top:0;padding-top:0}.contact-person .name{font-weight:600}.contact-person .num{color:var(--color-text-muted);font-size:var(--step--1)}.contact-actions{display:flex;gap:.5rem;flex-wrap:wrap}.map-frame{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .4s var(--ease)}.map-facade.is-loaded .map-frame{opacity:1}.map-facade.is-loaded img{visibility:hidden}.map-facade.is-loaded .map-card{display:none}[data-map-load][hidden]{display:none}.estimate{border:1px solid var(--color-border-hi);border-radius:var(--radius-lg);background:radial-gradient(70% 140% at 8% 0%,rgba(79,92,232,.16),transparent 60%),var(--color-surface);padding:clamp(1.6rem,1.3rem + 1.6vw,2.6rem)}.estimate[hidden]{display:none}.estimate-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}.estimate-progress{font-size:var(--step--1);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.estimate-q{font-size:var(--step-2);margin-bottom:1.2rem}[data-step][hidden]{display:none}.estimate-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.7rem}.estimate-option{text-align:left;border:1px solid var(--color-border-hi);border-radius:var(--radius);background:var(--color-bg);padding:1rem 1.1rem;display:grid;gap:.3rem;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.estimate-option:hover{border-color:var(--color-accent);background:var(--color-surface-2);transform:translateY(-2px)}.estimate-option .opt-title{font-weight:600}.estimate-option .opt-sub{font-size:var(--step--1);color:var(--color-text-muted)}.estimate-nav{margin-top:1.4rem;display:flex;gap:1rem;align-items:center}.estimate-link{font-size:var(--step--1);font-weight:600;color:var(--color-text-muted);transition:color var(--dur) var(--ease)}.estimate-link:hover{color:var(--color-text)}.estimate-link[hidden]{display:none}.estimate-result{display:grid;gap:1rem;justify-items:start}.estimate-result[hidden]{display:none}.estimate-result:focus{outline:none}.estimate-result h3{font-size:var(--step-2)}.estimate-result p{color:var(--color-text-muted);max-width:56ch}.estimate-summary{display:flex;flex-wrap:wrap;gap:.4rem}.estimate-note{font-size:var(--step--1);color:var(--color-text-muted)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}.marquee{overflow-x:auto}.marquee-track{animation:none}.work-overlay{opacity:1 !important;transform:none !important}.mobile-nav li{opacity:1;transform:none}.page-loader{display:none !important}.hero-copy > *,.page-hero > .wrap > *{animation:none !important}html:not(.no-js) [data-reveal]{opacity:1;transform:none}.work-media::before{animation:none;opacity:0}.is-filtered-out{transition:none}}