.wg-logo{background:#fff;padding:5px 9px;border-radius:min(6px,8px);box-sizing:content-box}
:root{--wg-ink:#f3f4f6;--wg-ground:#0d1017;--wg-accent:#c8102e;--wg-accent-bg:#c8102e;--wg-on-accent:#ffffff;--wg-accent-text:#d9586d;--wg-muted:#a9aeb8;--wg-line:#262b36;--wg-display:'Space Grotesk',Georgia,serif;--wg-body:'Inter',system-ui,sans-serif;--wg-dw:600;--wg-section:clamp(64px, 9vw, 128px);--wg-gap:clamp(22px, 3vw, 48px);--wg-radius:6px;--wg-img:none}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--wg-ground);color:var(--wg-ink);font:400 clamp(16px,1.05vw,18px)/1.65 var(--wg-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--wg-accent-text);outline-offset:3px}
.wg-band :focus-visible{outline-color:var(--wg-ground)}.wg-hero-bleed :focus-visible{outline-color:#fff}.wg-cta-split .wg-copy :focus-visible{outline-color:var(--wg-on-accent)}
.wg-wrap{width:min(1240px,100% - clamp(32px,6vw,96px));margin-inline:auto}
.wg-section{padding-block:var(--wg-section)}
.wg-eyebrow{font:600 .78rem/1.2 var(--wg-body);letter-spacing:.14em;text-transform:uppercase;color:var(--wg-muted);margin:0 0 1.4em}
.wg-display{font-family:var(--wg-display);font-weight:var(--wg-dw);line-height:1.02;letter-spacing:-.02em;margin:0;text-wrap:balance}
.wg-xl{font-size:clamp(2.8rem,7.4vw,7.2rem)}.wg-l{font-size:clamp(2.1rem,4.6vw,4.2rem)}.wg-m{font-size:clamp(1.6rem,2.8vw,2.5rem)}#contact-form{scroll-margin-top:96px}.wg-s{font-size:clamp(1.35rem,2vw,1.85rem)}[data-wg-narrow] p{max-width:58ch}
.wg-lede{font-size:clamp(1.12rem,1.5vw,1.36rem);line-height:1.5;color:var(--wg-ink);max-width:36ch;margin:1.2em 0 0}
.wg-prose{max-width:60ch}.wg-prose p{margin:0 0 1.1em}.wg-muted{color:var(--wg-muted)}
.wg-btn{display:inline-flex;align-items:center;gap:.6em;margin-top:2em;padding:.95em 1.5em;background:var(--wg-ink);color:var(--wg-ground);text-decoration:none;font-weight:600;border-radius:var(--wg-radius);transition:transform .25s ease,background .25s ease}
.wg-btn:hover{background:var(--wg-accent-bg);color:var(--wg-on-accent);transform:translateY(-1px)}
.wg-btn::after{content:"\2192";transition:transform .25s ease}.wg-btn:hover::after{transform:translateX(3px)}
.wg-link{font-weight:600;text-decoration:underline;text-decoration-color:var(--wg-accent)}
.wg-img{position:relative;overflow:hidden;border-radius:var(--wg-radius);background:var(--wg-line)}
.wg-img img,.wg-img video{width:100%;height:100%;object-fit:cover;filter:var(--wg-img)}
.wg-rule{border:0;border-top:1px solid var(--wg-line);margin:0}
/* hero: split */
.wg-hero-split{display:grid;grid-template-columns:7fr 5fr;align-items:end;gap:var(--wg-gap);min-height:min(88vh,860px);padding-block:clamp(48px,7vw,96px) 0}
.wg-hero-split .wg-img{height:100%;min-height:420px;margin-right:calc((100vw - min(1240px,100vw - clamp(32px,6vw,96px))) / -2);border-radius:0}
.wg-hero-split .wg-copy{padding-bottom:clamp(32px,6vw,96px)}
/* hero: full bleed */
.wg-hero-bleed{position:relative;min-height:min(92vh,900px);display:flex;align-items:flex-end;color:#fff;background:#0b0d12}
.wg-hero-bleed .wg-img{position:absolute;inset:0;border-radius:0}.wg-hero-bleed .wg-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.42) 25%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.75) 100%)}
.wg-hero-bleed .wg-wrap{position:relative;padding-block:clamp(48px,8vw,120px);text-shadow:0 1px 3px rgba(0,0,0,.35)}.wg-hero-bleed .wg-lede,.wg-hero-bleed .wg-eyebrow{color:rgba(255,255,255,.86)}
.wg-hero-bleed .wg-btn{background:#fff;color:#111}.wg-hero-bleed .wg-btn:hover{background:var(--wg-accent-bg);color:var(--wg-on-accent)}
/* hero: statement */
.wg-hero-statement{padding-block:clamp(96px,16vw,220px) clamp(48px,8vw,120px)}
.wg-hero-statement .wg-under{display:grid;grid-template-columns:5fr 7fr;gap:var(--wg-gap);margin-top:clamp(40px,6vw,88px);border-top:1px solid var(--wg-line);padding-top:clamp(20px,2.4vw,32px)}
.wg-hero-statement .wg-lede{margin:0}
/* ledger: services and process as hairline rows, never cards */
.wg-ledger-head{display:grid;grid-template-columns:5fr 7fr;gap:var(--wg-gap);align-items:end;margin-bottom:clamp(28px,4vw,56px)}
.wg-ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--wg-ink)}
.wg-ledger li{display:grid;grid-template-columns:5fr 6fr 1fr;gap:var(--wg-gap);padding:clamp(20px,2.6vw,34px) 0;border-bottom:1px solid var(--wg-line);transition:background .3s ease}
.wg-ledger li:hover{background:color-mix(in srgb,var(--wg-accent) 5%,transparent)}
.wg-ledger h3{font:var(--wg-dw) clamp(1.3rem,2vw,1.75rem)/1.2 var(--wg-display);margin:0}
.wg-ledger p{margin:0;color:var(--wg-muted);max-width:52ch}.wg-ledger .wg-price{text-align:right;font-weight:600;white-space:nowrap}
/* feature: one service given the room, the rest as a list */
.wg-feature{display:grid;grid-template-columns:6fr 6fr;gap:var(--wg-gap);align-items:center}
.wg-feature .wg-img{aspect-ratio:4/5}.wg-feature ul{list-style:none;padding:0;margin:2em 0 0;border-top:1px solid var(--wg-line)}
.wg-feature ul li{padding:.9em 0;border-bottom:1px solid var(--wg-line);display:flex;justify-content:space-between;gap:1em}
/* work: asymmetric mosaic, and a scroll rail */
.wg-mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--wg-gap)}
.wg-mosaic figure{margin:0}
.wg-mosaic .wg-img{aspect-ratio:4/3}
figcaption{margin-top:.8em;font-size:.92rem;color:var(--wg-muted)}figcaption b{color:var(--wg-ink);font-weight:600;margin-right:.5em}
.wg-rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(72vw,520px);gap:var(--wg-gap);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin}
.wg-rail figure{margin:0;scroll-snap-align:start}.wg-rail .wg-img{aspect-ratio:3/4}
/* quotes */
.wg-quote{display:grid;grid-template-columns:2fr 10fr;gap:var(--wg-gap)}
.wg-quote blockquote{margin:0;font:var(--wg-dw) clamp(1.8rem,3.6vw,3.3rem)/1.18 var(--wg-display);letter-spacing:-.01em;text-wrap:balance}
.wg-quote blockquote::before{content:"\201C";color:var(--wg-accent-text)}.wg-quote blockquote::after{content:"\201D";color:var(--wg-accent-text)}
.wg-quote cite{display:block;margin-top:1.6em;font:600 .95rem/1.4 var(--wg-body);font-style:normal}.wg-quote cite span{display:block;font-weight:400;color:var(--wg-muted)}
.wg-sticky{display:grid;grid-template-columns:4fr 8fr;gap:var(--wg-gap);align-items:start}.wg-sticky>:first-child{position:sticky;top:clamp(24px,6vh,72px)}
.wg-stacked{grid-template-columns:1fr!important;max-width:820px;gap:clamp(16px,2vw,28px)!important}.wg-stacked>:first-child{position:static!important}.wg-stacked .wg-lede{max-width:52ch}
.wg-quotes figure{margin:0;padding:clamp(24px,3vw,40px) 0;border-bottom:1px solid var(--wg-line)}.wg-quotes figure:first-child{border-top:1px solid var(--wg-ink)}
.wg-quotes blockquote{margin:0;font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.55}
/* team */
.wg-people{list-style:none;margin:0;padding:0}.wg-people li{display:grid;grid-template-columns:3fr 4fr 5fr;gap:var(--wg-gap);align-items:start;padding:clamp(24px,3vw,40px) 0;border-top:1px solid var(--wg-line)}
.wg-people .wg-img{aspect-ratio:4/5}.wg-people h3{font:var(--wg-dw) clamp(1.4rem,2.2vw,2rem)/1.15 var(--wg-display);margin:0}.wg-people .wg-role{color:var(--wg-muted);margin:.4em 0 0}
/* pricing: a proper comparison table, one column recommended */
.wg-table{width:100%;border-collapse:collapse;font-size:1rem}.wg-table th,.wg-table td{text-align:left;padding:1.05em .9em;border-bottom:1px solid var(--wg-line);vertical-align:top}
.wg-table thead th{font:var(--wg-dw) clamp(1.2rem,1.8vw,1.6rem)/1.2 var(--wg-display);border-bottom:1px solid var(--wg-ink)}.wg-table .wg-rec{background:color-mix(in srgb,var(--wg-accent) 7%,transparent)}
.wg-table .wg-tag{display:block;font:600 .72rem/1 var(--wg-body);letter-spacing:.12em;text-transform:uppercase;color:var(--wg-accent-text);margin-bottom:.6em}.wg-table tbody th{font-weight:600}.wg-scroll{overflow-x:auto}
/* faq */
.wg-faq details{border-bottom:1px solid var(--wg-line)}.wg-faq details:first-child{border-top:1px solid var(--wg-ink)}
.wg-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1em;padding:1.3em 0;font:600 clamp(1.05rem,1.4vw,1.2rem)/1.35 var(--wg-body)}
.wg-faq summary::-webkit-details-marker{display:none}.wg-faq summary::after{content:"+";color:var(--wg-accent-text);font-weight:400;transition:transform .25s ease}.wg-faq details[open] summary::after{transform:rotate(45deg)}
.wg-faq details p{margin:0 0 1.4em;max-width:62ch;color:var(--wg-muted)}
/* call to action */
.wg-band{background:var(--wg-ink);color:var(--wg-ground)}.wg-band .wg-btn{background:var(--wg-ground);color:var(--wg-ink)}.wg-band .wg-btn:hover{background:var(--wg-accent-bg);color:var(--wg-on-accent)}
.wg-band .wg-inner{display:grid;grid-template-columns:8fr 4fr;gap:var(--wg-gap);align-items:end}.wg-band .wg-muted{color:color-mix(in srgb,var(--wg-ground) 72%,transparent)}
.wg-cta-split{display:grid;grid-template-columns:6fr 6fr;gap:0;min-height:520px}.wg-cta-split .wg-img{border-radius:0}.wg-cta-split .wg-copy{background:var(--wg-accent-bg);color:var(--wg-on-accent);padding:clamp(40px,6vw,96px);display:flex;flex-direction:column;justify-content:center}
.wg-cta-split .wg-btn{background:#fff;color:#111;align-self:flex-start}.wg-cta-split .wg-lede{color:var(--wg-on-accent)}
/* story */
.wg-story .wg-prose p:first-child{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.5;color:var(--wg-ink)}
.wg-imageband{position:relative;aspect-ratio:21/9;max-height:720px}.wg-imageband .wg-img{position:absolute;inset:0;border-radius:0}
/* process: a horizontal timeline, no numbers */
.wg-timeline{list-style:none;margin:clamp(28px,4vw,56px) 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:var(--wg-gap);overflow-x:auto;border-top:1px solid var(--wg-ink)}
.wg-timeline li{position:relative;padding-top:1.6em}.wg-timeline li::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--wg-accent)}
.wg-timeline h3{font:600 1.1rem/1.3 var(--wg-body);margin:0 0 .5em}.wg-timeline p{margin:0;color:var(--wg-muted)}.wg-timeline .wg-when{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--wg-accent-text);margin-bottom:.4em}
/* contact */
.wg-contact{display:grid;grid-template-columns:5fr 7fr;gap:var(--wg-gap);align-items:start}.wg-contact dl{margin:2em 0 0}.wg-contact dt{font:600 .78rem/1.2 var(--wg-body);letter-spacing:.12em;text-transform:uppercase;color:var(--wg-muted);margin-top:1.4em}.wg-contact dd{margin:.35em 0 0;font-size:1.1rem}
/* motion: subtle, and never under reduced motion. Content is hidden for the reveal only once the script has said it is
   running (wg-js), so a page without the script, or where it fails, shows everything (review 2026-09-26 M28). */
