/* Freewolk launch site — full stylesheet (critical subset is inlined in <head>) */

::selection{background:rgba(37,99,235,.45)}

body{background:
  radial-gradient(1200px 800px at 85% -10%, rgba(37,99,235,.14), transparent 60%),
  linear-gradient(180deg, var(--bg-0), var(--bg-1) 60%, var(--bg-0));
}

/* ---------- primitives ---------- */
.container{max-width:1160px;margin:0 auto;padding:0 20px}
@media(min-width:1440px){.container{max-width:1240px}}

.section{padding:clamp(72px,10vw,128px) 0;position:relative}
.section:not(.hero){content-visibility:auto;contain-intrinsic-size:auto 720px}

.eyebrow{font-family:var(--font-head);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-bottom:14px}
.h2{font-family:var(--font-head);font-weight:700;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.12;letter-spacing:-.015em;max-width:22ch}
.h2-with-logo{display:flex;align-items:center;gap:.25em;flex-wrap:wrap;line-height:1}
.h2-logo{height:1.7em;width:auto;transform:translateY(.04em)}
.lead{color:var(--muted);font-size:clamp(1rem,1.4vw,1.15rem);max-width:46rem;margin-top:16px}
.center{margin-left:auto;margin-right:auto;text-align:center}
h2.center{max-width:none}

.link{color:var(--sky);border-bottom:1px solid rgba(96,165,250,.35);transition:border-color .2s}
.link:hover{border-color:var(--sky)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-head);font-weight:600;font-size:.95rem;padding:11px 20px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .2s,filter .2s,border-color .2s;white-space:nowrap}
.btn-lg{padding:14px 26px;font-size:1.02rem}
.btn-primary{background:linear-gradient(180deg,#3b74f0,var(--blue));color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 8px 24px -8px rgba(37,99,235,.55)}
.btn-primary:hover{transform:scale(1.02);filter:brightness(1.1);box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 10px 34px -6px rgba(37,99,235,.75)}
.btn-ghost{border-color:rgba(255,255,255,.14);color:var(--text);background:rgba(17,30,47,.4)}
.btn-ghost:hover{transform:scale(1.02);border-color:rgba(96,165,250,.55);box-shadow:0 8px 28px -10px rgba(96,165,250,.4)}

/* pulse dot */
.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;position:relative;flex:0 0 auto}
.pulse-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--green);animation:dotpulse 2s ease-out infinite}
@keyframes dotpulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.5);opacity:0}}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease-out,transform .6s ease-out;transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* ---------- nav ---------- */
.nav{opacity:0;transform:translateY(-12px);animation:navin .5s ease-out .3s forwards}
@keyframes navin{to{opacity:1;transform:none}}
.nav-links{display:none;list-style:none;gap:26px;flex:1}
.nav-links a{color:var(--muted);font-size:.92rem;font-weight:500;transition:color .2s}
.nav-links a:hover{color:var(--text)}
.nav-cta{display:none;margin-left:auto}
.burger{margin-left:auto;background:none;border:0;width:40px;height:40px;display:grid;place-content:center;gap:5px;cursor:pointer}
.burger span{width:20px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1023px){
  .nav-links.open{display:flex;position:fixed;top:68px;left:0;right:0;flex-direction:column;gap:0;background:rgba(9,19,36,.98);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);padding:8px 0 16px}
  .nav:has(.nav-links.open){background:rgba(9,19,36,.98)}
  .nav-links.open a{display:block;padding:13px 24px;font-size:1.05rem}
}
@media(min-width:1024px){
  .nav-links{display:flex}
  .nav-cta{display:inline-flex}
  .burger{display:none}
}

