/* ============================================================
   Speedy Tech MSP — Stack Final design system
   Dark + Light scenes · Adaptive nav · Logo navy + blue accent
   ============================================================ */
:root{
  /* Light system */
  --bg-light:#ffffff;
  --bg-light-2:#f6f8fc;
  --bg-light-3:#eef1f8;
  --surface-light:#ffffff;
  --navy:#15203f;
  --navy-2:#283460;
  --ink-2:#384668;
  --ink-3:#6a7493;
  --ink-4:#a0a8bf;
  --rule-light:#e5e8f0;
  --rule-light-2:#d8dde9;

  /* Dark system */
  --bg-dark:#0a0d18;
  --bg-dark-2:#11141f;
  --surface-dark:#171a26;
  --white:#ffffff;
  --white-2:rgba(255,255,255,.82);
  --white-3:rgba(255,255,255,.6);
  --white-4:rgba(255,255,255,.4);
  --rule-dark:rgba(255,255,255,.12);
  --rule-dark-2:rgba(255,255,255,.22);

  /* Accent — bridge blue */
  --blue:#2674d8;
  --blue-2:#4d97e8;
  --blue-soft:rgba(38,116,216,.12);
  --blue-glow:rgba(38,116,216,.45);

  /* Status colors */
  --green:#10b981;
  --yellow:#f59e0b;
  --red:#ef4444;

  /* Shadows */
  --shadow-sm:0 4px 14px rgba(21,32,63,.06);
  --shadow:0 14px 36px rgba(21,32,63,.1);
  --shadow-lg:0 30px 70px rgba(21,32,63,.16);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;}
html,body{font-family:'Plus Jakarta Sans',-apple-system,system-ui,sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;background:var(--bg-light);color:var(--navy);}
body{overflow-x:hidden;}
::selection{background:var(--blue);color:#fff;}
a{color:inherit;text-decoration:none;}
img,video{display:block;max-width:100%;}
.mono{font-family:'JetBrains Mono',monospace;letter-spacing:.04em;}

/* ============================================================
   ADAPTIVE NAV — theme flips between dark/light by scene context
   ============================================================ */
.nav-shell{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:18px 32px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid transparent;transition:background .3s ease, border-color .3s ease, box-shadow .3s ease, transform .35s ease;}
/* nav background now driven by .scrolled (Midland-style scroll header) */
.nav-wrap{max-width:1400px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:18px;letter-spacing:-.025em;color:#fff;transition:color .4s ease;}
.nav-logo img{height:42px;width:auto;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));transition:filter .4s ease;}
[data-nav-theme="light"] .nav-logo{color:var(--navy);}
[data-nav-theme="light"] .nav-logo img{filter:none;}
.nav-desktop{display:flex;gap:30px;align-items:center;}
.nav-link{font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.82);transition:color .25s;position:relative;padding:6px 0;}
.nav-link:hover{color:#fff;}
.nav-link.active{color:#fff;font-weight:600;}
.nav-link.active::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--blue);border-radius:2px;}
[data-nav-theme="light"] .nav-link{color:var(--ink-2);}
[data-nav-theme="light"] .nav-link:hover{color:var(--navy);}
[data-nav-theme="light"] .nav-link.active{color:var(--navy);}
.nav-dropdown{position:relative;}
.nav-drop-btn{background:none;border:none;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.82);display:inline-flex;align-items:center;gap:6px;padding:6px 0;transition:color .25s;}
[data-nav-theme="light"] .nav-drop-btn{color:var(--ink-2);}
.nav-shell .nav-drop-btn:hover{color:#fff;}
[data-nav-theme="light"] .nav-shell .nav-drop-btn:hover{color:var(--navy);}
.nav-drop-btn svg{opacity:.7;transition:opacity .2s, transform .2s;}
.nav-dropdown:hover .nav-drop-btn svg{opacity:1;transform:rotate(180deg);}

.nav-drop-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-6px);background:rgba(255,255,255,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--rule-light);border-radius:14px;padding:10px;min-width:240px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;}
.nav-dropdown:hover .nav-drop-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.nav-drop-menu::before{content:"";position:absolute;top:-16px;left:-8px;right:-8px;height:18px;background:transparent;pointer-events:auto;}
.nav-dropdown{padding-bottom:6px;}

.nav-drop-item{display:block;padding:9px 14px;font-size:13.5px;color:var(--ink-2);border-radius:8px;transition:background .15s, color .15s;}
.nav-drop-item:hover{background:var(--blue-soft);color:var(--blue);}
.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff !important;padding:11px 20px;border-radius:999px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:-.005em;transition:background .2s, transform .2s, box-shadow .2s;box-shadow:0 6px 18px rgba(38,116,216,.32);}
.nav-cta:hover{background:var(--blue-2);transform:scale(1.04);box-shadow:0 12px 28px rgba(38,116,216,.5);}
.nav-burger{display:none;width:42px;height:42px;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:10px;cursor:pointer;transition:all .25s;}
.nav-burger span,.nav-burger span::before,.nav-burger span::after{display:block;width:18px;height:2px;background:#fff;border-radius:2px;}
.nav-burger span{position:relative;}
.nav-burger span::before,.nav-burger span::after{content:"";position:absolute;left:0;}
.nav-burger span::before{top:-6px;}
.nav-burger span::after{top:6px;}
[data-nav-theme="light"] .nav-burger{background:rgba(21,32,63,.05);border-color:rgba(21,32,63,.15);}
[data-nav-theme="light"] .nav-burger span,
[data-nav-theme="light"] .nav-burger span::before,
[data-nav-theme="light"] .nav-burger span::after{background:var(--navy);}

.nav-drawer{position:fixed;top:0;right:0;bottom:0;width:86%;max-width:380px;background:#fff;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.7,.2,1);z-index:90;padding:90px 28px 40px;box-shadow:-20px 0 50px rgba(21,32,63,.18);overflow-y:auto;}
.nav-drawer.open{transform:translateX(0);}
.nav-drawer a{display:block;padding:14px 0;border-bottom:1px solid var(--rule-light);color:var(--navy);font-weight:500;font-size:15px;}
.drawer-group-label{padding:14px 0 6px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;border-bottom:1px solid var(--rule-light);}
.drawer-indent{padding-left:16px !important;font-size:14px !important;color:var(--ink-2) !important;}

/* ============================================================
   SCROLL PROGRESS · DOT NAV · FLOATING CTA
   ============================================================ */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:rgba(255,255,255,.06);z-index:90;transition:background .4s ease;}
[data-nav-theme="light"] .scroll-progress{background:rgba(21,32,63,.08);}
.scroll-progress-fill{height:100%;width:0%;background:var(--blue);transition:width .08s linear;box-shadow:0 0 10px var(--blue);}

.dot-nav{position:fixed;right:32px;top:50%;transform:translateY(-50%);z-index:70;display:flex;flex-direction:column;gap:14px;}
.dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.22);cursor:pointer;position:relative;transition:background .25s, transform .25s;border:none;padding:0;}
[data-nav-theme="light"] .dot{background:rgba(21,32,63,.22);}
.dot:hover{background:rgba(255,255,255,.6);transform:scale(1.3);}
[data-nav-theme="light"] .dot:hover{background:rgba(21,32,63,.55);}
.dot.active{background:var(--blue);box-shadow:0 0 14px var(--blue-glow);}
.dot::before{content:attr(data-label);position:absolute;right:22px;top:50%;transform:translateY(-50%);font-family:'JetBrains Mono',monospace;font-size:10.5px;color:rgba(255,255,255,.7);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity .25s, color .4s;pointer-events:none;}
[data-nav-theme="light"] .dot::before{color:var(--ink-3);}
.dot:hover::before, .dot.active::before{opacity:1;}
.dot.active::before{color:var(--blue);}