.wg-js.wg-motion [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.wg-js.wg-motion [data-reveal].wg-in{opacity:1;transform:none}
.wg-motion .wg-hero-split .wg-img img,.wg-motion .wg-hero-bleed .wg-img img{animation:wg-settle 2.4s cubic-bezier(.2,.7,.2,1) both}
@keyframes wg-settle{from{transform:scale(1.06)}to{transform:scale(1)}}
/* a looping background video: the script starts it (never under reduced motion) and adds a pause control (M29) */
.wg-pause{position:absolute;right:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);z-index:3;font:600 .85rem/1 var(--wg-body);padding:.7em 1em;border:0;border-radius:var(--wg-radius);background:rgba(0,0,0,.72);color:#fff;cursor:pointer}
.wg-pause:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px #000}
.wg-pause.wg-still{font-size:1.05rem;padding:.85em 1.25em;background:#fff;color:#111;box-shadow:0 4px 18px rgba(0,0,0,.35)}
@media (prefers-reduced-motion:reduce){.wg-js.wg-motion [data-reveal]{opacity:1;transform:none;transition:none}.wg-motion .wg-img img{animation:none}*{scroll-behavior:auto}}
@media (max-width:820px){.wg-hero-split,.wg-hero-statement .wg-under,.wg-ledger-head,.wg-feature,.wg-quote,.wg-sticky,.wg-people li,.wg-band .wg-inner,.wg-cta-split,.wg-contact{grid-template-columns:1fr}
.wg-hero-split{min-height:0}.wg-hero-split .wg-img{margin-right:0;min-height:300px;order:-1}.wg-sticky>:first-child{position:static}
.wg-imageband{aspect-ratio:4/3}.wg-hero-bleed{min-height:min(70vh,560px)}
.wg-timeline{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;overflow:visible;border-top:0;border-left:1px solid var(--wg-ink);padding-left:22px;gap:22px}.wg-timeline li{padding-top:0}.wg-timeline li::before{top:.4em;left:-28px}
.wg-ledger li{grid-template-columns:1fr;gap:.5em}.wg-ledger .wg-price{text-align:left}.wg-mosaic{grid-template-columns:1fr}.wg-mosaic figure{grid-column:auto!important;margin-top:0!important}}
.wg-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--wg-ground) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--wg-line)}
.wg-top-in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;position:relative}.wg-brand{font:var(--wg-dw) 1.35rem/1 var(--wg-display);text-decoration:none;letter-spacing:-.01em;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wg-brand-logo{display:block;line-height:0}.wg-logo{display:block;height:clamp(36px,4vw,52px);width:auto;max-width:min(240px,55vw);object-fit:contain}.wg-foot .wg-logo{height:44px}.wg-top-band .wg-logo{background:#fff;padding:5px 9px;border-radius:6px;box-sizing:content-box}.wg-logo.wg-logo-light{background:none!important;padding:0!important}
.wg-top-solid{background:var(--wg-hbg);color:var(--wg-hfg);backdrop-filter:none;border-bottom:0}.wg-top-solid .wg-brand,.wg-top-solid .wg-nav-wide a{color:var(--wg-hfg)}.wg-top-solid .wg-nav-wide a:hover{color:var(--wg-hfg);text-decoration:underline}.wg-top-solid .wg-top-cta,.wg-top-solid .wg-menu summary{border-color:var(--wg-hfg);color:var(--wg-hfg)}.wg-top-solid .wg-menu nav a{color:var(--wg-ink)}.wg-top-solid .wg-menu nav .wg-top-cta{border-color:var(--wg-ink);color:var(--wg-ink)}.wg-logo.wg-logo-plate{background:#fff!important;padding:5px 9px!important;border-radius:6px;box-sizing:content-box}
.wg-menu{display:none}.wg-menu summary{list-style:none;cursor:pointer;padding:.55em 1em;border:1px solid var(--wg-ink);border-radius:var(--wg-radius);font-weight:500}.wg-menu summary::-webkit-details-marker{display:none}
.wg-menu nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:8px clamp(16px,4vw,32px) 16px;background:var(--wg-ground);border-bottom:1px solid var(--wg-line);box-shadow:0 12px 24px rgba(0,0,0,.08)}.wg-menu nav a{padding:.8em 0;border-bottom:1px solid var(--wg-line)}.wg-menu nav .wg-top-cta{margin-top:12px;text-align:center;border-bottom:1px solid var(--wg-ink)}
.wg-top nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,32px);flex-wrap:wrap}.wg-top nav a{text-decoration:none;font-weight:500}.wg-top nav a:hover{color:var(--wg-accent-text)}
.wg-top-cta{padding:.55em 1.1em;border:1px solid var(--wg-ink);border-radius:var(--wg-radius)}
.wg-foot{border-top:1px solid var(--wg-ink);padding-block:clamp(40px,5vw,72px);font-size:.95rem}.wg-foot-in{display:grid;grid-template-columns:4fr 5fr 3fr;gap:var(--wg-gap)}.wg-foot p{margin:0 0 .4em}.wg-foot nav{display:flex;flex-direction:column;gap:.4em}.wg-foot nav a{text-decoration:none}
.wg-top-band{color:#fff;background:linear-gradient(rgba(0,0,0,var(--wg-band-o)),rgba(0,0,0,var(--wg-band-o))),var(--wg-band) center/cover no-repeat,var(--wg-ink);backdrop-filter:none;border-bottom:0;position:relative}
.wg-top-band .wg-top-in{min-height:clamp(96px,11vw,170px);text-shadow:0 1px 3px rgba(0,0,0,.45)}.wg-top-band .wg-brand,.wg-top-band .wg-nav-wide a{color:#fff}.wg-top-band .wg-top-cta,.wg-top-band .wg-menu summary{border-color:#fff;color:#fff}
.wg-top-band .wg-menu nav{text-shadow:none}.wg-top-band .wg-menu nav a{color:var(--wg-ink)}.wg-top-band .wg-menu nav .wg-top-cta{border-color:var(--wg-ink);color:var(--wg-ink)}
@media (max-width:820px){.wg-top nav{gap:14px;font-size:.92rem}.wg-foot-in{grid-template-columns:1fr}.wg-nav-wide{display:none!important}.wg-menu{display:block}.wg-menu nav{display:flex}}
