/* self-hosted fonts (greek + latin subsets) */
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/commissioner-normal-400-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/commissioner-normal-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/commissioner-normal-400-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/commissioner-normal-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/commissioner-normal-400-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/commissioner-normal-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/commissioner-normal-400-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Commissioner'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/commissioner-normal-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: italic; font-weight: 800; font-display: swap; src: url(fonts/fira-sans-extra-condensed-italic-800-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: italic; font-weight: 800; font-display: swap; src: url(fonts/fira-sans-extra-condensed-italic-800-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: italic; font-weight: 900; font-display: swap; src: url(fonts/fira-sans-extra-condensed-italic-900-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: italic; font-weight: 900; font-display: swap; src: url(fonts/fira-sans-extra-condensed-italic-900-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: normal; font-weight: 800; font-display: swap; src: url(fonts/fira-sans-extra-condensed-normal-800-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: normal; font-weight: 800; font-display: swap; src: url(fonts/fira-sans-extra-condensed-normal-800-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: normal; font-weight: 900; font-display: swap; src: url(fonts/fira-sans-extra-condensed-normal-900-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Fira Sans Extra Condensed'; font-style: normal; font-weight: 900; font-display: swap; src: url(fonts/fira-sans-extra-condensed-normal-900-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/jetbrains-mono-normal-400-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/jetbrains-mono-normal-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/jetbrains-mono-normal-400-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/jetbrains-mono-normal-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root{
  --bg:#0a0c0d; --bg-2:#111415; --bg-3:#181c1d; --line:#252a2c;
  --ink:#f1f3f2; --ink-2:#b3bbba; --ink-3:#858e8d;
  --accent:#1fd8cb; --accent-2:#7cf6ec; --accent-ink:#03201e; --gold:#d8b26a;
  --glow:rgba(31,216,203,.22);
  --display:"Fira Sans Extra Condensed", "Arial Narrow", sans-serif;
  --body:"Commissioner", system-ui, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, monospace;
  --radius:18px; --gutter:clamp(16px,4vw,56px); --max:1320px;
  /* theme-dependent */
  --accent-fg:var(--accent); --ic-bg0:#0d1011; --nav-bg:rgba(10,12,13,.72); --glass:rgba(10,12,13,.88);
  --logo-filter:brightness(0) invert(1); --site-logo-filter:none; --map-filter:grayscale(1) invert(.92) contrast(.9) hue-rotate(180deg);
  --stars-empty:#2f3638; --btn-hover-fg:var(--accent-ink); --grain:.06;
}
[data-theme="light"]{
  --bg:#f5f6f4; --bg-2:#ebeeec; --bg-3:#e1e5e3; --line:#d3d9d7;
  --ink:#0b1112; --ink-2:#3b4645; --ink-3:#5b6665;
  --accent-fg:#067a72; --glow:rgba(31,216,203,.35);
  --ic-bg0:#ffffff; --nav-bg:rgba(245,246,244,.82); --glass:rgba(255,255,255,.92);
  --logo-filter:brightness(0); --site-logo-filter:invert(1); --map-filter:grayscale(.35) contrast(.95);
  --stars-empty:#cdd4d2; --btn-hover-fg:#fff; --grain:.035;
}
/* hardware & dark cards stay dark in both themes */
.tower,.remote,.auth-card{--bg:#0a0c0d;--bg-2:#111415;--line:#252a2c;--ink:#f1f3f2;--ink-2:#b3bbba;--ink-3:#858e8d;--accent-fg:#1fd8cb;color:var(--ink)}
*{box-sizing:border-box;margin:0;padding:0}
svg.i{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.skip{position:fixed;left:16px;top:-60px;z-index:200;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:10px;font-weight:600;transition:top .2s}
.skip:focus{top:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html{background:var(--bg);color-scheme:dark}
[data-theme="light"]{color-scheme:light}
html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:var(--accent-ink)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--accent-fg);font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
h1,h2,h3{font-family:var(--display);font-weight:900;line-height:.9;letter-spacing:-.01em;text-transform:uppercase}
h2{font-size:clamp(46px,7vw,104px)}
h2 em,h1 em{font-style:italic;color:var(--accent-fg)}
.lead{color:var(--ink-2);font-size:clamp(17px,1.4vw,20px);max-width:56ch}
.lead strong{color:var(--ink);font-weight:600}
.lead a,.step p a,.checks small a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1.5px;transition:color .2s}
.lead a:hover,.step p a:hover,.checks small a:hover{color:var(--accent-fg)}

/* grain */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:var(--grain);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* buttons */
.btn{--h:54px;position:relative;display:inline-flex;align-items:center;gap:12px;height:var(--h);padding:0 26px;border-radius:999px;font-weight:600;font-size:15px;letter-spacing:.02em;overflow:hidden;isolation:isolate;transition:transform .3s cubic-bezier(.2,.8,.2,1),color .3s,box-shadow .3s;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 0 var(--glow)}
.btn-primary::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .45s cubic-bezier(.7,0,.2,1);z-index:-1;border-radius:inherit}
.btn-primary:hover{box-shadow:0 10px 40px var(--glow);color:var(--btn-hover-fg)}
.btn-primary:hover::before{transform:translateY(0)}
.btn-ghost{border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent-fg)}
.btn:active{transform:scale(.97)}