.float-cta{display:none !important;position:fixed;right:32px;bottom:32px;z-index:70;display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff !important;padding:14px 22px;border-radius:999px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;font-weight:600;box-shadow:0 14px 36px rgba(38,116,216,.45);transition:transform .25s, box-shadow .25s, opacity .4s ease;opacity:0;pointer-events:none;}
.float-cta.visible{opacity:1;pointer-events:auto;}
.float-cta:hover{transform:scale(1.05) translateY(-2px);box-shadow:0 20px 50px rgba(38,116,216,.6);}

/* ============================================================
   SCENE SYSTEM — full-bleed videos with adaptive dark/light
   ============================================================ */
.scene{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;}
.scene-video{position:absolute;inset:0;z-index:0;}
.scene-video video{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:kenBurns 28s ease-in-out infinite alternate;}
@keyframes kenBurns{
  0%{transform:scale(1.05) translate(0,0);}
  50%{transform:scale(1.12) translate(-1%, -.8%);}
  100%{transform:scale(1.08) translate(1%, .8%);}
}
.scene-overlay{position:absolute;inset:0;z-index:1;}
.scene-content{position:relative;z-index:5;width:100%;max-width:1300px;margin:0 auto;padding:140px 7vw 100px;}

.scene .eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:'JetBrains Mono',monospace;font-size:14px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:30px;font-weight:700;color:var(--blue);}
.scene .eyebrow::before{content:"";width:32px;height:1px;background:var(--blue);}
.scene h1, .scene h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;letter-spacing:-.04em;line-height:.96;}
.scene h1{font-size:clamp(40px,5.6vw,84px);max-width:1080px;margin-bottom:24px;line-height:1.02;}
.scene h2{font-size:clamp(36px,4.8vw,68px);max-width:920px;margin-bottom:22px;line-height:1.04;}
.scene p.lead{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(18px,1.5vw,22px);font-weight:400;max-width:640px;line-height:1.55;margin-bottom:44px;}
.scene-ctas{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}

/* DARK SCENE */
.scene-dark{background:var(--bg-dark);color:var(--white);}
.scene-dark .scene-video video{filter:saturate(.88) contrast(1.05) brightness(.72);}
.scene-dark h1, .scene-dark h2{color:#fff;}
.scene-dark h1 em, .scene-dark h2 em{font-style:normal;background:linear-gradient(120deg,#fff,var(--blue-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.scene-dark p.lead{color:var(--white-2);}

/* LIGHT SCENE */
.scene-light{background:var(--bg-light);color:var(--navy);}
.scene-light .scene-video video{filter:saturate(.85) contrast(1.02) brightness(1.04);}
.scene-light h1, .scene-light h2{color:var(--navy);}
.scene-light h1 em, .scene-light h2 em{font-style:normal;background:linear-gradient(120deg,var(--navy),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.scene-light p.lead{color:var(--ink-2);}
.scene-light .eyebrow{color:var(--blue);}

/* Common scene overlays — use these classes on .scene-overlay */
.ov-hero-dark{background:linear-gradient(180deg, rgba(10,13,24,.72) 0%, rgba(10,13,24,.58) 38%, rgba(10,13,24,.62) 66%, rgba(10,13,24,.85) 100%);}
.ov-left-dark{background:linear-gradient(90deg, rgba(10,13,24,.85) 0%, rgba(10,13,24,.4) 55%, rgba(10,13,24,.15) 100%);}
.ov-right-dark{background:linear-gradient(270deg, rgba(10,13,24,.85) 0%, rgba(10,13,24,.4) 55%, rgba(10,13,24,.15) 100%);}
.ov-band-dark{background:linear-gradient(180deg, rgba(10,13,24,.6) 0%, rgba(10,13,24,.88) 22%, rgba(10,13,24,.88) 78%, rgba(10,13,24,.6) 100%);}
.ov-diag-dark{background:linear-gradient(135deg, rgba(10,13,24,.88) 0%, rgba(10,13,24,.5) 55%, rgba(10,13,24,.85) 100%);}
.ov-center-dark{background:radial-gradient(ellipse 95% 80% at 50% 55%, rgba(10,13,24,.5) 0%, rgba(10,13,24,.75) 60%, rgba(10,13,24,.92) 100%);}
.ov-hero-light{background:radial-gradient(ellipse 95% 80% at 50% 50%, rgba(255,255,255,.55) 0%, rgba(255,255,255,.78) 60%, rgba(255,255,255,.92) 100%);}
.ov-left-light{background:linear-gradient(90deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.55) 55%, rgba(255,255,255,.15) 100%);}
.ov-right-light{background:linear-gradient(270deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.55) 55%, rgba(255,255,255,.15) 100%);}
.ov-band-light{background:linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.92) 22%, rgba(255,255,255,.92) 78%, rgba(255,255,255,.6) 100%);}
.ov-diag-light{background:linear-gradient(135deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.55) 55%, rgba(255,255,255,.85) 100%);}
.ov-center-light{background:radial-gradient(ellipse 95% 80% at 50% 55%, rgba(255,255,255,.55) 0%, rgba(255,255,255,.8) 60%, rgba(255,255,255,.96) 100%);}

