/* GD Electronic — motion layer. Animates transform/opacity only. Everything degrades to a static, fully visible page. */
html,body{overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* ---------- Intro loader (first page per session) ---------- */
.loader{display:none}
html.intro .loader{display:grid;position:fixed;inset:0;z-index:200;place-items:center;background:radial-gradient(600px 400px at 50% 40%,#13306f,#06112b 70%);cursor:pointer;animation:ldOut .35s .85s cubic-bezier(.7,0,.3,1) forwards}
html.intro .loader.skip{animation:ldOut .2s forwards}
.loader__inner{display:flex;flex-direction:column;align-items:center;gap:14px}
.loader__mark{font-family:"Arial Black",Arial,sans-serif;font-weight:900;font-size:88px;line-height:1;letter-spacing:-6px;display:flex;overflow:hidden;padding:0 8px}
.loader__mark .g{color:#3b7bff;display:inline-block;animation:ldG .55s cubic-bezier(.2,.9,.2,1) both}
.loader__mark .d{display:inline-block;background:linear-gradient(#f2f5f9,#a9b4c4);-webkit-background-clip:text;background-clip:text;color:transparent;animation:ldD .55s .08s cubic-bezier(.2,.9,.2,1) both}
.loader__bar{width:140px;height:3px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.loader__bar span{display:block;height:100%;background:linear-gradient(90deg,#3b7bff,#ffb020);transform-origin:left;animation:ldBar .75s .1s cubic-bezier(.6,0,.2,1) both}
.loader__txt{font:700 11px/1 Inter,Arial,sans-serif;letter-spacing:.35em;color:#9fb0cf;animation:fadeIn .4s .3s both}
.loader__skip{position:absolute;bottom:24px;font:600 12px Inter,Arial,sans-serif;color:#9fb0cf;opacity:.8}
@keyframes ldG{from{transform:translateX(-120%);opacity:0}to{transform:none;opacity:1}}
@keyframes ldD{from{transform:translateX(120%);opacity:0}to{transform:none;opacity:1}}
@keyframes ldBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ldOut{to{opacity:0;transform:translateY(-4%);visibility:hidden;pointer-events:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ---------- Page transition overlay ---------- */
.pt{position:fixed;inset:0;z-index:190;visibility:hidden;display:grid;place-items:center;background:linear-gradient(150deg,#1546b8,#0a1a3f 60%,#06112b);transform:translateY(101%);pointer-events:none;will-change:transform}
.pt__logo{font-family:"Arial Black",Arial,sans-serif;font-weight:900;font-size:64px;letter-spacing:-4px;line-height:1;opacity:0}
.pt__logo .g{color:#6fa0ff}.pt__logo .d{background:linear-gradient(#f2f5f9,#a9b4c4);-webkit-background-clip:text;background-clip:text;color:transparent}
.pt.cover,html.pt-in .pt{visibility:visible}
.pt.cover{animation:ptCover .42s cubic-bezier(.7,0,.25,1) forwards}
.pt.cover .pt__logo{animation:fadeIn .2s .22s forwards}
html.pt-in .pt{transform:none;animation:ptReveal .55s .08s cubic-bezier(.7,0,.25,1) forwards}
html.pt-in .pt__logo{opacity:1;animation:ptLogoOut .3s forwards}
@keyframes ptCover{from{transform:translateY(101%)}to{transform:none}}
@keyframes ptReveal{from{transform:none;visibility:visible}to{transform:translateY(-101%);visibility:hidden}}
@keyframes ptLogoOut{to{opacity:0;transform:scale(.9)}}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}

/* ---------- Cursor glow (desktop pointer only) ---------- */
.cursor-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:45;background:radial-gradient(circle,rgba(80,140,255,.38),rgba(80,140,255,.1) 40%,transparent 68%);mix-blend-mode:screen;opacity:0;transition:opacity .4s;will-change:transform}
.cursor-glow.on{opacity:1}
@media (hover:none),(pointer:coarse){.cursor-glow{display:none}}

/* ---------- Topbar live bits ---------- */
.live{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:#fff;white-space:nowrap}
.live__dot{width:8px;height:8px;border-radius:50%;background:#9fb0cf;position:relative;flex:none}
.live.is-open .live__dot{background:#2bd673}
.live.is-closed .live__dot{background:#ff5a4f}
.live.is-weekend .live__dot{background:var(--amber)}
.live.is-open .live__dot::after,.live.is-weekend .live__dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping2 1.8s ease-out infinite}
@keyframes ping2{0%{transform:scale(1);opacity:.8}100%{transform:scale(3);opacity:0}}
.clock{font-variant-numeric:tabular-nums;color:#c6d1e6;display:none}
@media (min-width:760px){.clock{display:inline}}
.topbar__l{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.pill.live{color:#e7edf8;font-weight:600;white-space:normal;max-width:100%}
.hero__copy,.hero__visual{min-width:0}

/* ---------- Hero mesh background ---------- */
.mesh{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.mesh__b{position:absolute;border-radius:50%;filter:blur(60px);opacity:.75;will-change:transform}
.mesh__b1{width:520px;height:520px;right:-140px;top:-180px;background:#2a6cf0;animation:blob1 16s ease-in-out infinite alternate}
.mesh__b2{width:420px;height:420px;left:-160px;bottom:-200px;background:#0f6bd8;opacity:.5;animation:blob2 19s ease-in-out infinite alternate}
.mesh__b3{width:300px;height:300px;left:40%;top:30%;background:#ffb020;opacity:.13;animation:blob3 22s ease-in-out infinite alternate}
.mesh__sweep{position:absolute;top:-50%;left:0;width:40%;height:200%;background:linear-gradient(90deg,transparent,rgba(160,200,255,.09),transparent);transform:translateX(-120%) rotate(18deg);animation:sweep 9s ease-in-out infinite}
@keyframes blob1{to{transform:translate(-160px,140px) scale(1.15)}}
@keyframes blob2{to{transform:translate(180px,-120px) scale(1.2)}}
@keyframes blob3{to{transform:translate(-220px,120px) scale(.8)}}
@keyframes sweep{0%{transform:translateX(-120%) rotate(18deg)}60%,100%{transform:translateX(330%) rotate(18deg)}}
.hero .wrap,.page-hero .wrap{z-index:2}
.page-hero{isolation:isolate}
.page-hero .mesh__b1{width:380px;height:380px}

/* ---------- Split headline + typed words ---------- */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .wi{display:inline-block}
html.motion .split:not(.is-split){opacity:0;animation:fadeIn 0s 1.6s forwards}
html.motion .split.is-split .wi{transform:translateY(110%);animation:wordUp .8s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--hd,0s) + var(--i) * 70ms)}
html.intro .split{--hd:.95s}
html.pt-in .split{--hd:.35s}
@keyframes wordUp{to{transform:none}}
html.motion .hero-fade{opacity:0;animation:fadeUp .8s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--hd,0s) + var(--d,.4s))}
html.intro .hero-fade{--hd:.95s}
html.pt-in .hero-fade{--hd:.3s}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.typed-line{font-family:var(--font-head);font-weight:700;font-size:clamp(1.1rem,3.6vw,1.45rem);color:#fff;margin:-4px 0 14px;min-height:1.5em}
.typed{color:var(--amber);background:linear-gradient(90deg,#ffb020,#ffd27a);-webkit-background-clip:text;background-clip:text;color:transparent}
.caret{display:inline-block;width:3px;height:1.05em;background:var(--amber);margin-left:3px;vertical-align:-.15em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- Glowing magnetic CTAs ---------- */
.btn--glow{position:relative;isolation:isolate}
.btn--glow::after{content:"";position:absolute;inset:-6px;border-radius:inherit;background:inherit;filter:blur(14px);opacity:.55;z-index:-1;animation:glow 2.6s ease-in-out infinite}
@keyframes glow{50%{opacity:.15;transform:scale(.94)}}
.btn--magnetic{will-change:transform}
.btn--magnetic > *{pointer-events:none}

/* ---------- LED TV mockup ---------- */
.tvm{position:relative;width:100%;max-width:540px;margin:0 auto;padding:34px 8px 70px}
.tvm__amb{position:absolute;left:8%;right:8%;top:16%;bottom:28%;border-radius:40px;filter:blur(46px);background:conic-gradient(from 0deg,#3b7bff,#ff3d8b,#ffb020,#2bd673,#3b7bff);opacity:.55;animation:amb 12s linear infinite;will-change:transform,opacity}
@keyframes amb{0%{transform:rotate(0) scale(1);opacity:.45}50%{opacity:.7;transform:rotate(180deg) scale(1.06)}100%{transform:rotate(360deg) scale(1);opacity:.45}}
.tvm__body{position:relative;animation:floatY 6s ease-in-out infinite}
@keyframes floatY{50%{transform:translateY(-10px)}}
.tvm__bezel{position:relative;padding:9px;border-radius:14px;background:linear-gradient(180deg,#e9edf3,#a3aec0 60%,#7f8ba0);box-shadow:0 30px 60px rgba(0,0,0,.45),inset 0 1px 0 #fff}
.tvm__screen{position:relative;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:#02040a;isolation:isolate}
.tvm__led{position:absolute;right:16px;bottom:-1px;width:6px;height:3px;border-radius:2px;background:#2bd673;box-shadow:0 0 8px #2bd673}
.tvm__stand{width:30%;height:44px;margin:0 auto;position:relative}
.tvm__stand::before{content:"";position:absolute;left:44%;width:12%;top:0;height:30px;background:linear-gradient(90deg,#7f8ba0,#c9d1dc,#7f8ba0)}
.tvm__stand::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:10px;border-radius:6px;background:linear-gradient(#dfe5ee,#9aa6b8)}
.scr{position:absolute;inset:0;display:grid;place-items:center;text-align:center;opacity:0;animation:scr 12s infinite;animation-delay:calc(var(--k) * 3s - 12s)}
.scr:first-child{opacity:1}
@keyframes scr{0%{opacity:1;transform:translateX(-8px) skewX(10deg)}1.2%{transform:translateX(6px) skewX(-6deg)}2.4%{transform:none}24%{opacity:1}25%{opacity:0}100%{opacity:0}}
.scr--brand{background:radial-gradient(circle at 70% 20%,#3b7bff,#1546b8 40%,#0a1a3f 85%)}
.scr__gd{font-family:"Arial Black",Arial,sans-serif;font-weight:900;font-size:clamp(54px,13vw,92px);line-height:1;letter-spacing:-5px}
.scr__gd .g{color:#fff}.scr__gd .d{background:linear-gradient(#f2f5f9,#a9b4c4);-webkit-background-clip:text;background-clip:text;color:transparent}
.scr__sub{font:700 clamp(9px,2.2vw,13px)/1 Inter,Arial,sans-serif;letter-spacing:.4em;color:#dbe3f1;margin-top:6px}
.scr--bars{background:linear-gradient(90deg,#c0c0c0 0 14.28%,#c0c000 0 28.56%,#00c0c0 0 42.84%,#00c000 0 57.12%,#c000c0 0 71.4%,#c00000 0 85.68%,#0000c0 0)}
.scr__ok{background:rgba(6,17,43,.85);color:#fff;font:800 clamp(12px,3vw,18px)/1 Inter,Arial,sans-serif;padding:10px 16px;border-radius:10px;display:flex;gap:8px;align-items:center}
.scr__ok i{width:10px;height:10px;border-radius:50%;background:#2bd673;display:inline-block;box-shadow:0 0 10px #2bd673}
.scr--sun{background:linear-gradient(180deg,#1b1350 0%,#7a2a8c 38%,#ff6a3d 66%,#ffb020 82%)}
.scr__sunball{position:absolute;width:30%;aspect-ratio:1;border-radius:50%;left:35%;top:40%;background:radial-gradient(circle,#fff6c9,#ffd45a 50%,#ff9a2a);box-shadow:0 0 60px #ffb020;animation:sunPulse 3s ease-in-out infinite}
@keyframes sunPulse{50%{transform:scale(1.06) translateY(-3%)}}
.scr__mt{position:absolute;left:0;right:0;bottom:0;height:46%;background:#140c35;clip-path:polygon(0 60%,14% 20%,26% 52%,40% 8%,56% 50%,70% 22%,84% 54%,100% 30%,100% 100%,0 100%)}
.scr__mt2{height:30%;background:#0a0620;clip-path:polygon(0 40%,20% 70%,34% 30%,52% 66%,68% 26%,86% 60%,100% 40%,100% 100%,0 100%)}
.scr--neon{background:conic-gradient(from 210deg at 30% 60%,#0a1a3f,#1546b8,#7b3bff,#ff3d8b,#ffb020,#0a1a3f)}
.scr__words{display:flex;flex-direction:column;gap:4px;font-family:var(--font-head);font-weight:800;font-size:clamp(18px,5vw,32px);color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.4);line-height:1.1}
.scr__words span:nth-child(2){color:#ffd27a}
.tvm__scan{position:absolute;inset:0;z-index:5;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.2) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}
.tvm__band{position:absolute;left:0;right:0;top:0;height:30%;z-index:6;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(255,255,255,.07),transparent);animation:band 5s linear infinite}
@keyframes band{from{transform:translateY(-100%)}to{transform:translateY(340%)}}
.tvm__glare{position:absolute;inset:0;z-index:7;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.16),transparent 38%)}
.tvm__glitch{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:0;animation:glitch 3s infinite}
.tvm__glitch::before,.tvm__glitch::after{content:"";position:absolute;left:0;right:0;height:14%;mix-blend-mode:screen}
.tvm__glitch::before{top:22%;background:rgba(255,0,80,.55)}
.tvm__glitch::after{top:61%;height:9%;background:rgba(0,220,255,.55)}
@keyframes glitch{0%{opacity:1;transform:translateX(-14px)}1%{transform:translateX(10px) scaleY(1.6)}2%{transform:translateX(-4px)}3.2%{opacity:1;transform:none}3.3%,100%{opacity:0}}
.tvm__pwr{position:absolute;inset:0;z-index:9;background:#02040a;display:grid;place-items:center;pointer-events:none;animation:pwr 1.25s var(--pd,.25s) forwards}
.tvm__pwr::before{content:"";width:100%;height:2px;background:#fff;box-shadow:0 0 18px #9fc2ff,0 0 4px #fff;transform:scaleX(0);animation:pwrLine 1.25s var(--pd,.25s) cubic-bezier(.6,0,.2,1) forwards}
html.intro .tvm__pwr,html.intro .tvm__pwr::before{--pd:1.05s}
@keyframes pwrLine{0%{transform:scaleX(0) scaleY(1)}35%{transform:scaleX(1) scaleY(1)}62%{transform:scaleX(1) scaleY(90);opacity:1}100%{transform:scaleX(1) scaleY(90);opacity:0}}
@keyframes pwr{0%,45%{opacity:1}75%,100%{opacity:0;visibility:hidden}}
html:not(.motion) .tvm__pwr{display:none}
.fbadge{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:10px 14px 10px 10px;box-shadow:0 14px 34px rgba(0,0,0,.3);animation:floatY 5s ease-in-out infinite}
.fbadge b{display:block;font:800 13px/1.2 Inter,Arial,sans-serif;color:#0a1a3f}
.fbadge small{display:block;font:500 11px/1.2 Inter,Arial,sans-serif;color:#4a5874}
.fbadge__i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}
.fbadge__i svg{width:18px;height:18px}
.fbadge--a{top:0;right:0}
.fbadge--a .fbadge__i{background:#fff4dc;color:#e89400}
.fbadge--b{left:0;bottom:22px;animation-delay:-2.5s}
.fbadge--b .fbadge__i{background:#e7f6ee;color:#1fa855}
@media (max-width:420px){.fbadge{transform-origin:left}.fbadge b{font-size:12px}.fbadge small{font-size:10px}}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;position:relative;white-space:nowrap}
.marquee__track{display:flex;width:max-content;animation:marq 36s linear infinite}
.marquee--rev .marquee__track{animation-direction:reverse;animation-duration:44s}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__group{display:flex;flex:none;align-items:center;gap:30px;padding-right:30px}
.marquee__group > span{display:inline-flex;align-items:center;gap:8px}
.marquee svg{width:18px;height:18px}
.marquee--amber{background:var(--amber);color:var(--amber-ink);font-weight:700;font-size:.95rem;padding:14px 0}
.marquee--navy{background:var(--navy-950);color:#c6d1e6;font-family:var(--font-head);font-weight:700;font-size:1.1rem;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.marquee--navy .sep{color:var(--amber)}
.marquee--navy .lbl{color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.08);padding:6px 12px;border-radius:999px}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Counters ---------- */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}
@media (min-width:760px){.stats{grid-template-columns:repeat(5,1fr)}}
.stat{position:relative;padding:22px 18px;border-radius:var(--radius);background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);text-align:center}
.stat:last-child{grid-column:1/-1}
@media (min-width:760px){.stat:last-child{grid-column:auto}}
.stat__n{display:block;font-family:var(--font-head);font-weight:800;font-size:clamp(1.7rem,4.2vw,2.4rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat__n small{font-size:.45em;color:var(--amber);margin-left:4px;letter-spacing:0}
.stat__l{display:block;margin-top:8px;font-size:.88rem;color:#aebbd4}

/* ---------- 3D tilt + glare ---------- */
.tilt,.tilt:hover{transition:box-shadow .25s ease,border-color .25s ease!important}
.card--service.tilt:hover,.size.tilt:hover{transform:none}
.tilt{transform-style:preserve-3d;will-change:transform;position:relative;overflow:hidden}
.glare{position:absolute;left:0;top:0;width:200%;height:200%;margin:-100% 0 0 -100%;pointer-events:none;background:radial-gradient(circle at center,rgba(255,255,255,.55),rgba(255,255,255,0) 32%);opacity:0;transition:opacity .3s;z-index:3;will-change:transform}
.section--dark .glare{background:radial-gradient(circle at center,rgba(140,180,255,.28),rgba(255,255,255,0) 32%)}
.tilt:hover .glare{opacity:1}

/* ---------- Horizontal pinned sizes (desktop + JS) ---------- */
.hsec{overflow:hidden}
.hsec.is-h .sizes{display:flex;flex-wrap:nowrap;gap:22px;width:max-content;will-change:transform}
.hsec.is-h .size{width:270px;flex:none;padding:30px 20px}
.hsec.is-h .size__tv{height:120px}
.hsec__hint{display:none;align-items:center;gap:8px;color:var(--muted);font-size:.85rem;font-weight:600;margin-top:22px}
.hsec__hint svg{width:18px;height:18px}
.hsec.is-h .hsec__hint{display:flex}
.hsec__prog{display:none;height:3px;background:var(--silver-200);border-radius:3px;margin-top:20px;overflow:hidden}
.hsec.is-h .hsec__prog{display:block}
.hsec__prog span{display:block;height:100%;background:linear-gradient(90deg,var(--blue-600),var(--amber));transform-origin:left;transform:scaleX(0)}

/* ---------- Self-drawing timeline ---------- */
.timeline{position:relative}
.timeline__line{position:absolute;z-index:0;background:rgba(29,91,216,.15);border-radius:3px;overflow:hidden;left:21px;top:30px;bottom:30px;width:3px}
.timeline__line span{display:block;width:100%;height:100%;background:linear-gradient(180deg,var(--blue-600),var(--amber));transform-origin:top}
@media (min-width:860px){.timeline__line{left:8%;right:8%;top:50px;bottom:auto;width:auto;height:3px}.timeline__line span{background:linear-gradient(90deg,var(--blue-600),var(--amber));transform-origin:left}}
.timeline .steps{position:relative;z-index:1}
@media (max-width:859px){.timeline .step{margin-left:44px}.timeline .step__n{position:absolute;left:-44px;top:22px;box-shadow:0 0 0 6px var(--silver-100)}}
@media (min-width:860px){.timeline .step__n{box-shadow:0 0 0 8px var(--silver-100)}}
.step__n{position:relative}

/* ---------- Animated gradient borders ---------- */
.gborder{position:relative;isolation:isolate;overflow:hidden;border-color:transparent!important}
.gborder::before{content:"";position:absolute;left:50%;top:50%;width:200%;aspect-ratio:1;margin:-100% 0 0 -100%;background:conic-gradient(from 0deg,#1d5bd8,#3b7bff,#ffb020,#1fa855,#1d5bd8);z-index:-2;animation:spin 6s linear infinite}
.gborder::after{content:"";position:absolute;inset:2px;border-radius:inherit;background:#fff;z-index:-1}
.spot.gborder::after{background:linear-gradient(135deg,var(--navy-800),var(--navy-950))}
.band.gborder::after{background:linear-gradient(120deg,var(--blue-700),var(--navy-900));inset:2px;width:auto;height:auto;border:0;border-radius:22px}
.band.gborder{overflow:hidden}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Floating labels & field micro-interactions ---------- */
.fl{position:relative}
.fl input,.fl select,.fl textarea{padding:24px 40px 8px 14px;min-height:56px}
.fl > label{position:absolute;left:15px;top:17px;margin:0;font-weight:500;color:var(--muted);pointer-events:none;transform-origin:left top;transition:transform .2s cubic-bezier(.2,.8,.2,1),color .2s;white-space:nowrap;max-width:calc(100% - 50px);overflow:hidden;text-overflow:ellipsis}
.fl input:focus + label,.fl input:not(:placeholder-shown) + label,.fl textarea:focus + label,.fl textarea:not(:placeholder-shown) + label,.fl--sel > label{transform:translateY(-10px) scale(.76);color:var(--blue-700);font-weight:700}
.fl input::placeholder,.fl textarea::placeholder{color:transparent}
.fl__bar{position:absolute;left:10px;right:10px;top:52px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--blue-600),var(--amber));transform:scaleX(0);transition:transform .3s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.fl--ta .fl__bar{top:auto;bottom:6px}
.fl input:focus ~ .fl__bar,.fl select:focus ~ .fl__bar,.fl textarea:focus ~ .fl__bar{transform:scaleX(1)}
.fl__ok{position:absolute;right:14px;top:18px;width:20px;height:20px;border-radius:50%;background:#1fa855;color:#fff;display:grid;place-items:center;transform:scale(0);opacity:0;transition:transform .25s cubic-bezier(.3,1.6,.5,1),opacity .2s;pointer-events:none}
.fl__ok svg{width:12px;height:12px;stroke-width:3.5}
.fl input:valid:not(:placeholder-shown) ~ .fl__ok,.fl select:valid ~ .fl__ok{transform:scale(1);opacity:1}
.fl--sel select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d5bd8' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px}
.fl--sel .fl__ok{right:38px}
.field.shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.spin{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(42,26,0,.25);border-top-color:var(--amber-ink);animation:spin .7s linear infinite;display:inline-block}

/* ---------- Thank-you success ---------- */
.success{position:relative;width:120px;height:120px;margin:0 auto 26px}
.success svg{width:120px;height:120px}
.success__c{stroke:#1fa855;stroke-width:5;fill:none;stroke-dasharray:316;stroke-dashoffset:0}
.success__t{stroke:#1fa855;stroke-width:7;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:0}
html.motion .success__c{stroke-dashoffset:316;animation:draw .7s .2s cubic-bezier(.6,0,.2,1) forwards}
html.motion .success__t{stroke-dashoffset:80;animation:draw .45s .8s cubic-bezier(.6,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.success i{position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:2px;opacity:0}
html.motion .success i{animation:burst 1s 1s cubic-bezier(.1,.8,.2,1) forwards}
@keyframes burst{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(.4)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(220deg) scale(1)}}

/* ---------- Pulsing WhatsApp in bottom bar ---------- */
.mbar__wa svg{animation:waPulse 2s ease-in-out infinite}
@keyframes waPulse{0%,100%{transform:scale(1)}15%{transform:scale(1.22)}30%{transform:scale(1)}}

/* ---------- Reduced motion: everything static & visible ---------- */
@media (prefers-reduced-motion:reduce){
  .loader,.pt,.cursor-glow,.tvm__pwr,.tvm__glitch,.tvm__band,.mesh__sweep{display:none!important}
  .scr{opacity:0!important}.scr:first-child{opacity:1!important}
  .marquee__track{animation:none}
  .split .wi,.hero-fade{transform:none!important;opacity:1!important}
}

/* ---------- Failsafe: boot.js adds html.safe ~4s after load starts. Anything the hero/intro hid is shown, whatever happened to JS/CDNs ---------- */
html.safe .loader,html.safe .tvm__pwr{display:none!important}
html.safe .pt:not(.cover){visibility:hidden!important;animation:none!important}
html.safe .split:not(.is-split),html.safe .hero-fade{opacity:1!important;animation:none!important;transform:none!important}
html.safe .split .wi{transform:none!important;animation:none!important}
@media print{.loader,.pt,.cursor-glow,.mbar{display:none!important}}
[tabindex="-1"]:focus{outline:none}