/* NAV */
.nav{position:fixed;inset:0 0 auto;z-index:50;transition:background .4s,backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.scrolled{background:var(--nav-bg);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-color:var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.nav-logo img{height:52px;width:auto;filter:var(--site-logo-filter)}
.nav-links{display:flex;gap:34px;font-size:15px;color:var(--ink-2)}
.nav-links a{position:relative;padding:6px 0;transition:color .25s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .35s}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{display:flex;align-items:center;gap:12px}
.nav-cta .btn{--h:46px;padding:0 20px}
.icon-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font:600 13px/1 var(--body);letter-spacing:.04em;transition:border-color .25s,color .25s}
.icon-btn:hover{border-color:var(--accent);color:var(--accent-fg)}
.icon-btn svg{width:19px;height:19px}
.theme-btn .ico-moon{display:none}
[data-theme="light"] .theme-btn .ico-sun{display:none}
[data-theme="light"] .theme-btn .ico-moon{display:block}
svg.i.fill{fill:currentColor;stroke:none}
.btn-viber svg{width:20px;height:20px}
.form-status{grid-column:1/-1;display:none;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:14px;border:1px solid rgba(31,216,203,.45);background:rgba(31,216,203,.08);font-size:14.5px;color:var(--ink-2)}
.form-status.show{display:flex}
.form-status svg{width:20px;height:20px;color:var(--accent-fg);flex:none;margin-top:2px}
.form-status b{color:var(--ink)}
.form-status a{color:var(--accent-fg);text-decoration:underline;text-underline-offset:3px}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.mobile-menu{position:fixed;inset:0;z-index:49;background:var(--bg);display:flex;flex-direction:column;justify-content:center;padding:0 var(--gutter);clip-path:circle(0% at calc(100% - 40px) 42px);transition:clip-path .7s cubic-bezier(.7,0,.2,1)}
.mobile-menu.open{clip-path:circle(150% at calc(100% - 40px) 42px)}
.mobile-menu a{font-family:var(--display);font-weight:900;font-size:clamp(44px,12vw,72px);text-transform:uppercase;line-height:1.05;border-bottom:1px solid var(--line);padding:8px 0}
.mobile-menu a:hover{color:var(--accent-fg)}
.mobile-menu .mm-foot{margin-top:40px;color:var(--ink-2)}
.mobile-menu .mm-foot a{font-family:var(--body);font-size:15px;border:0;padding:0 26px}

/* HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:112px 0 64px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(55% 60% at 78% 45%, rgba(31,216,203,.20), transparent 62%),
    radial-gradient(40% 40% at 8% 95%, rgba(31,216,203,.07), transparent 70%),
    var(--bg)}
.hero-bg::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:72px 72px;opacity:.4;
  mask-image:radial-gradient(70% 70% at 60% 50%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(70% 70% at 60% 50%,#000 20%,transparent 75%)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;width:100%}
.hero h1{font-size:clamp(60px,9vw,150px);line-height:.84}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.04em}
.hero h1 .line > span{display:inline-block}
.hero h1 .outline{-webkit-text-stroke:2px var(--ink);color:transparent}
.hero .lead{margin:26px 0 40px}
.slogan{position:relative;display:inline-flex;align-items:center;gap:clamp(10px,1.4vw,20px);margin-top:30px;padding:14px clamp(22px,2.4vw,34px) 12px;color:var(--accent-ink);font-family:var(--display);font-style:italic;font-weight:900;font-size:clamp(20px,2.3vw,34px);letter-spacing:.14em;line-height:1;text-transform:uppercase;white-space:nowrap;isolation:isolate;transform:rotate(-1.2deg)}
.slogan::before{content:"";position:absolute;inset:-6px -14px;z-index:-1;background:var(--accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 80' preserveAspectRatio='none'%3E%3Cfilter id='b' x='-5%25' y='-20%25' width='110%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .35' numOctaves='3' seed='4'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='22'/%3E%3C/filter%3E%3Crect x='14' y='12' width='572' height='56' filter='url(%23b)'/%3E%3C/svg%3E") center/100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 80' preserveAspectRatio='none'%3E%3Cfilter id='b' x='-5%25' y='-20%25' width='110%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .35' numOctaves='3' seed='4'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='22'/%3E%3C/filter%3E%3Crect x='14' y='12' width='572' height='56' filter='url(%23b)'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  filter:drop-shadow(0 10px 30px rgba(31,216,203,.25))}
.slogan i{font-style:normal;font-size:1.1em;letter-spacing:0;line-height:0;transform:translateY(-.04em)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.hero-meta{display:flex;gap:40px;margin-top:56px;padding-top:28px;border-top:1px solid var(--line);flex-wrap:wrap}
.hero-meta div{display:flex;flex-direction:column;gap:4px}
.hero-meta strong{font-family:var(--display);font-size:30px;font-weight:800;line-height:1}
.hero-meta span{color:var(--ink-3);font-size:13px}

/* rally tower */
@font-face{font-family:"DSEG7";src:url(fonts/dseg7-classic-bold.woff2) format("woff2");font-weight:700;font-display:swap}
.tower-wrap{justify-self:end;width:clamp(280px,min(27vw,calc((100svh - 60px) / 2.1)),370px);position:relative}
.tower{position:relative;padding:14px 14px 16px;border-radius:22px 22px 28px 28px;
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.018) 0 2px,transparent 2px 6px),
    repeating-linear-gradient(-45deg,rgba(0,0,0,.25) 0 2px,transparent 2px 6px),
    linear-gradient(160deg,#1c2123 0%,#0d1011 55%,#131819 100%);
  border:1px solid #2b3134;
  box-shadow:0 40px 80px -20px rgba(0,0,0,.8),0 0 0 6px rgba(255,255,255,.015),inset 0 1px 0 rgba(255,255,255,.07),0 0 120px -30px var(--glow)}