/* Hero variants */
.hero-centered .scene-content{text-align:center;display:flex;flex-direction:column;align-items:center;padding:160px 7vw 100px;justify-content:center;min-height:100vh;}
.scene-1 .vert-tag{position:absolute;left:32px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left center;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.4em;color:rgba(255,255,255,.5);text-transform:uppercase;white-space:nowrap;z-index:5;}
[data-nav-theme="light"] .scene-1 .vert-tag{color:var(--ink-3);}
.scroll-hint{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,.65);font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;z-index:5;}
.scroll-hint .arrow{width:1px;height:28px;background:rgba(255,255,255,.4);position:relative;overflow:hidden;}
.scroll-hint .arrow::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:50%;background:var(--blue-2);animation:scrollHintAnim 1.8s ease-in-out infinite;}
@keyframes scrollHintAnim{to{top:200%;}}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-blue{display:inline-flex;align-items:center;gap:10px;background:var(--blue);color:#fff !important;padding:16px 28px;border-radius:999px;font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:600;letter-spacing:-.005em;border:none;cursor:pointer;transition:background .2s, transform .2s, box-shadow .2s;box-shadow:0 10px 24px rgba(38,116,216,.32);}
.btn-blue:hover{background:var(--blue-2);transform:scale(1.03) translateY(-2px);box-shadow:0 18px 40px rgba(38,116,216,.5);}
.btn-clear-dark{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);color:#fff !important;padding:16px 26px;border-radius:999px;font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:600;letter-spacing:-.005em;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.2);transition:background .2s, transform .2s, border-color .2s;}
.btn-clear-dark:hover{background:rgba(255,255,255,.18);transform:scale(1.03) translateY(-2px);border-color:rgba(255,255,255,.45);}
.btn-clear-light{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.7);color:var(--navy) !important;padding:16px 26px;border-radius:999px;font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:600;letter-spacing:-.005em;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(21,32,63,.15);transition:background .2s, transform .2s, border-color .2s;}
.btn-clear-light:hover{background:#fff;transform:scale(1.03) translateY(-2px);border-color:var(--navy);}
.btn-ghost-dark{display:inline-flex;align-items:center;gap:10px;color:#fff !important;padding:14px 20px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;border:1px solid rgba(255,255,255,.3);border-radius:8px;transition:all .2s;}
.btn-ghost-dark:hover{background:rgba(255,255,255,.08);border-color:#fff;}

/* ============================================================
   REVEAL-ON-SCROLL
   ============================================================ */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1);}
.reveal.on{opacity:1;transform:translateY(0);}
.reveal.delay-1{transition-delay:.12s;}
.reveal.delay-2{transition-delay:.24s;}
.reveal.delay-3{transition-delay:.36s;}
.reveal.delay-4{transition-delay:.48s;}

/* ============================================================
   COMPONENTS
   ============================================================ */
/* Pillar cards (used in approach sections) */
.pillars{display:flex;flex-direction:column;gap:18px;}
.pillar{padding:26px 30px;border-radius:18px;transition:all .35s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden;}
.pillar::before{content:"";position:absolute;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,var(--navy),var(--blue));transition:width .5s cubic-bezier(.2,.7,.2,1);}
.pillar:hover::before{width:100%;}
.scene-light .pillar{background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--rule-light);box-shadow:0 10px 30px rgba(21,32,63,.06);}
.scene-light .pillar:hover{transform:translateX(8px) translateY(-2px);box-shadow:0 22px 44px rgba(38,116,216,.16);border-color:rgba(38,116,216,.4);}
.scene-dark .pillar{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);}
.scene-dark .pillar:hover{transform:translateX(8px);background:rgba(255,255,255,.08);border-color:rgba(77,151,232,.4);}
.pillar-head{display:flex;align-items:center;gap:18px;margin-bottom:10px;}
.pillar-num{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--blue);letter-spacing:.18em;font-weight:600;}
.scene-dark .pillar-num{color:var(--blue-2);}
.pillar-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:22px;letter-spacing:-.02em;}
.scene-light .pillar-name{color:var(--navy);}
.scene-dark .pillar-name{color:#fff;}
.pillar p{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;line-height:1.6;}
.scene-light .pillar p{color:var(--ink-2);}
.scene-dark .pillar p{color:var(--white-2);}

/* Service cards (used in services scenes) */
.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.svc{padding:32px 28px;border-radius:20px;transition:all .35s cubic-bezier(.2,.7,.2,1);cursor:pointer;position:relative;overflow:hidden;}
.svc::before{content:"";position:absolute;top:0;left:-100%;width:50%;height:2px;background:linear-gradient(90deg,transparent,var(--blue),transparent);transition:left .7s cubic-bezier(.2,.7,.2,1);}
.svc:hover::before{left:150%;}
.scene-light .svc{background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--rule-light);box-shadow:0 10px 30px rgba(21,32,63,.06);}
.scene-light .svc:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(38,116,216,.18);border-color:rgba(38,116,216,.4);background:#fff;}
.scene-dark .svc{background:rgba(255,255,255,.04);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);}
.scene-dark .svc:hover{transform:translateY(-6px);background:rgba(255,255,255,.08);border-color:rgba(77,151,232,.4);}
.svc-tag{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--blue);letter-spacing:.14em;margin-bottom:14px;text-transform:uppercase;font-weight:600;}
.scene-dark .svc-tag{color:var(--blue-2);}
.svc h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:20px;letter-spacing:-.02em;margin-bottom:10px;}
.scene-light .svc h3{color:var(--navy);}
.scene-dark .svc h3{color:#fff;}
.svc p{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;line-height:1.6;}
.scene-light .svc p{color:var(--ink-2);}
.scene-dark .svc p{color:var(--white-2);}
.svc-arrow{margin-top:18px;display:inline-flex;align-items:center;gap:6px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;color:var(--blue);font-weight:600;transition:gap .25s;}
.scene-dark .svc-arrow{color:var(--blue-2);}
.svc:hover .svc-arrow{gap:10px;}

/* Number cards (used in proof scenes) */
.numbers{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.num-card{padding:36px 30px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:22px;transition:all .4s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden;}
.num-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--blue-2),transparent);opacity:0;transition:opacity .4s;}
.num-card:hover::before{opacity:1;}
.scene-dark .num-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);}
.scene-dark .num-card:hover{background:rgba(255,255,255,.08);border-color:rgba(77,151,232,.4);transform:translateY(-4px);}
.scene-light .num-card{background:rgba(255,255,255,.92);border:1px solid var(--rule-light);box-shadow:0 12px 32px rgba(21,32,63,.08);}
.scene-light .num-card:hover{background:#fff;border-color:rgba(38,116,216,.4);transform:translateY(-4px);}
.num-card .v{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(48px,5.5vw,84px);letter-spacing:-.04em;line-height:.95;margin-bottom:8px;}
.scene-dark .num-card .v{color:#fff;}
.scene-light .num-card .v{color:var(--navy);}
.num-card .v em{font-style:normal;}
.scene-dark .num-card .v em{background:linear-gradient(120deg,#fff,var(--blue-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.scene-light .num-card .v em{color:var(--blue);}
.num-card .l{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;line-height:1.5;}
.scene-dark .num-card .l{color:var(--white-2);}
.scene-light .num-card .l{color:var(--ink-2);}

/* ============================================================
   FLAT (non-scrollytelling) section system — for content-heavy pages
   ============================================================ */
.section{padding:120px 7vw;background:var(--bg-light);}
.section-alt{background:var(--bg-light-2);}
.section-dark{background:var(--bg-dark);color:var(--white);padding:120px 7vw;}
.section-narrow{padding:70px 7vw;}
.wrap{max-width:1300px;margin:0 auto;}
.wrap-narrow{max-width:980px;margin:0 auto;}

h2.section-h{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(36px,5vw,64px);line-height:1.04;letter-spacing:-.025em;color:var(--navy);margin:14px 0 0;}
h2.section-h em{font-style:normal;background:linear-gradient(120deg,var(--navy),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.section-dark h2.section-h{color:#fff;}
.section-dark h2.section-h em{background:linear-gradient(120deg,#fff,var(--blue-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
p.section-p{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;line-height:1.65;color:var(--ink-2);max-width:620px;margin-top:22px;}
.section-dark p.section-p{color:var(--white-2);}

.s-label{display:inline-flex;align-items:center;gap:12px;font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--blue);}
.s-label::before{content:"";width:24px;height:2px;background:var(--blue);border-radius:2px;}
.section-dark .s-label{color:var(--blue-2);}

.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;}
.chip-blue{background:var(--blue-soft);color:var(--blue);}
.chip-blue::before{content:"";width:7px;height:7px;background:var(--blue);border-radius:999px;}
.chip-dark{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}

.pip-live{display:inline-flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:500;color:var(--ink-3);letter-spacing:.04em;padding:8px 14px;background:rgba(255,255,255,.7);border:1px solid rgba(21,32,63,.08);border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.pip-live::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--green);box-shadow:0 0 0 4px rgba(16,185,129,.2);animation:livePulse 2s infinite;}
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.55;transform:scale(.9);}}

/* Q&A cards (used in common questions sections) */
.qa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
.qa-card{padding:32px 28px;background:#fff;border:1px solid var(--rule-light);border-radius:18px;transition:all .35s cubic-bezier(.2,.7,.2,1);box-shadow:var(--shadow-sm);}
.qa-card:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(38,116,216,.12);border-color:rgba(38,116,216,.3);}
.qa-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;font-weight:600;}
.qa-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:19px;line-height:1.3;margin-bottom:12px;color:var(--navy);}
.qa-card p{font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;color:var(--ink-2);line-height:1.65;}

/* Process steps */
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px;}
.process-step{padding:36px 30px;background:#fff;border:1px solid var(--rule-light);border-radius:20px;text-align:center;transition:all .35s;box-shadow:var(--shadow-sm);}
.process-step:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(38,116,216,.16);border-color:rgba(38,116,216,.4);}
.step-num{display:inline-flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:22px;margin-bottom:22px;box-shadow:0 10px 24px rgba(38,116,216,.32);}
.step-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:21px;color:var(--navy);margin-bottom:12px;letter-spacing:-.02em;}
.step-body{font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;color:var(--ink-2);line-height:1.65;}

