:root{--bg:#fbfbfd;--bg2:#f5f5f7;--card:#fff;--text:#1d1d1f;--muted:#6e6e73;--line:rgba(0,0,0,.1);--accent:#0071e3;--accent-h:#0077ed;--on-accent:#fff;--nav:rgba(251,251,253,.72);--shadow:0 2px 8px rgba(0,0,0,.04),0 12px 32px rgba(0,0,0,.06);--shadow-h:0 4px 14px rgba(0,0,0,.06),0 24px 48px rgba(0,0,0,.12);--r:28px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif}
:root[data-theme=dark]{--bg:#121214;--bg2:#19191c;--card:#1f1f23;--text:#f5f5f7;--muted:#a1a1a6;--line:rgba(255,255,255,.13);--accent:#2997ff;--accent-h:#47a5ff;--nav:rgba(24,24,27,.74);--shadow:0 2px 8px rgba(0,0,0,.3);--shadow-h:0 24px 48px rgba(0,0,0,.5)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121214;--bg2:#19191c;--card:#1f1f23;--text:#f5f5f7;--muted:#a1a1a6;--line:rgba(255,255,255,.13);--accent:#2997ff;--accent-h:#47a5ff;--nav:rgba(24,24,27,.74);--shadow:0 2px 8px rgba(0,0,0,.3);--shadow-h:0 24px 48px rgba(0,0,0,.5)}}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.47 var(--font);-webkit-font-smoothing:antialiased;letter-spacing:-.011em}
img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{font-weight:700;letter-spacing:-.03em;line-height:1.08;margin:0}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}.narrow{width:min(720px,100% - 40px);margin-inline:auto}
.sr{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:200;background:var(--card);padding:10px 16px;border-radius:10px}
/* nav */
.nav{position:sticky;top:0;z-index:100;height:56px;background:var(--nav);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);border-bottom:1px solid var(--line)}
.nav .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo img{height:34px;width:auto}.logo{display:flex;align-items:center}
:root[data-theme=dark] .logo img{background:#fff;border-radius:8px;padding:2px 6px}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .logo img{background:#fff;border-radius:8px;padding:2px 6px}}
.menu{display:flex;gap:2px;align-items:center;list-style:none;margin:0;padding:0}
.menu>li{position:relative}.menu>li>a{display:block;padding:8px 12px;border-radius:980px;color:var(--text);font-size:14px;opacity:.86}.menu>li>a:hover{opacity:1;background:var(--bg2);text-decoration:none}
.dd{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:520px;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-h);padding:22px 26px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 28px;opacity:0;visibility:hidden;transition:.18s}
.has-dd:hover .dd,.has-dd:focus-within .dd{opacity:1;visibility:visible;transform:translate(-50%,2px)}
.dd h4{margin:0 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.dd a{display:block;color:var(--text);font-size:14px;padding:3px 0}.dd a:hover{color:var(--accent);text-decoration:none}
.nav-cta{background:var(--accent);color:var(--on-accent)!important;border-radius:980px;padding:8px 16px;font-size:14px;font-weight:500;white-space:nowrap}.nav-cta:hover{background:var(--accent-h);text-decoration:none}
.burger{display:none;background:none;border:0;padding:10px;cursor:pointer;color:var(--text)}
@media(max-width:980px){.menu{display:none}.burger{display:block}.nav-cta{display:none}
 .nav.open .menu{display:flex;position:fixed;inset:56px 0 0 0;background:var(--bg);flex-direction:column;align-items:stretch;padding:12px 20px 100px;overflow:auto;gap:0}
 .nav.open .menu>li>a{font-size:22px;padding:14px 4px;border-bottom:1px solid var(--line);border-radius:0;opacity:1;font-weight:600}
 .nav.open .dd{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:8px 0 8px 8px;min-width:0;grid-template-columns:1fr}}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:980px;padding:13px 26px;font-size:17px;font-weight:500;border:1px solid transparent;cursor:pointer;transition:.2s;font-family:inherit}