.tower::before,.tower::after{content:"";position:absolute;top:40px;bottom:70px;width:9px;border-radius:6px;
  background:linear-gradient(90deg,#3a4145,#8b969a 45%,#2c3235);box-shadow:0 0 0 1px rgba(0,0,0,.5)}
.tower::before{left:-14px}.tower::after{right:-14px}
.antenna{position:absolute;left:50%;top:-22px;transform:translateX(-50%);width:54px;height:24px}
.antenna .puck{position:absolute;inset:0 0 6px;border-radius:14px 14px 6px 6px;background:linear-gradient(#2a3033,#101315);border:1px solid #33393c;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.antenna .puck::after{content:"";position:absolute;left:50%;top:6px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#1fd8cb;box-shadow:0 0 8px #1fd8cb;animation:blink 2.4s steps(2) infinite}
.antenna .cable{position:absolute;right:-18px;top:10px;width:22px;height:26px;border:2px solid #202527;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.bolt{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#a4aeb2,#3b4245 70%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.4)}
.bolt::after{content:"";position:absolute;left:1.5px;right:1.5px;top:4px;height:1px;background:#1b1f21;transform:rotate(35deg)}
.bolt.tl{left:9px;top:9px}.bolt.tr{right:9px;top:9px}.bolt.bl{left:9px;bottom:9px}.bolt.br{right:9px;bottom:9px}
.tower-head{display:flex;justify-content:space-between;align-items:center;padding:0 12px 10px}
.engrave{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;color:#5d6769;text-shadow:0 1px 0 rgba(255,255,255,.06),0 -1px 0 rgba(0,0,0,.6)}
.lamps{display:flex;gap:6px}
.lamp{font:700 8px/1 var(--mono);letter-spacing:.06em;padding:4px 5px;border-radius:4px;background:#171b1c;color:#3a4244;border:1px solid #232a2c;transition:all .25s}
.lamp.gps.on{color:#0c1a10;background:#5fe07a;border-color:#5fe07a;box-shadow:0 0 10px rgba(95,224,122,.6)}
.lamp.dz.on{color:#231300;background:#ffb13b;border-color:#ffb13b;box-shadow:0 0 12px rgba(255,177,59,.7)}
.lamp.dg.on{color:#fff;background:#ff4536;border-color:#ff4536;box-shadow:0 0 12px rgba(255,69,54,.7);animation:blinkRed .7s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
@keyframes blinkRed{50%{background:#3a1512;color:#ff4536;box-shadow:none}}
/* ICO trip meters */
.icos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.ico{container-type:inline-size;padding:6px 7px 7px;border-radius:9px;background:linear-gradient(#262c2e,#14181a);border:1px solid #30373a;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 6px 12px -6px rgba(0,0,0,.8)}
.ico-top{display:flex;justify-content:space-between;font:600 7.5px/1 var(--mono);letter-spacing:.14em;color:#6f797b;margin:0 2px 5px}
.lcd7{position:relative;border-radius:5px;padding:5px 7px 4px;color:#2b1703;
  background:radial-gradient(130% 160% at 25% 15%,#ffd27a,#f8a334 55%,#de7d12);
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.4),inset 0 7px 14px rgba(0,0,0,.18),0 0 16px rgba(255,165,50,.35)}
.lcd7 small{display:block;font:700 7px/1 var(--mono);letter-spacing:.12em;opacity:.75;margin-bottom:3px}
.lcd7 .seg{position:relative;display:block;text-align:right;font:700 17cqw/1 "DSEG7",var(--mono);letter-spacing:.02em}
.lcd7 .seg i{font-style:normal;opacity:.1}
.lcd7 .seg b{position:absolute;right:0;top:0;font-weight:700}
.lcd7::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.35),transparent 38%);pointer-events:none}
/* roadbook reader */
.reader{position:relative;padding:8px 10px 18px;border-radius:12px;background:linear-gradient(#22282a,#111416);border:1px solid #30373a;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 16px -8px rgba(0,0,0,.9)}
.roller{position:relative;height:13px;margin:0 6px;border-radius:7px;background:linear-gradient(#6f6b62,#efeadf 40%,#fbf8f1 55%,#c9c4b7 80%,#6d695f)}
.roller::before,.roller::after{content:"";position:absolute;top:-2px;width:10px;height:17px;border-radius:4px;background:linear-gradient(90deg,#1a1e20,#5b6467 50%,#1a1e20)}
.roller::before{left:-11px}.roller::after{right:-11px}
.rb-window{position:relative;height:186px;overflow:hidden;background:#f4f1e8;border-left:1px solid #b8b3a5;border-right:1px solid #b8b3a5;
  box-shadow:inset 0 10px 12px -8px rgba(0,0,0,.45),inset 0 -10px 12px -8px rgba(0,0,0,.45)}
.rb-glass{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.35) 0 18%,transparent 34%,transparent 70%,rgba(255,255,255,.12) 82%,transparent 90%)}
.rb-window::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:#f59a23;z-index:2;box-shadow:0 0 6px rgba(245,154,35,.8)}
.rb-paper{will-change:transform;color:#141414}
.rb-box{position:relative;display:grid;grid-template-columns:30% 34% 36%;height:62px;border-bottom:1.5px solid #1b1b1b;
  background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.018) 0 1px,transparent 1px 3px)}
.rb-box>div{position:relative;border-right:1.5px solid #1b1b1b;display:flex;flex-direction:column;justify-content:center;padding:0 6px}
.rb-box>div:last-child{border-right:0}
.rb-box .no{position:absolute;left:4px;top:3px;font:600 7.5px/1 var(--mono);color:#555}
.rb-box .tot{font:900 21px/1 var(--display);letter-spacing:.01em;text-align:center;margin-top:4px}
.rb-box .par{align-self:center;margin-top:3px;font:600 9px/1 var(--mono);padding:2px 4px;border:1px solid #1b1b1b;border-radius:2px}
.rb-box .c2{align-items:center}
.rb-box .c2 svg{width:52px;height:52px}
.rb-box .c3{align-items:center;text-align:center;gap:3px;font:700 9px/1.15 var(--mono);letter-spacing:.04em}
.rb-box .cap{font:900 13px/1 var(--display);padding:3px 6px;border:1.5px solid #141414;border-radius:3px}
.rb-box .danger{display:grid;place-items:center;width:24px;height:21px;color:#fff;background:#d4261c;clip-path:polygon(50% 0,100% 100%,0 100%);font:900 11px/1 var(--display);padding-top:7px}
.rb-box .dz{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:3px solid #d4261c;font:900 12px/1 var(--display)}
.rb-box .wp{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px dashed #141414;font:700 7.5px/1 var(--mono)}
.rb-box .flag{font-size:15px;line-height:1}
.hl-g,.hl-r,.hl-y{padding:1px 3px;border-radius:2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hl-g{background:linear-gradient(100deg,transparent 2%,rgba(64,214,110,.55) 4% 96%,transparent 98%)}
.hl-r{background:linear-gradient(100deg,transparent 2%,rgba(255,70,90,.45) 4% 96%,transparent 98%)}
.hl-y{background:linear-gradient(100deg,transparent 2%,rgba(255,230,0,.6) 4% 96%,transparent 98%)}
.reader-label{position:absolute;left:0;right:0;bottom:4px;text-align:center;font:600 7px/1 var(--mono);letter-spacing:.3em;color:#556063}
/* dash (bike cluster under the tower) */
.dash{margin-top:12px;container-type:inline-size}
/* handlebar remote */
.remote{display:flex;justify-content:center;gap:14px;margin:14px auto 0;width:92%;padding:10px 14px 8px;border-radius:18px;
  background:linear-gradient(#1b1f21,#0b0d0e);border:1px solid #2b3134;box-shadow:0 18px 30px -16px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.06)}
.rgroup{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:90px}
.rgroup small{flex-basis:100%;text-align:center;font:600 7px/1 var(--mono);letter-spacing:.2em;color:#5d6769}
.remote button{width:36px;height:36px;border-radius:50%;border:1px solid #2e3538;cursor:pointer;color:#cfd6d5;font:700 14px/1 var(--body);
  background:radial-gradient(circle at 40% 30%,#343b3e,#15191b 70%);box-shadow:0 3px 0 #050606,inset 0 1px 0 rgba(255,255,255,.08);transition:transform .08s,box-shadow .08s,color .2s}
.remote button:hover{color:#1fd8cb}
.remote button:active,.remote button.pressed{transform:translateY(2px);box-shadow:0 1px 0 #050606,inset 0 2px 6px rgba(0,0,0,.6)}
.remote button:focus-visible{outline:2px solid #1fd8cb;outline-offset:2px}
.remote button.rst{width:44px;border-radius:12px;font:700 10px/1 var(--mono);letter-spacing:.06em;color:#ff7b70}
/* TFT dash (bike cluster) */
.tft{container-type:inline-size;position:relative;overflow:hidden;border-radius:14px;padding:2.6cqw 3.2cqw 0;background:#050607;color:#e9eef0;font-family:var(--body);
  border:3px solid #15181a;box-shadow:0 0 0 1px #2b3134,0 14px 26px -12px #000,inset 0 0 22px rgba(0,0,0,.9)}
.tft::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,255,.07) 0 22%,transparent 38%)}
.tft svg{display:block}
.tft-status{display:flex;justify-content:space-between;align-items:center;font:600 4cqw/1 var(--body);padding-bottom:2.2cqw;font-variant-numeric:tabular-nums}
.tft-ind{display:flex;gap:2.2cqw}
.tft-ind i svg{width:6.4cqw;height:4.4cqw}
.tft-ind .ok{color:#6be36b}.tft-ind .warn{color:#ff9a2e}.tft-ind .bad{color:#ff4b3a}.tft-ind .dim{opacity:.18}
.tft-main{display:grid;grid-template-columns:27% 1fr;gap:3.4cqw;height:64cqw}
.tft-left{display:flex;flex-direction:column;min-height:0}
.gearbox{flex:none;height:21cqw;display:grid;place-items:center;border-radius:2.4cqw 2.4cqw 0 0;background:#1a1f21;color:#fff;font:800 17cqw/1 var(--body);transition:background .25s,color .25s}
.gearbox.n{background:#4fdc79;color:#07170c}
.rpmbar{position:relative;flex:1;border-left:2px solid #2f3638;background:repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 5px),#0c0f10}
.rpmbar::before{content:"";position:absolute;left:-2px;top:0;width:2px;height:16.67%;background:#ff3b30}
.rpm-fill{position:absolute;left:0;width:48%;bottom:0;height:0;background:linear-gradient(to top,#138f86,#1fd8cb 60%,#8ff8ef);box-shadow:0 0 12px rgba(31,216,203,.45)}
.rpm-fill.red{background:linear-gradient(to top,#138f86,#1fd8cb 55%,#ff3b30)}
.rpm-scale span{position:absolute;right:10%;transform:translateY(50%);font:700 4.6cqw/1 var(--body)}
.rpm-scale span::before{content:"";position:absolute;right:calc(100% + 1.5cqw);top:50%;width:4cqw;height:1px;background:#6b7679}
.rpm-scale span.r{color:#ff4b3a}
.rpm-unit{position:absolute;left:5%;top:2cqw;writing-mode:vertical-rl;font:600 2.6cqw/1 var(--body);color:#8b979a}
.spd{text-align:right;line-height:1}
.spd b{display:block;font:700 21cqw/.9 var(--body);font-variant-numeric:tabular-nums}
.spd small{font:600 3.6cqw/1 var(--body);color:#aab4b7}
.tft-row{display:flex;justify-content:space-between;align-items:center;margin-top:2.6cqw;font:500 4cqw/1 var(--body)}
.tft-row span{display:flex;align-items:center;gap:1.4cqw}
.tft-row b{font-weight:700;font-size:4.6cqw}
.tft-row svg{width:4.4cqw;height:4.4cqw;color:#aab4b7}
.tft-row svg.fuel{color:#ffcf3a}
.fuelbar{display:flex;gap:.9cqw;margin:1.8cqw 0 2.6cqw}
.fuelbar i{flex:1;height:1.6cqw;background:#262d2f}
.fuelbar i.on{background:#e9eef0}
.modes{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.6cqw;padding:2cqw 2.4cqw;border:1px solid rgba(140,205,235,.4);
  clip-path:polygon(5% 0,100% 0,100% 86%,95% 100%,0 100%,0 14%)}
.tcs{display:grid;justify-items:center;gap:.6cqw;font:600 3cqw/1 var(--body);color:#cfd6d8}
.tcs small{font:600 2.8cqw/1 var(--mono);color:#8b979a}
.tcs b{font:800 5.2cqw/1 var(--body);color:#fff}
.modes .bike{width:12cqw;height:22cqw;justify-self:center;fill:#8f999c}
.tp{display:flex;flex-direction:column;gap:7cqw;font:600 3.4cqw/1 var(--body);text-align:right;white-space:nowrap}
.tft-bottom{display:grid;grid-template-columns:repeat(3,1fr);margin:2.6cqw -3.2cqw 0;border-top:1px solid #1f2527;background:#0a0d0e}
.tft-bottom div{padding:2.2cqw 1cqw 2.6cqw;text-align:center;border-right:1px solid #1f2527}
.tft-bottom div:last-child{border-right:0}
.tft-bottom small{display:block;font:500 3cqw/1.2 var(--body);color:#9aa5a8;margin-bottom:1.2cqw}
.tft-bottom b{font:700 3.9cqw/1 var(--body);font-variant-numeric:tabular-nums;white-space:nowrap}
.scroll-hint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--ink-3)}
.scroll-hint i{width:1px;height:48px;background:linear-gradient(var(--ink-3),transparent);position:relative;overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--accent);animation:drip 1.8s infinite}
@keyframes drip{to{top:110%}}

/* BRAND LOGO MARQUEE */
.brands{border-block:1px solid var(--line);background:var(--bg-2);padding:34px 0 38px;overflow:hidden}
.brands-label{text-align:center;color:var(--ink-3);margin-bottom:26px}
.brands-mask{mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;align-items:center;gap:80px;width:max-content;animation:marq 38s linear infinite;padding-right:80px}
.brands:hover .marquee-track{animation-play-state:paused}
.logo{display:flex;align-items:center;gap:12px;opacity:.55;transition:opacity .3s,transform .3s;flex:none}
.logo:hover{opacity:1;transform:translateY(-2px)}
.logo img{height:30px;width:auto;filter:var(--logo-filter)}
.logo.sq img{height:40px}
.logo span{font-family:var(--display);font-weight:800;font-size:28px;text-transform:uppercase;letter-spacing:.02em}
@keyframes marq{to{transform:translateX(-50%)}}

section{position:relative}
.sec{padding:clamp(90px,12vw,170px) 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:clamp(48px,6vw,80px);flex-wrap:wrap}
.sec-head .lead{max-width:46ch}

/* ABOUT / WORKSHOP */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,90px);align-items:center}
.photo{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3.3;border:1px solid var(--line);clip-path:inset(0% 0% 0% 0% round 24px)}
.photo{background:#1b1f20}
.photo::before{content:"";position:absolute;inset:0;background:url("data:image/webp;base64,UklGRpYAAABXRUJQVlA4IIoAAABwBQCdASogABgAPuVepk2pJSOiMAwBIByJQBb3AueCf3LS7vydSYwzcB//ZUCRSZPcX+AAAPnox8ce3MMawdyQsQ+GcgzgHX3HGTVEm/dw5cmBKgvr7zj5U7bK9hZWYCXtsKfnfR4bVUC6BY2962twKBFXwSXAzxGvZfZ+bsyOoDPQiPbw688GgAA=") center/cover;filter:blur(16px);transform:scale(1.15)}
.photo img{width:100%;height:120%;object-fit:cover;object-position:40% 50%;position:absolute;top:-10%;left:0;opacity:0;transition:opacity .6s ease}
.photo img.ready{opacity:1}
.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,12,13,.85));pointer-events:none}
.photo .cap{position:absolute;left:24px;right:24px;bottom:22px;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:16px}
.photo .cap{color:#f1f3f2}
.photo .cap b{font-family:var(--display);font-size:28px;font-weight:800;text-transform:uppercase;line-height:1}
.photo .cap span{color:var(--ink-2)}
.about-copy .lead{margin:26px 0 30px}
.checks{list-style:none;display:grid;gap:14px}
.checks li{display:flex;gap:14px;align-items:flex-start}
.checks .ck{flex:none;width:30px;height:30px;border-radius:50%;background:rgba(31,216,203,.12);color:var(--accent-fg);display:grid;place-items:center;margin-top:1px}
.checks .ck svg{width:16px;height:16px}
.checks b{display:block;font-weight:600}
.checks small{color:var(--ink-3);font-size:14px}

/* AUTHORIZED */
.auth{background:var(--bg-2);border-block:1px solid var(--line)}
.auth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.auth-card{position:relative;border-radius:var(--radius);padding:clamp(28px,4vw,48px);min-height:480px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;border:1px solid var(--line);isolation:isolate;transition:border-color .4s}
.auth-card::before{content:"";position:absolute;inset:0;z-index:-1;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.auth-card:hover::before{transform:scale(1.06)}
.auth-card.cf::before{background:radial-gradient(80% 80% at 100% 0%,rgba(31,216,203,.28),transparent 60%),linear-gradient(160deg,#0e1a1b,#0a0e0f)}
.auth-card.re::before{background:radial-gradient(80% 80% at 100% 0%,rgba(216,178,106,.28),transparent 60%),linear-gradient(160deg,#1c1610,#0e0c09)}
.auth-card.kv::before{background:radial-gradient(80% 80% at 100% 0%,rgba(235,58,52,.26),transparent 60%),linear-gradient(160deg,#1c1111,#0e0a0a)}
.auth-card.cf:hover{border-color:rgba(31,216,203,.5)}
.auth-card.re:hover{border-color:rgba(216,178,106,.5)}
.auth-card.kv:hover{border-color:rgba(235,58,52,.5)}
.auth-card .brand-h{line-height:0}
.auth-card .brand-logo{height:clamp(30px,3vw,44px);width:auto;max-width:100%;object-fit:contain;object-position:left;filter:brightness(0) invert(1)}
.auth-card.kv .brand-logo{height:clamp(24px,2.4vw,34px)}
.auth-card.kv .motto em{color:#ff5a52}
.auth-card.re .brand-logo{filter:brightness(0) invert(78%) sepia(35%) saturate(520%) hue-rotate(2deg)}
.auth-card .motto{font-family:var(--display);font-weight:800;font-size:clamp(28px,2.5vw,38px);text-transform:uppercase;line-height:.95;margin:28px 0 0}
.auth-card.cf .motto em{color:var(--accent-fg)}
.auth-card.re .motto em{color:var(--gold)}
.auth-card .tag{display:flex;justify-content:space-between;align-items:center;color:var(--ink-3)}
.auth-card ul{list-style:none;display:grid;gap:10px;color:var(--ink-2);margin-top:22px}
.auth-card li{display:flex;gap:10px;align-items:center}
.auth-card li svg{width:16px;height:16px;color:var(--ink)}
.auth-card .big-num{position:absolute;right:-10px;bottom:-40px;font-family:var(--display);font-weight:900;font-size:240px;line-height:1;color:rgba(255,255,255,.035);z-index:-1;pointer-events:none}

/* SERVICES */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.svc{position:relative;padding:36px 34px 42px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:320px;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;transition:color .4s}
.svc::before{content:"";position:absolute;inset:0;background:var(--accent);z-index:-1;clip-path:inset(100% 0 0 0);transition:clip-path .55s cubic-bezier(.7,0,.2,1)}
.svc:hover{color:var(--accent-ink)}
.svc:hover::before{clip-path:inset(0 0 0 0)}
.svc .num{color:var(--ink-3);transition:color .4s}
.svc .ic{--ac:var(--accent);--ic-bg:var(--ic-bg0);width:72px;height:72px;border-radius:20px;border:1px solid var(--line);background:var(--ic-bg);display:grid;place-items:center;margin:26px 0 auto;transition:border-color .4s,background .4s,box-shadow .4s}
.svc .ic svg{width:44px;height:44px;overflow:visible}
.sic{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sic .ac{stroke:var(--ac)} .sic .tread{stroke-width:1.6} .sic .acf{fill:var(--ac);stroke:none} .sic .bgf{fill:var(--ic-bg);transition:fill .4s}
.sic .w1,.sic .w2,.sic .gear,.sic .wheel,.sic .helmet,.sic .drop{transform-box:view-box;transform-origin:24px 24px;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.svc:hover .ic{--ac:var(--accent-ink);--ic-bg:#5ae4da;border-color:rgba(3,32,30,.25);box-shadow:0 12px 30px -10px rgba(3,32,30,.45)}
.svc-service:hover .w1{transform:rotate(12deg)} .svc-service:hover .w2{transform:rotate(-12deg)}
.svc-parts:hover .gear{transform:rotate(90deg);transition-duration:1.1s}
.svc-tyres:hover .wheel{transform:rotate(240deg);transition-duration:1.3s}
.sic .pulse{stroke-dasharray:64;stroke-dashoffset:0}
.svc-diag:hover .pulse{animation:trace 1.2s ease-in-out infinite}
@keyframes trace{0%{stroke-dashoffset:64}60%,100%{stroke-dashoffset:0}}
.svc-oil:hover .drop{animation:drip2 1.1s ease-in infinite}
@keyframes drip2{0%{transform:translateY(-3px);opacity:0}20%{opacity:1}100%{transform:translateY(9px);opacity:0}}
.svc-acc .helmet{transform-origin:24px 36px}
.svc-acc:hover .helmet{transform:rotate(-8deg) translateX(-1px)}
.svc h3{font-size:40px;font-weight:800;margin:40px 0 10px}
.svc p{color:var(--ink-2);font-size:15px;transition:color .4s}
.svc:hover .num,.svc:hover p{color:rgba(3,32,30,.78)}

/* QUOTE BAND */
.band{padding:clamp(70px,9vw,130px) 0;text-align:center;overflow:hidden}
.band p{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(40px,7.4vw,120px);line-height:.9;max-width:14ch;margin:0 auto}
.band p em{color:var(--accent-fg);font-style:italic}
.band .mono{color:var(--ink-3);margin-top:28px;display:block}

/* REVIEWS */
.reviews{background:var(--bg-2);border-block:1px solid var(--line)}
.rv-head{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:clamp(40px,5vw,64px)}
.rv-head h2{margin-top:20px}
.rv-score{display:flex;align-items:center;gap:22px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.rv-score .big{font-family:var(--display);font-weight:900;font-size:64px;line-height:.9}
.rv-score .meta{display:grid;gap:6px}
.rv-score .g{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:14px;font-weight:500}
.rv-score .g svg{width:18px;height:18px}
.rv-score .count{color:var(--ink-3);font-size:13px}
.rv-score .btn{--h:46px;padding:0 18px;font-size:14px;margin-left:6px}
.stars{--r:5;--c:#f6c243;display:inline-block;width:calc(var(--s,20px)*5);height:var(--s,20px);
  background:linear-gradient(90deg,var(--c) calc(var(--r)/5*100%),var(--stars-empty) 0);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6L2.5 9.4l6.6-.8z'/%3E%3C/svg%3E") 0 0/var(--s,20px) var(--s,20px) repeat-x;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6L2.5 9.4l6.6-.8z'/%3E%3C/svg%3E") 0 0/var(--s,20px) var(--s,20px) repeat-x}
.rv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rv-card{position:relative;display:flex;flex-direction:column;gap:16px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);min-height:280px;transition:border-color .3s,transform .4s}
.rv-card:hover{border-color:rgba(31,216,203,.45);transform:translateY(-4px)}
.rv-card::before{content:"\201C";position:absolute;right:20px;top:4px;font-family:var(--display);font-weight:900;font-size:110px;line-height:1;color:rgba(31,216,203,.14)}
.rv-who{display:flex;align-items:center;gap:12px}
.rv-av{width:44px;height:44px;border-radius:50%;flex:none;background:rgba(31,216,203,.14);color:var(--accent-fg);display:grid;place-items:center;font-weight:700;overflow:hidden}
.rv-av img{width:100%;height:100%;object-fit:cover}
.rv-who b{display:block;font-weight:600;line-height:1.2}
.rv-who small{color:var(--ink-3);font-size:13px}
.rv-text{color:var(--ink-2);font-size:15.5px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.rv-foot{display:flex;align-items:center;justify-content:space-between;color:var(--ink-3);font-size:12px;padding-top:14px;border-top:1px solid var(--line)}
.rv-foot svg{width:16px;height:16px}
.rv-foot a:hover{color:var(--accent-fg)}
.rv-card.ph .rv-text,.rv-card.ph .rv-who b{color:var(--ink-3)}
.rv-cta{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:28px;border-radius:var(--radius);min-height:280px;overflow:hidden;isolation:isolate;
  background:radial-gradient(90% 90% at 100% 0%,rgba(31,216,203,.28),transparent 60%),var(--bg);border:1px solid rgba(31,216,203,.45)}
.rv-cta .gbig{width:44px;height:44px;border-radius:12px;background:#fff;display:grid;place-items:center}
.rv-cta .gbig svg{width:26px;height:26px}
.rv-cta h3{font-size:clamp(30px,2.6vw,40px);font-weight:900}
.rv-cta h3 em{color:var(--accent-fg);font-style:italic}
.rv-cta p{color:var(--ink-2);font-size:15px;margin-top:10px}
.rv-cta .btn{justify-content:center}
.rv-note{color:var(--ink-3);font-size:13px;margin-top:22px}
.rv-preview{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;padding:7px 12px;border:1px dashed rgba(246,194,67,.5);border-radius:999px;color:#f6c243;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
@media (max-width:1000px){.rv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.rv-grid{grid-template-columns:1fr}.rv-score{flex-wrap:wrap}.rv-score .btn{margin-left:0;width:100%;justify-content:center}}

/* PROCESS */
.process{overflow:hidden;padding-top:0}
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.steps-line{position:absolute;left:0;right:0;top:34px;height:2px;background:var(--line)}
.steps-line i{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:left;transform:scaleX(0)}
.step .knob{width:70px;height:70px;border-radius:50%;background:var(--bg);border:2px solid var(--line);display:grid;place-items:center;position:relative;z-index:1;transition:border-color .4s,background .4s,color .4s}
.step .knob svg{width:26px;height:26px}
.step.on .knob{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.step h3{font-size:36px;font-weight:800;margin:10px 0 10px}
.step p{color:var(--ink-2);font-size:15px;max-width:32ch}
.step .mono{color:var(--ink-3);display:block;margin-top:24px}

/* BOOKING */
.booking{background:var(--bg-2);border-top:1px solid var(--line)}
.book-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px)}
.contact-cards{display:grid;gap:14px;margin-top:40px}
.cc{display:flex;gap:18px;align-items:center;padding:20px 22px;border:1px solid var(--line);border-radius:14px;background:var(--bg);transition:border-color .3s,transform .3s}
.cc:hover{border-color:var(--accent);transform:translateX(6px)}
.cc .ci{width:48px;height:48px;border-radius:12px;background:rgba(31,216,203,.12);color:var(--accent-fg);display:grid;place-items:center;flex:none}
.cc .ci svg{width:22px;height:22px}
.cc small{display:block;color:var(--ink-3);font-size:13px}
.cc b{font-weight:600;font-size:17px}
form.book{background:var(--bg);border:1px solid var(--line);border-radius:24px;padding:clamp(24px,3.5vw,44px);display:grid;gap:18px;grid-template-columns:1fr 1fr;align-self:start}
form.book h3{grid-column:1/-1;font-size:44px}
form.book .sub{grid-column:1/-1;color:var(--ink-2);font-size:15px;margin:-8px 0 6px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.field input,.field textarea{width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:var(--ink);font:inherit;font-size:16px;transition:border-color .25s,box-shadow .25s;outline:none}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(31,216,203,.15)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips label{font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none;color:var(--ink-2);padding:9px 14px;border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:all .25s}
.chips input:checked + label{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.chips input:focus-visible + label{outline:2px solid var(--accent);outline-offset:2px}
form.book .btn{grid-column:1/-1;justify-content:center;border:0;cursor:pointer;font-family:inherit}
.form-note{grid-column:1/-1;color:var(--ink-3);font-size:13px;text-align:center}

/* MAP */
.map-wrap{position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);height:460px;margin-top:clamp(60px,8vw,100px)}
.map-wrap iframe{width:100%;height:100%;border:0;filter:var(--map-filter)}
.map-card{position:absolute;left:24px;bottom:24px;background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:24px 26px;max-width:340px}
.map-card h3{font-size:34px;margin:8px 0 10px}
.map-card p{color:var(--ink-2);font-size:15px;margin-bottom:16px}
.map-card .btn{--h:44px;padding:0 18px;font-size:14px}

/* FOOTER */
footer{padding:clamp(80px,10vw,140px) 0 40px;position:relative;overflow:hidden}
.foot-kicker{color:var(--ink-3);margin-bottom:18px;display:block}
.foot-big{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(60px,16vw,260px);line-height:.82;letter-spacing:-.02em}
.foot-big a{display:inline-block;transition:color .3s}
.foot-big a:hover{color:var(--accent-fg)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-top:80px;padding-top:40px;border-top:1px solid var(--line)}
.foot-grid img{height:70px;width:auto;margin-bottom:18px;filter:var(--site-logo-filter)}
.foot-grid h2{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:18px}
.foot-grid ul{list-style:none;display:grid;gap:10px;color:var(--ink-2)}
.foot-grid a:hover{color:var(--accent-fg)}
.socials{display:flex;gap:10px;margin-top:20px}
.socials a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:all .3s}
.socials a:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.socials svg{width:18px;height:18px}
.copy{display:flex;justify-content:space-between;gap:20px;margin-top:60px;color:var(--ink-3);font-size:13px;flex-wrap:wrap}

/* floating call */
.fab{position:fixed;right:20px;bottom:20px;z-index:45;width:60px;height:60px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:none;place-items:center;box-shadow:0 10px 30px rgba(31,216,203,.4)}
.fab svg{width:24px;height:24px}

.reveal{opacity:0;transform:translateY(40px)}

/* RESPONSIVE */
@media (max-width:1100px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .nav-links,.nav-cta .btn{display:none}
  .nav-cta{gap:8px}
  .burger{display:inline-flex}
  .hero .wrap{grid-template-columns:1fr}
  .tower-wrap{justify-self:center;width:min(340px,86vw);margin-top:44px}
  .auth-grid,.about-grid,.book-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;row-gap:50px}
  .steps-line{display:none}
  .fab{display:grid}
  .scroll-hint{display:none}
  .marquee-track{gap:56px;padding-right:56px}
}
@media (max-width:560px){
  body{font-size:16px}
  .svc-grid,.steps{grid-template-columns:1fr}
  .svc{min-height:0;padding:28px 24px 32px}.svc h3{margin-top:24px}
  form.book{grid-template-columns:1fr}
  .hero-meta{gap:24px}
  .slogan{font-size:clamp(15px,4.6vw,22px);letter-spacing:.08em;gap:8px;padding:12px 16px 10px}
  .foot-grid{grid-template-columns:1fr}
  .map-card{left:12px;right:12px;bottom:12px;max-width:none}
  .auth-card{min-height:420px}
  .hero h1 .outline{-webkit-text-stroke:1.5px var(--ink)}
    .photo{aspect-ratio:4/4.2}
  .logo img{height:24px}.logo.sq img{height:32px}.logo span{font-size:22px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* buttons as <button> */
button.btn{font:600 15px/1 var(--body);letter-spacing:.02em;cursor:pointer}
button.btn-primary{border:0}
.btn-ghost{background:transparent}

/* COOKIE CONSENT */
.consent{position:fixed;left:20px;bottom:20px;z-index:120;width:min(440px,calc(100vw - 32px));padding:22px 22px 20px;border-radius:22px;
  background:var(--bg-2);color:var(--ink);border:1px solid var(--line);box-shadow:0 30px 80px -20px rgba(0,0,0,.55);
  transform:translateY(24px);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .35s}
.consent.show{transform:none;opacity:1}
.consent-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.consent-ico{flex:none;width:40px;height:40px;border-radius:12px;background:rgba(31,216,203,.14);color:var(--accent-fg);display:grid;place-items:center}
.consent-ico svg{width:22px;height:22px}
.consent h2{font-size:30px;font-weight:900}
.consent p{color:var(--ink-2);font-size:14.5px;line-height:1.55}
.consent p a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.consent-prefs{display:grid;gap:10px;margin-top:14px}
.consent-prefs[hidden]{display:none}
.pref{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);cursor:pointer}
.pref b{display:block;font-size:14.5px;font-weight:600}
.pref small{display:block;color:var(--ink-3);font-size:12.5px;line-height:1.4;margin-top:2px}
.pref input{position:absolute;opacity:0;width:1px;height:1px}
.sw{flex:none;position:relative;width:42px;height:24px;border-radius:99px;background:var(--line);transition:background .25s}
.sw::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .25s}
.pref input:checked + .sw{background:var(--accent)}
.pref input:checked + .sw::after{transform:translateX(18px)}
.pref input:disabled + .sw{opacity:.55}
.pref input:focus-visible + .sw{outline:2px solid var(--accent);outline-offset:2px}
.consent-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.consent-btns .btn{--h:46px;justify-content:center;padding:0 14px;font-size:14px}
.consent-btns [data-c="reject"]{order:1}.consent-btns [data-c="accept"]{order:2}
.consent-btns [data-c="settings"],.consent-btns [data-c="save"]{order:3;grid-column:1/-1;--h:40px;border-color:transparent;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.consent-btns [data-c="save"]{text-decoration:none;border-color:var(--line);color:var(--ink)}
.consent-btns [hidden]{display:none}
body.consent-open .fab{opacity:0;pointer-events:none}
@media (max-width:560px){.consent{left:12px;right:12px;bottom:12px;width:auto;padding:18px}}

/* map shown only after consent */
.map-gate{position:absolute;inset:0;z-index:1;display:grid;align-content:center;justify-items:center;gap:16px;padding:24px 24px 120px;text-align:center;color:var(--ink-2);
  background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/48px 48px,var(--bg-3)}
.map-gate p{max-width:34ch;font-size:15px}
@media (max-width:560px){.map-gate{align-content:start;padding:40px 20px 0}}
.map-card{z-index:2}
.rv-consent{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:var(--ink-2);font-size:15px;margin-bottom:18px}
.rv-consent .btn{--h:42px;padding:0 18px;font-size:14px}

/* LEGAL PAGES */
.legal-hero{position:relative;padding:160px 0 56px;border-bottom:1px solid var(--line);
  background:radial-gradient(50% 80% at 85% 0%,rgba(31,216,203,.14),transparent 70%)}
.legal-hero h1{font-size:clamp(52px,8vw,112px);margin-top:18px}
.legal-hero .meta{color:var(--ink-3);margin-top:22px;font-size:15px}
.legal{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(32px,6vw,90px);padding-block:72px 110px}
.toc{position:sticky;top:110px;align-self:start}
.toc .mono{display:block;color:var(--ink-3);margin-bottom:14px}
.toc ol{list-style:none;display:grid;gap:2px;border-left:1px solid var(--line)}
.toc a{display:block;margin-left:-1px;padding:6px 0 6px 16px;border-left:2px solid transparent;color:var(--ink-2);font-size:14.5px;line-height:1.35;transition:color .2s,border-color .2s}
.toc a:hover{color:var(--ink);border-color:var(--accent)}
.prose{max-width:72ch}
.prose h2{font-size:clamp(30px,3.4vw,44px);margin:60px 0 16px;scroll-margin-top:110px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--ink-2);font-size:17px;line-height:1.75}
.prose p{margin-bottom:16px}
.prose ul{margin:0 0 16px 22px}
.prose li{margin-bottom:6px}
.prose strong{color:var(--ink)}
.prose a{color:var(--accent-fg);text-decoration:underline;text-underline-offset:3px}
.prose .box{margin:10px 0 24px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:var(--bg-2)}
.prose .box p:last-child{margin-bottom:0}
.prose .btn{margin-top:6px}
.prose hr{border:0;border-top:1px solid var(--line);margin:64px 0 8px}
.foot-legal{display:flex;gap:18px;flex-wrap:wrap}
.foot-legal a{text-decoration:underline;text-underline-offset:3px}
.foot-legal a:hover{color:var(--accent-fg)}
@media (max-width:900px){.legal{grid-template-columns:1fr;padding-block-start:48px}.toc{position:static}.legal-hero{padding-top:130px}}