/* ---------- hero ---------- */
.hero-pill{display:inline-flex;align-items:center;gap:9px;font-size:.82rem;font-weight:500;color:var(--muted);border:1px solid var(--line);background:rgba(17,30,47,.6);padding:7px 14px;border-radius:999px;margin-bottom:26px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero-proof{margin-top:26px;font-size:.85rem;color:var(--muted);letter-spacing:.02em}

/* char reveal */
h1 .ch{display:inline-block;opacity:0;transform:translateY(.5em);animation:chin .5s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:var(--cd,0s)}
/* background-clip:text can't reach through inline-block children, so each char
   samples its own slice of the gradient (--bs/--bp set per char in JS) */
.grad-word .ch{background:linear-gradient(92deg,#60A5FA 10%,#4ADE80 90%);background-size:var(--bs,100%) 100%;background-position:var(--bp,0 0);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes chin{to{opacity:1;transform:none}}
h1.no-split .line{opacity:1}

/* gradient mesh */
.mesh{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.mesh::before,.mesh::after{content:"";position:absolute;width:70vmax;height:70vmax;border-radius:50%;filter:blur(60px);opacity:.5}
.mesh::before{background:radial-gradient(circle at 30% 30%, rgba(37,99,235,.4), transparent 60%);top:-30vmax;left:-15vmax;animation:drift1 30s ease-in-out infinite alternate}
.mesh::after{background:radial-gradient(circle at 60% 60%, rgba(139,92,246,.28), transparent 60%),radial-gradient(circle at 30% 70%, rgba(74,222,128,.16), transparent 55%);bottom:-35vmax;right:-20vmax;animation:drift2 30s ease-in-out infinite alternate}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(8vmax,6vmax) scale(1.15)}}
@keyframes drift2{from{transform:translate(0,0) scale(1.1)}to{transform:translate(-7vmax,-5vmax) scale(.95)}}

/* particle field: one dot cloned via box-shadow, drifting up */
.particles{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.particles::before{content:"";position:absolute;top:0;left:0;width:2px;height:2px;border-radius:50%;background:transparent;
  box-shadow:12vw 18vh rgba(96,165,250,.5),28vw 64vh rgba(96,165,250,.3),44vw 32vh rgba(74,222,128,.35),61vw 78vh rgba(96,165,250,.4),73vw 22vh rgba(244,114,182,.3),86vw 55vh rgba(96,165,250,.35),8vw 82vh rgba(74,222,128,.3),52vw 90vh rgba(96,165,250,.25),91vw 12vh rgba(96,165,250,.3),33vw 8vh rgba(244,114,182,.25),68vw 40vh rgba(96,165,250,.2),18vw 45vh rgba(74,222,128,.2);
  animation:rise 24s linear infinite}
@keyframes rise{from{transform:translateY(6vh)}to{transform:translateY(-8vh)}}

.hero-visual{position:relative}
.hero-photo{border-radius:20px;box-shadow:0 24px 80px -24px rgba(0,0,0,.8);border:1px solid var(--line);aspect-ratio:3/2;object-fit:cover;width:100%;height:auto}
.hero-visual::before{content:"";position:absolute;inset:0;border-radius:20px;background:linear-gradient(200deg, rgba(10,23,41,.1), rgba(10,23,41,.65));pointer-events:none}

/* app window mockup */
.app-window{position:absolute;left:-6%;bottom:-9%;width:78%;min-width:300px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(17,30,47,.7);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 30px 70px -20px rgba(0,0,0,.75);overflow:hidden;font-size:11.5px}
.aw-bar{display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:1px solid var(--line);color:var(--muted)}
.aw-bar i{width:9px;height:9px;border-radius:50%}
.aw-bar i:nth-child(1){background:#f6635f}.aw-bar i:nth-child(2){background:#f4bd4f}.aw-bar i:nth-child(3){background:#61c454}
.aw-bar span{margin-left:8px;font-weight:500}
.aw-body{display:flex}
.aw-side{width:92px;flex:0 0 auto;border-right:1px solid var(--line);padding:10px 8px;display:flex;flex-direction:column;gap:2px}
.aw-nav{padding:5px 8px;border-radius:7px;color:var(--muted)}
.aw-nav.on{background:rgba(37,99,235,.25);color:var(--text)}
.aw-ring{margin-top:12px;padding:8px;border-radius:8px;background:rgba(255,255,255,.04);text-align:center}
.aw-ring b{display:block;font-family:var(--font-head);font-size:14px;color:var(--sky)}
.aw-ring small{font-size:9px}
.aw-ring em{font-style:normal;color:var(--muted);font-size:9px}
.aw-main{flex:1;padding:10px 12px;min-width:0}
.aw-crumb{color:var(--muted);margin-bottom:8px}
.aw-crumb b{color:var(--text)}
.aw-files{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.aw-file{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:8px;padding:8px 6px;display:flex;flex-direction:column;gap:5px;align-items:center;color:var(--muted)}
.aw-file svg{width:20px;height:20px;fill:currentColor;opacity:.9}
.f-blue{color:var(--sky)}.f-green{color:var(--green)}.f-pink{color:var(--pink)}.f-sky{color:#93c5fd}
.aw-file span{color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aw-toast{margin-top:9px;display:flex;align-items:center;gap:8px;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.25);color:#bbf7d0;border-radius:8px;padding:6px 9px}
.aw-toast b{margin-left:auto}
.aw-up{width:8px;height:8px;border-radius:50%;border:2px solid var(--green);border-top-color:transparent;animation:spin 1s linear infinite;flex:0 0 auto}
@keyframes spin{to{transform:rotate(360deg)}}

.chip{position:absolute;display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:500;padding:8px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(17,30,47,.7);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 12px 30px -12px rgba(0,0,0,.6)}
.chip-a{top:-16px;right:2%;animation:floaty 6s ease-in-out infinite}
.chip-b{top:34%;right:-4%;animation:floaty 7s ease-in-out 1.2s infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

.scroll-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);color:var(--muted);z-index:2;animation:bounce 2s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

@media(max-width:1023px){
  .hero{padding-top:110px}
  .app-window{left:0;width:88%}
  .chip-b{right:0}
}

/* ---------- problem ---------- */
.danger-row{display:grid;gap:20px;margin-top:44px}
@media(min-width:640px){.danger-row{grid-template-columns:repeat(3,1fr)}}
.danger-card{background:var(--card);border:1px solid rgba(244,114,182,.16);border-radius:18px;padding:28px 24px;position:relative;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.danger-card::before{content:"";position:absolute;inset:auto -30% -60% -30%;height:120%;background:radial-gradient(closest-side, rgba(248,113,113,.14), transparent);pointer-events:none}
.danger-card:hover{transform:translateY(-4px);border-color:rgba(244,114,182,.4);box-shadow:0 18px 40px -18px rgba(244,114,182,.3)}
.d-ico{width:44px;height:44px;border-radius:12px;display:grid;place-content:center;background:rgba(248,113,113,.12);color:#fca5a5;margin-bottom:18px}
.d-ico svg{width:24px;height:24px}
.danger-card h3{font-family:var(--font-head);font-size:1.35rem;font-weight:700;margin-bottom:8px}
.danger-card p{color:var(--muted);font-size:.95rem}

/* ---------- steps ---------- */
.steps{position:relative;display:grid;gap:46px;margin-top:64px}
@media(min-width:1024px){.steps{grid-template-columns:repeat(3,1fr);gap:32px}}
.steps-path{display:none;position:absolute;top:70px;left:0;width:100%;height:60px;z-index:0}
@media(min-width:1024px){.steps-path{display:block}}
#stepsLine{stroke-dashoffset:0}
.steps.draw #stepsLine{stroke-dasharray:1600;stroke-dashoffset:1600;animation:draw 1.6s ease-out forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.step{position:relative;z-index:1;text-align:left}
.step-num{display:inline-grid;place-content:center;width:34px;height:34px;border-radius:50%;font-family:var(--font-head);font-weight:700;margin:20px 0 10px;border:1px solid var(--line)}
.n-blue{color:var(--sky);background:rgba(37,99,235,.15)}
.n-green{color:var(--green);background:rgba(74,222,128,.12)}
.n-pink{color:var(--pink);background:rgba(244,114,182,.12)}
.step h3{font-family:var(--font-head);font-size:1.3rem;font-weight:700}
.step p{color:var(--muted);margin-top:6px;max-width:30ch}
.step-visual{height:150px;border-radius:16px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;overflow:hidden;position:relative}
.installer p{font-size:.85rem;color:var(--text)}
.installer small{color:var(--muted);font-size:.72rem}
.mini-bar{position:absolute;top:10px;left:12px;display:flex;gap:5px}
.mini-bar i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.14)}
.mini-progress{width:60%;height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.mini-progress span{display:block;height:100%;width:40%;border-radius:99px;background:linear-gradient(90deg,var(--sky),var(--green));animation:load 2.4s ease-in-out infinite}
@keyframes load{0%{width:8%}60%{width:86%}100%{width:96%}}
.radar{flex-direction:row;gap:0}
.radar-rings{position:absolute;left:24%;top:50%;width:10px;height:10px}
.radar-rings i{position:absolute;inset:0;margin:auto;border-radius:50%;border:1px solid rgba(74,222,128,.5);animation:ring 2.6s ease-out infinite}
.radar-rings i:nth-child(2){animation-delay:.8s}
.radar-rings i:nth-child(3){animation-delay:1.6s}
@keyframes ring{from{width:10px;height:10px;opacity:.9;transform:translate(-50%,-50%)}to{width:120px;height:120px;opacity:0;transform:translate(-50%,-50%)}}
.radar-rings::before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--green);transform:translate(-50%,-50%)}
.radar-phone{margin-left:44%;display:flex;flex-direction:column;gap:7px;font-size:.78rem}
.radar-phone b{color:var(--muted);font-weight:500;font-size:.72rem}
.found{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:8px;padding:5px 10px}
.devices svg{width:82%;height:auto}

/* ---------- bento ---------- */
.bento{display:grid;gap:18px;margin-top:48px;grid-template-columns:1fr}
@media(min-width:640px){.bento{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.bento{grid-template-columns:repeat(4,1fr)}.b-lg{grid-column:span 2}}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s;display:flex;flex-direction:column;gap:16px}
.card:hover{transform:translateY(-4px);border-color:rgba(96,165,250,.35);box-shadow:0 20px 50px -22px rgba(37,99,235,.4)}
.card-head h3{font-family:var(--font-head);font-size:1.15rem;font-weight:700;margin-top:12px}
.card-head p{color:var(--muted);font-size:.92rem;margin-top:5px}
.b-sm h3{font-family:var(--font-head);font-size:1.05rem;font-weight:700;margin-top:12px}
.b-sm p{color:var(--muted);font-size:.9rem;margin-top:5px}
.c-ico{width:40px;height:40px;border-radius:11px;display:grid;place-content:center}
.c-ico svg{width:22px;height:22px}
.i-blue{background:rgba(37,99,235,.16);color:var(--sky)}
.i-green{background:rgba(74,222,128,.12);color:var(--green)}
.i-pink{background:rgba(244,114,182,.12);color:var(--pink)}
.i-sky{background:rgba(147,197,253,.12);color:#93c5fd}
.card-img{margin:-22px -22px 0;overflow:hidden}
/* height:auto beats the HTML height attribute so aspect-ratio can size the box */
.card-img img,.duo-img img,.scene-card img{height:auto}
.card-img img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .4s ease}
.card-img.tall img{aspect-ratio:16/8}
.card:hover .card-img img{transform:scale(1.03)}

/* file-manager mockup inside bento */
.fm-mock{border:1px solid var(--line);border-radius:12px;background:rgba(10,23,41,.55);padding:12px;font-size:.78rem;margin-top:auto}
.fm-search{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:9px;padding:7px 11px;color:var(--text)}
.fm-search svg{width:14px;height:14px;color:var(--muted)}
.fm-search b{margin-left:auto;color:var(--green);font-weight:500;font-size:.7rem}
.fm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.fm-grid span{border:1px solid var(--line);border-radius:8px;padding:9px 6px;text-align:center;color:var(--muted);background:rgba(255,255,255,.03);position:relative;padding-top:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-grid span::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:16px;height:12px;border-radius:3px;background:currentColor;opacity:.8}
@media(max-width:639px){.fm-grid{grid-template-columns:repeat(2,1fr)}}

/* multi-NAS mockup */
.nas-mock{display:flex;flex-direction:column;gap:9px;font-size:.82rem}
.nas-line{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;padding:10px 13px;background:rgba(255,255,255,.03);color:var(--muted)}
.nas-line b{color:var(--text);font-weight:600}
.nas-line em{font-style:normal;margin-left:auto;font-size:.72rem}
.dot-off{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.2);flex:0 0 auto}

/* dashboard mockup */
.dash-mock{display:flex;align-items:flex-end;gap:16px;padding:6px 2px}
.ring{width:74px;height:74px;border-radius:50%;display:grid;place-content:center;text-align:center;position:relative;flex:0 0 auto}
.ring::before{content:"";position:absolute;inset:0;border-radius:50%;padding:6px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.r-blue::before{background:conic-gradient(var(--sky) 0 62%, rgba(255,255,255,.08) 62% 100%)}
.r-green::before{background:conic-gradient(var(--green) 0 41%, rgba(255,255,255,.08) 41% 100%)}
.ring b{font-family:var(--font-head);font-size:.95rem}
.ring em{font-style:normal;color:var(--muted);font-size:.66rem}
.dash-bars{display:flex;align-items:flex-end;gap:6px;height:64px;flex:1}
.dash-bars i{flex:1;height:var(--h);border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,rgba(96,165,250,.85),rgba(37,99,235,.35))}

/* ---------- two ways ---------- */
.duo{display:grid;gap:22px;margin-top:48px}
@media(min-width:1024px){.duo{grid-template-columns:1fr 1fr}}
.duo-card{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s;position:relative}
.duo-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:1}
.duo-blue::before{background:linear-gradient(90deg,var(--blue),var(--sky),transparent)}
.duo-green::before{background:linear-gradient(90deg,#16a34a,var(--green),transparent)}
.duo-card:hover{transform:translateY(-4px)}
.duo-blue:hover{border-color:rgba(96,165,250,.4);box-shadow:0 22px 50px -22px rgba(37,99,235,.45)}
.duo-green:hover{border-color:rgba(74,222,128,.4);box-shadow:0 22px 50px -22px rgba(74,222,128,.35)}
.duo-img{overflow:hidden}
.duo-img img{aspect-ratio:16/8;object-fit:cover;width:100%;transition:transform .4s ease}
.duo-card:hover .duo-img img{transform:scale(1.03)}
.duo-card h3{font-family:var(--font-head);font-size:1.5rem;font-weight:700;padding:22px 26px 0}
.duo-specs{padding:14px 26px 26px;display:flex;flex-direction:column}
.duo-specs div{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}
.duo-specs div:last-child{border-bottom:0}
.duo-specs dt{color:var(--muted);font-size:.85rem;font-weight:500}
.duo-specs dd{font-size:.95rem}

/* ---------- security ---------- */
.sec-wrap{display:grid;gap:52px;align-items:center}
@media(min-width:1024px){.sec-wrap{grid-template-columns:1fr 1.1fr}}
.sec-rings{position:relative;width:min(260px,60vw);aspect-ratio:1;margin:44px auto 0;display:grid;place-content:center}
.sec-rings i{position:absolute;inset:0;margin:auto;width:100%;height:100%;border-radius:50%;border:1px solid rgba(74,222,128,.35)}
.sec-rings.in i{animation:secpulse 3s ease-out infinite}
.sec-rings i:nth-child(2){animation-delay:1s}
.sec-rings i:nth-child(3){animation-delay:2s}
@keyframes secpulse{0%{transform:scale(.55);opacity:.9}100%{transform:scale(1.15);opacity:0}}
.sec-shield{width:96px;height:96px;filter:drop-shadow(0 0 24px rgba(74,222,128,.35))}
.sec-grid{list-style:none;display:grid;gap:14px}
@media(min-width:640px){.sec-grid{grid-template-columns:1fr 1fr}}
.sec-grid li{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:.94rem;font-weight:500;transition:border-color .25s,transform .25s}
.sec-grid li:hover{border-color:rgba(74,222,128,.35);transform:translateY(-2px)}
.sec-grid svg{width:21px;height:21px;color:var(--green);flex:0 0 auto}
.badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.badges span{font-size:.78rem;font-weight:600;letter-spacing:.03em;color:var(--sky);border:1px solid rgba(96,165,250,.3);background:rgba(37,99,235,.08);padding:6px 13px;border-radius:999px}

/* ---------- under the hood ---------- */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:44px 0 40px}
@media(min-width:1024px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}
.stat b{display:block;font-family:var(--font-head);font-weight:800;font-size:clamp(1.7rem,3vw,2.3rem);background:linear-gradient(92deg,var(--sky),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat>span{color:var(--muted);font-size:.85rem}
.acc{display:flex;flex-direction:column;gap:12px;max-width:820px}
.acc-item{background:var(--card);border:1px solid var(--line);border-radius:15px;overflow:hidden;transition:border-color .25s}
.acc-item[open]{border-color:rgba(96,165,250,.3)}
.acc-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;font-family:var(--font-head);font-weight:600;font-size:1.05rem}
.acc-item summary::-webkit-details-marker{display:none}
.acc-item summary svg{width:19px;height:19px;color:var(--muted);transition:transform .3s}
.acc-item[open] summary svg{transform:rotate(180deg)}
.acc-item p{padding:0 22px 20px;color:var(--muted);font-size:.95rem;max-width:62ch}

/* ---------- platforms ---------- */
.plat-row{list-style:none;display:flex;flex-wrap:wrap;gap:14px;margin-top:44px}
.plat{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 10px;flex:1 1 110px;background:var(--card);border:1px solid var(--line);border-radius:16px;color:var(--muted);font-size:.85rem;font-weight:500;filter:grayscale(1);transition:filter .25s,transform .25s,border-color .25s,color .25s}
.plat svg{width:34px;height:34px;fill:currentColor}
.plat svg [stroke],.dl-btn svg [stroke]{fill:none}
.plat:hover{filter:grayscale(0);transform:translateY(-4px);color:var(--text)}
.p-win:hover{border-color:rgba(96,165,250,.5)}.p-win:hover svg{color:#60A5FA}
.p-mac:hover{border-color:rgba(232,241,252,.4)}.p-mac:hover svg{color:#E8F1FC}
.p-lin:hover{border-color:rgba(250,204,21,.45)}.p-lin:hover svg{color:#facc15}
.p-and:hover{border-color:rgba(74,222,128,.5)}.p-and:hover svg{color:#4ADE80}
.p-ios:hover{border-color:rgba(232,241,252,.4)}.p-ios:hover svg{color:#E8F1FC}
.p-web:hover{border-color:rgba(96,165,250,.5)}.p-web:hover svg{color:#60A5FA}
.p-pi:hover{border-color:rgba(244,114,182,.5)}.p-pi:hover svg{color:#F472B6}
#platforms .lead{margin-top:30px}

/* ---------- comparison ---------- */
.cmp-wrap{margin-top:44px;overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:var(--card);-webkit-overflow-scrolling:touch}
.cmp{width:100%;min-width:760px;border-collapse:collapse;font-size:.92rem}
.cmp th,.cmp td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.cmp thead th{font-family:var(--font-head);font-weight:700;font-size:.95rem;color:var(--text);background:rgba(255,255,255,.02)}
.cmp tbody th{font-weight:500;color:var(--muted)}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp td{color:var(--muted)}
.fw-col{background:rgba(37,99,235,.1);color:var(--text)!important;border-left:1px solid rgba(96,165,250,.25);border-right:1px solid rgba(96,165,250,.25)}
thead .fw-col{color:var(--sky)!important}
.yes,.no{display:inline-block;width:20px;height:20px;border-radius:50%;position:relative;vertical-align:middle}
.yes{background:rgba(74,222,128,.15);box-shadow:0 0 12px rgba(74,222,128,.35)}
.yes::after{content:"";position:absolute;left:6px;top:5px;width:6px;height:9px;border:solid var(--green);border-width:0 2px 2px 0;transform:rotate(45deg)}
.no{background:rgba(255,255,255,.05)}
.no::before,.no::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:2px;background:rgba(248,113,113,.7);border-radius:2px}
.no::before{transform:translate(-50%,-50%) rotate(45deg)}
.no::after{transform:translate(-50%,-50%) rotate(-45deg)}
.cmp-row{opacity:0;transform:translateX(-28px);transition:opacity .5s ease-out,transform .5s ease-out;transition-delay:var(--rd,0s)}
.cmp-wrap.in .cmp-row{opacity:1;transform:none}

/* ---------- scenarios ---------- */
.scene-row{display:grid;gap:20px;margin-top:48px}
@media(min-width:1024px){.scene-row{grid-template-columns:repeat(3,1fr)}}
.scene-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.scene-card:hover{transform:translateY(-4px);border-color:rgba(96,165,250,.35);box-shadow:0 20px 50px -22px rgba(37,99,235,.35)}
.scene-card figure{overflow:hidden}
.scene-card img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .4s ease}
.scene-card:hover img{transform:scale(1.03)}
.scene-card h3{font-family:var(--font-head);font-size:1.25rem;font-weight:700;padding:20px 22px 0}
.scene-card p{color:var(--muted);font-size:.93rem;padding:9px 22px 24px}

/* ---------- download ---------- */
.dl-section{overflow:hidden}
.mesh-b::before{top:auto;bottom:-30vmax;left:-20vmax}
.mesh-b::after{bottom:auto;top:-35vmax;right:-15vmax}
.dl-grid{display:grid;gap:14px;margin:44px auto 0;max-width:860px;grid-template-columns:1fr}
@media(min-width:640px){.dl-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.dl-grid{grid-template-columns:repeat(3,1fr)}}
.dl-btn{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:16px 20px;transition:transform .2s,border-color .2s,box-shadow .2s}
.dl-btn:hover{transform:translateY(-3px) scale(1.01);border-color:rgba(96,165,250,.5);box-shadow:0 16px 40px -18px rgba(37,99,235,.5)}
.dl-btn svg{width:26px;height:26px;fill:currentColor;color:var(--sky);flex:0 0 auto}
.dl-btn span{display:flex;flex-direction:column}
.dl-btn b{font-family:var(--font-head);font-weight:700;font-size:.98rem}
.dl-btn em{font-style:normal;color:var(--muted);font-size:.78rem}
.dl-alt{margin-top:30px;color:var(--muted)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:56px 0 32px;background:rgba(8,18,33,.6)}
.foot-grid{display:grid;gap:36px;grid-template-columns:1fr 1fr}
@media(min-width:1024px){.foot-grid{grid-template-columns:1.6fr 1fr 1fr}}
.foot-brand{grid-column:1/-1}
@media(min-width:1024px){.foot-brand{grid-column:auto}}
.foot-brand p{color:var(--muted);font-size:.9rem;margin-top:14px;max-width:24ch}
.foot-grid h3{font-family:var(--font-head);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin-bottom:14px}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot-grid ul a{color:var(--muted);font-size:.92rem;transition:color .2s}
.foot-grid ul a:hover{color:var(--text)}
.foot-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;border-top:1px solid var(--line);margin-top:46px;padding-top:26px;color:var(--muted);font-size:.85rem}
.foot-legal{opacity:.7;font-size:.8rem}

/* ---------- motion preferences ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.cmp-row{opacity:1;transform:none}
  h1 .ch{opacity:1;transform:none}
}
