  :root {
    --bg:#ffffff; --surface:#f5f3ff; --card:#ffffff;
    --purple:#5b21f5; --purple2:#7c3aed; --glow:#6d28d9;
    --white:#1a0050; --gray:#6b5c8a; --border:rgba(91,33,245,.12);
    --teal:#0ea5e9; --teal2:#06b6d4;
  }
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;overflow-x:clip;} /* clip ≠ hidden — does not create a scroll container, so position:sticky works */
  body{background:var(--bg);color:var(--white);font-family:Nunito,sans-serif;overflow-x:clip;}
  /* cursor:none moved to JS — only applied when custom cursor elements exist */
  @media(pointer:coarse){.cursor,.cursor-ring{display:none;}a,button,label,[role="button"]{cursor:pointer;}}

  .cursor{width:10px;height:10px;background:var(--purple);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transition:transform .15s;box-shadow:0 0 0 2px #fff,0 2px 8px rgba(0,0,0,.22);}
  .cursor-ring{width:34px;height:34px;border:1.5px solid var(--purple);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;transition:all .3s cubic-bezier(.23,1,.32,1);opacity:.65;}

  /* NAV */
  nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:16px 48px;display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,0.92);backdrop-filter:blur(24px);border-bottom:1px solid var(--border);}
  .logo-wrap{display:flex;align-items:center;gap:12px;text-decoration:none;}
  .logo-wrap a{display:flex;align-items:center;text-decoration:none;}
  .logo-img{height:52px;width:auto;display:block;}
  .nav-right{display:flex;align-items:center;gap:16px;}
  .logo-sub{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gray);border-left:1px solid var(--border);padding-left:12px;line-height:1.5;font-weight:700;}
  .nav-links{display:flex;gap:28px;list-style:none;}
  .nav-links a{color:var(--gray);text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.04em;transition:color .2s;}
  .nav-links a:hover{color:var(--purple);}
  .nav-academy-link{color:var(--teal)!important;}
  .nav-academy-link:hover{color:var(--teal2)!important;}
  .nav-cta{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;padding:10px 22px;font-weight:800;font-size:.76rem;letter-spacing:.05em;border:none;cursor:pointer;text-decoration:none;border-radius:100px;transition:all .25s;box-shadow:0 4px 20px rgba(91,33,245,.25);}
  .nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(91,33,245,.4);}
  .nav-cta-icon{flex-shrink:0;opacity:.9;}

  /* WhatsApp nav button */
  .nav-wa{display:inline-flex;align-items:center;gap:6px;background:#25D366;color:#fff;padding:9px 16px;border-radius:100px;font-size:.75rem;font-weight:800;letter-spacing:.03em;text-decoration:none;white-space:nowrap;flex-shrink:0;animation:nav-wa-pulse 3.5s ease-in-out 1.5s infinite;}
  .nav-wa:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(37,211,102,.55);animation-play-state:paused;}
  .nav-wa svg{flex-shrink:0;}

  @keyframes nav-wa-pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,0);transform:scale(1);}
    12%    {box-shadow:0 0 0 8px rgba(37,211,102,.35);transform:scale(1.06);}
    24%    {box-shadow:0 0 0 0 rgba(37,211,102,0);transform:scale(1);}
    36%    {box-shadow:0 0 0 5px rgba(37,211,102,.2);transform:scale(1.03);}
    48%    {box-shadow:0 0 0 0 rgba(37,211,102,0);transform:scale(1);}
  }

  /* HERO */
  .hero{min-height:100vh;display:grid;grid-template-columns:1fr 1.15fr;align-items:stretch;gap:48px;padding:120px 48px 96px;position:relative;overflow:visible;background:transparent;}
  .hero-left{display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2;}
  .hero-right{display:flex;align-items:stretch;position:relative;z-index:2;justify-content:stretch;}
  .hero-glow{position:absolute;width:800px;height:800px;background:radial-gradient(circle,rgba(91,33,245,.07) 0%,transparent 65%);top:-200px;right:-150px;border-radius:50%;pointer-events:none;z-index:0;animation:glowPulse 7s ease-in-out infinite alternate;}
  .hero-glow2{position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(167,139,250,.09) 0%,transparent 65%);bottom:-80px;left:-80px;border-radius:50%;pointer-events:none;animation:glowPulse 9s 2s ease-in-out infinite alternate;}
  @keyframes glowPulse{from{opacity:.5;transform:scale(1)}to{opacity:1;transform:scale(1.1)}}
  .hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(91,33,245,.1) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;}
  .sparks{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1;}
  .spark{position:absolute;border-radius:50%;opacity:0;animation:sparkFloat linear infinite;}.spark.s-purple{background:var(--purple);box-shadow:0 0 8px rgba(91,33,245,.5);}.spark.s-cyan{background:#7c3aed;box-shadow:0 0 8px rgba(124,58,237,.6);}
  @keyframes sparkFloat{0%{opacity:0;transform:translateY(0) scale(0) rotate(0deg)}8%{opacity:.7}85%{opacity:.35}100%{opacity:0;transform:translateY(-98vh) scale(1.8) rotate(180deg)}}

  .hero-kicker{display:inline-flex;align-items:center;gap:10px;background:rgba(91,33,245,.07);border:1px solid rgba(91,33,245,.18);padding:6px 16px 6px 10px;border-radius:100px;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--purple);width:fit-content;margin-bottom:28px;opacity:0;animation:fadeUp .7s .2s forwards;}
  .kicker-dot{width:6px;height:6px;border-radius:50%;background:var(--purple);animation:blink 1.5s infinite;flex-shrink:0;}
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}

  .hero-headline{font-size:clamp(2.4rem,4.2vw,5rem);font-weight:900;line-height:1.05;letter-spacing:-.035em;margin-bottom:20px;color:#1a0050;opacity:0;animation:fadeUp .8s .35s forwards;}
  .hero-headline .hl-purple{background:linear-gradient(135deg,var(--purple),var(--purple2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
  .hero-headline .hl-italic{font-family:Fraunces,serif;font-style:italic;font-weight:300;color:var(--purple2);-webkit-text-fill-color:var(--purple2);}

  /* ── Headline Phrase Rotator ──────────────────────────────────────
     display:inline-block; width:100% → spans the full h1 width while
     staying in the inline formatting context, so the <br> tags above
     and below it behave as simple forced line-breaks (no extra line-box).
     height:1.05em → exactly one headline line (matches h1 line-height);
     vertical-align:top → aligns the container top with the line-box top,
     preventing any descender-space gap between lines 2 and 3.
     overflow:hidden → clips phrases to the container. */
  .hr-rotator{display:inline-block;width:100%;vertical-align:top;position:relative;overflow:hidden;height:1.05em;}
  /* Each phrase: absolute, full width, starts waiting below the container */
  .hr-phrase{position:absolute;left:0;top:0;width:100%;white-space:nowrap;
    opacity:0;transform:translateY(100%);
    transition:opacity .42s ease,transform .42s cubic-bezier(.23,1,.32,1);}
  .hr-phrase.is-active{opacity:1;transform:translateY(0);}
  .hr-phrase.is-leaving{opacity:0;transform:translateY(-100%);}

  .hero-sub{font-size:.95rem;color:var(--gray);line-height:1.75;max-width:460px;margin-bottom:16px;font-weight:600;opacity:0;animation:fadeUp .8s .45s forwards;}

  /* industries pills */
  .hero-industries{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px;opacity:0;animation:fadeUp .8s .52s forwards;}
  .ind-pill{font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:100px;border:1.5px solid rgba(91,33,245,.2);color:var(--purple);background:rgba(91,33,245,.05);}

  .hero-btns{display:flex;gap:16px;align-items:center;opacity:0;animation:fadeUp .8s .62s forwards;margin-bottom:0;}
  .btn-glow{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;padding:14px 30px;font-weight:800;font-size:.88rem;border-radius:100px;border:none;cursor:pointer;text-decoration:none;transition:all .25s;box-shadow:0 4px 24px rgba(91,33,245,.3);display:inline-block;}
  .btn-glow:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(91,33,245,.45);}
  .btn-ghost{color:var(--purple);font-weight:700;font-size:.88rem;text-decoration:none;border:1.5px solid rgba(91,33,245,.3);padding:13px 26px;border-radius:100px;transition:all .25s;display:inline-block;}
  .btn-ghost:hover{border-color:var(--purple);background:rgba(91,33,245,.05);}

  /* ── INDUSTRY DASHBOARD WIDGET ── */
  #industryWidget{width:100%;height:100%;min-height:580px;opacity:0;animation:fadeUp .9s .5s forwards;display:flex;flex-direction:column;gap:0;border-radius:20px;overflow:hidden;box-shadow:0 32px 100px rgba(91,33,245,.22),0 0 0 1px rgba(91,33,245,.12);}
  /* tab bar */
  .iw-tabs{display:flex;background:#f0ebff;}
  .iw-tab{flex:1;padding:16px 8px;text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .25s;color:#9474e8;border-bottom:3px solid transparent;display:flex;align-items:center;justify-content:center;gap:7px;}
  .iw-tab.active{background:#fff;color:var(--purple);border-bottom:2px solid var(--purple);}
  .iw-tab:not(.active):hover{background:#e8e0ff;color:var(--purple);}
  /* panels */
  .iw-panels{flex:1;background:#fff;position:relative;min-height:520px;}
  .iw-panel{position:absolute;inset:0;padding:28px 28px 24px;display:none;flex-direction:column;gap:16px;overflow:hidden;}
  .iw-panel.active{display:flex;}
  /* panel header */
  .iw-panel-header{display:flex;justify-content:space-between;align-items:flex-start;}
  .iw-panel-title{font-size:.9rem;font-weight:800;color:#1a0050;letter-spacing:-.01em;}
  .iw-panel-sub{font-size:.7rem;color:var(--gray);font-weight:600;margin-top:3px;}
  .iw-live-badge{display:flex;align-items:center;gap:5px;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#16a34a;background:rgba(22,163,74,.08);border:1px solid rgba(22,163,74,.2);padding:3px 9px;border-radius:100px;}
  .iw-live-dot{width:5px;height:5px;border-radius:50%;background:#16a34a;animation:blink 1.2s infinite;}
  /* metric cards row */
  .iw-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
  .iw-metric{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 14px;}
  .iw-metric-val{font-size:1.75rem;font-weight:900;letter-spacing:-.04em;color:#1a0050;line-height:1;}
  .iw-metric-val span{font-size:1rem;}
  .iw-metric-val.up{color:#16a34a;}
  .iw-metric-val.hi{background:linear-gradient(135deg,var(--purple),var(--purple2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
  .iw-metric-key{font-size:.64rem;font-weight:700;color:var(--gray);letter-spacing:.08em;text-transform:uppercase;margin-top:6px;}
  /* mini chart bar */
  .iw-chart{display:flex;align-items:flex-end;gap:4px;height:64px;padding:0 2px;}
  .iw-bar{flex:1;border-radius:3px 3px 0 0;background:var(--border);transition:height .6s cubic-bezier(.23,1,.32,1);}
  /* activity feed */
  .iw-feed{display:flex;flex-direction:column;gap:6px;flex:1;overflow:hidden;}
  .iw-feed-item{display:flex;align-items:flex-start;gap:12px;font-size:.8rem;padding:11px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);animation:feedSlide .4s ease;}
  @keyframes feedSlide{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
  .feed-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;}
  .feed-icon.cyan{background:rgba(14,165,233,.12);}
  .feed-icon.purple{background:rgba(91,33,245,.1);}
  .feed-icon.green{background:rgba(22,163,74,.1);}
  .feed-icon.orange{background:rgba(234,88,12,.1);}
  .feed-text{flex:1;line-height:1.4;color:#1a0050;font-weight:600;}
  .feed-text span{color:var(--gray);font-weight:600;font-size:.72rem;display:block;margin-top:2px;}
  .feed-time{font-size:.65rem;color:var(--gray);white-space:nowrap;margin-top:2px;font-family:"DM Mono",monospace;}
  /* workflow mini strip */
  .iw-workflow{display:flex;align-items:center;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 18px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}.iw-workflow::-webkit-scrollbar{display:none;}
  .wf-step{display:flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;color:var(--gray);white-space:nowrap;}
  .wf-step.active-step{color:var(--purple);}
  .wf-step.done-step{color:#16a34a;}
  .wf-step-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.85rem;background:var(--border);}
  .wf-step.active-step .wf-step-icon{background:rgba(91,33,245,.12);}
  .wf-step.done-step .wf-step-icon{background:rgba(22,163,74,.1);}
  .wf-arrow{color:var(--border);font-size:.8rem;margin:0 5px;flex-shrink:0;}
  .wf-arrow.active-arrow{color:var(--purple);animation:arrowPulse .8s ease-in-out infinite alternate;}
  @keyframes arrowPulse{from{opacity:.4}to{opacity:1}}

  @keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}

  /* MARQUEE */
  .marquee-wrap{border-top:2px solid rgba(91,33,245,.15);border-bottom:2px solid rgba(91,33,245,.15);background:var(--surface);padding:22px 0;overflow:hidden;}
  .marquee-track{display:flex;width:max-content;animation:marquee 24s linear infinite;}
  .mitem{padding:0 56px;font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);white-space:nowrap;display:flex;align-items:center;gap:56px;}
  .mitem .dot{color:var(--purple);font-size:1rem;}
  @keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* COMMON */
  section{padding:110px 48px;}
  .sec-label{display:inline-flex;align-items:center;gap:10px;font-size:.63rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--purple);margin-bottom:52px;}
  .sec-label::before{content:"";width:28px;height:2px;background:var(--purple);display:inline-block;border-radius:2px;}
  .sec-label.teal-label{color:var(--teal);}
  .sec-label.teal-label::before{background:var(--teal);}

  /* ── AI SYSTEMS SECTION ── */
  .ai-systems{background:#fff;}
  .systems-header{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:60px;}
  .systems-headline{font-size:clamp(2.2rem,4.5vw,3.8rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;color:#1a0050;}
  .systems-headline em{font-family:Fraunces,serif;font-style:italic;font-weight:300;background:linear-gradient(135deg,var(--purple),var(--purple2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
  .systems-sub{max-width:300px;font-size:.875rem;color:var(--gray);line-height:1.7;font-weight:600;}

  /* industry tabs */
  .industry-tabs{display:flex;gap:10px;margin-bottom:48px;flex-wrap:wrap;}
  .ind-tab{padding:9px 20px;border-radius:100px;font-size:.75rem;font-weight:800;letter-spacing:.05em;cursor:pointer;transition:all .25s;border:1.5px solid var(--border);color:var(--gray);}
  .ind-tab.active,.ind-tab:hover{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;border-color:transparent;box-shadow:0 4px 20px rgba(91,33,245,.25);}

  .systems-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  .sys-card{background:#fff;border:1.5px solid var(--border);border-radius:24px;padding:36px 32px;position:relative;overflow:hidden;cursor:default;transition:transform .35s cubic-bezier(.23,1,.32,1),border-color .3s,box-shadow .3s;}
  .sys-card:hover{transform:translateY(-6px);border-color:rgba(91,33,245,.35);box-shadow:0 20px 60px rgba(91,33,245,.1);}
  .sys-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--purple),var(--purple2));opacity:0;transition:opacity .3s;}
  .sys-card:hover::before{opacity:1;}
  .sys-icon{font-size:1.8rem;margin-bottom:16px;display:block;}
  .sys-title{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;margin-bottom:12px;color:#1a0050;line-height:1.2;}
  .sys-desc{font-size:.8rem;line-height:1.75;color:var(--gray);font-weight:600;}
  .sys-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
  .tag{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:100px;background:rgba(91,33,245,.07);color:var(--purple);border:1px solid rgba(91,33,245,.18);}

  /* industry badge on cards */
  .ind-badge{display:inline-flex;align-items:center;gap:6px;font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-bottom:16px;}
  .ind-badge-dot{width:5px;height:5px;border-radius:50%;background:var(--purple);}

/* ── SECTION UTILITIES (for builds section) ── */
.sec-eyebrow{font-size:.62rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--purple);margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.sec-eyebrow::before{content:"";display:inline-block;width:24px;height:1.5px;background:var(--purple);border-radius:2px;}
.sec-headline{font-size:clamp(2.2rem,4vw,3.8rem);font-weight:800;letter-spacing:-.04em;line-height:1.05;color:var(--white);}
.sec-headline em{font-family:Fraunces,serif;font-style:italic;font-weight:200;color:var(--teal);}
.sec-headline .vi{color:var(--purple2);}

/* ── BUILDS SECTION ── */
.builds{background:#f8fafc;padding-top:48px;padding-bottom:32px;}
.builds-header{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:40px;align-items:end;}
.builds-sub{font-size:.9rem;color:var(--gray);line-height:1.75;font-weight:400;}
.builds-sub strong{color:var(--white);font-weight:700;}
.builds-stack{position:relative;}
.builds-stack .build-card{position:sticky;top:80px;padding:0;background:transparent;margin-bottom:0;overflow:visible;}
.builds-stack .build-card::before{display:none;}
.build-card-inner{border-radius:24px;padding:40px 40px 88px 40px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;min-height:420px;transition:transform 0.1s linear;will-change:transform;box-shadow:0 4px 24px rgba(0,0,0,.06);overflow:hidden;position:relative;}
.build-card-inner::before{content:"";position:absolute;top:0;left:0;width:3px;height:0;background:linear-gradient(180deg,#0284c7,#6d28d9);transition:height .4s cubic-bezier(.23,1,.32,1);}
.build-card:hover .build-card-inner::before{height:100%;}
.build-card-text{display:flex;flex-direction:column;}
.build-card-visual{display:flex;align-items:center;justify-content:center;position:relative;min-height:320px;overflow:visible;border-radius:16px;}
.build-num{font-family:"DM Mono",monospace;font-size:.6rem;color:rgba(109,40,217,.5);letter-spacing:.15em;margin-bottom:16px;}
.build-icon-wrap{display:none;}
.build-title{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:#1a0050;margin-bottom:12px;line-height:1.2;}
.build-desc{font-size:.88rem;color:#4b5563;line-height:1.75;font-weight:400;}
.build-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px;}
.stk{font-family:"DM Mono",monospace;font-size:.6rem;color:#6d28d9;border:1px solid rgba(109,40,217,.2);padding:3px 10px;border-radius:4px;background:rgba(109,40,217,.06);}
.builds-cta{padding-top:16px;text-align:center;margin-top:48px;}

/* ── BUILD CARD ILLUSTRATIONS ── */
.build-scene{position:relative;width:100%;height:320px;border-radius:16px;overflow:visible;display:flex;align-items:center;justify-content:center;}
@keyframes bcFloatUp{0%,100%{transform:translateY(0px)}50%{transform:translateY(-12px)}}
@keyframes bcFloatDown{0%,100%{transform:translateY(0px)}50%{transform:translateY(8px)}}
@keyframes bcPulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
@keyframes bcSlideIn{0%{transform:translateX(40px);opacity:0}100%{transform:translateX(0);opacity:1}}
@keyframes bcBarGrow{0%{width:0}100%{width:var(--fill)}}
.scene-leads{background:linear-gradient(135deg,rgba(109,40,217,.06),rgba(2,132,199,.08));}
.scene-whatsapp{background:linear-gradient(135deg,rgba(37,211,102,.06),rgba(2,132,199,.06));}
.scene-marketing{background:linear-gradient(135deg,rgba(16,185,129,.06),rgba(245,158,11,.06));}
.scene-healthcare{background:linear-gradient(135deg,rgba(239,68,68,.05),rgba(251,191,36,.05));}
.scene-analytics{background:linear-gradient(135deg,rgba(245,158,11,.06),rgba(109,40,217,.06));}
.scene-capstone{background:linear-gradient(135deg,rgba(109,40,217,.08),rgba(0,180,240,.08));}
/* Scene 01 — Phone + CRM */
.phone-mock{width:180px;height:320px;background:#1a0a42;border-radius:24px;padding:12px;position:relative;box-shadow:0 20px 60px rgba(26,10,66,.25);animation:bcFloatUp 4s ease-in-out infinite;}
.phone-screen{width:100%;height:100%;background:#fff;border-radius:16px;overflow:hidden;padding:16px 12px;}
.phone-screen-header{font-size:.5rem;font-weight:700;color:#6d28d9;margin-bottom:8px;font-family:"DM Mono",monospace;padding-bottom:6px;border-bottom:1px solid rgba(109,40,217,.1);}
.lead-item{display:flex;align-items:center;gap:8px;padding:8px;margin-bottom:6px;background:rgba(109,40,217,.06);border-radius:8px;font-size:.55rem;color:#1a0a42;font-family:"DM Mono",monospace;animation:bcSlideIn .5s ease-out both;}
.lead-item:nth-child(3){animation-delay:.2s}.lead-item:nth-child(4){animation-delay:.4s}.lead-item:nth-child(5){animation-delay:.6s}.lead-item:nth-child(6){animation-delay:.8s}
.lead-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.lead-dot.hot{background:#10b981}.lead-dot.warm{background:#f59e0b}.lead-dot.new{background:#6d28d9}
.lead-score{margin-left:auto;font-weight:700;color:#10b981;font-size:.5rem;}
.crm-badge{position:absolute;bottom:-10px;right:-40px;background:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);font-size:.6rem;font-family:"DM Mono",monospace;color:#1a0a42;animation:bcFloatDown 3s ease-in-out infinite .5s;z-index:2;}
.crm-badge .badge-num{font-size:1.2rem;font-weight:800;color:#6d28d9;display:block;}
.notif-bubble{position:absolute;top:20px;left:-30px;background:#6d28d9;color:#fff;padding:8px 14px;border-radius:12px 12px 2px 12px;font-size:.55rem;font-weight:600;box-shadow:0 4px 16px rgba(109,40,217,.3);animation:bcPulse 2s ease-in-out infinite;}
/* Scene 02 — WhatsApp */
.chat-window{width:240px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.12);animation:bcFloatUp 5s ease-in-out infinite;}
.chat-header{background:#25d366;color:#fff;padding:12px 16px;font-size:.7rem;font-weight:700;display:flex;align-items:center;gap:8px;}
.chat-header .status-dot{width:6px;height:6px;background:#86efac;border-radius:50%;}
.chat-body{padding:12px;display:flex;flex-direction:column;gap:8px;}
.msg{padding:8px 12px;border-radius:12px;font-size:.55rem;line-height:1.5;max-width:85%;animation:bcSlideIn .4s ease-out both;}
.msg.user{background:#dcf8c6;align-self:flex-end;border-bottom-right-radius:2px;}
.msg.bot{background:#f0f0f0;align-self:flex-start;border-bottom-left-radius:2px;}
.msg:nth-child(2){animation-delay:.3s}.msg:nth-child(3){animation-delay:.6s}.msg:nth-child(4){animation-delay:.9s}
.wa-typing{display:flex;gap:3px;padding:8px 12px;align-self:flex-start;}
.wa-typing span{width:5px;height:5px;background:#999;border-radius:50%;animation:bcPulse 1.2s ease-in-out infinite;}
.wa-typing span:nth-child(2){animation-delay:.2s}.wa-typing span:nth-child(3){animation-delay:.4s}
.auto-badge{position:absolute;top:15px;right:-20px;background:#fff;padding:8px 12px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.55rem;color:#25d366;font-weight:700;font-family:"DM Mono",monospace;animation:bcFloatDown 3s ease-in-out infinite;}
.calendar-badge{position:absolute;bottom:10px;left:-20px;background:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.5rem;font-family:"DM Mono",monospace;color:#1a0a42;animation:bcFloatUp 4s ease-in-out infinite 1s;}
.calendar-badge strong{display:block;color:#6d28d9;font-size:.7rem;}
/* Scene 03 — Marketing Dashboard */
.mk-dashboard{width:280px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.1);animation:bcFloatUp 5s ease-in-out infinite;}
.mk-dash-header{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:14px 16px;font-size:.65rem;font-weight:700;}
.mk-dash-body{padding:14px;}
.mk-metric-row{display:flex;gap:8px;margin-bottom:8px;}
.mk-metric{flex:1;background:rgba(16,185,129,.06);border-radius:8px;padding:10px 8px;text-align:center;}
.mk-metric-val{font-size:1rem;font-weight:800;color:#10b981;display:block;}
.mk-metric-label{font-size:.45rem;color:#6b7280;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.05em;}
.mk-channel-bar{display:flex;align-items:center;gap:6px;padding:6px 0;font-size:.5rem;color:#374151;}
.mk-bar-fill{height:4px;border-radius:2px;flex:1;background:#e5e7eb;position:relative;overflow:hidden;}
.mk-bar-fill::after{content:"";position:absolute;left:0;top:0;height:100%;border-radius:2px;background:linear-gradient(90deg,#10b981,#059669);animation:bcBarGrow 2s ease-out both;width:var(--fill,50%);}
.mk-ai-copy-badge{position:absolute;bottom:15px;right:-15px;background:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.5rem;font-family:"DM Mono",monospace;color:#1a0a42;animation:bcFloatDown 3.5s ease-in-out infinite;}
.mk-ai-copy-badge em{display:block;color:#10b981;font-style:normal;font-weight:700;font-size:.55rem;}
/* Scene 04 — Healthcare */
.hc-clinic-card{width:220px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.1);animation:bcFloatUp 4.5s ease-in-out infinite;}
.hc-clinic-header{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;padding:14px 16px;font-size:.65rem;font-weight:700;display:flex;align-items:center;gap:6px;}
.hc-clinic-body{padding:14px;}
.hc-appt-item{display:flex;align-items:center;gap:8px;padding:8px;margin-bottom:6px;background:rgba(239,68,68,.04);border-radius:8px;font-size:.5rem;color:#374151;animation:bcSlideIn .4s ease-out both;}
.hc-appt-item:nth-child(2){animation-delay:.2s}.hc-appt-item:nth-child(3){animation-delay:.4s}
.hc-appt-time{font-weight:700;color:#ef4444;font-family:"DM Mono",monospace;font-size:.5rem;white-space:nowrap;}
.hc-appt-status{margin-left:auto;padding:2px 6px;border-radius:4px;font-size:.4rem;font-weight:700;text-transform:uppercase;}
.hc-appt-status.confirmed{background:rgba(16,185,129,.1);color:#10b981;}
.hc-appt-status.pending{background:rgba(245,158,11,.1);color:#f59e0b;}
.hc-reminder-badge{position:absolute;top:20px;right:-15px;background:#fff;padding:8px 12px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.5rem;font-family:"DM Mono",monospace;color:#1a0a42;animation:bcPulse 2.5s ease-in-out infinite;}
.hc-reminder-badge strong{color:#ef4444;}
.hc-sms-badge{position:absolute;bottom:15px;left:-15px;background:#fff;padding:8px 12px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.5rem;color:#10b981;font-weight:700;animation:bcFloatDown 3s ease-in-out infinite .5s;}
/* Scene 05 — Analytics */
.an-report-card{width:260px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.1);animation:bcFloatUp 5s ease-in-out infinite;}
.an-report-header{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:14px 16px;font-size:.65rem;font-weight:700;}
.an-report-body{padding:14px;}
.an-chart-bars{display:flex;align-items:flex-end;gap:6px;height:80px;margin-bottom:12px;}
.an-c-bar{flex:1;border-radius:4px 4px 0 0;height:var(--h,50%);}
.an-c-bar:nth-child(1){background:rgba(245,158,11,.3)}.an-c-bar:nth-child(2){background:rgba(245,158,11,.5)}.an-c-bar:nth-child(3){background:rgba(245,158,11,.4)}.an-c-bar:nth-child(4){background:rgba(245,158,11,.7)}.an-c-bar:nth-child(5){background:rgba(245,158,11,.5)}.an-c-bar:nth-child(6){background:#f59e0b}.an-c-bar:nth-child(7){background:rgba(245,158,11,.6)}
.an-insight-item{display:flex;align-items:center;gap:6px;font-size:.5rem;color:#374151;padding:4px 0;}
.an-insight-dot{width:4px;height:4px;border-radius:50%;background:#f59e0b;flex-shrink:0;}
.an-auto-report-badge{position:absolute;top:15px;left:-20px;background:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.5rem;font-family:"DM Mono",monospace;color:#f59e0b;font-weight:700;animation:bcFloatDown 4s ease-in-out infinite;}
/* Scene 06 — Terminal */
.cp-deploy-terminal{width:260px;background:#1a0a42;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(26,10,66,.35);animation:bcFloatUp 4s ease-in-out infinite;}
.cp-term-bar{display:flex;gap:5px;padding:10px 14px;background:rgba(255,255,255,.05);}
.cp-term-dot{width:8px;height:8px;border-radius:50%;}
.cp-term-dot:nth-child(1){background:#ef4444}.cp-term-dot:nth-child(2){background:#f59e0b}.cp-term-dot:nth-child(3){background:#10b981}
.cp-term-body{padding:14px;font-family:"DM Mono",monospace;font-size:.5rem;line-height:1.8;color:#a78bfa;}
.cp-term-line{animation:bcSlideIn .4s ease-out both;}
.cp-term-line:nth-child(2){animation-delay:.15s}.cp-term-line:nth-child(3){animation-delay:.3s}.cp-term-line:nth-child(4){animation-delay:.45s}.cp-term-line:nth-child(5){animation-delay:.6s}.cp-term-line:nth-child(6){animation-delay:.75s}.cp-term-line:nth-child(7){animation-delay:.9s}
.cp-term-success{color:#10b981}.cp-term-cmd{color:#00b4f0}.cp-term-comment{color:rgba(167,139,250,.4)}
.cp-live-badge{position:absolute;bottom:15px;right:-10px;background:#10b981;color:#fff;padding:8px 16px;border-radius:10px;font-size:.6rem;font-weight:700;box-shadow:0 4px 20px rgba(16,185,129,.3);animation:bcPulse 2s ease-in-out infinite;}
.cp-portfolio-badge{position:absolute;top:15px;left:-15px;background:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);font-size:.5rem;font-family:"DM Mono",monospace;color:#6d28d9;font-weight:700;animation:bcFloatDown 3.5s ease-in-out infinite;}

/* ── BUILD CARDS — MOBILE RESPONSIVE ── */
@media(max-width:768px){
  .build-card-inner{grid-template-columns:1fr !important;min-height:auto !important;padding:24px 20px !important;gap:20px !important;overflow:visible !important;}
  .build-card-visual{order:-1 !important;min-height:200px !important;justify-content:center !important;}
  .build-card-text{order:1 !important;}
  .build-scene{height:200px !important;border-radius:12px !important;}
  .build-title{font-size:1.15rem !important}.build-desc{font-size:.82rem !important;line-height:1.6 !important}.build-num{font-size:.55rem !important;margin-bottom:10px !important}.build-stack{margin-top:14px !important}.stk{font-size:.55rem !important}
  .phone-mock{width:130px !important;height:200px !important;padding:8px !important;border-radius:18px !important}.phone-screen{padding:10px 8px !important;border-radius:12px !important}.phone-screen-header{font-size:.45rem !important;margin-bottom:5px !important}.lead-item{padding:5px !important;margin-bottom:4px !important;font-size:.45rem !important;gap:5px !important}.lead-dot{width:5px !important;height:5px !important}.lead-score{font-size:.4rem !important}
  .chat-window{width:180px !important}.chat-header{padding:8px 12px !important;font-size:.6rem !important}.chat-body{padding:8px !important;gap:5px !important}.msg{padding:6px 8px !important;font-size:.45rem !important;line-height:1.4 !important}.wa-typing span{width:4px !important;height:4px !important}
  .mk-dashboard{width:200px !important}.mk-dash-header{padding:10px 12px !important;font-size:.55rem !important}.mk-dash-body{padding:10px !important}.mk-metric-row{gap:5px !important;margin-bottom:6px !important}.mk-metric{padding:6px 4px !important}.mk-metric-val{font-size:.8rem !important}.mk-metric-label{font-size:.35rem !important}.mk-channel-bar{font-size:.4rem !important;padding:4px 0 !important}.mk-channel-bar span:first-child{width:36px !important}
  .hc-clinic-card{width:170px !important}.hc-clinic-header{padding:10px 12px !important;font-size:.55rem !important}.hc-clinic-body{padding:10px !important}.hc-appt-item{padding:5px !important;font-size:.4rem !important;gap:5px !important}.hc-appt-time{font-size:.4rem !important}.hc-appt-status{font-size:.3rem !important;padding:1px 4px !important}
  .an-report-card{width:190px !important}.an-report-header{padding:10px 12px !important;font-size:.55rem !important}.an-report-body{padding:10px !important}.an-chart-bars{height:50px !important;margin-bottom:8px !important}.an-insight-item{font-size:.4rem !important}
  .cp-deploy-terminal{width:190px !important}.cp-term-bar{padding:7px 10px !important}.cp-term-dot{width:6px !important;height:6px !important}.cp-term-body{padding:10px !important;font-size:.4rem !important;line-height:1.6 !important}
  .notif-bubble,.crm-badge,.auto-badge,.calendar-badge,.mk-ai-copy-badge,.hc-reminder-badge,.hc-sms-badge,.an-auto-report-badge,.cp-portfolio-badge,.cp-live-badge{display:none !important}
}
@media(max-width:420px){
  .build-scene{height:180px !important}.phone-mock{width:110px !important;height:180px !important}.chat-window{width:160px !important}.mk-dashboard{width:180px !important}.hc-clinic-card{width:155px !important}.an-report-card{width:170px !important}.cp-deploy-terminal{width:170px !important}
}

  /* ── ACADEMY DIVIDER ── */
  .academy-divider{background:linear-gradient(135deg,#1a0050,#2d1575);padding:72px 48px;display:flex;justify-content:space-between;align-items:center;gap:48px;position:relative;overflow:hidden;}
  .academy-divider::before{content:"";position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(91,33,245,.4) 0%,transparent 65%);top:-250px;right:-100px;border-radius:50%;pointer-events:none;}
  .acad-left{position:relative;z-index:1;}
  .acad-eyebrow{font-size:.63rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:rgba(196,181,253,.7);margin-bottom:16px;}
  .acad-headline{font-size:clamp(2rem,4vw,3.2rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;color:#fff;margin-bottom:12px;}
  .acad-headline em{font-family:Fraunces,serif;font-style:italic;font-weight:300;color:#c4b5fd;}
  .acad-sub{font-size:.9rem;color:rgba(196,181,253,.75);line-height:1.7;max-width:440px;font-weight:600;}
  .acad-right{display:flex;flex-direction:column;align-items:flex-end;gap:16px;position:relative;z-index:1;}
  .acad-domain{font-family:"DM Mono",monospace;font-size:1.2rem;font-weight:500;color:#c4b5fd;letter-spacing:.05em;margin-bottom:8px;}
  .btn-acad{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;padding:14px 30px;font-weight:800;font-size:.88rem;border-radius:100px;text-decoration:none;transition:all .25s;box-shadow:0 4px 24px rgba(124,58,237,.4);display:inline-block;border:none;cursor:pointer;}
  .btn-acad:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(168,85,247,.5);}
  .acad-note{font-size:.7rem;color:rgba(196,181,253,.5);font-weight:700;letter-spacing:.05em;}

  /* ── ACADEMY COURSES ── */
  .academy{background:var(--surface);}
  .academy-header{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:64px;align-items:end;}
  .acad-section-headline{font-size:clamp(2rem,4vw,3.5rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;color:#1a0050;}
  .acad-section-headline em{font-family:Fraunces,serif;font-style:italic;font-weight:300;background:linear-gradient(135deg,var(--purple),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
  .acad-section-desc{font-size:.875rem;line-height:1.8;color:var(--gray);font-weight:600;}
  .acad-powered{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:.68rem;font-weight:800;letter-spacing:.08em;color:var(--gray);background:rgba(91,33,245,.06);padding:6px 14px;border-radius:100px;border:1px solid var(--border);}
  .acad-powered img{height:16px;}

  .courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  .course-card{background:#fff;border:1.5px solid var(--border);border-radius:24px;padding:32px 28px;cursor:default;transition:transform .35s cubic-bezier(.23,1,.32,1),border-color .3s,box-shadow .3s;position:relative;overflow:hidden;}
  .course-card:hover{transform:translateY(-8px);border-color:rgba(91,33,245,.35);box-shadow:0 16px 48px rgba(91,33,245,.1);}
  .course-card::after{content:attr(data-domain);position:absolute;top:20px;right:20px;font-size:.55rem;font-family:"DM Mono",monospace;color:rgba(91,33,245,.4);font-weight:500;letter-spacing:.05em;}
  .course-emoji{font-size:1.8rem;margin-bottom:16px;display:block;}
  .course-name{font-size:1rem;font-weight:800;letter-spacing:-.01em;margin-bottom:10px;line-height:1.3;color:#1a0050;}
  .course-topics{font-size:.75rem;color:var(--gray);line-height:1.65;font-weight:600;}
  .course-badge{display:inline-block;margin-top:18px;font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:4px 11px;border-radius:100px;background:rgba(91,33,245,.08);color:var(--purple);border:1px solid rgba(91,33,245,.2);}
  .course-highlight{background:linear-gradient(135deg,#f5f3ff,#ede9fe)!important;border-color:rgba(91,33,245,.2)!important;}

  /* internship highlight */
  .intern-banner{background:linear-gradient(135deg,var(--purple),var(--purple2));border-radius:24px;padding:36px 40px;display:flex;justify-content:space-between;align-items:center;gap:32px;margin-top:20px;}
  .intern-text h3{font-size:1.3rem;font-weight:900;color:#fff;letter-spacing:-.02em;margin-bottom:8px;}
  .intern-text p{font-size:.85rem;color:rgba(255,255,255,.75);font-weight:600;max-width:420px;line-height:1.6;}
  .btn-white{background:#fff;color:var(--purple);padding:12px 28px;font-weight:800;font-size:.82rem;border-radius:100px;text-decoration:none;transition:all .25s;box-shadow:0 4px 20px rgba(0,0,0,.15);display:inline-block;white-space:nowrap;border:none;cursor:pointer;}
  .btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.2);}

  /* ── WHY US ── */
  .why{background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding:80px 6vw;}
  .why-visual{position:relative;aspect-ratio:1;max-width:440px;}
  .why-ring{position:absolute;border-radius:50%;border:1px solid;}
  .r1{inset:0;border-color:rgba(91,33,245,.15);animation:spin 28s linear infinite;}
  .r2{inset:14%;border-color:rgba(124,58,237,.12);animation:spin 18s linear infinite reverse;}
  .r3{inset:28%;border-color:rgba(167,139,250,.1);animation:spin 12s linear infinite;}
  .why-center{position:absolute;inset:30%;background:linear-gradient(135deg,var(--purple),var(--purple2));border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 48px rgba(91,33,245,.4);z-index:10;}
  .why-logo-img{width:76%;height:76%;object-fit:contain;filter:brightness(0) invert(1);}
  @keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

  /* ── WHY VISUAL — PULSE RIPPLES ── */
  .why-pulse{position:absolute;inset:30%;border-radius:50%;border:1.5px solid rgba(91,33,245,.45);pointer-events:none;z-index:2;animation:whyPulse 4.2s ease-out infinite;}
  @keyframes whyPulse{0%{transform:scale(1);opacity:.75}100%{transform:scale(2.85);opacity:0}}

  /* ── WHY VISUAL — ORBIT TRACKS & NODES ── */
  .why-orbit-track{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:4;}
  /* outer ring track — 3 industry nodes, spins forward 22s */
  .wot-r1{animation:spin 22s linear infinite;}
  /* middle ring track — 2 AI nodes, spins backward 15s */
  .wot-r2{inset:14%;animation:spin 15s linear infinite reverse;}
  /* Angular offsets: 3 nodes × 120° apart on 22s orbit */
  .wot-a{animation-delay:0s;}
  .wot-b{animation-delay:-7.33s;}
  .wot-c{animation-delay:-14.67s;}
  /* 2 nodes × 180° apart on 15s orbit */
  .wot-d{animation-delay:0s;}
  .wot-e{animation-delay:-7.5s;}
  /* Node bubbles */
  .why-orbit-node{position:absolute;top:-19px;left:calc(50% - 19px);width:38px;height:38px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 4px 16px rgba(91,33,245,.22),0 0 0 1.5px rgba(91,33,245,.1);}
  /* Industry nodes counter-rotate so emoji stays upright (cancels wot-r1's forward spin) */
  .won-industry{animation:spin 22s linear infinite reverse;}
  /* AI nodes counter-rotate (cancels wot-r2's reverse spin = spin forward) */
  .won-ai{width:30px;height:30px;top:-15px;left:calc(50% - 15px);font-size:.85rem;animation:spin 15s linear infinite;}
  .why-headline{font-size:clamp(1.8rem,3.5vw,3rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;margin-bottom:10px;color:#1a0050;}
  .why-intro{font-size:.875rem;color:var(--gray);line-height:1.7;margin-bottom:36px;font-weight:600;}
  .why-list{list-style:none;display:flex;flex-direction:column;gap:16px;}
  .why-item{display:flex;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--border);}
  .why-check{width:22px;height:22px;border-radius:50%;flex-shrink:0;margin-top:2px;background:linear-gradient(135deg,var(--purple),var(--purple2));display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:900;color:#fff;}
  .why-item-text{font-size:.82rem;line-height:1.6;color:#4a3d6e;font-weight:600;}
  .why-item-text strong{color:#1a0050;font-weight:800;}

  /* ── CTA ── */
  .cta-band{padding:90px 48px;background:linear-gradient(135deg,var(--purple) 0%,var(--purple2) 100%);display:flex;justify-content:space-between;align-items:center;gap:48px;position:relative;overflow:hidden;}
  .cta-band::before{content:"";position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 65%);top:-200px;right:-100px;border-radius:50%;pointer-events:none;}
  .cta-text{font-size:clamp(2.6rem,5.5vw,5rem);font-weight:900;letter-spacing:-.04em;line-height:1;color:#fff;position:relative;z-index:1;}
  .cta-text em{font-family:Fraunces,serif;font-style:italic;font-weight:300;color:rgba(255,255,255,.8);}
  .cta-actions{display:flex;flex-direction:column;align-items:flex-end;gap:14px;position:relative;z-index:1;}
  .cta-sub{font-size:.73rem;font-weight:700;color:rgba(255,255,255,.55);letter-spacing:.05em;}

  /* FOOTER */
  footer{background:var(--surface);border-top:1px solid var(--border);padding:60px 48px 36px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;}
  .footer-logo-img{height:44px;margin-bottom:14px;display:block;}
  .footer-tagline{font-size:.8rem;color:var(--gray);line-height:1.7;max-width:260px;font-weight:600;}
  .footer-addr{margin-top:20px;font-size:.7rem;color:#9980c8;line-height:1.7;border-left:2px solid var(--purple);padding-left:12px;font-weight:700;}
  .footer-acad-brand{margin-top:20px;display:inline-flex;align-items:center;gap:8px;font-size:.7rem;font-weight:800;color:var(--purple);background:rgba(91,33,245,.07);padding:6px 12px;border-radius:100px;border:1px solid var(--border);text-decoration:none;}
  .footer-col-title{font-size:.6rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--purple);margin-bottom:20px;}
  .footer-links{list-style:none;display:flex;flex-direction:column;gap:11px;}
  .footer-links a{color:var(--gray);text-decoration:none;font-size:.8rem;font-weight:700;transition:color .2s;}
  .footer-links a:hover{color:var(--purple);}
  .footer-bottom{grid-column:1/-1;margin-top:44px;padding-top:22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:.68rem;color:#c4b8e0;font-weight:700;}

  /* ── PERFORMANCE: will-change hints for GPU-composited layers ── */
  .why-ring,.why-orbit-track{will-change:transform;}
  .why-pulse{will-change:transform,opacity;}
  .spark{will-change:transform,opacity;}
  .marquee-track{will-change:transform;}

  /* ── MOBILE NAV HAMBURGER ── */
  .nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;padding:8px;width:40px;height:40px;cursor:pointer;flex-shrink:0;z-index:300;}
  .nav-hamburger span{display:block;width:22px;height:2px;background:var(--white);border-radius:2px;transition:transform .3s,opacity .3s;}
  .nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
  .nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .nav-overlay{position:fixed;inset:0;background:rgba(26,0,80,.45);z-index:198;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;}
  .nav-overlay.open{opacity:1;visibility:visible;}

  /* ── RESPONSIVE: 960px — Tablet / Mobile ── */
  @media(max-width:960px){
    nav{padding:14px 20px;z-index:200;}
    .nav-hamburger{display:flex;}
    /* Slide-in mobile nav drawer */
    .nav-links{
      position:fixed;top:0;right:-100%;
      width:min(300px,85vw);height:100vh;
      background:#fff;flex-direction:column;gap:0;
      padding:72px 0 40px;
      box-shadow:-8px 0 48px rgba(91,33,245,.18);
      transition:right .35s cubic-bezier(.23,1,.32,1);
      z-index:199;list-style:none;display:flex;
      overflow-y:auto;
    }
    .nav-links.open{right:0;}
    .nav-links li a{display:block;padding:18px 28px;font-size:.95rem;font-weight:700;border-bottom:1px solid var(--border);color:var(--white);letter-spacing:.02em;}
    .nav-links li a:hover,.nav-links li a:focus{color:var(--purple);background:rgba(91,33,245,.04);}

    section,.why,.cta-band,.academy-divider,footer{padding:72px 24px;}
    .hero{padding:96px 24px 72px;grid-template-columns:1fr;min-height:auto;} .hero-right{display:none;}
    .systems-grid,.courses-grid{grid-template-columns:1fr;}
    .systems-header{flex-direction:column;gap:24px;}
    .academy-header{grid-template-columns:1fr;gap:24px;}
    .why{grid-template-columns:1fr;gap:48px;} .why-visual{display:flex;justify-content:center;max-width:280px;margin:0 auto;}
    .cta-band{flex-direction:column;text-align:center;padding:72px 24px;} .cta-actions{align-items:center;}
    footer{grid-template-columns:1fr 1fr;gap:36px;}
    .academy-divider{flex-direction:column;} .acad-right{align-items:flex-start;}
    .intern-banner{flex-direction:column;}
    .footer-bottom{flex-direction:column;gap:8px;text-align:center;}
    .builds-header{grid-template-columns:1fr;gap:24px;}
  }

  /* ── RESPONSIVE: 768px — Tablet portrait / Mobile ── */
  @media(max-width:768px){
    nav{padding:12px 16px;}
    .logo-img{height:32px;}
    /* Row layout: tagline beside logo, <br> creates 2 lines.
       logo-wrap can shrink (min-width:0; flex-shrink:1) to absorb pressure.
       nav-right is locked (flex-shrink:0) so the CTA never breaks. */
    .logo-wrap{flex-direction:row;align-items:center;gap:8px;min-width:0;flex-shrink:1;}
    .logo-sub{display:block;font-size:.5rem;letter-spacing:.1em;line-height:1.4;padding-left:8px;}
    .nav-right{flex-shrink:0;gap:8px;}
    .nav-cta{white-space:nowrap;}
    .nav-wa-label{display:none;}
    .nav-wa{padding:9px;border-radius:50%;}
    section,.why,.cta-band,footer{padding:64px 20px;}
    .industries{padding:64px 20px 48px;}
    /* Hero: stack left above right, tighten gap */
    .hero{padding:80px 20px 56px;gap:28px;}
    /* Re-show the animation panel below the CTA */
    .hero-right{
      display:flex;
      justify-content:center;
      align-items:flex-start;
      width:100%;
      overflow:hidden; /* prevent any widget bleed */
    }
    /* Contain the widget: fixed height, lighter shadow, no scroll-induced jank */
    #industryWidget{
      min-height:unset;
      height:460px;
      max-height:460px;
      box-shadow:0 8px 32px rgba(91,33,245,.15),0 0 0 1px rgba(91,33,245,.1);
      border-radius:16px;
      /* keep the fadeUp animation but skip the long delay on mobile */
      animation-delay:.1s;
    }
    /* Remove the fixed-height constraint from the panels container */
    .iw-panels{min-height:unset;height:100%;}
    /* Drop the bar chart — saves ~64px of vertical space */
    .iw-chart{display:none;}
    .hero-headline{font-size:clamp(2rem,6vw,2.8rem);}
    .hero-sub{font-size:.9rem;}
    .systems-grid{grid-template-columns:1fr;}
    .ind-block-grid{grid-template-columns:1fr;gap:36px;}
    .ind-block-alt .ind-block-grid{direction:ltr;}
    .why{padding:60px 20px;}
    .why-visual{max-width:260px;}
    footer{grid-template-columns:1fr;gap:28px;}
    .cta-text{font-size:clamp(2.2rem,7vw,3.5rem);}
    .systems-headline{font-size:clamp(1.9rem,5vw,3rem);}
  }

  /* ── RESPONSIVE: 480px — Mobile ── */
  @media(max-width:480px){
    nav{padding:10px 14px;}
    .logo-img{height:28px;}
    .logo-wrap{gap:6px;}
    .logo-sub{font-size:.45rem;letter-spacing:.07em;}
    .nav-cta{padding:8px 12px;font-size:.68rem;}
    .hero{padding:70px 16px 48px;gap:24px;}
    .hero-kicker{font-size:.65rem;padding:5px 12px 5px 8px;margin-bottom:20px;}
    .hero-headline{font-size:clamp(1.85rem,7.5vw,2.4rem);letter-spacing:-.025em;}
    .hero-sub{font-size:.88rem;}
    .hero-industries{gap:6px;}
    .ind-pill{font-size:.62rem;padding:4px 10px;}
    .hero-btns{flex-direction:column;gap:10px;align-items:stretch;}
    .hero-btns .btn-glow,.hero-btns .btn-ghost{width:100%;text-align:center;padding:14px 20px;}
    /* Widget showcase — 1-row metrics layout (3 equal cols).
       Content audit: tabs ~39px + header ~30px + metrics 1 row ~58px +
       feed ×3 ~160px + gaps + panel padding = ~360px minimum.
       440px gives ~80px of comfortable feed breathing room. */
    #industryWidget{height:440px;max-height:440px;}
    .iw-workflow{display:none;}
    .iw-panel{padding:20px 18px 18px;gap:14px;}
    .iw-panel-title{font-size:.88rem;}
    .iw-panel-sub{font-size:.68rem;}
    /* Narrower cards to fit all 3 in one row */
    .iw-metric{padding:10px 8px;}
    .iw-metric-val{font-size:1.35rem;}
    .iw-metric-key{font-size:.56rem;letter-spacing:.06em;}
    .iw-feed{gap:8px;}
    .iw-feed-item{padding:10px 12px;gap:10px;}
    .feed-icon{width:28px;height:28px;font-size:.8rem;}
    .iw-tabs .iw-tab{font-size:.66rem;padding:14px 6px;gap:5px;}
    section,.why,.industries,.cta-band,footer{padding:56px 16px;}
    .why{gap:36px;}
    .why-visual{max-width:240px;}
    .why-headline{font-size:clamp(1.5rem,6vw,2rem);}
    .cta-text{font-size:clamp(1.9rem,8vw,2.8rem);}
    .cta-band{padding:56px 16px;}
    .ind-headline{font-size:clamp(1.7rem,6vw,2.2rem);}
    .ind-block-title{font-size:1.25rem;}
    .ind-block-desc{font-size:.88rem;}
    .sec-label{font-size:.6rem;margin-bottom:36px;}
    .systems-headline{font-size:clamp(1.7rem,6.5vw,2.6rem);}
    .sys-card{padding:28px 22px;}
    footer{padding:48px 16px 28px;}
    .footer-bottom{font-size:.62rem;}
    .academy-ref-band{padding:28px 20px;}
  }

  /* ── RESPONSIVE: 360px — Small mobile ── */
  @media(max-width:360px){
    .hero-headline{font-size:1.7rem;}
    .hero-sub{font-size:.82rem;}
    .btn-glow,.btn-ghost{font-size:.82rem;}
    .ind-pill{font-size:.58rem;padding:4px 8px;}
    .hero-kicker{font-size:.6rem;}
    nav{padding:10px 12px;}
    .logo-img{height:28px;}
    .logo-sub{display:none;}   /* too cramped at this width — tagline hidden */
    .logo-wrap{gap:0;}
    .nav-cta{padding:7px 12px;font-size:.66rem;}
  }

  /* ── PREFERS-REDUCED-MOTION ── */
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{
      animation-duration:.01ms!important;
      animation-iteration-count:1!important;
      transition-duration:.01ms!important;
      scroll-behavior:auto!important;
    }
  }

  /* ── INDUSTRIES SECTION ── */
  .industries{padding:80px 6vw 60px;background:#fff;}
  .ind-header{max-width:720px;margin:0 auto 72px;text-align:center;}
  .ind-headline{font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.15;margin-bottom:16px;color:#0f172a;}
  .ind-headline em{font-style:italic;color:var(--purple);}
  .ind-sub{font-size:1rem;color:#64748b;line-height:1.7;}

  .ind-block{padding:64px 0;border-top:1px solid #f1f5f9;}
  .ind-block:first-of-type{border-top:none;}
  .ind-block-label{display:inline-flex;align-items:center;gap:10px;font-size:.63rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--purple);margin-bottom:32px;}
  .ind-block-label::before{content:"";width:28px;height:2px;background:var(--purple);display:inline-block;border-radius:2px;}
  .ind-block-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .ind-block-alt .ind-block-grid{direction:rtl;}
  .ind-block-alt .ind-block-grid > *{direction:ltr;}

  .ind-block-title{font-size:clamp(1.5rem,2.5vw,2.1rem);font-weight:900;line-height:1.2;color:#0f172a;margin-bottom:16px;}
  .ind-block-desc{font-size:.95rem;color:#64748b;line-height:1.75;margin-bottom:28px;}
  .ind-feat-list{list-style:none;padding:0;margin:0 0 32px;display:flex;flex-direction:column;gap:12px;}
  .ind-feat-list li{display:flex;align-items:flex-start;gap:12px;font-size:.88rem;color:#334155;line-height:1.5;}
  .ind-feat-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px;}
  .ind-cta{display:inline-flex;align-items:center;gap:6px;background:var(--purple);color:#fff;padding:12px 22px;border-radius:8px;font-size:.82rem;font-weight:700;text-decoration:none;transition:opacity .2s;}
  .ind-cta:hover{opacity:.85;}

  /* Industry Widgets */
  .ind-widget{background:#fff;border:1px solid #e8edf5;border-radius:16px;padding:20px;box-shadow:0 4px 24px rgba(91,33,245,.07);}
  .ind-widget-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:.78rem;font-weight:700;color:#334155;}
  .ind-widget-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .ind-widget-dot.green{background:#16a34a;}
  .ind-widget-dot.blue{background:#06b6d4;}
  .ind-widget-dot.purple{background:#7c3aed;}
  .ind-widget-title{flex:1;}
  .ind-widget-live{font-size:.68rem;color:#16a34a;font-weight:700;animation:livePulse 2s ease-in-out infinite;}
  @keyframes livePulse{0%,100%{opacity:1}50%{opacity:.4}}

  /* Real Estate Widget */
  .re-stages{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
  .re-stage{display:grid;grid-template-columns:140px 1fr 32px;align-items:center;gap:10px;}
  .re-stage-label{font-size:.72rem;color:#64748b;font-weight:600;}
  .re-stage-bar{background:#f1f5f9;border-radius:4px;height:8px;overflow:hidden;}
  .re-stage-fill{height:100%;border-radius:4px;transition:width 1s ease;}
  .re-stage-num{font-size:.78rem;font-weight:800;color:#0f172a;text-align:right;}
  .re-widget-footer{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid #f1f5f9;font-size:.75rem;color:#64748b;}
  .re-metric strong{color:#0f172a;}
  .green-text{color:#16a34a !important;}

  /* Healthcare Widget */
  .hc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
  .hc-stat-card{background:#f8fafc;border-radius:10px;padding:14px;text-align:center;}
  .hc-stat-num{font-size:1.8rem;font-weight:900;line-height:1;}
  .hc-stat-label{font-size:.68rem;color:#64748b;margin-top:4px;line-height:1.3;}
  .hc-log{display:flex;flex-direction:column;gap:6px;}
  .hc-log-row{display:flex;gap:10px;font-size:.72rem;align-items:baseline;}
  .hc-log-time{color:#94a3b8;font-family:'DM Mono',monospace;flex-shrink:0;}
  .hc-log-msg{color:#475569;}
  .hc-log-active .hc-log-msg{color:#5b21f5;font-weight:700;}

  /* Education Widget */
  .ed-funnel{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
  .ed-funnel-row{display:grid;grid-template-columns:140px 1fr 36px;align-items:center;gap:10px;}
  .ed-funnel-label{font-size:.72rem;color:#64748b;font-weight:600;}
  .ed-funnel-track{background:#f1f5f9;border-radius:4px;height:8px;overflow:hidden;}
  .ed-funnel-bar{height:100%;border-radius:4px;}
  .ed-funnel-n{font-size:.78rem;font-weight:800;color:#0f172a;text-align:right;}
  .ed-widget-tags{display:flex;flex-wrap:wrap;gap:8px;}
  .ed-tag{font-size:.68rem;background:#f1f5f9;color:#475569;padding:4px 10px;border-radius:20px;font-weight:600;}
  .ed-tag.green-tag{background:#dcfce7;color:#16a34a;}

  /* Academy Reference Band */
  .academy-ref-band{margin-top:48px;background:linear-gradient(135deg,#1e1040 0%,#2d1b69 100%);border-radius:20px;padding:36px 40px;}
  .academy-ref-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
  .academy-ref-eyebrow{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#a78bfa;margin-bottom:6px;}
  .academy-ref-title{font-size:1rem;color:#e2d9f3;line-height:1.5;}
  .academy-ref-title strong{color:#fff;}
  .academy-ref-link{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;padding:12px 22px;border-radius:8px;font-size:.82rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s;}
  .academy-ref-link:hover{background:rgba(255,255,255,.2);}

  @media(max-width:900px){
    .ind-block-grid{grid-template-columns:1fr;}
    .ind-block-alt .ind-block-grid{direction:ltr;}
    .ind-block-alt .ind-block-grid > *{direction:ltr;}
    .re-stage{grid-template-columns:110px 1fr 28px;}
    .ed-funnel-row{grid-template-columns:110px 1fr 30px;}
    .academy-ref-inner{flex-direction:column;text-align:center;}
    .academy-ref-link{align-self:center;}
    /* widget label column tighter */
    .re-stage-label,.ed-funnel-label{font-size:.68rem;}
  }
  @media(max-width:480px){
    .re-stage{grid-template-columns:90px 1fr 24px;}
    .ed-funnel-row{grid-template-columns:90px 1fr 26px;}
    .hc-grid{grid-template-columns:1fr 1fr;}
    /* 3 equal columns — all stat cards stay on one line */
    .iw-metrics{grid-template-columns:repeat(3,1fr);gap:6px;}
    /* reset the 2-col orphan rule that dropped card 3 to a new row */
    .iw-metric:last-child{grid-column:unset;max-width:unset;margin:0;}
    .wf-step{font-size:.6rem;gap:3px;}
    .wf-step-icon{width:22px;height:22px;font-size:.75rem;}
    .wf-arrow{margin:0 2px;font-size:.7rem;}
  }

  /* ══════════════════════════════════════════
     CONTACT SECTION
  ══════════════════════════════════════════ */
  .contact-section {
    position: relative;
    padding: 52px 48px 80px;
    background: var(--surface);
    overflow: hidden;
  }

  /* Dot-grid background — mirrors hero pattern */
  .contact-bg-grid {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(91,33,245,.08) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
  }

  /* Ambient glow — top-right */
  .contact-glow {
    position: absolute;
    width: 700px;
    height: 700px;
    background: radial-gradient(circle, rgba(91,33,245,.09) 0%, transparent 65%);
    top: -200px;
    right: -150px;
    border-radius: 50%;
    pointer-events: none;
  }

  .contact-inner {
    max-width: 860px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }

  /* ── Header ── */
  .contact-header {
    text-align: center;
    margin-bottom: 20px;
  }

  .contact-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(91,33,245,.07);
    border: 1px solid rgba(91,33,245,.18);
    padding: 6px 16px 6px 10px;
    border-radius: 100px;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--purple);
    margin-bottom: 10px;
  }

  .contact-headline {
    font-size: clamp(1.9rem, 3.5vw, 3rem);
    font-weight: 900;
    line-height: 1.08;
    color: #0f172a;
    letter-spacing: -.03em;
    margin-bottom: 10px;
  }

  /* Gradient text span inside headline */
  .ch-purple {
    background: linear-gradient(135deg, var(--purple), var(--purple2));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .contact-sub {
    font-size: .97rem;
    color: var(--gray);
    line-height: 1.75;
    max-width: 520px;
    margin: 0 auto;
    font-weight: 600;
  }
  .contact-direct { margin-top:14px; font-size:.76rem; color:var(--gray); font-weight:600; text-align:center; opacity:.85; }
  .contact-direct a { color:var(--gray); text-decoration:underline; text-underline-offset:2px; font-weight:700; transition:color .2s; }
  .contact-direct a:hover { color:var(--purple); }

  /* ── Card ── */
  .contact-card {
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 20px 80px rgba(91,33,245,.11), 0 0 0 1px rgba(91,33,245,.08);
    padding: 36px 48px;
  }

  /* ── Honeypot: visually hidden, accessible ── */
  .form-honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  /* ── Two-column field grid ── */
  .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 28px;
    margin-bottom: 32px;
  }

  .form-group {
    display: flex;
    flex-direction: column;
    gap: 7px;
  }

  /* Full-width fields span both columns */
  .form-group.full {
    grid-column: 1 / -1;
  }

  /* ── Labels ── */
  .form-label {
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--purple);
  }

  .form-req { color: #e11d48; }

  /* ── Inputs, selects, textarea ── */
  .form-input,
  .form-select,
  .form-textarea {
    font-family: Nunito, sans-serif;
    font-size: .88rem;
    font-weight: 600;
    color: #1a0050;
    background: #faf8ff;
    border: 1.5px solid rgba(91,33,245,.16);
    border-radius: 10px;
    padding: 12px 16px;
    outline: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
  }

  .form-input::placeholder,
  .form-textarea::placeholder {
    color: #b4a8d0;
    font-weight: 500;
  }

  .form-input:hover,
  .form-select:hover,
  .form-textarea:hover {
    border-color: rgba(91,33,245,.35);
  }

  .form-input:focus,
  .form-select:focus,
  .form-textarea:focus {
    border-color: var(--purple);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(91,33,245,.1);
  }

  /* Custom dropdown arrow — purple chevron */
  .form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235b21f5' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 38px;
    cursor: pointer;
  }

  .form-select option { color: #1a0050; background: #fff; }

  /* Textarea */
  .form-textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.65;
  }

  /* ── Submit CTA ── */
  .form-cta {
    width: 100%;
    padding: 16px 32px;
    background: linear-gradient(135deg, var(--purple), var(--purple2));
    color: #fff;
    font-family: Nunito, sans-serif;
    font-size: .92rem;
    font-weight: 800;
    letter-spacing: .04em;
    border: none;
    border-radius: 100px;
    cursor: pointer;
    transition: transform .25s, box-shadow .25s;
    box-shadow: 0 6px 28px rgba(91,33,245,.32);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  @keyframes btn-spin { to { transform: rotate(360deg); } }

  .btn-spinner {
    width: 15px;
    height: 15px;
    border: 2.5px solid rgba(255,255,255,.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btn-spin .7s linear infinite;
    flex-shrink: 0;
  }

  .form-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 44px rgba(91,33,245,.45);
  }

  .form-cta:active { transform: translateY(0); }

  /* ── Contact responsive ── */
  @media (max-width: 860px) {
    .contact-section { padding: 44px 24px 64px; }
    .contact-card    { padding: 32px 32px; }
  }

  @media (max-width: 768px) {
    .contact-section     { padding: 36px 20px 52px; }
    .contact-header      { margin-bottom: 14px; }
    .contact-kicker      { margin-bottom: 8px; }
    .contact-headline    { font-size: 1.8rem; line-height: 1.08; margin-bottom: 8px; }
    .contact-sub         { font-size: .88rem; line-height: 1.65; }
    .contact-trust-strip { margin-bottom: 12px; }
    .contact-card        { padding: 24px 20px 28px; border-radius: 18px; }
  }

  @media (max-width: 600px) {
    .contact-section  { padding: 28px 16px 44px; }
    .contact-header   { margin-bottom: 12px; }
    .contact-kicker   { margin-bottom: 6px; }
    .contact-headline { font-size: 1.6rem; margin-bottom: 6px; }
    .contact-card     { padding: 20px 16px 24px; border-radius: 16px; }
    .form-grid        { grid-template-columns: 1fr; gap: 16px; }
    .form-group.full  { grid-column: 1; }
  }

  /* ══════════════════════════════════════════
     STEP 2 — TRUST STRIP & MICRO-COMMITMENT
  ══════════════════════════════════════════ */
  .contact-micro {
    font-size: .82rem;
    color: var(--gray);
    font-style: italic;
    font-weight: 600;
    margin-top: 10px;
    opacity: .82;
  }

  .contact-trust-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
  }

  .trust-item {
    font-size: .76rem;
    font-weight: 700;
    color: var(--gray);
    white-space: nowrap;
  }

  .trust-sep {
    color: var(--border);
    font-size: .8rem;
    font-weight: 400;
  }

  @media (max-width: 600px) {
    .trust-sep  { display: none; }
    .trust-item { font-size: .72rem; }
    .contact-trust-strip { gap: 6px; margin-bottom: 10px; }
  }

  /* ══════════════════════════════════════════
     STEP 4 — PRE-CONTACT CTA STRIP
  ══════════════════════════════════════════ */
  .cta-pre-contact {
    padding: 80px 48px;
    background: linear-gradient(135deg, var(--purple) 0%, var(--purple2) 100%);
    position: relative;
    overflow: hidden;
    text-align: center;
  }

  /* Ambient orb behind the text */
  .cta-pre-contact::before {
    content: "";
    position: absolute;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 65%);
    top: -200px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%;
    pointer-events: none;
  }

  .cpc-inner {
    position: relative;
    z-index: 1;
    max-width: 640px;
    margin: 0 auto;
  }

  .cpc-headline {
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    font-weight: 900;
    line-height: 1.2;
    color: #fff;
    letter-spacing: -.025em;
    margin-bottom: 16px;
  }

  .cpc-accent { opacity: .88; }

  .cpc-text {
    font-size: .97rem;
    color: rgba(255,255,255,.82);
    line-height: 1.7;
    margin-bottom: 32px;
    font-weight: 600;
  }

  /* Inverted button — white pill with purple text */
  .cpc-btn {
    background: #fff !important;
    color: var(--purple) !important;
    box-shadow: 0 6px 28px rgba(0,0,0,.18) !important;
  }

  .cpc-btn:hover {
    box-shadow: 0 10px 40px rgba(0,0,0,.28) !important;
  }

  @media (max-width: 860px) { .cta-pre-contact { padding: 64px 24px; } }
  @media (max-width: 600px) {
    .cta-pre-contact { padding: 56px 16px; }
    .cpc-headline    { font-size: 1.6rem; }
  }

  /* ══════════════════════════════════════════
     STEP 5 — HERO TRUST CREDIBILITY LINE
  ══════════════════════════════════════════ */
  .hero-trust {
    font-size: .72rem;
    color: var(--gray);
    font-weight: 700;
    letter-spacing: .03em;
    margin-top: 16px;
    opacity: .72;
  }


  /* ══════════════════════════════════════════
     FORM STATUS & THANK-YOU STATE
  ══════════════════════════════════════════ */

  /* Status bar — empty by default, shown on error */
  .form-status { margin-bottom: 12px; min-height: 0; }

  .form-status--error {
    font-size: .82rem;
    font-weight: 700;
    color: #e11d48;
    background: rgba(225,29,72,.06);
    border: 1px solid rgba(225,29,72,.2);
    border-radius: 8px;
    padding: 10px 14px;
  }

  /* Thank-you card — hidden until JS removes [hidden] */
.form-status--loading::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid #ccc;
  border-top-color: #0a84ff;
  border-radius: 50%;
  margin-right: 8px;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.thank-you-card.show {
  display: flex;   /* keeps flex gap/align — was block which broke layout */
  opacity: 1;
}

  .thank-you-card {
    display: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px 0 8px;
    gap: 16px;
  }

  .thank-you-card h3 {
    font-size: 1.35rem;
    font-weight: 900;
    color: #0f172a;
    letter-spacing: -.02em;
    line-height: 1.25;
    max-width: 460px;
  }

  .thank-you-card p {
    font-size: .92rem;
    color: var(--gray);
    line-height: 1.75;
    font-weight: 600;
    max-width: 420px;
  }

  /* Override the full-width rule that .form-cta normally carries */
  .thank-you-btn {
    width: auto !important;
    padding: 13px 32px !important;
    margin-top: 8px;
  }

/* ══════════════════════════════════════════════════════════════════
   CHATBOT WIDGET  (all selectors prefixed bpch-)
   ══════════════════════════════════════════════════════════════════ */

/* ── Entrance: slides up + fades in after page settles ── */
@keyframes bpEnter {
  0%   { opacity: 0; transform: translateY(14px) scale(.95); }
  100% { opacity: 1; transform: translateY(0)    scale(1);   }
}

/* ── Pulse animation (active when prompt bubble is visible) ── */
@keyframes bpPulse {
  0%   { box-shadow: 0 6px 24px rgba(91,33,245,.45), 0 0 0 0   rgba(91,33,245,.55); }
  65%  { box-shadow: 0 6px 24px rgba(91,33,245,.45), 0 0 0 16px rgba(91,33,245,.0); }
  100% { box-shadow: 0 6px 24px rgba(91,33,245,.45), 0 0 0 0   rgba(91,33,245,.0); }
}

/* ── Root container (fixed anchor for toggle + panel) ── */
.bpch-root {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  overflow: visible;
  animation: bpEnter .45s cubic-bezier(.2,.8,.2,1) .7s both;
}

/* ── Toggle bubble ── */
.bpch-toggle {
  height: 46px;
  border-radius: 100px;
  padding: 0 18px 0 14px;
  gap: 8px;
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, var(--purple), var(--purple2));
  /* Dual-layer shadow: primary lift + close ambient — stronger than WA button */
  box-shadow: 0 6px 24px rgba(91,33,245,.48), 0 2px 10px rgba(91,33,245,.24);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: transform .2s, box-shadow .2s;
  flex-shrink: 0;
  color: #fff;
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .01em;
  white-space: nowrap;
}
.bpch-toggle:hover {
  transform: scale(1.04);
  box-shadow: 0 10px 32px rgba(91,33,245,.55);
}
/* Pulse only active while prompt bubble is showing */
.bpch-toggle--pulse {
  animation: bpPulse 2s ease-out infinite;
}
/* Icon wrapper keeps SVGs absolutely stacked within a fixed box */
.bpch-toggle-icon {
  position: relative;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.bpch-toggle-icon svg {
  width: 22px;
  height: 22px;
  color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  transition: opacity .18s, transform .18s;
}
.bpch-toggle-label {
  color: #fff;
  line-height: 1;
}
/* Hide label when panel is open (show X icon only) */
.bpch-toggle--open .bpch-toggle-label {
  display: none;
}
/* Adjust padding when label is hidden */
.bpch-toggle--open {
  padding: 0 14px;
}
.bpch-ico-close {
  opacity: 0;
  transform: rotate(-45deg) scale(.7);
}
.bpch-toggle--open .bpch-ico-chat {
  opacity: 0;
  transform: rotate(45deg) scale(.7);
}
.bpch-toggle--open .bpch-ico-close {
  opacity: 1;
  transform: rotate(0) scale(1);
}

/* ── Panel ── */
.bpch-panel {
  position: absolute;
  bottom: calc(100% + 12px);
  right: 0;
  width: 360px;
  max-height: 520px;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 24px 64px rgba(15,10,30,.18), 0 8px 24px rgba(91,33,245,.12);
  overflow: hidden;
  /* hidden state */
  opacity: 0;
  transform: translateY(14px) scale(.97);
  pointer-events: none;
  visibility: hidden;
  transition: opacity .22s ease, transform .22s ease;
}
.bpch-panel--open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
  visibility: visible;
}

/* ── Prompt bubble ── */
/*
   SHOW/HIDE TECHNIQUE: pure transition, no keyframe animation.
   visibility is delayed on hide (waits for opacity to fade first).
   visibility shows instantly on show (no delay), then opacity/transform animate in.
   This avoids the animation-vs-base-opacity conflict that was causing the bug.
*/
.bpch-prompt {
  position: absolute;
  bottom: calc(100% + 18px); /* extra gap for the tail shadow to breathe */
  right: 0;
  width: 288px;
  background: linear-gradient(160deg, #ffffff 0%, #f8f7ff 100%);
  border-radius: 16px;
  padding: 16px 38px 16px 18px;
  /* Multi-layer shadow: ambient, mid-depth, far-depth + 1px ring as border */
  box-shadow:
    0 0 0 1px rgba(91,33,245,.1),
    0 2px 6px rgba(15,10,30,.07),
    0 8px 20px rgba(15,10,30,.12),
    0 20px 52px rgba(15,10,30,.16);
  cursor: pointer;
  /* hidden state */
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transform: translateY(14px);
  /* delay visibility:hidden until after the fade completes */
  transition: opacity .3s ease,
              transform .3s cubic-bezier(.23,1,.32,1),
              visibility 0s linear .3s;
}
/*
  Tail positioning: right value = toggle_width / 2, so the arrow visually
  points at the horizontal center of the chat button.
  Desktop toggle (natural pill width ≈ 176px): center ≈ 88px from right.
  Mobile override below sets 70px (center of 140px pill).
*/
/* Tail border layer — slightly larger triangle in border colour */
.bpch-prompt::before {
  content: '';
  position: absolute;
  bottom: -10px;
  right: 88px;
  width: 0;
  height: 0;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-top: 9px solid rgba(91,33,245,.12);
  pointer-events: none; /* decorative only — must not intercept clicks below bubble */
}
/* Tail white fill — sits on top of the border layer */
.bpch-prompt::after {
  content: '';
  position: absolute;
  bottom: -8px;
  right: 88px;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #f8f7ff; /* matches gradient end */
  pointer-events: none; /* decorative only — must not intercept clicks below bubble */
}
.bpch-prompt--visible {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transform: translateY(0);
  /* visibility shows immediately (0s delay), then opacity/transform animate */
  transition: opacity .3s ease,
              transform .3s cubic-bezier(.23,1,.32,1),
              visibility 0s linear 0s;
}
.bpch-prompt-text {
  font-family: Nunito, sans-serif;
  font-size: .84rem;
  font-weight: 700;
  color: #0d0520; /* near-black for maximum contrast */
  line-height: 1.55;
  margin: 0;
  letter-spacing: -.01em;
}
.bpch-prompt-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 22px;
  height: 22px;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  transition: background .15s, color .15s;
  flex-shrink: 0;
}
.bpch-prompt-close:hover {
  background: #ede9f8;
  color: #4c2faa;
}

/* ── Panel header ── */
.bpch-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: linear-gradient(135deg, #1a0a3c 0%, #0f0620 100%);
  flex-shrink: 0;
}
.bpch-hd-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.bpch-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}
.bpch-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bpch-name {
  font-family: Nunito, sans-serif;
  font-size: .88rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: .01em;
}
.bpch-status {
  font-family: Nunito, sans-serif;
  font-size: .72rem;
  font-weight: 600;
  color: rgba(255,255,255,.65);
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 1px;
}
.bpch-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #4ade80;
  flex-shrink: 0;
}
.bpch-close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: background .15s;
}
.bpch-close:hover { background: rgba(255,255,255,.1); }
.bpch-close svg {
  width: 18px;
  height: 18px;
  color: rgba(255,255,255,.7);
}

/* ── Messages area ── */
.bpch-messages {
  flex: 1;
  min-height: 0; /* CRITICAL: flex child defaults to min-height:auto (content size).
                    Without this, the panel grows instead of the messages scrolling. */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; /* smooth momentum scroll on iOS */
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  scroll-behavior: smooth;
}
.bpch-messages::-webkit-scrollbar { width: 4px; }
.bpch-messages::-webkit-scrollbar-thumb {
  background: rgba(91,33,245,.2);
  border-radius: 4px;
}

/* ── Individual messages ── */
.bpch-msg { display: flex; }
.bpch-msg--bot  { justify-content: flex-start; }
.bpch-msg--user { justify-content: flex-end; }

.bpch-bubble {
  max-width: 82%;
  padding: 10px 14px;
  border-radius: 16px;
  font-family: Nunito, sans-serif;
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.55;
}
.bpch-msg--bot .bpch-bubble {
  background: #f4f1ff;
  color: #1a0a3c;
  border-radius: 4px 16px 16px 16px;
}
.bpch-msg--user .bpch-bubble {
  background: linear-gradient(135deg, var(--purple), var(--purple2));
  color: #fff;
  border-radius: 16px 16px 4px 16px;
}

/* ── Typing indicator ── */
@keyframes bpDot {
  0%, 70%, 100% { transform: translateY(0); opacity: .4; }
  35%            { transform: translateY(-5px); opacity: 1; }
}
.bpch-typing {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 11px 16px;
  background: #f4f1ff;
  border-radius: 4px 16px 16px 16px;
  width: fit-content;
}
.bpch-typing span {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--purple);
  animation: bpDot 1.1s infinite ease-in-out;
}
.bpch-typing span:nth-child(2) { animation-delay: .18s; }
.bpch-typing span:nth-child(3) { animation-delay: .36s; }

/* ── Input area ── */
.bpch-input-area {
  padding: 10px 12px 12px;
  background: #faf9ff;
  border-top: 1px solid rgba(91,33,245,.08);
  flex-shrink: 0;
}

/* ── Quick reply buttons ── */
.bpch-replies {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.bpch-reply {
  padding: 8px 14px;
  border-radius: 100px;
  border: 1.5px solid rgba(91,33,245,.3);
  background: #fff;
  color: var(--purple);
  font-family: Nunito, sans-serif;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s, transform .12s;
  white-space: nowrap;
}
.bpch-reply:hover:not(:disabled) {
  background: var(--purple);
  color: #fff;
  border-color: var(--purple);
  transform: translateY(-1px);
}
.bpch-reply--picked {
  background: linear-gradient(135deg, var(--purple), var(--purple2));
  color: #fff;
  border-color: transparent;
}
.bpch-reply:disabled { opacity: .5; cursor: default; }

/* ── Text input ── */
.bpch-input-wrap {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}
.bpch-field {
  flex: 1;
  padding: 10px 12px;
  border: 1.5px solid rgba(91,33,245,.2);
  border-radius: 12px;
  font-family: Nunito, sans-serif;
  font-size: .82rem;
  font-weight: 600;
  color: #1a0a3c;
  background: #fff;
  outline: none;
  resize: none;
  transition: border-color .15s;
}
.bpch-field:focus { border-color: var(--purple); }
.bpch-field--area { resize: none; }
.bpch-field--error { border-color: #e11d48 !important; }
.bpch-field-err {
  font-family: Nunito, sans-serif;
  font-size: .74rem;
  font-weight: 700;
  color: #e11d48;
  margin-top: 5px;
}
.bpch-send {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, var(--purple), var(--purple2));
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform .15s, box-shadow .15s;
}
.bpch-send:hover:not(:disabled) {
  transform: scale(1.08);
  box-shadow: 0 4px 16px rgba(91,33,245,.4);
}
.bpch-send:disabled { opacity: .5; cursor: default; }
.bpch-send svg { width: 16px; height: 16px; }

/* Phone input widget */
.bpch-phone-wrap { align-items: center; }
.bpch-phone-container { position: relative; width: 100%; }
/* Trigger button */
.bpch-phone-trigger {
  display: flex; align-items: center; gap: 4px;
  background: none; border: none; cursor: pointer; padding: 0;
  flex-shrink: 0;
}
.bpch-phone-caret { width: 10px; height: 6px; color: #9ca3af; flex-shrink: 0; }
/* Dropdown panel */
.bpch-phone-dropdown {
  display: none; position: absolute; bottom: calc(100% + 6px); left: 0;
  width: 240px; background: #fff; border: 1px solid rgba(91,33,245,.18);
  border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,.14);
  z-index: 9999; overflow: hidden;
}
.bpch-phone-dropdown.open { display: flex; flex-direction: column; }
.bpch-phone-search {
  width: 100%; box-sizing: border-box; padding: 9px 12px;
  border: none; border-bottom: 1px solid rgba(91,33,245,.1);
  font-size: .8rem; font-family: inherit; outline: none; color: #1a0050;
  background: #faf8ff;
}
.bpch-phone-search::placeholder { color: #a89ec9; }
.bpch-phone-list {
  list-style: none; margin: 0; padding: 4px 0;
  max-height: 200px; overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: rgba(91,33,245,.2) transparent;
}
.bpch-phone-option {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 12px; cursor: pointer; font-size: .8rem;
  transition: background .12s;
}
.bpch-phone-option:hover,
.bpch-phone-option.selected { background: rgba(91,33,245,.07); }
.bpch-phone-oname { flex: 1; color: #1a0050; font-weight: 600; }
.bpch-phone-odial { color: #5b21f5; font-weight: 700; font-size: .76rem; }
.bpch-phone-prefix {
  display: flex; align-items: center; gap: 5px;
  background: rgba(91,33,245,.07);
  border: 1.5px solid rgba(91,33,245,.2);
  border-radius: 10px;
  padding: 9px 10px;
  flex-shrink: 0; white-space: nowrap;
}
.bpch-phone-flag { font-size: .95rem; line-height: 1; }
.bpch-phone-code { font-size: .78rem; font-weight: 800; color: #5b21f5; letter-spacing: .01em; }
.bpch-phone-field { min-width: 0; letter-spacing: .03em; }

/* ── Success block ── */
.bpch-success {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 0 4px;
}
.bpch-success-note {
  font-family: Nunito, sans-serif;
  font-size: .78rem;
  font-weight: 700;
  color: var(--gray);
}
.bpch-wa-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 100px;
  background: #25D366;
  color: #fff;
  font-family: Nunito, sans-serif;
  font-size: .8rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .15s, box-shadow .15s;
}
.bpch-wa-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(37,211,102,.4);
}
.bpch-restart {
  background: none;
  border: none;
  font-family: Nunito, sans-serif;
  font-size: .75rem;
  font-weight: 700;
  color: var(--gray);
  cursor: pointer;
  padding: 4px 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .15s;
}
.bpch-restart:hover { color: var(--purple); }

/* ── Mobile — constrain panel height so it never fills the whole viewport ── */
@media (max-width: 768px) {
  .bpch-panel {
    height: 62vh;        /* fallback: static viewport, no dvh support */
    height: 62dvh;       /* dynamic viewport — shrinks when soft keyboard opens */
    max-height: 62dvh;
    min-height: 420px;   /* floor: prevents a tiny panel on landscape phones */
  }
  .bpch-messages {
    overflow-y: auto;    /* guarantee scroll even if inherited value is different */
  }
}

/* ── Mobile (narrow phones ≤600px) ── */
@media (max-width: 600px) {
  .bpch-root {
    bottom: 20px;
    right: 16px;
  }

  /* Prompt tail points to toggle center (toggle is ~140px, right edge at 16px) */
  .bpch-prompt::before { right: 56px; }
  .bpch-prompt::after  { right: 56px; }

  .bpch-toggle {
    width: 148px;
    height: 44px;
    border-radius: 100px;
    padding: 0 16px;
    gap: 8px;
  }
  .bpch-toggle-label { font-size: .78rem; }

  /* When panel is open: collapse to compact icon circle */
  .bpch-toggle--open {
    width: 44px;
    border-radius: 50%;
    padding: 0;
    gap: 0;
  }

  .bpch-panel {
    width: min(340px, calc(100vw - 32px));
    max-height: calc(100vh - 120px);
    right: 0;
  }
  .bpch-prompt {
    width: min(270px, 85vw);
  }
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .bpch-root          { animation: none; opacity: 1; transform: none; }
  .bpch-toggle--pulse { animation: none; }
  .bpch-toggle        { transition: none; }
}

