/* ===================== GLOBAL BASE ===================== */
/* Sections are self-contained: each *-scope wrapper re-declares its own tokens,
   reset and background so the five formerly-iframed sections can coexist without
   collisions. This base only covers the page shell. */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:#ffffff;color:#1a1a1a;overflow-x:hidden;
     font-family:'Inter','Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;
     -webkit-font-smoothing:antialiased}
img{max-width:100%}

/* Section headings split into per-letter spans and wave in on scroll (js/main.js) */
.wave-h2 .wchar{display:inline-block;will-change:transform,opacity}

/* ===================== HERO  (.hero-scope) ===================== */
.hero-scope{--bg:#ffffff;
    --bg-2:#f8f9fa;
    --white:#1a1a1a;
    --muted:rgba(26,26,26,0.62);
    --line:rgba(0,0,0,0.10);
    --blue:#0175ff;
    --gold:#ffcd7d;
    --pad:40px;}
.hero-scope *{margin:0; padding:0; box-sizing:border-box;}
.hero-scope{scroll-behavior:smooth;}
.hero-scope{background:var(--bg);
    color:var(--white);
    font-family:'Inter',-apple-system,'Pretendard',sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    position:relative;}
.hero-scope .bg-glow{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.hero-scope .bg-glow::before{content:""; position:absolute; top:-260px; left:50%; transform:translateX(-50%);
    width:1100px; height:700px;
    background:radial-gradient(ellipse at center,
      rgba(1,117,255,0.14) 0%,
      rgba(1,117,255,0.05) 38%,
      transparent 68%);
    filter:blur(20px);}
.hero-scope .bg-glow::after{content:""; position:absolute; top:120px; right:-200px;
    width:600px; height:600px;
    background:radial-gradient(circle at center,
      rgba(255,205,125,0.14) 0%, transparent 60%);
    filter:blur(30px);}
.hero-scope .wrap{position:relative; z-index:1; padding-top:82px;}
.hero-scope nav{position:fixed; top:0; left:0; right:0; z-index:50; width:100%;
    background:rgba(255,255,255,0.82); backdrop-filter:blur(12px) saturate(160%); -webkit-backdrop-filter:blur(12px) saturate(160%);
    border-bottom:1px solid var(--line);
    transition:transform .4s cubic-bezier(.16,1,.3,1);}
.hero-scope nav.nav-hide{transform:translateY(-100%);}
.hero-scope .nav-inner{display:flex; align-items:center; justify-content:space-between;
    max-width:1200px; margin:0 auto; padding:18px var(--pad);}
.hero-scope .brand{display:flex; align-items:center; gap:10px; font-weight:600; letter-spacing:-0.02em; font-size:19px;}
.hero-scope .brand .dot{width:22px; height:22px; border-radius:7px;
    background:linear-gradient(140deg,var(--blue),var(--gold));
    box-shadow:0 0 18px rgba(1,117,255,0.55);}
.hero-scope .nav-links{display:flex; gap:34px; list-style:none;}
.hero-scope .nav-links a{color:var(--muted); text-decoration:none; font-size:14.5px; font-weight:450;
    transition:color .2s ease;}
.hero-scope .nav-links a:hover{color:var(--white);}
.hero-scope .nav-cta{color:var(--white); text-decoration:none; font-size:14px; font-weight:500;
    padding:9px 18px; border:1px solid var(--line); border-radius:11px;
    background:rgba(0,0,0,0.03); transition:background .2s ease, border-color .2s ease;}
.hero-scope .nav-cta:hover{background:rgba(0,0,0,0.06); border-color:rgba(0,0,0,0.18);}
.hero-scope .menu-btn{display:none; background:none; border:none; color:#1a1a1a; cursor:pointer;}
.hero-scope .hero{max-width:1200px; margin:0 auto; padding:56px var(--pad) 0;
    text-align:center; display:flex; flex-direction:column; align-items:center;}
.hero-scope .label{display:inline-flex; align-items:center; gap:9px;
    padding:7px 15px 7px 12px; border-radius:100px;
    border:1px solid var(--line); background:rgba(0,0,0,0.03);
    font-size:13.5px; color:rgba(26,26,26,0.78); font-weight:450;
    backdrop-filter:blur(6px);}
.hero-scope .label .pip{width:7px; height:7px; border-radius:50%;
    background:var(--blue); box-shadow:0 0 10px var(--blue);
    position:relative;}
.hero-scope .label .pip::after{content:""; position:absolute; inset:-4px; border-radius:50%;
    border:1px solid rgba(1,117,255,0.5); animation:ping 2s ease-out infinite;}
@keyframes ping{0%{transform:scale(.6);opacity:1} 100%{transform:scale(1.8);opacity:0}}
.hero-scope h1.title{font-size:clamp(38px,6.4vw,78px);
    line-height:1.04; font-weight:600; letter-spacing:-0.035em;
    margin:26px 0 0; max-width:14ch;}
.hero-scope h1.title .word{display:inline-block; white-space:nowrap;}
.hero-scope h1.title .char{display:inline-block; will-change:transform;}
.hero-scope .subtext{margin:24px 0 0; max-width:52ch;
    font-size:clamp(15px,1.5vw,18px); line-height:1.6;
    color:var(--muted); font-weight:400;}
.hero-scope .cta-wrap{margin-top:34px;}
.hero-scope .btn-primary{display:inline-block; text-decoration:none; border-radius:16px;
    padding:1px;}
.hero-scope .btn-inner{position:relative;
    padding:15px 30px; border-radius:15px;
    background-color:#000;
    border:1px solid rgba(255,255,255,0.4);
    color:#fff; font-size:15px; font-weight:500; letter-spacing:0.01em;
    box-shadow:
      0px 0.83px 0.83px -0.75px rgba(0,0,0,0.18),
      0px 2.26px 2.26px -1.5px rgba(0,0,0,0.18),
      0px 4.96px 4.96px -2.25px rgba(0,0,0,0.17),
      0px 11.01px 11.01px -3px rgba(0,0,0,0.14),
      0px 28px 28px -3.75px rgba(0,0,0,0.06),
      inset -4px 3px 9px 0px var(--blue),
      inset 3px -2px 8px 0px var(--gold);
    transition:transform .25s cubic-bezier(.2,.7,.3,1), filter .25s ease;}
.hero-scope .btn-primary:hover .btn-inner{transform:translateY(-2px); filter:brightness(1.12);}
.hero-scope .btn-primary:active .btn-inner{transform:translateY(0);}
.hero-scope .dashboard{margin:60px auto 0; max-width:1120px; width:100%;
    border-radius:16px; overflow:hidden;
    border:1px solid var(--line);
    box-shadow:0 30px 80px -30px rgba(1,117,255,0.22), 0 20px 50px -20px rgba(0,0,0,0.16);
    position:relative;}
.hero-scope .dashboard img{display:block; width:100%; height:auto;}
.hero-scope .dashboard::after{content:""; position:absolute; left:0; right:0; bottom:0; height:38%;
    background:linear-gradient(to bottom, transparent, var(--bg));
    pointer-events:none;}
.hero-scope .logos{max-width:1200px; margin:44px auto 90px; padding:0 var(--pad);
    -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 82%,transparent 100%);
    mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 82%,transparent 100%);
    overflow:hidden;}
.hero-scope .logos-track{display:flex; align-items:center; gap:64px; width:max-content;
    animation:scroll 28s linear infinite;}
