.announce{background:var(--fg);color:#fff;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.announce .inner{max-width:1440px;margin:0 auto;padding:9px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px}.announce .items{display:flex;gap:28px;flex-wrap:wrap;align-items:center}.announce .items span{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.8)}.announce .items span .dot{width:4px;height:4px;background:var(--mint-bright);border-radius:50%;box-shadow:0 0 8px var(--mint-bright)}.announce .pho{color:rgba(255,255,255,.7)}.nav{background:var(--bg-page);border-bottom:1px solid var(--line)}.nav-inner{padding:22px 40px;max-width:1440px}.nav-links{gap:36px}.nav-links a{font-size:14px;font-weight:500;color:var(--fg);padding:6px 0;position:relative}.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-links a.active::after,.nav-links a:hover::after{transform:scaleX(1)}.hero{position:relative;background:radial-gradient(ellipse 60% 50% at 50% 55%,rgba(75,123,236,.1),transparent 70%),var(--bg-page);overflow:hidden;min-height:760px;padding:48px 0 80px}.hero .wrap{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:632px}.evo-watermark{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:1;overflow:hidden}.evo-watermark .word{font-family:var(--f-display);font-weight:700;font-size:clamp(120px, 26vw, 380px);letter-spacing:.05em;line-height:.85;max-width:100%;text-align:center;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px rgba(11,20,38,0.09);background:linear-gradient(180deg,rgba(11,20,38,.07) 0,rgba(11,20,38,.02) 60%,transparent 100%);-webkit-background-clip:text;background-clip:text;user-select:none;position:relative}.evo-watermark .word::after{content:"EVO";position:absolute;inset:0;color:transparent;-webkit-text-stroke:0;background:linear-gradient(180deg,rgba(75,123,236,.08),transparent 65%);-webkit-background-clip:text;background-clip:text}.hero-eyebrow{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);display:inline-flex;align-items:center;gap:12px;margin-bottom:16px}.hero-eyebrow .pulse{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 0 rgba(75,123,236,.6);animation:pulseDot 1.8s ease-out infinite}@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(75,123,236,.6)}100%{box-shadow:0 0 0 12px rgba(75,123,236,0)}}.hero h1{font-family:var(--f-display);font-weight:500;font-size:clamp(40px, 5.6vw, 78px);letter-spacing:-.035em;line-height:.98;color:var(--fg);margin:0 auto 24px;max-width:880px;text-wrap:balance}.hero h1 .accent{color:var(--blue);font-style:normal}.hero-sub{font-size:16px;color:var(--fg-3);max-width:440px;line-height:1.55;margin:0 auto 28px}.stage{position:relative;width:100%;max-width:920px;aspect-ratio:16/9;margin:0 auto;display:grid;place-items:center;z-index:4}.stage .device{position:relative;width:clamp(280px,38vw,520px);aspect-ratio:1;filter:drop-shadow(0 40px 60px rgba(11, 20, 38, .22));animation:deviceFloat 6s ease-in-out infinite}.stage .device img{width:100%;height:100%;display:block;object-fit:contain}@keyframes deviceFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}.stage::before{content:"";position:absolute;width:60%;height:22%;bottom:18%;left:20%;background:radial-gradient(ellipse,rgba(61,188,236,.25),transparent 70%);filter:blur(30px);z-index:-1;animation:glowPulse 4s ease-in-out infinite}@keyframes glowPulse{0%,100%{opacity:.6}50%{opacity:1}}.chip{position:absolute;background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 16px -4px rgba(11,20,38,.08),0 16px 32px -8px rgba(11,20,38,.1);border-radius:14px;padding:14px 18px;display:flex;align-items:center;gap:12px;font-family:var(--f-display);font-weight:600;font-size:14px;color:var(--fg);letter-spacing:-.005em;animation:chipFloat 7s ease-in-out infinite;white-space:nowrap}.chip .ico{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);color:var(--blue)}.chip .meta{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.chip .meta .ttl{font-size:14px;font-weight:600;line-height:1}.chip .meta .sub{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;color:var(--fg-3);text-transform:uppercase}.chip.live::after{content:"";position:absolute;top:14px;right:14px;width:6px;height:6px;background:var(--mint);border-radius:50%;animation:blink 1.4s ease-in-out infinite}@keyframes blink{0%,100%{opacity:.3}50%{opacity:1}}@keyframes chipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.chip.c1{top:12%;left:4%;animation-delay:-1s}.chip.c2{top:22%;right:4%;animation-delay:-2.6s}.chip.c3{bottom:14%;left:8%;animation-delay:-4.2s}.chip.c4{bottom:22%;right:6%;animation-delay:-3s}.hero-cta-row{margin-top:8px;display:flex;align-items:center;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;z-index:5}.hero .btn-primary{padding:16px 26px;font-size:14px;font-weight:600}.hero .ghost{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-display);font-size:14px;font-weight:600;color:var(--fg);padding:16px 4px}.hero .ghost::after{content:"→";font-family:var(--f-mono);transition:transform .2s ease}.hero .ghost:hover::after{transform:translateX(4px)}.hero-rating-strip{margin-top:56px;display:flex;gap:36px 56px;justify-content:center;flex-wrap:wrap;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);position:relative;z-index:4}.hero-rating-strip span{display:inline-flex;align-items:center;gap:10px}.hero-rating-strip strong{color:var(--fg);font-weight:600}.hero-rating-strip .stars{display:inline-flex;gap:1px;color:#f5a623}.marquee{background:var(--fg);color:#fff;padding:22px 0;overflow:hidden;border-top:1px solid var(--dk-line);border-bottom:1px solid var(--dk-line)}.marquee .track{display:flex;gap:56px;animation:marqueeSlide 28s linear infinite;white-space:nowrap;width:max-content}.marquee .track a,.marquee .track span{font-family:var(--f-display);font-weight:600;font-size:20px;letter-spacing:-.01em;color:rgba(255,255,255,.78);display:inline-flex;align-items:center;gap:56px;text-decoration:none;transition:color .15s ease}.marquee .track a:hover{color:var(--cyan)}.marquee .track a::after,.marquee .track span::after{content:"";width:6px;height:6px;background:rgba(255,255,255,.3);border-radius:50%}.marquee .track a:last-child::after,.marquee .track span:last-child::after{display:none}@keyframes marqueeSlide{from{transform:translateX(0)}to{transform:translateX(-50%)}}.showcase{background:var(--bg-page);padding:100px 0}.showcase-head{text-align:center;margin-bottom:64px}.showcase-head h2{font-size:clamp(36px, 4.6vw, 64px);font-weight:500;letter-spacing:-.03em;line-height:1;margin:0 auto;max-width:760px;text-wrap:balance}.showcase-head h2 .accent{color:var(--blue)}.showcase-head .lbl{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:18px;display:block}.showcase-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;gap:20px}.show-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;position:relative;transition:transform .35s ease,box-shadow .35s ease}.show-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -12px rgba(11,20,38,.12)}.show-card .vis{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg-page-alt),var(--bg-page))}.show-card .body{padding:28px 30px 32px;border-top:1px solid var(--line)}.show-card .body h3{font-size:22px;font-weight:600;letter-spacing:-.015em;margin-bottom:6px}.show-card .body p{font-size:14px;color:var(--fg-3);line-height:1.55}.show-big{grid-column:1;grid-row:1/3}.show-big .vis{aspect-ratio:4/5;display:flex;flex-direction:column;padding:36px 40px;gap:16px;background:radial-gradient(circle at 80% 20%,rgba(75,123,236,.1),transparent 60%),linear-gradient(180deg,#f6f8fb,#e6ebf3)}.show-big .scan-bar{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:var(--fg-3);text-transform:uppercase}.show-big .scan-bar .live{display:inline-flex;align-items:center;gap:8px;color:var(--mint);font-weight:600}.show-big .scan-bar .live::before{content:"";width:6px;height:6px;background:var(--mint);border-radius:50%;animation:blink 1.2s ease-in-out infinite}.show-big .mod-list{display:flex;flex-direction:column;gap:8px;flex:1}.show-big .mod{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px}.show-big .mod .left{display:flex;align-items:center;gap:12px}.show-big .mod .name{font-family:var(--f-display);font-weight:600;font-size:14px;letter-spacing:-.005em;color:var(--fg)}.show-big .mod .code{font-family:var(--f-mono);font-size:11px;color:var(--fg-4);letter-spacing:.08em}.show-big .mod .stat{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:4px 9px;border-radius:4px}.show-big .mod .stat.ok{background:var(--mint-light);color:var(--mint)}.show-big .mod .stat.err{background:#fee9e5;color:#c03a1b}.show-big .mod .stat.scan{background:var(--surface-2);color:var(--blue);position:relative;overflow:hidden}.show-big .mod .stat.scan::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(75,123,236,.3),transparent);animation:scanSlide 1.6s linear infinite}@keyframes scanSlide{from{transform:translateX(-100%)}to{transform:translateX(100%)}}.show-big .mod .ico-circle{width:30px;height:30px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;color:var(--blue)}.show-card.with-phone .vis{aspect-ratio:16/13;display:flex;align-items:flex-start;justify-content:center;padding:32px 32px 0;position:relative;overflow:hidden}.show-card.with-phone .phone-shot{width:60%;max-width:220px;filter:drop-shadow(0 14px 24px rgba(11, 20, 38, .18));transition:transform .4s ease}.show-card.with-phone:hover .phone-shot{transform:translateY(-6px)}.show-card.with-phone .phone-shot img{width:100%;height:auto;display:block}.anatomy{background:var(--surface);padding:110px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.anatomy .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}.anatomy .copy h2{font-size:clamp(34px, 4.4vw, 56px);font-weight:500;letter-spacing:-.03em;line-height:1;margin-bottom:24px;text-wrap:balance}.anatomy .copy h2 .accent{color:var(--blue)}.anatomy .copy .lbl{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;color:var(--fg-3);text-transform:uppercase;margin-bottom:18px;display:block}.anatomy .copy p{font-size:16px;color:var(--fg-3);line-height:1.6;margin-bottom:28px;max-width:420px}.anatomy .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.anatomy .tags span{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);background:var(--surface-2);border:1px solid var(--line);padding:6px 10px;border-radius:4px}.anatomy .device-stage{position:relative;aspect-ratio:1;display:grid;place-items:center}.anatomy .device-stage img{width:100%;filter:drop-shadow(0 30px 50px rgba(11,20,38,.18));animation:deviceFloat 6s ease-in-out infinite}.anatomy .annot{position:absolute;display:flex;align-items:center;gap:12px;background:var(--bg-page);border:1px solid var(--line);padding:10px 14px;border-radius:8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);font-weight:600;animation:chipFloat 6s ease-in-out infinite}.anatomy .annot::before{content:"";width:32px;height:1px;background:var(--fg-4)}.anatomy .annot.a1{top:18%;left:-4%;animation-delay:-1s}.anatomy .annot.a2{top:38%;right:0;animation-delay:-2.5s}.anatomy .annot.a3{bottom:22%;left:4%;animation-delay:-3.6s}.anatomy .annot.a4{bottom:8%;right:6%;animation-delay:-4.4s}.how{background:var(--bg-page);padding:110px 0}.how-head{text-align:center;margin-bottom:56px}.how-head .lbl{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:16px;display:block}.how-head h2{font-size:clamp(34px, 4.4vw, 56px);font-weight:500;letter-spacing:-.03em;line-height:1;margin:0 auto;max-width:720px;text-wrap:balance}.how-head h2 .accent{color:var(--blue)}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.how-step{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;position:relative;transition:transform .35s ease,box-shadow .35s ease}.how-step:hover{transform:translateY(-4px);box-shadow:0 20px 40px -12px rgba(11,20,38,.12)}.how-step .photo{aspect-ratio:4/5;background:var(--bg-page);position:relative;overflow:hidden}.how-step .photo image-slot,.how-step .photo img{width:100%;height:100%;display:block;object-fit:cover}.how-step .photo image-slot{--is-object-fit:cover}.how-step .photo::after{content:"";position:absolute;inset:auto 0 0 0;height:50%;background:linear-gradient(180deg,transparent,rgba(11,20,38,.6));z-index:2}.how-step .step-pill{position:absolute;left:20px;top:20px;z-index:3;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 10px;border-radius:6px;font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--fg)}.how-step .caption{position:absolute;left:24px;right:24px;bottom:24px;z-index:3;color:#fff}.how-step .caption h3{font-family:var(--f-display);font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.05;margin-bottom:6px;color:#fff}.how-step .caption .sub{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85)}.reviews{background:#0b1426;color:#fff;padding:110px 0 100px;position:relative;overflow:hidden}.reviews .head{text-align:center;margin-bottom:56px}.reviews .head .lbl{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:16px;display:block}.reviews .head h2{font-size:clamp(34px, 4.4vw, 56px);font-weight:500;letter-spacing:-.03em;line-height:1;color:#fff;margin:0 auto 20px;max-width:720px;text-wrap:balance}.reviews .head h2 .accent{color:var(--cyan)}.reviews .head .rating{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.7);text-transform:uppercase}.reviews .head .stars{color:#f5a623;display:inline-flex;gap:2px}.review-rows{display:flex;flex-direction:column;gap:16px;position:relative}.review-rows::after,.review-rows::before{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}.review-rows::before{left:0;background:linear-gradient(90deg,#0b1426,transparent)}.review-rows::after{right:0;background:linear-gradient(-90deg,#0b1426,transparent)}.rev-track{display:flex;gap:16px;width:max-content;animation:marqueeSlide 60s linear infinite}.rev-track.reverse{animation:marqueeSlide 70s linear infinite reverse}.rev{flex:0 0 360px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:24px 26px;display:flex;flex-direction:column;gap:12px}.rev .stars{color:#f5a623;display:inline-flex;gap:2px}.rev .body{font-size:15px;line-height:1.55;color:rgba(255,255,255,.8);letter-spacing:-.005em}.rev .who{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);margin-top:auto}.rev .who .name{font-family:var(--f-display);font-weight:600;font-size:13px;color:#fff}.rev .who .src{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.45);text-transform:uppercase}.app-trio{background:var(--bg-page);padding:110px 0}.app-trio .head{text-align:center;margin-bottom:64px}.app-trio .head .lbl{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:16px;display:block}.app-trio .head h2{font-size:clamp(34px, 4.4vw, 56px);font-weight:500;letter-spacing:-.03em;line-height:1;margin:0 auto;max-width:720px;text-wrap:balance}.app-trio .head h2 .accent{color:var(--blue)}.phone-row{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:end}.phone-row .phone-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:36px 24px 24px;position:relative;text-align:center;transition:transform .4s ease,box-shadow .4s ease}.phone-row .phone-card:hover{transform:translateY(-6px);box-shadow:0 24px 40px -16px rgba(11,20,38,.16)}.phone-row .phone-card>.label{font-family:var(--f-mono);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:6px;display:block}.phone-row .phone-card h3{font-size:22px;font-weight:600;letter-spacing:-.015em;margin-bottom:18px}.phone-row .phone-card .phone-frame{margin:0 auto;width:100%;max-width:230px;aspect-ratio:9/19;background:#0e1a2e;border-radius:28px;padding:10px;box-shadow:0 18px 30px -10px rgba(11,20,38,.2)}.phone-row .phone-card .phone-frame img{width:100%;height:100%;display:block;object-fit:cover;border-radius:22px}.phone-row .phone-card .phone-bare{margin:0 auto;width:100%;max-width:240px;filter:drop-shadow(0 18px 30px rgba(11, 20, 38, .2))}.phone-row .phone-card .phone-bare img{width:100%;height:auto;display:block}.mock-screen{width:100%;height:100%;border-radius:22px;background:#0b1426;color:#fff;padding:22px 16px 14px;display:flex;flex-direction:column;gap:8px;overflow:hidden;position:relative}.mock-screen .status-bar{display:flex;justify-content:space-between;font-family:var(--f-display);font-size:11px;font-weight:600;color:#fff;margin-bottom:6px;opacity:.9}.mock-screen .head-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.mock-screen .head-row .ico{width:22px;height:22px;background:rgba(255,255,255,.08);border-radius:6px;display:grid;place-items:center;color:rgba(255,255,255,.8)}.mock-screen .head-row .ttl{font-family:var(--f-display);font-size:14px;font-weight:600;letter-spacing:-.005em;color:#fff}.mock-screen .row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px}.mock-screen .row .dot-ico{width:22px;height:22px;border-radius:6px;background:rgba(75,123,236,.16);color:var(--cyan);display:grid;place-items:center;flex-shrink:0}.mock-screen .row .label{font-family:var(--f-display);font-size:11px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:-.005em;flex:1;line-height:1.2}.mock-screen .row .toggle{width:28px;height:16px;border-radius:8px;background:rgba(255,255,255,.1);position:relative;flex-shrink:0;transition:background .3s ease}.mock-screen .row .toggle::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .3s ease}.mock-screen .row.on .toggle{background:var(--cyan)}.mock-screen .row.on .toggle::after{transform:translateX(12px)}.mock-screen .row.flip{animation:rowToggle 6s ease-in-out infinite}@keyframes rowToggle{0%,100%,45%{background:rgba(255,255,255,.05)}50%,95%{background:rgba(75,123,236,.12)}}.mock-screen .row.flip .toggle{animation:toggleFlip 6s ease-in-out infinite}@keyframes toggleFlip{0%,100%,45%{background:rgba(255,255,255,.1)}50%,95%{background:var(--cyan)}}.mock-screen .row.flip .toggle::after{animation:toggleSlide 6s ease-in-out infinite}@keyframes toggleSlide{0%,100%,45%{transform:translateX(0)}50%,95%{transform:translateX(12px)}}.guarantees{background:var(--surface);padding:64px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.guarantees-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.guarantee{padding:0 28px;border-right:1px solid var(--line);display:flex;align-items:center;gap:14px}.guarantee:first-child{padding-left:0}.guarantee:last-child{border-right:0;padding-right:0}.guarantee .ico{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;background:var(--surface-2);color:var(--blue)}.guarantee h3{font-size:14px;font-weight:600;letter-spacing:-.005em}.guarantee p{font-size:12px;color:var(--fg-3);margin-top:2px}.faq{background:var(--bg-page);padding:100px 0}.faq .wrap{display:grid;grid-template-columns:1fr 1.5fr;gap:80px;align-items:start}.faq .head{position:sticky;top:96px}.faq .head .lbl{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:18px;display:block}.faq .head h2{font-size:clamp(34px, 4vw, 52px);font-weight:500;letter-spacing:-.03em;line-height:1;margin-bottom:16px;text-wrap:balance}.faq .head h2 .accent{color:var(--blue)}.faq .head p{font-size:15px;color:var(--fg-3);line-height:1.55;max-width:320px}.faq .head a{color:var(--blue);font-weight:600}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line);padding:28px 0;cursor:pointer}.faq-item .q{display:flex;justify-content:space-between;align-items:center;gap:24px}.faq-item .q .qtext{font-size:19px;font-weight:500;letter-spacing:-.015em;color:var(--fg)}.faq-item .q .plus{width:22px;height:22px;display:grid;place-items:center;color:var(--fg-3);transition:transform .25s ease;flex-shrink:0}.faq-item.open .q .plus{transform:rotate(45deg);color:var(--blue)}.faq-item .a{max-height:0;overflow:hidden;transition:max-height .3s ease,padding-top .3s ease;font-size:15px;color:var(--fg-3);line-height:1.65;max-width:620px}.faq-item.open .a{max-height:260px;padding-top:16px}.cta-final{background:#0b1426;color:#fff;padding:120px 0 100px;position:relative;overflow:hidden;text-align:center}.cta-final .evo-bg{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:1}.cta-final .evo-bg .word{font-family:var(--f-display);font-weight:700;font-size:clamp(280px, 42vw, 580px);color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,0.06);letter-spacing:.05em;line-height:.85;background:linear-gradient(180deg,rgba(61,188,236,.08),transparent 60%);-webkit-background-clip:text;background-clip:text}.cta-final .device-pop{position:relative;z-index:3;width:clamp(220px,26vw,340px);aspect-ratio:1;margin:0 auto 28px;filter:drop-shadow(0 40px 50px rgba(0,0,0,.4));animation:deviceFloat 5s ease-in-out infinite}.cta-final .device-pop img{width:100%;height:100%;object-fit:contain}.cta-final h2{position:relative;z-index:3;font-size:clamp(36px, 4.6vw, 64px);font-weight:500;letter-spacing:-.03em;line-height:1;color:#fff;margin:0 auto 36px;max-width:720px;text-wrap:balance}.cta-final h2 .accent{color:var(--cyan)}.cta-final .ctas{position:relative;z-index:3;display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.cta-final .btn-primary{background:#fff;color:var(--fg);padding:16px 26px;font-size:14px}.cta-final .btn-primary:hover{background:#f0f3f8}.cta-final .ghost{font-family:var(--f-display);font-size:14px;font-weight:600;color:rgba(255,255,255,.85);padding:16px 4px;display:inline-flex;align-items:center;gap:8px}.cta-final .ghost::after{content:"→";font-family:var(--f-mono);transition:transform .2s ease}.cta-final .ghost:hover{color:#fff}.cta-final .ghost:hover::after{transform:translateX(4px)}@media (max-width:1080px){.showcase-grid{grid-template-columns:1fr 1fr}.show-big{grid-column:1/-1;grid-row:1}.show-big .vis{aspect-ratio:16/12}.anatomy .wrap{grid-template-columns:1fr;gap:48px}.anatomy .copy{text-align:center}.anatomy .copy p{margin-left:auto;margin-right:auto}.anatomy .tags{justify-content:center}.chip{display:none}.chip.c1,.chip.c4{display:flex}.chip.c1{top:8%;left:2%}.chip.c4{bottom:10%;right:2%}}@media (max-width:820px){.nav-inner{padding:16px 20px}.announce .inner{padding:9px 20px}.announce .items{gap:16px}.announce .pho{display:none}.hero{min-height:0;padding:40px 0 64px}.hero h1{font-size:clamp(38px, 9vw, 60px)}.anatomy,.app-trio,.cta-final,.faq,.how,.reviews,.showcase{padding:64px 0}.showcase-grid{grid-template-columns:1fr}.show-big{grid-row:auto}.show-big .vis{aspect-ratio:4/5;padding:24px}.how-grid{grid-template-columns:1fr;gap:16px}.phone-row{grid-template-columns:1fr;gap:16px}.guarantees{padding:32px 0}.guarantees-grid{grid-template-columns:1fr;gap:18px 0;border-left:0}.guarantee{padding:0;border-right:none!important;border-left:none!important}.faq .wrap{grid-template-columns:1fr;gap:32px}.faq .head{position:static}.chip{display:none!important}.rev{flex:0 0 280px}.hero-rating-strip{gap:16px 24px;font-size:10px}.how-head{margin-bottom:32px;padding:0 12px}.how-head .lbl{font-size:10px;letter-spacing:.14em;max-width:280px;margin:0 auto 14px;line-height:1.4;text-wrap:balance}.how-head h2{font-size:clamp(28px, 7vw, 36px);padding:0 8px}.cta-final{padding:80px 0 72px}.cta-final .evo-bg .word{font-size:clamp(160px, 56vw, 280px)}.cta-final h2{font-size:clamp(28px, 7vw, 38px);padding:0 16px;margin-bottom:28px}.cta-final .device-pop{width:clamp(180px,46vw,220px);margin-bottom:24px}.cta-final .ctas{padding:0 20px}.cta-final .ctas .btn-primary{font-size:13px;padding:14px 22px}.anatomy .device-stage img{max-width:280px;margin:0 auto}.anatomy .annot{font-size:9px}}.faq-list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 1px 3px rgba(11,20,38,.05)}.faq-item{padding:22px 26px;border-bottom:1px solid var(--line);transition:background .15s ease}.faq-item:last-child{border-bottom:0}.faq-item:hover{background:var(--surface-2,#f6f8fc)}.faq-item:hover .q .qtext{color:var(--blue)}.faq-item .q .plus{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface,#fff);color:var(--fg-3);transition:transform .25s ease,background .2s ease,color .2s ease,border-color .2s ease}.faq-item.open{background:var(--surface-2,#f6f8fc)}.faq-item.open .q .qtext{color:var(--fg)}.faq-item.open .q .plus{transform:rotate(45deg);background:var(--blue);border-color:var(--blue);color:#fff}.faq-item.open .a{max-height:640px}
/* Marquee: pause on hover/focus (v2.4). The prior pause rule targeted the
   wrong .announce-brands classes, so the real .marquee/.track never paused. */
.marquee:hover .track,
.marquee:focus-within .track { animation-play-state: paused; }

/* ============================================================
   Diagnose scan card (design_handoff_diagnose_scan, v2.15)
   Animated "Nuskaito kiekvieną ECU" screen — dark phone-style UI.
   Scoped to .diag-vis so the old .show-big .vis rules stay dormant.
   ============================================================ */
.show-big .vis.diag-vis {
  aspect-ratio: 4 / 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: clamp(26px, 4%, 42px) clamp(20px, 3.5%, 40px);
  background: linear-gradient(168deg, #2A3540 0%, #1E2731 58%, #182029 100%);
}
.diag-screen { width: 100%; max-width: 452px; flex: 1; min-height: 0; display: flex; flex-direction: column; }
.diag-head { position: relative; height: 26px; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; }
.diag-head .ttl { font-family: var(--f-display); font-weight: 700; font-size: 21px; letter-spacing: -0.01em; color: #fff; }
.diag-dl { position: absolute; right: 0; top: 50%; transform: translateY(-50%); color: #B9C3CE; display: grid; }
.diag-live {
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--f-mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--cyan); opacity: 0; transition: opacity .3s ease;
}
.diag-screen.scanning .diag-live { opacity: 1; }
.diag-live .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 8px var(--cyan); animation: blink 1s ease-in-out infinite; }
.diag-sub { font-size: 13px; line-height: 1.5; color: #8F9CAB; margin: 0 0 20px; text-align: left; }
.diag-summary { border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.015); padding: 4px 18px; margin-bottom: 16px; }
.diag-sum-row { display: flex; align-items: center; gap: 16px; padding: 14px 2px; }
.diag-sum-row + .diag-sum-row { border-top: 1px solid rgba(255,255,255,.09); }
.diag-badge {
  width: 44px; height: 44px; border-radius: 50%; flex: 0 0 auto;
  border: 2px solid rgba(255,255,255,.5);
  display: grid; place-items: center;
  font-family: var(--f-display); font-weight: 700; font-size: 16px; color: #fff;
}
.diag-badge.red { border-color: #F26B5A; }
.diag-badge.pop { animation: diagPop .42s ease; }
.diag-sum-label { font-size: 14.5px; font-weight: 500; color: #C4CDD8; }
.diag-list {
  flex: 1; min-height: 0; overflow: hidden; position: relative;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 7%, #000 90%, transparent 100%);
          mask-image: linear-gradient(180deg, transparent 0, #000 7%, #000 90%, transparent 100%);
}
.diag-list-inner { display: flex; flex-direction: column; gap: 8px; will-change: transform; }
.diag-row {
  display: flex; align-items: center; gap: 13px;
  background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.05);
  border-radius: 12px; padding: 15px 16px;
  opacity: 0; transform: translateY(9px);
  transition: opacity .34s ease, transform .34s ease, background .3s ease, border-color .3s ease;
}
.diag-row.in, .diag-row.skel { opacity: 1; transform: none; }
.diag-ico { width: 30px; height: 30px; border-radius: 8px; background: rgba(255,255,255,.06); color: #A9B4C1; display: grid; place-items: center; flex: 0 0 auto; }
.diag-name { flex: 1; min-width: 0; font-family: var(--f-display); font-weight: 600; font-size: 14px; color: #E7ECF1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; }
.diag-stat { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: #7E8B9A; white-space: nowrap; }
.diag-stat b { font-weight: 700; color: #9AA6B3; }
.diag-row.has-faults .diag-stat b { color: #F26B5A; }
.diag-row.scanning { background: rgba(75,123,236,.11); border-color: rgba(75,123,236,.24); }
.diag-row.scanning .diag-ico { background: rgba(61,188,236,.16); color: var(--cyan); }
.diag-shimmer {
  display: inline-block; width: 50px; height: 8px; border-radius: 4px;
  background: linear-gradient(90deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,.22) 50%, rgba(255,255,255,.07) 100%);
  background-size: 200% 100%; animation: diagShim 1.05s linear infinite;
}
.diag-row.skel .diag-ico { color: rgba(255,255,255,.22); }
.diag-name-skel {
  display: block; height: 9px; width: 46%; border-radius: 4px;
  background: linear-gradient(90deg, rgba(255,255,255,.07), rgba(255,255,255,.2), rgba(255,255,255,.07));
  background-size: 200% 100%; animation: diagShim 1.15s linear infinite;
}
@keyframes diagShim { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes diagPop { 0% { transform: scale(1); } 40% { transform: scale(1.16); } 100% { transform: scale(1); } }

/* ============================================================
   EVO watermark v2.17 — structural fix. Letters are separate
   <span>s laid out with flex gap, so separation is guaranteed
   regardless of font metrics. The ::after "EVO" overlay is
   dropped (it cannot align with split letters and doubled the
   glyph edges, reading as overlap).
   ============================================================ */
.evo-watermark .word,
.cta-final .evo-bg .word {
  display: flex;
  justify-content: center;
  gap: .08em;
  letter-spacing: 0;
}
.evo-watermark .word::after { content: none; }

/* ============================================================
   v2.21 — EVO watermark: solid faint fill per letter.
   background-clip:text mis-painted with the flex-span layout at
   large sizes (detached rectangle artifacts inside letters), so
   the gradient clip is dropped for a plain stroked glyph.
   ============================================================ */
.evo-watermark .word, .cta-final .evo-bg .word { background: none; -webkit-background-clip: border-box; background-clip: border-box; -webkit-text-stroke: 0; }
.evo-watermark .word span { color: rgba(11,20,38,0.07); -webkit-text-stroke: 0; } /* fill-only: Montserrat variable-font glyphs have overlapping contours; text-stroke exposed the internal seams (detached E-bar rectangles, doubled V edges) */
.cta-final .evo-bg .word span { color: rgba(255,255,255,0.05); -webkit-text-stroke: 0; }

/* Pritaikymas mock — match the official Customize screen (v2.21) */
.mock-screen .row .chev { margin-left: auto; color: #8F9CAB; font-size: 16px; line-height: 1; flex: 0 0 auto; }
.mock-screen .row .val-badge { margin-left: auto; font-family: var(--f-mono); font-size: 9px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cyan); white-space: nowrap; flex: 0 0 auto; }
.mock-screen .row .val-badge.off { color: #7E8B9A; }

/* ============================================================
   v2.25 — front-page polish
   ============================================================ */
/* 4) runway slowed 28s -> 56s */
.marquee .track { animation-duration: 56s; }
/* 5) brand separator dots removed */
.marquee .track a::after, .marquee .track span::after { display: none; }
/* 10) how-head: label stacks ABOVE the heading, centered */
.how .how-head { display: block !important; text-align: center; }
/* 3) Servisas chip clear of the device gif */
.chip.c4 { bottom: 14%; right: 2%; z-index: 3; }

/* NAUJIENA: SFD / SFD2 band */
.sfd-band { padding: 96px 0; background: var(--bg-page-alt); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sfd-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: center; }
.sfd-copy .lbl { font-family: var(--f-mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--blue); display: block; margin-bottom: 16px; }
.sfd-copy h2 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 18px; }
.sfd-copy h2 .accent { color: var(--blue); }
.sfd-copy p { color: var(--fg-2); line-height: 1.65; margin-bottom: 18px; max-width: 540px; }
.sfd-points { list-style: none; margin: 0 0 26px; padding: 0; }
.sfd-points li { position: relative; padding-left: 26px; margin-bottom: 10px; color: var(--fg-2); }
.sfd-points li::before { content: "✓"; position: absolute; left: 0; color: var(--blue); font-weight: 700; }
.sfd-visual { display: flex; justify-content: center; }
.sfd-card { background: linear-gradient(168deg, #2A3540 0%, #1E2731 58%, #182029 100%); border-radius: 18px; padding: 40px 44px; text-align: center; color: #fff; box-shadow: var(--shadow-card-lg); min-width: 300px; }
.sfd-lock { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: rgba(61,188,236,.14); color: var(--cyan); margin-bottom: 18px; }
.sfd-big { font-family: var(--f-display); font-weight: 700; font-size: 44px; letter-spacing: .02em; }
.sfd-sub { font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: #8F9CAB; margin: 8px 0 22px; }
.sfd-brands { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.sfd-brands span { padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.05); font-size: 12px; color: #C7D2E2; }
@media (max-width: 860px) { .sfd-grid { grid-template-columns: 1fr; gap: 36px; } .sfd-band { padding: 64px 0; } }

/* v2.25.1 — runway: no seam lines against the light sections above/below */
.marquee { border-top: 0; border-bottom: 0; }

/* v2.25.3 — hero: kill the legacy border-bottom (the line above the runway) */
.hero { border-bottom: 0; }

/* v2.27 — FAQ answer links */
.faq-item .a .a-link { display: inline-block; margin-top: 10px; color: var(--blue-deep); font-weight: 600; text-decoration: none; }
.faq-item .a .a-link:hover { text-decoration: underline; }
.faq-item .a .a-links { display: flex; gap: 12px; margin-top: 12px; }
.faq-item .a .a-links a { color: var(--blue-deep); font-weight: 600; font-size: 13px; text-decoration: none; border: 1px solid var(--line-2); padding: 8px 14px; border-radius: 8px; transition: border-color .15s ease; }
.faq-item .a .a-links a:hover { border-color: var(--blue); }

/* ============================================================
   v2.28 — mobile front page: bigger gif, smaller type, tighter gaps
   ============================================================ */
@media (max-width: 820px) {
  .stage { aspect-ratio: auto; padding: 8px 0 16px; }
  .stage .device { width: min(82vw, 360px); }
  .hero { padding: 24px 0 48px; }
  .hero h1 { font-size: clamp(31px, 8.4vw, 42px); }
  .hero-sub { font-size: 14.5px; }
  .hero-rating-strip { margin-top: 28px; }
  .showcase-head h2, .how-head h2, .reviews .head h2, .faq .head h2, .cta-final h2 { font-size: clamp(25px, 6.8vw, 33px); }
  .sfd-copy h2 { font-size: clamp(23px, 6.4vw, 31px); }
  .show-card .body h3 { font-size: 17px; }
  .show-card .body p, .anatomy .copy p, .sfd-copy p { font-size: 14px; }
  .showcase, .anatomy, .how, .reviews, .cta-final, .faq { padding: 48px 0; }
  .sfd-band { padding: 48px 0; }
  .showcase-head { margin-bottom: 30px; }
  .showcase-grid { gap: 14px; }
  .marquee { padding: 15px 0; }
  .marquee .track { gap: 40px; }
  .marquee .track a, .marquee .track span { font-size: 16px; }
  .anatomy .wrap { gap: 28px; }
  .guarantees { padding: 28px 0; }
  .faq .head { margin-bottom: 8px; }
}

/* ============================================================
   v2.29 — mobile hero rhythm, centered bigger gif, 2-col stats,
   equal CTA buttons
   ============================================================ */
@media (max-width: 820px) {
  /* hero: first screen — tight, intentional rhythm */
  .hero { padding: 18px 0 36px; }
  .hero h1 { margin-bottom: 10px; }
  .hero-sub { margin: 0 auto 4px; }
  .stage { padding: 0; margin: 2px auto 6px; }
  .stage .device { width: min(92vw, 400px); margin: 0 auto; }
  .hero-cta-row { margin-top: 0; flex-direction: column; gap: 14px; }
  /* stats: stars full-row, then 2 columns, models full-row */
  .hero-rating-strip { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 10px; justify-items: center; }
  .hero-rating-strip > span { display: inline-flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 6px; text-align: center; }
  .hero-rating-strip > span:nth-child(1) { grid-column: 1 / -1; }
  .hero-rating-strip > span:nth-child(4) { grid-column: 1 / -1; }
  /* final CTA: both buttons identical width */
  .cta-final .ctas { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 0 16px; }
  .cta-final .ctas .btn-primary, .cta-final .ctas .ghost { width: min(100%, 340px); box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
}

/* ============================================================
   v2.30 — mobile: hero stage tightened + user gif cap, cleaner
   stats, SFD button centered, anatomy CTA below the gif
   ============================================================ */
.anatomy-cta-m { display: none; }
@media (max-width: 820px) {
  /* user-requested gif cap */
  .hero .device img.anim-media { max-width: 360px; }
  /* pull the stage in — the gif file has transparent padding that reads as a gap */
  .stage { margin: -10px auto -6px; }
  .hero-rating-strip { margin-top: 18px; }
  /* stats: number over label per cell — no ragged wrapping */
  .hero-rating-strip > span { flex-direction: column; gap: 3px; line-height: 1.35; }
  /* SFD: centered full-ish button, bullet list centered under heading */
  .sfd-copy .btn-primary { display: flex; width: min(100%, 340px); margin: 0 auto; justify-content: center; }
  .sfd-copy { text-align: center; }
  .sfd-points { display: inline-block; text-align: left; margin-left: auto; margin-right: auto; }
  .sfd-copy p { margin-left: auto; margin-right: auto; }
  /* anatomy: hide copy CTA, show the one below the gif, centered */
  .anatomy .copy .btn-primary { display: none; }
  .anatomy-cta-m { display: flex; width: min(100%, 340px); margin: 18px auto 0; justify-content: center; align-items: center; }
}

/* v2.30.1 — mobile guarantees: proper cards instead of floating rows */
@media (max-width: 820px) {
  .guarantees { padding: 28px 0 36px; }
  .guarantees-grid { gap: 10px; }
  .guarantee {
    background: var(--surface);
    border: 1px solid var(--line) !important;
    border-radius: 12px;
    padding: 14px 16px;
    box-shadow: var(--shadow-card);
  }
  .guarantee .ico { background: var(--blue-soft); }
}

/* v2.36 — mobile guarantee cards: the desktop row layout resets
   (:first-child padding-left:0 / :last-child padding-right:0)
   leaked into the card layout — restore even padding */
@media (max-width: 820px) {
  .guarantee:first-child, .guarantee:last-child { padding: 14px 16px; }
}

/* ============================================================
   v2.49 — SFD card: open-lock shield with glow, SFD -> SFD2
   progression, status badges, faint ECU-network pattern
   ============================================================ */
.sfd-card { position: relative; overflow: hidden; }
.sfd-card > * { position: relative; z-index: 1; }
.sfd-net {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.07;
  color: #BFE9FA;
  pointer-events: none;
}
.sfd-net svg { width: 100%; height: 100%; }
.sfd-lock { box-shadow: 0 0 44px rgba(61, 188, 236, 0.4); }
.sfd-flow { display: flex; align-items: center; justify-content: center; gap: 12px; }
.sfd-flow .sfd-step {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 36px;
  letter-spacing: 0.02em;
  color: #fff;
}
.sfd-flow .sfd-step.next { color: var(--cyan); }
.sfd-flow .sfd-arrow { color: #8F9CAB; display: grid; place-items: center; }
.sfd-sub { margin: 8px 0 14px; }
.sfd-badges { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.sfd-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
  border-radius: 999px;
  font-family: var(--f-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sfd-badge.ok { background: rgba(61, 236, 180, 0.12); color: #3DECB4; border: 1px solid rgba(61, 236, 180, 0.25); }
.sfd-badge.dev { background: rgba(61, 188, 236, 0.12); color: #9DE4FB; border: 1px solid rgba(61, 188, 236, 0.25); }
.sfd-badge.dev svg { animation: sfd-spin 2.6s linear infinite; }
@keyframes sfd-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sfd-badge.dev svg { animation: none; } }

/* ===== v2.85 — a11y: WCAG AA contrast on light backgrounds ===== */
.diag-sub { color: #5F6E85; }
.sfd-sub { color: #5F6E85; }
.sfd-copy .lbl { color: #3D68D8; }
@media (max-width: 820px) {
  /* 24px counts as WCAG large text — brand blue passes at 3:1 */
  .sfd-copy h2 { font-size: clamp(24px, 6.4vw, 31px); }
}

/* ===== v2.86 — a11y: FAQ head contrast on the tinted band ===== */
.faq .head .lbl { color: #3560CF; }
.faq .head p a { color: #3560CF; }