/* Pain cards */
.pain-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.pain-card{padding:36px 32px;background:#fff;border:1px solid var(--rule-light);border-radius:20px;transition:all .35s;box-shadow:var(--shadow-sm);}
.pain-card:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(38,116,216,.12);border-color:rgba(38,116,216,.3);}
.pain-num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--blue);margin-bottom:18px;text-transform:uppercase;font-weight:600;}
.pain-q{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:20px;line-height:1.3;color:var(--navy);margin-bottom:16px;}
.pain-body{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;color:var(--ink-2);line-height:1.65;margin-bottom:18px;}
.pain-fix{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;color:var(--blue);padding-left:14px;border-left:2px solid var(--blue);line-height:1.6;font-weight:500;}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.faq-list{max-width:880px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--rule-light);}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:26px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:19px;color:var(--navy);letter-spacing:-.015em;}
.faq-q::after{content:"+";font-size:28px;font-weight:300;color:var(--blue);transition:transform .3s;flex-shrink:0;}
.faq-item.open .faq-q::after{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease, padding .35s ease;}
.faq-item.open .faq-a{max-height:600px;padding-bottom:26px;}
.faq-a p{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;color:var(--ink-2);line-height:1.7;}

/* ============================================================
   FORMS
   ============================================================ */
.form-card{background:#fff;border:1px solid var(--rule-light);border-radius:24px;padding:48px;box-shadow:var(--shadow);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.form-field{margin-bottom:16px;}
.form-field label{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;margin-bottom:8px;font-weight:600;}
.form-field input, .form-field textarea, .form-field select{width:100%;padding:14px 18px;background:var(--bg-light-2);border:1px solid var(--rule-light);border-radius:10px;font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;color:var(--navy);transition:border-color .2s, background .2s;}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px var(--blue-soft);}
.form-field textarea{resize:vertical;min-height:130px;}

/* ============================================================
   BLOG / ARTICLE
   ============================================================ */
.article-hero{padding:140px 7vw 60px;background:var(--bg-light-2);}
.article-meta{display:flex;gap:18px;align-items:center;margin-bottom:24px;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;flex-wrap:wrap;}
.article-meta .dot{width:5px;height:5px;border-radius:50%;background:var(--ink-4);}
.article-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(34px,5vw,58px);line-height:1.04;color:var(--navy);max-width:900px;letter-spacing:-.025em;margin-bottom:24px;}
.article-tldr{padding:24px 28px;background:#fff;border:1px solid var(--rule-light);border-left:4px solid var(--blue);border-radius:12px;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;line-height:1.65;color:var(--ink-2);max-width:780px;margin:32px 0;}
.article-tldr strong{color:var(--navy);}
.article-body{max-width:780px;margin:0 auto;padding:60px 7vw 100px;font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;line-height:1.75;color:var(--ink-2);}
.article-body h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:32px;line-height:1.15;color:var(--navy);margin:48px 0 18px;letter-spacing:-.02em;}
.article-body h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:22px;line-height:1.2;color:var(--navy);margin:32px 0 12px;}
.article-body p{margin-bottom:18px;}
.article-body ul, .article-body ol{margin:18px 0 22px 22px;}
.article-body li{margin-bottom:8px;}
.article-body strong{color:var(--navy);}