.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-p{background:var(--accent);color:var(--on-accent)}.btn-p:hover{background:var(--accent-h)}
.btn-s{background:transparent;color:var(--accent);border-color:var(--accent)}.btn-s:hover{background:var(--accent);color:var(--on-accent)}
.link-more{font-size:17px;color:var(--accent)}.link-more::after{content:" ›"}
/* hero */
.hero{text-align:center;padding:clamp(64px,10vw,128px) 0 clamp(32px,5vw,64px);position:relative;overflow:hidden}
.eyebrow{font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.hero h1{font-size:clamp(40px,7.2vw,84px);letter-spacing:-.045em;line-height:1.03;max-width:16ch;margin:0 auto;background:linear-gradient(180deg,var(--text) 40%,color-mix(in srgb,var(--text) 55%,transparent));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero.page h1{font-size:clamp(34px,5.6vw,64px);max-width:22ch}
.lead{font-size:clamp(19px,2.2vw,26px);line-height:1.3;color:var(--muted);max-width:30em;margin:22px auto 0;letter-spacing:-.018em;font-weight:400}
.ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.hero-img{margin:clamp(36px,6vw,72px) auto 0;width:min(1180px,100% - 32px);border-radius:36px;overflow:hidden;box-shadow:var(--shadow-h);aspect-ratio:21/10;background:var(--bg2)}
.hero-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}.hero-img.in img{transform:scale(1)}
.glow{position:absolute;left:50%;top:-30%;width:900px;height:700px;transform:translateX(-50%);background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 22%,transparent),transparent);pointer-events:none;z-index:-1}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:clamp(40px,6vw,80px) auto 0;width:min(1000px,100% - 40px);text-align:center}
.stat{padding:8px 12px}.stat b{display:block;font-size:clamp(30px,4.4vw,52px);font-weight:700;letter-spacing:-.04em;line-height:1.1}.stat span{color:var(--muted);font-size:15px}
@media(max-width:720px){.stats{grid-template-columns:repeat(2,1fr);gap:22px 0}}
/* sections */
.band{padding:clamp(56px,8vw,110px) 0}.alt{background:var(--bg2)}.dark{background:#000;color:#f5f5f7;--muted:#a1a1a6;--text:#f5f5f7;--line:rgba(255,255,255,.14)}
.h2{font-size:clamp(30px,4.6vw,56px);letter-spacing:-.04em;margin-bottom:14px}.sub{color:var(--muted);font-size:clamp(18px,2vw,23px);line-height:1.3;max-width:34em}
.center{text-align:center}.center .sub{margin-inline:auto}
/* bento */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:clamp(32px,5vw,56px)}
.tile{grid-column:span 2;background:var(--card);border-radius:var(--r);padding:30px 28px 26px;display:flex;flex-direction:column;min-height:280px;box-shadow:var(--shadow);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;color:var(--text);position:relative;overflow:hidden}
.tile:hover{transform:translateY(-6px);box-shadow:var(--shadow-h);text-decoration:none}
.tile.big{grid-column:span 3;min-height:360px}.tile.dk{background:#000;color:#f5f5f7}.tile.dk p{color:#a1a1a6}.tile.dk .ic{color:#2997ff}
.tile .ic{width:44px;height:44px;color:var(--accent);margin-bottom:auto}.tile h3{font-size:clamp(24px,2.6vw,32px);margin:22px 0 8px;letter-spacing:-.03em}
.tile p{margin:0 0 16px;color:var(--muted);font-size:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tile .more{color:var(--accent);font-size:16px;margin-top:auto}.tile .more::after{content:" ›"}
@media(max-width:900px){.bento{grid-template-columns:1fr 1fr}.tile,.tile.big{grid-column:span 1;min-height:240px}}@media(max-width:600px){.bento{grid-template-columns:1fr}}
/* chips + brands */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:32px}.chip{padding:10px 20px;border-radius:980px;background:var(--card);border:1px solid var(--line);font-size:16px;box-shadow:var(--shadow)}
.brands{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:36px}.brand{display:flex;align-items:center;justify-content:center;height:84px;border-radius:20px;background:var(--card);border:1px solid var(--line);color:var(--text);font-weight:600;font-size:18px;letter-spacing:-.02em;transition:.25s}.brand:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none;color:var(--accent)}
@media(max-width:720px){.brands{grid-template-columns:repeat(2,1fr)}}
/* quote cards */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}.card{background:var(--card);border-radius:var(--r);padding:30px;box-shadow:var(--shadow)}.card h3{font-size:21px;margin-bottom:10px;letter-spacing:-.025em}.card p{margin:0;color:var(--muted);font-size:16px}
@media(max-width:900px){.cards3{grid-template-columns:1fr}}
.post-card{display:flex;flex-direction:column;color:var(--text)}.post-card:hover{text-decoration:none;transform:translateY(-4px);box-shadow:var(--shadow-h)}.post-card{transition:.3s}.post-card .t{font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:1.2;margin-bottom:10px}
/* article body */
.prose{padding:clamp(40px,6vw,80px) 0}.prose>*{margin-block:0}.prose p{margin:0 0 1.15em;font-size:19px;line-height:1.55;color:color-mix(in srgb,var(--text) 88%,transparent)}
.prose h2{font-size:clamp(28px,3.6vw,40px);margin:1.7em 0 .5em;letter-spacing:-.035em}.prose h2:first-child{margin-top:0}.prose h3{font-size:24px;margin:1.5em 0 .5em}
.prose ul{list-style:none;padding:0;margin:0 0 1.4em}.prose li{position:relative;padding:12px 0 12px 34px;border-bottom:1px solid var(--line);font-size:18px}.prose li::before{content:"";position:absolute;left:4px;top:19px;width:14px;height:8px;border-left:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(-45deg)}
.prose figure{margin:2em -6% 2em}.prose figure img{border-radius:24px;width:100%;box-shadow:var(--shadow)}
@media(max-width:760px){.prose figure{margin-inline:0}}
.secband{padding:clamp(44px,6vw,84px) 0}.secband:nth-child(even){background:var(--bg2)}
.meta{color:var(--muted);font-size:15px;margin-top:16px}
/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:34px;align-items:start}@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
.info{display:grid;gap:14px}.info a,.info div{display:block;background:var(--card);border-radius:22px;padding:20px 24px;box-shadow:var(--shadow);color:var(--text)}.info small{display:block;color:var(--muted);font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-weight:600}.info b{font-size:20px;letter-spacing:-.02em}
form.cf{background:var(--card);border-radius:var(--r);padding:30px;box-shadow:var(--shadow);display:grid;gap:14px}.cf label{display:grid;gap:6px;font-size:14px;color:var(--muted);font-weight:500}
.cf input,.cf textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:14px 16px;width:100%;transition:.2s}.cf input:focus,.cf textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.cf textarea{min-height:140px;resize:vertical}
/* cta + footer */
.cta{text-align:center}.cta .h2{max-width:14ch;margin-inline:auto}
.foot{background:var(--bg2);padding:56px 0 100px;font-size:14px;color:var(--muted);border-top:1px solid var(--line)}
.fgrid{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:32px}@media(max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}
.foot h4{color:var(--text);margin:0 0 10px;font-size:13px;letter-spacing:.02em}.foot a{display:block;color:var(--muted);padding:3px 0}.foot a:hover{color:var(--text);text-decoration:none}
.legal{border-top:1px solid var(--line);margin-top:34px;padding-top:18px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.callbar{display:none}
@media(max-width:767px){.callbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#fff;border-radius:980px;padding:15px;font-weight:600;font-size:17px;box-shadow:0 10px 30px rgba(0,0,0,.28)}.callbar:hover{text-decoration:none}}
/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.hero-img img{transition:none;transform:none}}
.faq details{background:var(--card);border-radius:22px;box-shadow:var(--shadow);margin-bottom:14px;padding:0 26px;transition:.25s}.faq summary{cursor:pointer;list-style:none;padding:22px 30px 22px 0;font-size:20px;font-weight:600;letter-spacing:-.02em;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:0;top:18px;font-size:30px;font-weight:300;color:var(--accent);transition:.25s}.faq details[open] summary::after{transform:rotate(45deg)}.faq details p{margin:0 0 24px;color:var(--muted);font-size:18px;line-height:1.55}
.tile.dk{background:linear-gradient(150deg,#2a2a30,#0e0e10 75%);border:1px solid rgba(255,255,255,.08)}
.dark .btn-s{color:#2997ff;border-color:#2997ff}
.tile.wide{grid-column:span 6;min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 28px}.tile.wide .ic{margin:0}.tile.wide h3{margin:0}.tile.wide p{flex:1 1 320px;margin:0;-webkit-line-clamp:2}.tile.wide .more{margin:0}
@media(max-width:900px){.tile.wide{grid-column:1/-1}}
.callbar svg{width:20px;height:20px;flex:none}
@media(max-width:700px){.cards3[style*="repeat(2"]{grid-template-columns:1fr!important}}

.dark{background:linear-gradient(180deg,#16161a,#0a0a0c)}
.theme{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;flex:none;transition:.2s}.theme:hover{background:var(--bg2)}.theme svg{width:18px;height:18px}
.theme .i-light,.theme .i-dark,.theme .i-auto{display:none}
:root[data-mode=light] .theme .i-light,:root[data-mode=dark] .theme .i-dark,:root:not([data-mode]) .theme .i-auto,:root[data-mode=auto] .theme .i-auto{display:block}
.navr{display:flex;align-items:center;gap:10px}
.fig-d{margin:2.2em -4% 2.2em;background:var(--card);border-radius:28px;padding:clamp(18px,3vw,34px);box-shadow:var(--shadow)}.fig-d svg{width:100%;height:auto;display:block}.fig-d figcaption{margin-top:14px;color:var(--muted);font-size:15px;text-align:center}
.dsvg .s{stroke:var(--text);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dsvg .a{stroke:var(--accent)}.dsvg .f{fill:var(--bg2);stroke:var(--line);stroke-width:1.5}.dsvg .fa{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:var(--accent);stroke-width:2}.dsvg text{fill:var(--text);font:600 15px var(--font);letter-spacing:-.01em}.dsvg .t2{fill:var(--muted);font-weight:500;font-size:13px}.dsvg .ar{stroke:var(--accent);stroke-width:2.2;fill:none;stroke-linecap:round;marker-end:url(#ah)}.dsvg .cone{fill:color-mix(in srgb,var(--accent) 18%,transparent);stroke:var(--accent);stroke-width:1.2}
.photo-band{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}.pcard{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;color:#fff;display:flex;align-items:flex-end;box-shadow:var(--shadow)}.pcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.pcard:hover img{transform:scale(1.05)}.pcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.72))}.pcard div{position:relative;z-index:1;padding:26px}.pcard h3{font-size:26px;margin-bottom:6px;color:#fff}.pcard p{margin:0;color:rgba(255,255,255,.82);font-size:16px}.pcard:hover{text-decoration:none}
@media(max-width:800px){.photo-band{grid-template-columns:1fr}.pcard{aspect-ratio:16/10}}
.cities{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:1.6em 0}.city{background:var(--card);border-radius:22px;padding:22px 24px;box-shadow:var(--shadow)}.city h3{font-size:22px;margin:0 0 6px}.city p{font-size:16px;margin:0 0 8px;color:var(--muted)}@media(max-width:700px){.cities{grid-template-columns:1fr}}
/* ===== premium motion layer ===== */
::view-transition-old(root){animation:vt-out .28s ease both}::view-transition-new(root){animation:vt-in .42s cubic-bezier(.2,.7,.2,1) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}@keyframes vt-in{from{opacity:0;transform:translateY(14px)}}
.prog{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--accent),#7a5cff);z-index:200;pointer-events:none}
.glow{animation:drift 14s ease-in-out infinite alternate}@keyframes drift{from{transform:translateX(-56%) scale(1)}to{transform:translateX(-44%) scale(1.15)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 40% at 15% 10%,color-mix(in srgb,#7a5cff 14%,transparent),transparent),radial-gradient(50% 40% at 85% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent);animation:mesh 18s ease-in-out infinite alternate}
@keyframes mesh{to{transform:translate3d(0,24px,0) scale(1.08)}}
.hero h1 .w{display:inline-block;opacity:0;transform:translateY(.55em) rotateX(-40deg);animation:wordin .9s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*70ms + 120ms)}
@keyframes wordin{to{opacity:1;transform:none}}
.hero .eyebrow,.hero .lead,.hero .ctas{opacity:0;animation:fadeup .9s cubic-bezier(.2,.8,.2,1) forwards}.hero .eyebrow{animation-delay:.05s}.hero .lead{animation-delay:.55s}.hero .ctas{animation-delay:.75s}
@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.btn{position:relative;overflow:hidden}.btn-p::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s}.btn-p:hover::after{transform:translateX(120%)}
.spot{position:relative;isolation:isolate}.spot::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--accent) 22%,transparent),transparent 60%);opacity:0;transition:opacity .35s;z-index:-1;pointer-events:none}.spot:hover::before{opacity:1}
.tile,.card,.brand,.city,.pcard{will-change:transform}
.marq{overflow:hidden;margin-top:40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marq-t{display:flex;gap:14px;width:max-content;animation:marq 46s linear infinite}.marq:hover .marq-t{animation-play-state:paused}.marq a{flex:none;padding:16px 28px;border-radius:980px;background:var(--card);border:1px solid var(--line);color:var(--text);font-weight:600;letter-spacing:-.02em;font-size:18px;box-shadow:var(--shadow)}.marq a:hover{text-decoration:none;color:var(--accent)}
@keyframes marq{to{transform:translateX(-50%)}}
/* hero art */
.art-wrap{margin:clamp(36px,6vw,72px) auto 0;width:min(1180px,100% - 32px);border-radius:36px;overflow:hidden;box-shadow:var(--shadow-h);aspect-ratio:21/10;background:#0b0c10;position:relative;border:1px solid var(--line)}
.art-wrap::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);pointer-events:none}
.art{width:100%;height:100%;display:block}.art-bg{fill:#0b0c10}.art-line{stroke:rgba(255,255,255,.05);stroke-width:1}.art-line2{stroke:#7fb8ff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.art-line2.dash{stroke-dasharray:3 7;opacity:.5;animation:dashm 3s linear infinite}
.art-b{fill:#14161c;stroke:rgba(255,255,255,.14);stroke-width:1.5}.art-w{fill:#2997ff;opacity:.1;animation:tw 4s ease-in-out infinite}@keyframes tw{0%,100%{opacity:.08}50%{opacity:.85}}
.art-cone{fill:url(#g2);opacity:.9;transform-origin:400px 62px;animation:sweep 6s ease-in-out infinite alternate}@keyframes sweep{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
.art-rec{fill:#ff453a;animation:blink 1.4s ease-in-out infinite}@keyframes blink{50%{opacity:.2}}
.art-door{fill:#10131a;stroke:rgba(255,255,255,.12)}.art-ring{fill:none;stroke:#2997ff;stroke-width:2;transform-origin:center;animation:ringp 2.4s ease-out infinite}.art-ring.r2{animation-delay:1.2s}@keyframes ringp{from{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}
.art-shackle{fill:none;stroke:#7fb8ff;stroke-width:6;stroke-linecap:round;animation:unlock 5s ease-in-out infinite;transform-origin:0 -6px}@keyframes unlock{0%,45%{transform:translateY(0)}55%,90%{transform:translateY(-9px) rotate(-14deg)}100%{transform:translateY(0)}}
.art-card{fill:#171a22;stroke:rgba(255,255,255,.2);stroke-width:1.5;animation:cardm 5s ease-in-out infinite}@keyframes cardm{0%,100%{transform:translateX(0)}50%{transform:translateX(26px)}}
.art-flow{fill:none;stroke:#2997ff;stroke-width:2.5;stroke-dasharray:6 10;stroke-linecap:round;animation:dashm 2s linear infinite;opacity:.8}@keyframes dashm{to{stroke-dashoffset:-32}}
.art-pulse{fill:none;stroke:#2997ff;stroke-width:2;transform-origin:center;transform-box:fill-box;animation:pulse 4.5s ease-out infinite;opacity:0}.art-pulse.p1{animation-delay:1.5s}.art-pulse.p2{animation-delay:3s}@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(4.2);opacity:0}}
.art-check{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.art-node{fill:none;stroke:#2997ff;stroke-width:2;animation:blink 3s ease-in-out infinite}
.art-scan{fill:rgba(41,151,255,.28);animation:scanm 3.2s linear infinite}@keyframes scanm{from{transform:translateY(0)}to{transform:translateY(135px)}}.art-t{fill:#8fb8e8;font:600 12px var(--font);letter-spacing:.08em}
.art-orbit{fill:none;stroke:rgba(255,255,255,.14);stroke-dasharray:2 8}.art-spin{transform-origin:400px 210px;animation:spin 28s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hero h1 .w,.hero .eyebrow,.hero .lead,.hero .ctas{opacity:1;transform:none;animation:none}.glow,.hero::before,.marq-t,.art *{animation:none!important}.prog{display:none}}
/* regions + chips */
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}@media(max-width:900px){.rgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.rgrid{grid-template-columns:1fr}}
.rcard{background:var(--card);border-radius:24px;padding:24px;box-shadow:var(--shadow);color:var(--text);display:block;transition:.3s}.rcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-h);text-decoration:none}.rcard b{display:block;font-size:20px;letter-spacing:-.02em;margin-bottom:6px}.rcard span{color:var(--muted);font-size:15px}
.citylist{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 30px}.cc{background:var(--card);border:1px solid var(--line);border-radius:980px;padding:8px 16px;font-size:15px}.cc small{color:var(--muted);margin-left:6px}
.igrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}@media(max-width:900px){.igrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.igrid{grid-template-columns:1fr}}
/* chat */
.chat-fab{position:fixed;right:20px;bottom:20px;z-index:120;display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:980px;border:0;background:var(--accent);color:#fff;font:600 16px var(--font);cursor:pointer;box-shadow:0 12px 34px rgba(0,113,227,.45);transition:.25s}.chat-fab:hover{transform:translateY(-2px)}.chat-fab svg{width:20px;height:20px}
.chat{position:fixed;right:20px;bottom:84px;width:min(390px,100% - 24px);height:min(600px,calc(100dvh - 110px));z-index:130;background:var(--card);border-radius:26px;box-shadow:0 30px 80px rgba(0,0,0,.35);border:1px solid var(--line);display:none;flex-direction:column;overflow:hidden}.chat.open{display:flex;animation:fadeup .35s both}
.chat-h{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.chat-h b{display:block;font-size:16px;letter-spacing:-.02em}.chat-h small{color:var(--muted);font-size:12.5px}.chat-x{background:none;border:0;color:var(--muted);font-size:26px;cursor:pointer;line-height:1}
.chat-m{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.msg{max-width:86%;padding:11px 15px;border-radius:20px;font-size:15.5px;line-height:1.4}.msg.b{background:var(--bg2);align-self:flex-start;border-bottom-left-radius:6px}.msg.u{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:6px}.msg a{color:var(--accent);font-weight:600}.msg.u a{color:#fff}
.chips2{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px}.chips2 button{font:500 14px var(--font);border:1px solid var(--line);background:var(--bg);color:var(--text);padding:8px 13px;border-radius:980px;cursor:pointer}.chips2 button:hover{border-color:var(--accent);color:var(--accent)}
.chat-f{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.chat-f input{flex:1;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:980px;padding:12px 16px}.chat-f button{border:0;background:var(--accent);color:#fff;border-radius:980px;padding:0 18px;font:600 15px var(--font);cursor:pointer}
.chat-n{padding:0 16px 12px;color:var(--muted);font-size:12px}
@media(max-width:767px){.chat-fab{bottom:84px;right:14px;padding:12px 16px}.chat{right:12px;bottom:144px;height:min(560px,calc(100dvh - 170px))}}
.hero h1{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--text)}
.hero h1 .w{background:linear-gradient(180deg,var(--text) 50%,color-mix(in srgb,var(--text) 62%,transparent));-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
/* ---- review fixes (design/a11y/perf) ---- */
:root{--muted:#5f5f64;--nav:rgba(251,251,253,.88)}
:root[data-theme=dark]{--muted:#a1a1a6;--nav:rgba(24,24,27,.86)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--muted:#a1a1a6;--nav:rgba(24,24,27,.86)}}
/* headline: visible fast, solid colour, short stagger */
.hero h1 .w{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:var(--text)!important;opacity:.001;transform:translateY(.25em);animation:wordin2 .45s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*30ms)}
@keyframes wordin2{to{opacity:1;transform:none}}
.prose{max-width:66ch}
.secband .prose:first-child{padding-top:0}
.tile p{display:block;-webkit-line-clamp:unset;overflow:visible}.tile.wide p{-webkit-line-clamp:unset}
.tile.rv{transition-delay:0s!important}
.bento{align-items:stretch}
/* white-on-blue contrast in dark theme */
:root[data-theme=dark] .btn-p,:root[data-theme=dark] .nav-cta,:root[data-theme=dark] .chat-fab,:root[data-theme=dark] .callbar,:root[data-theme=dark] .msg.u,:root[data-theme=dark] .chat-f button{background:#0a6fd6}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-p,:root:not([data-theme=light]) .nav-cta,:root:not([data-theme=light]) .chat-fab,:root:not([data-theme=light]) .callbar,:root:not([data-theme=light]) .msg.u,:root:not([data-theme=light]) .chat-f button{background:#0a6fd6}}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
/* phone visible on tablets too */
@media(min-width:768px) and (max-width:980px){.nav-cta{display:inline-block}}
@media(max-width:767px){.chat-fab{bottom:calc(86px + env(safe-area-inset-bottom));right:12px;padding:12px;width:48px;height:48px;justify-content:center;font-size:0}.chat-fab svg{margin:0}.chat{bottom:calc(146px + env(safe-area-inset-bottom))}}
/* motion budget */
.art-wrap.paused *{animation-play-state:paused!important}
.rv:hover{will-change:auto}
@media(prefers-reduced-motion:reduce){[class*="art-"],[class*="art-"] *{animation:none!important}.rv,.hero-img{opacity:1!important;transform:none!important;transition:none!important}html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.stat b{white-space:nowrap}
.rev{display:block}

.prose figure img{max-width:826px;margin-inline:auto}
/* a11y fixes */
:root{--accent:#0066cc;--accent-h:#0058b0}
:root[data-theme=dark]{--accent:#2997ff;--accent-h:#47a5ff}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:#2997ff;--accent-h:#47a5ff}}
.dd .fh{margin:0 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.foot .fh{color:var(--text);margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:.02em}
.dark,.tile.dk{--accent:#4aa8ff}
.dark .btn-p,.tile.dk .btn-p{background:#0a6fd6;color:#fff}.dark .btn-p:hover{background:#0860b8}
.dark .btn-s{color:#4aa8ff;border-color:#4aa8ff}.dark .btn-s:hover{background:#fff;color:#0066cc;border-color:#fff}
:root[data-theme=dark] .btn-p:hover,:root[data-theme=dark] .nav-cta:hover{background:#0860b8}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-p:hover,:root:not([data-theme=light]) .nav-cta:hover{background:#0860b8}}
.btn-p:hover,.nav-cta:hover{background:#0058b0}
html{scroll-padding-top:76px;scroll-padding-bottom:96px;overflow-y:scroll;scrollbar-gutter:stable}
.prose a:not(.btn),.faq a,.secband p a{text-decoration:underline;text-underline-offset:3px}
.fgrid>*{min-width:0;overflow-wrap:anywhere}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}.contact-grid>*,.cf{min-width:0}}
html.dd-off .dd{opacity:0!important;visibility:hidden!important}
.marq:hover .marq-t,.marq:focus-within .marq-t{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.marq-t{animation:none!important;flex-wrap:wrap;width:auto}}
.info,.info>*{min-width:0;max-width:100%}.info b{overflow-wrap:anywhere}

:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}
.nav.open{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}
.nav{view-transition-name:nav}.callbar{view-transition-name:callbar}

.fmsg{margin:0;color:var(--muted);font-size:15px;min-height:1.4em}.cf button[disabled]{opacity:.6}
.stat b{font-variant-numeric:tabular-nums}
@media(max-width:767px){.chips2{max-height:92px;overflow:auto}}
.callbar{padding:0;gap:0;overflow:hidden}.callbar a{color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px;flex:1;text-decoration:none}.callbar a.cb2{flex:none;padding:15px 18px;font-size:15px;border-left:1px solid rgba(255,255,255,.35)}
.tfline{margin:18px 0 0;font-size:16px;color:var(--muted)}.dark .tfline{color:#a1a1a6}.tfline a{color:var(--accent)}

.art-wrap.photo img{width:100%;height:100%;object-fit:cover;display:block}.art-wrap.photo{background:#0b0c10}

.toc{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px 26px;margin:0 0 2em;box-shadow:var(--shadow)}.toc b{display:block;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.toc ol{margin:0;padding-left:1.2em}.toc li{padding:3px 0;font-size:17px;border:0}.toc li::before{display:none}.toc p{margin:14px 0 0;font-size:16px;color:var(--muted)}
.prose .toc li{padding-left:0}
.prose .toc li::before{display:none}.prose .toc li{border:0;padding:3px 0}

.ratetile{display:flex;flex-direction:column;justify-content:center;text-align:center;color:var(--text)}.ratetile b{font-size:56px;letter-spacing:-.04em;line-height:1}.ratetile span{font-size:18px;margin-top:6px}.ratetile small{color:var(--muted);margin-top:8px}.ratetile:hover{text-decoration:none}
.consent{margin:0;font-size:14px;color:var(--muted)}.cf select{font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);width:100%}
.chips .chip{font-size:14px;padding:8px 14px}
@media(max-width:767px){.chips{gap:8px}.chips .chip{font-size:13px;padding:7px 11px}}

html.menu-open{overflow:hidden}
@media(max-width:767px){.chat-fab{bottom:calc(94px + env(safe-area-inset-bottom))}.chat{bottom:calc(154px + env(safe-area-inset-bottom))}}

/* a11y round 2 */
:root{--field:#767676}:root[data-theme=dark]{--field:#8e8e93}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--field:#8e8e93}}
.cf input,.cf textarea,.cf select,.chat-f input,.cf select{border:1px solid var(--field)!important}
.foot p a,.tfline a,.consent a,main p a:not(.btn),main li a:not(.btn),.faq a,.legal a{text-decoration:underline;text-underline-offset:3px}
:root[data-theme=dark] .btn-s:hover{background:#0a6fd6;color:#fff;border-color:#0a6fd6}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-s:hover{background:#0a6fd6;color:#fff;border-color:#0a6fd6}}
.menu a[aria-current=page],.menu a[aria-current=true]{opacity:1;font-weight:600}
@media(max-width:767px){.chat-fab{bottom:calc(100px + env(safe-area-inset-bottom))}.chat{bottom:calc(160px + env(safe-area-inset-bottom))}}

.rvw{grid-template-columns:minmax(220px,1fr) 2fr}.rvw figure{display:flex;flex-direction:column;justify-content:center}.rvw blockquote p{font-size:20px;line-height:1.5}@media(max-width:760px){.rvw{grid-template-columns:1fr}}

fieldset{border:1px solid var(--line);border-radius:18px;padding:14px 18px;margin:0}legend{padding:0 8px;color:var(--muted);font-size:15px}.ck{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:17px}.ck input{width:20px;height:20px;accent-color:var(--accent)}
.alist{list-style:none;padding:0;margin:0 0 1.4em}.alist li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.alist li::before{display:none}.alist span{color:var(--muted);font-size:16px}

/* ===================== design upgrade (spec sections 0, U1, U15) ===================== */
:root{--btn:#0071e3;--muted:#5a5a60;--sec:clamp(64px,9vw,120px);--gap:clamp(16px,2vw,24px);--fs-lead:clamp(19px,2.1vw,23px);--ease:cubic-bezier(.2,.7,.2,1);--hair:color-mix(in srgb,var(--text) 10%,transparent);--glass:color-mix(in srgb,var(--card) 72%,transparent)}
:root[data-theme=dark]{--muted:#a8a8ae;--btn:#0a6fd6}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--muted:#a8a8ae;--btn:#0a6fd6}}
h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}
.band{padding-block:var(--sec)}
.h2{font-size:clamp(30px,4.2vw,52px);letter-spacing:-.038em;line-height:1.06}
.sub{font-size:var(--fs-lead);line-height:1.38;color:var(--muted);max-width:36em;margin-inline:auto}
.eyebrow{font-size:13px;letter-spacing:.1em}
.more,.link-more{font-weight:500}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:3px;border-radius:8px}
.nav{background:color-mix(in srgb,var(--bg) 86%,transparent)}
.hero-img,.art-wrap{border:0;outline:1px solid rgba(0,0,0,.08);outline-offset:-1px}
:root[data-theme=dark] .art-wrap,:root[data-theme=dark] .hero-img{outline-color:rgba(255,255,255,.1)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .art-wrap,:root:not([data-theme=light]) .hero-img{outline-color:rgba(255,255,255,.1)}}
.hero-img img{filter:saturate(.85) contrast(1.02)}
/* U1 logo pill in dark */
.logo img{height:32px;width:auto}
:root[data-theme=dark] .logo img{background:#f5f5f7;border-radius:980px;padding:5px 14px;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 6px 18px rgba(0,0,0,.35)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .logo img{background:#f5f5f7;border-radius:980px;padding:5px 14px;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 6px 18px rgba(0,0,0,.35)}}
.foot .logo img{height:36px}
/* U15 type rhythm */
body{font-feature-settings:"kern","liga","calt";font-optical-sizing:auto}
h1{font-weight:700;letter-spacing:-.045em}h2{letter-spacing:-.038em}h3{letter-spacing:-.022em}
.prose p{font-size:19px;line-height:1.58}.prose h2{margin-top:2.2em}
.center>.h2+.sub{margin-top:14px}
/* ===================== U2 industry cards ===================== */
.igrid2{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(32px,5vw,56px)}
@media(max-width:900px){.igrid2{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.igrid2{grid-template-columns:1fr}}
.icard{display:flex;flex-direction:column;background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);color:var(--text);transition:transform .4s var(--ease),box-shadow .4s var(--ease),opacity .8s var(--ease);position:relative}
.icard:hover{transform:translateY(-4px);box-shadow:var(--shadow-h);text-decoration:none}
.ithumb{display:block;aspect-ratio:16/9;background:#0b0c10;overflow:hidden;position:relative}
.ithumb svg{width:100%;height:100%;display:block;transform:scale(1.02);transition:transform .8s var(--ease)}
.icard:hover .ithumb svg{transform:scale(1.07)}
.ithumb::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(0,0,0,.35),transparent)}
/* thumbnails are static frames of the hero scenes (no looping animation: calm, cheap, reduced-motion safe) */
.tstatic *{animation:none!important}
.tstatic .art-w{opacity:.5}.tstatic .art-w:nth-of-type(3n){opacity:.14}.tstatic .art-w:nth-of-type(4n+1){opacity:.28}
.tstatic .art-cone{transform:none;opacity:.6}.tstatic .art-pulse{opacity:.5}.tstatic .art-flow{opacity:.5}
.ibody{display:flex;flex-direction:column;gap:6px;padding:0 24px 24px;position:relative;flex:1}
.ichip{width:44px;height:44px;border-radius:14px;background:var(--card);color:var(--accent);display:grid;place-items:center;box-shadow:var(--shadow),0 0 0 1px var(--hair);margin:-22px 0 8px;position:relative}
.ichip .ic{width:24px;height:24px}
.ibody h3{font-size:22px;letter-spacing:-.025em;line-height:1.15}
.ibody p{margin:0;color:var(--muted);font-size:16px;line-height:1.45}
.ibody .more{margin-top:auto;padding-top:12px;color:var(--accent);font-size:16px}.ibody .more::after{content:" \203A";display:inline-block;transition:transform .3s var(--ease)}
.icard:hover .more::after{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){.ithumb svg,.icard{transition:none}.icard:hover{transform:none}.icard:hover .ithumb svg{transform:scale(1.02)}}
/* ===================== U3 coverage map ===================== */
.covgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,4vw,48px);align-items:center;margin-top:clamp(28px,5vw,56px)}
@media(max-width:900px){.covgrid{grid-template-columns:1fr}}
.covgrid .rg1{grid-template-columns:1fr 1fr;margin:0}@media(max-width:560px){.covgrid .rg1{grid-template-columns:1fr}}
.cmap{margin:0;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:clamp(8px,2vw,20px)}
.cmap svg{width:100%;height:auto;display:block;aspect-ratio:800/640}
.cmap figcaption{font-size:13px;color:var(--muted);padding:4px 12px 10px;text-align:center}
.cm-ring{fill:none;stroke:var(--text);stroke-opacity:.16;stroke-width:1;stroke-dasharray:3 6}
.cm-km{font:500 11px var(--font);fill:var(--muted)}
.cm-sweep path{fill:color-mix(in srgb,var(--accent) 22%,transparent);transform-origin:400px 320px;animation:cmsweep 9s linear infinite}
@keyframes cmsweep{to{transform:rotate(360deg)}}
.cm-p{fill:none;stroke:var(--accent);stroke-width:2;transform-origin:center;transform-box:fill-box;animation:cmp 2.8s ease-out infinite}.cm-p.p2{animation-delay:1.4s}
@keyframes cmp{from{transform:scale(1);opacity:.7}to{transform:scale(4);opacity:0}}
.cm-dot{fill:var(--card);stroke:var(--accent);stroke-width:2.5;transition:fill .25s}
.cm-halo{fill:var(--accent);opacity:0;transition:opacity .25s}
.cm-lab{font:600 13px var(--font);fill:var(--text);paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round;letter-spacing:-.01em}
.cm-hl{font-size:14px}
.cmap a:hover .cm-dot,.cmap a:focus-visible .cm-dot,.cm-node.on .cm-dot{fill:var(--accent)}
.cmap a:hover .cm-halo,.cmap a:focus-visible .cm-halo,.cm-node.on .cm-halo{opacity:.2}
.cmap a:focus-visible{outline:none}.cmap a:focus-visible .cm-halo{opacity:.35}
.cm-node{cursor:pointer}
@media(max-width:560px){.cm-lab{font-size:15px}.cm-km{display:none}}
@media(prefers-reduced-motion:reduce){.cm-sweep path,.cm-p{animation:none}.cm-p{opacity:0}}
/* U4 process */
.steps{list-style:none;margin:clamp(36px,5vw,64px) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--gap);position:relative}
.steps::before{content:"";position:absolute;left:10%;right:10%;top:22px;height:2px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 15%,transparent));transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--ease)}
.steps.in::before{transform:scaleX(1)}
.steps.rv{opacity:1;transform:none}
.step{position:relative;text-align:center;padding:0 6px}
.sn{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 18px;border-radius:50%;background:var(--card);color:var(--accent);font-weight:700;box-shadow:var(--shadow),0 0 0 2px var(--accent);position:relative;z-index:1}
.step h3{font-size:18px;letter-spacing:-.02em;margin-bottom:6px}.step p{margin:0;color:var(--muted);font-size:15px;line-height:1.45}
@media(max-width:860px){.steps{grid-template-columns:1fr;gap:28px;padding-left:12px}
 .steps::before{left:33px;right:auto;top:22px;bottom:22px;width:2px;height:auto;transform:scaleY(0);transform-origin:top}.steps.in::before{transform:scaleY(1)}
 .step{text-align:left;padding-left:64px}.sn{position:absolute;left:0;top:0;margin:0}}
@media(prefers-reduced-motion:reduce){.steps::before{transform:none;transition:none}}
/* ===================== U5 service tiles ===================== */
.bento{align-items:stretch}
.tile{display:grid;grid-template-rows:44px auto 1fr auto;row-gap:0;min-height:0;background-image:linear-gradient(180deg,color-mix(in srgb,var(--text) 3%,transparent),transparent 40%)}
.tile.wide{display:flex}
.tile .ic{margin:0 0 20px;transition:transform .5s var(--ease)}.tile:hover .ic{transform:translateY(-2px) scale(1.06)}
.tile h3{margin:0 0 8px}
.tile p{margin:0 0 18px;max-width:34ch;display:block;-webkit-line-clamp:unset;overflow:visible}
.tile .more{align-self:end;margin:0}
.tile.big{min-height:340px}.tile:not(.big){min-height:260px}
.tile.dk{background-image:linear-gradient(150deg,#2a2a30,#0e0e10 75%)}
@media(max-width:900px){.tile.big,.tile:not(.big){min-height:240px}}
/* U6 brand wall */
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);margin-top:clamp(32px,5vw,56px)}
@media(max-width:1000px){.bgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.bgrid{grid-template-columns:1fr}}
.bcat{background:var(--card);border-radius:var(--r);padding:24px;box-shadow:var(--shadow)}
.bcat h3{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 14px}
.bw{display:flex;flex-wrap:wrap;gap:8px}
.bt{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:14px;background:var(--bg2);color:var(--text);font-weight:600;font-size:16px;letter-spacing:-.02em;transition:background .25s,color .25s,transform .25s var(--ease)}
.bt:hover{background:var(--btn);color:#fff;text-decoration:none;transform:translateY(-1px)}
/* U10 reviews */
.cards3.rvw{grid-template-columns:minmax(220px,.6fr) 1.4fr;align-items:stretch}
@media(max-width:900px){.cards3.rvw{grid-template-columns:1fr}}
.ratetile{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:4px;color:var(--text)}
.ratetile:hover{text-decoration:none}
.ratetile b{font-size:clamp(56px,7vw,80px);letter-spacing:-.05em;line-height:1}
.ratetile span{font-weight:600}.ratetile small{color:var(--muted)}
.rvw blockquote p{font-size:19px;line-height:1.5;color:var(--text)}
.rvw figcaption{margin-top:14px;color:var(--muted);font-size:14px}
/* U9 comparison */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-top:clamp(28px,4vw,48px)}@media(max-width:760px){.ba{grid-template-columns:1fr}}
.ba-c{border-radius:var(--r);padding:28px;background:var(--card);box-shadow:var(--shadow)}
.ba-a{background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 12%,var(--card)),var(--card))}
.ba-t{display:inline-block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--muted)}.ba-a .ba-t{color:var(--accent)}
.ba ul{list-style:none;margin:14px 0 18px;padding:0}.ba li{padding:8px 0 8px 26px;position:relative;font-size:16px;color:var(--text)}
.ba-b li::before{content:"";position:absolute;left:2px;top:17px;width:12px;height:2px;background:var(--muted);transform:rotate(45deg)}
.ba-a li::before{content:"";position:absolute;left:3px;top:13px;width:11px;height:6px;border-left:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(-45deg)}
.ba svg{width:100%;max-width:260px;height:auto}
.ba-n rect{fill:var(--bg2);stroke:var(--line);stroke-width:1.5}.ba-n.a rect{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:var(--accent)}
.ba-x{stroke:var(--muted);stroke-width:2;stroke-dasharray:3 5;fill:none}
.ba-l{stroke:var(--accent);stroke-width:2.2;fill:none;stroke-dasharray:4 6;animation:badash 2.4s linear infinite}@keyframes badash{to{stroke-dashoffset:-20}}
@media(prefers-reduced-motion:reduce){.ba-l{animation:none}}
/* U8 sticky section nav */
.subnav{position:sticky;top:56px;z-index:90;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--line);transform:translateY(-100%);opacity:0;pointer-events:none;visibility:hidden;transition:transform .35s var(--ease),opacity .35s,visibility .35s}
.subnav.show{transform:none;opacity:1;pointer-events:auto;visibility:visible}
.subnav .wrap{display:flex;gap:4px;align-items:center;height:48px;overflow-x:auto;scrollbar-width:none}
.subnav a{flex:none;padding:6px 14px;border-radius:980px;font-size:14px;color:var(--muted);white-space:nowrap}
.subnav a:hover{color:var(--text);text-decoration:none;background:var(--bg2)}
.subnav a[aria-current=true]{color:var(--text);background:var(--bg2);font-weight:600}
.subnav .subcta{margin-left:auto;background:var(--btn);color:#fff!important}
section[id]{scroll-margin-top:112px}
@media(max-width:760px){.subnav{display:none}}
@media(prefers-reduced-motion:reduce){.subnav{transition:none}}
.subnav{height:0;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none}
.subnav::before{content:"";position:absolute;left:0;right:0;top:0;height:48px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--line)}
.subnav .wrap{position:relative;transform:translateY(-8px);transition:transform .35s var(--ease)}
.subnav.show .wrap{transform:none}
/* ===================== U7 mobile hero ===================== */
@media(max-width:600px){
 .hero{padding:44px 0 24px}
 .hero h1{font-size:clamp(34px,10.4vw,44px);letter-spacing:-.04em;max-width:13ch}
 .hero .lead{font-size:18px;margin-top:14px}
 .ctas{flex-direction:column;align-items:stretch;gap:10px;margin-top:22px;padding-inline:20px}
 .ctas .btn{justify-content:center;min-height:50px}
 .tfline{font-size:14px}
 .art-wrap{aspect-ratio:4/3;border-radius:24px;margin-top:24px}
 .stat b{font-size:34px}
 .trustband .stats,.trust .stats{gap:14px 0}
 .trustband .chips,.trust .chips{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;justify-content:flex-start;padding:0 20px 8px;margin-inline:-20px;scrollbar-width:none}
 .trustband .chips::-webkit-scrollbar,.trust .chips::-webkit-scrollbar{display:none}
 .trustband .chips .chip,.trust .chips .chip{flex:none;scroll-snap-align:start;white-space:nowrap}
 .chat-fab{display:none}
}
.menu-chat{display:none}
@media(max-width:980px){.nav.open .menu-chat{display:block}}
.trustband .stats{margin-top:0;margin-bottom:8px}
/* U11 footer */
.fcta{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center;background:var(--card);border-radius:var(--r);padding:28px 32px;box-shadow:var(--shadow);margin-bottom:48px}
.fcta b{display:block;font-size:22px;letter-spacing:-.025em;color:var(--text)}.fcta span{color:var(--muted);font-size:15px}
.fcta-b{display:flex;gap:10px;flex-wrap:wrap}
.foot .fcta a.btn{display:inline-flex;padding:13px 26px}
.foot .fcta a.btn-p{background:var(--btn);color:#fff}.foot .fcta a.btn-s{color:var(--accent);border-color:var(--accent)}.foot .fcta a.btn-s:hover{background:var(--btn);color:#fff}
.foot{padding:64px 0 120px}
.fgrid{grid-template-columns:1.4fr repeat(4,1fr)}
.foot .fh{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.foot a{padding:5px 0;transition:color .2s}
@media(max-width:860px){.fgrid{grid-template-columns:1fr 1fr}.fgrid>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.fcta{padding:22px}.fcta-b{width:100%}.fcta-b .btn{flex:1;justify-content:center}}
/* U12 micro-interactions */
.btn{transition:transform .25s var(--ease),background .25s,box-shadow .25s,color .25s}
.btn:active{transform:scale(.97)}
.btn-p:hover{box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 35%,transparent)}
.link-more::after,.more::after{display:inline-block;transition:transform .3s var(--ease)}
a:hover>.more::after,.link-more:hover::after{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){.btn{transition:none}.btn:active{transform:none}.link-more::after,.more::after{transition:none}}
/* U13 mobile call bar */
@media(max-width:767px){main{padding-bottom:84px}.cf{scroll-margin-bottom:120px}.callbar a.cb2,.callbar button.cb2{flex:none}}
.callbar button.cb3{display:flex;align-items:center;justify-content:center;padding:15px 18px;font:600 15px var(--font);color:#fff;background:transparent;border:0;border-left:1px solid rgba(255,255,255,.35);cursor:pointer}
.tile{grid-template-columns:minmax(0,1fr)}.tile.wide{grid-template-columns:none}
.tile h3,.tile p{overflow-wrap:anywhere}
.tile:not(:has(>.ic)){grid-template-rows:auto 1fr auto;min-height:0!important}.tile:not(:has(>.ic)) h3{margin-top:0}
@media(max-width:767px){.callbar a:first-child{font-size:15px;white-space:nowrap;padding:15px 10px;gap:8px}.callbar a.cb2,.callbar button.cb3{font-size:14px;padding:15px 12px;white-space:nowrap}}
@media(max-width:600px){.trustband .chips,.trust .chips{scroll-padding-inline:20px}}
.reqnote{margin:0 0 6px;font-size:13px;color:var(--muted)}.cf label span[aria-hidden]{color:#c0392b}
:root[data-theme=dark] .cf label span[aria-hidden]{color:#ff6b6b}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .cf label span[aria-hidden]{color:#ff6b6b}}
.gwrap{display:block}
.gwrap .toc{position:static}
@media(min-width:1100px){
  .gwrap{display:grid;grid-template-columns:240px minmax(0,720px);gap:56px;justify-content:center}
  .gwrap .toc{position:sticky;top:76px;align-self:start;margin:0}
  .gwrap .toc ol{font-size:15px}
}
.brand-chip{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:14px 20px;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow);margin:0 0 14px;width:168px;height:60px;box-sizing:border-box}
.brand-chip img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.brand-chip.lg{width:200px;height:72px;padding:16px 26px;margin:0 0 20px}
.card .brand-chip{align-self:flex-start}
