@keyframes introDraw{0%{stroke-dashoffset:var(--from,1)}to{stroke-dashoffset:0}}@keyframes introReveal{0%{opacity:0}to{opacity:1}}@keyframes introFill{0%{fill-opacity:0}to{fill-opacity:1}}@keyframes introGlow{0%{filter:drop-shadow(0 0 0 rgba(var(--glow-rgb,255, 255, 255), 0)) drop-shadow(0 0 0 rgba(var(--glow-rgb,255, 255, 255), 0))}55%{filter:drop-shadow(0 0 var(--glow-core) var(--glow-strong)) drop-shadow(0 0 var(--glow-halo) var(--glow-soft))}to{filter:drop-shadow(0 0 var(--glow-core-rest) var(--glow-rest)) drop-shadow(0 0 var(--glow-halo-rest) var(--glow-rest-soft))}}@keyframes introFadeOut{0%{opacity:1}to{opacity:0}}@keyframes introPanelIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes introCaptionIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.intro-stage{background:linear-gradient(180deg, var(--stage-top,#0b0b0f), var(--stage-bottom,#070708));color:#e7e7ee;place-items:center;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,sans-serif;display:grid;position:fixed;inset:0;overflow:hidden}.intro-deco{width:100%;height:100%;-webkit-mask:radial-gradient(118% 118% at 50% 47%, #000 calc((1 - var(--deco-vignette,0)) * 100%), transparent 100%);-webkit-mask:radial-gradient(118% 118% at 50% 47%, #000 calc((1 - var(--deco-vignette,0)) * 100%), transparent 100%);-webkit-mask:radial-gradient(118% 118% at 50% 47%, #000 calc((1 - var(--deco-vignette,0)) * 100%), transparent 100%);mask:radial-gradient(118% 118% at 50% 47%, #000 calc((1 - var(--deco-vignette,0)) * 100%), transparent 100%);position:absolute;inset:0}.intro-deco__stroke{fill:none;stroke:var(--intro-line,#fff);stroke-width:var(--deco-stroke,1.1);vector-effect:non-scaling-stroke;stroke-linecap:var(--deco-cap,round);stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:var(--from,1);animation:introDraw var(--dur,1s) var(--deco-ease,ease) var(--delay,0s) both}.intro-clearing{z-index:1;width:var(--clearing-size,300px);height:var(--clearing-size,300px);pointer-events:none;opacity:0;background:radial-gradient(closest-side, rgba(var(--logo-knockout-rgb,9, 9, 12), .92) 0%, rgba(var(--logo-knockout-rgb,9, 9, 12), .78) 40%, rgba(var(--logo-knockout-rgb,9, 9, 12), .4) 64%, rgba(var(--logo-knockout-rgb,9, 9, 12), 0) 84%);animation:introReveal var(--clearing-dur,.72s) var(--clearing-ease,ease) var(--clearing-delay,0s) both;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-logo{z-index:2;animation:introGlow var(--logo-glow-dur,1s) var(--logo-glow-ease,ease) var(--logo-glow-delay,0s) both;position:relative;overflow:visible}.intro-logo.is-fading{animation:introGlow var(--logo-glow-dur,1s) var(--logo-glow-ease,ease) var(--logo-glow-delay,0s) both, introFadeOut var(--fade-dur,.5s) var(--logo-fill-ease,ease) var(--fade-delay,0s) both}.intro-logo__stroke{fill:none;stroke:var(--intro-line,#fff);stroke-width:var(--logo-stroke,.6);stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;animation:introDraw var(--dur,.8s) var(--logo-draw-ease,ease) var(--delay,0s) both, introReveal 1ms linear var(--delay,0s) both}.intro-logo__backing{fill:var(--logo-knockout,#09090c);opacity:0;animation:introReveal var(--knockout-dur,.22s) var(--knockout-ease,ease) var(--knockout-delay,0s) both}.intro-logo__fill{fill:var(--intro-fill,#fff);fill-opacity:0;animation:introFill var(--fill-dur,.6s) var(--logo-fill-ease,ease) var(--fill-delay,0s) both}.intro-caption{z-index:10;pointer-events:none;flex-direction:column;gap:4px;max-width:360px;animation:.5s cubic-bezier(.22,1,.36,1) both introCaptionIn;display:flex;position:fixed;top:clamp(16px,4vh,36px);left:clamp(16px,4vw,40px)}.intro-caption__name{font-size:var(--text-2xs);letter-spacing:.02em;color:#f2f2f6;font-weight:600}.intro-caption__blurb{font-size:var(--text-3xs);color:#8a8a96;line-height:1.45}.intro-panel{z-index:10;-webkit-backdrop-filter:blur(14px)saturate(1.2);background:#14141a9e;border:1px solid #ffffff14;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;max-width:min(980px,94vw);padding:10px 12px;animation:.5s cubic-bezier(.22,1,.36,1) both introPanelIn;display:flex;position:fixed;bottom:clamp(16px,4vh,40px);left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000073}.intro-panel__group{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.intro-panel__divider{background:#ffffff1a;align-self:stretch;width:1px;margin:2px}.intro-btn{appearance:none;cursor:pointer;color:#d7d7e0;font:inherit;font-size:var(--text-3xs);letter-spacing:var(--tracking-3xs);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:9px;padding:7px 12px;font-weight:500;transition:background .18s,color .18s,border-color .18s}.intro-btn:hover{color:#fff;background:#ffffff17}.intro-btn.is-active{color:#0b0b0f;background:#fff;border-color:#fff}.intro-btn--primary{align-items:center;gap:7px;display:inline-flex}.intro-btn--primary svg{width:13px;height:13px}.intro-panel__label{font-size:var(--text-4xs);letter-spacing:.14em;text-transform:uppercase;color:#8a8a96;white-space:nowrap}.intro-range{accent-color:#fff;width:96px}.intro-panel__value{font-variant-numeric:tabular-nums;font-size:var(--text-3xs);color:#c9c9d2;text-align:right;min-width:30px}@media (prefers-reduced-motion:reduce){.intro-deco__stroke,.intro-logo__stroke{stroke-dashoffset:0;opacity:1;animation:none}.intro-logo__backing,.intro-clearing{opacity:1;animation:none}.intro-logo__fill{fill-opacity:1;animation:none}.intro-logo,.intro-panel{animation:none}}:root{--gray-0:#fff;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-350:#b6bcc5;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--black-700:#33333c;--black-750:#2a2a33;--black-800:#1a1a1f;--black-850:#17171c;--black-870:#15151a;--black-900:#141418;--black-925:#111114;--black-950:#0b0b0f;--black-border:#555;--alpha-2:.02;--alpha-4:.04;--alpha-6:.06;--alpha-8:.08;--alpha-12:.12;--alpha-16:.16;--alpha-24:.24;--alpha-32:.32;--alpha-48:.48;--alpha-64:.64;--alpha-80:.8;--alpha-92:.92}[data-theme=rainbow]{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f7f7f7;--color-bg-muted:#ececec;--color-panel:#fff;--surface-page-top:#fff;--surface-page-bottom:#f7f7f7;--glass-rgb:253 253 253;--color-text:#222;--color-text-soft:#25242b;--color-ink:#10111b;--color-muted:#59585d;--color-link:#25242b;--color-nav:#7a7a7a;--color-nav-active:#25242b;--color-logo:#25242b;--color-chevron:#b0b0b0;--color-line:#e7e1da;--color-line-strong:#d8d2cb;--color-border-strong:var(--gray-400);--deco-bar-line:color-mix(in srgb, var(--color-line-strong) 78%, #fff);--deco-bar-bg:rgb(var(--neutral-dark-rgb) / .008);--neutral-light-rgb:255 255 255;--neutral-dark-rgb:0 0 0;--hover-spot-core:#0000000d;--hover-spot-edge:#00000006;--shadow-rgb:210 172 157;--shadow-warm-rgb:180 148 130;--shadow-soft:0 16px 32px rgb(var(--shadow-rgb) / .25);--shadow-soft-lg:0 24px 60px rgb(var(--shadow-rgb) / .32);--cta-dark-top:#2b2b2b;--cta-dark-bottom:#2b2b2b;--cta-dark-text:#fff;--cta-shadow:none;--cta-shadow-hover:none;--footer-line:rgb(var(--neutral-dark-rgb) / var(--alpha-8));--flood-gradient:linear-gradient(var(--color-ink), var(--color-ink));--rv-tint-s:85%;--rv-tint-l:46%;--rv-line-draw:#00000038}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:var(--black-950);--color-bg-muted:var(--black-870);--color-panel:var(--black-925);--surface-page-top:#0b0b0f;--surface-page-bottom:#111114;--glass-rgb:17 17 20;--header-glass-rgb:20 20 26;--color-text:var(--gray-300);--color-text-soft:var(--gray-200);--color-ink:var(--gray-50);--color-muted:var(--gray-400);--color-link:var(--gray-0);--color-nav:var(--gray-400);--color-nav-active:var(--gray-50);--color-logo:var(--gray-50);--color-chevron:var(--gray-400);--color-line:var(--black-750);--color-line-strong:var(--black-750);--color-border-strong:var(--black-border);--deco-bar-line:color-mix(in srgb, var(--color-line-strong) 92%, #fff);--deco-bar-bg:transparent;--neutral-light-rgb:255 255 255;--neutral-dark-rgb:130 134 140;--hover-spot-core:#ffffff1a;--hover-spot-edge:#ffffff0d;--shadow-rgb:0 0 0;--shadow-warm-rgb:0 0 0;--shadow-soft:0 16px 32px #00000073;--shadow-soft-lg:0 24px 60px #0000008c;--cta-dark-top:var(--black-800);--cta-dark-bottom:var(--black-900);--cta-dark-text:var(--gray-0);--cta-shadow:none;--cta-shadow-hover:none;--footer-line:var(--color-line-strong);--flood-gradient:linear-gradient(var(--color-ink), var(--color-ink));--rv-tint-s:90%;--rv-tint-l:66%;--rv-line-draw:#ffffff52}@font-face{font-family:Hanken Grotesk;src:url(/assets/fonts/Hanken%20Grotesk/HankenGrotesk-VariableFont_wght.woff2)format("woff2"),url(/assets/fonts/Hanken%20Grotesk/HankenGrotesk-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Hanken Grotesk;src:url(/assets/fonts/Hanken%20Grotesk/HankenGrotesk-Italic-VariableFont_wght.woff2)format("woff2"),url(/assets/fonts/Hanken%20Grotesk/HankenGrotesk-Italic-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Geist;src:url(/assets/fonts/Geist/Geist-VariableFont_wght.woff2)format("woff2"),url(/assets/fonts/Geist/Geist-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/assets/fonts/Geist/Geist-Italic-VariableFont_wght.woff2)format("woff2"),url(/assets/fonts/Geist/Geist-Italic-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}:root{--font-display:"Hanken Grotesk", "HK Grotesk", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-text:"Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-4xs:clamp(.656rem, .643rem + .055vw, .688rem);--text-3xs:clamp(.719rem, .706rem + .055vw, .75rem);--text-2xs:clamp(.75rem, .724rem + .11vw, .813rem);--text-xs:clamp(.813rem, .787rem + .11vw, .875rem);--text-sm:clamp(.875rem, .849rem + .11vw, .938rem);--text-md:clamp(.938rem, .912rem + .11vw, 1rem);--text-lg:clamp(1rem, .948rem + .22vw, 1.125rem);--text-xl:clamp(1.094rem, 1.029rem + .28vw, 1.25rem);--text-2xl:clamp(1.188rem, 1.11rem + .33vw, 1.375rem);--text-3xl:clamp(1.281rem, 1.191rem + .39vw, 1.5rem);--text-4xl:clamp(1.625rem, 1.52rem + .44vw, 1.875rem);--text-5xl:clamp(1.875rem, 1.72rem + .66vw, 2.25rem);--text-6xl:clamp(2.25rem, 2.06rem + .76vw, 2.75rem);--text-7xl:clamp(2.25rem, 1.784rem + 1.99vw, 3.375rem);--text-8xl:clamp(2.75rem, 2.23rem + 2.21vw, 4rem);--tracking-4xs:.015em;--tracking-3xs:.01em;--tracking-2xs:.01em;--tracking-xs:.005em;--tracking-sm:0em;--tracking-md:0em;--tracking-lg:0em;--tracking-xl:-.01em;--tracking-2xl:-.01em;--tracking-3xl:-.015em;--tracking-4xl:-.02em;--tracking-5xl:-.02em;--tracking-6xl:-.025em;--tracking-7xl:-.03em;--tracking-8xl:-.03em;--leading-4xs:1.5;--leading-3xs:1.5;--leading-2xs:1.5;--leading-xs:1.5;--leading-sm:1.55;--leading-md:1.6;--leading-lg:1.6;--leading-xl:1.4;--leading-2xl:1.4;--leading-3xl:1.3;--leading-4xl:1.25;--leading-5xl:1.2;--leading-6xl:1.15;--leading-7xl:1.1;--leading-8xl:1.05;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--space-10:64px;--space-12:96px;--space-page:clamp(1.25rem, 5vw, 64px);--max-width:1600px;--content-max:1136px;--deco-air:clamp(4.5rem, 9vw, 8rem);--deco-air-long:clamp(9rem, 27vw, 24rem);--home-frame-pad:1.25rem;--home-frame-max:var(--nav-frame);--nav-frame:1400px;--nav-frame-gutter:max(1.25rem, calc((100% - var(--nav-frame)) / 2));--nav-frame-inset:clamp(1rem, 2vw, 1.5rem);--radius-xs:4px;--radius-sm:6px;--radius:8px;--radius-lg:16px;--radius-pill:100px}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--page-bg,var(--color-bg));min-width:320px;color:var(--color-text);font-family:var(--font-text);font-size:var(--text-md);letter-spacing:var(--tracking-md);line-height:var(--leading-md);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{font:inherit}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:.08em}a:hover{color:var(--color-link)}:is(a,button,summary):focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}img,svg{max-width:100%;display:block}h1,h2,h3,h4,h5,h6,p{margin-top:0}h1{font-family:var(--font-display);font-size:var(--text-8xl);letter-spacing:var(--tracking-8xl);font-weight:600;line-height:var(--leading-8xl);margin-bottom:1.25rem}h2{font-family:var(--font-text);font-size:var(--text-6xl);letter-spacing:var(--tracking-6xl);font-weight:600;line-height:var(--leading-6xl);margin-bottom:1rem}h3{font-family:var(--font-text);font-size:var(--text-4xl);letter-spacing:var(--tracking-4xl);font-weight:600;line-height:var(--leading-4xl);margin-bottom:.75rem}h4{font-family:var(--font-text);font-size:var(--text-3xl);letter-spacing:var(--tracking-3xl);font-weight:600;line-height:var(--leading-3xl)}h5{font-family:var(--font-text);font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl);font-weight:600;line-height:var(--leading-2xl)}h6{font-family:var(--font-text);font-size:var(--text-lg);letter-spacing:var(--tracking-lg);font-weight:600;line-height:1.4}p{color:var(--color-text)}.skip-link{z-index:20;border-radius:var(--radius);background:var(--color-text);color:var(--color-panel);padding:.65rem .9rem;position:fixed;top:1rem;left:1rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.skip-link:hover{color:var(--color-panel);background:color-mix(in srgb, var(--color-text) 85%, white)}.site-header{z-index:10;--header-pad-y:clamp(.45rem, .8vw, 11.6px);padding:var(--header-pad-y) var(--nav-frame-gutter);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;justify-content:space-between;align-items:center;gap:1rem;margin-top:16px;transition:background-color .22s,box-shadow .22s;display:flex;position:sticky;top:0}.site-header.is-scrolled{background:rgb(var(--glass-rgb) / .7);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 1px 0 rgb(var(--neutral-dark-rgb) / .04)}.brand-slot{--brand-mark-h:clamp(32px, 2.72vw, 39.2px);align-self:stretch;align-items:center;gap:1.1rem;min-width:0;display:flex}.brand{align-items:center;gap:1.1rem;text-decoration:none;display:inline-flex;position:relative}.brand__mark{height:var(--brand-mark-h);aspect-ratio:29/21;background:var(--color-logo);transform-origin:0;transition:transform .26s cubic-bezier(.22,1,.36,1),scale .26s cubic-bezier(.22,1,.36,1),background-color .18s;display:block;-webkit-mask:url(/assets/images/logo.svg) 0/contain no-repeat;mask:url(/assets/images/logo.svg) 0/contain no-repeat}.site-header.is-scrolled .brand__mark{transform:scale(.72)}.brand:hover .brand__mark{background:var(--color-link);scale:1.06}.brand__word{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-xl);color:var(--color-ink);white-space:nowrap;font-weight:600;transition:opacity .26s,translate .26s cubic-bezier(.22,1,.36,1)}.site-header.is-scrolled .brand__word{translate:calc(var(--brand-mark-h) * (29 / 21) * -.28) 0}.site-header.is-scrolled .topbar-doc{margin-left:calc(var(--brand-mark-h) * (29 / 21) * -.28)}.brand__word.is-hidden{opacity:0}.brand__word--doc{animation:.24s cubic-bezier(.22,1,.36,1) both topbarDocIn}.brand{transition:opacity .32s}.hamburger{transition:opacity .3s}.site-header.is-intro .brand{opacity:0;pointer-events:none}.site-header.intro-nav-pending .nav-link,.site-header.intro-nav-pending .hamburger{opacity:0;pointer-events:none;transform:translateY(-6px)}#primary-nav .nav-link:nth-child(2){transition-delay:0s,55ms,55ms;animation-delay:55ms}#primary-nav .nav-link:nth-child(3){transition-delay:0s,.11s,.11s;animation-delay:.11s}#primary-nav .nav-link:nth-child(4){transition-delay:0s,.165s,.165s;animation-delay:.165s}#primary-nav .nav-link:nth-child(5){transition-delay:0s,.22s,.22s;animation-delay:.22s}#primary-nav .nav-link:first-child{--nav-tint:#f6dc5a}#primary-nav .nav-link:nth-child(2){--nav-tint:#5ad5f6}#primary-nav .nav-link:nth-child(3){--nav-tint:#915af6}#primary-nav .nav-link:nth-child(4){--nav-tint:#f65abd}.site-header.is-intro:not(.intro-nav-pending) .nav-link{animation:.6s ease-out both navIntroTint}@keyframes navIntroTint{0%,25%{color:var(--nav-tint)}to{color:var(--color-nav)}}.topbar-doc{align-self:stretch;align-items:center;gap:1.1rem;min-width:0;animation:.24s cubic-bezier(.22,1,.36,1) both topbarDocIn;display:flex}@keyframes topbarDocIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.topbar-doc,.brand__word--doc{animation:none}}.topbar-doc__back{margin-block:calc(-1 * var(--header-pad-y));width:var(--header-h,58px);border-inline:1px solid var(--color-line);color:var(--color-nav);background:0 0;flex:none;justify-content:center;align-self:stretch;align-items:center;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s;display:inline-flex}.topbar-doc__back svg{width:18px;height:18px}.topbar-doc__back:hover{color:var(--color-link);background:rgb(var(--neutral-dark-rgb) / .05)}.topbar-doc__title{font-family:var(--font-text);font-size:var(--text-lg);color:var(--color-ink);letter-spacing:var(--tracking-lg);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.site-header nav{align-self:stretch;align-items:stretch;gap:2px;display:flex}.nav-link.nav-link--home{display:none}.nav-link{isolation:isolate;color:var(--color-nav);font-family:var(--font-text);font-size:var(--text-md);align-items:center;padding:0 clamp(.8rem,1.5vw,1.25rem);font-weight:500;text-decoration:none;transition:color .18s,opacity .3s,transform .3s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative}.nav-link:focus-visible{outline:2px solid var(--color-ink);outline-offset:-8px;border-radius:var(--radius-sm)}.nav-link[aria-current=page]{color:var(--color-nav-active)}.nav-link:before{content:"";z-index:-1;background:radial-gradient(100px circle at var(--mx,50%) var(--my,50%), var(--hover-spot-core), var(--hover-spot-edge) 45%, transparent 75%);opacity:0;pointer-events:none;border-radius:8px;transition:opacity .2s;position:absolute;inset:0}.nav-link:hover:before{opacity:1}.hamburger{z-index:11;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:44px;height:44px;padding:0;display:none;position:relative}.hamburger span{background:var(--color-ink);border-radius:2px;height:2px;transition:transform .22s,opacity .16s,top .22s;position:absolute;left:10px;right:10px}.hamburger span:first-child{top:14px}.hamburger span:nth-child(2){top:21px}.hamburger span:nth-child(3){top:28px}.hamburger.is-active span:first-child{top:21px;transform:rotate(45deg)}.hamburger.is-active span:nth-child(2){opacity:0}.hamburger.is-active span:nth-child(3){top:21px;transform:rotate(-45deg)}.section{padding:clamp(3.5rem, 8vw, 7rem) var(--space-page)}.section__inner{width:min(100%, var(--max-width));margin:0 auto}.narrow{max-width:760px}.hero{--deco-w:2560px;--deco-h:1840px;--deco-color:#53535c;--deco-strength:1;--deco-line:rgb(from var(--deco-color) r g b / var(--deco-strength));--hero-max-height:var(--deco-h);--hero-min-height:640px;--hero-pad-block:clamp(2.5rem, 6vh, 4.5rem);isolation:isolate;min-height:clamp(var(--hero-min-height), calc(100svh + 24px), var(--hero-max-height));padding-top:calc(16px + 78px + var(--hero-pad-block));padding-bottom:calc(16px + 78px + var(--hero-pad-block));padding-right:min(var(--space-page), 120px);padding-left:min(var(--space-page), 120px);background:0 0;align-content:center;justify-items:center;margin-top:-94px;display:grid;position:relative;overflow:hidden}.hero__inner{z-index:1;width:min(100%, var(--max-width));text-align:center;align-content:center;justify-items:center;min-height:clamp(380px,38vw,540px);margin:0 auto;display:grid;position:relative}.hero__bg{width:min(100%, var(--deco-w));height:min(100%, var(--deco-h));z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-line-strong);--hero-tfade:linear-gradient(to bottom, transparent 0, transparent 52px, #000 196px);-webkit-mask:var(--hero-tfade);-webkit-mask:var(--hero-tfade);-webkit-mask:var(--hero-tfade);mask:var(--hero-tfade);animation:.7s ease-out both heroFadeIn;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.hero__bg.is-open{-webkit-mask:none;mask:none}@property --hero-clear{syntax:"<number>";inherits:false;initial-value:1}.hero__bg-veil{--hero-clear:1;--hero-cfade:radial-gradient(63.1% 22.3% at 50% 49%, rgb(0 0 0/calc(1 - var(--hero-clear))) 0%, rgb(0 0 0/calc(1 - .6 * var(--hero-clear))) 42%, #000 84%);-webkit-mask:var(--hero-cfade);-webkit-mask:var(--hero-cfade);-webkit-mask:var(--hero-cfade);mask:var(--hero-cfade);position:absolute;inset:0}.hero__bg-veil.is-clearing-pending{--hero-clear:0}.hero__bg-veil.is-clearing{animation:2.1s linear both heroClearRamp}@keyframes heroClearRamp{0%{--hero-clear:0}to{--hero-clear:1}}.hero-deco{width:100%;height:100%;color:var(--deco-color,#fff);opacity:var(--deco-strength);position:absolute;inset:0}.hero-deco.is-drawing{color:#fff;transition:color .62s}.hero-deco.is-drawing.is-settled{color:var(--deco-color,#53535c)}.hero-deco__s{fill:none;stroke:currentColor;stroke-width:1px;stroke-dashoffset:0}.hero-deco.is-drawing .hero-deco__s{stroke-dasharray:1;stroke-dashoffset:var(--from,1);animation:heroDecoDraw var(--dur,1s) cubic-bezier(.65, 0, .2, 1) var(--delay,0s) both}@keyframes heroDecoDraw{0%{stroke-dashoffset:var(--from,1)}to{stroke-dashoffset:0}}.hero--intro .hero__bg,.hero--redraw .hero__bg{animation:none}.intro-gate{transition:opacity .44s,transform .44s cubic-bezier(.22,1,.36,1)}.intro-gate--pending{opacity:0;pointer-events:none;transform:translateY(10px)}.hero--intro .hero__inner.intro-gate{transition:none}.hero-cta.is-intro-held{opacity:0;pointer-events:none}.hero-intro-overlay{z-index:60;pointer-events:none;position:fixed;inset:0}.hero-intro-logo{will-change:transform}@media (width>=2561px){.hero__bg{border-left:1px solid var(--deco-line);border-right:1px solid var(--deco-line)}}@media (width>=2561px) and (height>=1841px){.hero__bg{border-top:1px solid var(--deco-line)}}.hero__copy{max-width:min(22em,90vw);font-family:var(--font-display);font-size:var(--text-7xl);letter-spacing:var(--tracking-7xl);color:var(--gray-50);margin:0 auto clamp(1.75rem,3.2vw,2.75rem);font-weight:500;line-height:1.2;position:relative}.hero__word{color:var(--gray-50);-webkit-text-fill-color:currentColor;--hero-word-tint:#5a89f6;display:inline-block}.hero__copy.is-animated .hero__word{animation:heroWordDraw .56s cubic-bezier(.62, 0, .2, 1) calc(.14s + var(--i,0) * 54ms) both, heroWordTint .64s ease-out calc(.14s + var(--i,0) * 54ms) both;-webkit-mask-image:linear-gradient(90deg,#000 0% 30%,#0000 45% 100%);mask-image:linear-gradient(90deg,#000 0% 30%,#0000 45% 100%);-webkit-mask-size:400% 100%;mask-size:400% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@keyframes heroWordDraw{0%{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes heroWordTint{0%,30%{color:var(--hero-word-tint);-webkit-text-fill-color:var(--hero-word-tint)}to{color:var(--gray-50);-webkit-text-fill-color:var(--gray-50)}}@keyframes heroFadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.hero__bg,.hero__copy,.hero__copy.is-animated .hero__word,.hero__bg-veil.is-clearing{animation:none}}.projects{--frame-line:var(--color-line-strong);--frame-pad:var(--home-frame-pad);--frame-max:var(--home-frame-max);z-index:2;scroll-margin-top:var(--header-h,78px);padding:0;position:relative;overflow-x:clip}.projects__frame{width:min(100% - 2 * var(--frame-pad), var(--frame-max));margin-inline:auto}.projects__eyebrow,.project-card{border-inline:1px solid var(--frame-line)}.projects__eyebrow:after,.project-card:after{content:"";border-top:1px solid var(--frame-line);pointer-events:none;width:100vw;height:0;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.projects__eyebrow{font-family:var(--font-display);font-size:var(--text-md);letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--color-ink);margin:0;padding-block:40px;font-weight:700;line-height:1.2;position:relative}.projects__grid{margin:0;padding:0;list-style:none}.project-card{position:relative}.project-card__link{color:inherit;flex-direction:row;align-items:flex-end;padding-top:clamp(5.4rem,10.2vw,9.6rem);text-decoration:none;transition:background-color .22s;display:flex}@media (width>=761px){.project-card:nth-child(2n) .project-card__link{flex-direction:row-reverse}}.project-card__media{aspect-ratio:16/9;background:0 0;border:0;flex:0 0 62.5%;text-decoration:none;display:block;position:relative;overflow:hidden}.project-card__media--empty{background-image:radial-gradient(circle, rgb(var(--neutral-light-rgb) / var(--alpha-16)) 1.5px, transparent 2px);background-size:18px 18px}:is(.project-card__link:hover,.project-card__link:focus-visible){background-color:rgb(var(--neutral-light-rgb) / .025)}.project-card__link:focus-visible{outline:2px solid var(--color-ink);outline-offset:4px}.project-card__media-img{object-fit:cover;width:100%;height:100%;display:block}.project-card__body{flex-direction:column;flex:1;align-items:flex-start;min-width:0;max-width:480px;padding:0 40px 64px;display:flex}.project-card__text{flex-direction:column;gap:16px;display:flex}.project-card__num{font-family:var(--font-text);font-size:var(--text-xl);letter-spacing:var(--tracking-xl);color:var(--gray-500);margin:0;font-weight:400;line-height:1.6}.project-card__title{font-family:var(--font-display);font-size:var(--text-4xl);letter-spacing:var(--tracking-4xl);color:var(--color-ink);margin:0;font-weight:600;line-height:1.18}.project-card__title-end{white-space:nowrap}.project-card__title-arrow{vertical-align:-.1em;width:.75em;height:.75em;color:var(--gray-500);margin-left:.4em;transition:color .22s,transform .26s;display:inline-block}@keyframes projectArrowDance{0%,to{transform:translate(0)}50%{transform:translate(6px)}}:is(.project-card__link:hover .project-card__title-arrow,.project-card__link:focus-visible .project-card__title-arrow){color:var(--color-ink);animation:1s ease-in-out infinite projectArrowDance}@media (prefers-reduced-motion:reduce){:is(.project-card__link:hover .project-card__title-arrow,.project-card__link:focus-visible .project-card__title-arrow){animation:none}}.project-card__subtitle{font-size:var(--text-lg);font-weight:400;line-height:var(--leading-lg);color:var(--gray-350);margin:0}.project-card__link--static:hover{background-color:#0000}.project-card__status{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500);margin:0;font-weight:600}.cta-dark{isolation:isolate;border:1px solid rgb(var(--neutral-dark-rgb) / .55);border-radius:var(--radius-pill);background:linear-gradient(180deg, var(--cta-dark-top) 0%, var(--cta-dark-bottom) 100%);color:var(--cta-dark-text);font-family:var(--font-text);font-size:var(--text-xl);letter-spacing:var(--tracking-xl);white-space:nowrap;box-shadow:var(--cta-shadow);align-items:center;gap:10px;padding:15px 28px;font-weight:600;text-decoration:none;transition:box-shadow .22s;display:inline-flex;position:relative;overflow:hidden}.cta-dark:before{content:"";z-index:-1;background:radial-gradient(120px circle at var(--mx,50%) var(--my,50%), rgb(var(--neutral-light-rgb) / .1), rgb(var(--neutral-light-rgb) / .05) 45%, transparent 70%);opacity:0;pointer-events:none;transition:opacity .22s;position:absolute;inset:0}.cta-dark:hover:before,.cta-dark:focus-visible:before{opacity:1}:is(.cta-dark:hover,.cta-dark:focus-visible){color:var(--cta-dark-text);box-shadow:var(--cta-shadow-hover)}.cta-dark:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.cta-dark svg{flex:none;width:1em;height:1em;transition:transform .26s cubic-bezier(.22,1,.36,1)}:is(.cta-dark:hover svg,.cta-dark:focus-visible svg){transform:translate(4px)}.cta-dark svg line{stroke-dasharray:15;stroke-dashoffset:15px;transition:stroke-dashoffset .26s cubic-bezier(.22,1,.36,1)}:is(.cta-dark:hover svg line,.cta-dark:focus-visible svg line){stroke-dashoffset:0}@media (width>=761px) and (width<=999px){.project-card__media{flex-basis:60%}.project-card__body{max-width:420px;padding:0 32px 32px}.project-card__num{font-size:var(--text-sm);letter-spacing:var(--tracking-sm)}.project-card__title{font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl)}.project-card__subtitle{font-size:var(--text-md)}.project-card__text{gap:10px}}@media (width<=760px){.project-card__link{flex-direction:column-reverse;align-items:stretch;padding-top:128px}.project-card__media{flex:none;width:100%}.project-card__body{padding:0 24px 32px}.project-card__text{align-self:stretch;gap:8px}}@media (width>=761px) and (width<=1199px){.hero__copy{font-size:var(--text-6xl);letter-spacing:var(--tracking-6xl)}}@media (width>=1600px){.hero__inner{width:min(100%,1440px)}}.button{isolation:isolate;border:1px solid rgb(var(--neutral-light-rgb) / .35);border-radius:var(--radius-pill);font-family:var(--font-text);font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl);font-weight:600;line-height:var(--leading-2xl);white-space:nowrap;box-shadow:inset 0 1px 0 rgb(var(--neutral-light-rgb) / .4), var(--shadow-soft);justify-content:center;align-items:center;gap:1.2em;padding:clamp(.6rem,1.39vw,1.25rem) clamp(1.5rem,3.33vw,3rem);text-decoration:none;transition:transform .18s,box-shadow .18s,background-color .18s,color .18s;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(190px circle at var(--mx,50%) var(--my,50%), rgb(var(--neutral-light-rgb) / .6), rgb(var(--neutral-light-rgb) / .22) 45%, transparent 72%);opacity:0;pointer-events:none;transition:opacity .22s;position:absolute;inset:0}.button:hover:before{opacity:1}.button:hover{box-shadow:inset 0 1px 0 rgb(var(--neutral-light-rgb) / .4), var(--shadow-soft-lg);transform:translateY(-1px)}.button--primary{background:rgb(var(--neutral-light-rgb) / .92);-webkit-backdrop-filter:none;backdrop-filter:none;color:rgb(var(--neutral-dark-rgb) / .62);border:1px solid rgb(var(--neutral-light-rgb) / .6);box-shadow:0 0 4px rgb(var(--neutral-dark-rgb) / .08), 0 12px 24px rgb(var(--shadow-warm-rgb) / .16)}.button--primary:hover{background:rgb(var(--neutral-light-rgb) / 1);color:rgb(var(--neutral-dark-rgb) / .8);box-shadow:0 0 4px rgb(var(--neutral-dark-rgb) / .1), 0 16px 32px rgb(var(--shadow-warm-rgb) / .22)}.button__chevron{width:1.2em;height:1.2em;color:var(--color-chevron);flex:none;transition:transform .26s cubic-bezier(.22,1,.36,1)}.button:hover .button__chevron{transform:translateY(4px)}.button__chevron-stem{stroke-dasharray:12;stroke-dashoffset:12px;transition:stroke-dashoffset .26s cubic-bezier(.22,1,.36,1)}.button:hover .button__chevron-stem{stroke-dashoffset:0}.button__arrow{flex:none;width:1.05em;height:1.05em;transition:transform .22s cubic-bezier(.22,1,.36,1)}.button:hover .button__arrow{transform:translate(4px)}@property --cta-head{syntax:"<angle>";inherits:false;initial-value:0deg}@property --cta-tail{syntax:"<angle>";inherits:false;initial-value:0deg}@property --cta-girth{syntax:"<number>";inherits:true;initial-value:0}.button--sweep{overflow:visible}.button--sweep .button__sweep{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.button--sweep .button__sweep-strip,.button--sweep .button__sweep-glow{border-radius:inherit;opacity:0;position:absolute}.button--sweep .button__sweep-strip{padding:calc(var(--cta-girth) * 2px);-webkit-mask-composite:xor;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.button--sweep .button__sweep-glow{filter:blur(7px);inset:0}.button--sweep .button__sweep-halo{inset:calc(var(--cta-girth) * -3px);border-radius:inherit;padding:calc(var(--cta-girth) * 5px);-webkit-mask-composite:xor;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;position:absolute;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.button--sweep .button__sweep-run{--cta-span:calc(var(--cta-head) - var(--cta-tail));--sweep-tint-s:75%;--sweep-tint-l:89%;background:conic-gradient(from var(--cta-tail), transparent 0deg calc(var(--cta-span) * .86), rgb(var(--neutral-light-rgb) / .95) calc(var(--cta-span) * .93) calc(var(--cta-span) * .965), transparent var(--cta-span)), conic-gradient(from 0deg in hsl, hsl(222 var(--sweep-tint-s) var(--sweep-tint-l)) 0deg, hsl(269 var(--sweep-tint-s) var(--sweep-tint-l)) 64.6deg, hsl(306 var(--sweep-tint-s) var(--sweep-tint-l)) 76.6deg, hsl(322 var(--sweep-tint-s) var(--sweep-tint-l)) 90deg, hsl(306 var(--sweep-tint-s) var(--sweep-tint-l)) 103.4deg, hsl(269 var(--sweep-tint-s) var(--sweep-tint-l)) 115.4deg, hsl(222 var(--sweep-tint-s) var(--sweep-tint-l)) 180deg, hsl(186 var(--sweep-tint-s) var(--sweep-tint-l)) 244.6deg, hsl(99 var(--sweep-tint-s) var(--sweep-tint-l)) 256.6deg, hsl(50 var(--sweep-tint-s) var(--sweep-tint-l)) 270deg, hsl(99 var(--sweep-tint-s) var(--sweep-tint-l)) 283.4deg, hsl(186 var(--sweep-tint-s) var(--sweep-tint-l)) 295.4deg, hsl(222 var(--sweep-tint-s) var(--sweep-tint-l)) 360deg);-webkit-mask:conic-gradient(from var(--cta-tail), transparent 0deg, #00000080 calc(var(--cta-span) * .12), #000000eb calc(var(--cta-span) * .45), #000 calc(var(--cta-span) * .8) calc(var(--cta-span) * .97), transparent var(--cta-span));-webkit-mask:conic-gradient(from var(--cta-tail), transparent 0deg, #00000080 calc(var(--cta-span) * .12), #000000eb calc(var(--cta-span) * .45), #000 calc(var(--cta-span) * .8) calc(var(--cta-span) * .97), transparent var(--cta-span));-webkit-mask:conic-gradient(from var(--cta-tail), transparent 0deg, #00000080 calc(var(--cta-span) * .12), #000000eb calc(var(--cta-span) * .45), #000 calc(var(--cta-span) * .8) calc(var(--cta-span) * .97), transparent var(--cta-span));mask:conic-gradient(from var(--cta-tail), transparent 0deg, #00000080 calc(var(--cta-span) * .12), #000000eb calc(var(--cta-span) * .45), #000 calc(var(--cta-span) * .8) calc(var(--cta-span) * .97), transparent var(--cta-span));position:absolute;inset:0}.button--sweep:hover .button__sweep-strip,.button--sweep:hover .button__sweep-glow,.button--sweep.is-sweeping .button__sweep-strip,.button--sweep.is-sweeping .button__sweep-glow{animation:2.2s linear both cta-sweep-fade,2.2s linear both cta-sweep-girth}.button--sweep:hover .button__sweep-run,.button--sweep.is-sweeping .button__sweep-run{animation:cta-sweep-head 2.2s linear(0, .0328, .0513, .0623, .0695, .0745, .0782, .0854, .0963, .108, .118, .1233, .1276, .1339, .1437, .1605, .1921, .2478, .3048, .338, .3554, .3656, .372, .3765, .3815, .3913, .4031, .4141, .4216, .4253, .4302, .4373, .4481, .4661, .4979, .5485, .5993, .6313, .6494, .6602, .6673, .6722, .6758, .6789, .6848, .6928, .7016, .71, .717, .7217, .7242, .727, .7305, .7349, .7404, .7476, .7572, .7704, .7886, .813, .8426, .8726, .8981, .9173, .9312, .9413, .9489, .9547, .9592, .9628, .9657, .9681, .9702, .9719, .9734, .9746, .9757, .9767, .9776, .9785, .9797, .9811, .9826, .9842, .9859, .9875, .989, .9905, .9919, .9932, .9944, .9955, .9964, .9973, .998, .9986, .9991, .9995, .9998, .9999, 1) both, cta-sweep-tail 2.2s linear(0, .0349, .0618, .0802, .0925, .1011, .1073, .112, .1156, .1185, .1208, .1233, .1279, .134, .1408, .1479, .1545, .16, .1637, .1659, .1684, .1716, .1756, .1809, .188, .1979, .2125, .2342, .2651, .3013, .3334, .3563, .3717, .3823, .3897, .3952, .3993, .4026, .4052, .4074, .4108, .4161, .4226, .4296, .4365, .4427, .4476, .4503, .4526, .4554, .4589, .4634, .4693, .4775, .4892, .5065, .5321, .5662, .6018, .63, .6494, .6624, .6715, .678, .6828, .6866, .6895, .6919, .6942, .6986, .7045, .7113, .7183, .725, .7307, .7348, .737, .7394, .7425, .7464, .7514, .7582, .7677, .7815, .802, .8316, .8676, .9007, .925, .9413, .9524, .9602, .9659, .9702, .9736, .9763, .9785, .9816, .9867, .993, 1) both}@keyframes cta-sweep-head{0%{--cta-head:30deg}to{--cta-head:630deg}}@keyframes cta-sweep-tail{0%{--cta-tail:0deg}to{--cta-tail:630deg}}@keyframes cta-sweep-fade{0%{opacity:0}2.5%{opacity:1}to{opacity:1}}@keyframes cta-sweep-girth{0%{--cta-girth:0;animation-timing-function:ease-out}14%{--cta-girth:1}76%{--cta-girth:1;animation-timing-function:ease-in}to{--cta-girth:0}}@media (prefers-reduced-motion:reduce){.button--sweep:hover .button__sweep-strip,.button--sweep:hover .button__sweep-glow,.button--sweep:hover .button__sweep-run,.button--sweep.is-sweeping .button__sweep-strip,.button--sweep.is-sweeping .button__sweep-glow,.button--sweep.is-sweeping .button__sweep-run{animation:none}}.hero-cta{z-index:5;width:max-content;font-size:var(--text-xl);letter-spacing:var(--tracking-xl);margin-inline:auto;font-weight:500;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .26s,box-shadow .18s,background-color .18s,color .18s;position:absolute;bottom:clamp(40px,8vh,88px);left:0;right:0}.hero-cta.is-hidden{opacity:0;pointer-events:none;transform:translateY(-14px)}.hero-cta:hover{transform:translateY(1px)}.hero-cta:before{background:radial-gradient(170px circle at var(--mx,50%) var(--my,50%), var(--hover-spot-core), var(--hover-spot-edge) 45%, transparent 72%)}.hero-cta:hover:before{opacity:1}@media (width>=761px){.hero-cta{padding:1.25rem 3rem}}@media (width>=761px) and (width<=1199px){.hero-cta{bottom:clamp(24px,4.5vh,48px)}}.eyebrow{color:var(--color-text-soft);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.85rem;font-weight:700}.lead{max-width:720px;font-size:var(--text-3xl);letter-spacing:var(--tracking-3xl)}.page-section{min-height:68vh}.notfound{text-align:center;min-height:min(78svh,760px);padding:clamp(4rem, 12vh, 8rem) var(--space-page);place-items:center;display:grid}.notfound__inner{align-items:center;gap:var(--space-4);flex-direction:column;max-width:34rem;display:flex}.notfound__code{margin:0 0 var(--space-2);font-family:var(--font-display);letter-spacing:var(--tracking-8xl);color:var(--color-ink);opacity:var(--alpha-16);font-size:clamp(4.5rem,16vw,9rem);font-weight:600;line-height:1}.notfound__title{font-family:var(--font-display);font-size:var(--text-6xl);font-weight:500;line-height:var(--leading-6xl);letter-spacing:var(--tracking-6xl);color:var(--color-ink);margin:0}.notfound__copy{max-width:34ch;font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-muted);margin:0}.notfound__cta{margin-top:var(--space-4)}.about-arch{--arch-line:rgb(var(--neutral-dark-rgb) / var(--alpha-8));padding-block:clamp(2rem,5vw,3.5rem) 0;overflow-x:clip}.about-arch__frame{width:min(calc(100% - 2 * var(--space-page)), var(--content-max));border-inline:1px solid var(--arch-line);margin-inline:auto}.arch-rule{border:0;border-top:1px solid var(--arch-line);width:100vw;height:0;margin:0;margin-inline:calc(50% - 50vw)}.about-arch__content{grid-template-columns:minmax(0,1fr) clamp(300px,34%,397px);display:grid}.about-arch__bio{flex-direction:column;gap:clamp(1rem,1.6vw,23px);min-width:0;padding:32px 24px clamp(2.5rem,5vw,4rem);display:flex}.about-arch__card{border-left:1px solid var(--arch-line);flex-direction:column;align-items:flex-end;gap:24px;padding:44px 24px 24px;display:flex;position:relative}.about-arch__card:after{content:"";width:1px;height:var(--deco-air);background:var(--arch-line);position:absolute;top:100%;left:-1px}.about__title{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:600;line-height:var(--leading-5xl);letter-spacing:var(--tracking-5xl);color:var(--color-text);margin:0}.about__body{font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-text)}.about__body p{margin:0 0 24px}.about__body p:last-child{margin-bottom:0}.about__body strong{font-weight:600}.about__card-title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-xl);color:var(--color-text);align-self:stretch;margin:0;font-weight:600;line-height:1.2}.about__contact{flex-direction:column;align-self:stretch;margin:0;display:flex}.about__contact-row{border-top:1px solid var(--arch-line);justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;display:flex}.about__contact-label{font-family:var(--font-text);font-size:var(--text-md);color:var(--color-text);font-weight:500}.about__contact-value{text-align:right;margin:0}.about__contact-value a{font-family:var(--font-text);font-size:var(--text-md);color:var(--color-text);font-weight:600;text-decoration:none;transition:color .16s}.about__contact-value a:hover{color:var(--color-link)}.about__card-cta{font-size:var(--text-md);letter-spacing:var(--tracking-md);justify-content:center}.about-marquee{--marquee-box:clamp(180px, 22vw, 300px);--marquee-gap:clamp(12px, 1.5vw, 24px);width:100%;height:var(--marquee-box);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.about-marquee__track{width:max-content;height:100%;animation:about-marquee-scroll var(--marquee-duration,60s) linear infinite;will-change:transform;display:flex}.about-marquee__item{width:var(--marquee-box);height:var(--marquee-box);margin-right:var(--marquee-gap);background:rgb(var(--neutral-dark-rgb) / .06);flex:none;overflow:hidden}.about-marquee__item img{object-fit:cover;width:100%;height:100%;display:block}@keyframes about-marquee-scroll{to{transform:translate(-50%)}}@media (width<=899px){.about-arch__content{grid-template-columns:1fr}.about-arch__bio{padding-bottom:clamp(2rem,6vw,2.75rem)}.about-arch__card{border-left:0;border-top:1px solid var(--arch-line);align-items:stretch;padding:32px 24px clamp(2.5rem,6vw,3.5rem)}.about-arch__card:after{display:none}.about-arch__card .about__card-cta{align-self:flex-start}}@media (prefers-reduced-motion:reduce){.about-marquee__track{will-change:auto;animation:none}}.contact-email{margin-top:2.25rem}.contact-elsewhere{margin-top:clamp(2.5rem,6vw,4rem)}.contact-elsewhere__label{margin-bottom:1rem}.contact-methods{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.contact-method{border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:baseline;gap:1rem;padding:1.1rem 0;display:flex}.contact-method__label{color:var(--color-muted);font-size:var(--text-2xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.contact-method__value{color:var(--color-text);font-family:var(--font-display);letter-spacing:var(--tracking-lg);font-size:var(--text-lg);text-decoration:none;transition:color .16s}.contact-method__value:hover{color:var(--color-link)}.site-footer-deco{width:min(calc(100% - 2 * var(--footer-gutter)), var(--footer-frame-max));padding-top:var(--deco-air);border-inline:1px solid var(--footer-line);color:var(--deco-bar-line);margin-inline:auto}.site-footer-deco__art{aspect-ratio:5188/967;background:var(--deco-bar-bg);border-top:1px solid var(--footer-line);width:100%;height:auto;display:block}.site-footer{color:var(--color-muted);--footer-gutter:var(--space-page);--footer-frame-max:var(--content-max);--footer-col-pad:clamp(1.5rem, 3vw, 2.5rem);background:0 0;padding:0;overflow-x:clip}.site-footer[data-frame=home]{--footer-gutter:var(--home-frame-pad);--footer-frame-max:var(--home-frame-max);--deco-air:var(--deco-air-long)}.footer-arch{width:min(calc(100% - 2 * var(--footer-gutter)), var(--footer-frame-max));border-inline:1px solid var(--footer-line);margin-inline:auto;padding-bottom:clamp(4rem,8vw,5.5rem)}.footer-rule{border:0;border-top:1px solid var(--footer-line);width:100vw;height:0;margin:0;margin-inline:calc(50% - 50vw)}.footer-sitemap{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;display:grid}.footer-col{padding:clamp(2.75rem, 5vw, 4rem) var(--footer-col-pad) clamp(2.5rem, 5vw, 3.5rem)}.footer-col+.footer-col{border-left:1px solid var(--footer-line)}.footer-col__title{color:var(--color-muted);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;margin:0 0 1rem;font-weight:700}.footer-col ul{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.footer-col a{color:var(--color-text);font-size:var(--text-md);text-decoration:none;transition:color .16s}.footer-col a:hover{color:var(--color-link)}.footer-bottom{padding:clamp(1.5rem, 3vw, 2rem) var(--footer-col-pad) 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;display:flex}.footer-bottom__meta{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-sm);margin:0}.footer-bottom__logo{flex:none;margin-left:auto;display:inline-flex}.footer-bottom__mark{background:var(--color-logo);width:38.7px;height:28px;transition:opacity .16s;display:block;-webkit-mask:url(/assets/images/logo.svg) 50%/contain no-repeat;mask:url(/assets/images/logo.svg) 50%/contain no-repeat}.footer-bottom__logo:hover .footer-bottom__mark{opacity:.7}@media (width<=760px){:root{--space-page:1rem}.project-card__link{padding-top:96px}.projects__eyebrow{font-size:var(--text-xs);padding-block:2rem}.site-header{flex-flow:row;align-items:center}.footer-sitemap{padding:clamp(2.5rem, 8vw, 3rem) var(--footer-col-pad) clamp(2rem, 6vw, 2.5rem);grid-template-columns:1fr 1fr;gap:clamp(1.75rem,7vw,2.5rem) 1rem}.site-footer{--footer-col-pad:1rem}.footer-col{padding:0}.footer-col+.footer-col{border-left:0}.footer-bottom{flex-wrap:nowrap;align-items:flex-start;gap:1.25rem}.footer-bottom__meta{flex-direction:column;gap:.35rem;min-width:0;display:flex}.footer-bottom__meta-sep{display:none}.footer-bottom__meta-copyright{order:1}.hero{padding-left:24px;padding-right:24px}.hero__copy{font-size:var(--text-5xl);letter-spacing:var(--tracking-5xl);max-width:100%;margin-bottom:2.5rem}.button{width:100%;font-size:var(--text-3xl);letter-spacing:var(--tracking-3xl);padding-top:1.35rem;padding-bottom:1.35rem}.hero-cta{width:max-content;font-size:var(--text-md);letter-spacing:var(--tracking-md);padding:1.14rem 1.4rem;bottom:36px}.lead{font-size:var(--text-xl);letter-spacing:var(--tracking-xl)}.about-arch__bio,.about-arch__card{padding-left:16px;padding-right:16px}.hamburger{display:block}.site-header.is-menu-open{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0}.site-header nav{z-index:10;background:rgb(var(--glass-rgb) / .85);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);opacity:0;visibility:hidden;flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100vw;height:100dvh;padding:2rem;transition:opacity .22s,visibility 0s linear .22s;display:flex;position:fixed;top:0;left:0}.site-header nav.is-open{opacity:1;visibility:visible;transition:opacity .22s,visibility}.site-header nav .nav-link{font-size:var(--text-4xl);letter-spacing:var(--tracking-4xl);padding:.25rem 1rem}.site-header nav .nav-link[aria-current=page]{color:var(--color-text-soft)}.site-header nav .nav-link[aria-current=page]:after{display:none}.site-header nav .nav-link--home{order:-1;display:inline-flex}.brand-slot.is-doc .brand{display:none}.site-header.is-scrolled .brand-slot.is-doc .topbar-doc{margin-left:-1.25rem}.brand-slot.is-doc .topbar-doc__back{border-left:0}}html[data-theme=dark] body{background:linear-gradient(180deg, var(--black-950) 0%, var(--black-925) 23%, var(--black-925) 100%)}html[data-theme=dark] .skip-link{background:var(--color-ink);color:var(--black-950)}html[data-theme=dark] .skip-link:hover{color:var(--black-950);background:#fff}html[data-theme=dark] .site-header.is-scrolled,.site-header[data-theme=dark].is-scrolled{background:rgb(var(--header-glass-rgb) / .72);box-shadow:0 1px 0 rgb(var(--neutral-light-rgb) / .07)}html[data-theme=dark] .button--primary{background:var(--color-panel);color:var(--gray-200);border:1px solid var(--color-border-strong);box-shadow:none}html[data-theme=dark] .button--primary:hover{background:var(--black-850);color:var(--gray-0);box-shadow:none}.case-study{--cs-measure:760px;--cs-ease:cubic-bezier(.22, 1, .36, 1);--cs-pad-block:clamp(2.5rem, 6vw, 4rem);--cs-boundary-air:clamp(3.5rem, 18vw, 14rem);--cs-caption-min:480px;--cs-arch-line:rgb(var(--neutral-dark-rgb) / var(--alpha-8));--color-muted:var(--gray-600);--color-nav:var(--gray-600);color:var(--color-text)}.case-study .cs-hero__title{background-image:var(--flood-gradient);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.case-study .cs-mono{font-family:var(--font-text);font-variant-numeric:tabular-nums}.case-study :is(button,summary,a,[role=tab]):focus-visible{outline:2px solid var(--color-ink);outline-offset:2px;border-radius:var(--radius-xs)}:is(.case-study .cs-lightbox__close:focus-visible,.case-study .cs-lightbox__nav:focus-visible,.case-study .cs-lightbox__thumb:focus-visible){outline-color:var(--gray-0)}.case-study .cs-sectionnav{z-index:9;transition:opacity .3s;display:none;position:fixed;top:50%;left:clamp(16px,2.2vw,40px);transform:translateY(-50%)}@media (width>=1200px){.case-study .cs-sectionnav{display:block}}.case-study .cs-sectionnav.is-hidden{opacity:0;pointer-events:none}.case-study .cs-sectionnav ul{border-left:1px solid var(--color-line);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.case-study .cs-sectionnav a{color:var(--color-muted);font-size:var(--text-xs);padding:.32rem 0 .32rem .9rem;line-height:1.3;text-decoration:none;transition:color .18s;display:block;position:relative}.case-study .cs-sectionnav a:before{content:"";background:var(--flood-gradient);opacity:0;width:2px;transition:opacity .18s;position:absolute;top:.3rem;bottom:.3rem;left:-1px}.case-study .cs-sectionnav a:hover,.case-study .cs-sectionnav a.is-active{color:var(--color-ink)}.case-study .cs-sectionnav a.is-active:before{opacity:1}.case-study .cs-section{padding:var(--cs-pad-block) calc(var(--nav-frame-inset) - 1px) var(--cs-pad-block) var(--nav-frame-inset);scroll-margin-top:78px;overflow-x:clip}.case-study .cs-section+.cs-section{padding-top:calc(var(--cs-pad-block) * 3)}.case-study .cs-section:has(+.cs-section){padding-bottom:calc(var(--cs-pad-block) + var(--cs-boundary-air))}.case-study .cs-section--tint{background:var(--color-bg-muted)}.case-study .cs-section__inner{margin-inline:auto}.case-study .cs-section__inner--wide{width:min(100%, var(--max-width))}.case-study .cs-section__inner--narrow{width:min(100%, var(--cs-measure))}.case-study .cs-prose{max-width:var(--cs-measure)}.case-study .cs-prose p{font-size:var(--text-lg);color:var(--color-text);margin-bottom:1.15rem;line-height:1.7}.case-study .cs-prose p:last-child{margin-bottom:0}.case-study .cs-prose strong{color:var(--color-ink);font-weight:600}.case-study .cs-prose a{font-weight:500;transition:color .18s}.case-study .cs-prose a:hover{color:var(--color-muted)}.case-study .cs-jump{max-width:var(--cs-text,var(--cs-measure));margin-inline:auto}.case-study .cs-jump__lead{font-size:var(--text-lg);color:var(--color-text);margin:0 0 .9rem;font-weight:500;line-height:1.7}.case-study .cs-jumpbtn{border:1px solid var(--color-line);border-radius:var(--radius-pill);color:var(--color-ink);font-family:var(--font-text);font-size:var(--text-lg);letter-spacing:var(--tracking-lg);white-space:nowrap;background:0 0;align-items:center;gap:.6em;padding:13px 26px;font-weight:600;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s;display:inline-flex}:is(.case-study .cs-jumpbtn:hover,.case-study .cs-jumpbtn:focus-visible){border-color:var(--color-line-strong);background:rgb(var(--neutral-dark-rgb) / .02);color:var(--color-ink)}.case-study .cs-jumpbtn:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.case-study .cs-jumpbtn__arrow{width:1em;height:1em;color:var(--color-muted);flex:none;transition:color .22s}@keyframes csJumpArrowDance{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}:is(.case-study .cs-jumpbtn:hover .cs-jumpbtn__arrow,.case-study .cs-jumpbtn:focus-visible .cs-jumpbtn__arrow){color:var(--color-ink);animation:1s ease-in-out infinite csJumpArrowDance}:is(.case-study .cs-jumpbtn:hover .cs-jumpbtn__arrow--out,.case-study .cs-jumpbtn:focus-visible .cs-jumpbtn__arrow--out){animation:none}.case-study .cs-jump--primary{margin-bottom:calc(var(--space-6) * 2)}.case-study .cs-jumpbtn--primary{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-bg)}.case-study .cs-jumpbtn--primary .cs-jumpbtn__arrow{color:var(--color-bg);opacity:.75}:is(.case-study .cs-jumpbtn--primary:hover,.case-study .cs-jumpbtn--primary:focus-visible){border-color:var(--color-ink);background:var(--color-ink);color:var(--color-bg);opacity:.92}:is(.case-study .cs-jumpbtn--primary:hover .cs-jumpbtn__arrow,.case-study .cs-jumpbtn--primary:focus-visible .cs-jumpbtn__arrow){color:var(--color-bg);opacity:1}@media (prefers-reduced-motion:reduce){:is(.case-study .cs-jumpbtn:hover .cs-jumpbtn__arrow,.case-study .cs-jumpbtn:focus-visible .cs-jumpbtn__arrow){animation:none}}.case-study .cs-prose ul{margin:0 0 1.15rem;padding-left:1.4rem;list-style:outside}.case-study .cs-prose li{font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-text);margin-bottom:.5rem;padding-left:.25rem}.case-study .cs-prose li::marker{color:var(--color-muted)}.case-study .cs-prose li:last-child{margin-bottom:0}.case-study .cs-prose code{font-family:var(--font-mono);background:var(--color-bg-muted);border:1px solid var(--color-line);white-space:nowrap;border-radius:5px;padding:.08em .36em;font-size:.88em}.case-study :is(h1,h2,h3,h4,h5,h6){font-weight:600;line-height:var(--leading-5xl);color:var(--color-ink);margin:0}.case-study :is(h1,h2){font-family:var(--font-display)}.case-study :is(h3,h4,h5,h6){font-family:var(--font-text)}.case-study h1{font-size:var(--text-6xl);letter-spacing:var(--tracking-6xl);line-height:var(--leading-6xl)}.case-study h2{font-size:var(--text-5xl);letter-spacing:var(--tracking-5xl)}.case-study h3{font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl);line-height:var(--leading-2xl)}.case-study h4{font-size:var(--text-xl);letter-spacing:var(--tracking-xl);line-height:var(--leading-xl)}.case-study h5,.case-study h6{font-size:var(--text-lg);letter-spacing:var(--tracking-lg);line-height:1.4}.case-study .cs-prose :is(h1,h2,h3,h4,h5,h6){margin-top:2em;margin-bottom:1em}.case-study .cs-prose :is(h2,h3,h4,h5,h6),.case-study .cs-stack>:is(.cs-figure,.cs-scrollshot,.cs-beforeafter,.cs-twoup,.cs-highlight)+.cs-prose>:is(h2,h3,h4,h5,h6):first-child{margin-top:4.25em}.case-study .cs-prose :is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.case-study .cs-stack>*+*{margin-top:var(--space-6)}.case-study .cs-stack>:is(.cs-figure,.cs-scrollshot,.cs-beforeafter,.cs-twoup){margin-block:clamp(2.25rem,3.5vw,2.75rem)}.case-study .cs-stack>.cs-header+*{margin-top:var(--space-6)}.case-study .cs-rule{border:0;border-top:1px solid var(--color-line);height:0;margin:0 calc(-1 * var(--nav-frame-inset)) calc(var(--cs-pad-block) * 2)}.case-study .cs-header__title{color:var(--color-ink);max-width:18ch;margin:0}.case-study .cs-hero-zone{margin-top:calc(-1 * (var(--header-h,78px) + 16px));padding-top:calc(var(--header-h,78px) + 16px);background:linear-gradient(180deg, var(--surface-page-top), var(--surface-page-bottom));color:var(--color-text)}.case-study .cs-hero-band{margin-top:clamp(2rem,5vw,3.5rem)}.case-study .cs-hero-rule{border:0;border-top:1px solid var(--color-line-strong);height:0}.case-study .cs-hero-band__inner{padding:clamp(2.5rem, 5vw, 5rem) var(--nav-frame-gutter) 0;align-items:flex-end;gap:clamp(2rem,4vw,3.5rem);display:flex}.case-study .cs-hero-band__copy{flex:1 1 0;min-width:0;padding-bottom:clamp(2.5rem,5vw,4rem)}.case-study .cs-hero-band__media{flex:0 0 62.5%;min-width:0;font-size:0}.case-study .cs-hero-band__media img{width:100%;height:auto;display:block}.case-study .cs-hero__title{font-family:var(--font-display);letter-spacing:var(--tracking-6xl);font-weight:600;line-height:var(--leading-6xl);font-size:var(--text-6xl);margin:0 0 1rem}.case-study .cs-hero__dek{max-width:60ch;color:var(--color-muted);font-size:var(--text-lg);margin:0;font-weight:500;line-height:1.7}.case-study .cs-meta-band{background:var(--color-bg-muted)}.case-study .cs-meta-rule{border:0;border-top:1px solid var(--color-line-strong);height:0}.case-study .cs-meta-band__inner{margin-inline:var(--nav-frame-gutter);border-inline:1px solid var(--color-line-strong);padding-inline:calc(var(--nav-frame-inset) - 1px)}.case-study .cs-meta-band .cs-meta__item{padding-block:clamp(2.25rem,4.5vw,3.5rem)}.case-study .cs-meta .cs-meta__item:after,.case-study.cs-centered .cs-rail:before{content:none}.case-study .cs-meta{align-items:stretch;gap:1.15rem;margin:0;display:flex}.case-study .cs-meta__item{flex-direction:column;flex:1 1 0;gap:.25rem;min-width:0;margin:0;display:flex}.case-study .cs-meta__item+.cs-meta__item{border-left:1px solid var(--color-line);padding-left:1rem}.case-study .cs-meta__label{font-size:var(--text-3xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin:0;font-weight:600;line-height:1.6}.case-study .cs-meta__value{font-size:var(--text-sm);color:var(--color-text);margin:0;font-weight:600;line-height:1.6}.case-study .cs-meta__tools{flex-direction:column;gap:.2rem;display:flex}.case-study .cs-meta__tool{align-items:center;gap:.5rem;display:flex}.case-study .cs-meta__tool svg{flex:none;width:15px;height:15px}.case-study .cs-figure{margin:0}.case-study .cs-figure--full{width:100%}.case-study .cs-figure--w-text{max-width:var(--cs-text,var(--cs-measure));margin-inline:auto}.case-study .cs-figure--w-custom{max-width:max(var(--cs-figure-w), var(--cs-caption-min));margin-inline:auto}.case-study .cs-figure--w-custom .cs-figure__trigger,.case-study .cs-figure--w-custom .cs-figure__media{max-width:var(--cs-figure-w);margin-inline:auto}.case-study .cs-figure--b-none .cs-figure__media{border:none}.case-study .cs-figure--b-thick .cs-figure__media{border:3px solid var(--gray-200)}.case-study .cs-figure--c-square .cs-figure__media{border-radius:0}.case-study .cs-figure__trigger{cursor:zoom-in;border-radius:var(--radius);background:0 0;border:0;width:100%;padding:0;display:block}.case-study .cs-figure__media{border-radius:var(--radius);border:1px solid var(--color-line);background:rgb(var(--neutral-light-rgb) / .55);position:relative;overflow:hidden}:is(.case-study .cs-figure__trigger:hover .cs-figure__media,.case-study .cs-figure__trigger:focus-visible .cs-figure__media){border-color:rgb(var(--neutral-dark-rgb) / .14)}.case-study .cs-figure__img{object-fit:cover;width:100%;height:100%;display:block}.case-study .cs-figure__media--natural{background:0 0}.case-study .cs-figure__media--natural .cs-figure__img{height:auto}.case-study .cs-figure__media--natural .cs-figure__placeholder{aspect-ratio:16/9;position:static}.case-study .cs-figure__placeholder{text-align:center;background-color:rgb(var(--neutral-light-rgb) / .55);background-image:radial-gradient(circle, rgb(var(--neutral-dark-rgb) / .05) 1px, transparent 1.5px);background-size:12px 12px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.25rem;display:flex;position:absolute;inset:0}.case-study .cs-figure__placeholder:before{content:"";border:1.5px dashed rgb(var(--neutral-dark-rgb) / .22);border-radius:var(--radius-sm);pointer-events:none;position:absolute;inset:10px}.case-study .cs-figure__slot{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink);letter-spacing:.02em}.case-study .cs-figure__desc{max-width:32ch;font-size:var(--text-xs);color:var(--color-muted);line-height:var(--leading-xs)}.case-study .cs-figure__placeholder--zoom .cs-figure__desc{font-size:var(--text-sm)}.case-study .cs-figure__ratio{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--color-muted);background:rgb(var(--neutral-light-rgb) / .7);border-radius:var(--radius-xs);padding:.1rem .4rem;position:absolute;top:10px;right:10px}.case-study .cs-figure__zoom{background:rgb(var(--neutral-dark-rgb) / .55);width:34px;height:34px;color:var(--gray-0);opacity:0;transition:opacity .2s ease, transform .2s var(--cs-ease);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:12px;right:12px;transform:translateY(4px)}.case-study .cs-figure__zoom svg{width:18px;height:18px}:is(.case-study .cs-figure__trigger:hover .cs-figure__zoom,.case-study .cs-figure__trigger:focus-visible .cs-figure__zoom){opacity:1;transform:none}.case-study .cs-figure__caption{font-size:var(--text-md);color:var(--color-muted);margin-top:.85rem;font-weight:500;line-height:1.55}.case-study .cs-carousel__track{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;width:100%;height:100%;display:flex;overflow-x:auto}.case-study .cs-carousel__track--dragging{scroll-snap-type:none}.case-study .cs-carousel__track--dragging .cs-carousel__slidebtn{cursor:grabbing}.case-study .cs-carousel__track::-webkit-scrollbar{display:none}.case-study .cs-carousel__slide{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;height:100%;position:relative}.case-study .cs-carousel__slidebtn{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.case-study .cs-carousel__slide .cs-figure__img{object-fit:cover;width:100%;height:100%}.case-study .cs-carousel--fit .cs-carousel__slide .cs-figure__img{object-fit:contain;padding:3%}.case-study .cs-carousel__arrow{z-index:2;cursor:pointer;background:0 0;border:0;place-items:center;width:clamp(52px,16%,110px);padding:0;display:grid;position:absolute;top:0;bottom:0}.case-study .cs-carousel__arrowchip{border:1px solid rgb(var(--neutral-dark-rgb) / .12);background:rgb(var(--neutral-light-rgb) / .92);width:38px;height:38px;color:var(--color-ink);box-shadow:0 2px 10px rgb(var(--neutral-dark-rgb) / .1);border-radius:50%;place-items:center;transition:opacity .16s,background .16s;display:grid}.case-study .cs-carousel__arrow svg{width:18px;height:18px}.case-study .cs-carousel__arrow--prev{left:0}.case-study .cs-carousel__arrow--next{right:0}.case-study .cs-carousel__arrow:hover .cs-carousel__arrowchip{background:var(--gray-0)}.case-study .cs-carousel__arrow:disabled{cursor:default}.case-study .cs-carousel__arrow:disabled .cs-carousel__arrowchip{opacity:.3}.case-study .cs-carousel__thumbs{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.85rem;display:flex}.case-study .cs-carousel__thumb{border:1px solid var(--color-line);border-radius:var(--radius-xs);background:rgb(var(--neutral-light-rgb) / .55);cursor:pointer;opacity:.55;height:52px;padding:0;transition:opacity .16s,border-color .16s;overflow:hidden}.case-study .cs-carousel__thumb:hover{opacity:.85}.case-study .cs-carousel__thumb--active{opacity:1;border-color:var(--color-ink)}.case-study .cs-carousel__thumb img{object-fit:cover;width:auto;max-width:96px;height:100%;display:block}.case-study .cs-carousel__thumb-ph{width:64px;height:100%;font-size:var(--text-xs);color:var(--color-muted);place-items:center;display:grid}.case-study .cs-carousel__caption{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;height:2lh;display:-webkit-box;overflow:hidden}.case-study .cs-lightbox{z-index:50;background:rgb(var(--neutral-dark-rgb) / .82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:clamp(.75rem,2vw,1.5rem);animation:.18s both csFade;display:grid;position:fixed;inset:0}.case-study .cs-lightbox__dialog{width:100%;animation:csZoomIn .2s var(--cs-ease) both;flex-direction:column;gap:.85rem;display:flex;position:relative}.case-study .cs-lightbox__frame{border-radius:var(--radius);border:1px solid rgb(var(--neutral-light-rgb) / .2);background:var(--color-bg-muted);touch-action:pan-y;width:100%;max-height:calc(100vh - 10rem);position:relative;overflow:hidden}.case-study .cs-lightbox__frame .cs-figure__img{object-fit:contain;width:100%;height:100%}.case-study .cs-lightbox__frame--natural{background:var(--page-bg,var(--color-bg));width:fit-content;max-width:100%;max-height:none;margin-inline:auto}.case-study .cs-lightbox__frame--natural .cs-figure__img{width:auto;max-width:100%;height:auto;max-height:calc(100vh - 10rem)}.case-study .cs-lightbox__frame--matte{--cs-matte-pad:clamp(.75rem, 2.5vw, 1.5rem);padding:var(--cs-matte-pad)}.case-study .cs-lightbox__frame--matte .cs-figure__img{max-height:calc(100vh - 10rem - 2 * var(--cs-matte-pad))}.case-study .cs-lightbox--multi .cs-lightbox__frame--matte .cs-figure__img{max-height:calc(100vh - 14rem - 2 * var(--cs-matte-pad))}.case-study .cs-lightbox__pan{transform-origin:0 0;will-change:transform}.case-study .cs-lightbox__frame--zoomable{cursor:zoom-in}.case-study .cs-lightbox__frame--zoomed{cursor:zoom-out}.case-study .cs-lightbox__frame:focus-visible{outline:2px solid var(--gray-0);outline-offset:2px}.case-study .cs-lightbox__frame--b-none{border:none}.case-study .cs-lightbox__frame--b-thick{border:3px solid var(--gray-200)}.case-study .cs-lightbox__frame--c-square{border-radius:0}.case-study .cs-lightbox__stage{justify-content:center;align-items:center;gap:.85rem;min-width:0;display:flex}.case-study .cs-lightbox__stage .cs-lightbox__frame{min-width:0}.case-study .cs-lightbox--multi .cs-lightbox__frame{max-height:calc(100vh - 14rem)}.case-study .cs-lightbox--multi .cs-lightbox__frame--natural{max-height:none}.case-study .cs-lightbox--multi .cs-lightbox__frame--natural .cs-figure__img{max-height:calc(100vh - 14rem)}.case-study .cs-lightbox__nav{border:1px solid rgb(var(--neutral-light-rgb) / .3);background:rgb(var(--neutral-light-rgb) / .08);width:40px;height:40px;color:var(--gray-0);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:grid}.case-study .cs-lightbox__nav:hover{background:rgb(var(--neutral-light-rgb) / .18)}.case-study .cs-lightbox__nav svg{width:20px;height:20px}.case-study .cs-lightbox__thumbs{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.case-study .cs-lightbox__thumb{border:1px solid rgb(var(--neutral-light-rgb) / .25);border-radius:var(--radius-xs);background:rgb(var(--neutral-light-rgb) / .08);cursor:pointer;opacity:.5;height:48px;padding:0;transition:opacity .16s,border-color .16s;overflow:hidden}.case-study .cs-lightbox__thumb:hover{opacity:.8}.case-study .cs-lightbox__thumb--active{opacity:1;border-color:rgb(var(--neutral-light-rgb) / .85)}.case-study .cs-lightbox__thumb img{object-fit:cover;width:auto;max-width:88px;height:100%;display:block}.case-study .cs-lightbox__thumb--logo{aspect-ratio:11/5;background:var(--gray-0);border-color:var(--gray-200);border-radius:var(--radius-xs);opacity:.6;place-items:center;display:grid}.case-study .cs-lightbox__thumb--logo:hover{opacity:.85}.case-study .cs-lightbox__thumb--logo.cs-lightbox__thumb--active{opacity:1;border-color:var(--gray-500);box-shadow:0 0 0 3px var(--gray-200)}.case-study .cs-lightbox__thumb--logo img{object-fit:contain;width:auto;max-width:72%;height:auto;max-height:62%}.case-study .cs-lightbox__thumb-ph{width:56px;height:100%;font-size:var(--text-xs);color:rgb(var(--neutral-light-rgb) / .7);place-items:center;display:grid}.case-study .cs-lightbox__caption{text-align:center;font-size:var(--text-md);color:rgb(var(--neutral-light-rgb) / .85);margin:0;font-weight:500}.case-study .cs-lightbox__close{border:1px solid rgb(var(--neutral-light-rgb) / .3);background:rgb(var(--neutral-light-rgb) / .08);width:40px;height:40px;color:var(--gray-0);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;top:-3rem;right:0}.case-study .cs-lightbox__close svg{width:20px;height:20px}.case-study .cs-lightbox__close:hover{background:rgb(var(--neutral-light-rgb) / .18)}@media (hover:none) and (pointer:coarse){.case-study .cs-lightbox{background:var(--page-bg,var(--color-bg));-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;display:block}.case-study .cs-lightbox__dialog{gap:0;height:100dvh}.case-study .cs-lightbox__stage{flex:auto;gap:0;min-height:0}.case-study .cs-lightbox__nav{display:none}.case-study .cs-lightbox__frame,.case-study .cs-lightbox__frame--natural,.case-study .cs-lightbox--multi .cs-lightbox__frame,.case-study .cs-lightbox--multi .cs-lightbox__frame--natural{touch-action:none;background:0 0;border:none;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;margin:0}.case-study .cs-lightbox__pan{width:100%;height:100%}.case-study .cs-lightbox__frame .cs-figure__img,.case-study .cs-lightbox__frame--natural .cs-figure__img,.case-study .cs-lightbox__frame--matte .cs-figure__img,.case-study .cs-lightbox--multi .cs-lightbox__frame--natural .cs-figure__img,.case-study .cs-lightbox--multi .cs-lightbox__frame--matte .cs-figure__img{object-fit:contain;width:100%;max-width:none;height:100%;max-height:none}.case-study .cs-lightbox__close{top:calc(env(safe-area-inset-top,0px) + .75rem);z-index:2;border-color:rgb(var(--neutral-dark-rgb) / .18);background:rgb(var(--neutral-dark-rgb) / .06);color:var(--color-ink);right:.75rem}.case-study .cs-lightbox__caption{font-size:var(--text-sm);color:var(--color-muted);padding:.5rem 1rem}.case-study .cs-lightbox__thumbs{padding:.5rem .75rem calc(env(safe-area-inset-bottom,0px) + .75rem);flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto}.case-study .cs-lightbox__thumb{border-color:rgb(var(--neutral-dark-rgb) / .2);background:rgb(var(--neutral-dark-rgb) / .05);flex:none}.case-study .cs-lightbox__thumb--active{border-color:var(--color-ink);box-shadow:0 0 0 1px var(--color-ink)}}@keyframes csFade{0%{opacity:0}to{opacity:1}}@keyframes csZoomIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}.case-study .cs-backlink{border:1px solid var(--color-line);border-radius:var(--radius-pill);color:var(--color-ink);font-family:var(--font-text);font-size:var(--text-lg);letter-spacing:var(--tracking-lg);white-space:nowrap;background:0 0;align-items:center;gap:.6em;margin-top:clamp(1.5rem,3.5vw,2.25rem);padding:13px 26px;font-weight:600;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s;display:inline-flex}:is(.case-study .cs-backlink:hover,.case-study .cs-backlink:focus-visible){border-color:var(--color-line-strong);background:rgb(var(--neutral-dark-rgb) / .02);color:var(--color-ink)}.case-study .cs-backlink:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.case-study .cs-backlink__arrow{width:1em;height:1em;color:var(--color-muted);flex:none;transition:color .22s,transform .26s}@keyframes csBackArrowDance{0%,to{transform:translate(0)}50%{transform:translate(-6px)}}:is(.case-study .cs-backlink:hover .cs-backlink__arrow,.case-study .cs-backlink:focus-visible .cs-backlink__arrow){color:var(--color-ink);animation:1s ease-in-out infinite csBackArrowDance}@media (prefers-reduced-motion:reduce){:is(.case-study .cs-backlink:hover .cs-backlink__arrow,.case-study .cs-backlink:focus-visible .cs-backlink__arrow){animation:none}}@media (width<=760px){.case-study .cs-meta{flex-direction:column;gap:1.75rem}.case-study .cs-meta__item+.cs-meta__item{border-left:0;padding-left:0}.case-study .cs-meta-band__inner{padding-block:1.75rem}.case-study .cs-meta-band .cs-meta__item{padding-block:0}.case-study .cs-hero-band__inner{flex-direction:column;align-items:stretch;gap:2rem}.case-study .cs-hero-band__copy{padding-bottom:0}.case-study .cs-hero-band__media{flex:none}}@media (prefers-reduced-motion:reduce){.case-study .cs-lightbox,.case-study .cs-lightbox__dialog{animation:none}.case-study .cs-sectionnav a,.case-study .cs-sectionnav a:before{transition:none}}.case-study .cs-twoup{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(1rem,2.5vw,1.75rem);display:grid}@media (width<=760px){.case-study .cs-twoup{grid-template-columns:1fr}}.case-study .cs-scrollshot{margin:0}.case-study .cs-scrollshot__frame{max-height:var(--cs-scrollshot-max,560px);border-radius:var(--radius);border:1px solid var(--color-line);background:rgb(var(--neutral-light-rgb) / .55);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgb(var(--neutral-dark-rgb) / .3) transparent;overflow:hidden auto}.case-study .cs-scrollshot__frame::-webkit-scrollbar{width:12px}.case-study .cs-scrollshot__frame::-webkit-scrollbar-track{background:rgb(var(--neutral-dark-rgb) / .04)}.case-study .cs-scrollshot__frame::-webkit-scrollbar-thumb{background-color:rgb(var(--neutral-dark-rgb) / .28);background-clip:padding-box;border:4px solid #0000;border-radius:999px}.case-study .cs-scrollshot__frame::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--neutral-dark-rgb) / .45)}.case-study .cs-scrollshot__frame::-webkit-scrollbar-thumb:active{background-color:rgb(var(--neutral-dark-rgb) / .45)}.case-study .cs-scrollshot__frame:focus-visible{outline:2px solid rgb(var(--neutral-dark-rgb) / .4);outline-offset:2px}.case-study .cs-scrollshot__frame img{width:100%;height:auto;display:block}.case-study .cs-scrollshot--phone .cs-scrollshot__frame{max-width:300px;margin-inline:auto}.case-study .cs-scrollshot--w-text{max-width:var(--cs-text,var(--cs-measure));margin-inline:auto}.case-study .cs-scrollshot--b-none .cs-scrollshot__frame{border:none}.case-study .cs-scrollshot--b-thick .cs-scrollshot__frame{border:3px solid var(--gray-200)}.case-study .cs-scrollshot--c-square .cs-scrollshot__frame{border-radius:0}.case-study .cs-highlight{margin-block:var(--space-8);background:var(--gray-0);border:1px solid rgb(var(--neutral-dark-rgb) / var(--alpha-4));border-radius:0 var(--radius) var(--radius) 0;border-left:0;padding:clamp(1.25rem,3vw,1.75rem) clamp(1.5rem,3vw,2rem);position:relative}.case-study .cs-highlight:before{content:"";background:var(--flood-gradient);width:3px;position:absolute;top:0;bottom:0;left:0}.case-study .cs-highlight__text{font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl);color:var(--gray-800);margin:0;font-weight:500;line-height:1.45}.case-study .cs-verdict-chip{vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;width:2.3em;height:2.3em;margin-left:.1em;display:inline-flex}.case-study .cs-verdict-chip svg{width:1.05em;height:1.05em}.case-study .cs-verdict-chip--no{color:#c0402f;background:#faeae8}.case-study .cs-verdict-chip--yes{color:#3d8b44;background:#e9f4e9}.case-study .cs-verdict-chip--mixed{color:#b3860f;background:#fbf1da}.case-study .cs-verdict-chip--mixed svg{transform:rotate(90deg)}.case-study .cs-quote{--q-pad-y:clamp(1.4rem, 2.8vw, 1.9rem);--q-pad-x:clamp(1.5rem, 3vw, 2rem);margin:0;margin-block:var(--space-8);background:var(--gray-100);border-radius:14px;grid-template-columns:auto minmax(0,1fr);display:grid;overflow:hidden}.case-study .cs-quote__media{background:color-mix(in srgb, var(--gray-200) 55%, var(--gray-100));grid-area:1/1/span 2;place-items:center;width:clamp(76px,12vw,116px);display:grid}.case-study .cs-quote__icon{width:clamp(29px,4vw,37px);height:auto;color:var(--color-nav)}.case-study .cs-quote__text{padding:var(--q-pad-y) var(--q-pad-x) 0;font-size:var(--text-3xl);letter-spacing:var(--tracking-3xl);color:var(--color-ink);grid-column:2;margin:0;font-weight:500;line-height:1.45}.case-study .cs-quote__text:last-child{padding-bottom:var(--q-pad-y)}.case-study .cs-quote__attr{padding:0 var(--q-pad-x) var(--q-pad-y);font-size:var(--text-sm);color:var(--color-muted);grid-column:2;margin:.9rem 0 0;font-weight:500}.case-study .cs-takeaways{margin:0;padding:0;list-style:none}.case-study .cs-takeaways__item{border-top:1px solid var(--color-line);grid-template-columns:3rem 1fr;gap:.5rem;padding-block:clamp(1.4rem,2.5vw,1.9rem);display:grid}.case-study .cs-takeaways__num{font-size:var(--text-md);color:var(--color-muted);margin:0;line-height:1.6}.case-study .cs-takeaways__title{font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl);line-height:var(--leading-2xl);margin:0 0 .45rem}.case-study .cs-takeaways__body{font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-text);margin:0}.case-study .cs-beforeafter{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(1rem,2.5vw,1.75rem);width:100%;display:grid}.case-study .cs-beforeafter__pane{min-width:0;margin:0}.case-study .cs-beforeafter__frame .cs-figure__img{object-fit:cover;width:100%;height:100%}.case-study .cs-beforeafter__badge{width:fit-content;font-size:var(--text-3xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-bg);background:var(--color-ink);border-radius:var(--radius-xs);margin:0 auto .6rem;padding:.12rem .45rem;font-weight:500;display:block}@media (width<=760px){.case-study .cs-beforeafter{grid-template-columns:1fr}}.case-study .cs-themeswitch__logos{width:100%;max-width:var(--cs-text,var(--cs-measure));margin-inline:auto;grid-template-columns:repeat(5,1fr);gap:clamp(.5rem,1.4vw,.85rem);margin-bottom:1.1rem;display:grid}.case-study .cs-themeswitch__logo{aspect-ratio:11/5;border:1px solid var(--gray-200);border-radius:var(--radius);background:var(--gray-0);cursor:pointer;place-items:center;padding:0;transition:border-color .16s,box-shadow .16s;display:grid}.case-study .cs-themeswitch__logo:hover{border-color:var(--gray-350)}.case-study .cs-themeswitch__logo--active{border-color:var(--gray-500);box-shadow:0 0 0 4px var(--gray-200)}.case-study .cs-themeswitch__logo img{width:auto;max-width:72%;height:auto;max-height:62%;display:block}.case-study .cs-themeswitch__logo-label{font-size:var(--text-xs);color:var(--color-ink)}@media (width<=640px){.case-study .cs-themeswitch__logo{border-radius:var(--radius-xs)}.case-study .cs-themeswitch__logo--active{box-shadow:0 0 0 3px var(--gray-200)}}.case-study .cs-themeswitch__slide{opacity:0;position:absolute;inset:0}.case-study .cs-themeswitch__slide--active{opacity:1}.case-study .cs-themeswitch__slide .cs-figure__img{object-fit:contain;width:100%;height:100%}.case-study .cs-themeswitch__caption{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;height:2lh;display:-webkit-box;overflow:hidden}.case-study .cs-endnav{border-top:1px solid var(--color-line);margin-top:clamp(4.5rem,10vw,8rem);padding-top:clamp(3.25rem,7vw,5.5rem);padding-bottom:clamp(2rem,4.5vw,3.5rem)}.case-study .cs-next__label{margin:0 0 clamp(1.1rem,2.4vw,1.6rem)}.case-study .cs-nextcard{background:var(--color-panel);border:1px solid var(--color-line);color:var(--color-text);border-radius:14px;grid-template-columns:minmax(0,300px) minmax(0,1fr);text-decoration:none;transition:border-color .2s,background-color .2s;display:grid;overflow:hidden}:is(.case-study a.cs-nextcard:hover,.case-study a.cs-nextcard:focus-visible){border-color:var(--color-line-strong);background:color-mix(in srgb, rgb(var(--neutral-light-rgb)) 2.5%, var(--color-panel))}.case-study .cs-nextcard__media{background:0 0;align-self:stretch;min-height:170px;overflow:hidden}.case-study .cs-nextcard__media--empty{background-image:radial-gradient(circle, rgb(var(--neutral-light-rgb) / var(--alpha-16)) 1.5px, transparent 2px);background-size:18px 18px}.case-study .cs-nextcard__img{object-fit:contain;width:100%;height:100%;display:block}.case-study .cs-nextcard__body{align-self:center;min-width:0;padding:clamp(1.25rem,2.6vw,1.75rem) clamp(1.25rem,2.8vw,2rem)}.case-study .cs-nextcard__title{font-size:var(--text-2xl);letter-spacing:var(--tracking-2xl);margin:0 0 .45rem}.case-study .cs-nextcard__subtitle{font-size:var(--text-md);line-height:var(--leading-md);color:var(--color-text);max-width:56ch;margin:0}.case-study .cs-nextcard__cta{font-size:var(--text-md);font-weight:500;line-height:var(--leading-md);color:var(--color-ink);align-items:center;gap:.5em;margin-top:clamp(.7rem,1.6vw,1rem);display:inline-flex}.case-study .cs-nextcard__arrow{width:.8em;height:.8em;color:var(--color-muted);flex:none;transition:color .22s,transform .26s}:is(.case-study a.cs-nextcard:hover .cs-nextcard__arrow,.case-study a.cs-nextcard:focus-visible .cs-nextcard__arrow){color:var(--color-ink);animation:1s ease-in-out infinite projectArrowDance}@media (prefers-reduced-motion:reduce){:is(.case-study a.cs-nextcard:hover .cs-nextcard__arrow,.case-study a.cs-nextcard:focus-visible .cs-nextcard__arrow){animation:none}}.case-study .cs-nextcard__status{font-size:var(--text-md);color:var(--color-muted);margin-top:clamp(.7rem,1.6vw,1rem);display:inline-block}@media (width<=640px){.case-study .cs-nextcard{grid-template-columns:minmax(0,1fr)}.case-study .cs-nextcard__media{aspect-ratio:16/9;align-self:auto}}.case-study.cs-centered{--cs-text:840px;--cs-rail-w:248px;--cs-rail-break:1360px}.case-study .cs-body{margin-inline:var(--nav-frame-gutter);border-inline:1px solid var(--cs-arch-line);border-bottom:1px solid var(--cs-arch-line);display:block}@media (width>=1360px){.case-study.cs-centered .cs-body{grid-template-columns:var(--cs-rail-w) minmax(0, 1fr);display:grid}}@media (width>=761px){.case-study{background:linear-gradient(rgb(var(--neutral-dark-rgb) / .015), rgb(var(--neutral-dark-rgb) / .015)) left / var(--nav-frame-gutter) 100% no-repeat, linear-gradient(rgb(var(--neutral-dark-rgb) / .015), rgb(var(--neutral-dark-rgb) / .015)) right / var(--nav-frame-gutter) 100% no-repeat}main:has(.case-study)+.site-footer{background:linear-gradient(rgb(var(--neutral-dark-rgb) / .015), rgb(var(--neutral-dark-rgb) / .015)) left / max(var(--footer-gutter), calc((100% - var(--footer-frame-max)) / 2)) 100% no-repeat, linear-gradient(rgb(var(--neutral-dark-rgb) / .015), rgb(var(--neutral-dark-rgb) / .015)) right / max(var(--footer-gutter), calc((100% - var(--footer-frame-max)) / 2)) 100% no-repeat}}.case-study .cs-rail{min-width:0}@media (width>=1360px){.case-study.cs-centered .cs-rail{border-right:1px solid var(--cs-arch-line)}}@media (width<=1359.98px){.case-study.cs-centered .cs-rail .cs-sectionnav{display:none}}.case-study .cs-main{min-width:0}.case-study.cs-centered .cs-section__inner,.case-study.cs-centered .cs-section__inner--wide,.case-study.cs-centered .cs-section__inner--narrow{width:100%}.case-study.cs-centered .cs-prose{max-width:var(--cs-text);text-align:left;margin-inline:auto}.case-study.cs-centered .cs-header{text-align:left}.case-study.cs-centered .cs-header__title{max-width:var(--cs-text);margin-inline:auto}.case-study.cs-centered .cs-figure__caption{text-align:center}.case-study.cs-centered .cs-hero__title{-webkit-text-fill-color:var(--color-ink);color:var(--color-ink);font-size:var(--text-6xl);background:0 0;margin-bottom:1rem;padding-bottom:.08em;line-height:1.2}.case-study.cs-centered .cs-hero__title[data-rv=pending],.case-study.cs-centered .cs-hero__title[data-rv=in]{-webkit-text-fill-color:currentColor}.case-study.cs-centered .cs-hero__title[data-rv=pending]{color:var(--rv-tint)}.case-study.cs-centered .cs-endnav{max-width:var(--cs-text);text-align:left;margin-inline:auto}.case-study.cs-centered .cs-quote,.case-study.cs-centered .cs-highlight,.case-study.cs-centered .cs-takeaways{max-width:var(--cs-text);margin-inline:auto}.case-study.cs-centered .cs-sectionnav{top:var(--header-h,78px);width:auto;min-height:calc(100vh - var(--header-h,78px));flex-direction:column;padding:1.5rem .75rem .75rem;display:flex;position:sticky;left:auto;transform:none}.case-study.cs-centered .cs-sectionnav a{font-family:var(--font-text);font-size:var(--text-md);color:var(--color-nav);border-radius:var(--radius-sm);padding:.55rem 1rem;font-weight:500;line-height:1.55;transition:color .18s,background-color .18s}.case-study.cs-centered .cs-sectionnav ul{border-left:0;flex-direction:column;gap:.125rem;padding-left:0;display:flex}.case-study.cs-centered .cs-sectionnav a:before{display:none}.case-study.cs-centered .cs-sectionnav a:hover{color:var(--color-link);background:rgb(var(--neutral-dark-rgb) / var(--alpha-4))}.case-study.cs-centered .cs-sectionnav a.is-active{color:var(--color-ink);background:0 0}.case-study.cs-centered .cs-sectionnav a.is-active:before{content:"";background:var(--color-ink);opacity:1;width:3px;display:block;position:absolute;top:0;bottom:0;left:calc(-.75rem - 2px)}.case-study .cs-sectionnav__label{font-size:var(--text-3xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0 0 .6rem 1rem}.case-study.cs-centered .cs-sectionnav__label{font-size:var(--text-3xs);letter-spacing:.06em;font-weight:600;line-height:var(--leading-3xs);color:var(--gray-500);margin:0 0 .7rem 1rem}.case-study.cs-centered .cs-sectionnav__top{border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--color-nav);font-family:var(--font-text);font-size:var(--text-md);background:0 0;border:0;justify-content:flex-start;align-items:center;gap:.5rem;margin-top:auto;padding:.85rem 1rem;font-weight:500;transition:color .18s,background-color .18s;display:flex}.case-study.cs-centered .cs-sectionnav__top svg{width:16px;height:16px}.case-study.cs-centered .cs-sectionnav__top:hover{color:var(--color-link);background:rgb(var(--neutral-dark-rgb) / var(--alpha-4))}.cs-sectionnav-float{display:none}@media (width<=1359.98px){.case-study.cs-centered .cs-sectionnav-float{z-index:30;width:max-content;max-width:calc(100vw - 2rem);margin-inline:auto;transition:opacity .25s,transform .25s;display:block;position:fixed;bottom:clamp(16px,4vw,28px);left:0;right:0}.case-study.cs-centered .cs-sectionnav-float.is-hidden{opacity:0;pointer-events:none;transform:translateY(10px)}}.cs-sectionnav-float__toggle{border:1px solid var(--color-line);background:rgb(var(--neutral-light-rgb) / .92);-webkit-backdrop-filter:blur(10px);color:var(--color-ink);font-size:var(--text-sm);cursor:pointer;border-radius:999px;align-items:center;gap:.55rem;padding:.6rem 1.1rem;font-weight:600;display:inline-flex;box-shadow:0 10px 30px #00000024}.cs-sectionnav-float__toggle svg{flex:none;width:16px;height:16px}.cs-sectionnav-float__chev{transition:transform .2s var(--cs-ease)}.cs-sectionnav-float.is-open .cs-sectionnav-float__chev{transform:rotate(180deg)}.cs-sectionnav-float__panel{border-radius:var(--radius-lg);border:1px solid var(--color-line);background:rgb(var(--neutral-light-rgb) / .98);-webkit-backdrop-filter:blur(12px);min-width:220px;max-height:60vh;padding:.4rem;animation:.16s both csFade;position:absolute;bottom:calc(100% + .5rem);left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 18px 44px #0000002e}.cs-sectionnav-float__panel ul{margin:0;padding:0;list-style:none}.cs-sectionnav-float__panel a{color:var(--color-nav);font-size:var(--text-sm);border-radius:11px;padding:.6rem .9rem;line-height:1.3;text-decoration:none;transition:color .18s,background-color .18s;display:block}.cs-sectionnav-float__panel a:hover{color:var(--color-link);background:rgb(var(--neutral-dark-rgb) / var(--alpha-4))}.cs-sectionnav-float__panel a.is-active{color:var(--color-ink);background:var(--color-bg-muted)}.case-study.cs-centered .cs-sectionnav-float__panel .cs-sectionnav__top{border-top:1px solid var(--color-line);width:100%;font-size:var(--text-sm);margin-top:.3rem;padding:.7rem .9rem}.case-study.cs-centered [data-reveal~=text][data-rv=pending],.case-study.cs-centered [data-reveal~=text][data-rv=pending] *{color:var(--rv-tint)}.case-study.cs-centered [data-reveal~=text][data-rv=in]{transition:-webkit-mask-position .42s var(--rv-ease-draw) var(--rv-d,0s), mask-position .42s var(--rv-ease-draw) var(--rv-d,0s), color .4s ease-out calc(var(--rv-d,0s) + .14s)}.case-study.cs-centered [data-reveal~=text][data-rv=in] *{transition:color .4s ease-out calc(var(--rv-d,0s) + .14s)}@media (width<=760px){.case-study .cs-meta-band__inner{padding-inline:var(--nav-frame-gutter);border-inline:0;margin-inline:0}.case-study .cs-body{border-inline:0;margin-inline:0}.case-study .cs-meta-band__inner[data-reveal]:before,.case-study .cs-meta-band__inner[data-reveal]:after,.case-study .cs-body[data-reveal]:before,.case-study .cs-body[data-reveal]:after{content:none}.case-study .cs-section{padding-inline:var(--nav-frame-gutter)}.case-study .cs-rule{margin-inline:calc(-1 * var(--nav-frame-gutter))}}.gallery,.gx-overlay{--gallery-ground:#0d0d11}.gallery{--arch-line:var(--color-line-strong);--gallery-pad:clamp(1rem, 2.6vw, 2.25rem);--tab-pad-x:clamp(.8rem, 1.5vw, 1.25rem);padding-block:clamp(2rem,5vw,3.5rem) 0;overflow-x:clip}.gallery__frame{width:min(100% - 2 * var(--home-frame-pad), var(--home-frame-max));border-inline:1px solid var(--arch-line);margin-inline:auto}.gallery__head{padding:clamp(3rem, 5.5vw, 5rem) var(--gallery-pad);text-align:center;flex-direction:column;justify-content:center;display:flex;position:relative}.gallery__title{font-family:var(--font-display);font-size:var(--text-6xl);letter-spacing:var(--tracking-6xl);color:var(--color-ink);margin:0 0 clamp(.9rem,1.6vw,1.25rem);font-weight:600;line-height:1.04}.gallery__lede{max-width:56ch;font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--color-muted);margin:0 auto}.gallery__toolbar{padding:clamp(1.25rem, 2.8vw, 2rem) var(--gallery-pad);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex}.gallery__tab{isolation:isolate;padding:.7rem var(--tab-pad-x);font-family:var(--font-text);font-size:var(--text-sm);color:var(--color-nav);cursor:pointer;background:0 0;border:0;align-items:center;margin:0;font-weight:500;transition:color .18s;display:inline-flex;position:relative}.gallery__tab:before{content:"";z-index:-1;background:radial-gradient(100px circle at var(--mx,50%) var(--my,50%), var(--hover-spot-core), var(--hover-spot-edge) 45%, transparent 75%);opacity:0;pointer-events:none;border-radius:8px;transition:opacity .2s;position:absolute;inset:0}.gallery__tab:hover:before{opacity:1}.gallery__tab:hover{color:var(--color-link)}.gallery__tab.is-active{color:var(--color-nav-active)}.gallery__tab:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px;border-radius:4px}.gallery__grid{padding:0 var(--gallery-pad) var(--gallery-pad);gap:var(--gallery-pad);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;list-style:none;display:grid}.gallery-card{margin:0}.gallery-card__btn{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:.85rem;padding:0;display:flex}.gallery-card__media{isolation:isolate;aspect-ratio:1;background:var(--thumb-bg,var(--gallery-ground));display:block;position:relative;overflow:hidden}.gx-img--pixel{image-rendering:pixelated}.gallery-card__media .gx-img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.gallery-card__btn:focus-visible{outline:none}.gallery-card__btn:focus-visible .gallery-card__media{outline:2px solid var(--color-ink);outline-offset:3px}.gallery-card__icon{z-index:2;border-radius:var(--radius-pill);color:var(--gray-100);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000080;align-items:center;gap:4px;padding:4px 7px;display:inline-flex;position:absolute;bottom:8px;right:8px}.gallery-card__icon svg{width:14px;height:14px}.gallery-card__count{font-size:var(--text-4xs);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.gallery-card__meta{flex-direction:column;gap:3px;display:flex}.gallery-card__title{font-family:var(--font-display);font-size:var(--text-md);letter-spacing:var(--tracking-md);color:var(--color-ink);font-weight:600;line-height:1.2}.gallery-card__sub{font-size:var(--text-xs);color:var(--color-muted);line-height:1.4}.gallery-card__arrow{vertical-align:middle;width:.72em;height:.72em;color:var(--color-ink);opacity:0;margin-left:.28em;transition:opacity .2s;display:inline-block}:is(.gallery-card__btn:hover .gallery-card__arrow,.gallery-card__btn:focus-visible .gallery-card__arrow){opacity:1;animation:1s ease-in-out infinite galleryCardArrow}@keyframes galleryCardArrow{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@media (width<=1040px){.gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.gx-overlay{z-index:80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b8;place-items:center;padding:clamp(.75rem,3vw,2.5rem);animation:.2s both gxFade;display:grid;position:fixed;inset:0}@keyframes gxFade{0%{opacity:0}to{opacity:1}}.gx-dialog{border-radius:var(--radius-lg);border:1px solid var(--color-line);background:var(--color-panel);grid-template-columns:minmax(0,1fr) minmax(300px,400px);align-items:start;gap:clamp(1.25rem,2.5vw,2rem);width:min(1480px,95vw);max-height:94vh;padding:clamp(1.4rem,2.8vw,2.25rem);animation:.24s cubic-bezier(.22,1,.36,1) both gxPop;display:grid;position:relative;overflow:hidden;box-shadow:0 40px 120px #0009}@keyframes gxPop{0%{opacity:0;transform:translateY(12px)scale(.99)}to{opacity:1;transform:none}}.gx-media-col{flex-direction:column;align-items:center;min-width:0;display:flex}.gx-frame{aspect-ratio:1;border-radius:var(--radius);touch-action:pan-y;background:0 0;width:min(100%,94vh - 80px);position:relative;overflow:hidden}.gx-media-col:has(.gx-thumbs) .gx-frame:not(.gx-frame--wide){width:min(100%,94vh - 180px)}.gx-frame .gx-img{object-fit:contain;object-position:center;width:100%;height:100%;position:absolute;inset:0}.gx-frame--wide{aspect-ratio:16/9;width:100%}.gx-zone{z-index:3;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;width:33.333%;padding:0 12px;display:flex;position:absolute;top:0;bottom:0}.gx-zone--prev{justify-content:flex-start;left:0}.gx-zone--next{justify-content:flex-end;right:0}.gx-zone__btn{width:44px;height:44px;color:var(--gray-0);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;background:#00000080;border-radius:50%;place-items:center;transition:opacity .18s,background-color .18s,transform .18s;display:grid}.gx-zone--prev .gx-zone__btn{transform:translate(-6px)}.gx-zone--next .gx-zone__btn{transform:translate(6px)}:is(.gx-zone:hover .gx-zone__btn,.gx-zone:focus-visible .gx-zone__btn){opacity:1;background:#000000b8;transform:translate(0)}.gx-zone:focus-visible{outline:none}.gx-zone:focus-visible .gx-zone__btn{outline:2px solid var(--gray-0);outline-offset:2px}.gx-zone__btn svg{width:22px;height:22px}.gx-close{z-index:5;width:40px;height:40px;color:var(--color-ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000080;border:0;border-radius:50%;place-items:center;transition:background-color .18s,color .18s;display:grid;position:absolute;top:12px;right:12px}.gx-close svg{width:20px;height:20px}.gx-close:hover{color:var(--gray-0);background:#000000b8}.gx-close:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.gx-thumbs{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin-top:14px;display:flex}.gx-thumb{border-radius:var(--radius-sm);background:var(--gallery-ground);cursor:pointer;opacity:.4;border:0;width:60px;height:60px;padding:0;transition:opacity .16s;position:relative;overflow:hidden}.gx-thumb .gx-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.gx-thumb:hover{opacity:.75}.gx-thumb.is-active{opacity:1}.gx-thumb:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.gx-counter{font-size:var(--text-xs);color:var(--color-muted);font-variant-numeric:tabular-nums;text-align:center;margin:12px 0 0}.gx-info{min-width:0;max-height:70vh;padding-top:clamp(.5rem,1.8vw,1.5rem);padding-right:clamp(.85rem,1.8vw,1.5rem);overflow-y:auto}.gx-info__title{font-family:var(--font-display);font-size:var(--text-4xl);letter-spacing:var(--tracking-4xl);color:var(--color-ink);margin:0 0 6px;padding-right:2.75rem;font-weight:600;line-height:1.15}.gx-info__meta{font-size:var(--text-sm);color:var(--color-muted);margin:0 0 1.35rem}.gx-info__desc{font-size:var(--text-md);line-height:var(--leading-md);color:var(--color-text);margin:0 0 1.5rem}.gx-info__specs{margin:0 0 1.5rem}.gx-info__spec{border-top:1px solid var(--color-line);flex-direction:column;gap:2px;padding:.7rem 0;display:flex}.gx-info__spec dt{font-size:var(--text-xs);color:var(--color-muted)}.gx-info__spec dd{font-size:var(--text-md);color:var(--color-ink);margin:0;font-weight:500}.gx-info__tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.gx-info__tags li{font-size:var(--text-xs);color:var(--color-text);border:1px solid var(--color-line);border-radius:var(--radius-pill);padding:4px 12px}@media (width<=860px){.gx-dialog{grid-template-columns:1fr;max-height:94vh;overflow-y:auto}.gx-info{max-height:none;overflow:visible}}@media (prefers-reduced-motion:reduce){.gallery-card__arrow,.gx-overlay,.gx-dialog{animation:none}.gx-zone__btn{transition:none}}.resume-page{--resume-ink:var(--gray-900);--resume-text:var(--gray-800);--resume-muted:var(--gray-500);--resume-line:var(--gray-200);padding-block:clamp(2rem,5vw,3.5rem) clamp(4.5rem,9vw,8rem);padding-inline:var(--space-page)}.resume-toolbar{justify-content:flex-end;max-width:8.5in;margin:0 auto 20px;display:flex}.resume-dl{padding:12px 24px;font-size:16px}:is(.resume-dl:hover svg,.resume-dl:focus-visible svg){transform:translateY(2px)}.resume-sheet{background:var(--gray-0);border:1px solid var(--resume-line);width:100%;max-width:8.5in;color:var(--resume-text);font-family:var(--font-text);border-radius:8px;margin:0 auto;padding:.62in .66in .6in;font-size:10.5px;line-height:1.5;box-shadow:0 4px 14px #1118270a}.resume-sheet a{color:inherit;text-decoration:none}.resume-head{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.resume-head__id{min-width:0}.resume-logo{background:var(--resume-ink);width:36px;height:26.07px;margin-bottom:14px;display:block;-webkit-mask:url(/assets/images/logo.svg) 0/contain no-repeat;mask:url(/assets/images/logo.svg) 0/contain no-repeat}.resume-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--resume-ink);margin:0;font-size:28px;font-weight:700;line-height:1.05}.resume-role{letter-spacing:.01em;color:var(--gray-700);margin:5px 0 0;font-size:12px;font-weight:500}.resume-contact{text-align:right;color:var(--resume-muted);flex:none;font-size:10px;font-style:normal;line-height:1.7}.resume-contact a{display:block}.resume-contact a:hover{color:var(--resume-ink);text-decoration:underline}.resume-rule{background:var(--resume-line);border:0;height:1px;margin:16px 0 0}.resume-section{margin-top:16px}.resume-section__title{font-family:var(--font-text);letter-spacing:0;color:var(--resume-muted);align-items:center;gap:12px;margin:0 0 9px;font-size:14px;font-weight:600;display:flex}.resume-section__title:after{content:"";background:var(--resume-line);flex:1;height:1px}.resume-summary{margin:0;font-size:11px;line-height:1.55}.resume-job{margin-bottom:12px}.resume-job:last-child{margin-bottom:0}.resume-job__head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:5px;display:flex}.resume-job__org{font-family:var(--font-text);letter-spacing:0;color:var(--resume-ink);margin:0;font-size:13px;font-weight:700}.resume-job__title{font-family:var(--font-text);letter-spacing:0;color:var(--resume-ink);font-size:11.5px;font-weight:500}.resume-job__meta{color:var(--resume-muted);white-space:nowrap;flex:none;font-size:10px}.resume-job__bullets{margin:0;padding:0 0 0 15px}.resume-job__bullets li{margin:0 0 2.5px;padding-left:2px;line-height:1.45}.resume-job__bullets li::marker{color:var(--gray-500)}.resume-kv{grid-template-columns:88px 1fr;gap:4px 14px;margin:0;display:grid}.resume-kv dt{letter-spacing:0;color:var(--resume-ink);font-size:11.5px;font-weight:500}.resume-kv dd{margin:0;line-height:1.5}.resume-edu{margin:0}.resume-edu__row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.resume-edu__row+.resume-edu__row{margin-top:5px}.resume-edu__what{margin:0}.resume-edu__school{color:var(--resume-ink);font-weight:600}.resume-edu__dates{color:var(--resume-muted);white-space:nowrap;flex:none;font-size:10px}@media (width<=640px){.resume-page{padding-block:1.5rem 4rem}.resume-toolbar{margin-bottom:16px}.resume-sheet{padding:30px 22px 34px;font-size:12px}.resume-head{flex-direction:column;align-items:flex-start;gap:14px}.resume-contact{text-align:left;font-size:11.5px}.resume-summary{font-size:12.5px}.resume-job__head{display:block}.resume-job__title{font-size:12.5px}.resume-job__meta{white-space:normal;margin-top:2px;display:block}.resume-job__bullets li{margin-bottom:4px}.resume-kv{grid-template-columns:1fr;gap:3px 0}.resume-kv dt{font-size:12.5px}.resume-kv dt:not(:first-child){margin-top:10px}.resume-edu__row{flex-direction:column;align-items:flex-start;gap:2px}.resume-edu__row+.resume-edu__row{margin-top:10px}.resume-edu__dates{font-size:11px}}[data-reveal]{--rv-tint:hsl(var(--rv-hue,222) var(--rv-tint-s,90%) var(--rv-tint-l,66%))}:root{--rv-ease-draw:cubic-bezier(.65, 0, .2, 1);--rv-ease-rise:cubic-bezier(.22, 1, .36, 1)}[data-reveal~=text][data-rv=pending],[data-reveal~=text][data-rv=in]{-webkit-mask-image:linear-gradient(100deg,#000 0% 30%,#0000 45% 100%);mask-image:linear-gradient(100deg,#000 0% 30%,#0000 45% 100%);-webkit-mask-size:400% 100%;mask-size:400% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[data-reveal~=text][data-rv=pending]{color:var(--rv-tint);-webkit-mask-position:100% 0;mask-position:100% 0}[data-reveal~=text][data-rv=in]{transition:-webkit-mask-position .42s var(--rv-ease-draw) var(--rv-d,0s), mask-position .42s var(--rv-ease-draw) var(--rv-d,0s), color .4s ease-out calc(var(--rv-d,0s) + .14s);-webkit-mask-position:0 0;mask-position:0 0}[data-reveal~=line]{transform-origin:0}[data-reveal~=line][data-rv=pending]{border-color:var(--rv-line-draw,currentColor);transform:scaleX(0)}[data-reveal~=line][data-rv=in]{transition:transform .56s var(--rv-ease-draw) var(--rv-d,0s), border-color .42s ease calc(var(--rv-d,0s) + .26s);transform:scaleX(1)}[data-reveal~=rule]:after,[data-reveal~=cell]:after{transform-origin:0}[data-reveal~=rule][data-rv=pending]:after{border-top-color:var(--rv-line-draw,currentColor);transform:translate(-50%)scaleX(0)}[data-reveal~=rule][data-rv=in]:after{transition:transform .56s var(--rv-ease-draw) var(--rv-d,0s), border-top-color .42s ease calc(var(--rv-d,0s) + .26s);transform:translate(-50%)scaleX(1)}[data-reveal~=cell][data-rv=pending]{border-inline-color:#0000}[data-reveal~=cell][data-rv=in]{transition:border-color .42s ease calc(var(--rv-d,0s) + var(--rv-dur,.6s) - .22s)}[data-reveal~=cell][data-rv=pending]:before,[data-reveal~=cell][data-rv=in]:before{content:"";background:linear-gradient(var(--rv-line-draw,currentColor), var(--rv-line-draw,currentColor)) left top / 1px 100% no-repeat, linear-gradient(var(--rv-line-draw,currentColor), var(--rv-line-draw,currentColor)) right top / 1px 100% no-repeat;transform-origin:top;pointer-events:none;position:absolute;inset:0 -1px}[data-reveal~=cell][data-rv=pending]:before{transform:scaleY(0)}[data-reveal~=cell][data-rv=in]:before{opacity:0;transition:transform var(--rv-dur,.6s) linear var(--rv-d,0s), opacity .4s ease calc(var(--rv-d,0s) + var(--rv-dur,.6s) - .1s);transform:scaleY(1)}[data-reveal~=cell][data-rv=pending]:after{border-top-color:var(--rv-line-draw,currentColor);transform:translate(-50%)scaleX(0)}[data-reveal~=cell][data-rv=in]:after{transition:transform .56s var(--rv-ease-draw) calc(var(--rv-d,0s) + var(--rv-dur,.6s)), border-top-color .42s ease calc(var(--rv-d,0s) + var(--rv-dur,.6s) + .26s);transform:translate(-50%)scaleX(1)}[data-reveal~=frame]{position:relative}[data-reveal~=frame][data-rv=pending]{border-color:#0000}[data-reveal~=frame][data-rv=in]{transition:border-color .42s ease calc(var(--rv-d,0s) + var(--rv-dur,.7s) - .22s)}[data-reveal~=frame][data-rv=pending]:before,[data-reveal~=frame][data-rv=pending]:after,[data-reveal~=frame][data-rv=in]:before,[data-reveal~=frame][data-rv=in]:after{content:"";background:var(--rv-line-draw,currentColor);transform-origin:top;pointer-events:none;width:1px;position:absolute;top:0;bottom:0}[data-reveal~=frame][data-rv=pending]:before,[data-reveal~=frame][data-rv=in]:before{left:-1px}[data-reveal~=frame][data-rv=pending]:after,[data-reveal~=frame][data-rv=in]:after{right:-1px}[data-reveal~=frame][data-rv=pending]:before,[data-reveal~=frame][data-rv=pending]:after{transform:scaleY(0)}[data-reveal~=frame][data-rv=in]:before,[data-reveal~=frame][data-rv=in]:after{opacity:0;transition:transform var(--rv-dur,.7s) linear var(--rv-d,0s), opacity .4s ease calc(var(--rv-d,0s) + var(--rv-dur,.7s) - .1s);transform:scaleY(1)}[data-reveal~=fade][data-rv=pending]{opacity:0;transform:translateY(12px)}[data-reveal~=fade][data-rv=in]{opacity:1;transition:opacity .4s ease var(--rv-d,0s), transform .44s var(--rv-ease-rise) var(--rv-d,0s);transform:translateY(0)}@media (prefers-reduced-motion:reduce),print{[data-reveal][data-rv]{opacity:1!important;transition:none!important;transform:none!important;-webkit-mask:none!important;mask:none!important}[data-reveal~=rule][data-rv]:after,[data-reveal~=cell][data-rv]:after{transition:none!important;transform:translate(-50%)!important}[data-reveal~=frame][data-rv]:before,[data-reveal~=frame][data-rv]:after,[data-reveal~=cell][data-rv]:before{content:none!important}}