.blog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.blog-card{background:#fff;border:1px solid var(--rule-light);border-radius:20px;overflow:hidden;transition:all .35s cubic-bezier(.2,.7,.2,1);box-shadow:var(--shadow-sm);}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(38,116,216,.16);border-color:rgba(38,116,216,.3);}
.blog-card-body{padding:28px;}
.blog-card-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--blue);text-transform:uppercase;margin-bottom:12px;font-weight:600;}
.blog-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:21px;line-height:1.25;color:var(--navy);margin-bottom:12px;letter-spacing:-.015em;}
.blog-card p{font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;color:var(--ink-2);line-height:1.6;}
.blog-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--rule-light);font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;}
.blog-card-foot .read{color:var(--blue);font-weight:600;}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{background:var(--bg-light-2);border-top:1px solid var(--rule-light);padding:60px 7vw 30px;color:var(--ink-2);position:relative;z-index:2;}
.foot-grid{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px;}
.foot-brand{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:18px;letter-spacing:-.025em;color:var(--navy);margin-bottom:12px;display:flex;align-items:center;gap:10px;}
.foot-brand img{height:48px;width:auto;display:block;}
.foot p{font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;line-height:1.7;margin-bottom:18px;color:var(--ink-3);}
.foot h4{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--blue);letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px;font-weight:600;}
.foot a{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;padding:5px 0;color:var(--ink-3);transition:color .2s;}
.foot a:hover{color:var(--navy);}
.foot-newsletter input{width:100%;padding:11px 14px;background:#fff;border:1px solid var(--rule-light);border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;color:var(--navy);margin-bottom:8px;}
.foot-newsletter input:focus{outline:none;border-color:var(--blue);}
.foot-newsletter button{padding:10px 16px;background:var(--blue);color:#fff;border:none;border-radius:8px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;font-weight:600;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.foot-newsletter button:hover{background:var(--blue-2);}
.foot-bottom{max-width:1300px;margin:0 auto;border-top:1px solid var(--rule-light);padding-top:24px;display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-4);letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;gap:12px;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1023px){
  .nav-desktop{display:none;}
  .nav-burger{display:inline-flex;}
  .dot-nav{display:none;}
  .float-cta{right:18px;bottom:18px;padding:12px 18px;font-size:12.5px;}
  .scene-content{padding:130px 22px 80px;}
  .scene h1{font-size:clamp(36px,9vw,58px);}
  .scene h2{font-size:clamp(32px,8vw,52px);}
  .scene-3 .scene-content, .scene-5 .scene-content, .approach-grid, .numbers-grid{grid-template-columns:1fr !important;gap:40px !important;}
  .svc-cards{grid-template-columns:1fr 1fr;}
  .numbers{grid-template-columns:1fr 1fr;}
  .process-grid{grid-template-columns:1fr;gap:14px;}
  .pain-grid{grid-template-columns:1fr;}
  .blog-list{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
  .form-card{padding:30px 22px;}
  .scene-1 .vert-tag{display:none;}
  .section, .section-dark{padding:80px 6vw;}
}
@media (max-width:600px){
  .svc-cards{grid-template-columns:1fr;}
  .numbers{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .nav-shell{padding:14px 18px;}
  .nav-logo img{height:36px;}
}

/* ============================================================
   Marketing 101 buildout — utility bar, lead magnet, assessment, landing
   ============================================================ */
.top-bar{position:fixed;top:0;left:0;right:0;z-index:85;height:32px;background:rgba(10,13,24,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;gap:28px;padding:0 24px;color:rgba(255,255,255,.78);font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.06em;transition:transform .35s ease;}
.top-bar a{color:#fff;font-weight:600;}
.top-bar a:hover{color:var(--blue-2);}
.top-bar .sep{color:rgba(255,255,255,.25);}
.top-bar-cta{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--blue);border-radius:999px;color:#fff !important;font-weight:600;text-transform:none;letter-spacing:0;transition:background .2s;}
.top-bar-cta:hover{background:var(--blue-2);}
.top-bar .phone-icon{color:var(--blue-2);}

/* push everything down by the utility bar height */
body.has-top-bar .nav-shell{top:32px;}
body.has-top-bar .scroll-progress{top:32px;}
body.has-top-bar .scene-1{padding-top:0;}

@media (max-width:768px){
  .top-bar{height:auto;padding:6px 14px;flex-wrap:wrap;gap:10px;font-size:10.5px;}
  .top-bar .sep, .top-bar .hours{display:none;}
  body.has-top-bar .nav-shell{top:auto;}
}

/* Lead magnet promo strip — sits between scenes on home */
.lead-magnet-strip{position:relative;padding:80px 7vw;background:linear-gradient(135deg,#0a0d18 0%,#1a234a 100%);color:#fff;overflow:hidden;}
.lead-magnet-strip::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 80% 50%,rgba(38,116,216,.25),transparent 60%);pointer-events:none;}
.lead-magnet-strip-inner{position:relative;max-width:1300px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr;gap:60px;align-items:center;}
.lead-magnet-strip .chip{margin-bottom:18px;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.18);}
.lead-magnet-strip .chip::before{background:var(--blue-2);box-shadow:0 0 8px var(--blue-2);}
.lead-magnet-strip h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(32px,4.2vw,52px);line-height:1.04;letter-spacing:-.025em;color:#fff;margin-bottom:18px;}
.lead-magnet-strip h2 em{font-style:normal;background:linear-gradient(120deg,#fff,var(--blue-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.lead-magnet-strip p{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;color:rgba(255,255,255,.78);line-height:1.6;margin-bottom:28px;max-width:580px;}
.lead-magnet-card{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:32px;text-align:center;position:relative;overflow:hidden;}
.lead-magnet-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--blue-2));}
.lead-magnet-card .lm-num{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:74px;line-height:.9;color:#fff;letter-spacing:-.04em;margin-bottom:8px;}
.lead-magnet-card .lm-num em{font-style:normal;color:var(--blue-2);}
.lead-magnet-card .lm-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:rgba(255,255,255,.65);text-transform:uppercase;}
.lead-magnet-card .lm-meta{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left;}
.lead-magnet-card .lm-meta div{font-family:'Plus Jakarta Sans',sans-serif;font-size:12.5px;color:rgba(255,255,255,.78);line-height:1.4;}
.lead-magnet-card .lm-meta strong{display:block;color:#fff;font-weight:700;font-size:13.5px;margin-bottom:2px;}

@media (max-width:960px){
  .lead-magnet-strip-inner{grid-template-columns:1fr;gap:32px;}
  .lead-magnet-strip{padding:60px 6vw;}
}

/* ============================================================
   ASSESSMENT page
   ============================================================ */
.assessment-section{padding:80px 7vw 120px;background:var(--bg-light);}
.assessment-form{max-width:880px;margin:0 auto;}
.assessment-section .a-progress{position:sticky;top:120px;background:#fff;padding:18px 24px;border:1px solid var(--rule-light);border-radius:14px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);z-index:5;}
.a-progress-label{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;font-weight:600;}
.a-progress-bar{flex:1;height:8px;background:var(--rule-light);border-radius:999px;margin:0 24px;overflow:hidden;}
.a-progress-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--blue),var(--blue-2));transition:width .35s cubic-bezier(.2,.7,.2,1);}
.a-progress-count{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:700;color:var(--navy);}

.a-section{margin-bottom:48px;padding:36px 36px 32px;background:#fff;border:1px solid var(--rule-light);border-radius:20px;box-shadow:var(--shadow-sm);}
.a-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--rule-light);}
.a-section-num{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.16em;color:var(--blue);text-transform:uppercase;font-weight:600;}
.a-section-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:22px;color:var(--navy);letter-spacing:-.015em;}
.a-question{padding:18px 0;border-bottom:1px solid var(--rule-light);}
.a-question:last-child{border-bottom:none;}
.a-q-text{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;color:var(--navy);font-weight:500;margin-bottom:12px;line-height:1.5;}
.a-options{display:flex;gap:10px;flex-wrap:wrap;}
.a-option{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;background:var(--bg-light-2);border:1px solid var(--rule-light);border-radius:999px;cursor:pointer;transition:all .15s;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:500;color:var(--ink-2);user-select:none;}
.a-option:hover{border-color:var(--blue);background:var(--blue-soft);}
.a-option input{display:none;}
.a-option.selected{background:var(--blue);color:#fff;border-color:var(--blue);}
.a-option.selected.no{background:#ef4444;border-color:#ef4444;}
.a-option.selected.unsure{background:#f59e0b;border-color:#f59e0b;color:#fff;}

.a-submit{display:flex;justify-content:center;margin:48px 0;}
.a-submit button{font-size:16px;padding:18px 36px;}
.a-submit button:disabled{opacity:.5;cursor:not-allowed;background:var(--ink-3) !important;box-shadow:none !important;transform:none !important;}

/* Results panel */
.results-panel{max-width:1080px;margin:0 auto;padding:60px 7vw;}
.score-card{background:linear-gradient(135deg,#0a0d18 0%,#1a234a 100%);color:#fff;border-radius:24px;padding:60px 48px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);}
.score-card::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(38,116,216,.25),transparent 70%);pointer-events:none;}
.score-card .score-eyebrow{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.22em;color:var(--blue-2);margin-bottom:18px;text-transform:uppercase;font-weight:600;position:relative;}
.score-number{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(80px,11vw,160px);line-height:.9;letter-spacing:-.04em;background:linear-gradient(120deg,#fff,var(--blue-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;position:relative;}
.score-out-of{font-family:'JetBrains Mono',monospace;font-size:14px;color:rgba(255,255,255,.55);position:relative;margin-bottom:24px;}
.score-tier{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;position:relative;margin-bottom:32px;}
.score-tier.low{background:rgba(16,185,129,.18);color:#34d399;border:1px solid rgba(16,185,129,.4);}
.score-tier.medium{background:rgba(245,158,11,.18);color:#fbbf24;border:1px solid rgba(245,158,11,.4);}
.score-tier.high{background:rgba(239,68,68,.18);color:#f87171;border:1px solid rgba(239,68,68,.4);}
.score-tier::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor;}
.score-summary{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;color:rgba(255,255,255,.85);line-height:1.6;max-width:640px;margin:0 auto 32px;position:relative;}

.section-breakdown{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:48px auto 0;max-width:1080px;}
.breakdown-card{background:#fff;border:1px solid var(--rule-light);border-radius:14px;padding:22px 18px;text-align:center;box-shadow:var(--shadow-sm);}
.breakdown-name{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;margin-bottom:12px;font-weight:600;}
.breakdown-score{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:32px;color:var(--navy);letter-spacing:-.02em;line-height:1;}
.breakdown-score .over{color:var(--ink-3);font-size:.55em;font-weight:600;}
.breakdown-bar{height:6px;background:var(--rule-light);border-radius:999px;margin-top:12px;overflow:hidden;}
.breakdown-bar-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--blue-2));transition:width .8s cubic-bezier(.2,.7,.2,1);border-radius:999px;}

.results-cta{margin-top:48px;text-align:center;padding:48px 32px;background:var(--bg-light-2);border-radius:20px;border:1px solid var(--rule-light);}
.results-cta h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(26px,3.4vw,38px);line-height:1.1;color:var(--navy);margin-bottom:14px;letter-spacing:-.02em;}
.results-cta h3 em{font-style:normal;background:linear-gradient(120deg,var(--navy),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.results-cta p{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;color:var(--ink-2);line-height:1.6;max-width:580px;margin:0 auto 28px;}

@media (max-width:768px){
  .section-breakdown{grid-template-columns:1fr 1fr;}
  .a-section{padding:24px 22px;}
  .assessment-section .a-progress{position:relative;top:auto;}
}

/* ============================================================
   LANDING template
   ============================================================ */
body.landing .nav-shell .nav-desktop{display:none;}
body.landing .nav-shell .nav-burger{display:none;}
body.landing .nav-shell .nav-logo{margin:0 auto;}
.landing-hero{min-height:88vh;display:flex;align-items:center;position:relative;overflow:hidden;background:var(--bg-dark);color:#fff;}
.landing-hero .scene-video{position:absolute;inset:0;}
.landing-hero .scene-video video{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.05) brightness(.55);}
.landing-hero .scene-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,13,24,.78),rgba(10,13,24,.5) 50%,rgba(10,13,24,.85));}
.landing-hero-content{position:relative;z-index:5;max-width:1180px;margin:0 auto;padding:120px 7vw 80px;display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;}
.landing-hero-content h1{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(40px,5.4vw,76px);line-height:1.0;letter-spacing:-.03em;color:#fff;margin-bottom:24px;}
.landing-hero-content h1 em{font-style:normal;background:linear-gradient(120deg,#fff,var(--blue-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.landing-hero-content p.lead{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;color:rgba(255,255,255,.85);line-height:1.6;margin-bottom:32px;}
.landing-bullets{list-style:none;margin-bottom:32px;display:flex;flex-direction:column;gap:14px;}
.landing-bullets li{display:flex;gap:14px;align-items:flex-start;font-family:'Plus Jakarta Sans',sans-serif;font-size:15.5px;color:rgba(255,255,255,.92);line-height:1.5;}
.landing-bullets li::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--blue);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700;}
.landing-bullets li.b1::before{content:"1";font-family:'Plus Jakarta Sans',sans-serif;}
.landing-bullets li.b2::before{content:"2";font-family:'Plus Jakarta Sans',sans-serif;}
.landing-bullets li.b3::before{content:"3";font-family:'Plus Jakarta Sans',sans-serif;}
.landing-form-card{background:rgba(255,255,255,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:36px;box-shadow:0 30px 80px rgba(0,0,0,.4);}
.landing-form-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:24px;color:#fff;margin-bottom:8px;letter-spacing:-.02em;}
.landing-form-card .sub{font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;color:rgba(255,255,255,.72);line-height:1.55;margin-bottom:22px;}
.landing-form-card input{width:100%;padding:13px 16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);border-radius:10px;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;margin-bottom:10px;}
.landing-form-card input::placeholder{color:rgba(255,255,255,.4);}
.landing-form-card input:focus{outline:none;border-color:var(--blue);background:rgba(255,255,255,.08);}
.landing-form-card button{width:100%;margin-top:8px;}
.landing-form-card .meta{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:rgba(255,255,255,.5);letter-spacing:.12em;text-transform:uppercase;margin-top:16px;text-align:center;}

@media (max-width:960px){
  .landing-hero-content{grid-template-columns:1fr;gap:32px;}
}


/* ===== Midland-style scroll header (added) ===== */
.nav-shell.scrolled{background:#fff;border-bottom:1px solid var(--rule-light);box-shadow:0 6px 28px rgba(21,32,63,.09);}
body.nav-up .nav-shell{transform:translateY(-130%);}
body.nav-up .top-bar{transform:translateY(-100%);}
/* color decoupled from per-scene theme: transparent=white, scrolled=navy */
.nav-shell:not(.scrolled) .nav-link,.nav-shell:not(.scrolled) .nav-drop-btn{color:rgba(255,255,255,.9);}
.nav-shell:not(.scrolled) .nav-link:hover,.nav-shell:not(.scrolled) .nav-drop-btn:hover{color:#fff;}
.nav-shell:not(.scrolled) .nav-link.active{color:#fff;}
.nav-shell:not(.scrolled) .nav-logo{color:#fff;}
.nav-shell:not(.scrolled) .nav-logo img{filter:drop-shadow(0 2px 7px rgba(0,0,0,.5));}
.nav-shell:not(.scrolled) .nav-burger span,.nav-shell:not(.scrolled) .nav-burger span::before,.nav-shell:not(.scrolled) .nav-burger span::after{background:#fff;}
.nav-shell.scrolled .nav-link,.nav-shell.scrolled .nav-drop-btn{color:var(--ink-2);}
.nav-shell.scrolled .nav-link:hover,.nav-shell.scrolled .nav-drop-btn:hover{color:var(--navy);}
.nav-shell.scrolled .nav-link.active{color:var(--navy);}
.nav-shell.scrolled .nav-logo{color:var(--navy);}
.nav-shell.scrolled .nav-logo img{filter:none;}
.nav-shell.scrolled .nav-burger span,.nav-shell.scrolled .nav-burger span::before,.nav-shell.scrolled .nav-burger span::after{background:var(--navy);}


/* ===== Home: fixed pinned gradient background on content scenes (added) ===== */
body.home .scene:not(.scene-1){background:transparent;}
body.home .scene:not(.scene-1) .scene-overlay{background:transparent;}


/* ===== Home: tighten section heights (remove 100vh empty space) ===== */
body.home .scene:not(.scene-1){min-height:auto;}
body.home .scene:not(.scene-1) .scene-content{padding-top:118px;padding-bottom:104px;}
body.home .scene-6 .scene-content{min-height:auto;}


/* ===== Fixed layered page background: wavy video + dim gradient tint + veil ===== */
body.home .page-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;}
body.home .page-bg__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.18) saturate(1.1) brightness(.97);}
body.home .page-bg__grad{position:absolute;inset:0;background:url('assets/img/bg-gradient.jpg') center/cover no-repeat;opacity:.22;}
body.home .page-bg__veil{position:absolute;inset:0;background:rgba(255,255,255,.10);}

/* ensure fixed video layer is visible on home (opaque body would hide z-index:-1) */
body.home{background:transparent;}


/* ===== Owner portrait (scene-2) ===== */
.portrait-wrap{position:relative;max-width:380px;margin:0 auto;}
.portrait-img{width:100%;display:block;border-radius:22px;background:linear-gradient(160deg,#eaf1fb,#d6e6f7);box-shadow:0 28px 64px rgba(21,32,63,.20);border:1px solid rgba(255,255,255,.7);}
.portrait-cap{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:11px 17px;border-radius:13px;box-shadow:0 10px 26px rgba(21,32,63,.16);}
.portrait-cap strong{display:block;color:var(--navy);font-weight:800;font-size:15px;letter-spacing:-.01em;}
.portrait-cap span{color:var(--ink-2);font-size:12.5px;}
.num-card .v{overflow-wrap:break-word;}
@media(max-width:820px){.portrait-wrap{max-width:300px;margin-top:34px;}.scene-2 .scene-content{grid-template-columns:1fr!important;}}


/* ===== Owner advice + signature (scene-2) ===== */
.owner-tip{margin:24px 0 22px;padding:16px 22px;border-left:3px solid var(--blue);background:rgba(255,255,255,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:0 14px 14px 0;max-width:560px;}
.owner-tip-k{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);font-weight:700;margin-bottom:7px;}
.owner-tip p{font-size:15.5px;line-height:1.55;color:var(--ink-2);margin:0;font-style:italic;}
.owner-sign{margin:0 0 20px;}
.owner-sign-name{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:18px;color:var(--navy);letter-spacing:-.01em;}
.owner-sign-role{font-size:13px;color:var(--ink-3);}


/* ===== Widen card rows so content isn't cramped (scenes 3 & 5) ===== */
body.home #scene-3 .scene-content,
body.home #scene-5 .scene-content{max-width:1520px;padding-left:4vw;padding-right:4vw;}
body.home #scene-5 .num-card{padding:30px 30px;}
body.home #scene-5 .num-card .v{line-height:1.12;}
@media(max-width:980px){
  body.home #scene-5 .numbers{grid-template-columns:repeat(2,1fr)!important;}
  body.home #scene-3 .pillars{grid-template-columns:1fr!important;}
}


/* ===== Owner problem list (scene-2) ===== */
.owner-list{list-style:none;margin:20px 0 22px;padding:0;display:flex;flex-direction:column;gap:11px;max-width:560px;}
.owner-list li{position:relative;padding-left:26px;font-family:'Plus Jakarta Sans',sans-serif;font-size:16.5px;color:var(--ink-2);line-height:1.4;}
.owner-list li::before{content:"";position:absolute;left:0;top:11px;width:14px;height:2px;background:var(--blue);border-radius:2px;}


/* ===== Hero text clarity (dark scenes) ===== */
.scene-dark .eyebrow{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6);}
.scene-dark .eyebrow::before{background:var(--blue-2);}
.scene-dark h1{text-shadow:0 2px 18px rgba(0,0,0,.45);}
.scene-dark p.lead{text-shadow:0 1px 12px rgba(0,0,0,.5);}


/* ===== Hero headline fully white (no two-tone) ===== */
.scene-1 h1 em{background:none;-webkit-text-fill-color:#fff;color:#fff;}


/* ===== Hero page-name (eyebrow) bigger + easier to read on all pages ===== */
.scene-1 .eyebrow{font-size:17px;letter-spacing:.2em;font-weight:700;}
.scene-1 .eyebrow::before{width:40px;}
@media(max-width:600px){.scene-1 .eyebrow{font-size:14px;letter-spacing:.16em;}}


/* ===== Closing sections (hero-centered, non-hero) size to content, not full screen ===== */
body.home .scene:not(.scene-1).hero-centered .scene-content{min-height:auto;}
body.home .scene:not(.scene-1).hero-centered{min-height:auto;}


/* ===== Context photos in sections (don't disturb theme) ===== */
.scene-photo-wrap{max-width:540px;margin:0 auto;}
.scene-photo{width:100%;display:block;border-radius:22px;box-shadow:0 26px 60px rgba(21,32,63,.18);border:1px solid rgba(255,255,255,.7);aspect-ratio:4/3;object-fit:cover;}
@media(max-width:820px){
  body.home .scene-2 .scene-content[style*="grid-template-columns:1.05fr"]{grid-template-columns:1fr!important;text-align:center;}
  .scene-photo-wrap{max-width:420px;margin-top:30px;}
}

.term{font-size:.62em;font-weight:600;color:var(--blue);opacity:.85;letter-spacing:.01em;white-space:nowrap;}
.scene-dark .term{color:var(--blue-2);}

/* ===== Term tooltip (? icon, hover for plain explanation) ===== */
.term-tip{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:rgba(38,116,216,.14);color:var(--blue);font-size:9px;font-weight:700;cursor:help;position:relative;margin-left:6px;vertical-align:middle;line-height:1;transition:background .2s,color .2s;top:-1px;}
.term-tip:hover,.term-tip:focus{background:var(--blue);color:#fff;outline:none;}
.term-tip::after{content:attr(data-tip);position:absolute;bottom:160%;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:11px 14px;border-radius:11px;font-family:'Plus Jakarta Sans',sans-serif;font-size:12.5px;font-weight:400;line-height:1.45;width:240px;max-width:240px;text-align:left;letter-spacing:0;text-transform:none;box-shadow:0 14px 34px rgba(21,32,63,.28);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:60;pointer-events:none;white-space:normal;}
.term-tip:hover::after,.term-tip:focus::after{opacity:1;visibility:visible;}


/* tooltip overflow fix: cards must not clip the ? popup */
.pillar, .svc, .num-card{overflow:visible;}
.pillar::before, .svc::before, .num-card::before{display:none;}


/* tooltip z-index fix: hovered card (and its tooltip) sits above neighbors */
.pillar, .svc, .num-card{position:relative;}
.pillar:hover, .svc:hover, .num-card:hover{z-index:40;}
.term-tip::after{z-index:120;}
.term-tip::before{z-index:120;}


/* tooltip edge handling: right-column cards open the popup leftward */
.svc:nth-child(3n) .term-tip::after,
.pillar:nth-child(3n) .term-tip::after,
.num-card:nth-child(4n) .term-tip::after{left:auto;right:-8px;transform:none;}
.svc:nth-child(3n) .term-tip::before,
.pillar:nth-child(3n) .term-tip::before,
.num-card:nth-child(4n) .term-tip::before{left:auto;right:12px;transform:rotate(45deg);}


/* svc-tag bigger label */
.svc-tag{font-size:14px!important;font-weight:700;letter-spacing:.14em;}
.svc-tag .term-tip{margin-left:8px;}


/* FIX: transparent nav over a LIGHT hero (e.g. blog article pages) must use dark text.
   The .nav-shell:not(.scrolled) rules above force white text assuming a dark hero;
   scope-override them for light-theme heros so nav links stay visible at top. */
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-link,
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-drop-btn{color:var(--ink-2);}
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-link:hover,
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-drop-btn:hover{color:var(--navy);}
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-link.active{color:var(--navy);}
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-logo img{filter:none;}
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-burger span,
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-burger span::before,
[data-nav-theme="light"] .nav-shell:not(.scrolled) .nav-burger span::after{background:var(--navy);}


/* TOP SCRIM behind the transparent nav — guarantees link legibility over ANY hero
   (bright video frames, light photos, etc.). Dark hero -> dark fade + white text;
   light hero -> light fade + dark text. Disappears once nav is .scrolled (solid bg). */
.nav-shell:not(.scrolled)::before{content:"";position:absolute;left:0;right:0;top:0;height:135px;z-index:-1;pointer-events:none;}
[data-nav-theme="dark"] .nav-shell:not(.scrolled)::before{background:linear-gradient(to bottom, rgba(8,11,20,.62) 0%, rgba(8,11,20,.34) 45%, rgba(8,11,20,0) 100%);}
[data-nav-theme="light"] .nav-shell:not(.scrolled)::before{background:linear-gradient(to bottom, rgba(247,248,251,.85) 0%, rgba(247,248,251,.5) 45%, rgba(247,248,251,0) 100%);}


/* ===== v139 animation polish ===== */
h1.reveal{filter:blur(14px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1),filter 1.1s cubic-bezier(.2,.7,.2,1);}
h1.reveal.on{filter:blur(0);}
.scene-photo-wrap.reveal img{transform:scale(1.07);transition:transform 1.5s cubic-bezier(.2,.7,.2,1);}
.scene-photo-wrap.reveal.on img{transform:scale(1);}
.nav-cta span{display:inline-block;transition:transform .25s ease;}
.nav-cta:hover span{transform:translateX(3px);}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
  .scene-video video{animation:none !important;transform:none !important;}
  .pip-live::before{animation:none !important;}
}

/* ===== thank-you check animation ===== */
.ty-check{width:96px;height:96px;margin:0 auto 26px;}
.ty-check svg{width:100%;height:100%;fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
.ty-check circle{stroke-dasharray:158;stroke-dashoffset:158;animation:tyDraw .9s ease-out .2s forwards;opacity:.9;}
.ty-check path{stroke-dasharray:36;stroke-dashoffset:36;animation:tyDraw .5s ease-out .95s forwards;}
@keyframes tyDraw{to{stroke-dashoffset:0;}}
@media (prefers-reduced-motion: reduce){.ty-check circle,.ty-check path{animation:none;stroke-dashoffset:0;}}