.hero-scope .logos:hover .logos-track{animation-play-state:paused;}
.hero-scope .logos-track img{height:26px; width:auto; opacity:0.5;
    filter:brightness(0);
    transition:opacity .2s ease;}
.hero-scope .logos-track img:hover{opacity:0.95;}
@keyframes scroll{from{ transform:translateX(0); }
    to{ transform:translateX(calc(-50% - 32px)); }}
/* Hero label / subtext / dashboard reveal on scroll-into-view via the shared observer (js/main.js),
   using the same easing as the rest of the page so they read as one continuous motion. The dashboard
   travels a touch further with a micro-scale so it glides up into place when it enters the viewport. */
html.js .hero-scope .reveal{opacity:0;transform:translateY(28px);
    transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
html.js .hero-scope .reveal.in{opacity:1;transform:none}
html.js .hero-scope #r-dash{transform:translateY(44px) scale(.985)}
html.js .hero-scope #r-dash.in{transform:none}
@media (max-width:820px){
.hero-scope{--pad:20px;}
.hero-scope .nav-links,.hero-scope .nav-cta{display:none;}
.hero-scope .menu-btn{display:block;}
.hero-scope .hero{padding-top:36px;}
.hero-scope .dashboard{margin-top:44px;}
}
@media (prefers-reduced-motion:reduce){
.hero-scope *{animation:none !important; transition:none !important;}
.hero-scope .reveal{opacity:1 !important; transform:none !important;}
}
.hero-scope .brand{min-height:24px}
.hero-scope .brand-logo{display:block;width:160px;height:auto;object-fit:contain;filter:drop-shadow(0 0 14px rgba(1,117,255,.18))}
.hero-scope .dashboard{background:#f1f3f4}
.hero-scope .dashboard img{width:100%;height:clamp(420px,52vw,680px);object-fit:cover;object-position:center top}
@media (max-width:820px){
.hero-scope .brand-logo{width:138px}
.hero-scope .dashboard img{height:auto;aspect-ratio:16/11;object-fit:contain;background:#f1f3f4}
}
.hero-scope .hero-video-bg{display:none}
@media (max-width:767px){
.hero-scope .hero-video-bg{display:block;position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero-scope .hero-video-bg video{width:100%;height:100%;object-fit:cover;filter:brightness(.40) saturate(1.05)}
.hero-scope .hero-video-bg::after{content:"";position:absolute;inset:0;
      background:linear-gradient(180deg,rgba(5,6,12,.55) 0%,rgba(5,6,12,.62) 55%,rgba(5,6,12,.82) 100%)}
.hero-scope .dashboard{display:none}
/* the video is a dark clip, so while it's showing (mobile only) the hero copy needs to
   stay light regardless of the page's white background. The nav itself isn't included here —
   it now sits on its own always-light fixed bar, above the video, so it keeps dark text. */
.hero-scope .hero{position:relative;z-index:1}
.hero-scope .label{color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.hero-scope h1.title{color:#fff}
.hero-scope .subtext{color:rgba(255,255,255,.68)}
}

/* ===================== FEATURES  (.feat-scope) ===================== */
.feat-scope{--bg:#ffffff;
    --card:#ffffff;
    --panel:#f1f3f4;
    --border:rgba(0,0,0,.10);
    --line:#dadce0;
    --white:#1a1a1a;
    --t1:#3c4043;
    --t2:#5f6368;
    --t3:#80868b;
    --gold:#ffcd7d;
    --blue:#0175ff;
    --border-dark:rgba(255,255,255,.14);
    --net-line:rgba(1,117,255,.28);
    --grad:linear-gradient(90deg,var(--gold) 0%,var(--blue) 100%);
    --grad-r:linear-gradient(277deg,var(--blue) 0%,var(--gold) 100%);}
.feat-scope *{margin:0;padding:0;box-sizing:border-box}
.feat-scope,.feat-scope{background:var(--bg);color:var(--white);font-family:"Inter",sans-serif;-webkit-font-smoothing:antialiased}
.feat-scope{overflow-x:hidden}
.feat-scope .spacer{display:none}
.feat-scope .features{position:relative;padding:72px 0 40px}
.feat-scope .container{max-width:1200px;margin:0 auto;padding:0 40px}
.feat-scope .tag{display:inline-flex;align-items:center;gap:8px;opacity:.9}
.feat-scope .tag-icon{width:20px;height:20px;border-radius:1px;display:grid;place-items:center}
.feat-scope .tag-icon svg{width:18px;height:18px;stroke:var(--t3);fill:none}
.feat-scope .tag span{font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--t3)}
.feat-scope .head-line{margin:14px 0 34px;height:1px;background:var(--border)}
.feat-scope h2{font-family:"Space Grotesk",sans-serif;font-size:clamp(28px,4vw,46px);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.feat-scope .subtext{margin-top:14px;font-size:17px;color:var(--t2);max-width:520px}
html.js .feat-scope .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
html.js .feat-scope .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
html.js .feat-scope .reveal{opacity:1!important;transform:none!important}
.feat-scope .track{transition:none!important}
}
.feat-scope .tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:48px 0 36px}
.feat-scope .tab{display:flex;flex-direction:column;gap:14px;opacity:.5;cursor:pointer;transition:opacity .3s ease}
.feat-scope .tab:hover{opacity:.8}
.feat-scope .tab.active{opacity:1}
.feat-scope .tab-top{display:flex;align-items:center;gap:9px}
.feat-scope .tab-top svg{width:22px;height:22px;stroke:var(--white);fill:none;stroke-width:1.6}
.feat-scope .tab-top b{font-size:15px;font-weight:500;color:var(--white)}
.feat-scope .tab-line{position:relative;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.feat-scope .tab-fill{position:absolute;inset:0;transform:scaleX(0);transform-origin:left;background:var(--grad);border-radius:2px}
.feat-scope .viewport{overflow:hidden}
.feat-scope .track{display:flex;flex-direction:row;gap:0;will-change:transform;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.feat-scope .card{flex:0 0 100%;width:100%;
    display:grid;grid-template-columns:1fr 1fr;
    background:var(--card);border:1px solid var(--border);border-radius:24px;
    box-shadow:0 1px 2px rgba(0,0,0,.04),0 20px 44px -24px rgba(0,0,0,.16);
    min-height:520px;overflow:hidden;}
.feat-scope .c-content{padding:44px 40px;display:flex;flex-direction:column}
.feat-scope .c-content h4{font-family:"Space Grotesk",sans-serif;font-size:26px;font-weight:600;letter-spacing:-.01em}
.feat-scope .c-content p{margin-top:12px;font-size:15px;line-height:1.55;color:var(--t2);max-width:360px}
.feat-scope .points{margin-top:28px;display:grid;grid-template-columns:repeat(2,max-content);gap:12px}
.feat-scope .pt{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border:1px solid var(--border);border-radius:12px;background:rgba(255,254,250,0)}
.feat-scope .pt svg{width:16px;height:16px;stroke:var(--white);fill:none;stroke-width:1.6}
.feat-scope .pt span{font-size:13.5px;color:var(--t1)}
.feat-scope .cta{margin-top:auto;padding-top:32px}
.feat-scope .btn{display:inline-block;padding:1px;border-radius:16px}
.feat-scope .btn-inner{padding:13px 26px;border:1px solid var(--line);background:var(--panel);border-radius:15px;font-size:14px;font-weight:600;
    background-clip:padding-box}
.feat-scope .btn-inner .g{background:var(--grad-r);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
/* Right-hand panel is a soft light tint (not flat white) so it still reads as a distinct
   visualization pane next to the copy, while the small mock/globe/network illustrations
   inside keep their own self-contained dark styling as focused "device screenshot" insets. */
.feat-scope .c-visual{position:relative;overflow:hidden;display:grid;place-items:center;
    background:linear-gradient(160deg,#f8f9fa,#eef1f4)}
.feat-scope .mock{position:absolute;right:-40px;top:40px;width:340px;height:440px;border-radius:20px;border:1px solid var(--border-dark);
    background:linear-gradient(160deg,#0e1320,#080a11);
    -webkit-mask:linear-gradient(-90deg,#000 0%,rgba(0,0,0,.94) 71%,transparent 100%);
    mask:linear-gradient(-90deg,#000 0%,rgba(0,0,0,.94) 71%,transparent 100%);
    box-shadow:0 34px 40px rgba(0,0,0,.45);padding:20px}
.feat-scope .mock-row{height:12px;border-radius:6px;background:rgba(125,164,255,.12);margin-bottom:14px}
.feat-scope .mock-row.w1{width:70%}
.feat-scope .mock-row.w2{width:45%}
.feat-scope .mock-row.w3{width:88%}
.feat-scope .mock-row.w4{width:60%}
.feat-scope .mock-chip{display:inline-block;margin:6px 6px 0 0;padding:6px 12px;border-radius:8px;font-size:11px;color:rgba(255,255,255,.7);
    border:1px solid var(--border-dark);background:rgba(255,255,255,.02)}
.feat-scope .badge{position:relative;z-index:3;display:flex;align-items:center;gap:11px;padding:9px 16px 9px 9px;border-radius:999px;
    background:rgba(12,15,22,.85);backdrop-filter:blur(6px);
    box-shadow:inset 0 0 4px rgba(255,255,255,.6),0 24px 40px rgba(0,0,0,.35)}
.feat-scope .badge .av{width:34px;height:34px;border-radius:50%;background:var(--grad-r)}
.feat-scope .badge .tw{font-size:15px;color:#fff;letter-spacing:-.02em;white-space:pre}
.feat-scope .cur{display:inline-block;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.feat-scope .globe{width:320px;height:320px;border-radius:50%;
    background:radial-gradient(circle at 35% 30%,#3a6bff 0%,#123 45%,#06080f 78%);
    box-shadow:0 24px 60px rgba(1,117,255,.25),inset -20px -30px 60px rgba(0,0,0,.6),inset 10px 10px 40px rgba(120,160,255,.25);
    position:relative;filter:brightness(1.15)}
.feat-scope .globe::after{content:"";position:absolute;inset:0;border-radius:50%;
    background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(125,164,255,.12) 22px 23px),
               repeating-linear-gradient(90deg,transparent 0 22px,rgba(125,164,255,.10) 22px 23px);
    -webkit-mask:radial-gradient(circle at 35% 30%,#000 40%,transparent 80%);
    mask:radial-gradient(circle at 35% 30%,#000 40%,transparent 80%)}
.feat-scope .wordmark{position:absolute;z-index:2;font-family:"Space Grotesk";font-weight:700;font-size:34px;letter-spacing:.02em;
    color:#fff;text-shadow:0 4px 24px rgba(1,117,255,.6)}
.feat-scope .net{position:absolute;inset:0;display:grid;place-items:center}
.feat-scope .net svg.curves{position:absolute;top:8%;left:50%;transform:translateX(-50%);width:262px;height:317px}
.feat-scope .logos{position:absolute;top:6%;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:22px;align-items:center;z-index:2}
.feat-scope .logos .row{display:flex;gap:26px}
.feat-scope .lg{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;
    background:#0c0f16;border:1px solid var(--border-dark);box-shadow:0 10px 24px rgba(0,0,0,.4)}
.feat-scope .lg svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:1.6}
.feat-scope .hub{position:absolute;bottom:14%;left:50%;transform:translateX(-50%);width:70px;height:70px;border-radius:50%;
    background:radial-gradient(circle at 40% 35%,#3a6bff,#0a0d16);box-shadow:0 12px 30px rgba(1,117,255,.4);z-index:2}
@media(max-width:860px){
.feat-scope .tabs{grid-template-columns:1fr}
.feat-scope .card{grid-template-columns:1fr;min-height:auto}
.feat-scope .c-visual{min-height:360px}
.feat-scope .points{grid-template-columns:1fr 1fr}
}

/* ===================== EXCEPTIONALITIES  (.exc-scope) ===================== */
.exc-scope{--bg:#ffffff;
    --card:#ffffff;
    --blue:#0175ff;
    --amber:#ffac0a;
    --amber-2:#ffcd7d;
    --white:#1a1a1a;
    --border:rgba(125,164,255,.20);
    --glass:rgba(255,255,255,.7);
    --track:rgba(0,0,0,.08);
    --t-muted:#5f6368;
    --t-sub:#5f6368;
    --t-sub2:#4a5468;
    --radius:24px;}
.exc-scope *{box-sizing:border-box;margin:0;padding:0}
.exc-scope{scroll-behavior:smooth}
.exc-scope{background:
      radial-gradient(1200px 600px at 50% -10%, rgba(1,117,255,.07), transparent 60%),
      var(--bg);
    color:var(--white);
    font-family:"Inter",system-ui,-apple-system,sans-serif;
    -webkit-font-smoothing:antialiased;
    min-height:auto;
    display:block;
    padding:72px 24px 84px;}
.exc-scope .wrap{width:100%;max-width:1200px;margin:0 auto}
.exc-scope .eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:34px;}
.exc-scope .tag{display:inline-flex;align-items:center;gap:8px;
    padding:6px 12px;border-radius:1px;
    border:1px solid var(--border);
    background:rgba(0,0,0,.03);
    opacity:.85;
    white-space:nowrap;}
.exc-scope .tag svg{width:16px;height:16px;opacity:.8}
.exc-scope .tag span{font-size:11px;font-weight:500;letter-spacing:.16em;
    color:var(--t-muted);text-transform:uppercase;}
.exc-scope .eyebrow .line{flex:1;height:1px;background:var(--border)}
.exc-scope .title-block{max-width:640px;margin-bottom:44px}
.exc-scope h2{font-family:"Space Grotesk","Inter",sans-serif;
    font-size:clamp(30px,4.6vw,50px);
    font-weight:600;line-height:1.04;letter-spacing:-.02em;
    background:linear-gradient(180deg,#1a1a1a 40%,#4a5468);
    -webkit-background-clip:text;background-clip:text;color:transparent;}
/* Once the heading is split into per-letter .wchar spans and GSAP transforms them, each span
   is promoted to its own layer and drops out of the parent's background-clip:text region — so
   the gradient/clip must live on each letter, otherwise the inherited color:transparent leaves
   the letters with nothing to fill and the whole heading renders invisible. */
.exc-scope h2 .wchar{
    background:linear-gradient(180deg,#1a1a1a 40%,#4a5468);
    -webkit-background-clip:text;background-clip:text;color:transparent;}
.exc-scope .title-block p{margin-top:16px;font-size:clamp(15px,1.6vw,18px);
    color:var(--t-sub2);line-height:1.5;}
.exc-scope .grid{display:grid;gap:16px}
.exc-scope .row-top{grid-template-columns:1fr 1fr}
.exc-scope .row-bot{grid-template-columns:1fr 2fr;margin-top:16px}
.exc-scope .card{position:relative;border-radius:var(--radius);
    border:1px solid var(--border);
    background:var(--card);
    box-shadow:0 1px 2px rgba(0,0,0,.04),0 30px 60px -30px rgba(0,0,0,.16);
    overflow:hidden;
    min-height:440px;
    display:flex;flex-direction:column;justify-content:flex-end;
    isolation:isolate;}
.exc-scope .card .visual{position:absolute;inset:0;z-index:0;overflow:hidden}
.exc-scope .card .visual::after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 45%,rgba(255,255,255,.55) 75%,rgba(255,255,255,.94) 100%);
    z-index:2;}
.exc-scope .card .text{position:relative;z-index:3;
    margin:22px;padding:20px 22px;
    border-radius:12px;
    backdrop-filter:blur(6px);
    background:linear-gradient(180deg,rgba(255,254,250,0),rgba(255,254,250,.015));}
.exc-scope .card .text::before{content:"";position:absolute;inset:0;border-radius:12px;
    padding:.5px;pointer-events:none;
    background:linear-gradient(320deg,rgba(255,255,255,.28),rgba(255,255,255,.04) 40%,transparent 62%,rgba(255,255,255,.18));
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;}
.exc-scope .card h4{font-family:"Space Grotesk","Inter",sans-serif;
    font-size:22px;font-weight:600;letter-spacing:-.01em;margin-bottom:8px;}
.exc-scope .card .text p{color:var(--t-sub);font-size:14.5px;line-height:1.5;max-width:40ch}
.exc-scope .speed-bg{position:absolute;inset:0;background:
     radial-gradient(120% 90% at 70% 10%, rgba(1,117,255,.12), transparent 55%),
     radial-gradient(90% 70% at 20% 80%, rgba(255,172,10,.08), transparent 55%)}
.exc-scope .speed-lines{position:absolute;inset:0;opacity:.5}
.exc-scope .pill{position:absolute;border-radius:999px;transform-origin:center}
.exc-scope .pill .grad{width:100%;height:100%;border-radius:999px}
.exc-scope .pill .blur{position:absolute;inset:0;border-radius:999px;filter:blur(2px)}
.exc-scope .g-blue{background:linear-gradient(90deg,var(--blue),#fff)}
.exc-scope .g-amber{background:linear-gradient(90deg,var(--amber),#fff)}
.exc-scope .float{animation:float 9s ease-in-out infinite}
@keyframes float{0%,100%{transform:translate3d(0,0,0) var(--rot)}
    50%{transform:translate3d(6px,-10px,0) var(--rot)}}
.exc-scope .deep-bg{position:absolute;inset:0;background:
     radial-gradient(80% 60% at 50% 40%, rgba(1,117,255,.10), transparent 60%)}
.exc-scope .sweep{position:absolute;left:50%;top:38%;width:640px;height:640px;
    transform:translate(-50%,-50%);border-radius:50%;
    background:conic-gradient(from 0deg,transparent 0deg,rgba(1,117,255,.18) 40deg,transparent 120deg);
    filter:blur(30px);animation:spin 14s linear infinite;}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.exc-scope .dot{position:absolute;border-radius:50%;background:var(--blue)}
.exc-scope .dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;background:var(--blue);filter:blur(6px);opacity:.5}
.exc-scope .pulse{animation:pulse 3.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(.85)}
    50%{opacity:1;transform:scale(1.15)}}
.exc-scope .rings{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);opacity:.5}
.exc-scope .rings circle{fill:none;stroke:rgba(1,117,255,.22)}
.exc-scope .ctrl-bg{position:absolute;inset:0;background:
     radial-gradient(70% 80% at 50% 30%, rgba(1,117,255,.08), transparent 60%)}
.exc-scope .sliders{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);
    display:flex;gap:26px;align-items:center;height:230px;}
.exc-scope .bar{position:relative;width:16px;height:100%;border-radius:999px;
    background:var(--track);border:1px solid rgba(0,0,0,.08);}
.exc-scope .knob{position:absolute;left:50%;width:34px;height:34px;border-radius:50%;
    transform:translate(-50%,-50%);
    background:#fff;
    box-shadow:0 3px 8px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.06);
    display:grid;place-items:center;}
.exc-scope .knob .white{width:22px;height:22px;border-radius:50%;background:#fff}
.exc-scope .knob .glow{position:absolute;width:44px;height:44px;border-radius:50%;
    background:linear-gradient(180deg,var(--blue),var(--amber));
    filter:blur(6px);opacity:.9;z-index:-1;}
.exc-scope .k1{animation:bob1 4.2s ease-in-out infinite}
.exc-scope .k2{animation:bob2 4.2s ease-in-out infinite}
.exc-scope .k3{animation:bob3 4.2s ease-in-out infinite}
@keyframes bob1{0%,100%{top:32%}50%{top:20%}}
@keyframes bob2{0%,100%{top:60%}50%{top:74%}}
@keyframes bob3{0%,100%{top:44%}50%{top:30%}}
.exc-scope .flex-bg{position:absolute;inset:0;background:
     radial-gradient(80% 70% at 50% 30%, rgba(255,172,10,.06), transparent 60%)}
.exc-scope .marquee{position:absolute;left:0;right:0;top:30%;transform:translateY(-50%);
    display:flex;flex-direction:column;gap:16px;
    -webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
            mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.exc-scope .track{display:flex;gap:16px;width:max-content}
.exc-scope .track.a{animation:scrollL 26s linear infinite}
.exc-scope .track.b{animation:scrollR 30s linear infinite}
@keyframes scrollL{to{transform:translateX(-50%)}}
@keyframes scrollR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.exc-scope .chip{flex-shrink:0;width:78px;height:78px;border-radius:20px;
    display:grid;place-items:center;position:relative;
    background:var(--glass);backdrop-filter:blur(10px);
    box-shadow:0 1px 2px rgba(0,0,0,.05),0 8px 16px -8px rgba(0,0,0,.14);}
.exc-scope .chip::before{content:"";position:absolute;inset:0;border-radius:20px;padding:.5px;pointer-events:none;
    background:linear-gradient(320deg,rgba(1,117,255,.35),transparent 55%,rgba(255,205,125,.3));
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;}
.exc-scope .chip svg{width:34px;height:34px;opacity:.85}
.exc-scope .contact{margin-top:16px;border-radius:var(--radius);border:1px solid var(--border);
    background:
      radial-gradient(120% 160% at 50% -30%, rgba(1,117,255,.14), transparent 55%),
      var(--card);
    padding:56px 32px;text-align:center;
    display:flex;flex-direction:column;align-items:center;gap:24px;}
.exc-scope .contact h3{font-family:"Space Grotesk","Inter",sans-serif;
    font-size:clamp(26px,3.4vw,36px);font-weight:600;letter-spacing:-.02em;}
.exc-scope .contact p{color:var(--t-muted);font-size:16px;margin-top:-10px}
.exc-scope .btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.exc-scope .btn{text-decoration:none;font-weight:600;font-size:15px;color:#fff;
    padding:14px 26px;border-radius:15px;display:inline-flex;align-items:center;
    transition:transform .18s ease, filter .18s ease;}
.exc-scope .btn:focus-visible{outline:2px solid var(--amber-2);outline-offset:3px}
.exc-scope .btn.primary{border:1px solid rgba(255,255,255,.4);
    background:#000;
    box-shadow:
      0 2px 4px rgba(0,0,0,.18),
      0 11px 11px -3px rgba(0,0,0,.14),
      inset -4px 3px 9px 0 var(--blue),
      inset 3px -2px 8px 0 var(--amber-2);}
.exc-scope .btn.primary:hover{transform:translateY(-2px);filter:brightness(1.08)}
.exc-scope .btn.secondary{border:1px solid #2f3950;background:#0c0f16;}
.exc-scope .btn.secondary span{background:linear-gradient(277deg,var(--blue),var(--amber-2));
    -webkit-background-clip:text;background-clip:text;color:transparent;}
.exc-scope .btn.secondary:hover{transform:translateY(-2px);border-color:#465170}
html.js .exc-scope .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
html.js .exc-scope .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
.exc-scope *{animation:none!important;transition:none!important}
html.js .exc-scope .reveal{opacity:1!important;transform:none!important}
}
@media (max-width:860px){
.exc-scope .row-top,.exc-scope .row-bot{grid-template-columns:1fr}
.exc-scope .card{min-height:380px}
}

/* ===================== CTA + FOOTER  (.cf-scope) ===================== */
.cf-scope{--bg:#ffffff; --bg-2:#f8f9fa; --surface:#ffffff;
  --line:rgba(0,0,0,.10); --line-2:rgba(0,0,0,.16);
  --ink:#1a1a1a; --ink-2:#5f6368; --mute:#80868b;
  --accent:#0175FF; --gold:#FFCD7D; --brand:#0175FF;
  --r:16px; --pad:clamp(20px,5vw,64px); --maxw:1280px;}
.cf-scope *{margin:0;padding:0;box-sizing:border-box}
.cf-scope{background:var(--bg);color:var(--ink);font-family:'Inter','Pretendard',sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
.cf-scope a{color:inherit;text-decoration:none}
.cf-scope img{max-width:100%;display:block}
.cf-scope .mono{font-family:'JetBrains Mono',monospace}
.cf-scope .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.cf-scope .sec{padding-block:clamp(78px,12vh,148px)}
.cf-scope h2{font-family:'Inter','Pretendard',sans-serif;font-weight:700;letter-spacing:-.03em;line-height:1.12}
.cf-scope .h2{font-size:clamp(30px,4.6vw,58px)}
.cf-scope .eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);display:inline-flex;align-items:center;gap:8px}
.cf-scope .eyebrow::before{content:"";width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px var(--accent)}
html.js .cf-scope .rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
html.js .cf-scope .rv.in{opacity:1;transform:none}
.cf-scope .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14.5px;font-weight:600;padding:13px 24px;border-radius:14px;cursor:pointer;transition:transform .18s cubic-bezier(.2,.7,.3,1),background .25s,border-color .25s,box-shadow .25s,filter .25s;font-family:'Pretendard',sans-serif}
.cf-scope .btn-primary{color:#fff;border:1px solid rgba(120,170,255,.5);background:linear-gradient(180deg,#2b90ff 0%,#0175ff 52%,#0166e6 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -7px 12px -6px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.3),0 10px 26px -8px rgba(1,117,255,.6)}
.cf-scope .btn-primary:hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 2px 4px rgba(0,0,0,.3),0 14px 32px -8px rgba(1,117,255,.7)}
.cf-scope .btn-primary:active{transform:scale(.97)}
.cf-scope .cta-box{border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:clamp(40px,7vw,80px);text-align:center;position:relative;overflow:hidden;background:radial-gradient(120% 160% at 50% -30%,rgba(1,117,255,.18),transparent 55%),radial-gradient(80% 90% at 50% 125%,rgba(255,205,125,.08),transparent 60%),var(--surface);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 70px -30px rgba(0,0,0,.7)}
.cf-scope .cta-box h2{max-width:20ch;margin:0 auto}
.cf-scope .cta-box p{color:var(--ink-2);max-width:48ch;margin:20px auto 34px}
.cf-scope .subscribe{display:flex;gap:10px;max-width:480px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.cf-scope .subscribe input{flex:1;min-width:220px;background:var(--bg);border:1px solid var(--line-2);border-radius:100px;padding:13px 20px;color:var(--ink);font-family:inherit;font-size:14px}
.cf-scope .subscribe input:focus{outline:none;border-color:var(--accent)}

/* ---- Contact form (replaces the single-field subscribe) ---- */
.cf-scope .contact-form{max-width:560px;margin:38px auto 0;text-align:left;display:flex;flex-direction:column;gap:16px}
.cf-scope .cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf-scope .cf-field{display:flex;flex-direction:column;gap:8px}
.cf-scope .cf-field label{font-size:12.5px;font-weight:600;color:var(--ink-2);letter-spacing:.01em}
.cf-scope .cf-field .req{color:var(--accent)}
.cf-scope .contact-form input,
.cf-scope .contact-form textarea,
.cf-scope .contact-form select{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:12px;
  padding:13px 15px;color:var(--ink);font-family:inherit;font-size:14px;line-height:1.5;
  transition:border-color .2s,box-shadow .2s,background .2s}
.cf-scope .contact-form textarea{resize:vertical;min-height:108px}
.cf-scope .contact-form input::placeholder,
.cf-scope .contact-form textarea::placeholder{color:var(--mute)}
.cf-scope .contact-form input:focus,
.cf-scope .contact-form textarea:focus,
.cf-scope .contact-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(1,117,255,.16)}
.cf-scope .contact-form .invalid{border-color:#ff6b6b!important;box-shadow:0 0 0 3px rgba(255,107,107,.15)!important}
.cf-scope .cf-select{position:relative}
.cf-scope .cf-select select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;cursor:pointer}
.cf-scope .cf-select svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;
  stroke:var(--mute);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.cf-scope .cf-consent{display:flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:13px;color:var(--ink-2);line-height:1.45;user-select:none}
.cf-scope .cf-consent b{font-weight:500;color:var(--mute)}
.cf-scope .cf-consent span{display:block}
.cf-scope .cf-consent input{appearance:none;-webkit-appearance:none;-moz-appearance:none;
  width:16px;height:16px;min-width:16px;flex:0 0 16px;margin-top:2px;padding:0;
  border:1px solid var(--line-2);border-radius:5px;background:var(--bg);cursor:pointer;position:relative;
  transition:background .2s,border-color .2s}
.cf-scope .cf-consent input:checked{background:var(--accent);border-color:var(--accent)}
.cf-scope .cf-consent input:checked::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.cf-scope .cf-consent input.invalid{border-color:#ff6b6b!important;box-shadow:0 0 0 3px rgba(255,107,107,.15)!important}
.cf-scope .cf-consent input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* ---- attachment dropzone (matches the form inputs) ---- */
.cf-scope .cf-hint{font-weight:400;color:var(--mute);font-size:11.5px;letter-spacing:0}
.cf-scope .cf-file{position:relative;display:flex;align-items:center;gap:10px;cursor:pointer;
  background:var(--bg);border:1px dashed var(--line-2);border-radius:12px;padding:13px 15px;
  color:var(--mute);font-size:14px;transition:border-color .2s,background .2s,color .2s}
.cf-scope .cf-file input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.cf-scope .cf-file:hover{border-color:var(--accent);color:var(--ink-2)}
.cf-scope .cf-file.dragover{border-color:var(--accent);background:rgba(1,117,255,.08);color:var(--ink)}
.cf-scope .cf-file.has-file{border-style:solid;color:var(--ink)}
.cf-scope .cf-file.invalid{border-color:#ff6b6b!important;background:rgba(255,107,107,.06)}
.cf-scope .cf-file-ic{width:18px;height:18px;flex:0 0 auto;color:var(--accent)}
.cf-scope .cf-file-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-scope .cf-file-clear{flex:0 0 auto;position:relative;z-index:2;width:22px;height:22px;border-radius:6px;
  border:1px solid var(--line-2);background:rgba(0,0,0,.04);color:var(--ink-2);font-size:15px;line-height:1;cursor:pointer;
  transition:background .2s,color .2s}
.cf-scope .cf-file-clear:hover{background:rgba(255,107,107,.16);color:#ff8a8a;border-color:rgba(255,107,107,.4)}
.cf-scope .cf-submit{width:100%;margin-top:6px;padding:15px 24px;font-size:15px}
.cf-scope .cf-submit[disabled]{opacity:.6;cursor:not-allowed}
.cf-scope .cf-status{min-height:20px;font-size:13.5px;text-align:center;margin:0;color:var(--mute)}
.cf-scope .cf-status.ok{color:#4fd08a}
.cf-scope .cf-status.err{color:#ff8a8a}
@media (max-width:560px){
  .cf-scope .cf-row{grid-template-columns:1fr}
}

/* ---- Get in touch (two-column contact panel + bottom-left QR) ---- */
.cf-scope .git-panel{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:24px;
  padding:clamp(30px,4.6vw,60px);
  background:radial-gradient(120% 150% at 10% -20%,rgba(1,117,255,.06),transparent 55%),
             radial-gradient(90% 90% at 100% 120%,rgba(255,205,125,.05),transparent 60%),var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 30px 60px -30px rgba(0,0,0,.18)}
.cf-scope .git-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(32px,5vw,64px);align-items:stretch}
.cf-scope .git-intro{display:flex;flex-direction:column;text-align:left}
.cf-scope .git-intro .eyebrow{margin-bottom:20px}
.cf-scope .git-intro h2{font-size:clamp(30px,3.6vw,46px);line-height:1.12;margin:0 0 20px;word-break:keep-all}
.cf-scope .git-lead{color:var(--ink-2);font-size:15px;line-height:1.7;max-width:40ch;margin-bottom:30px;word-break:keep-all}
.cf-scope .git-meta{list-style:none;display:flex;flex-direction:column;gap:14px;margin:0 0 32px;padding:0}
.cf-scope .git-meta li{display:flex;flex-direction:column;gap:3px}
.cf-scope .git-meta li span{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.cf-scope .git-meta li a,.cf-scope .git-meta li b{font-size:15px;color:var(--ink);font-weight:600}
.cf-scope .git-meta li a{transition:color .2s}
.cf-scope .git-meta li a:hover{color:var(--accent)}
/* QR reads as a framed glass mini-card in the same family as the site's cards/chips —
   gradient hairline border, blue/gold inset glow — and, now that it's clickable, gains a
   hover lift + glow, a scan-light sweep across the code, and an arrow cue on the link. */
.cf-scope .git-qr-list{margin-top:auto;display:flex;flex-direction:column;gap:16px}
.cf-scope .git-qr{position:relative;display:flex;align-items:center;gap:16px;
  padding:16px;border-radius:16px;overflow:hidden;
  background:rgba(0,0,0,.02);border:1px solid var(--line);
  box-shadow:0 1px 2px rgba(0,0,0,.03)}
.cf-scope .git-qr::before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;pointer-events:none;
  background:linear-gradient(320deg,rgba(1,117,255,.18),transparent 45%,transparent 60%,rgba(255,205,125,.22));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.cf-scope .git-qr-code{flex:0 0 auto;position:relative;display:block;background:#f6f8fd;padding:9px;border-radius:12px;overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(1,117,255,.14),0 10px 24px -10px rgba(1,117,255,.5);
  transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s ease}
.cf-scope .git-qr-code img{display:block;width:84px;height:84px;border-radius:3px}
.cf-scope .git-qr-code::after{content:"";position:absolute;left:0;right:0;top:-45%;height:40%;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,transparent,rgba(1,117,255,.4),transparent)}
.cf-scope .git-qr-code:hover{transform:translateY(-2px) scale(1.02);
  box-shadow:inset 0 0 0 1px rgba(1,117,255,.3),0 16px 32px -10px rgba(1,117,255,.72)}
.cf-scope .git-qr-code:hover::after{opacity:1;animation:git-qr-scan 1.5s ease-in-out infinite}
@keyframes git-qr-scan{0%{top:-45%}100%{top:105%}}
.cf-scope .git-qr-txt{display:flex;flex-direction:column;gap:3px;line-height:1.3}
.cf-scope .git-qr-txt small{font-size:11px;color:var(--mute);letter-spacing:.02em}
.cf-scope .git-qr-link{display:inline-flex;align-items:center;gap:5px;width:max-content}
.cf-scope .git-qr-link b{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--ink);font-weight:600;transition:color .2s}
.cf-scope .git-qr-link::after{content:"\2197";font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--mute);transition:color .2s,transform .2s}
.cf-scope .git-qr-link:hover b{color:var(--accent)}
.cf-scope .git-qr-link:hover::after{color:var(--accent);transform:translate(2px,-2px)}
.cf-scope .git-grid .contact-form{max-width:none;margin:0}
@media (max-width:820px){
  .cf-scope .git-grid{grid-template-columns:1fr;gap:36px}
  .cf-scope .git-qr-list{margin-top:30px}
}
@media (max-width:480px){
  .cf-scope .git-qr{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
  .cf-scope .git-qr-code,.cf-scope .git-qr-code:hover{transform:none}
  .cf-scope .git-qr-code:hover::after{animation:none;opacity:0}
}
.cf-scope footer{border-top:1px solid var(--line);padding-block:64px 40px;background:var(--bg-2)}

/* ===================== DOWNLOAD / QR  (.download-scope) — above footer ===================== */
/* Reuses the .cf-scope tokens (--surface/--line/--accent/--gold/--ink/--mute) so this card
   matches the consultation "cta-box" card above it. */
.download-scope *{box-sizing:border-box;margin:0;padding:0}
.download-scope{padding-block:0 clamp(60px,9vh,110px)}
.download-scope .download{
  border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:clamp(40px,7vw,80px);
  position:relative;overflow:hidden;
  background:radial-gradient(120% 160% at 50% -30%,rgba(1,117,255,.18),transparent 55%),radial-gradient(80% 90% at 50% 125%,rgba(255,205,125,.08),transparent 60%),var(--surface);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 70px -30px rgba(0,0,0,.7);
  color:var(--ink);font-family:'Inter','Pretendard',sans-serif;-webkit-font-smoothing:antialiased;
}
.download-scope .download__grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(32px,5vw,72px)}
.download-scope .dl-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
  font-family:'Inter','Pretendard',sans-serif;
  padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);margin-bottom:22px}
.download-scope .dl-eyebrow .dl-dot{width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--gold));box-shadow:0 0 10px var(--accent)}
.download-scope h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(30px,4.4vw,52px);line-height:1.15;letter-spacing:-.02em;margin-bottom:18px;color:var(--ink);word-break:keep-all}
.download-scope h2 .grad{background:linear-gradient(100deg,var(--accent) 10%,var(--gold) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.download-scope p.sub{color:var(--ink-2);font-size:clamp(15px,1.6vw,17px);line-height:1.6;max-width:44ch;margin-bottom:34px;word-break:keep-all}
.download-scope .stores{display:flex;flex-wrap:wrap;gap:14px}
.download-scope .store-btn{
  display:inline-flex;align-items:center;gap:12px;padding:14px 22px;border-radius:15px;text-decoration:none;color:var(--ink);
  background:var(--surface);border:1px solid rgba(255,255,255,.14);
  box-shadow:0 .8px .8px -.75px rgba(0,0,0,.18),0 11px 11px -3px rgba(0,0,0,.14),0 28px 28px -3.75px rgba(0,0,0,.06),
    inset -4px 3px 9px 0 rgba(1,117,255,.55),inset 3px -2px 8px 0 rgba(255,205,125,.55);
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.download-scope .store-btn:hover{transform:translateY(-2px);filter:brightness(1.08);
  box-shadow:0 12px 24px -6px rgba(1,117,255,.35),inset -4px 3px 12px 0 rgba(1,117,255,.75),inset 3px -2px 11px 0 rgba(255,205,125,.75)}
.download-scope .store-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.download-scope .store-btn svg{width:24px;height:24px;flex-shrink:0}
.download-scope .store-btn .txt{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.download-scope .store-btn .txt small{font-size:10px;letter-spacing:.05em;color:var(--mute);text-transform:uppercase}
.download-scope .store-btn .txt strong{font-size:16px;font-weight:600;font-family:'Space Grotesk',sans-serif}
.download-scope .qr-wrap{display:flex;justify-content:center}
.download-scope .qr-card{
  position:relative;width:clamp(224px,26vw,272px);border-radius:24px;padding:26px 26px 24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  background:var(--surface);border:1px solid rgba(255,255,255,.14);
  box-shadow:
    0 .8px .8px -.75px rgba(0,0,0,.18),
    0 11px 11px -3px rgba(0,0,0,.14),
    0 28px 40px -14px rgba(0,0,0,.55),
    inset -4px 3px 9px 0 rgba(1,117,255,.4),
    inset 3px -2px 8px 0 rgba(255,205,125,.4);
  transition:transform .25s cubic-bezier(.2,.7,.3,1),filter .25s ease,box-shadow .25s ease;
}
.download-scope .qr-card:hover{transform:translateY(-4px);filter:brightness(1.05);
  box-shadow:
    0 .8px .8px -.75px rgba(0,0,0,.18),
    0 16px 32px -10px rgba(1,117,255,.35),
    inset -4px 3px 12px 0 rgba(1,117,255,.62),
    inset 3px -2px 11px 0 rgba(255,205,125,.62)}
.download-scope .qr-card::before{
  content:"";position:absolute;inset:0;border-radius:24px;padding:1px;
  background:linear-gradient(320deg,rgba(255,255,255,.28),transparent 45%,transparent 60%,rgba(255,205,125,.2));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.download-scope .qr-code{position:relative;background:#f6f8fd;padding:14px;border-radius:16px;display:grid;place-items:center;
  box-shadow:inset 0 0 0 1px rgba(1,117,255,.14),0 10px 26px -8px rgba(1,117,255,.5)}
.download-scope .qr-code img{display:block;width:168px;height:168px;border-radius:4px}
.download-scope .qr-label{font-size:13px;color:var(--ink-2);text-align:center;letter-spacing:.02em;line-height:1.55}
.download-scope .qr-label b{color:var(--ink);font-weight:600;font-family:'JetBrains Mono',monospace;font-size:12.5px}
@media (max-width:760px){
  .download-scope .download__grid{grid-template-columns:1fr;text-align:center}
  .download-scope p.sub{margin-left:auto;margin-right:auto}
  .download-scope .dl-eyebrow{margin-left:auto;margin-right:auto}
  .download-scope .stores{justify-content:center}
  .download-scope .qr-card{margin-top:8px}
  .download-scope .qr-card:hover{transform:none;filter:none}
}
@media (prefers-reduced-motion:reduce){
  .download-scope *{transition:none!important}
}
.cf-scope .logo{display:flex;align-items:center;gap:10px}
.cf-scope .logo-img{height:20px;width:auto;display:block}
.cf-scope .foot-brand .logo-img{height:24px}
.cf-scope .foot-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.cf-scope .foot-brand p{color:var(--ink-2);font-size:14px;max-width:36ch;margin-top:18px}
.cf-scope .foot-col h4{font-family:'JetBrains Mono';font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:18px}
.cf-scope .foot-col a{display:block;color:var(--ink-2);font-size:14px;padding:6px 0;transition:color .25s}
.cf-scope .foot-col a:hover{color:var(--ink)}
.cf-scope .foot-big{font-family:'Space Grotesk';font-weight:700;font-size:clamp(50px,14vw,190px);letter-spacing:-.04em;line-height:.8;text-align:center;margin-top:40px;user-select:none;-webkit-text-stroke:1px var(--line-2);color:transparent}
.cf-scope .foot-bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:32px;font-size:13px;color:var(--mute)}
@media(max-width:900px){
.cf-scope .foot-top{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
.cf-scope .foot-top{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
.cf-scope .rv{opacity:1;transform:none}
}

/* ===================== TOUR  (.tour-scope) — .driver* stays global (popovers mount on <body>) ===================== */
.tour-scope *{box-sizing:border-box;margin:0;padding:0}
.tour-scope{min-height:auto;
  font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  background:
    radial-gradient(1100px 620px at 50% -8%, rgba(1,117,255,.06), transparent 62%),
    #ffffff;
  display:flex;flex-direction:column;align-items:center;padding:60px 18px 70px}
.tour-scope .caption{text-align:center;color:#5f6368;font-size:15px;margin-bottom:18px;letter-spacing:-.2px}
.tour-scope .caption b{color:#0175ff;font-weight:600}
.tour-scope .stage{width:min(1560px,96vw)}
.tour-scope .laptop{position:relative;width:100%;aspect-ratio:6000/4500}
.tour-scope .screen-wrap{position:absolute;left:15.667%;top:17.8%;width:69.5%;height:60.111%;
  z-index:1;overflow:hidden;border-radius:7px;background:#06070c}
.tour-scope .screen-inner{position:absolute;top:0;left:0;width:1280px;height:830px;transform-origin:top left}
.tour-scope .screen-shot{position:absolute;inset:0;width:1280px;height:830px;object-fit:contain;object-position:center;display:block}
.tour-scope .bezel{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;
  filter:drop-shadow(0 38px 80px rgba(0,0,0,.45))}
.tour-scope .hotspot{position:absolute;pointer-events:none}
.tour-scope #h-kpi{left:253px;top:48px;width:904px;height:76px}
.tour-scope #h-menu{left:106px;top:54px;width:127px;height:483px}
.tour-scope #h-channel{left:256px;top:138px;width:540px;height:187px}
.tour-scope #h-expiry{left:256px;top:339px;width:540px;height:212px}
.tour-scope #h-vehicle{left:807px;top:339px;width:353px;height:212px}
.tour-scope #h-ai{left:256px;top:568px;width:449px;height:181px}
.tour-scope #h-alert{left:716px;top:568px;width:444px;height:201px}
.tour-scope .tour-launch{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:5%;
  background:rgba(4,7,14,.34);
  -webkit-backdrop-filter:blur(9px) saturate(140%);backdrop-filter:blur(9px) saturate(140%);
  transition:opacity .32s ease}
.tour-scope .tour-launch.hide{opacity:0;pointer-events:none}
.tour-scope .tour-launch-card{position:relative;width:600px;max-width:88%;text-align:center;
  padding:44px 44px 34px;border-radius:26px;
  background:rgba(20,28,44,.5);
  -webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 34px 90px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.24)}
.tour-scope .tour-launch-card::before{content:"";position:absolute;inset:0;border-radius:26px;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,255,255,.16),transparent 46%)}
.tour-scope .tl-mark{width:84px;height:84px;border-radius:24px;margin:0 auto 22px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,#e2743a,#c6571f);
  box-shadow:0 12px 30px rgba(198,87,31,.42),inset 0 1px 0 rgba(255,255,255,.4)}
.tour-scope .tl-mark svg{width:42px;height:42px}
.tour-scope .tour-launch-card h2{font-size:30px;font-weight:800;color:#fff;letter-spacing:-.5px}
.tour-scope .tour-launch-card p{font-size:18px;color:#c4d2e6;line-height:1.7;margin:16px 0 30px}
.tour-scope .tl-start{position:relative;width:100%;color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:16px;
  background:linear-gradient(180deg,rgba(226,116,58,.96),rgba(198,87,31,.96));
  padding:19px;font-size:19px;font-weight:800;cursor:pointer;
  box-shadow:0 12px 30px rgba(198,87,31,.42),inset 0 1px 0 rgba(255,255,255,.35);
  transition:filter .15s,transform .15s}
.tour-scope .tl-start:hover{filter:brightness(1.07);transform:translateY(-1px)}
.tour-scope .tl-skip{width:100%;background:none;border:none;color:#8ea1bd;font-size:16px;
  padding:16px 10px 2px;cursor:pointer;transition:color .15s}
.tour-scope .tl-skip:hover{color:#cfe0f5}
.tour-scope .tour-reopen{position:absolute;right:18px;bottom:16px;z-index:6;display:none;align-items:center;gap:8px;
  padding:12px 18px;border-radius:13px;cursor:pointer;font-size:15px;font-weight:700;color:#e3edfa;
  background:rgba(20,28,44,.55);border:1px solid rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%)}
.tour-scope .tour-reopen svg{width:17px;height:17px}
.driver-popover.sw-big{background:rgba(18,26,42,.92);color:#eaf1fb;
  -webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);
  border:1px solid rgba(255,255,255,.18);border-radius:18px;
  max-width:440px;padding:26px 28px;
  box-shadow:0 28px 80px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.16)}
.driver-popover.sw-big .driver-popover-title{font-size:24px;font-weight:800;color:#fff;line-height:1.3;margin-bottom:10px}
.driver-popover.sw-big .driver-popover-description{font-size:17.5px;line-height:1.72;color:#c6d4e8}
.driver-popover.sw-big .driver-popover-progress-text{font-size:15px;color:#93a5c1}
.driver-popover.sw-big .driver-popover-footer{margin-top:20px;gap:12px}
.driver-popover.sw-big .driver-popover-footer button{font-size:16px;font-weight:700;padding:12px 20px;border-radius:12px;text-shadow:none;
  background:rgba(255,255,255,.08);color:#dbe6f5;border:1px solid rgba(255,255,255,.2)}
.driver-popover.sw-big .driver-popover-footer button:hover{background:rgba(255,255,255,.16)}
.driver-popover.sw-big .driver-popover-next-btn{background:linear-gradient(180deg,#e2743a,#c6571f)!important;color:#fff!important;border:none!important;
  box-shadow:0 8px 20px rgba(198,87,31,.4)}
.driver-popover.sw-big .driver-popover-next-btn:hover{filter:brightness(1.08)}
.driver-popover.sw-big .driver-popover-close-btn{color:#9fb0cc;font-size:26px}
.driver-popover.sw-big .driver-popover-arrow-side-left.driver-popover-arrow{border-left-color:rgba(18,26,42,.92)}
.driver-popover.sw-big .driver-popover-arrow-side-right.driver-popover-arrow{border-right-color:rgba(18,26,42,.92)}
.driver-popover.sw-big .driver-popover-arrow-side-top.driver-popover-arrow{border-top-color:rgba(18,26,42,.92)}
.driver-popover.sw-big .driver-popover-arrow-side-bottom.driver-popover-arrow{border-bottom-color:rgba(18,26,42,.92)}

/* ===================== SECTION MERGE OVERRIDES ===================== */
/* Tour was mobile-hidden in the original iframe shell; keep that here.
   Placed last so it beats the section's own .tour-scope{display:flex}. */
@media (max-width:1024px){ .tour-scope{ display:none !important } }

/* ===================== FOOTER  (.sfoot) — minimal premium redesign =====================
   Self-contained (own tokens, own class prefix) so it doesn't inherit .cf-scope's tech/mono
   styling; only this block should ever need to change when the footer is revisited. */
.sfoot{
  --sf-bg:#fafaf8;
  --sf-ink:#1a1a1a;
  --sf-mute:#8a8a86;
  --sf-line:rgba(0,0,0,.08);
  background:var(--sf-bg);
  border-top:1px solid var(--sf-line);
  font-family:'Inter','Pretendard',sans-serif;
  color:var(--sf-ink);
  overflow:hidden;
}
.sfoot *{box-sizing:border-box}
.sfoot a{color:inherit}
.sfoot-wrap{max-width:1280px;margin:0 auto;
  padding:clamp(64px,9vw,120px) clamp(24px,5vw,64px) clamp(40px,6vw,72px);}

.sfoot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:clamp(32px,5vw,64px);padding-bottom:clamp(56px,8vw,96px);}
.sfoot-brand{display:flex;flex-direction:column;gap:18px}
.sfoot-logo{height:22px;width:auto;display:block}
.sfoot-tagline{font-size:clamp(15px,1.4vw,17px);color:var(--sf-mute);line-height:1.6;
  max-width:32ch;font-weight:400}
.sfoot-col{display:flex;flex-direction:column;gap:12px}
.sfoot-label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sf-mute);margin-bottom:4px}
.sfoot-line{font-size:14.5px;color:var(--sf-ink);opacity:.82;text-decoration:none;
  transition:opacity .25s ease}
a.sfoot-line:hover{opacity:1}

/* Giant wordmark — letters sit almost flush with the page color and are carved out purely
   with two whisper-soft text-shadows: a top-left highlight (light catching the near wall of
   the impression) and a bottom-right shadow (the far wall falling into shade). No gradients,
   no bevel filter, no metal — just enough contrast to read as pressed into the surface. */
.sfoot-wordmark{
  text-align:center;
  font-family:'Space Grotesk','Inter',sans-serif;
  font-weight:600;
  font-size:clamp(64px,13vw,220px);
  letter-spacing:-.03em;
  line-height:1;
  margin:0;
  user-select:none;
  color:#efeeea;
  text-shadow:-1px -1px 1px rgba(255,255,255,.9), 1px 1.5px 2px rgba(20,20,20,.09);
}

.sfoot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  padding-top:clamp(32px,5vw,48px);margin-top:clamp(32px,5vw,48px);
  border-top:1px solid var(--sf-line);
  font-size:13px;color:var(--sf-mute)}

html.js .sfoot .reveal{opacity:0;transform:translateY(20px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
html.js .sfoot .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.js .sfoot .reveal{opacity:1!important;transform:none!important}
  .sfoot-wordmark{transition:none!important}
}
@media (max-width:900px){
  .sfoot-top{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .sfoot-top{grid-template-columns:1fr;gap:36px;text-align:left}
  .sfoot-bottom{flex-direction:column;gap:6px}
}
