:root{--bg:#0a0a0c;--bg2:#101114;--card:#141519;--card2:#191a1f;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.15);--tx:#f3f0ea;--mute:#a4a5ab;--mute2:#7b7c83;
--or:#ff5b14;--or2:#ff7a2a;--am:#ffb21a;--red:#ff2a14;--ok:#3ddc84;--r:22px;--hh:78px;
--fd:'Archivo',Arial Black,system-ui,sans-serif;--fb:'Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--fm:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
--grad:linear-gradient(92deg,var(--am),var(--or) 55%,var(--red))}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + 10px)}
body{background:var(--bg);color:var(--tx);font:400 16.5px/1.62 var(--fb);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
svg{display:block}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
h1,h2,h3{font-family:var(--fd);font-style:italic;font-weight:900;font-variation-settings:'wdth' 112;line-height:1.02;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}
h2{font-size:clamp(34px,4.6vw,64px)}
.k{font:600 12.5px var(--fm);letter-spacing:.16em;text-transform:uppercase;color:var(--am);display:flex;align-items:center;gap:10px}
.k i{width:26px;height:2px;background:var(--grad);display:inline-block;box-shadow:0 0 12px rgba(255,91,20,.6)}
.lead{font-size:clamp(17px,1.35vw,19.5px);color:#d2d0cb}
p{color:#c9c7c2}
.sec{position:relative;padding:clamp(80px,10vw,150px) 0}
.hide-m{display:inline-flex;align-items:center;gap:6px}
::selection{background:var(--or);color:#fff}

/* ---------- living background ---------- */
.bgfx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(1200px 800px at 85% -10%,#1d1310 0,transparent 60%),radial-gradient(900px 700px at -10% 110%,#121620 0,transparent 60%),var(--bg)}
.bgfx .glow{position:absolute;width:70vmax;height:70vmax;left:50%;top:40%;margin:-35vmax 0 0 -35vmax;background:radial-gradient(closest-side,rgba(255,91,20,.10),transparent);animation:gl 18s ease-in-out infinite alternate;will-change:transform}
@keyframes gl{to{transform:translate3d(-14vw,10vh,0) scale(1.15)}}
.bgfx .lines{position:absolute;inset:-20% -50%;background:repeating-linear-gradient(100deg,transparent 0 140px,rgba(255,255,255,.022) 140px 141px,transparent 141px 260px,rgba(255,122,42,.035) 260px 261px);animation:ln 26s linear infinite;will-change:transform}
@keyframes ln{to{transform:translate3d(-520px,0,0)}}
.bgfx .carbon{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(45deg,rgba(255,255,255,.018) 25%,transparent 25% 75%,rgba(255,255,255,.018) 75%),linear-gradient(45deg,rgba(255,255,255,.018) 25%,transparent 25% 75%,rgba(255,255,255,.018) 75%);background-size:8px 8px;background-position:0 0,4px 4px;-webkit-mask:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);mask:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent)}
#emb{position:absolute;inset:0;width:100%;height:100%}

/* ---------- buttons, chips ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;border-radius:999px;font:700 15.5px var(--fb);letter-spacing:.01em;border:1px solid transparent;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s;white-space:nowrap;position:relative;overflow:hidden}
.btn svg{width:19px;height:19px;flex:none}
.btn.pri{background:linear-gradient(100deg,var(--or2),var(--or) 50%,#ff3d0f);color:#fff;box-shadow:0 10px 30px -8px rgba(255,91,20,.65),inset 0 1px 0 rgba(255,255,255,.25)}
.btn.pri::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s}
.btn.pri:hover::after{transform:translateX(120%)}
.btn.gh{background:rgba(255,255,255,.04);border-color:var(--line2);color:var(--tx)}
.btn.gh:hover{border-color:rgba(255,122,42,.6);background:rgba(255,91,20,.08)}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.98)}
.btn.sm{padding:10px 16px;font-size:14px}.btn.sm svg{width:16px;height:16px}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(10,10,12,.55);border:1px solid var(--line2);font:600 13px var(--fb);color:#dedbd5}
.chip svg{width:15px;height:15px;color:var(--am)}
.stars{display:inline-flex;gap:2px;color:var(--am)}.stars svg{width:16px;height:16px}.stars .off{color:#3a3b40}
:focus-visible{outline:2px solid var(--am);outline-offset:3px;border-radius:6px}

/* ---------- topbar + header ---------- */
.topbar{position:relative;z-index:30;background:#060607;border-bottom:1px solid var(--line);font:500 12.5px var(--fm);color:var(--mute)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:34px;gap:12px}
.topbar svg{width:13px;height:13px}
.topbar a:hover{color:var(--tx)}
.tb-r{display:flex;gap:20px;align-items:center}
.st{display:inline-flex;align-items:center;gap:8px}.st i{width:8px;height:8px;border-radius:50%;background:#e2452b;box-shadow:0 0 0 3px rgba(226,69,43,.18)}
.st.on i{background:var(--ok);box-shadow:0 0 0 3px rgba(61,220,132,.2);animation:pu 2s infinite}
@keyframes pu{50%{box-shadow:0 0 0 6px rgba(61,220,132,0)}}
.hdr{position:sticky;top:0;z-index:40;height:var(--hh);transition:background .35s,border-color .35s;border-bottom:1px solid transparent}
.hdr.sc{background:rgba(9,9,11,.82);border-color:var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:100%;gap:20px}
.hdr .pg{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--grad);transform-origin:0 50%;transform:scaleX(var(--pg,0));box-shadow:0 0 12px rgba(255,91,20,.7)}
.brand{display:flex;align-items:center;gap:12px}
.brand b{display:block;font:italic 900 21px/1 var(--fd);font-variation-settings:'wdth' 125;letter-spacing:.01em}
.brand b em{font-style:italic;color:var(--or)}
.brand small{display:block;font:500 11.5px var(--fm);color:var(--mute);letter-spacing:.08em;margin-top:4px;text-transform:uppercase}
.nav{display:flex;gap:4px}
.nav a{padding:9px 13px;border-radius:999px;font:600 14.5px var(--fb);color:#d8d6d0;transition:.25s}
.nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
.hcta{display:flex;align-items:center;gap:10px}
.burger{display:none;width:46px;height:46px;border-radius:14px;border:1px solid var(--line2);background:rgba(255,255,255,.04);cursor:pointer;position:relative}
.burger span,.burger span::before,.burger span::after{position:absolute;left:13px;width:20px;height:2px;background:var(--tx);border-radius:2px;transition:.3s;content:""}
.burger span{top:22px}.burger span::before{top:-7px;left:0}.burger span::after{top:7px;left:0}
.burger[aria-expanded="true"] span{background:transparent}.burger[aria-expanded="true"] span::before{transform:translateY(7px) rotate(45deg)}.burger[aria-expanded="true"] span::after{transform:translateY(-7px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:35;background:#0b0b0d;padding:calc(var(--hh) + 50px) 24px 30px;display:flex;flex-direction:column;gap:6px;opacity:0;visibility:hidden;transition:.35s}
.mnav.on{opacity:1;visibility:visible}
.mnav a:not(.btn){font:italic 900 34px/1.15 var(--fd);font-variation-settings:'wdth' 112;padding:8px 0;border-bottom:1px solid var(--line)}
.mnav .btn{margin-top:22px}

/* ---------- hero ---------- */
.hero{position:relative;height:480vh;margin-top:calc(-1 * var(--hh))}
.hero .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--bg)}
#gl{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .8s}
#gl.on{opacity:1}
.poster{position:absolute;inset:0;background:#0a0a0c center/cover no-repeat;transition:opacity .8s}
.poster.d{background-image:url(m/poster-d.webp)}.poster.m{display:none;background-image:url(m/poster-m.webp)}
#gl.on~.poster{opacity:0}
.hero .shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,10,12,.88) 0,rgba(10,10,12,.55) 30%,transparent 55%),linear-gradient(0deg,rgba(10,10,12,.8),transparent 24%),linear-gradient(180deg,rgba(10,10,12,.7),transparent 20%)}
.intro{position:absolute;left:0;right:0;top:calc(var(--hh) + 9vh);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1)}
.intro.off{opacity:0;transform:translateY(-40px);pointer-events:none}
.intro .wrap>div{max-width:600px}
.intro h1{font-size:clamp(42px,4.7vw,72px);margin:20px 0 22px;text-shadow:0 8px 40px rgba(0,0,0,.5)}
.intro h1 .ln{display:block}
.intro p{color:#d8d5cf;font-size:clamp(16.5px,1.4vw,19px);max-width:520px;margin-bottom:28px}
.splt .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .08em 0;margin:0 -.04em -.08em 0}
.splt .w>span{display:inline-block;transform:translate3d(0,105%,0) skewX(-12deg);transition:transform .9s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--d)*45ms)}
.splt.in .w>span{transform:none}
.splt em .w>span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.splt em{background:none;color:inherit}
.hint{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font:600 11.5px var(--fm);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:10px;transition:opacity .4s}
.hint i{width:24px;height:38px;border:2px solid var(--line2);border-radius:14px;position:relative}.hint i::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--or);animation:wh 1.6s infinite}
@keyframes wh{60%{transform:translateY(12px);opacity:0}}
.hint.off{opacity:0}
.beats{list-style:none;position:absolute;left:0;right:0;top:52%;pointer-events:none}
.beat{position:absolute;left:max(20px,calc((100% - 1240px)/2));top:0;width:min(470px,40vw);opacity:0;transform:translate3d(-30px,-44%,0) skewX(-4deg);filter:blur(6px);transition:opacity .45s,transform .7s cubic-bezier(.16,1,.3,1),filter .5s}
.beat.on{opacity:1;transform:translate3d(0,-50%,0);filter:none;pointer-events:auto}.beat.past{transform:translate3d(20px,-58%,0) skewX(3deg)}
.beat .card{position:relative;background:linear-gradient(160deg,rgba(24,24,28,.92),rgba(12,12,14,.9));border:1px solid var(--line2);border-radius:var(--r);padding:28px 30px;box-shadow:0 30px 70px rgba(0,0,0,.5);overflow:hidden}
.beat .card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad);box-shadow:0 0 18px rgba(255,91,20,.7)}
.beat .n{font:600 12.5px var(--fm);color:var(--am);letter-spacing:.12em;text-transform:uppercase;display:flex;gap:10px;align-items:center}
.beat .n b{font:italic 900 15px var(--fd);color:#0a0a0c;background:var(--grad);border-radius:6px;padding:2px 7px}
.beat h2{font-size:clamp(30px,3vw,44px);margin:12px 0 14px}
.beat p{color:#d0cec8;font-size:16px}
.beat .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.beat .tags span{font:600 12px var(--fm);letter-spacing:.06em;padding:6px 11px;border-radius:8px;background:rgba(255,91,20,.1);border:1px solid rgba(255,122,42,.3);color:#ffcfb0}
.beat .ctas{margin-top:20px}
.dash{position:absolute;right:max(20px,calc((100% - 1240px)/2));bottom:30px;display:flex;align-items:stretch;gap:0;border-radius:18px;background:rgba(12,12,14,.84);border:1px solid var(--line2);opacity:0;transform:translateY(14px);transition:.5s;font-family:var(--fm);overflow:hidden}
.dash.on{opacity:1;transform:none}
.dash>div{padding:12px 18px;display:flex;flex-direction:column;justify-content:center}
.dash>div+div{border-left:1px solid var(--line)}
.dash b{font:700 26px/1 var(--fm);font-variant-numeric:tabular-nums;color:var(--tx)}
.dash span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:6px}
.dash .rpm b{color:var(--am);min-width:4ch;text-shadow:0 0 14px rgba(255,178,26,.45)}
.dash .rpm.red b{color:var(--red);text-shadow:0 0 14px rgba(255,42,20,.6)}
.dash .gear b{font:italic 900 30px/1 var(--fd);color:var(--or)}
.dash .rd{min-width:190px}.dash .rd span{order:-1;margin:0 0 6px}
.dash .rd b{font-size:19px}
.dash .rd i{display:block;height:4px;border-radius:3px;background:rgba(255,255,255,.1);margin-top:8px;overflow:hidden}
.dash .rd u{display:block;height:100%;width:0;background:var(--grad);transition:width .2s}
.steps{position:absolute;left:max(20px,calc((100% - 1240px)/2));bottom:36px;display:flex;gap:6px;align-items:center;opacity:0;transition:.4s}
.steps.on{opacity:1}
.steps b{width:34px;height:4px;border-radius:3px;background:var(--line2);transition:.4s;transform:skewX(-20deg)}.steps b.on{background:var(--grad);box-shadow:0 0 10px rgba(255,91,20,.6)}
.steps em{font:600 12px var(--fm);color:var(--mute);font-style:normal;margin-left:10px;letter-spacing:.1em}

/* ---------- marquee ---------- */
.mq{position:relative;overflow:hidden;border-block:1px solid var(--line);background:linear-gradient(90deg,#120d0a,#0d0d10 50%,#120d0a);padding:20px 0;transform:skewY(-1.2deg);margin:-10px 0}
.mq .tr{display:flex;gap:0;width:max-content;animation:mq 34s linear infinite;will-change:transform}
.mq span{font:italic 900 clamp(24px,3vw,40px)/1 var(--fd);font-variation-settings:'wdth' 125;text-transform:uppercase;padding:0 26px;color:transparent;-webkit-text-stroke:1.2px rgba(243,240,234,.45);display:flex;align-items:center;gap:52px}
.mq span:nth-child(3n+1){color:var(--tx);-webkit-text-stroke:0}
.mq span::after{content:"";width:22px;height:8px;background:var(--grad);transform:skewX(-30deg);margin-left:26px}
@keyframes mq{to{transform:translate3d(-50%,0,0)}}

/* ---------- road: a lane line drawn down the page, with a little car riding it ---------- */
.road{position:absolute;left:max(8px,calc((100% - 1240px)/2 - 46px));width:6px;top:0;height:0;z-index:2;pointer-events:none}
.road::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(255,255,255,.08) 0 26px,transparent 26px 46px);border-radius:3px}
.road i{position:absolute;left:0;top:0;width:100%;height:100%;background:repeating-linear-gradient(180deg,var(--am) 0 26px,transparent 26px 46px);-webkit-mask:linear-gradient(#000,#000) top/100% var(--rp,0%) no-repeat;mask:linear-gradient(#000,#000) top/100% var(--rp,0%) no-repeat;filter:drop-shadow(0 0 6px rgba(255,140,40,.7))}
.road b{position:absolute;left:50%;top:0;width:22px;height:38px;margin:-19px 0 0 -11px;border-radius:9px 9px 7px 7px;background:linear-gradient(180deg,#22252c,#0c0d10);border:1px solid rgba(255,255,255,.25);box-shadow:0 -14px 22px -4px rgba(255,236,190,.45),0 10px 18px rgba(0,0,0,.6);transform:translate3d(0,var(--ry,0),0)}
.road b::before{content:"";position:absolute;left:3px;right:3px;top:7px;height:9px;border-radius:3px;background:rgba(160,190,230,.35)}
.road b::after{content:"";position:absolute;left:2px;right:2px;bottom:3px;height:3px;border-radius:2px;background:linear-gradient(90deg,#ff2a14 30%,transparent 30% 70%,#ff2a14 70%);box-shadow:0 0 8px #ff2a14}

/* ---------- about ---------- */
.ab{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.abt h2{margin:16px 0 22px}
.abt p{margin-top:16px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:34px}
.sx{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 14px 14px;position:relative;overflow:hidden}
.sx::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1) .2s}
.sx.in::after{transform:none}
.sx span:not(.dg):not(.sp):not(.rl){display:block;font-size:12.5px;color:var(--mute);margin-top:6px;line-height:1.35}
.odo{display:flex;font:700 clamp(26px,2.6vw,36px)/1 var(--fm);color:var(--tx);height:1.25em;overflow:hidden}
.odo .dg{display:block;height:1.25em;overflow:hidden;width:.62em}
.odo .rl{display:flex;flex-direction:column;transition:transform 1.6s cubic-bezier(.2,.85,.25,1);transform:translateY(0)}
.odo .rl i{font-style:normal;height:1.25em;line-height:1.25em;display:block;text-align:center}
.odo .sp{display:block;line-height:1.25em}
.abp{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line2);box-shadow:0 40px 80px -20px rgba(0,0,0,.7);transform:perspective(1200px) rotateY(-8deg) translateY(40px);opacity:0;transition:transform 1.2s cubic-bezier(.16,1,.3,1),opacity .8s}
.abp.in{transform:perspective(1200px) rotateY(-2deg);opacity:1}
.abp img{width:100%;aspect-ratio:10/7;object-fit:cover;filter:saturate(.9) contrast(1.05)}
.abp::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,10,12,.85)),linear-gradient(90deg,rgba(255,91,20,.12),transparent 40%);pointer-events:none}
.abp figcaption{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;font-size:14px;color:#e6e3dd}
.rec{display:flex;align-items:center;gap:8px;font:600 11.5px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--am);margin-bottom:4px}
.rec i{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red);animation:pu2 1.4s infinite}
@keyframes pu2{50%{opacity:.25}}

/* ---------- section heads ---------- */
.shd{max-width:780px;margin-bottom:clamp(40px,5vw,64px)}
.shd h2{margin:16px 0 18px}

/* ---------- services: garage doors roll up ---------- */
.svs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,30px)}
.sv{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,transform .4s}
.sv:hover{border-color:rgba(255,122,42,.45);transform:translateY(-4px)}
.sv:nth-child(even){margin-top:70px}
.sv .sh{position:relative;aspect-ratio:4/3;overflow:hidden;background:#0c0c0e}
.sv .sh img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);transition:transform 1.8s cubic-bezier(.16,1,.3,1)}
.sv .door{position:absolute;inset:0;background:repeating-linear-gradient(180deg,#2a2c31 0 22px,#1b1c20 22px 24px,#33363c 24px 25px,#2a2c31 25px 46px);box-shadow:inset 0 -10px 0 #111,inset 0 -14px 0 rgba(255,178,26,.6);transition:transform 1.25s cubic-bezier(.7,0,.2,1) .15s}
.sv .door::after{content:"";position:absolute;left:50%;bottom:20px;width:70px;height:10px;margin-left:-35px;border-radius:5px;background:#121316;border:1px solid rgba(255,255,255,.12)}
.sv .lamp{position:absolute;right:16px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 12px var(--red);z-index:2;transition:background .3s .9s,box-shadow .3s .9s}
.sv .no{position:absolute;left:16px;top:12px;z-index:2;font:italic 900 20px var(--fd);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.sv.in .door{transform:translateY(-101%)}
.sv.in .sh img{transform:scale(1)}
.sv.in .lamp{background:var(--ok);box-shadow:0 0 12px var(--ok)}
.sv .sb{padding:26px 28px 28px;position:relative;flex:1;display:flex;flex-direction:column}
.sv .ic{position:absolute;right:24px;top:-30px;width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(140deg,var(--or2),#d93a0b);color:#fff;box-shadow:0 14px 30px -8px rgba(255,91,20,.7);transform:rotate(-8deg) scale(.6);opacity:0;transition:transform .6s cubic-bezier(.3,1.6,.5,1) .9s,opacity .3s .9s}
.sv.in .ic{transform:rotate(-8deg);opacity:1}
.sv .ic svg{width:30px;height:30px}
.sv h3{font-size:clamp(25px,2.2vw,31px);margin-bottom:10px;padding-right:70px}
.sv ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;margin:16px 0 20px}
.sv li{display:flex;align-items:center;gap:7px;font:600 14px var(--fb);color:#e2dfd9}
.sv li svg{width:15px;height:15px;color:var(--or)}
.lnk{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font:700 15px var(--fb);color:var(--am)}
.lnk svg{width:17px;height:17px;transition:transform .3s}.lnk:hover svg{transform:translateX(5px)}

/* ---------- how: H-pattern shifter ---------- */
.how{display:grid;grid-template-columns:330px 1fr;gap:clamp(30px,6vw,90px);align-items:start}
.shift{position:sticky;top:calc(var(--hh) + 40px);background:radial-gradient(circle at 50% 30%,#1d1e23,#0f1013);border:1px solid var(--line2);border-radius:28px;padding:30px 28px 22px;box-shadow:inset 0 2px 0 rgba(255,255,255,.05),0 30px 60px -20px rgba(0,0,0,.7)}
.gate{position:relative;aspect-ratio:200/180}
.gate svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.gate .slot{fill:none;stroke:#050506;stroke-width:16;stroke-linecap:round}
.gate .nums text{font:700 15px var(--fm);fill:var(--mute);text-anchor:middle}
.knob{position:absolute;left:0;top:0;width:20%;aspect-ratio:1;margin:-10% 0 0 -10%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4a4d55,#16171b 70%);border:1px solid rgba(255,255,255,.18);box-shadow:0 14px 26px rgba(0,0,0,.7),0 0 0 4px rgba(255,91,20,.0);display:grid;place-items:center;transition:left .28s cubic-bezier(.5,0,.3,1),top .28s cubic-bezier(.5,0,.3,1),box-shadow .4s;left:50%;top:50%}
.knob b{font:italic 900 22px var(--fd);color:var(--or)}
.knob.on{box-shadow:0 14px 26px rgba(0,0,0,.7),0 0 0 4px rgba(255,91,20,.25),0 0 30px rgba(255,91,20,.35)}
.shift .cap{margin-top:16px;text-align:center;font:600 12px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.shift .cap b{color:var(--or);font-size:14px}
.stepsl{list-style:none;display:flex;flex-direction:column;gap:clamp(70px,14vh,150px);padding:4vh 0 12vh}
.step{display:flex;gap:26px;align-items:flex-start;opacity:.25;transform:translateX(30px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1)}
.step.in{opacity:1;transform:none}
.step .gn{flex:none;width:74px;height:74px;border-radius:20px;display:grid;place-items:center;font:italic 900 40px var(--fd);color:var(--tx);background:var(--card2);border:1px solid var(--line2);transition:.5s}
.step.in .gn{background:linear-gradient(140deg,var(--or2),#d93a0b);border-color:transparent;box-shadow:0 14px 34px -8px rgba(255,91,20,.7)}
.step h3{font-size:clamp(28px,2.6vw,40px);margin:6px 0 10px}
.step p{max-width:520px;font-size:17px}

/* ---------- reviews ---------- */
.rvh{display:grid;grid-template-columns:auto 1fr;gap:clamp(30px,5vw,70px);align-items:center;margin-bottom:clamp(40px,5vw,60px)}
.rvh h2{margin:16px 0 16px}
.dial{position:relative;width:clamp(220px,22vw,290px);aspect-ratio:1}
.dial>svg{width:100%;height:100%}
.dial .tr0{fill:none;stroke:rgba(255,255,255,.08);stroke-width:12;stroke-linecap:round}
.dial .tr1{fill:none;stroke:url(#none);stroke:var(--or);stroke-width:12;stroke-linecap:round;stroke-dasharray:440;stroke-dashoffset:440;filter:drop-shadow(0 0 8px rgba(255,91,20,.7))}
.dial #dialN{stroke:var(--tx);transform-origin:100px 100px;transform:rotate(-135deg)}
.dial circle{fill:var(--or)}
.dial .dv{position:absolute;left:0;right:0;bottom:6%;text-align:center}
.dial .dv b{display:block;font:italic 900 clamp(46px,4.4vw,60px)/1 var(--fd);font-variation-settings:'wdth' 112}
.dial .dv>span:not(.stars){display:block;font:600 11px var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:6px}
.dial .stars{display:flex;justify-content:center;margin-top:6px}
.rvs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rv{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px;opacity:0;transform:translate3d(60px,0,0) skewX(-8deg);filter:blur(4px);transition:opacity .6s,transform .9s cubic-bezier(.16,1,.3,1),filter .6s;transition-delay:calc(var(--i)*90ms)}
.rv.in{opacity:1;transform:none;filter:none}
.rv.big{grid-column:span 2;grid-row:span 2;background:linear-gradient(160deg,#1c1612,var(--card) 60%);border-color:rgba(255,122,42,.25)}
.rv.big q{font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:#ece9e3}
.rv q{font-size:16px;color:#dedbd5;quotes:"„" "”"}
.rv q::before{content:open-quote;color:var(--or);font:italic 900 1.4em/0 var(--fd)}
.rv q::after{content:close-quote;color:var(--or)}
.who{display:flex;align-items:center;gap:12px;margin-top:auto}
.av{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font:italic 900 18px var(--fd);background:var(--card2);border:1px solid var(--line2);color:var(--am)}
.who b{display:block;font:700 15px var(--fb)}
.who span span,.who>span:last-child{font-size:12.5px;color:var(--mute)}

/* ---------- location ---------- */
.loc{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:stretch}
.lc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:clamp(26px,3vw,40px)}
.lc h2{font-size:clamp(32px,3.4vw,50px);margin:14px 0 22px}
.ad{display:flex;gap:12px;align-items:flex-start;font:600 17px var(--fb);color:var(--tx);margin-bottom:22px}
.ad svg{width:22px;height:22px;color:var(--or);flex:none;margin-top:2px}
.ad small{display:block;font:500 13px var(--fm);color:var(--mute);margin-top:4px}
.hrs{display:grid;grid-template-columns:1fr auto;gap:0;border-top:1px solid var(--line)}
.hrs span{padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px;color:#d5d2cc}
.hrs span:nth-child(even){font:600 15px var(--fm);text-align:right}
.hrs .td{color:var(--am);font-weight:700}
.now{margin:16px 0 22px;font:600 14px var(--fm);color:var(--mute);min-height:1.4em}
.now.on{color:var(--ok)}
.map{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line2);min-height:380px;background:#0e0f12}
.mapart{position:absolute;inset:0}
.mapart svg{width:100%;height:100%}
.mapart .rv0{fill:none;stroke:#1a3550;stroke-width:26;stroke-linecap:round;opacity:.9}
.mapart .rd0{fill:none;stroke:#2a2b30;stroke-width:9;stroke-linecap:round}
.mapart .pulse{fill:rgba(255,91,20,.18);stroke:rgba(255,91,20,.6);stroke-width:1.5;transform-origin:center;animation:mp 2.4s ease-out infinite}
@keyframes mp{from{transform:scale(.3);opacity:1}to{transform:scale(1.4);opacity:0}}
.mapart .lbl{position:absolute;left:50%;top:50%;transform:translate(-50%,24px);background:rgba(10,10,12,.88);border:1px solid var(--line2);padding:10px 14px;border-radius:12px;font:italic 900 17px var(--fd);text-align:center;white-space:nowrap}
.mapart .lbl small{display:block;font:500 12px var(--fm);font-style:normal;color:var(--mute);margin-top:3px}
.map .ld{position:absolute;right:16px;bottom:16px;z-index:3}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.92) hue-rotate(180deg) saturate(.7) contrast(.9)}

/* ---------- booking form ---------- */
.bk{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,70px);align-items:start}
.bkh{position:sticky;top:calc(var(--hh) + 40px)}
.bkh h2{margin:16px 0 18px;font-size:clamp(34px,3.6vw,54px)}
.callc{margin-top:28px;display:flex;flex-direction:column;gap:6px;padding:20px 22px;border-radius:18px;background:var(--card);border:1px solid var(--line)}
.callc span{font-size:14px;color:var(--mute)}
.callc a{display:flex;align-items:center;gap:10px;font:italic 900 30px var(--fd);color:var(--tx)}
.callc a svg{width:24px;height:24px;color:var(--or)}
.form{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:18px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7)}
.brs{border:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.brs legend{font:600 12px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--am);margin-bottom:12px}
.br input{position:absolute;opacity:0;pointer-events:none}
.br span{display:flex;align-items:center;gap:10px;padding:14px 14px;border-radius:14px;border:1px solid var(--line2);background:var(--bg2);font:600 14.5px/1.25 var(--fb);cursor:pointer;transition:.25s;min-height:58px}
.br span svg{width:22px;height:22px;flex:none;color:var(--mute);transition:.25s}
.br input:checked+span{border-color:var(--or);background:rgba(255,91,20,.1);box-shadow:inset 0 0 0 1px var(--or)}
.br input:checked+span svg{color:var(--or)}
.br input:focus-visible+span{outline:2px solid var(--am);outline-offset:2px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f{display:flex;flex-direction:column;gap:7px}
.f>span{font:600 13.5px var(--fb);color:#d8d5cf}
.f input,.f select,.f textarea{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;padding:13px 14px;font-size:16px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff7a2a' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}
.f input::placeholder,.f textarea::placeholder{color:#6d6e74}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 3px rgba(255,91,20,.18)}
.f .bad{border-color:var(--red)!important}
.hint2{font-size:12.5px;color:var(--mute2)}
.brp{display:flex;flex-direction:column;gap:16px;animation:bp .45s cubic-bezier(.16,1,.3,1)}
.brp[hidden]{display:none}
@keyframes bp{from{opacity:0;transform:translateY(10px)}}
.cks{display:flex;flex-wrap:wrap;gap:8px}
.cks .cl{width:100%;font:600 13.5px var(--fb);color:#d8d5cf;margin-bottom:2px}
.ck input{position:absolute;opacity:0;pointer-events:none}
.ck span{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid var(--line2);background:var(--bg2);font:600 14px var(--fb);cursor:pointer;transition:.2s}
.ck span::before{content:"";width:14px;height:14px;border-radius:4px;border:1.5px solid var(--mute2);transition:.2s}
.ck input:checked+span{border-color:var(--or);background:rgba(255,91,20,.1)}
.ck input:checked+span::before{background:var(--or) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/10px no-repeat;border-color:var(--or)}
.ck input:focus-visible+span{outline:2px solid var(--am);outline-offset:2px}
.err{color:#ff8a6a;font:600 14px var(--fb);min-height:0}
.err:empty{display:none}
.fbtn{display:flex;flex-wrap:wrap;gap:12px}
.fnote{font-size:13px;color:var(--mute2)}

/* ---------- final ---------- */
.fin{padding:clamp(60px,9vw,130px) 0 clamp(80px,10vw,140px);position:relative;overflow:hidden}
.fin::before{content:"";position:absolute;left:50%;top:50%;width:900px;height:900px;margin:-450px 0 0 -450px;border-radius:50%;background:repeating-conic-gradient(from 225deg,rgba(255,122,42,.16) 0 .6deg,transparent .6deg 6.75deg);-webkit-mask:radial-gradient(closest-side,transparent 78%,#000 79%,#000 88%,transparent 89%);mask:radial-gradient(closest-side,transparent 78%,#000 79%,#000 88%,transparent 89%);animation:spin 60s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.finc{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px;position:relative}
.finc .fl{width:110px;height:110px;filter:drop-shadow(0 20px 40px rgba(255,91,20,.35))}
.finc h2{font-size:clamp(38px,5.6vw,80px)}
.bigtel{display:inline-flex;align-items:center;gap:16px;font:italic 900 clamp(38px,6.4vw,96px)/1 var(--fd);font-variation-settings:'wdth' 118;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .3s}
.bigtel svg{width:.62em;height:.62em;color:var(--or);flex:none}
.bigtel:hover{transform:scale(1.03)}
.finc p{font:500 14px var(--fm);color:var(--mute)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);background:#070708;padding:60px 0 28px;position:relative}
.ft{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:30px}
.fdesc{margin-top:16px;max-width:330px;font-size:14.5px}
footer h4{font:600 12px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--am);margin-bottom:14px}
footer ul{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:14.5px;color:#c4c2bd}
footer ul a:hover{color:var(--or)}
footer .mt{margin-top:8px}
.legal{margin-top:46px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 26px;justify-content:space-between;font-size:13px;color:var(--mute)}
.legal a:hover{color:var(--tx)}
.anpc{display:flex;gap:16px}
.made a{color:var(--or);font-weight:700}

/* ---------- fab ---------- */
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:30;display:none;align-items:center;gap:8px;padding:14px 18px;border-radius:999px;background:linear-gradient(100deg,var(--or2),var(--or));color:#fff;font:700 15px var(--fb);box-shadow:0 14px 30px -6px rgba(255,91,20,.7);transform:translateY(120px);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.fab svg{width:19px;height:19px}
.fab.on{transform:none}
.fab.on.hid{transform:translateY(120px)}

/* ---------- reveal ---------- */
[data-rv]:not(.abp):not(.rv):not(.sx){opacity:0;transform:translate3d(0,30px,0);transition:opacity .8s,transform 1s cubic-bezier(.16,1,.3,1)}
[data-rv].in:not(.abp):not(.rv):not(.sx){opacity:1;transform:none}
.sx[data-rv]{opacity:0;transform:translateY(20px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1)}
.sx[data-rv].in{opacity:1;transform:none}
.stats .sx:nth-child(2){transition-delay:.08s}.stats .sx:nth-child(3){transition-delay:.16s}.stats .sx:nth-child(4){transition-delay:.24s}

/* terms page */
.sub .sec.terms{padding-top:clamp(60px,8vw,110px)}
.terms .wrap{max-width:820px}
.terms h2{margin:14px 0 10px}
.terms .th{margin:30px 0 8px;font-size:24px}
.terms .lead a{color:var(--am);text-decoration:underline}
.terms .back{margin-top:36px}

/* ---------- responsive ---------- */
@media (max-width:1100px){
 .nav{display:none}.burger{display:block}
 .rvs{grid-template-columns:1fr 1fr}.rv.big{grid-column:span 2;grid-row:auto}
 .ft{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
 :root{--hh:66px;--r:18px}
 body{font-size:16px}
 .wrap{width:calc(100% - 32px)}
 .hide-m{display:none}
 .topbar .tb-r{display:none}
 .topbar .wrap{height:32px}
 .brand img{width:40px;height:40px}.brand b{font-size:18px}.brand small{font-size:10px}
 .hcta .btn span{display:none}.hcta .btn.sm{padding:0;width:46px;height:46px}
 .hdr.sc{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(9,9,11,.97)}
 .hero{height:430vh}
 .poster.d{display:none}.poster.m{display:block}
 .hero .shade{background:linear-gradient(180deg,rgba(10,10,12,.94) 0,rgba(10,10,12,.82) 26%,rgba(10,10,12,.3) 42%,transparent 50%,rgba(10,10,12,.5) 68%,rgba(10,10,12,.92) 86%)}
 .intro{top:calc(var(--hh) + 14px);bottom:0}.intro h1{font-size:clamp(31px,9.2vw,44px);margin:10px 0 12px;font-variation-settings:'wdth' 100}
 .intro .k{font-size:11px;letter-spacing:.12em}
 .intro p{font-size:14.5px;line-height:1.5;margin-bottom:0;max-width:none;color:#cfccc6}
 .intro .ctas{position:absolute;left:16px;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr;gap:10px}
 .intro .chips{position:absolute;left:16px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));margin:0;flex-wrap:nowrap;overflow:hidden}
 .intro .chips .chip{font-size:12px;padding:7px 11px;white-space:nowrap}
 .intro .chips .chip:nth-child(2){display:none}
 .intro.off .ctas,.intro.off .chips{opacity:0;pointer-events:none}
 .intro .ctas,.intro .chips{transition:opacity .4s}
 .intro .btn{padding:14px 18px;font-size:15px}
 .beats{top:auto;bottom:0;height:0}
 .beat{left:12px;right:12px;width:auto;top:auto;bottom:calc(74px + env(safe-area-inset-bottom));transform:translate3d(0,24px,0);filter:none}
 .beat.on{transform:none}.beat.past{transform:translate3d(0,-14px,0)}
 .beat .card{padding:18px 18px 18px 20px;border-radius:18px;background:rgba(14,14,16,.97)}
 .beat h2{font-size:26px;margin:8px 0 8px}.beat p{font-size:14.5px;line-height:1.5}.beat .tags{margin-top:12px}.beat .tags span{font-size:11px;padding:5px 9px}
 .beat .ctas{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}.beat .ctas .btn{padding:12px 10px;font-size:14px}
 .beat .ctas .btn span{white-space:nowrap}
 .dash{right:auto;left:12px;bottom:auto;top:calc(var(--hh) + 10px);border-radius:14px}
 .dash>div{padding:8px 11px}.dash b{font-size:18px}.dash .gear b{font-size:20px}.dash span{font-size:9px;margin-top:4px}
 .dash .rd{min-width:128px}.dash .rd b{font-size:14px}
 .steps{left:auto;right:12px;bottom:auto;top:calc(var(--hh) + 26px)}.steps b{width:18px}.steps em{display:none}
 .hint{display:none}
 .sec{padding:84px 0}
 .mq{padding:14px 0}
 .road{display:none}
 .ab{grid-template-columns:1fr}
 .abp{transform:translateY(30px);order:-1}.abp.in{transform:none}
 .stats{grid-template-columns:1fr 1fr}
 .svs{grid-template-columns:1fr}.sv:nth-child(even){margin-top:0}
 .sv .sb{padding:22px 20px 22px}.sv .ic{width:52px;height:52px;top:-26px;right:18px}.sv .ic svg{width:26px;height:26px}
 .how{grid-template-columns:1fr;gap:10px}
 .shift{top:calc(var(--hh) + 10px);z-index:5;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:18px;width:100%;background:#131418}
 .gate{width:92px;flex:none}.knob b{font-size:13px}
 .shift .cap{margin:0;text-align:left}
 .stepsl{gap:70px;padding:40px 0 30px}
 .step{gap:16px;transform:translateY(24px)}.step .gn{width:56px;height:56px;font-size:30px;border-radius:16px}
 .step p{font-size:15.5px}
 .rvh{grid-template-columns:1fr;justify-items:start}
 .dial{width:220px;margin:0 auto}
 .rvs{grid-template-columns:1fr}.rv.big{grid-column:auto}
 .rv{transform:translate3d(0,30px,0);filter:none}
 .loc{grid-template-columns:1fr}.map{min-height:300px}
 .bk{grid-template-columns:1fr}.bkh{position:static}
 .brs{grid-template-columns:1fr 1fr}.br span{font-size:13.5px;padding:12px;min-height:64px}
 .row2{grid-template-columns:1fr}
 .fbtn{display:grid;grid-template-columns:1fr}
 .fin::before{width:600px;height:600px;margin:-300px 0 0 -300px}
 .bigtel{gap:10px}
 .ft{grid-template-columns:1fr;gap:26px}
 .legal{flex-direction:column}
 .fab{display:inline-flex}
}
@media (max-width:380px){.brs{grid-template-columns:1fr}.dash .rd{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.splt .w>span{transform:none}[data-rv],.rv,.abp,.step,.sx{opacity:1!important;transform:none!important;filter:none!important}.sv .door{transform:translateY(-101%)}}

main{overflow-x:clip}
