@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.ece1310W.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.D-yuW59g.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.CxNHBx-q.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-italic.BXuSHrjR.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-italic.RLIThRd4.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-italic.F2ziEGcb.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-italic.C3q834ic.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-italic.CpkvI5hy.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-italic.D2yaqPoE.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/public-sans-vietnamese-wght-normal.CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/public-sans-latin-ext-wght-normal.MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/public-sans-latin-wght-normal.DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--canvas:#fff;--fog:#fafafb;--mist:#f2f2f3;--mist-2:#e8e8ea;--mist-3:#dcdce0;--ink:#17191c;--muted:#5f636d;--peach:#fbe1d1;--on-peach:#5d2a1a;--action:#17191c;--action-hover:#33363b;--on-action:#fff;--artifact:#fff;--artifact-shadow:0 0 0 1px #04172b0d, 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--overlay-shadow:0 0 0 1px #0000000d, 0 8px 40px #0000001a}:root[data-theme=dark]{color-scheme:dark;--canvas:#16181b;--fog:#1a1c1f;--mist:#212327;--mist-2:#2a2d32;--mist-3:#363a40;--ink:#ededeb;--muted:#a3a6af;--peach:#fbe1d1;--on-peach:#5d2a1a;--action:#ededeb;--action-hover:#fff;--on-action:#17191c;--artifact:#212327;--artifact-shadow:0 0 0 1px #ffffff12, 0 24px 32px -8px #0000008c, 0 8px 12px -6px #0006;--overlay-shadow:0 0 0 1px #ffffff14, 0 8px 40px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--canvas:#16181b;--fog:#1a1c1f;--mist:#212327;--mist-2:#2a2d32;--mist-3:#363a40;--ink:#ededeb;--muted:#a3a6af;--peach:#fbe1d1;--on-peach:#5d2a1a;--action:#ededeb;--action-hover:#fff;--on-action:#17191c;--artifact:#212327;--artifact-shadow:0 0 0 1px #ffffff12, 0 24px 32px -8px #0000008c, 0 8px 12px -6px #0006;--overlay-shadow:0 0 0 1px #ffffff14, 0 8px 40px #00000080}}:root{--ground-2:var(--mist);--ground-3:var(--mist-2);--ink-2:var(--muted);--silver:var(--mist-2);--silver-2:var(--mist);--on-silver:var(--ink);--on-silver-2:var(--muted);--accent:var(--action);--accent-hover:var(--action-hover);--on-accent:var(--on-action);--flag:var(--peach);--on-flag:var(--on-peach);--font-display:"Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font-text:"Public Sans Variable", "Public Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-code:ui-monospace, "Cascadia Mono", Consolas, Menlo, monospace;--step-small:.875rem;--step-body:clamp(1.0625rem, 1rem + .2vw, 1.125rem);--step-lead:clamp(1.1875rem, 1.1rem + .35vw, 1.375rem);--step-head:clamp(2.25rem, 1.4rem + 2.6vw, 4rem);--step-display:clamp(2.5rem, .6rem + 9.5vw, 5.625rem);--radius-card:24px;--radius-float:20px;--radius-image:12px;--radius:var(--radius-card);--gutter:clamp(1rem, 3vw, 2rem);--section:clamp(5rem, 3rem + 6vw, 10rem);--header-h:72px;--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}html:where([data-motion=on]){scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);font-family:var(--font-text);font-size:var(--step-body);overflow-wrap:break-word;text-wrap:pretty;font-variant-numeric:tabular-nums;margin:0;line-height:1.55}h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,pre,blockquote{margin:0}ul,ol{padding:0;list-style:none}h1,h2,h3,h4,h5{text-wrap:balance;font-weight:700;line-height:1.1}img{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}a:hover{color:var(--action)}:focus-visible{outline:3px solid var(--action);outline-offset:3px}::selection{background:var(--peach);color:var(--ink)}html{caret-color:var(--action);accent-color:var(--action)}code,pre{font-family:var(--font-code)}.container{width:min(1320px, 100% - 2 * var(--gutter));margin-inline:auto}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.display{font-family:var(--font-display);letter-spacing:-.025em;font-weight:400;line-height:1}.lead{font-size:var(--step-lead);line-height:1.4}.muted{color:var(--ink-2)}.small{font-size:var(--step-small)}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);padding:.75rem 1rem;font-weight:700;text-decoration:none;position:absolute;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.button{border:1px solid var(--action);background:var(--action);min-height:48px;color:var(--on-action);font:480 var(--step-body) / 1.2 var(--font-text);cursor:pointer;transition:background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:.6em;padding:.6rem 1.4rem;text-decoration:none;display:inline-flex}.button:hover{background:var(--action-hover);border-color:var(--action-hover);color:var(--on-action)}.button--ghost{color:var(--ink);border-color:var(--ink);background:0 0}.button--ghost:hover{background:var(--mist);border-color:var(--ink);color:var(--ink)}.button--quiet,.button--silver{background:var(--mist-2);border-color:var(--mist-2);color:var(--ink)}.button--quiet:hover,.button--silver:hover{background:var(--mist-3);border-color:var(--mist-3);color:var(--ink)}.button--ink{background:var(--action);color:var(--on-action)}.button .arrow{transition:transform .2s var(--ease-out)}.site-header{z-index:30;background:var(--canvas);position:sticky;top:0}.header-inner{min-height:var(--header-h);justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.5rem;font-weight:400;line-height:1;text-decoration:none}.wordmark:hover{color:var(--ink)}.nav-desktop{align-items:center;gap:clamp(.25rem,1.2vw,1rem);display:flex}.nav-desktop a{text-underline-offset:.4em;align-items:center;min-height:44px;padding:0 .6rem;font-size:.9375rem;font-weight:450;text-decoration:underline 1.5px #0000;display:inline-flex}.nav-desktop a:hover{color:var(--ink);text-decoration-color:currentColor}.header-actions{align-items:center;gap:.6rem;display:flex}.theme-toggle{width:44px;height:44px;color:var(--ink);cursor:pointer;transition:background-color .16s ease, transform .16s var(--ease-out);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:inline-grid}.theme-toggle[hidden]{display:none}.theme-toggle:hover{background:var(--mist)}.theme-toggle .icon-sun,:root[data-theme=dark] .theme-toggle .icon-moon{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}.lang-switch{background:var(--mist);border-radius:999px;align-items:center;display:flex}.lang-switch a{min-width:44px;min-height:44px;font-weight:480;font-size:var(--step-small);color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 .6rem;text-decoration:none;display:inline-flex}.lang-switch a[aria-current=true]{background:var(--action);color:var(--on-action)}.lang-switch a:not([aria-current=true]):hover{color:var(--ink)}.header-cta{min-height:44px;padding:.5rem 1.15rem;font-size:.9375rem}.menu{display:none;position:relative}.menu summary{background:var(--mist);min-height:44px;font-weight:480;font-size:var(--step-small);cursor:pointer;border-radius:999px;align-items:center;padding:0 1.1rem;list-style:none;display:inline-flex}.menu summary::-webkit-details-marker{display:none}.menu[open] summary{background:var(--action);color:var(--on-action)}.menu-panel{border-radius:var(--radius-float);background:var(--artifact);min-width:240px;padding:.5rem;display:grid;position:absolute;top:calc(100% + 10px);right:0}.menu[open] .menu-panel{box-shadow:var(--overlay-shadow)}.menu-panel nav a{min-height:48px;font-weight:450;font-size:var(--step-body);border-radius:12px;align-items:center;padding:0 1rem;text-decoration:none;display:flex}.menu-panel nav a:hover{background:var(--mist);color:var(--ink)}.menu-panel nav{display:grid}.menu-panel .menu-lang{justify-self:start;margin:.5rem .5rem .25rem;display:none}.menu-panel .menu-lang a{font-size:var(--step-small);padding:0 .6rem}@media (width<=520px){.header-actions>.lang-switch{display:none}.menu-panel .menu-lang{display:flex}.hero{padding-top:clamp(2rem,6vh,3.5rem)}}@media (width<=1023px){.nav-desktop,.header-cta{display:none}.menu{display:block}}.hero{padding-block:clamp(3.5rem,11vh,8rem) 0}.hero-intro{text-align:center;justify-items:center;display:grid}.hero-title{letter-spacing:-.025em;text-wrap:balance;max-width:20ch;font-size:clamp(2.25rem,4.9vw,4.5rem);font-weight:400;line-height:1.06}@media (width>=768px){.hero-title{max-width:none}}@media (width<=400px){.hero-title{font-size:clamp(1.875rem,9vw,2.25rem)}}.hero-title em{letter-spacing:-.02em;font-style:italic}.hero-title .line{margin-block:-.02em -.14em;padding-block:.02em .14em;display:block;overflow:hidden}.hero-title .line-inner{display:block}.hero-lead{max-width:44ch;font-size:var(--step-lead);margin-top:clamp(1.25rem,3vh,2rem);line-height:1.45}.hero-availability{color:var(--muted);margin-top:.75rem}.hero-proof{max-width:52ch;font-size:var(--step-small);color:var(--muted);margin-top:1.25rem}.hero-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:clamp(1.5rem,3.5vh,2.25rem);display:flex}.section{padding-block:var(--section) 0}.section-head{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:1.5rem 2rem;margin-bottom:clamp(3rem,6vw,5rem);display:grid}.section-head h2{font-size:var(--step-head);grid-column:1/span 7}.section-head p{grid-column:8/-1;max-width:46ch}@media (width<=860px){.section-head h2,.section-head p{grid-column:1/-1}}.project-index{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.project-index-link{border-radius:var(--radius-card);background:var(--mist);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem 1.5rem;padding:clamp(1.25rem,3vw,2rem);text-decoration:none;transition:background-color .16s;display:grid}.project-index-link:hover{background:var(--mist-2)}.project-index-name{grid-column:1/-1;font-size:clamp(1.5rem,1.2rem + .8vw,2rem);line-height:1.15}.project-index-text{grid-column:1/-1;max-width:46ch}.project-index-count{margin-top:.5rem;font-weight:600}.project-index-link svg{transition:transform .2s var(--ease-out)}@media (width<=760px){.project-index{grid-template-columns:minmax(0,1fr)}}.family{padding-top:clamp(3rem,6vw,5rem)}.family+.family{padding-top:var(--section)}.family-head{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:1rem 2rem;margin-bottom:clamp(2.5rem,5vw,4rem);display:grid}.family-head h3{letter-spacing:-.015em;grid-column:1/span 6;font-size:clamp(2rem,1.3rem + 2vw,3.25rem);font-weight:400;line-height:1.1}.family-head p{grid-column:8/-1;max-width:46ch}.site-label,.case-story h5,.case-cando h5,.case-run h5,.case-block h5,.gallery>h5,.phone-wrap>h5{font:600 var(--step-body) / 1.3 var(--font-text);margin:0 0 .6rem}.check-list li{padding-left:1.4rem;position:relative}.check-list li+li{margin-top:.55rem}.check-list li:before{content:"";background:var(--ink);border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:.62em;left:.15rem}.site-list{gap:2rem;display:grid}.site-card{border-radius:var(--radius-card);background:var(--mist);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:2rem;padding:clamp(1rem,2.5vw,2rem);display:grid}.site-shot{grid-column:1/span 7;margin:0}.site-shot img{border-radius:var(--radius-image);width:100%;height:auto}.site-shot figcaption{padding-top:.6rem}.site-body{grid-column:8/-1;align-content:start;gap:1.5rem;padding-top:.5rem;display:grid}.site-name{letter-spacing:-.01em;font-size:clamp(1.5rem,1.2rem + .8vw,2rem);font-weight:400;line-height:1.15}.site-actions{flex-wrap:wrap;gap:.75rem;display:flex}.case{padding-top:clamp(4rem,8vw,7rem)}.case-head{max-width:48rem;margin-bottom:clamp(2rem,4vw,3rem)}.case-head h4{font-weight:400;font-size:var(--step-head);letter-spacing:-.02em;line-height:1.05}.case-kind{font-size:var(--step-lead);margin-top:.75rem;line-height:1.35}.case-useful{max-width:60ch;margin-top:1rem}.case-useful strong{font-weight:600}.case-status{font-size:var(--step-small);color:var(--muted);margin-top:.5rem}.case-story{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.5rem 2rem;display:grid}.case-problem{grid-column:1/span 5}.case-solution{grid-column:7/-1}.case-problem p,.case-solution p{max-width:52ch}.case-visual{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:2rem;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.case-lead-shot{grid-column:1/span 7;width:100%;max-width:760px;margin:0}.case-lead-shot .shot{border-radius:var(--radius-image)}.case-lead-shot .shot img{aspect-ratio:16/10;object-fit:cover;object-position:top left}.case-lead-shot figcaption{padding-top:.6rem}.case-run{grid-column:1/span 7;margin:0}.case-run .code{background:var(--mist)}.case-cando{grid-column:9/-1;justify-items:start;gap:1.25rem;display:grid}.case-cando h5{margin-bottom:0}.case--mirror .case-lead-shot{grid-area:1/6/auto/-1;justify-self:end}.case--mirror .case-cando{grid-area:1/1/auto/span 4}.case-details{border-radius:var(--radius-card);background:var(--mist);margin-top:clamp(2.5rem,5vw,4rem)}.case-details summary{border-radius:var(--radius-card);cursor:pointer;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;min-height:60px;padding:1rem 1.5rem;list-style:none;transition:background-color .16s;display:flex}.case-details summary::-webkit-details-marker{display:none}.case-details summary:hover{background:var(--mist-2)}.case-details-title{font-weight:600}.case-details-hint{font-size:var(--step-small);color:var(--muted)}.case-details-chevron{transition:transform .2s var(--ease-out);margin-left:auto}.case-details[open] .case-details-chevron{transform:rotate(180deg)}.case-details-body{gap:2.5rem;padding:.75rem 1.5rem 1.75rem;display:grid}.case-details:not([open]) .case-details-body{display:none}.case-meta{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem 2rem;display:grid}.case-meta dt{font-size:var(--step-small);color:var(--muted)}.case-meta dd{margin:.2rem 0 0;font-weight:480}.feature-rows li{background:var(--canvas);grid-template-columns:minmax(10rem,.4fr) minmax(0,1fr);gap:1.5rem;padding:1rem 1.25rem;display:grid}.feature-rows li:first-child{border-radius:var(--radius-image) var(--radius-image) 0 0}.feature-rows li:last-child{border-radius:0 0 var(--radius-image) var(--radius-image)}.feature-rows li+li{margin-top:2px}.feature-rows strong{font-weight:600}.decision-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2.5rem;display:grid}.decision-list li p:first-child{margin-bottom:.35rem;font-weight:600}.decision-list li p+p{margin-top:0}.figure-row{grid-template-columns:repeat(2,minmax(0,12rem));gap:2rem;display:grid}.figure-num{font-family:var(--font-display);font-weight:400;font-size:var(--step-lead);line-height:1.1}.figure-label{margin-top:.5rem;font-weight:600}.figure-detail{color:var(--muted);margin-top:.25rem}.tests-note{margin:1.25rem 0 1rem}.code{border-radius:var(--radius-image);background:var(--canvas);color:var(--ink);font-size:var(--step-small);white-space:pre;margin:0;padding:1.1rem 1.25rem;line-height:1.65;overflow-x:auto}.code .c{color:var(--muted)}.case-limits li{max-width:70ch;padding-left:1.4rem;position:relative}.case-limits li+li{margin-top:.5rem}.case-limits li:before{content:"";background:var(--muted);border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:.62em;left:.15rem}@media (width<=1023px){.family-head,.site-card,.case-story,.case-visual{grid-template-columns:minmax(0,1fr)}.family-head h3,.family-head p,.site-shot,.site-body,.case-problem,.case-solution,.case-lead-shot,.case-run,.case-cando,.case--mirror .case-lead-shot,.case--mirror .case-cando{grid-area:auto/1/auto/-1;justify-self:stretch;max-width:none}.decision-list{grid-template-columns:1fr}}@media (width<=600px){.feature-rows li{grid-template-columns:1fr;gap:.35rem}.case-details summary,.case-details-body{padding-inline:1rem}}.gallery{margin-top:clamp(3rem,6vw,5rem)}.gallery>h4{font-size:var(--step-small);color:var(--ink-2);margin:0 0 1rem;font-weight:700}.shot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.shot-grid li:first-child{grid-area:span 2/span 2}.shot{background:var(--ground-2);cursor:zoom-in;display:block;position:relative;overflow:hidden}.shot img{aspect-ratio:16/10;object-fit:cover;object-position:top left;width:100%;transition:transform .3s var(--ease-out), opacity .2s ease}.shot-zoom{background:var(--canvas);width:44px;height:44px;color:var(--ink);opacity:0;pointer-events:none;transition:opacity .2s ease, transform .26s var(--ease-out), background-color .2s ease, color .2s ease;place-items:center;display:grid;position:absolute;bottom:.75rem;right:.75rem}.shot:hover .shot-zoom,.shot:focus-visible .shot-zoom{opacity:1;background:var(--accent);color:var(--on-accent)}.shot:hover img{opacity:.92}:where([data-motion=on]) .shot-zoom{transform:translateY(6px)}:where([data-motion=on]) .shot:focus-visible .shot-zoom{transform:none}@media (hover:none){.shot-zoom,.shot-zoom:is(*){opacity:1;transform:none}}.shot:focus-visible{outline-offset:4px}.shot-grid figcaption,.phone-strip figcaption{font-size:var(--step-small);color:var(--ink-2);padding-top:.6rem}.shot-grid li:first-child img{aspect-ratio:auto;height:100%;min-height:100%}.shot-grid li:first-child figure,.shot-grid li:first-child .shot{height:100%}.shot-grid li:first-child figure{grid-template-rows:minmax(0,1fr) auto;display:grid}.phone-wrap{margin-top:2.5rem}.phone-wrap>h4{font-size:var(--step-small);color:var(--ink-2);margin:0 0 1rem;font-weight:700}.phone-strip{grid-template-columns:repeat(auto-fill,minmax(140px,240px));gap:1rem;display:grid}.phone-strip .shot img{aspect-ratio:390/800;object-fit:cover;object-position:top}.shots-note{max-width:70ch;margin-top:1.25rem}@media (width<=760px){.shot-grid{grid-template-columns:1fr 1fr}.shot-grid li:first-child{grid-area:auto/1/auto/-1}.shot-grid li:first-child img{aspect-ratio:16/10;height:auto}}@media (width<=480px){.shot-grid{grid-template-columns:1fr}}.lightbox{overscroll-behavior:contain;background:var(--canvas);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--ink);border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lightbox::backdrop{background:0 0}.lightbox[open]{grid-template-rows:auto minmax(0,1fr);display:grid}html{scrollbar-gutter:stable}html:has(dialog.lightbox[open]){overflow:hidden}.lightbox-bar{padding:.75rem var(--gutter);justify-content:flex-end;display:flex}.lightbox-panel{min-height:0;padding:0 var(--gutter) clamp(1rem, 3vh, 2rem);place-content:center;gap:1rem;display:grid}.lightbox-stage{background:var(--ground-2);justify-self:center;margin:0}.lightbox-stage img{object-fit:contain;width:auto;max-width:85vw;height:auto;max-height:min(80vh,100dvh - 12rem);display:block}.lightbox-info{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 1.5rem;width:0;min-width:100%;display:grid}.lightbox-title{font-weight:700;font-size:var(--step-lead);flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;line-height:1.2;display:flex}.lightbox-counter{font-size:var(--step-small);color:var(--ink-2);font-weight:600}.lightbox-caption{max-width:75ch;color:var(--ink-2);grid-column:1/-1}.lightbox-nav{gap:.5rem;display:flex}.lightbox-close svg{margin-left:.5rem}@media (width<=600px){.lightbox-stage img{max-height:min(80vh,100dvh - 15rem)}}:where([data-motion=on]) .lightbox{transition:opacity .2s}:where([data-motion=on]) .lightbox-panel{transition:opacity .2s ease, transform .26s var(--ease-out)}:where([data-motion=on]) .lightbox[data-state=opening],:where([data-motion=on]) .lightbox[data-state=closing]{opacity:0}:where([data-motion=on]) .lightbox[data-state=opening] .lightbox-panel,:where([data-motion=on]) .lightbox[data-state=closing] .lightbox-panel{opacity:0;transform:scale(.97)}:where([data-motion=on]) .lightbox[data-flip],:where([data-motion=on]) .lightbox[data-flip] .lightbox-panel{transition:none}:where([data-motion=on]) .lightbox[data-flip][data-state]{opacity:1}:where([data-motion=on]) .lightbox[data-flip][data-state] .lightbox-panel{opacity:1;transform:none}.icon-button{background:var(--ground-3);min-width:48px;min-height:48px;color:var(--ink);font:700 var(--step-small) / 1 var(--font-text);cursor:pointer;transition:background-color .16s ease, transform .16s var(--ease-out);border:0;justify-content:center;align-items:center;padding:0 1rem;display:inline-flex}.icon-button:hover{background:var(--silver);color:var(--on-silver)}.text-link{text-underline-offset:.3em;align-items:center;min-height:44px;font-weight:480;text-decoration:underline #0000;display:inline-flex}.text-link:hover{color:var(--ink);text-decoration-color:currentColor}.category-link{margin-top:1.5rem;font-weight:600;text-decoration-color:currentColor}.plans-table-wrap{border-radius:var(--radius-card);background:var(--fog);padding:clamp(.5rem,1.5vw,1rem)}.plans-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.plans-table th,.plans-table td{text-align:left;vertical-align:top;padding:1rem 1.25rem}.plans-table thead th{font-family:var(--font-display);letter-spacing:-.015em;padding-top:1.25rem;padding-bottom:1.25rem;font-size:clamp(1.75rem,1.2rem + 1.2vw,2.5rem);font-weight:400;line-height:1.1}.plans-table tbody th{width:22%;font-weight:600}.plans-table tbody tr:nth-child(odd)>*{background:var(--mist)}.plans-table tbody tr:nth-child(odd)>:first-child{border-radius:var(--radius-image) 0 0 var(--radius-image)}.plans-table tbody tr:nth-child(odd)>:last-child{border-radius:0 var(--radius-image) var(--radius-image) 0}.plans-price td{font-family:var(--font-display);font-size:var(--step-lead)}.plans-table tfoot td{padding-top:1.5rem;padding-bottom:1.25rem}.plans-stack{display:none}.plans-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem;margin-top:1.5rem;display:grid}.plans-notes p{max-width:60ch}@media (width<=860px){.plans-table-wrap{display:none}.plans-stack{gap:3rem;display:grid}.plans-stack>li{border-radius:var(--radius-card);background:var(--mist);justify-items:start;gap:1.25rem;padding:1.5rem 1.25rem;display:grid}.plans-stack h4{font-size:clamp(2rem,9vw,2.5rem);font-weight:400;line-height:1.05}.plans-stack dl{gap:.9rem;display:grid}.plans-stack dt{font-size:var(--step-small);color:var(--muted)}.plans-stack dd{margin:.1rem 0 0}.plans-notes{grid-template-columns:1fr}}.demos{margin-top:clamp(3rem,6vw,5rem)}.demos-head{gap:.75rem;max-width:60ch;margin-bottom:1.75rem;display:grid}.demos-head h4{font-size:clamp(1.5rem,1.2rem + .8vw,2rem);font-weight:400;line-height:1.15}.demo-list{gap:2rem;margin-bottom:2rem;display:grid}.demo-card{border-radius:var(--radius-card);background:var(--mist);grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;padding:clamp(1rem,2.5vw,2rem);display:grid}.demo-preview{grid-column:1/span 7;align-content:start;gap:1rem;margin:0;display:grid}.demo-frame{border-radius:var(--radius-image);background:var(--canvas);box-shadow:var(--artifact-shadow);place-items:center;display:grid;overflow:hidden}.demo-video{aspect-ratio:16/10;object-fit:cover;object-position:top;width:100%;height:auto;display:block}.demo-video--mobile{aspect-ratio:9/19.5;width:auto;max-width:100%;height:clamp(320px,42vw,520px)}.demo-video[hidden],.demo-still{display:none}@media print{.demo-video{display:none}.demo-still{width:100%;height:auto;display:block}}.demo-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.demo-controls[hidden]{display:none}.demo-card .segmented{background:var(--canvas)}.demo-body{grid-column:8/-1;align-content:start;gap:1.25rem;display:grid}.demo-package{font-weight:600}.demo-body h5{font-size:clamp(1.5rem,1.2rem + .8vw,2rem);font-weight:400;line-height:1.15}.demo-body h6{font:600 var(--step-body) / 1.3 var(--font-text);margin-bottom:.4rem}.demo-business,.demo-concept{font-size:var(--step-small);color:var(--muted)}.demo-coming{border-radius:var(--radius-card);background:var(--mist);grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin:0;padding:clamp(1.25rem,3vw,2rem);list-style:none;display:grid}.demo-coming li{align-content:start;gap:.35rem;display:grid}.demo-coming-package{font-family:var(--font-display);font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.2}.demo-coming-business{font-weight:480}.demo-coming-state{font-size:var(--step-small);color:var(--muted);margin-top:.5rem}.state-tag{background:var(--peach);color:var(--on-peach);border-radius:999px;margin-right:.25rem;padding:.1rem .6rem;font-weight:600;display:inline-block}@media (width<=1023px){.demo-card{grid-template-columns:minmax(0,1fr)}.demo-preview,.demo-body{grid-column:1/-1}}@media (width<=860px){.demo-coming{grid-template-columns:minmax(0,1fr)}}.data-services{margin-top:var(--section)}.data-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 3rem;display:grid}.data-list h4{font-family:var(--font-display);font-weight:400;font-size:var(--step-lead);margin-bottom:.5rem;line-height:1.2}.data-list p{max-width:52ch}@media (width<=760px){.data-list{grid-template-columns:1fr}}.about-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:2rem;display:grid}.about-letter{border-radius:var(--radius-card);background:var(--peach);color:var(--on-peach);grid-column:1/span 7;gap:1.5rem;padding:clamp(1.5rem,4vw,3.5rem);display:grid}.about-letter h2{font-weight:400;font-size:var(--step-head);letter-spacing:-.02em;line-height:1.05}.about-text{font-size:var(--step-lead);gap:1rem;line-height:1.5;display:grid}.about-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;display:flex}.about-letter .text-link:hover{color:var(--on-peach)}.button--on-peach{background:var(--on-peach);border-color:var(--on-peach);color:var(--peach)}.button--on-peach:hover{color:var(--peach);background:#45200f;border-color:#45200f}.about-letter :focus-visible{outline-color:var(--on-peach)}@media (width>=1024px){.about-letter{top:calc(var(--header-h) + 2rem);position:sticky}}.tools{grid-column:8/-1;gap:1rem;display:grid}.tools h3{font-size:clamp(1.5rem,1.2rem + .8vw,2rem);font-weight:400;line-height:1.15}.tools-list{gap:1.25rem;margin-top:.5rem;display:grid}.tools-list dt{margin-bottom:.4rem;font-weight:600}.tools-list dd{margin:0}.tools-list li{flex-wrap:wrap;align-items:baseline;gap:0 .5rem;display:flex}.tools-list li+li{margin-top:.25rem}.tool-where{font-size:var(--step-small);color:var(--muted)}@media (width<=1023px){.about-grid{grid-template-columns:minmax(0,1fr)}.about-letter,.tools{grid-column:1/-1}}.contact-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:2rem 3rem;display:grid}.contact-head{grid-column:1/-1;gap:.75rem;max-width:48rem;margin-bottom:1rem;display:grid}.contact-head h2{font-weight:400;font-size:var(--step-head);letter-spacing:-.02em;line-height:1.05}.contact-availability{color:var(--muted)}.composer{border-radius:var(--radius-card);background:var(--mist);grid-column:1/span 7;gap:1.25rem;padding:clamp(1.25rem,3vw,2.25rem);display:grid}.field{gap:.4rem;display:grid}.field label{font-weight:600}.field-optional,.field-hint{font-weight:400;font-size:var(--step-small);color:var(--muted)}.field select,.field input,.field textarea,.composer-preview textarea{border:1px solid var(--mist-3);background:var(--canvas);width:100%;min-height:48px;color:var(--ink);font:inherit;border-radius:12px;padding:.7rem .9rem}.field textarea,.composer-preview textarea{resize:vertical;line-height:1.5}.field select:focus-visible,.field input:focus-visible,.field textarea:focus-visible,.composer-preview textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.field textarea[aria-invalid=true]{border-color:#b3261e}.field-error{font-size:var(--step-small);color:#b3261e;font-weight:600}:root[data-theme=dark] .field-error{color:#ffb4ab}:root[data-theme=dark] .field textarea[aria-invalid=true]{border-color:#ffb4ab}.composer-actions{flex-wrap:wrap;gap:.75rem;display:flex}.composer-status:empty{display:none}.composer-status{font-weight:480}.composer-preview{gap:.4rem;display:grid}.composer-preview[hidden]{display:none}.composer-preview label{font-weight:600}.composer-how{font-size:var(--step-small);color:var(--muted)}.contact-direct{grid-column:9/-1;gap:1.25rem;display:grid}.contact-direct-title{font-family:var(--font-display);font-size:clamp(1.5rem,1.2rem + .8vw,2rem);font-weight:400;line-height:1.15}.contact-list{gap:1rem;display:grid}.contact-list dt{font-size:var(--step-small);color:var(--muted)}.contact-list dd{overflow-wrap:anywhere;margin:.15rem 0 0;font-weight:480}.contact-list a{text-underline-offset:.25em}.cv-links{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.contact-next{border-radius:var(--radius-card);background:var(--mist);gap:1rem;padding:1.5rem;display:grid}.next-steps{gap:.6rem;margin:0;padding-left:1.25rem;list-style:decimal;display:grid}.next-steps li::marker{font-weight:600}.contact-meta{font-size:var(--step-small);color:var(--muted)}.contact-notes{font-size:var(--step-small);color:var(--muted);gap:.75rem;display:grid}@media (width<=1023px){.contact-grid{grid-template-columns:minmax(0,1fr)}.composer,.contact-direct{grid-column:1/-1}}.site-footer{margin-top:var(--section);background:var(--fog);padding-top:clamp(3rem,6vw,5rem);position:relative;overflow:hidden}.footer-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;display:flex}.footer-line{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;display:flex}.footer-line span{color:var(--muted)}.footer-links{flex-wrap:wrap;gap:0 1.5rem;display:flex}.footer-links a{text-underline-offset:.3em;align-items:center;min-height:44px;font-weight:480;text-decoration:underline #0000;display:inline-flex}.footer-links a:hover{color:var(--ink);text-decoration-color:currentColor}.footer-prefs{flex-wrap:wrap;align-items:flex-start;gap:1.25rem 2.5rem;margin-top:clamp(2rem,4vw,3rem);display:flex}.motion-control:not([hidden]){grid-template-columns:auto auto;align-items:center;gap:.5rem 1rem;display:grid}.motion-label{font-weight:600}.segmented{background:var(--mist);border-radius:999px;display:inline-flex}.segmented button{min-width:44px;min-height:44px;color:var(--muted);font:480 var(--step-small) / 1 var(--font-text);cursor:pointer;transition:background-color .16s ease, color .16s ease, transform .16s var(--ease-out);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 1rem;display:inline-flex}.segmented button:hover{color:var(--ink)}.segmented button[aria-pressed=true]{background:var(--action);color:var(--on-action)}.motion-state{font-size:var(--step-small);color:var(--muted);grid-column:1/-1}.footer-legal{font-size:var(--step-small);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:1.5rem;display:flex}.footer-name{font-family:var(--font-display);letter-spacing:-.03em;white-space:nowrap;color:var(--mist-3);margin-top:1.5rem;margin-left:calc(var(--gutter) * -.1);font-size:clamp(4rem,15vw,16rem);font-weight:400;line-height:.85;display:block;transform:translateY(16%)}@media (width<=600px){.motion-control:not([hidden]){grid-template-columns:1fr}}.run-note{font-size:var(--step-small);color:var(--muted);margin-top:.5rem}.run-list{gap:1.25rem;margin-top:1.25rem;padding-left:1.5rem;list-style:decimal;display:grid}.run-list li::marker{color:var(--muted);font-weight:600}.run-list li>p{margin-bottom:.5rem}.case-details-body>*,.run-list>li,.case-block{min-width:0}.code{max-width:100%}:where(.intro[data-motion=on]) .hero-title .line-inner{animation:line-rise .9s var(--ease-out) both}:where(.intro[data-motion=on]) .hero-title .line:nth-child(2) .line-inner{animation-delay:.14s}:where(.intro[data-motion=on]) .hero-availability,:where(.intro[data-motion=on]) .hero-actions .button{animation:fade-up .6s var(--ease-out) backwards}:where(.intro[data-motion=on]) .hero-lead{animation:rise .6s var(--ease-out) .32s backwards}:where(.intro[data-motion=on]) .hero-availability{animation-delay:.4s}:where(.intro[data-motion=on]) .hero-actions .button:first-child{animation-delay:.47s}:where(.intro[data-motion=on]) .hero-actions .button:nth-child(2){animation-delay:.54s}:where(.intro[data-motion=on]) .hero-proof{animation:fade-up .6s var(--ease-out) .6s backwards}.js:where([data-motion=on]) [data-reveal]:not(.is-in){opacity:0}:where([data-motion=on]) .case-lead-shot .shot picture{will-change:transform}:where([data-motion=on]) .button:active,:where([data-motion=on]) .icon-button:active,:where([data-motion=on]) .video-play:active,:where([data-motion=on]) .segmented button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){:where([data-motion=on]) .button:hover .arrow{transform:translate(4px)}:where([data-motion=on]) .project-index-link:hover svg{transform:translateY(3px)}:where([data-motion=on]) .shot:hover img{transform:scale(1.03)}:where([data-motion=on]) .shot:hover .shot-zoom{transform:none}}:where([data-motion=on]) .theme-toggle:active{transform:scale(.94)}::view-transition-old(root),::view-transition-new(root){animation-duration:.26s;animation-timing-function:ease}:where([data-motion=off]) .hero-availability,:where([data-motion=off]) .hero-actions .button{animation:.2s backwards fade-in}@keyframes fade-in{0%{opacity:0}}@keyframes line-rise{0%{transform:translateY(105%)}to{transform:none}}@keyframes rise{0%{transform:translateY(12px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.case-lead-shot video{background:var(--ground-3);width:100%;height:auto;display:block}@media (width<=960px){.section-head{grid-template-columns:minmax(0,1fr)}.section-head>*{grid-area:auto/1/auto/-1}}@media (width<=480px){.figure-row{grid-template-columns:1fr 1fr;gap:1.25rem}}.case-video{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:1.5rem 2rem;margin-top:clamp(2rem,4vw,3rem);display:grid}.video-frame{background:var(--ground-2);grid-column:1/span 7;max-width:760px;padding:clamp(.5rem,1.2vw,1rem);position:relative}.case-video figcaption{grid-column:9/-1;gap:.75rem;max-width:34ch;display:grid}.case--mirror .video-frame{grid-area:1/6/auto/-1;justify-self:end}.case--mirror .case-video figcaption{grid-area:1/1/auto/span 4}.case-video video{aspect-ratio:16/10;background:var(--ground-3);width:100%;height:auto;display:block}.video-title{font-size:var(--step-lead);font-weight:700;line-height:1.2}.video-play{background:var(--accent);min-height:56px;color:var(--on-accent);font:700 var(--step-body) / 1 var(--font-text);white-space:nowrap;cursor:pointer;transition:background-color .2s ease, color .2s ease, transform .16s var(--ease-out);border:0;align-items:center;gap:.75rem;padding:0 1.5rem;display:inline-flex;position:absolute;top:50%;left:50%;translate:-50% -50%}.video-play:hover{background:var(--silver);color:var(--on-silver)}@media (width<=600px){.video-play{min-height:48px;font-size:var(--step-small);gap:.5rem;padding:0 1rem}}.video-play[hidden]{display:none}@media (width<=960px){.case-video{grid-template-columns:minmax(0,1fr)}.video-frame,.case-video figcaption,.case--mirror .video-frame,.case--mirror .case-video figcaption{grid-area:auto/1/auto/-1}.case-video figcaption{max-width:60ch}}@media (width<=380px){.header-inner{gap:.5rem}.header-actions{gap:.4rem}.wordmark{font-size:1.1rem}.menu summary{padding:0 .6rem}}@media (width>=1024px){.shot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.shot-grid li:first-child{grid-area:auto}.shot-grid li:first-child figure,.shot-grid li:first-child .shot{height:auto;display:block}.shot-grid li:first-child img{aspect-ratio:16/10;height:auto;min-height:0}}.shot-grid .shot,.phone-strip .shot{border-radius:var(--radius-image)}:where([data-motion=on]) .case-details[open] .case-details-body{animation:fade-up .32s var(--ease-out) both}.process-steps{counter-reset:step;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem 2rem;margin:0;padding:0;list-style:none;display:grid}.process-steps li{counter-increment:step;align-content:start;gap:.6rem;display:grid}.process-steps li:before{content:counter(step);background:var(--mist);width:3rem;height:3rem;font:400 1.375rem / 1 var(--font-display);border-radius:999px;place-items:center;margin-bottom:.75rem;display:grid}.process-steps h3{font:600 var(--step-body) / 1.3 var(--font-text)}@media (width<=1023px){.process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.process-steps{grid-template-columns:minmax(0,1fr)}}.faq-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;display:grid}.faq-grid>h2{grid-column:1/span 4;align-self:start}.faq-list{grid-column:6/-1;gap:.75rem;display:grid}.faq-item{border-radius:var(--radius-card);background:var(--mist)}.faq-item summary{border-radius:var(--radius-card);cursor:pointer;align-items:center;gap:1rem;min-height:60px;padding:1rem 1.5rem;font-weight:600;list-style:none;transition:background-color .16s;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:hover{background:var(--mist-2)}.faq-item summary svg{transition:transform .2s var(--ease-out);flex:none;margin-left:auto}.faq-item[open] summary svg{transform:rotate(180deg)}.faq-item p{max-width:62ch;padding:0 1.5rem 1.5rem}@media (width<=1023px){.faq-grid{grid-template-columns:minmax(0,1fr)}.faq-grid>h2,.faq-list{grid-column:1/-1}}
