:root{--ink:#111214;--ink-2:#1b1c1f;--ink2:#3b3f48;--mute:#6b7079;--paper:#fff;--stone:#f4f2ee;--line:#e4e1db;--gold:#3a5bc7;--gold-l:#4a6ddb;--gold-d:#2f4aa6;--blue:var(--gold);--blue-d:var(--gold-d);--char:#111214;--on-dark:#c9c5be;--max:1240px;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html,body{overflow-x:clip}
body{margin:0;font:16px/1.6 "Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper);padding-bottom:64px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}a{color:var(--ink);text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{color:var(--gold-d)}
h1,h2,h3{font-weight:700;letter-spacing:-.03em;line-height:1.04;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,5.4vw,4.6rem)}h2{font-size:clamp(1.8rem,3.6vw,3rem);margin-top:0}h3{font-size:1.2rem;letter-spacing:-.015em;line-height:1.2}
em{font-style:normal;color:var(--gold-d)}.dk em,.hero em,.hx em,.dark em{color:var(--gold)}
p{margin:0 0 1em}.lead{font-size:1.2rem;color:var(--ink2);max-width:58ch;line-height:1.55}.muted{color:var(--mute)}.small{font-size:.9rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}.sec{padding:96px 24px}.pg{padding:56px 24px 72px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
.hp{position:absolute;left:-9999px;opacity:0}
.dk,.dark{background:var(--ink);color:#fff}.dk h2,.dk h3,.dark h2,.dark h3{color:#fff}.dk p,.dark p{color:var(--on-dark)}.dk a:not(.btn),.dark a:not(.btn){color:#fff}
.stone{background:var(--stone)}
/* header */
.hd{position:sticky;top:0;z-index:50;background:rgba(17,18,20,.9);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.07);transition:background .3s,box-shadow .3s,border-color .3s}
.hd-in{display:flex;align-items:center;gap:28px;height:76px;transition:height .25s}.lg img{width:180px;height:auto;transition:width .25s}
.nav{margin-left:auto}.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}.nav a{color:#ece9e4;text-decoration:none;font-weight:500;font-size:.96rem;position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav a:hover{color:#fff}.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.hd-act{display:flex;align-items:center;gap:18px}.tel{font-weight:700;color:#fff;text-decoration:none;white-space:nowrap}.tel:hover{color:var(--gold)}
.hd.sc .hd-in{height:62px}.hd.sc .lg img{width:150px}.hd.sc{box-shadow:0 8px 30px rgba(0,0,0,.25)}
body.home .hd{position:fixed;left:0;right:0;background:transparent;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}body.home .hd.sc{background:rgba(17,18,20,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.burger{display:none;margin-left:auto;background:0;border:0;padding:8px;cursor:pointer;width:44px;height:44px}.burger span{display:block;height:2px;background:#fff;margin:6px 0;transition:.25s}
.mnav{display:none;background:var(--ink);border-top:1px solid rgba(255,255,255,.08)}.mnav ul{list-style:none;margin:0;padding:8px 24px 20px}.mnav a{display:block;padding:15px 0;color:#fff;text-decoration:none;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08);font-size:1.15rem}
body.open .mnav{display:block;animation:fade .25s}body.open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}body.open .burger span:nth-child(2){opacity:0}body.open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
body.home.open .hd{background:var(--ink)}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--ink);text-decoration:none;font-weight:700;padding:15px 24px;border-radius:999px;border:0;cursor:pointer;font-size:1rem;line-height:1.2;position:relative;overflow:hidden;transition:background .2s,transform .2s var(--ease),box-shadow .2s}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn:hover{background:var(--gold-l);color:var(--ink);transform:translateY(-2px);box-shadow:0 10px 28px rgba(58,91,199,.35)}.btn:hover::after{transform:translateX(120%)}.btn:active{transform:none}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45)}.btn.ghost:hover{box-shadow:inset 0 0 0 1.5px var(--gold);color:var(--gold)}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin:1.6em 0 0}.lnk{font-weight:600;color:var(--ink)}.lnk-w{color:#fff;font-weight:600}
.dk .lnk,.dark .lnk,.hero .lnk{color:#fff}
.arw{display:inline-block;width:18px;height:18px;transition:transform .3s var(--ease)}a:hover .arw{transform:translateX(4px)}
/* home hero */
.hx{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:var(--ink);overflow:hidden}
.hx-slides,.hx-s{position:absolute;inset:0;margin:0}.hx-s{opacity:0;transition:opacity 1.6s ease}.hx-s.on{opacity:1}
.hx-s img{width:100%;height:100%;object-fit:cover;transform:scale(1.14)}.hx-s.on img{animation:kb 9s linear both}@keyframes kb{from{transform:scale(1.14) translate(0,0)}to{transform:scale(1.02) translate(-1.5%,-1%)}}
.hx-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,12,.55) 0%,rgba(10,10,12,.15) 32%,rgba(10,10,12,.35) 55%,rgba(10,10,12,.92) 100%)}
.hx-in{position:relative;padding-top:140px;padding-bottom:36px;width:100%}
.hx h1{font-size:clamp(2.8rem,8vw,7.2rem);line-height:.95;letter-spacing:-.045em;max-width:12ch;margin-bottom:.35em}
.hx h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}.hx h1 .ln>span{display:block;animation:lnup 1.1s var(--ease) both}.hx h1 .ln:nth-child(2)>span{animation-delay:.12s}.hx h1 .ln:nth-child(3)>span{animation-delay:.24s}
@keyframes lnup{from{transform:translateY(105%)}to{transform:none}}
.hx-p{font-size:clamp(1.05rem,1.5vw,1.25rem);color:#dedad3;max-width:52ch;animation:rise 1s .45s var(--ease) both}.hx .cta{animation:rise 1s .6s var(--ease) both}
.hx-foot{position:relative;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-bottom:30px;border-top:1px solid rgba(255,255,255,.14);padding-top:22px;animation:fade 1.2s .9s both}
.hx-proof{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:.92rem;color:#e9e5de}.hx-proof li{display:flex;align-items:center;gap:9px}.hx-proof li::before{content:"";width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.hx-cap{display:block;min-width:250px;text-decoration:none;color:#fff;text-align:right}.hx-cap small{display:block;color:var(--gold);font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.hx-cap span{font-weight:600}
.hx-bar{display:block;height:2px;background:rgba(255,255,255,.2);margin-top:10px;overflow:hidden}.hx-bar i{display:block;height:100%;background:var(--gold);transform-origin:left;animation:bar 7s linear both}@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hx-cap:hover span{color:var(--gold)}
/* statement */
.stmt{font-size:clamp(1.7rem,4vw,3.4rem);font-weight:700;letter-spacing:-.03em;line-height:1.12;max-width:22ch;margin:0}
.stmt .w{opacity:.18;transition:opacity .3s}.stmt.lit .w,.no-gsap .stmt .w{opacity:1}.stmt em{color:var(--gold)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:72px;border-top:1px solid rgba(255,255,255,.12);padding-top:32px}
.stats b{display:block;font-size:clamp(2.2rem,4vw,3.4rem);letter-spacing:-.04em;line-height:1;color:#fff}.stats b i{font-style:normal;color:var(--gold)}.stats span{color:var(--on-dark);font-size:.95rem}
/* section heads */
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:44px}.sh h2{margin:0;max-width:16ch}.sh p{margin:0;max-width:42ch;color:var(--ink2)}.dk .sh p{color:var(--on-dark)}
/* services bento */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:14px}
.sv{position:relative;display:block;overflow:hidden;border-radius:14px;color:#fff;text-decoration:none;background:var(--ink-2);isolation:isolate}
.sv:nth-child(1){grid-column:span 2;grid-row:span 2}.sv:nth-child(2){grid-column:span 2}.sv:nth-child(11){grid-column:span 2}
.sv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);z-index:-2}
.sv.has-i::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.78) 100%);z-index:-1}
.sv.no-i{background:radial-gradient(120% 90% at 100% 0%,#262a33 0%,#151618 60%)}
.sv::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.22) 50%,transparent 62%);transform:translateX(-130%);transition:transform 1.1s var(--ease);pointer-events:none}
.sv:hover img{transform:scale(1.07)}.sv:hover::after{transform:translateX(130%)}
.sv-t{position:absolute;left:22px;right:56px;bottom:20px}.sv-n{display:block;font-weight:700;font-size:1.25rem;letter-spacing:-.02em;line-height:1.15}.sv:nth-child(1) .sv-n{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.sv-p{display:block;color:var(--gold);font-weight:600;font-size:.92rem;margin-top:4px}
.sv-a{position:absolute;right:18px;bottom:18px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;transition:background .3s,transform .3s var(--ease)}.sv:hover .sv-a{background:var(--gold);transform:rotate(-45deg)}.sv:hover .sv-a svg{stroke:var(--ink)}
.sv-a svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2}
.sv.no-i .sv-d{position:absolute;left:22px;right:22px;top:22px;color:#a9a49c;font-size:.92rem;line-height:1.45}
/* work: horizontal track */
.wk-sec{overflow:hidden}.wk-track{display:flex;gap:22px;padding:0 24px 8px max(24px,calc((100vw - var(--max))/2 + 24px));will-change:transform}
.no-pin .wk-track{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.no-pin .wk-track::-webkit-scrollbar{display:none}.no-pin .wk-track>*{scroll-snap-align:start}
.wk-track .wk{flex:none;width:min(420px,78vw)}.wk-track .wk .wk-i{aspect-ratio:4/5}
.wk{position:relative;display:block;overflow:hidden;border-radius:14px;text-decoration:none;color:#fff;background:var(--ink-2)}
.wk-i{display:block;aspect-ratio:4/3;overflow:hidden}.wk-i img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}.wk:hover .wk-i img{transform:scale(1.06)}
.wk-t{position:absolute;left:0;right:0;bottom:0;padding:60px 20px 18px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.82))}
.wk-m{display:block;color:var(--gold);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px}.wk-n{display:block;font-weight:700;font-size:1.12rem;line-height:1.2;letter-spacing:-.01em}
.wk::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.18) 50%,transparent 62%);transform:translateX(-130%);transition:transform 1.1s var(--ease);pointer-events:none}.wk:hover::after{transform:translateX(130%)}
.wk-end{flex:none;width:min(320px,70vw);display:flex;flex-direction:column;justify-content:center;gap:16px;padding:24px}
.wk-end b{font-size:2rem;letter-spacing:-.03em;line-height:1.05}
/* process */
.proc{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:36px;list-style:none;margin:0;padding:34px 0 0}
.proc::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--line)}
.proc-line{position:absolute;left:0;right:0;top:0;height:2px;background:var(--gold);transform-origin:left;transform:scaleX(var(--p,1))}
.proc li{position:relative}.proc li::before{content:"";position:absolute;top:-41px;left:0;width:14px;height:14px;border-radius:50%;background:var(--paper);border:2px solid var(--gold)}
.proc h3{font-size:1.35rem;margin-bottom:10px}.proc p{color:var(--ink2);margin:0}
/* hardware rail */
.hw{overflow:hidden}.hw-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:center}
.rail{display:flex;gap:14px;width:max-content;animation:rail 60s linear infinite}.rail.rev{animation-direction:reverse;animation-duration:70s}.rails{display:grid;gap:14px;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.rails:hover .rail{animation-play-state:paused}
.rail a{flex:none;width:150px;height:150px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px;transition:transform .35s var(--ease)}.rail a:hover{transform:translateY(-4px) scale(1.03)}.rail img{width:100%;height:100%;object-fit:contain}
@keyframes rail{to{transform:translateX(-50%)}}
/* areas */
.rings{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.ring{padding:28px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.ring h3{font-size:1.4rem;margin-bottom:4px}.ring .muted{margin-bottom:18px}.subs{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.subs li{font-size:.88rem;padding:6px 12px;border-radius:999px;background:var(--stone)}.subs li a{text-decoration:none;font-weight:700}.subs li.pg{background:var(--ink);padding:6px 12px}.subs li.pg a{color:var(--gold)}
/* quote band */
.qs{position:relative;overflow:hidden}.qs-bg{position:absolute;inset:0;opacity:.18}.qs-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3)}.qs .wrap{position:relative}
.qs .two{align-items:center}.qs .qf{box-shadow:0 30px 80px rgba(0,0,0,.4)}
/* interior hero */
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;padding:72px 24px 80px;background:var(--ink);color:#fff;box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax)}
.hero h1{color:#fff}.hero .lead{color:var(--on-dark)}.hero .crumb,.hero .crumb a{color:#8f8b84}
.hero-i .drift{border-radius:16px;overflow:hidden;aspect-ratio:5/4}.hero-i img{width:100%;height:115%;object-fit:cover}
.crumb{font-size:.88rem;color:var(--mute);margin-bottom:1.2em}.crumb a{color:var(--mute);text-decoration:none}.crumb a:hover{color:var(--gold)}
.price{font-size:1.3rem;font-weight:700;margin:0 0 .4em}.hero .price{color:var(--gold)}
/* project hero */
.pjh{position:relative;min-height:78svh;display:flex;align-items:flex-end;color:#fff;background:var(--ink);overflow:hidden}
.pjh>img{position:absolute;inset:0;width:100%;height:118%;object-fit:cover}.pjh::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.1) 40%,rgba(0,0,0,.85));z-index:1}
.pjh .wrap{position:relative;z-index:2;padding-bottom:48px;width:100%}.pjh h1{color:#fff;max-width:18ch}.pjh .lead{color:#e3dfd8}.pjh .crumb,.pjh .crumb a{color:#bdb8b0}.pjh .wk-m{font-size:.85rem}
/* proof strip */
.proof{list-style:none;margin:0;padding:32px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;border-bottom:1px solid var(--line)}
.proof strong{display:flex;align-items:center;gap:9px;margin-bottom:6px;font-size:1.02rem}.proof strong::before{content:"";flex:none;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}.proof span{color:var(--ink2);font-size:.95rem;display:block}
/* grids and cards */
.grid{display:grid;gap:22px}.g3{grid-template-columns:repeat(3,1fr)}
.card{display:block;color:var(--ink);text-decoration:none;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;padding:4px}
.card:hover{transform:translateY(-3px);color:var(--ink);border-color:#d3cec4;box-shadow:0 16px 40px rgba(0,0,0,.08)}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}.card h3{margin:18px 18px 6px;font-size:1.15rem}.card p{margin:0 18px 18px;color:var(--mute);font-size:.95rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.opts{gap:14px}.opts div{padding:26px;border-radius:14px;background:var(--stone);transition:background .3s,transform .3s var(--ease)}.opts div:hover{background:#ece8e0;transform:translateY(-2px)}.opts h3{margin-bottom:8px}.opts p{margin:0;color:var(--ink2)}
.spec{list-style:none;margin:0;padding:0}.spec li{padding:13px 0 13px 24px;border-bottom:1px solid var(--line);position:relative}.spec li::before{content:"";position:absolute;left:2px;top:22px;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.dk .spec li,.dark .spec li{border-color:rgba(255,255,255,.12)}
.inline{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 22px}
/* steps (interior pages) */
.steps{list-style:none;margin:0;padding:34px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:36px;position:relative}.steps::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--gold)}
.steps h3{margin-bottom:10px;font-size:1.25rem}.steps p{color:var(--ink2);margin:0}
/* faq */
.faq details{border-top:1px solid var(--line);padding:4px 0}.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;padding:18px 44px 18px 0;list-style:none;position:relative;font-size:1.12rem;letter-spacing:-.01em;transition:color .2s}.faq summary:hover{color:var(--gold-d)}.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-7px;background:linear-gradient(var(--gold),var(--gold)) center/14px 2px no-repeat,linear-gradient(var(--gold),var(--gold)) center/2px 14px no-repeat;transition:transform .35s var(--ease)}.faq details[open] summary::after{transform:rotate(135deg)}
.faq p{margin:0 0 20px;color:var(--ink2);max-width:72ch}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 40px}.gal figure{margin:0}.gal img{width:100%;aspect-ratio:4/3;object-fit:cover}.gal figure:first-child{grid-column:span 2;grid-row:span 2}.gal figure:first-child img{aspect-ratio:auto;height:100%}
.gal a{display:block;overflow:hidden;border-radius:12px;height:100%}.gal img{transition:transform .8s var(--ease)}.gal a:hover img{transform:scale(1.04)}
/* pricing */
.pr{border-top:1px solid var(--line);padding:32px 0;display:grid;grid-template-columns:1fr 1.4fr;gap:32px}.pr h2{font-size:1.5rem;margin-bottom:4px}.pr h2 a{color:var(--ink);text-decoration:none}.pr h2 a:hover{color:var(--gold-d)}.pr .price{color:var(--gold-d)}
.art h2{margin-top:1.6em;font-size:1.6rem}.art p{max-width:70ch;font-size:1.08rem}
/* footer */
.ft{background:var(--ink);color:#a9a49c}.ft a{color:#ece9e4;text-decoration:none}.ft a:hover{color:var(--gold)}.ft h2{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}.ft ul{list-style:none;margin:0 0 24px;padding:0}.ft li{margin:8px 0}.ft-lg{width:190px;margin-bottom:18px}
.ft-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;padding:80px 24px 32px}.ft-end{border-top:1px solid rgba(255,255,255,.08);padding:20px 24px;font-size:.85rem}.ft-end p{margin:0}
.ft-big{display:block;font-size:clamp(2rem,5vw,4rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:#fff;margin-bottom:10px}.ft-big:hover{color:var(--gold)}
/* sticky mobile bar */
.bar{display:none;position:fixed;left:10px;right:10px;bottom:10px;z-index:60;grid-template-columns:1fr 1.3fr;gap:8px;padding:6px;background:rgba(17,18,20,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.bar a{display:flex;align-items:center;justify-content:center;height:48px;font-weight:700;text-decoration:none;color:#fff;border-radius:999px}.bar .bar-q{background:var(--gold);color:var(--ink)}
/* motion utilities */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*80ms)}.rv.in{opacity:1;transform:none}
.hero-t{animation:rise .9s var(--ease) both}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fade{from{opacity:0}to{opacity:1}}
.drift{overflow:hidden}.drift img{animation:settle 1.8s var(--ease) both;will-change:transform}@keyframes settle{from{transform:scale(1.12)}to{transform:scale(1)}}
.faq details p{animation:fade .4s ease both}
.lbx{position:fixed;inset:0;background:rgba(10,10,12,.95);z-index:100;display:flex;align-items:center;justify-content:center;animation:fade .2s}.lbx img{max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lbx button{position:absolute;background:0;border:0;color:#fff;font-size:2.4rem;cursor:pointer;padding:16px;line-height:1;opacity:.8}.lbx button:hover{opacity:1;color:var(--gold)}.lbx .x{top:8px;right:12px}.lbx .pv{left:8px;top:50%;transform:translateY(-50%)}.lbx .nx{right:8px;top:50%;transform:translateY(-50%)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.rv{opacity:1;transform:none}.stmt .w{opacity:1}.rail{animation:none}}
/* quote form */
.qf{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:28px}.qf label{display:block;margin-bottom:14px}.qf label span{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px}
.qf input,.qf select,.qf textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid #cfcac1;border-radius:10px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}.qf input:focus,.qf select:focus,.qf textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(58,91,199,.2)}
.qf .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.qf .btn{width:100%;justify-content:center;padding:16px}.qf .small{margin:12px 0 0}.qf p{color:var(--mute)}
.qf-prog{height:4px;background:var(--line);border-radius:2px;margin:0 0 20px;overflow:hidden}.qf-prog span{display:block;height:100%;width:33%;background:var(--gold);transition:width .5s var(--ease)}
.qf fieldset{border:0;padding:0;margin:0}.qf legend{font-weight:700;font-size:1.25rem;letter-spacing:-.02em;margin-bottom:16px;padding:0}.qf .st{display:none}.qf .st.on{display:block;animation:rise .45s var(--ease) both}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tile{position:relative;cursor:pointer;margin:0;border:2px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper);transition:border-color .2s,transform .25s var(--ease)}.tile:hover{transform:translateY(-2px);border-color:#b9c4e8}
.tile input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.tile img{width:100%;aspect-ratio:4/3;object-fit:cover}.tile .tile-ph{display:block;aspect-ratio:4/3;background:var(--ink-2) url(/assets/amg-mark.svg) center/40px no-repeat}.tile>span:last-child{display:block;padding:8px 10px;font-weight:600;font-size:.9rem}
.tile:has(input:checked){border-color:var(--gold);box-shadow:0 0 0 4px rgba(58,91,199,.22)}.tile:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.qf-c .tile>span:last-child{font-size:.82rem;padding:6px 8px}
.drop{position:relative;border:2px dashed #b9c4e8;border-radius:12px;padding:24px 16px;text-align:center;background:#f6f8fd;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:14px}.drop:hover,.drop.over,.drop:focus-visible{border-color:var(--gold);background:#eef2fc;outline:0}
.drop input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.drop strong{display:block;margin-bottom:4px}.drop span{color:var(--mute);font-size:.9rem}
.thumbs{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:8px}.thumbs li{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden;animation:rise .3s ease both}.thumbs img{width:100%;height:100%;object-fit:cover}
.thumbs button{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:14px;line-height:22px;cursor:pointer;padding:0}
.qf-nav{display:flex;gap:12px;align-items:center;margin-top:8px}.qf-nav .back{background:0;border:0;color:var(--ink2);font:inherit;font-weight:600;cursor:pointer;padding:12px 4px;display:none}.qf-nav .next,.qf-nav .send{flex:1}.qf-nav .send{display:none}
.qf.s3 .send{display:flex}.qf.s3 .next{display:none}.qf.s2 .back,.qf.s3 .back{display:inline-block}
.qf label.bad input,.qf label.bad select{border-color:#b3261e;box-shadow:0 0 0 4px rgba(179,38,30,.15)}.qf .hint{color:#b3261e;font-size:.85rem;margin:4px 0 0}.qf .sum:empty{display:none}
.qf .btn.busy{opacity:.75;pointer-events:none}.qf .btn.busy::before{content:"";display:inline-block;width:14px;height:14px;border:2px solid var(--ink);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.qf .sms{display:none}@media(max-width:640px){.qf .sms{display:inline}.tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:960px){.qpage .qf{order:-1}}
/* product catalogue */
.pfilter{position:sticky;top:62px;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);padding:14px 0 10px;margin:8px 0 6px;border-bottom:1px solid var(--line)}
.psearch{width:100%;font:inherit;padding:13px 16px;border:1px solid #cfcac1;border-radius:999px}.psearch:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(58,91,199,.2)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 0 2px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 15px;font:inherit;font-size:.9rem;font-weight:600;color:var(--ink2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.chip:hover{border-color:var(--gold)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pg-cat{margin:40px 0}.pg-cat h2{font-size:1.6rem}.pg-cat h2 a{color:var(--ink);text-decoration:none}.pg-cat h2 a:hover{color:var(--gold-d)}.pg-cat h2 .muted{font-weight:400;font-size:1rem}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}.pc:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.08);border-color:#b9c4e8;color:var(--ink)}
.pc-i{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:#fff;padding:16px;border-bottom:1px solid var(--line);overflow:hidden}.pc-i img{width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease)}.pc:hover .pc-i img{transform:scale(1.06)}
.pc-s{font-size:.75rem;font-weight:700;letter-spacing:.06em;color:var(--gold-d);padding:13px 15px 2px}.pc-n{font-weight:600;padding:0 15px;line-height:1.3;font-size:.95rem}.pc-g{color:var(--mute);font-size:.85rem;padding:4px 15px 15px;margin-top:auto}.pc-n:last-child{padding-bottom:15px}
.pc.hide,.pg-cat.hide{display:none}.pnone{padding:30px 0;color:var(--mute)}.mt{margin-top:48px}
.fchart{width:100%;max-width:1000px;border-radius:14px;border:1px solid var(--line);margin:8px 0 18px}.fin{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.fin li{border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:.88rem;background:#fff}
.pd{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start;margin-top:8px}.pd-i{display:grid;gap:16px}.pd-i a{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:16px;background:#fff;padding:28px;aspect-ratio:4/3}.pd-i img{width:100%;height:100%;object-fit:contain}.pd-i .pd-d img{height:auto}.pd-i .pd-d{aspect-ratio:auto;padding:16px}
.pd-sku{font-weight:700;color:var(--gold-d);letter-spacing:.06em;margin-bottom:.4em}.pd h1{font-size:clamp(1.8rem,3.6vw,2.8rem)}.pd-g{display:inline-block;background:var(--stone);border-radius:999px;padding:6px 13px;font-weight:600;font-size:.9rem}
/* responsive */
@media(max-width:1100px){.nav ul{gap:18px}.hd-act .tel{display:none}}
@media(max-width:960px){.nav,.hd-act .btn{display:none}.burger{display:block}.hero{grid-template-columns:1fr;gap:32px;padding:44px 24px 56px}.proof{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr}.steps,.proc{grid-template-columns:1fr 1fr;row-gap:48px}.proc li::before{display:none}.two,.hw-grid{grid-template-columns:1fr;gap:36px}.ft-grid{grid-template-columns:1fr 1fr}
.bento{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.sv:nth-child(1){grid-column:span 2;grid-row:span 1}.sv:nth-child(2),.sv:nth-child(11){grid-column:span 1}.stats{grid-template-columns:1fr 1fr;row-gap:32px}.rings{grid-template-columns:1fr}.sh{flex-direction:column;align-items:flex-start;gap:14px}.pgrid{grid-template-columns:repeat(3,1fr)}.pd{grid-template-columns:1fr;gap:28px}.pr{grid-template-columns:1fr;gap:6px}.sec{padding:72px 24px}}
@media(max-width:640px){body{padding-bottom:74px}.wrap{padding:0 18px}.sec{padding:60px 18px}.pg{padding:40px 18px 56px}.hd-in{height:64px}.lg img{width:140px}.hd.sc .lg img{width:130px}.proof{grid-template-columns:1fr;gap:16px}.g3{grid-template-columns:1fr}.steps,.proc{grid-template-columns:1fr;row-gap:28px}
.gal{grid-template-columns:1fr 1fr}.gal figure:first-child{grid-column:span 2;grid-row:auto}.qf{padding:20px}.qf .row{grid-template-columns:1fr}.ft-grid{grid-template-columns:1fr;gap:28px;padding-top:56px}.bar{display:grid}
.bento{grid-template-columns:1fr;grid-auto-rows:210px}.sv:nth-child(1){grid-column:auto}.hx-foot{flex-direction:column;align-items:flex-start}.hx-cap{text-align:left;min-width:0;width:100%}.hx-in{padding-top:110px}
.rail a{width:112px;height:112px;padding:12px}.pgrid{grid-template-columns:repeat(2,1fr);gap:10px}.pfilter{top:56px}.pc-n{font-size:.88rem}.pc-i{padding:10px}.pjh{min-height:64svh}}
@media(min-width:961px){.bar{display:none}}
/* polish */
.hw-grid>*{min-width:0}.hw .btn,.btn{white-space:nowrap}
.hero h1{font-size:clamp(2.1rem,4.4vw,3.8rem)}
.hx-shade{background:linear-gradient(90deg,rgba(10,10,12,.55) 0%,rgba(10,10,12,0) 60%),linear-gradient(180deg,rgba(10,10,12,.55) 0%,rgba(10,10,12,.12) 32%,rgba(10,10,12,.35) 55%,rgba(10,10,12,.92) 100%)}
@media(max-width:640px){.hx-proof{display:none}.hx-foot{padding-bottom:92px;border-top:0;padding-top:0}.hx .cta{gap:12px}.hx h1{font-size:clamp(2.6rem,12vw,3.6rem)}}

/* v3: blue accent, light chrome, framed imagery */
em{font-style:normal;color:inherit}.dk em,.hero em,.hx em,.dark em{color:inherit}
.btn{color:#fff}.btn:hover{color:#fff;box-shadow:0 10px 28px rgba(58,91,199,.32)}.btn::after{background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%)}
.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.dk .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
.qf .btn.busy::before{border-color:#fff;border-right-color:transparent}
.hd{background:rgba(255,255,255,.92);border-bottom:1px solid var(--line)}.hd.sc{box-shadow:0 6px 24px rgba(0,0,0,.06)}
.nav a{color:var(--ink)}.nav a:hover{color:var(--gold-d)}.tel{color:var(--ink)}.tel:hover{color:var(--gold-d)}.burger span{background:var(--ink)}
.mnav{background:#fff;border-top:1px solid var(--line)}.mnav a{color:var(--ink);border-bottom-color:var(--line)}
body.home .hd{position:sticky;background:rgba(255,255,255,.92);border-color:var(--line);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%)}body.home.open .hd{background:#fff}
.hero{background:transparent;color:var(--ink);box-shadow:none;clip-path:none;padding:64px 24px 72px}.hero h1{color:var(--ink)}.hero .lead{color:var(--ink2)}.hero .crumb,.hero .crumb a{color:var(--mute)}.hero .lnk{color:var(--ink)}
.hero-i .drift{aspect-ratio:4/5;max-height:640px;border-radius:18px;box-shadow:0 30px 70px rgba(17,18,20,.16)}.hero-i .drift a{display:block;height:100%}
.hero .wk-m,.hero-t .wk-m{color:var(--gold-d)}
.sv.no-i{background:var(--ink-2)}.sv-n{text-shadow:0 1px 12px rgba(0,0,0,.25)}
.hw .rail a{box-shadow:0 1px 0 var(--line),0 8px 24px rgba(17,18,20,.06)}.hw .rails{mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.qs .qf{box-shadow:0 30px 70px rgba(17,18,20,.12)}.qs{padding-bottom:110px}
.gal.g-1{grid-template-columns:1fr 1fr}.gal.g-1 figure:first-child{grid-column:auto;grid-row:auto}.gal.g-1 figure:first-child img{aspect-ratio:4/3;height:auto}.gal.g-2 figure:first-child{grid-row:auto}.gal.g-2 figure:first-child img{aspect-ratio:4/3;height:auto}
/* home hero: framed job showcase */
.hh{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding:72px 24px 96px}
.hh h1{font-size:clamp(2.6rem,5.6vw,5rem);letter-spacing:-.045em;line-height:.98;margin-bottom:.4em}
.hh h1 .ln{display:block;overflow:hidden;padding-bottom:.05em}.hh h1 .ln>span{display:block;animation:lnup 1.1s var(--ease) both}.hh h1 .ln:nth-child(2)>span{animation-delay:.1s}.hh h1 .ln:nth-child(3)>span{animation-delay:.2s}
.hh .lead{animation:rise 1s .35s var(--ease) both}.hh .cta{animation:rise 1s .5s var(--ease) both}
.hh-proof{list-style:none;margin:40px 0 0;padding:24px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;font-size:.95rem;color:var(--ink2);animation:fade 1s .8s both}
.hh-proof li{display:flex;align-items:center;gap:10px}.hh-proof li::before{content:"";flex:none;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.hh-v{position:relative;padding:0 0 56px 56px;animation:rise 1.2s .2s var(--ease) both}
.hh-a{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--stone);box-shadow:0 40px 90px rgba(17,18,20,.18)}
.hh-b{position:absolute;left:0;bottom:12px;width:38%;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--stone);border:6px solid #fff;box-shadow:0 24px 60px rgba(17,18,20,.2);animation:float 7s ease-in-out infinite}
.hh-a .s,.hh-b .s{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.2s ease}.hh-a .s.on,.hh-b .s.on{opacity:1}
.hh-a img,.hh-b img{width:100%;height:100%;object-fit:cover}.hh-a .s.on img{animation:kb2 8s linear both}@keyframes kb2{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hh-cap{position:absolute;right:20px;bottom:76px;max-width:70%;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-radius:12px;padding:12px 16px;text-decoration:none;color:var(--ink);box-shadow:0 10px 30px rgba(17,18,20,.12)}
.hh-cap small{display:block;color:var(--gold-d);font-weight:700;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}.hh-cap span{font-weight:600;font-size:.95rem;line-height:1.3;display:block}.hh-cap:hover span{color:var(--gold-d)}
.hh-cap .hx-bar{background:var(--line);margin-top:8px}.hh-cap .hx-bar i{background:var(--gold);animation-duration:6s}
@media(max-width:960px){.hh{grid-template-columns:1fr;gap:40px;padding:40px 24px 64px}.hh-v{max-width:560px;padding:0 0 40px 40px}}
@media(max-width:640px){.hh{padding:28px 18px 56px}.hh-proof{grid-template-columns:1fr}.hh-v{padding:0 0 32px 28px}.hh-cap{right:10px;bottom:52px;max-width:80%}.hero-i .drift{aspect-ratio:4/5}}
body.home .hd.sc,.hd.sc{background:rgba(255,255,255,.95)}
.hh h1{font-size:clamp(2.4rem,4.6vw,4.3rem);animation:rise 1s var(--ease) both}.hh h1 .ln{display:inline;overflow:visible}.hh h1 .ln>span{display:inline;animation:none}
.wk .wk-m{color:#aebfff}
html{scroll-padding-bottom:96px}.bar{transition:transform .35s var(--ease),opacity .35s}body.form-in .bar{transform:translateY(140%);opacity:0;pointer-events:none}

/* ===== v4: dark site, blue accent, kinetic ===== */
:root{--bg:#0c0d0f;--bg2:#131519;--bg3:#1a1d22;--tx:#eceae6;--tx2:#b4b1ab;--tx3:#87847e;--ln:rgba(255,255,255,.09);--acc:#4a6ddb;--acc-l:#8ea6ff;--gold:#3a5bc7;--gold-l:#4a6ddb}
body{background:var(--bg);color:var(--tx)}
h1,h2,h3{color:#fff}a{color:#fff;text-decoration-color:var(--acc)}a:hover{color:var(--acc-l)}
.lead{color:var(--tx2)}.muted{color:var(--tx3)}p{color:inherit}
.stone{background:var(--bg2)}.dk,.dark{background:var(--bg2)}
.hd,body.home .hd,.hd.sc,body.home .hd.sc{background:rgba(12,13,15,.82);border-bottom:1px solid var(--ln);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}
.nav a,.tel{color:#e8e6e1}.nav a:hover,.tel:hover{color:var(--acc-l)}.burger span{background:#fff}
.mnav,body.home.open .hd{background:var(--bg)}.mnav a{color:#fff;border-bottom-color:var(--ln)}
.lnk,.hero .lnk{color:#fff}.btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)}
.crumb,.crumb a,.hero .crumb,.hero .crumb a{color:var(--tx3)}
.hero h1{color:#fff}.hero .lead{color:var(--tx2)}.hero .wk-m,.hero-t .wk-m{color:var(--acc-l)}
.hero-i .drift{box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 0 1px var(--ln)}
.proof{border-color:var(--ln)}.proof span{color:var(--tx2)}
.card{background:var(--bg3);border-color:var(--ln);color:#fff}.card:hover{color:#fff;border-color:rgba(255,255,255,.2);box-shadow:0 20px 50px rgba(0,0,0,.4)}.card p{color:var(--tx3)}
.opts div{background:var(--bg3)}.opts div:hover{background:#20242a}.opts p{color:var(--tx2)}
.spec li{border-color:var(--ln)}
.steps::before{background:var(--acc)}.steps p,.proc p{color:var(--tx2)}.proc::before{background:var(--ln)}.proc li::before{background:var(--bg)}
.faq details,.faq details:last-of-type{border-color:var(--ln)}.faq summary{color:#fff}.faq summary:hover{color:var(--acc-l)}.faq p{color:var(--tx2)}
.ring{background:var(--bg3);border-color:var(--ln)}.subs li{background:rgba(255,255,255,.06)}.subs li.pg{background:var(--acc)}.subs li.pg a{color:#fff}
.sh p,.dk .sh p{color:var(--tx2)}
.art p{color:var(--tx2)}
.ft{background:#08090a}
.hh-proof{border-color:var(--ln);color:var(--tx2)}
.hh-b{border-color:var(--bg3)}
.hh-cap{background:rgba(20,22,26,.86);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 1px var(--ln)}.hh-cap small{color:var(--acc-l)}.hh-cap:hover span{color:var(--acc-l)}.hh-cap .hx-bar{background:rgba(255,255,255,.12)}
.hh-a{box-shadow:0 40px 100px rgba(0,0,0,.55),0 0 0 1px var(--ln)}
.wk .wk-m{color:var(--acc-l)}
.qs .qf{box-shadow:0 30px 90px rgba(0,0,0,.55)}
/* catalogue on dark */
.pfilter{background:rgba(12,13,15,.92);border-color:var(--ln)}.psearch{background:var(--bg3);color:#fff;border-color:var(--ln)}.psearch::placeholder{color:var(--tx3)}
.chip{background:var(--bg3);color:var(--tx2);border-color:var(--ln)}.chip.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.pg-cat h2 a{color:#fff}.pg-cat h2 a:hover{color:var(--acc-l)}
.pc{border-color:transparent}.pc:hover{border-color:var(--acc)}.pc-s{color:#2f4aa6}
.pd-sku{color:var(--acc-l)}.pd-g{background:var(--bg3);color:#fff}.pd-i a{border-color:transparent}
.fchart{border-color:var(--ln)}.fin li{background:var(--bg3);border-color:var(--ln);color:var(--tx2)}
.qf a{color:var(--ink)}
/* hero glow */
.hh{position:relative;isolation:isolate}
.glow{position:absolute;inset:-20% -35% -10%;z-index:-1;pointer-events:none;background:radial-gradient(520px 420px at 72% 42%,rgba(74,109,219,.38),transparent 70%),radial-gradient(420px 340px at 18% 78%,rgba(142,166,255,.14),transparent 70%);filter:blur(10px);animation:glow 16s ease-in-out infinite alternate}
@keyframes glow{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-4%,3%,0) scale(1.08)}100%{transform:translate3d(3%,-2%,0) scale(1.02)}}
.hh h1{background:linear-gradient(100deg,#fff 0%,#fff 42%,#c9d4ff 50%,#fff 58%,#fff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rise 1s var(--ease) both,sheen 7s 1.2s ease-in-out infinite}
@keyframes sheen{0%,60%{background-position:100% 0}100%{background-position:-60% 0}}
/* hero frames: wipe reveal + tilt */
.hh-v{perspective:1200px}.hh-stack{transform-style:preserve-3d;transition:transform .5s var(--ease)}
.hh-a .s,.hh-b .s{opacity:1;clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease);z-index:1}.hh-a .s.on,.hh-b .s.on{clip-path:inset(0 0 0 0);z-index:3}.hh-a .s.was,.hh-b .s.was{clip-path:inset(0 0 0 0);z-index:2}
/* kinetic band */
.band{overflow:hidden;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln);padding:26px 0;background:var(--bg)}
.band-t{display:flex;align-items:center;gap:40px;width:max-content;animation:rail 55s linear infinite;will-change:transform}
.band span{font-size:clamp(2rem,4.4vw,3.8rem);font-weight:700;letter-spacing:-.035em;white-space:nowrap;color:transparent;-webkit-text-stroke:1.2px rgba(255,255,255,.55)}
.band span:nth-of-type(3n+1){color:#fff;-webkit-text-stroke:0}
.band i{flex:none;width:14px;height:14px;background:var(--acc);transform:rotate(45deg)}
.band-skew{transition:transform .2s linear}
/* service hover list */
.svl{position:relative;border-top:1px solid var(--ln)}.svm{display:none}
.svl-r{position:relative;display:grid;grid-template-columns:1.2fr 1fr 48px;align-items:center;gap:24px;padding:26px 8px;border-bottom:1px solid var(--ln);text-decoration:none;color:#fff;transition:padding .45s var(--ease),background .45s}
.svl-r::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(74,109,219,.18),transparent 70%);opacity:0;transition:opacity .45s;pointer-events:none}
.svl-n{font-size:clamp(1.6rem,3vw,2.6rem);font-weight:700;letter-spacing:-.035em;line-height:1.05;transition:transform .45s var(--ease),color .3s}
.svl-d{color:var(--tx3);font-size:1rem;transition:color .3s}
.svl-a{width:46px;height:46px;border-radius:50%;border:1px solid var(--ln);display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s,transform .45s var(--ease)}.svl-a svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2}
.svl-r:hover{color:#fff}.svl-r:hover::before{opacity:1}.svl-r:hover .svl-n{transform:translateX(16px);color:var(--acc-l)}.svl-r:hover .svl-d{color:var(--tx)}.svl-r:hover .svl-a{background:var(--acc);border-color:var(--acc);transform:rotate(-45deg)}
.svl-img{display:none}
.svl-float{position:absolute;top:0;left:0;width:340px;aspect-ratio:4/5;border-radius:16px;overflow:hidden;pointer-events:none;z-index:5;opacity:0;transform:translate(-50%,-50%) scale(.85) rotate(-4deg);transition:opacity .35s,transform .45s var(--ease);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.svl-float.on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}.svl-float img{width:100%;height:100%;object-fit:cover}
@media(max-width:960px){.svl{display:none}.svm{display:block}}
@media(hover:none){.svl{display:none}.svm{display:block}}
@media(prefers-reduced-motion:reduce){.band-t,.glow,.hh h1{animation:none}}
.hh-stack{position:relative}.hh-v .hh-stack{padding:0 0 56px 56px;margin:0 0 -56px -56px}
.svl-float{width:300px}.bar .bar-q{color:#fff}
@media(max-width:960px){.hh{gap:28px}.hh-v{order:-1;max-width:none;padding:0 0 28px 28px}.hh-a{aspect-ratio:4/3.4}.hh-proof{display:none}}
.hh-stack>.hh-a{position:relative;z-index:1}.hh-stack>.hh-b{z-index:3;transform:translateZ(40px)}.hh-stack>.hh-cap{z-index:4;transform:translateZ(60px)}
.hh-a .s,.hh-b .s{z-index:auto}.hh-a .s.was,.hh-b .s.was{z-index:1}.hh-a .s.on,.hh-b .s.on{z-index:2}
.svl-r{grid-template-columns:1fr 340px 48px}.svl-float{width:230px}
@media(max-width:960px){.hh-b{display:none}.hh-v,.hh-v .hh-stack{padding:0;margin:0}.hh-cap{bottom:14px;right:14px}}

/* about + trade */
.ab-hero .hh-v,.hh-v:has(.ab-one){padding:0}.ab-one{aspect-ratio:4/5}
.ab-ways{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--ln)}
.ab-w{padding:36px 40px 36px 0;border-bottom:1px solid var(--ln)}.ab-w:nth-child(odd){border-right:1px solid var(--ln)}.ab-w:nth-child(even){padding-left:40px}
.ab-w h3{font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.03em;margin-bottom:12px}.ab-w p{color:var(--tx2);margin:0;max-width:46ch}
.ab-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}
.ab-m{position:relative;display:block;overflow:hidden;border-radius:14px;background:var(--bg3)}.ab-m img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.ab-m:hover img{transform:scale(1.06)}
.ab-m span{position:absolute;left:0;right:0;bottom:0;padding:40px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font-weight:600;font-size:.9rem;line-height:1.25;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s var(--ease)}.ab-m:hover span{opacity:1;transform:none}
.ab-m.m0{grid-column:span 2;grid-row:span 2}.ab-m.m3{grid-row:span 2}.ab-m.m5{grid-column:span 2}
.ab-kinds{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ab-k{position:relative;display:flex;flex-direction:column;padding:28px;border-radius:16px;background:var(--bg3);border:1px solid var(--ln);text-decoration:none;color:#fff;min-height:240px;transition:border-color .3s,transform .4s var(--ease),background .3s}
.ab-k h3{font-size:1.35rem;margin-bottom:10px}.ab-k p{color:var(--tx2);font-size:.95rem;margin:0 0 24px}.ab-k .svl-a{margin-top:auto}.ab-k:hover{border-color:var(--acc);transform:translateY(-4px);background:#1d2128;color:#fff}.ab-k:hover .svl-a{background:var(--acc);border-color:var(--acc);transform:rotate(-45deg)}
.ab-contact{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}.ab-contact .ft-big{margin:18px 0 12px}
.tr-whos{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--ln)}.tr-who{padding:32px 28px 32px 0;border-right:1px solid var(--ln)}.tr-who+.tr-who{padding-left:28px}.tr-who:last-child{border-right:0}
.tr-who h3{font-size:1.3rem;margin-bottom:10px}.tr-who p{color:var(--tx2);margin:0}
.tr-gets{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tr-gets li{padding:26px;border-radius:16px;background:var(--bg3);border:1px solid var(--ln)}
.tr-gets strong{display:flex;align-items:center;gap:10px;font-size:1.12rem;margin-bottom:8px;color:#fff}.tr-gets strong::before{content:"";width:8px;height:8px;background:var(--acc);transform:rotate(45deg);flex:none}.tr-gets span{color:var(--tx2);font-size:.95rem}
.tr-hw{background:#fff;border-radius:16px;padding:24px;width:100%}
.tf .drop{margin-top:4px}
@media(max-width:960px){.ab-ways,.ab-contact{grid-template-columns:1fr}.ab-w,.ab-w:nth-child(even){padding:28px 0;border-right:0}.ab-mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.ab-m.m5{grid-column:span 1}.ab-kinds,.tr-whos{grid-template-columns:1fr 1fr}.tr-who,.tr-who+.tr-who{padding:24px 18px 24px 0;border-right:0;border-bottom:1px solid var(--ln)}.tr-gets{grid-template-columns:1fr 1fr}.ab-m span{opacity:1;transform:none}}
@media(max-width:640px){.ab-kinds,.tr-whos,.tr-gets{grid-template-columns:1fr}.ab-mosaic{grid-auto-rows:150px}}
.thumbs li.doc{display:flex;align-items:center;justify-content:center;background:#eef2fc;color:var(--ink);font-weight:700;font-size:.8rem}
.ab-m.m3{grid-row:auto}
.svl-sm .svl-r{padding:18px 8px;grid-template-columns:1.2fr 1fr 40px}.svl-sm .svl-n{font-size:clamp(1.15rem,1.8vw,1.5rem)}.svl-sm .svl-a{width:38px;height:38px}
@media(max-width:960px){.svl-sm{display:block}.svl-sm .svl-r{grid-template-columns:1fr 38px}.svl-sm .svl-d{display:none}}
.bento .sv:nth-child(12){grid-column:span 4;grid-row:span 1}
@media(max-width:960px){.bento .sv:nth-child(12){grid-column:span 2}}@media(max-width:640px){.bento .sv:nth-child(12){grid-column:auto}}

/* ===== v7 hero: job photos as frameless glass panels ===== */
.gx{position:relative;isolation:isolate;overflow:hidden;padding:56px 0 40px;min-height:calc(100svh - 76px);display:flex;flex-direction:column}
.gx .glow{inset:-10% -20% 0}
.gx-top{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:end}
.gx h1{font-size:clamp(2.6rem,5.6vw,5.4rem);letter-spacing:-.05em;line-height:.95;margin:0;max-width:13ch;
  background:linear-gradient(100deg,#fff 0%,#fff 42%,#c9d4ff 50%,#fff 58%,#fff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rise 1s var(--ease) both,sheen 7s 1.2s ease-in-out infinite}
.gx-side{padding-bottom:6px;animation:rise 1s .25s var(--ease) both}.gx-side .lead{margin-bottom:0}.gx-side .cta{margin-top:1.3em}
.gx-stage{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;margin-top:44px;perspective:1600px;padding:0 24px}
.gx-row{position:relative;display:flex;gap:16px;height:clamp(340px,52vh,600px);max-width:1500px;width:100%;margin:0 auto;transform-style:preserve-3d;transition:transform .8s var(--ease)}
.gx-p{position:relative;flex:1 1 0;min-width:0;display:block;text-decoration:none;color:#fff;transition:flex-grow 1.1s var(--ease);animation:gxin 1.2s calc(.35s + var(--i) * .09s) var(--ease) both;transform-origin:50% 100%}
.gx-p.on{flex-grow:3.4}
@keyframes gxin{from{opacity:0;transform:translateY(80px) rotateX(14deg)}to{opacity:1;transform:none}}
.gx-g{position:absolute;inset:0 0 14px 0;border-radius:3px;overflow:hidden;background:#0f1114;
  box-shadow:0 0 0 1px rgba(170,225,215,.38),inset 0 0 0 1px rgba(255,255,255,.12),0 40px 70px rgba(0,0,0,.55);
  -webkit-box-reflect:below 16px linear-gradient(transparent 72%,rgba(255,255,255,.13))}
.gx-g img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(.82);transform:scale(1.12);transition:filter 1s var(--ease),transform 1.6s var(--ease)}
.gx-p.on .gx-g img{filter:none;transform:scale(1.02)}
.gx-g::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(170,225,215,.55) 0,rgba(170,225,215,0) 3px,rgba(170,225,215,0) calc(100% - 3px),rgba(170,225,215,.4) 100%),linear-gradient(160deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 32%,rgba(255,255,255,0) 70%,rgba(255,255,255,.07) 100%)}
.gx-g::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:40%;z-index:3;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);animation:gxsweep 9s calc(1.6s + var(--i) * .16s) ease-in-out infinite}
@keyframes gxsweep{0%{left:-60%}22%{left:130%}100%{left:130%}}
.gx-p:not(.on) .gx-g::after{opacity:.6}
.gx-s{position:absolute;bottom:0;width:18px;height:20px;border-radius:3px 3px 1px 1px;background:linear-gradient(90deg,#6c7178,#e7eaee 40%,#9aa0a7 60%,#55595f);box-shadow:0 6px 10px rgba(0,0,0,.5)}
.gx-s:first-of-type{left:22%}.gx-s:last-of-type{right:22%}
.gx-c{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:70px 22px 20px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.82));opacity:0;transform:translateY(14px);transition:opacity .6s .25s,transform .8s .25s var(--ease)}
.gx-p.on .gx-c{opacity:1;transform:none}
.gx-c small{display:block;color:#aebfff;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.gx-c b{font-size:1.2rem;letter-spacing:-.02em;line-height:1.2;display:block;max-width:24ch}
.gx-floor{display:block;height:1px;max-width:1500px;width:100%;margin:0 auto;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent)}
.gx-proof{margin-top:34px;grid-template-columns:repeat(4,auto);justify-content:space-between;animation:fade 1s 1.2s both}
.gx-p:hover .gx-g img{filter:none}
@media(max-width:960px){.gx{min-height:0;padding-top:36px}.gx-top{grid-template-columns:1fr;gap:22px}.gx-row{height:min(62vh,520px);gap:10px}.gx-p:nth-child(n+5){display:none}.gx-proof{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.gx-stage{padding:0 12px;margin-top:30px}.gx-row{height:56vh;gap:7px}.gx-p:nth-child(n+4){display:none}.gx-p.on{flex-grow:4.2}.gx-c{padding:50px 14px 14px}.gx-c b{font-size:1rem}.gx-s{width:12px;height:14px}.gx-g{inset:0 0 10px 0}.gx-proof{display:none}}
@media(prefers-reduced-motion:reduce){.gx-g::after{animation:none;display:none}.gx-p{animation:none}}
.gx{padding:34px 0 24px;min-height:calc(100svh - 76px)}
.gx h1{font-size:clamp(2.4rem,4.4vw,4.4rem);max-width:15ch}
.gx-top{align-items:end}.gx-side .lead{font-size:1.08rem}
.gx-stage{margin-top:30px;flex:0 0 auto}
.gx-row{height:clamp(300px,calc(100svh - 76px - 330px),620px)}
.gx-proof{margin-top:44px}
.gx-p:hover .gx-c b,.gx-p.on .gx-c b{color:#fff}
@media(max-width:960px){.gx-row{height:min(58vh,520px)}}
@media(max-width:640px){.gx{padding-top:26px}.gx-row{height:52vh}.gx-side .lead{font-size:1rem}.gx .cta .lnk{display:none}.gx-stage{margin-top:24px}}

/* ===== hero options ===== */
.ht{position:relative;display:block;flex:none;overflow:hidden;border-radius:14px;background:var(--bg3);text-decoration:none}
.ht img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .5s}
.ht:hover img{transform:scale(1.06)}
.ht-c{position:absolute;left:12px;bottom:12px;padding:5px 10px;border-radius:999px;background:rgba(12,13,15,.72);backdrop-filter:blur(6px);color:#fff;font-size:.78rem;font-weight:600;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s var(--ease)}
.ht:hover .ht-c,.hC-c:hover .ht-c{opacity:1;transform:none}
/* A filmstrip */
.hA{position:relative;isolation:isolate;overflow:hidden;padding:56px 0 30px;min-height:calc(100svh - 76px);display:flex;flex-direction:column}
.hA-t{display:grid;grid-template-columns:1.2fr 1fr;gap:20px 56px;align-items:end}.hA-t h1{grid-row:span 2;font-size:clamp(2.4rem,4.6vw,4.6rem);letter-spacing:-.05em;line-height:.96;margin:0;max-width:14ch;animation:rise 1s var(--ease) both}
.hA-t .lead{margin:0;animation:rise 1s .15s var(--ease) both}.hA-t .cta{margin:0;animation:rise 1s .25s var(--ease) both}
.hA-rows{display:grid;gap:14px;margin-top:40px;animation:fade 1.2s .3s both}
.hA-row{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.hA-tr{display:flex;gap:14px;width:max-content;animation:rail 80s linear infinite}.hA-row.rev .hA-tr{animation-direction:reverse;animation-duration:95s}.hA-rows:hover .hA-tr{animation-play-state:paused}
.hA .ht{height:clamp(150px,21vh,240px)}.hA .ht.w0{width:clamp(200px,24vh,300px)}.hA .ht.w1{width:clamp(280px,36vh,420px)}.hA .ht.w2{width:clamp(170px,19vh,230px)}
/* B columns */
.hB{position:relative;isolation:isolate;overflow:hidden}.hB-in{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center;min-height:calc(100svh - 76px)}
.hB-t h1{font-size:clamp(2.4rem,4.4vw,4.4rem);letter-spacing:-.05em;line-height:.96;max-width:13ch;animation:rise 1s var(--ease) both}.hB-t .lead,.hB-t .cta{animation:rise 1s .2s var(--ease) both}
.hB-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;height:calc(100svh - 76px);overflow:hidden;mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent)}
.hB-col{overflow:hidden}.hB-tr{display:flex;flex-direction:column;gap:14px;animation:colup 60s linear infinite}.hB-col.rev .hB-tr{animation-direction:reverse;animation-duration:70s}.hB-col:nth-child(3) .hB-tr{animation-duration:66s}
.hB-cols:hover .hB-tr{animation-play-state:paused}.hB .ht.v{aspect-ratio:4/5;width:100%}
@keyframes colup{to{transform:translateY(-50%)}}
/* C mosaic */
.hC{position:relative;isolation:isolate;overflow:hidden}.hC-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;min-height:calc(100svh - 76px);padding-top:30px;padding-bottom:30px}
.hC-t h1{font-size:clamp(2.4rem,4.4vw,4.4rem);letter-spacing:-.05em;line-height:.96;max-width:13ch;animation:rise 1s var(--ease) both}.hC-t .lead,.hC-t .cta{animation:rise 1s .2s var(--ease) both}
.hC-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:12px;height:min(calc(100svh - 140px),680px)}
.hC-c{position:relative;overflow:hidden;border-radius:14px;background:var(--bg3);display:block;animation:rise 1s calc(.2s + var(--d,0) * .08s) var(--ease) both}
.hC-c.c0{grid-column:1/3;grid-row:1/3}.hC-c.c1{grid-column:3;grid-row:1}.hC-c.c2{grid-column:3;grid-row:2}.hC-c.c3{grid-column:1;grid-row:3}.hC-c.c4{grid-column:2/4;grid-row:3}
.hC-f{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.4s ease}.hC-f.on{opacity:1}.hC-f img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 7s linear}.hC-f.on img{transform:scale(1)}
.hC-c::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);border-radius:14px;pointer-events:none}
@media(max-width:960px){.hA-t{grid-template-columns:1fr}.hA-t h1{grid-row:auto}.hB-in,.hC-in{grid-template-columns:1fr;min-height:0;gap:32px;padding-top:36px;padding-bottom:36px}.hB-cols{height:70vh}.hC-grid{height:80vw}}
@media(max-width:640px){.hA .ht{height:140px}.hB-cols{grid-template-columns:1fr 1fr;height:62vh}.hB-col:nth-child(3){display:none}}
@media(prefers-reduced-motion:reduce){.hA-tr,.hB-tr{animation:none}}
.bento .sv:nth-child(11),.bento .sv:nth-child(12){grid-column:span 1}
@media(max-width:960px){.bento .sv:nth-child(11),.bento .sv:nth-child(12){grid-column:span 1}}

/* ===== home quote band ===== */
.qband{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;padding:48px 52px;border-radius:22px;background:radial-gradient(120% 140% at 100% 0%,rgba(74,109,219,.35),transparent 60%),var(--bg3);border:1px solid var(--ln)}
.qband h2{margin-bottom:.35em}.qband .lead{margin:0}.qband-a{display:flex;flex-direction:column;align-items:flex-start;gap:16px;justify-self:end}
@media(max-width:960px){.qband{grid-template-columns:1fr;padding:32px 24px}.qband-a{justify-self:start}}
/* ===== quote form: steps + compact choices ===== */
.qf-steps{list-style:none;margin:0 0 10px;padding:0;display:flex;gap:6px;font-size:.8rem;font-weight:700;color:var(--mute)}
.qf-steps li{flex:1;display:flex;align-items:center;gap:8px}.qf-steps li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--line);flex:none}
.qf.s1 .qf-steps li:nth-child(1),.qf.s2 .qf-steps li:nth-child(-n+2),.qf.s3 .qf-steps li{color:var(--ink)}
.qf.s1 .qf-steps li:nth-child(1)::before,.qf.s2 .qf-steps li:nth-child(-n+2)::before,.qf.s3 .qf-steps li::before{background:var(--gold)}
.tiles{grid-template-columns:repeat(2,1fr);gap:8px}
.tile{display:flex;align-items:center;gap:10px;border-width:1.5px;border-radius:12px;padding:6px;min-height:58px}
.tile img,.tile .tile-ph{width:46px;height:46px;aspect-ratio:1;flex:none;border-radius:8px;object-fit:cover;background-size:24px}
.tile>span:last-child,.qf-c .tile>span:last-child{padding:0;font-size:.92rem;line-height:1.2}
.tile:hover{transform:none;border-color:var(--gold);background:#f6f8fd}
.tile:has(input:checked){background:#eef2fc}
@media(min-width:1100px){.qp .tiles{grid-template-columns:repeat(3,1fr)}}
/* ===== quote page ===== */
.qp{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:start;padding-top:48px;padding-bottom:80px}
.qp-form{order:2;position:sticky;top:92px}.qp-side{order:1}
.qp .qf{padding:30px;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.qp .qf legend{font-size:1.45rem}
.qp-side h1{font-size:clamp(2.4rem,4.4vw,4rem);letter-spacing:-.045em;line-height:1;margin-bottom:.35em}
.qp-next{list-style:none;margin:36px 0 0;padding:0;counter-reset:none;border-left:2px solid var(--ln)}
.qp-next li{position:relative;padding:0 0 26px 26px}.qp-next li::before{content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--acc)}
.qp-next b{display:block;color:#fff;font-size:1.08rem;margin-bottom:4px}.qp-next span{color:var(--tx2)}
.qp-call{margin-top:18px;padding:24px;border-radius:16px;background:var(--bg3);border:1px solid var(--ln)}.qp-call span{color:var(--tx3);font-size:.9rem}.qp-call .ft-big{margin:4px 0 8px;font-size:clamp(1.8rem,3vw,2.4rem)}.qp-call p{margin:0;color:var(--tx2)}
.qp-prom{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;color:var(--tx2);font-size:.95rem}.qp-prom li{display:flex;gap:10px;align-items:center}.qp-prom li::before{content:"";width:7px;height:7px;background:var(--acc);transform:rotate(45deg);flex:none}
body.qpage-b .bar{display:none}
@media(max-width:960px){.qp{grid-template-columns:1fr;gap:28px;padding-top:20px}.qp-form{order:1;position:static}.qp-side{order:2}
  .qp-side .crumb,.qp-side>.lead{display:none}.qp-side{display:contents}.qp-side>*{order:2}
  .qp-side h1{order:0;font-size:2rem;margin:0 0 -10px}
  .qp .qf{padding:20px 16px 0;border-radius:18px}
  .qp .qf-nav{position:sticky;bottom:0;background:#fff;margin:12px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);border-radius:0 0 18px 18px}
  .qp .qf-foot{padding-bottom:16px}.qp-prom{grid-template-columns:1fr}}
@media(max-width:640px){.tiles,.qp .tiles{grid-template-columns:1fr 1fr;gap:7px}.tile{min-height:54px;padding:5px;gap:8px}.tile img,.tile .tile-ph{width:40px;height:40px}.tile>span:last-child{font-size:.86rem}}
.qf label.tile{display:flex;flex-direction:row;align-items:center;margin:0}
.qf label.tile:last-child{grid-column:1/-1;min-height:48px;justify-content:center;background:#f7f7f5}.qf label.tile:last-child .tile-ph{display:none}
.qf label.tile:last-child>span:last-child{font-weight:600;color:var(--ink2)}

.clone{display:contents}.ab-cimg{border-radius:18px;overflow:hidden;aspect-ratio:4/5;max-height:560px}.ab-cimg img{width:100%;height:100%;object-fit:cover}

/* hero options D/E/F */
.hD{position:relative;isolation:isolate;overflow:hidden;height:calc(100svh - 76px);min-height:560px;display:flex;align-items:flex-end}
.hD-wall{position:absolute;inset:0;z-index:-2;display:grid;grid-template-rows:repeat(3,1fr);gap:10px;padding:10px 0;transform:rotate(-4deg) scale(1.15)}
.hD-row{overflow:hidden;height:100%}.hD-row .hA-tr{height:100%;gap:10px;animation:rail 90s linear infinite}.hD-row.rev .hA-tr{animation-direction:reverse;animation-duration:110s}
.hD .ht{height:100%;border-radius:10px}.hD .ht.w0{width:30vh}.hD .ht.w1{width:44vh}.hD .ht.w2{width:24vh}.hD .ht-c{display:none}
.hD::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,rgba(12,13,15,.97) 0,rgba(12,13,15,.86) 34%,rgba(12,13,15,.25) 70%,rgba(12,13,15,.45) 100%)}
.hD-t{padding-bottom:56px;width:100%}.hD-t h1{font-size:clamp(2.4rem,5.4vw,5.4rem);letter-spacing:-.05em;line-height:.95;margin:0 0 20px;max-width:13ch;animation:rise 1s var(--ease) both}
.hD-t .lead{max-width:46ch;margin:0 0 26px;animation:rise 1s .12s var(--ease) both}.hD-t .cta{margin:0;animation:rise 1s .22s var(--ease) both}
.hE{position:relative;isolation:isolate;overflow:hidden;padding:48px 0 32px;min-height:calc(100svh - 76px);display:flex;flex-direction:column}
.hE h1{font-size:clamp(3rem,9.2vw,9.6rem);letter-spacing:-.06em;line-height:.88;margin:0 0 36px;animation:rise 1s var(--ease) both}
.hE-row{overflow:hidden;margin-top:12px;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);animation:fade 1.2s .25s both}
.hE-row .hA-tr{animation:rail 80s linear infinite}.hE-row.rev .hA-tr{animation-direction:reverse;animation-duration:95s}
.hE .ht{height:clamp(150px,22vh,260px)}.hE .ht.w0{width:clamp(200px,25vh,320px)}.hE .ht.w1{width:clamp(270px,36vh,430px)}.hE .ht.w2{width:clamp(160px,19vh,240px)}
.hE-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:auto;padding-top:30px}.hE-s{margin:0;color:var(--tx2,var(--ink2));max-width:40ch}.hE .cta{margin:0}
.hF{position:relative;isolation:isolate;overflow:hidden;padding:48px 0 28px;min-height:calc(100svh - 76px);display:flex;flex-direction:column}
.hF-h{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.hF-h h1{font-size:clamp(2.2rem,4.4vw,4.4rem);letter-spacing:-.05em;line-height:.96;margin:0;max-width:15ch;animation:rise 1s var(--ease) both}.hF-h .cta{margin:0;flex:none}
.hF-row{overflow:hidden;margin-top:36px;flex:1;display:flex;min-height:0;animation:fade 1.2s .25s both}.hF-row .hA-tr{animation:rail 110s linear infinite;align-items:stretch}.hF-row:hover .hA-tr{animation-play-state:paused}
.hF-t{width:clamp(240px,30vh,340px);height:clamp(320px,52vh,560px)}.hF-c{position:absolute;left:0;right:0;bottom:0;padding:40px 16px 14px;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent);display:grid;gap:2px;color:#fff}.hF-c b{font-size:.95rem;line-height:1.2}.hF-c small{opacity:.7}
.hF-proof{list-style:none;display:flex;flex-wrap:wrap;gap:10px 28px;margin:24px 0 0;padding:0;font-size:.92rem;color:var(--tx2,var(--ink2))}.hF-proof li::before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;background:var(--gold);transform:rotate(45deg) translateY(-2px)}
@media(max-width:960px){.hF-h{flex-direction:column;align-items:flex-start;gap:22px}.hE-bar{flex-direction:column;align-items:flex-start}}
@media(max-width:640px){
.hD{height:calc(100svh - 64px);min-height:520px}.hD-wall{transform:rotate(-4deg) scale(1.25)}.hD .ht.w0{width:24vh}.hD .ht.w1{width:32vh}.hD .ht.w2{width:20vh}.hD-t{padding-bottom:28px}.hD-t .lead{font-size:1rem;margin-bottom:20px}
.hD .cta,.hE .cta,.hF .cta{display:grid;gap:12px;width:100%}.hD .cta .btn,.hE .cta .btn,.hF .cta .btn{justify-content:center}
.hE{padding-top:28px;min-height:0}.hE h1{font-size:clamp(2.9rem,15vw,4.4rem);margin-bottom:22px}.hE .ht{height:150px}.hE .ht.w0{width:190px}.hE .ht.w1{width:250px}.hE .ht.w2{width:150px}.hE-bar{padding-top:22px;gap:16px}.hE-s{font-size:.98rem}
.hF{padding-top:24px;min-height:0}.hF-h h1{font-size:2.15rem}.hF-row{margin-top:24px;flex:none}.hF-t{width:66vw;height:44svh}.hF-proof{display:none}.hF .lnk{text-align:center}}
@media(prefers-reduced-motion:reduce){.hD-row .hA-tr,.hE-row .hA-tr,.hF-row .hA-tr{animation:none}}
.hE>.wrap,.hF>.wrap,.hD>.wrap{width:100%}
@media(max-width:640px){.hD-t{padding-bottom:104px}.hD .lnk,.hE .lnk,.hF .lnk{display:none}}

/* UI test fixes */
.hh>.glow{inset:-10% 0}
.hh-cap small{font-size:.8rem}
.tr-hw{height:auto;object-fit:contain}
@media(max-width:960px){.chips{mask-image:linear-gradient(90deg,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent)}}

/* ---- UI review fixes, Oct 13 ---- */
a[href^="tel:"]{white-space:nowrap}
/* project labels sit under the title, readable on any photo */
.wk .wk-m,.wk-m{color:rgba(255,255,255,.78);text-transform:none;letter-spacing:0;font-weight:500;font-size:.88rem;margin:6px 0 0}
.wk-t{background:linear-gradient(180deg,transparent,rgba(0,0,0,.55) 35%,rgba(0,0,0,.88))}
.pmeta{color:var(--tx2);font-size:1rem;margin:-6px 0 18px}
/* footer: no odd strip below, sensible columns */
body{padding-bottom:0}
.ft h2{color:var(--tx2)}
@media(max-width:960px){.ft-end{padding-bottom:96px}
  .ft-grid{grid-template-columns:1fr 1fr;gap:36px 32px}.ft-grid>div:first-child{grid-column:1/-1}}
@media(max-width:640px){.ft-grid{grid-template-columns:1fr}.ft-grid ul{columns:2;column-gap:20px}.ft-grid li{break-inside:avoid;font-size:.92rem}.ft-grid>div:first-child{grid-column:auto}}
/* headings never jammed against the block above */
.pg h2{margin-top:72px}.pg .sh h2,.pg>h2:first-child{margin-top:0}
.pg>.lead{margin-bottom:40px}
/* about: one divider style at tablet */
@media(max-width:960px){.ab-w:nth-child(odd){border-right:0}.ab-w p{max-width:none}}
/* service grid: no card left alone */
@media(max-width:960px) and (min-width:641px){.bento .sv:last-child{grid-column:span 2}}
@media(max-width:640px){.bento{grid-template-columns:1fr 1fr;grid-auto-rows:168px;gap:10px}.bento .sv:nth-child(1),.bento .sv:last-child{grid-column:span 2}
  .bento .sv-t{left:14px;right:14px;bottom:12px}.bento .sv-n{font-size:1rem}.bento .sv:nth-child(1) .sv-n{font-size:1.4rem}.bento .sv svg,.bento .sv .sv-a{display:none}}
/* card grids: a short last row stretches instead of leaving a gap */
@media(min-width:961px){.g3{grid-template-columns:repeat(6,1fr)}.g3>*{grid-column:span 2}
  .g3>:last-child:nth-child(3n+2),.g3>:nth-last-child(2):nth-child(3n+1){grid-column:span 3}
  .g3>:last-child:nth-child(3n+1){grid-column:3/span 2}}
@media(max-width:960px) and (min-width:641px){.g3>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:960px) and (min-width:641px){.g3>.wk:last-child:nth-child(odd){grid-column:auto;justify-self:center;width:100%;grid-column:1/-1;max-width:calc(50% - 11px)}}
@media(min-width:961px){.opts{grid-template-columns:repeat(6,1fr)}.opts>*{grid-column:span 2}
.opts>:last-child:nth-child(3n+2),.opts>:nth-last-child(2):nth-child(3n+1){grid-column:span 3}.opts>:last-child:nth-child(3n+1){grid-column:1/-1}}
@media(max-width:960px) and (min-width:641px){.opts{grid-template-columns:1fr 1fr}.opts>*{grid-column:auto}.opts>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:640px){.opts{grid-template-columns:1fr}.opts>*{grid-column:auto}}
/* inner page heroes: image to the content edge, no dead gap under it */
.hero-i{justify-self:stretch;width:100%}
@media(max-width:960px){.hero-i .drift{aspect-ratio:4/3;max-height:none}.hero{padding-bottom:40px}}
/* filter chips wrap on desktop */
@media(min-width:961px){.chips{flex-wrap:wrap;overflow:visible}}
/* finishes chart at its real shape */
.fchart{height:auto;object-fit:contain}
.hero-i .drift{margin-left:auto}
.bar[hidden]{display:none!important}
.band,.hw,.hD,.hA{overflow-x:clip}
/* review pass 2 */
.pd-sku,.pd-sku{color:var(--tx2);font-weight:500;letter-spacing:0;margin:-4px 0 14px}
.pd-fin{margin-top:18px}
.qp-prom li{align-items:flex-start}.qp-prom li::before{margin-top:.55em;flex:none}
.qf input:not([type=radio]):not([type=checkbox]):not([type=file]),.qf select{min-height:50px}
.hh-cap small{color:var(--tx2);text-transform:none;letter-spacing:0;font-weight:500;font-size:.85rem;margin-top:2px}
@media(max-width:640px){.hh-a{aspect-ratio:4/3}.fchart{display:none}}
@media(max-width:960px){.hD-t h1{max-width:17ch}.sh h2{max-width:none}}

/* confirmation pass fixes */
@media(max-width:960px){.ab-mosaic>:last-child{grid-column:span 2}}
@media(max-width:960px) and (min-width:641px){.sec .g3>.wk:nth-child(3):last-child{display:none}.prel>:nth-child(4):last-child{display:none}}
@media(min-width:961px){.g3>.card:last-child:nth-child(3n+1){grid-column:1/-1}}
.ab-cimg{max-height:none;aspect-ratio:auto;height:560px;width:100%}
@media(max-width:960px){.ab-cimg{height:auto;aspect-ratio:4/3}}
.fchart{max-width:none}
.proof strong{align-items:flex-start}.proof strong::before{margin-top:.5em}
h3:has(+ ul.inline){margin-top:32px}
.qf .row{row-gap:0}
@media(max-width:960px){.qp{padding-top:36px}}
@media(max-width:640px){.hero{padding-left:18px;padding-right:18px}.ft-grid ul{columns:auto;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}}

/* two owners, two numbers */
.tels{display:flex;flex-direction:column;gap:2px;line-height:1.2}.tels .tel{font-size:.86rem}.tels .tel span{font-weight:500;color:var(--tx2);margin-right:2px}
@media(max-width:1100px){.hd-act .tels{display:none}}
.calls{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;color:var(--tx2)}
.calls-big{display:grid;gap:10px;margin:14px 0 12px}.calls-big .ft-big{margin:0;display:flex;align-items:baseline;gap:12px}.calls-big small{font-size:.9rem;font-weight:600;letter-spacing:0;color:var(--tx2);min-width:4.2em}
.ft .calls-big .ft-big{font-size:clamp(1.6rem,3vw,2.4rem)}
.bar-call{position:relative}.bar-call summary{list-style:none;display:flex;align-items:center;justify-content:center;height:48px;font-weight:700;color:#fff;border-radius:999px;cursor:pointer}.bar-call summary::-webkit-details-marker{display:none}
.bar-call[open] summary{background:rgba(255,255,255,.08)}
.bar-pop{position:absolute;left:-6px;bottom:calc(100% + 14px);width:calc(100vw - 20px);max-width:420px;display:grid;gap:8px;padding:8px;background:rgba(17,18,20,.96);border:1px solid var(--ln);border-radius:20px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.bar-pop a{justify-content:space-between;padding:0 20px;background:var(--bg3)}.bar-pop b{font-weight:700}
.calls-big p{margin:0;display:flex;align-items:baseline;gap:14px}.calls-big span{font-size:.9rem;font-weight:600;color:var(--tx2);min-width:4.2em}.calls-big .ft-big{margin:0}
.calls a,.tels a,.bar-pop a{white-space:nowrap}
/* desktop header: logo left, menu centred, phones and quote right */
@media(min-width:961px){.hd-in{display:grid;grid-template-columns:1fr auto 1fr}.nav{margin:0;justify-self:center}.hd-act{justify-self:end}.lg{justify-self:start}}
/* review fixes: hero call links on phones, tap targets, upload label, heading levels */
@media(max-width:640px){.hD .calls .lnk,.hE .calls .lnk,.hF .calls .lnk{display:inline-block}.hD .calls,.hE .calls,.hF .calls{justify-content:center;font-size:.95rem}.hD .calls .lnk{padding:6px 0}}
.tels{gap:0}.tels .tel{display:block;padding:4px 0;min-height:24px}
.qf .drop span{display:inline;font-weight:400;font-size:.9rem;color:var(--mute);margin:0}.qf .drop strong{font-weight:700}
.drop:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px rgba(74,109,219,.35)}
.ring h2{font-size:1.4rem;margin:0 0 4px}.pg .ring h2{margin-top:0}
.card h2{margin:18px 18px 6px;font-size:1.15rem;letter-spacing:-.01em}.pg .card h2{margin-top:18px}
@media(max-width:640px){.hD .calls .calls-l,.hD .calls .or{display:none}.hD .calls{gap:6px 20px;font-size:.98rem}}
