/* ───────── Le Bryn House ───────── */
@font-face{font-family:'Oranienbaum';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/oranienbaum-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Oranienbaum';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/oranienbaum-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Oranienbaum';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/oranienbaum-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Oranienbaum';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/oranienbaum-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/montserrat-500-latin.woff2) format('woff2')}

:root{
  --red:#C4120A; --blue:#1D4FC2; --sky:#E6EDFA; --blush:#FBE9E8; --rose:#F3C9C6;
  --ink:#000; --text:#333; --muted:#555; --line:#D9D9D9; --paper:#fff; --grey:#F2F2F2;
  --serif:'Oranienbaum',Georgia,serif; --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --gut:clamp(20px,4vw,60px); --sec:clamp(84px,10vw,160px);
  --ease:cubic-bezier(.2,.7,.1,1);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
*{box-sizing:border-box}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--red)}
::selection{background:var(--red);color:#fff}
img{max-width:100%}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}
em.r,.r-em{color:var(--red)}
em.hl{font-style:italic;color:var(--red);padding:0 .12em;margin:0 -.04em;background:linear-gradient(rgba(196,18,10,.78),rgba(196,18,10,.78)) no-repeat 0 60%/0% 88%;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size 1s var(--ease) .45s,color .5s ease .7s}
.shown em.hl,em.hl.shown,.hl-on em.hl{background-size:100% 88%;color:#fff}
[hidden]{display:none!important}
@keyframes mq{to{transform:translateX(-50%)}}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
@keyframes drift{to{transform:translate(160px,160px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* small labels */
.eyebrow{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.eyebrow.wide{letter-spacing:.2em}
.eyebrow.red{color:var(--red)}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 30px;background:var(--red);color:#fff;border:1px solid var(--red);border-radius:3px;box-shadow:none;font:700 14px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;text-align:center;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
.btn:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-1px)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:#fff;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.sm{padding:11px 20px;font-size:13px}
.btn.on-blue{background:#fff;color:var(--blue);border-color:#fff}
.btn.on-blue:hover{background:var(--red);border-color:var(--red);color:#fff}
.ctas .btn,.way .btn,.cs-cta .btn{min-width:240px}
@media (max-width:1100px){.ctas.stack .btn{min-width:0}}
.link-u{font-size:15px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--ink);align-self:flex-start;padding-bottom:4px}
.round{width:56px;height:56px;border-radius:50%;border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;color:var(--ink);background:transparent;transition:all .2s ease-in-out;font:inherit}
.round:hover{background:var(--ink);color:#fff}
.socials{display:flex;gap:15px;justify-content:center}

/* ── Header ── */
.hdr{position:fixed;top:0;left:0;right:0;z-index:40}
.hdr-d{background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid rgba(0,0,0,.06);transition:background .3s,border-color .3s}
body.over-photo .hdr-d{background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.hdr-d .in{padding:14px var(--gut);display:flex;justify-content:space-between;align-items:center;gap:30px}
.hdr nav{display:flex;gap:clamp(15px,2vw,30px);align-items:center;font-size:15px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.hdr nav.right{justify-content:flex-end}
.hdr nav a.cur{color:var(--red)}
.logo{display:flex}
.logo img{display:block;height:clamp(30px,2.6vw,38px);width:auto}
.hdr-m{display:none;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.06)}
.hdr-m .in{padding:10px 20px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.hdr-m .logo img{height:28px}
.menu-btn{justify-self:end;width:48px;height:48px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.menu-btn[aria-expanded=true]{background:var(--ink);color:#fff}
.m-menu{position:fixed;inset:69px 0 0 0;z-index:39;background:#fff;overflow:auto;padding:37px 20px 30px;display:flex;flex-direction:column;gap:37px;animation:rise .35s ease-out}
.m-menu .links a{display:flex;justify-content:space-between;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line);font:44px/1 var(--serif);letter-spacing:-.02em}
.m-menu .links a span{font:20px var(--sans);color:var(--red)}
.m-menu .btn{width:100%}
@media (max-width:1100px){.hdr-d{display:none}.hdr-m{display:block}}

/* ── Hero ── */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:-10% 0 0 0;background:radial-gradient(120% 80% at 80% 20%,var(--sky) 0,rgba(227,234,245,0) 60%),radial-gradient(90% 70% at 10% 30%,var(--blush) 0,rgba(251,233,232,0) 60%)}
.hero-bg img.photo{width:100%;height:100%;object-fit:cover;object-position:62% 40%;display:block;animation:kb 24s ease-in-out infinite alternate;transform-origin:70% 40%}
.hero.has-photo .hero-fade,.hero.has-photo .hero-mark{display:none}
@media (max-width:700px){
  .hero.has-photo{min-height:0;justify-content:flex-start;padding-top:69px}
  .hero.has-photo .hero-bg{position:relative;inset:auto;height:56vh;overflow:hidden;transform:none!important}
  .hero.has-photo .hero-bg img.photo{object-position:58% 30%}
  .hero.has-photo .in{padding-top:30px}
}
.hero-mark{position:absolute;right:clamp(-60px,-2vw,0px);top:12%;width:clamp(260px,38vw,620px);opacity:.09;pointer-events:none}
.hero-fade{position:absolute;inset:0;background:linear-gradient(to top,#fff 10%,rgba(255,255,255,.7) 50%,rgba(255,255,255,.35));pointer-events:none}
.hero .in{position:relative;padding:0 var(--gut) 37px}
.hero h1{font-size:clamp(42px,8vw,136px);line-height:.92;letter-spacing:-.03em;margin-bottom:30px}
.mask{display:block;overflow:hidden}
.mask>span{display:block}
.hero .row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px}
.hero .row p{margin:0;font-size:18px;line-height:1.5;flex:0 1 400px}
.ctas{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:1100px){.ctas.stack{flex-direction:column;width:100%}}

/* ── Ticker ── */
.ticker{background:var(--blue);padding:20px 0;overflow:hidden}
.ticker .track{display:flex;width:max-content;animation:mq 40s linear infinite}
.ticker span{padding-right:60px;font-size:15px;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;color:#fff}

/* ── Experience ── */
.exp{scroll-margin-top:60px;padding:var(--sec) var(--gut) clamp(48px,6vw,96px)}
.stats{perspective:800px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:30px}
.stat{display:flex;flex-direction:column;gap:15px}
.num{display:inline-block;font:clamp(72px,9vw,140px)/.85 var(--serif);letter-spacing:-.03em;opacity:0;transform:translateY(60px) rotateX(70deg) scale(.8);filter:blur(10px);transform-origin:50% 100%;transition:opacity .9s ease-out,transform 1.4s cubic-bezier(.2,.8,.2,1),filter 1s ease-out}
.num .plus{display:inline-block;color:var(--red);transform:scale(0);transition:transform .6s cubic-bezier(.3,1.6,.5,1) 1.3s}
.stat.shown .num{opacity:1;transform:none;filter:none}
.stat .num{position:relative;isolation:isolate;padding:0 .06em;margin-left:-.06em;-webkit-text-stroke:2.5px currentColor;cursor:default}
.stat .num::before{content:"";position:absolute;inset:.04em 0 -.02em;z-index:-1;background:rgba(196,18,10,.78);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.stat .num{transition:opacity .9s ease-out,transform 1.4s cubic-bezier(.2,.8,.2,1),filter 1s ease-out,color .4s ease}
.stat .num .plus{transition:transform .6s cubic-bezier(.3,1.6,.5,1) 1.3s,color .4s ease}
.stat:hover .num{color:#fff}
.stat:hover .num .plus{color:#fff}
.stat:hover .num::before{transform:scaleX(1)}
.stat.shown .plus{transform:none}
.big-claim{margin-top:var(--sec);text-align:center;display:flex;flex-direction:column;align-items:center;gap:30px}
.big-claim p{margin:0;font:clamp(40px,6vw,96px)/1 var(--serif);letter-spacing:-.02em;max-width:16ch;text-wrap:balance}

/* ── Trusted by ── */
.trusted{padding:0 var(--gut) clamp(40px,5vw,80px)}
.trusted img{display:block;width:100%;height:auto;max-width:1600px;margin:0 auto}

/* ── Selected work ── */
.work{padding:0 var(--gut) var(--sec)}
.sec-bar{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;padding:30px 0;border-top:1px solid var(--line);margin-bottom:60px}
.work-list{display:flex;flex-direction:column;gap:30px}
.wcard{position:sticky;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));min-height:min(80vh,720px);border:1px solid var(--line);color:var(--ink);overflow:hidden}
.wcard:hover{color:var(--ink)}
.wcard .media{position:relative;min-height:320px}
.wcard .body{padding:clamp(30px,4vw,60px);display:flex;flex-direction:column;justify-content:space-between;gap:37px}
.wcard .mid{display:flex;flex-direction:column;gap:20px}
.wcard h3{font-size:clamp(40px,4.6vw,76px);line-height:.95;letter-spacing:-.02em;text-wrap:balance}
.wcard .wlogo{display:block;height:clamp(40px,4.4vw,64px);width:auto;max-width:min(100%,280px);object-fit:contain;object-position:left center;filter:brightness(0)}
.wcard .res li{font-style:italic}
.wcard p{margin:0;font-size:19px;line-height:1.6;color:var(--text);max-width:40ch}
.res{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.res li{display:flex;gap:10px;align-items:baseline;font-size:clamp(17px,1.4vw,20px);line-height:1.35}
.res li::before{content:"↗";font-weight:700;color:var(--red)}
.svc-line{padding-top:20px;border-top:1px solid var(--line);font-size:15px;line-height:1.7;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.svc-line b{font-weight:inherit}
.wcard:hover .link-u{color:var(--red);border-color:var(--red)}
.cta-box{margin-top:60px;padding:clamp(30px,4vw,60px);border:1px solid var(--red);display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta-box p{margin:0;font:clamp(29px,3.4vw,52px)/1.05 var(--serif);max-width:18ch}

/* media placeholder / image */
.ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:clamp(20px,3vw,37px);overflow:hidden}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph .mono{position:relative;font:clamp(64px,9vw,160px)/.85 var(--serif);letter-spacing:-.04em;color:rgba(0,0,0,.08);user-select:none}
.ph.dark .mono{color:rgba(255,255,255,.18)}
.ph img.mark{inset:auto;right:9%;top:9%;width:30%;max-width:180px;height:auto;object-fit:contain;opacity:.14}
.ph.dark img.mark{filter:invert(1);opacity:.2}
.box{position:relative}

/* ── Services ── */
.services{overflow:hidden;background:var(--blue);color:#fff;padding:var(--sec) var(--gut)}
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:60px}
.svc-head h2{margin:0!important}
.walk{flex:none;width:clamp(180px,30vw,460px);height:auto;margin:-50px 0 -40px;pointer-events:none;animation:walk 7s ease-in-out infinite alternate}
@keyframes walk{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(-24px) rotate(-.6deg)}100%{transform:translateX(-48px) rotate(0)}}
@media (max-width:700px){.walk{width:44vw;margin:-20px 0 -20px 0}}
.svc-head h2{font-size:clamp(56px,9vw,140px);line-height:.9;letter-spacing:-.03em;margin-bottom:60px}
.acc{border-top:1px solid #fff}
.acc>button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 30px;align-items:start;padding:37px 0;background:transparent;border:0;color:#fff;font:inherit;text-align:left;cursor:pointer}
.acc .t{display:block;font:clamp(40px,6vw,96px)/1 var(--serif);letter-spacing:-.02em;transition:color .35s ease,transform .5s var(--ease)}
.acc>button:hover .t{color:#F3C9C6;transform:translateX(14px)}
.acc .d{transition:transform .5s var(--ease) .05s,opacity .35s}
.acc>button:hover .d{transform:translateX(14px)}
.acc .d{display:block;margin-top:15px;font:italic clamp(20px,2vw,28px)/1.3 var(--serif);max-width:34ch}
.acc .pm{position:relative;flex:none;width:56px;height:56px;border-radius:50%;border:1px solid #fff;transition:all .4s ease-in-out}
.acc .pm::before,.acc .pm::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:currentColor;translate:-50% -50%}
.acc .pm::after{width:1.5px;height:18px}
.acc>button:hover .pm{background:rgba(255,255,255,.14)}
.acc.open .t{font-style:italic}
.acc.open .pm{background:#fff;color:var(--blue);transform:rotate(45deg)}
.acc .panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s ease-in-out}
.acc.open .panel{grid-template-rows:1fr}
.acc .panel>div{overflow:hidden}
.acc .inner{display:flex;flex-direction:column;gap:20px;padding:0 0 37px}
.acc ul{margin:0;padding:0;list-style:none;columns:3 200px;column-gap:30px;font-size:17px;line-height:2.2}
.acc .btn{align-self:flex-start}
.services .end{border-top:1px solid #fff}
.services .foot{margin-top:60px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.services .foot p{margin:0;font:clamp(29px,3.4vw,48px)/1.05 var(--serif);max-width:20ch}

/* ── Under one roof ── */
.roof{background:var(--sky);padding:clamp(84px,12vw,200px) var(--gut);text-align:center;display:flex;flex-direction:column;align-items:center;gap:60px}
.roof h2{font-size:clamp(48px,7vw,120px);line-height:.95;letter-spacing:-.03em;max-width:13ch;text-wrap:balance}
.chain{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.chain>span{display:flex;align-items:center;gap:10px}
.pill{display:inline-block;padding:15px 30px;background:#fff;border:1px solid var(--red);border-radius:999px;font-size:15px;letter-spacing:.12em;text-transform:uppercase;transition:all .2s ease-in-out}
.pill:hover{background:var(--red);color:#fff}
.chain .arr{color:var(--red)}
.roof p{margin:0;max-width:52ch;font-size:clamp(18px,1.6vw,21px);line-height:1.65;color:var(--text);text-wrap:pretty}

/* ── Case studies strip ── */
.cases{padding:var(--sec) 0;border-top:1px solid var(--line)}
.cases .top{padding:0 var(--gut);display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:60px}
.cases h2{font-size:clamp(48px,7vw,110px);line-height:.9;letter-spacing:-.03em}
.arrows{display:flex;gap:10px}
.arrows button{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font:20px var(--sans);cursor:pointer}
.arrows button:hover{border-color:var(--red);color:var(--red)}
.strip{display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gut) 20px;scrollbar-width:none;scroll-padding:0 var(--gut);overscroll-behavior-x:contain}
.strip::-webkit-scrollbar{display:none}
.ccard{flex:none;width:min(78vw,460px);scroll-snap-align:start;display:flex;flex-direction:column;gap:20px;color:var(--ink)}
.ccard .box{aspect-ratio:3/4}
.ccard h3{font-size:clamp(29px,2.6vw,40px);line-height:1.05;text-wrap:balance}
.ccard:hover{color:var(--ink)}
.ccard:hover .link-u{color:var(--red);border-color:var(--red)}
.ccard .box .ph img{transition:transform .8s var(--ease)}
.ccard:hover .box .ph img{transform:scale(1.04)}
.cnext{flex:none;width:min(78vw,460px);scroll-snap-align:start;aspect-ratio:3/4;align-self:flex-start;border:1px solid var(--red);padding:37px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.cnext p{margin:0;font:clamp(36px,3.4vw,52px)/1 var(--serif)}
.cnext .btn{align-self:flex-start}
.center{display:flex;justify-content:center}

/* ── Two ways ── */
.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.way{padding:clamp(60px,8vw,120px) var(--gut);display:flex;flex-direction:column;gap:30px;border-top:1px solid var(--line)}
.way+.way{background:var(--grey);border-left:1px solid var(--line)}
.way h3{font-size:clamp(44px,5vw,84px);line-height:.95;letter-spacing:-.02em}
.way p{margin:0;font-size:19px;line-height:1.6;color:var(--text);max-width:34ch;flex:1}
.way .btn{align-self:flex-start;margin-top:10px}

/* ── Contact ── */
.contact{position:relative;overflow:hidden;background:var(--blush);padding:clamp(72px,9vw,130px) var(--gut) 30px;border-top:1px solid var(--line);text-align:center}
.contact>*,.ab-cta>*{position:relative;z-index:1}
.contact>.stack{z-index:5}
.contact .abstract,.ab-cta .abstract{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.abstract .spin{transform-box:view-box;animation:spin 80s linear infinite}
.abstract .spin.rev{animation-direction:reverse;animation-duration:110s}
.abstract .spin{animation-duration:160s}
.abstract .spin.rev{animation-duration:220s}
.abstract .drift{animation:sway 14s ease-in-out infinite alternate}
@keyframes sway{to{transform:translate(-40px,14px)}}
.contact .orb,.ab-cta .orb{position:absolute;z-index:0;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}
.contact .orb.a,.ab-cta .orb.a{width:40vw;height:40vw;max-width:560px;max-height:560px;left:-10vw;top:-8vw;background:#F3C9C6;animation:float 18s ease-in-out infinite alternate}
.contact .orb.b,.ab-cta .orb.b{width:34vw;height:34vw;max-width:480px;max-height:480px;right:-8vw;bottom:10%;background:#E6EDFA;animation:float 22s ease-in-out infinite alternate-reverse}
@keyframes float{to{transform:translate(6vw,4vw) scale(1.1)}}
.contact h2{margin:37px auto 0;font-size:clamp(56px,10vw,170px);line-height:.9;letter-spacing:-.035em}
.contact .stack{margin-top:clamp(37px,4vw,56px);display:flex;flex-direction:column;align-items:center;gap:37px}
.email-big{font:clamp(26px,3vw,44px)/1 var(--serif);border-bottom:1px solid currentColor;padding-bottom:6px}
.quick{width:100%;max-width:820px;background:#fff;border:1px solid var(--line);padding:clamp(20px,3vw,37px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;align-items:end;scroll-margin-top:120px}
.fl{display:flex;flex-direction:column;gap:10px;text-align:left;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sel{font:18px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);padding:15px 44px 15px 15px;border:1px solid var(--line);border-radius:0;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 15px center;appearance:none;-webkit-appearance:none;outline:none;cursor:pointer;width:100%}
.sel:focus{border-color:var(--red)}
.dd{position:relative;width:100%;text-align:left}
.dd-native{position:absolute!important;opacity:0;pointer-events:none;width:1px!important;height:1px;overflow:hidden}
.dd-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;font:18px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);padding:15px;border:1px solid var(--line);border-radius:3px;background:#fff;cursor:pointer;text-align:left;transition:border-color .2s}
.dd-btn:hover,.dd.open .dd-btn,.dd-btn:focus-visible{border-color:var(--red);outline:none}
.dd-btn .phd{color:#888}
.dd-btn svg{flex:none;transition:transform .3s var(--ease)}
.dd.open .dd-btn svg{transform:rotate(180deg)}
.dd.line .dd-btn{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;font-size:19px;background:transparent}
.dd-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 18px 44px rgba(0,0,0,.12);max-height:320px;overflow:auto;animation:rise .22s ease-out}
.dd-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-radius:3px;font:17px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer}
.dd-list li:hover,.dd-list li.act{background:var(--blush)}
.dd-list li[aria-selected=true]{color:var(--red)}
.dd-list li[aria-selected=true]::after{content:"";width:6px;height:11px;border:solid var(--red);border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-3px}
.err{grid-column:1/-1;margin:0;text-align:left;font-size:16px;color:#B3261E}
.err a{color:#B3261E;text-decoration:underline}
.wordmark{margin-top:clamp(56px,7vw,110px);font:500 clamp(34px,10.2vw,196px)/1.1 'Montserrat',"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;letter-spacing:.005em;white-space:nowrap;color:var(--rose);padding-bottom:10px}
.foot-bar{padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.foot-bar a{color:var(--muted)}

/* ── Case page ── */
.page{padding-top:90px}
@media (max-width:1100px){.page{padding-top:69px}}
.cs-top{padding:clamp(37px,6vw,84px) var(--gut) clamp(60px,8vw,120px)}
.back{display:inline-flex;gap:10px;font-size:15px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.cs-top h1{margin-top:20px;font-size:clamp(48px,8vw,130px);line-height:.92;letter-spacing:-.03em;max-width:14ch;text-wrap:balance;animation:rise .8s var(--ease)}
.cs-hero{margin-top:clamp(37px,5vw,60px);aspect-ratio:16/8}
.cs-grid{margin-top:clamp(37px,5vw,60px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:37px 60px}
.cs-grid>p{margin:0;font-size:clamp(19px,1.7vw,24px);line-height:1.55;color:var(--text);text-wrap:pretty}
.tags{display:flex;flex-wrap:wrap;gap:10px}
.tags span{padding:10px 15px;border:1px solid var(--ink);font-size:16px}
.cs-res{background:var(--blue);color:#fff;padding:clamp(60px,8vw,120px) var(--gut)}
.cs-res h2{margin-bottom:37px;font-size:clamp(44px,6vw,96px);line-height:.95;letter-spacing:-.02em}
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:15px}
.res-grid div{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);padding:30px;font-size:clamp(19px,1.6vw,23px);line-height:1.35}
.res-grid b{font-weight:700;color:var(--red)}
.cs-pics{padding:clamp(60px,8vw,120px) var(--gut);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:30px}
.cs-pics .box{aspect-ratio:4/5}
.cs-cta{background:var(--blush);padding:clamp(60px,8vw,120px) var(--gut);display:flex;flex-direction:column;align-items:center;text-align:center;gap:37px}
.cs-cta h2{font-size:clamp(40px,6vw,96px);line-height:.95;letter-spacing:-.02em;max-width:14ch}
.cs-cta .ctas{justify-content:center}

/* ── About page ── */
.ab-hero{padding:clamp(60px,9vw,140px) var(--gut) clamp(60px,8vw,120px)}
.ab-hero h1{margin-top:30px;font-size:clamp(52px,9vw,150px);line-height:.92;letter-spacing:-.035em}
.ab-hero .grid{margin-top:clamp(60px,8vw,120px);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,5vw,84px);align-items:center}
@media (max-width:900px){.ab-hero .grid{grid-template-columns:minmax(0,1fr)}}
.team-pic img{display:block;width:100%;max-width:640px;height:auto;margin:0 auto}
.team-pic .ph{position:relative;aspect-ratio:4/5}
.team-txt{display:flex;flex-direction:column;gap:clamp(30px,3vw,44px)}
.team-txt .lead{margin:0;font:clamp(24px,2.2vw,34px)/1.25 var(--serif);letter-spacing:-.01em;text-wrap:pretty;max-width:40ch}
.founder{display:flex;flex-direction:column;gap:10px;padding-top:24px;border-top:1px solid var(--line)}
.founder h3{font-size:clamp(28px,2.4vw,38px);line-height:1.05}
.founder p{margin:6px 0 0;font-size:18px;line-height:1.6;color:var(--text);max-width:48ch}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:30px 60px}
.two h2{font-size:clamp(44px,5.4vw,84px);line-height:.95;letter-spacing:-.02em}
.two p{margin:0;font-size:clamp(19px,1.7vw,23px);line-height:1.65;color:var(--text);max-width:44ch;text-wrap:pretty}
.house{background:var(--blue);color:#fff;padding:var(--sec) var(--gut)}
.house .two p{color:#fff}
.approach{padding:var(--sec) var(--gut);display:flex;flex-direction:column;gap:clamp(60px,8vw,120px)}
.approach .two{padding-top:37px;border-top:1px solid var(--ink)}
.approach .two p.quote{font:italic clamp(28px,3vw,44px)/1.15 var(--serif);max-width:20ch;text-wrap:balance;color:var(--ink)}
.timeline-sec{background:var(--sky);padding:var(--sec) var(--gut)}
.timeline-sec .head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:30px;margin-bottom:clamp(60px,8vw,120px)}
.timeline-sec h2{font-size:clamp(48px,7vw,120px);line-height:.92;letter-spacing:-.03em;max-width:12ch;text-wrap:balance}
.timeline-sec .head p{margin:0;font-size:clamp(19px,1.7vw,22px);line-height:1.6;color:var(--text);max-width:48ch}
.tl{position:relative;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(60px,8vw,120px)}
.tl::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--ink)}
.tl article{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px clamp(30px,6vw,120px);align-items:center}
.tl article::before{content:"";position:absolute;left:50%;top:50%;width:15px;height:15px;border-radius:50%;background:var(--red);border:3px solid var(--ink);translate:-50% -50%;z-index:1}
.tl .box{aspect-ratio:1/1;width:100%;max-width:520px;justify-self:center}
.tl .box .ph img{object-position:50% 22%}
.collage{position:relative}
.collage img{position:absolute;object-fit:cover;object-position:50% 20%;border:7px solid #fff;box-shadow:0 14px 34px rgba(0,0,0,.18);transition:transform .6s var(--ease)}
.collage .c1{left:3%;top:9%;width:50%;height:76%;transform:rotate(-5deg);z-index:1}
.collage .c2{right:3%;top:5%;width:52%;height:88%;transform:rotate(4deg)}
.collage:hover .c1{transform:rotate(-2deg) translateX(-6px)}
.collage:hover .c2{transform:rotate(1.5deg) translateX(6px)}
.tl .txt{display:flex;flex-direction:column;gap:15px}
.tl article:nth-child(even) .txt{order:-1;text-align:right;align-items:flex-end}
.tl .yr{font:clamp(56px,6vw,96px)/.9 var(--serif);color:var(--red)}
.tl h3{font-size:clamp(29px,2.6vw,40px);line-height:1.05}
.tl p{margin:0;font-size:18px;line-height:1.6;color:var(--text);max-width:40ch}
@media (max-width:1100px){
  .tl::before{left:7px}
  .tl article{grid-template-columns:minmax(0,1fr);padding-left:37px}
  .tl article::before{left:7px;top:0}
  .tl article:nth-child(even) .txt{order:1;text-align:left;align-items:flex-start}
}
.ab-cta{position:relative;overflow:hidden;background:var(--blush);padding:var(--sec) var(--gut) 30px;text-align:center}
.ab-cta h2{margin:0 auto;font-size:clamp(48px,8vw,130px);line-height:.92;letter-spacing:-.03em;max-width:16ch}
.ab-cta .stack{margin:60px auto 0;display:flex;flex-direction:column;align-items:center;gap:37px;max-width:440px}
.ab-cta .foot-bar{margin-top:var(--sec)}

/* ── Lead form overlay ── */
.ov{position:fixed;inset:0;z-index:60;background:#fff;overflow:auto;animation:rise .4s ease-out}
.ov-top{position:sticky;top:0;z-index:1;background:#fff}
.ov-top .in{padding:20px var(--gut);display:flex;justify-content:space-between;align-items:center;gap:20px}
.ov-top img{display:block;height:30px;width:auto}
.x{flex:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:transparent;font:20px var(--sans);cursor:pointer;color:var(--ink)}
.x:hover{border-color:var(--red)}
.bar{height:3px;background:#eee}
.bar div{height:100%;background:var(--red);transition:width .5s ease-in-out}
.ov form{max-width:960px;margin:0 auto;padding:clamp(37px,6vw,84px) var(--gut) 84px;display:flex;flex-direction:column;gap:37px}
.step{display:flex;flex-direction:column;gap:37px;animation:rise .6s var(--ease)}
.step h2{font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.02em}
.step>p{margin:0;font-size:19px;line-height:1.6;color:var(--text);max-width:52ch}
.grp{display:flex;flex-direction:column;gap:15px}
.grp>span{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:13px 20px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;font:16px var(--sans);cursor:pointer;transition:all .2s ease-in-out}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.card{text-align:left;padding:20px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:all .2s ease-in-out}
.card:hover{border-color:var(--ink)}
.card[aria-pressed=true]{border-color:var(--red);background:var(--blush)}
.card b{font:400 26px/1.1 var(--serif)}
.card span{font-size:15px;line-height:1.4;color:var(--muted)}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:30px}
.fld{display:flex;flex-direction:column;gap:6px;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fld input,.fld select,.fld textarea{font:19px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);padding:10px 0;border:0;border-bottom:1px solid var(--line);outline:none;background:transparent;border-radius:0}
.fld textarea{font-size:18px;line-height:1.5;padding:15px;border:1px solid var(--line);background:#fff;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--red)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{margin:0;font-size:15px;line-height:1.5;color:var(--muted);max-width:60ch}
.consent a{color:var(--ink);text-decoration:underline}
.nav-row{display:flex;flex-direction:column;gap:15px;border-top:1px solid var(--line);padding-top:30px}
.nav-row .r{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.nav-row .note{font-size:15px;color:var(--muted)}
.nav-row .btn[type=submit]{margin-left:auto}
.nav-row .btn.dim{opacity:.55}
.steps3{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.steps3 li{padding:20px;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;font-size:17px;line-height:1.5}
.steps3 b{font:400 36px var(--serif);color:var(--red)}
.summary{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.summary div{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:20px;padding:15px 0;border-bottom:1px solid #eee}
.summary span:first-child{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.summary span:last-child{font-size:17px}

/* floating CTA */
.float{position:fixed;right:clamp(15px,3vw,37px);bottom:clamp(15px,3vw,37px);z-index:30;animation:rise .5s ease-out}
@media (max-width:1100px){.float{left:16px;right:16px;bottom:16px;max-width:440px;margin:0 auto}}

/* reveal */
.js [data-r]{opacity:0;transform:translateY(40px)}
.js [data-r=mask]{opacity:0;transform:translateY(105%)}
.js [data-r].shown{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js [data-r]{opacity:1!important;transform:none!important}
  .num{opacity:1;transform:none;filter:none}.num .plus{transform:none}
}

/* ── Privacy policy page ── */
.legal-hdr{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px var(--gut);border-bottom:1px solid var(--line)}
.legal-hdr .logo img{height:32px}
.legal{max-width:760px;margin:0 auto;padding:clamp(48px,7vw,96px) var(--gut) clamp(60px,8vw,120px);font-size:18px;line-height:1.7;color:var(--text)}
.legal h1{margin:20px 0 8px;font-size:clamp(48px,7vw,96px);line-height:.95;letter-spacing:-.03em;color:var(--ink)}
.legal h2{margin:48px 0 12px;font-size:clamp(28px,3vw,38px);line-height:1.1;color:var(--ink)}
.legal .updated{margin:0 0 36px;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.legal p{margin:0 0 16px}
.legal ul{margin:0 0 16px;padding-left:1.2em}
.legal li{margin-bottom:10px}
.legal a{color:var(--red);text-decoration:underline}
.legal strong{color:var(--ink)}
.legal .fill-in{background:#FFF3B0;padding:0 .2em}
.legal-foot{margin:0 var(--gut);padding-bottom:30px}
.foot-bar a:hover{color:var(--red)}
