/* PREMES app film (v3). Scoped under .pf. A cinematic, interactive product
   film: big realistic phone on the right, chapter story on the left, story
   segments to scrub. Colours and copy follow the app (lib/theme). */

.pf {
  --bg: #030405;
  --ink: #f5f5f7;
  --dim: #86868b;
  --green: #00d68f;
  --blue: #2997ff;
  --violet: #b47cff;
  --amber: #ff9f0a;
  --accent: var(--green);
  --ph: clamp(460px, calc(100vh - 290px), 700px);
  --pw: calc(var(--ph) / 2.06);
  position: relative;
  min-height: max(calc(100vh - 64px), 720px);
  padding: 0 !important; margin: 0;
  overflow: hidden;
  isolation: isolate;
  background: var(--bg);
  color: var(--ink);
  font-family: Inter, system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.pf *, .pf *::before, .pf *::after { box-sizing: border-box; }
.pf[data-ch="vpn"] { --accent: var(--blue); }
.pf[data-ch="privacy"] { --accent: var(--violet); }

/* atmosphere */
.pf-aura { position: absolute; inset: -20%; z-index: -3; pointer-events: none; filter: blur(70px); opacity: .9; }
.pf-aura i { position: absolute; border-radius: 50%; transition: background 1.2s ease, transform 1.6s cubic-bezier(.2,.7,.2,1); }
.pf-aura .a1 { width: 52vw; height: 52vw; left: 46%; top: 10%; background: radial-gradient(closest-side, rgba(0,214,143,.30), transparent); }
.pf-aura .a2 { width: 40vw; height: 40vw; left: 62%; top: 46%; background: radial-gradient(closest-side, rgba(41,151,255,.16), transparent); }
.pf-aura .a3 { width: 46vw; height: 46vw; left: 8%; top: 30%; background: radial-gradient(closest-side, rgba(180,124,255,.09), transparent); }
.pf[data-ch="vpn"] .pf-aura .a1 { background: radial-gradient(closest-side, rgba(41,151,255,.34), transparent); transform: translate(-6vw, 4vh); }
.pf[data-ch="vpn"] .pf-aura .a2 { background: radial-gradient(closest-side, rgba(0,214,143,.12), transparent); }
.pf[data-ch="privacy"] .pf-aura .a1 { background: radial-gradient(closest-side, rgba(180,124,255,.32), transparent); transform: translate(4vw, -2vh); }
.pf[data-ch="privacy"] .pf-aura .a2 { background: radial-gradient(closest-side, rgba(255,159,10,.11), transparent); }
.pf-ambient { position: absolute; z-index: -2; pointer-events: none; filter: blur(80px) saturate(1.7); opacity: 0; transition: opacity 1s; }
.pf-ambient.on { opacity: .5; }
.pf-grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
.pf-vig { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(120% 90% at 62% 50%, transparent 55%, rgba(0,0,0,.78)); }

/* layout */
.pf-grid { position: relative; max-width: 1240px; min-height: max(calc(100vh - 64px), 720px); margin: 0 auto; padding: 84px 32px 112px;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: clamp(32px, 6vw, 96px); }

/* story */
.pf-story { position: relative; min-height: 440px; }
.pf-beat { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); pointer-events: none; }
.pf-beat.on { pointer-events: auto; }
.pf-eyebrow { display: inline-flex; align-items: center; gap: 12px; font: 600 13px/1 Inter, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 0 0 22px;
  opacity: 0; transition: opacity .6s; }
.pf-beat.on .pf-eyebrow { opacity: 1; }
.pf-eyebrow b { font: 600 12px/1 "JetBrains Mono", ui-monospace, monospace; color: var(--ink); opacity: .45; letter-spacing: .04em; }
.pf-h { font: 700 clamp(40px, 5.3vw, 76px)/1.0 "Inter Tight", Inter, sans-serif; letter-spacing: -0.035em; margin: 0 0 24px; }
.pf-h .w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .04em .08em 0; margin-bottom: -.08em; }
.pf-h .w > span { display: inline-block; transform: translateY(108%); transition: transform .95s cubic-bezier(.2,.75,.15,1); }
.pf-beat.on .pf-h .w > span { transform: none; }
.pf-h .g { background: linear-gradient(100deg, #fff 0%, var(--accent) 140%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pf-p { font: 400 clamp(16px, 1.3vw, 19px)/1.55 Inter, sans-serif; color: var(--dim); max-width: 470px; margin: 0;
  opacity: 0; transform: translateY(14px); transition: opacity .8s .25s, transform .8s .25s cubic-bezier(.2,.75,.15,1); }
.pf-beat.on .pf-p { opacity: 1; transform: none; }
.pf-stats { display: flex; gap: clamp(24px, 3.2vw, 48px); margin-top: 40px; flex-wrap: wrap; }
.pf-stat { opacity: 0; transform: translateY(14px); transition: opacity .8s, transform .8s cubic-bezier(.2,.75,.15,1); padding-left: 16px; border-left: 1px solid rgba(255,255,255,.12); }
.pf-beat.on .pf-stat { opacity: 1; transform: none; }
.pf-beat.on .pf-stat:nth-child(1) { transition-delay: .45s; } .pf-beat.on .pf-stat:nth-child(2) { transition-delay: .6s; } .pf-beat.on .pf-stat:nth-child(3) { transition-delay: .75s; }
.pf-stat b { display: block; font: 700 clamp(28px, 2.5vw, 38px)/1 "Inter Tight", Inter, sans-serif; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.pf-stat span { display: block; margin-top: 9px; font: 500 13px/1.35 Inter, sans-serif; color: var(--dim); max-width: 150px; }
.pf-cta { display: flex; gap: 12px; margin-top: 36px; flex-wrap: wrap; opacity: 0; transform: translateY(14px); transition: opacity .8s .45s, transform .8s .45s; }
.pf-beat.on .pf-cta { opacity: 1; transform: none; }
.pf-btn { display: inline-flex; align-items: center; gap: 8px; padding: 15px 24px; border-radius: 999px; font: 600 16px/1 Inter, sans-serif; text-decoration: none; transition: transform .2s, background .2s; }
.pf-btn:active { transform: scale(.97); }
.pf-btn.solid { background: #f5f5f7; color: #000; } .pf-btn.solid:hover { background: #fff; }
.pf-btn.ghost { color: #f5f5f7; border: 1px solid rgba(255,255,255,.25); } .pf-btn.ghost:hover { background: rgba(255,255,255,.08); }

/* phone */
.pf-stage { position: relative; width: calc(var(--pw) * 1.25); height: calc(var(--ph) * 1.04); perspective: 2400px; justify-self: center; touch-action: pan-y; }
.pf-shadow { position: absolute; left: 50%; bottom: 1%; width: calc(var(--pw) * 1.0); height: calc(var(--ph) * 0.06); transform: translateX(-50%);
  background: radial-gradient(closest-side, rgba(0,0,0,.9), transparent); filter: blur(12px); pointer-events: none; }
.pf-glowfloor { position: absolute; left: 50%; bottom: -3%; width: calc(var(--pw) * 2); height: calc(var(--ph) * 0.22); transform: translateX(-50%);
  background: radial-gradient(closest-side, var(--accent), transparent 70%); filter: blur(34px); opacity: .28; pointer-events: none; transition: background 1s; }
.pf-hold { position: absolute; left: 50%; top: 48%; width: var(--pw); height: var(--ph); margin: calc(var(--ph) / -2) 0 0 calc(var(--pw) / -2); cursor: grab; }
.pf-hold:active { cursor: grabbing; }
.pf-phone { position: absolute; inset: 0; transform-style: preserve-3d; will-change: transform; }
.pf-face, .pf-backface { position: absolute; inset: 0; border-radius: calc(var(--pw) * 0.152); backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.pf-face {
  padding: calc(var(--pw) * 0.011);
  background: linear-gradient(90deg, #4f535a, #c6c9cf 5%, #858990 11%, #2a2d31 50%, #858990 89%, #d0d3d8 95%, #4f535a);
  box-shadow: 0 0 0 1px rgba(0,0,0,.7), 0 80px 140px -40px rgba(0,0,0,.95), 0 30px 60px -30px rgba(0,0,0,.8);
}
.pf-face::before { /* moving specular sweep across the titanium */
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 2;
  background: linear-gradient(var(--spec-a, 110deg), transparent 38%, rgba(255,255,255,.75) 49%, transparent 58%);
  mix-blend-mode: overlay; opacity: var(--spec-o, .5);
  -webkit-mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  padding: calc(var(--pw) * 0.011);
}
.pf-bezel { position: relative; width: 100%; height: 100%; border-radius: calc(var(--pw) * 0.142); background: #000; padding: calc(var(--pw) * 0.028); box-shadow: inset 0 0 0 1px #1d1d1f; }
.pf-screen { position: relative; width: 100%; height: 100%; border-radius: calc(var(--pw) * 0.118); overflow: hidden; background: #000;
  font-size: calc(var(--pw) * 0.0395); color: #fff; }
.pf-glass { position: absolute; inset: 0; z-index: 40; pointer-events: none; border-radius: inherit;
  background: linear-gradient(var(--glass-a, 120deg), rgba(255,255,255,.18) 0%, rgba(255,255,255,.05) 24%, transparent 40%); mix-blend-mode: screen; opacity: var(--glass-o, .8); }
.pf-btns i { position: absolute; width: calc(var(--pw) * 0.013); border-radius: 3px; background: linear-gradient(90deg, #2c2f33, #a7abb1 55%, #3a3d42); }
.pf-btns .b1 { left: calc(var(--pw) * -0.011); top: 17%; height: 4.4%; }
.pf-btns .b2 { left: calc(var(--pw) * -0.011); top: 25%; height: 8.2%; }
.pf-btns .b3 { left: calc(var(--pw) * -0.011); top: 35.5%; height: 8.2%; }
.pf-btns .b4 { right: calc(var(--pw) * -0.011); top: 28%; height: 13%; }
.pf-backface { transform: rotateY(180deg); background:
    radial-gradient(130% 70% at 25% 15%, rgba(255,255,255,.16), transparent 50%),
    linear-gradient(160deg, #3a443e, #1a201c 45%, #2c342f);
  box-shadow: inset 0 0 0 calc(var(--pw) * 0.012) #74797f, 0 80px 140px -40px rgba(0,0,0,.95); }
.pf-backface .bump { position: absolute; left: 6%; top: 3%; width: 47%; aspect-ratio: 1; border-radius: 27%;
  background: linear-gradient(150deg, #4a554e, #1c221f); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 12px 24px rgba(0,0,0,.55); }
.pf-backface .lens { position: absolute; width: 38%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle at 36% 34%, #6a8fc4 0 6%, #0d1520 22%, #020305 60%); box-shadow: 0 0 0 calc(var(--pw) * .01) #121614, 0 0 0 calc(var(--pw) * .016) #4a554e, inset 0 0 8px rgba(80,140,255,.3); }
.pf-backface .l1 { left: 8%; top: 8%; } .pf-backface .l2 { left: 54%; top: 31%; } .pf-backface .l3 { left: 8%; top: 54%; }
.pf-backface .flash { position: absolute; left: 62%; top: 10%; width: 12%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(#fff6d8, #b7a77a); opacity: .8; }
.pf-backface .logo { position: absolute; left: 50%; top: 52%; width: 19%; transform: translate(-50%, -50%); opacity: .45; filter: grayscale(1) brightness(2.2); }

/* status bar + dynamic island */
.ps-status { position: absolute; top: 0; left: 0; right: 0; height: 7.5%; z-index: 30; display: flex; align-items: center; justify-content: space-between; padding: 2.6% 9% 0 11%; font-weight: 700; font-size: .8em; pointer-events: none; }
.ps-status .r { display: flex; align-items: center; gap: .35em; }
.ps-status .sig { display: inline-flex; gap: 1.5px; align-items: flex-end; height: .72em; }
.ps-status .sig i { width: .17em; background: #fff; border-radius: 1px; }
.ps-status .bat { width: 1.75em; height: .82em; border-radius: .26em; border: 1px solid rgba(255,255,255,.55); padding: 1px; }
.ps-status .bat::after { content: ""; display: block; height: 100%; width: 80%; background: #fff; border-radius: .14em; }
.ps-status .vpn { font-size: .7em; padding: .05em .32em; border: 1px solid #fff; border-radius: .3em; opacity: 0; transition: opacity .3s; }
.ps-status.vpn-on .vpn { opacity: 0; }
.ps-island { position: absolute; z-index: 35; left: 50%; top: 2.1%; transform: translateX(-50%); width: 32%; height: 4.5%; border-radius: 2em; background: #000;
  transition: width .6s cubic-bezier(.3,1.3,.5,1), height .6s cubic-bezier(.3,1.3,.5,1), top .6s, border-radius .6s; overflow: hidden; }
.ps-island .in { position: absolute; inset: 0; display: flex; align-items: center; gap: .75em; padding: 0 1em; opacity: 0; transition: opacity .2s; }
.ps-island.big { width: 93%; height: 11.5%; top: 1.3%; border-radius: 1.7em; box-shadow: 0 14px 34px rgba(0,0,0,.55); }
.ps-island.big .in { opacity: 1; transition: opacity .3s .28s; }
.ps-island.pill { width: 45%; }
.ps-island .av { width: 3em; height: 3em; border-radius: 50%; overflow: hidden; flex: none; box-shadow: 0 0 0 2px #7fd8ff; background: #222; }
.ps-island .av canvas { width: 100%; height: 100%; display: block; }
.ps-island .tx { flex: 1; min-width: 0; }
.ps-island .tx b { display: block; font-size: 1em; }
.ps-island .tx small { display: block; color: #a1a1a6; font-size: .72em; margin-top: .12em; }
.ps-island .ok { width: 2.3em; height: 2.3em; border-radius: 50%; background: rgba(0,214,143,.18); color: var(--green); display: grid; place-items: center; flex: none; }
.ps-island .ok svg { width: 1.25em; height: 1.25em; }
.ps-island .mini { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; padding: 0 .95em; opacity: 0; transition: opacity .2s; font-size: .66em; font-weight: 700; }
.ps-island.pill .mini { opacity: 1; transition: opacity .25s .2s; }
.ps-island .mini i { width: .72em; height: .72em; border-radius: 50%; background: var(--green); box-shadow: 0 0 8px var(--green); }
.ps-island.pill.vpn .mini i { background: var(--blue); box-shadow: 0 0 8px var(--blue); }

.ps { position: absolute; inset: 0; opacity: 0; }
.ps.on { opacity: 1; }
.ps-pad { position: absolute; inset: 0; padding: 15.5% 6% 0; }
.ps-title { font: 800 2.15em/1 Inter, sans-serif; letter-spacing: -.02em; margin: 0 0 .55em; }
.ps-sec { font-size: .62em; font-weight: 800; letter-spacing: .12em; color: #8e8e93; text-transform: uppercase; margin: 1.15em .3em .6em; }

/* tab bar */
.ps-tabs { position: absolute; left: 0; right: 0; bottom: 0; height: 10.5%; z-index: 20; display: grid; grid-template-columns: repeat(5, 1fr); align-items: start; padding: 2.3% 3% 0;
  background: rgba(10,10,11,.86); border-top: 1px solid rgba(255,255,255,.07); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.ps-tabs span { display: flex; flex-direction: column; align-items: center; gap: .28em; font-size: .52em; font-weight: 700; color: #6e6e73; }
.ps-tabs span svg { width: 2.2em; height: 2.2em; }
.ps-tabs span.on { color: #fff; }
.ps-home-ind { position: absolute; left: 50%; bottom: 1.1%; width: 35%; height: .34em; border-radius: 1em; background: #fff; transform: translateX(-50%); z-index: 39; opacity: .92; }

/* home */
.hm-arm { display: grid; grid-template-columns: repeat(3, 1fr); gap: .3em; padding: .3em; border-radius: 1.15em; background: #151516; }
.hm-arm span { text-align: center; padding: .78em 0; border-radius: .9em; font-size: .78em; font-weight: 800; color: #8e8e93; transition: all .45s; }
.hm-arm span.on { background: rgba(0,214,143,.16); color: var(--green); box-shadow: inset 0 0 0 1px rgba(0,214,143,.35); }
.hm-hero { position: relative; margin-top: .65em; border-radius: 1.35em; padding: 1.1em 1.15em; overflow: hidden; display: flex; align-items: center; gap: .9em;
  background: radial-gradient(130% 160% at 0% 0%, rgba(0,214,143,.24), rgba(0,214,143,.03) 55%), #0c0f0e; border: 1px solid rgba(0,214,143,.2); transition: all .6s; }
.hm-hero.off { background: #121214; border-color: rgba(255,255,255,.06); }
.hm-hero .sh { width: 3.2em; height: 3.2em; border-radius: 50%; display: grid; place-items: center; background: rgba(0,214,143,.15); position: relative; flex: none; }
.hm-hero.off .sh { background: rgba(255,255,255,.07); }
.hm-hero .sh svg { width: 1.65em; height: 1.65em; color: var(--green); transition: color .5s; }
.hm-hero.off .sh svg { color: #8e8e93; }
.hm-hero .sh::after { content: ""; position: absolute; inset: -.15em; border-radius: 50%; border: 2px solid var(--green); opacity: 0; }
.hm-hero:not(.off) .sh::after { animation: pf-ring 2.4s infinite; }
.hm-hero b { display: block; font-size: 1.2em; }
.hm-hero small { display: block; color: #9fe8cf; font-size: .7em; margin-top: .22em; }
.hm-hero.off small { color: #8e8e93; }
.hm-cams { display: grid; grid-template-columns: 1fr 1fr; gap: .45em; }
.hm-cam { position: relative; aspect-ratio: 16/10.5; border-radius: .9em; overflow: hidden; background: #111; }
.hm-cam canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hm-cam span { position: absolute; left: .55em; bottom: .45em; font-size: .62em; font-weight: 800; text-shadow: 0 1px 4px #000; }
.hm-cam .live { position: absolute; right: .5em; top: .45em; font-size: .5em; font-weight: 800; padding: .22em .45em; border-radius: .4em; background: rgba(0,0,0,.55); }
.hm-cam.tap::after { content: ""; position: absolute; left: 50%; top: 50%; width: 28%; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.5); transform: translate(-50%,-50%) scale(0); animation: pf-tap .55s ease-out forwards; }
.hm-row { display: flex; align-items: center; gap: .75em; padding: .8em .9em; }
.hm-row .ic { width: 2.3em; height: 2.3em; border-radius: .65em; display: grid; place-items: center; flex: none; background: #10261e; color: var(--green); }
.hm-row .ic svg { width: 1.2em; height: 1.2em; }
.hm-row b { display: block; font-size: .86em; } .hm-row small { display: block; font-size: .66em; color: #8e8e93; margin-top: .15em; }
.ps-card { background: #151516; border-radius: 1.15em; border: 1px solid rgba(255,255,255,.05); }

/* live */
.lv { background: #000; }
.lv canvas.feed { position: absolute; left: 0; right: 0; top: 13.5%; width: 100%; aspect-ratio: 3 / 4; height: auto; }
.lv-name { position: absolute; z-index: 6; left: 6%; right: 6%; top: 8.3%; display: flex; align-items: center; gap: .55em; }
.lv-name b { font-size: 1.25em; letter-spacing: -.01em; }
.lv-tag { font-size: .58em; font-weight: 800; padding: .32em .62em; border-radius: 2em; background: rgba(255,69,58,.22); color: #ff6961; display: inline-flex; align-items: center; gap: .35em; }
.lv-tag i { width: .55em; height: .55em; border-radius: 50%; background: #ff453a; animation: pf-blink 1.2s infinite; }
.lv-name .sp { flex: 1; }
.lv-q { font-size: .58em; font-weight: 800; padding: .32em .58em; border-radius: .5em; background: rgba(255,255,255,.12); }
.lv-time { position: absolute; z-index: 6; left: 4.5%; top: 14.6%; font: 600 .56em/1 "JetBrains Mono", ui-monospace, monospace; color: rgba(255,255,255,.82); text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.lv-chips { position: absolute; z-index: 6; left: 5%; right: 5%; bottom: 24.5%; display: flex; gap: .4em; transition: opacity .3s; }
.lv-chips span { display: inline-flex; align-items: center; gap: .45em; padding: .5em .8em; border-radius: 2em; background: #161618; border: 1px solid rgba(255,255,255,.07); font-size: .6em; font-weight: 700; color: #e5e5ea; opacity: 0; transform: translateY(.4em); transition: opacity .4s, transform .4s; }
.lv-chips span.in { opacity: 1; transform: none; }
.lv-chips em { width: .6em; height: .6em; border-radius: 50%; background: #7fd8ff; }
.lv-chips.hide { opacity: 0; }
.lv-tl { position: absolute; z-index: 6; left: 5.5%; right: 5.5%; bottom: 19.2%; }
.lv-tl-track { position: relative; height: .62em; border-radius: 1em; background: #161618; box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); }
.lv-tl-track .rec { position: absolute; top: 0; bottom: 0; border-radius: 1em; background: linear-gradient(90deg, rgba(0,214,143,.16), rgba(0,214,143,.3)); }
.lv-tl-track i { position: absolute; top: 50%; width: .5em; height: .5em; margin: -.25em 0 0 -.25em; border-radius: 50%; background: var(--green); box-shadow: 0 0 .5em rgba(0,214,143,.6); }
.lv-tl-track i.c { background: #ffd60a; box-shadow: 0 0 .5em rgba(255,214,10,.5); }
.lv-tl-track i.f { background: #7fd8ff; box-shadow: 0 0 .5em rgba(127,216,255,.6); }
.lv-tl-track i.new { transform: scale(0); transition: transform .5s cubic-bezier(.3,1.6,.5,1); }
.lv-tl-track i.new.in { transform: scale(1.25); }
.lv-tl-track .head { position: absolute; right: -.1em; top: -.45em; bottom: -.45em; width: .2em; border-radius: .2em; background: #fff; box-shadow: 0 0 .6em rgba(255,255,255,.7); }
.lv-tl-lbl { display: flex; justify-content: space-between; margin-top: .55em; font: 600 .5em/1 Inter, sans-serif; color: #636366; }
.lv-tl-lbl .now { color: #ff6961; font-weight: 800; }
.lv-dock { position: absolute; z-index: 6; left: 5%; right: 5%; bottom: 7%; display: grid; grid-template-columns: repeat(5, 1fr); }
.lv-dock span { display: flex; flex-direction: column; align-items: center; gap: .45em; font-size: .58em; font-weight: 700; color: #e5e5ea; }
.lv-dock span i { width: 4.1em; height: 4.1em; border-radius: 50%; display: grid; place-items: center; background: #1c1c1e; transition: all .35s; }
.lv-dock span i svg { width: 1.75em; height: 1.75em; }
.lv-dock span.on i { background: var(--green); color: #000; box-shadow: 0 0 0 .45em rgba(0,214,143,.18), 0 0 2em rgba(0,214,143,.45); }
.lv-wave { position: absolute; z-index: 6; left: 50%; bottom: 23%; transform: translateX(-50%) translateY(.6em); display: flex; align-items: center; gap: .6em; padding: .6em 1em; border-radius: 2em;
  background: rgba(0,214,143,.14); border: 1px solid rgba(0,214,143,.42); font-size: .64em; font-weight: 800; color: var(--green); opacity: 0; transition: opacity .35s, transform .35s; white-space: nowrap; }
.lv-wave.on { opacity: 1; transform: translateX(-50%); }
.lv-wave .bars { display: flex; gap: .2em; align-items: center; height: 1.5em; }
.lv-wave .bars i { width: .22em; border-radius: .2em; background: var(--green); height: 20%; }

/* vpn */
.vp canvas.globe { position: absolute; left: -8%; right: -8%; top: 10%; width: 116%; height: 56%; }
.vp-state { position: absolute; left: 0; right: 0; top: 64.5%; text-align: center; }
.vp-state b { display: block; font-size: 1.6em; font-weight: 800; letter-spacing: -.01em; }
.vp-state small { display: block; color: #8e8e93; font-size: .74em; margin-top: .32em; font-variant-numeric: tabular-nums; }
.vp-chips { display: flex; justify-content: center; gap: .4em; margin-top: .95em; flex-wrap: wrap; padding: 0 6%; }
.vp-chips span { font-size: .58em; font-weight: 800; padding: .5em .8em; border-radius: 2em; background: #151516; border: 1px solid rgba(255,255,255,.07); color: #d1d1d6; }
.vp-chips span em { font-style: normal; color: var(--blue); }
.vp-toggle { position: absolute; left: 6%; right: 6%; bottom: 13.2%; display: flex; align-items: center; gap: .8em; padding: .85em 1em; border-radius: 1.15em; background: #151516; }
.vp-toggle b { display: block; font-size: .84em; } .vp-toggle small { display: block; color: #8e8e93; font-size: .62em; margin-top: .15em; }
.sw { margin-left: auto; width: 2.9em; height: 1.75em; border-radius: 2em; background: #39393d; position: relative; flex: none; transition: background .35s; }
.sw::after { content: ""; position: absolute; top: .17em; left: .17em; width: 1.41em; height: 1.41em; border-radius: 50%; background: #fff; transition: transform .35s cubic-bezier(.3,1.4,.5,1); box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.sw.on { background: var(--green); } .sw.on::after { transform: translateX(1.15em); }

/* privacy */
.pv-head { display: flex; align-items: center; gap: .95em; padding: 1em 1.05em; border-radius: 1.35em;
  background: radial-gradient(130% 160% at 0% 0%, rgba(180,124,255,.28), rgba(180,124,255,.03) 55%), #0e0c12; border: 1px solid rgba(180,124,255,.24); }
.pv-meter { position: relative; width: 5.5em; height: 5.5em; flex: none; }
.pv-meter svg { width: 100%; height: 100%; }
.pv-meter .n { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding-top: .3em; }
.pv-meter .n b { display: block; font-size: 1.02em; font-weight: 900; line-height: 1; font-variant-numeric: tabular-nums; }
.pv-meter .n small { display: block; font-size: .46em; color: #a1a1a6; margin-top: .3em; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; }
.pv-head .tx b { display: block; font-size: 1.05em; }
.pv-head .tx small { display: block; color: #b9a6d9; font-size: .66em; margin-top: .25em; line-height: 1.4; }
.pv-rows { display: flex; flex-direction: column; gap: .4em; }
.pv-row { display: flex; align-items: center; gap: .7em; padding: .68em .8em; border-radius: 1em; background: #151516; border: 1px solid rgba(255,255,255,.05); }
.pv-row .lg { width: 2.15em; height: 2.15em; border-radius: .62em; display: grid; place-items: center; font-weight: 900; font-size: .84em; flex: none; }
.pv-row .nm { font-size: .82em; font-weight: 800; position: relative; display: inline-block; }
.pv-row .nm::after { content: ""; position: absolute; left: -2%; top: 52%; height: .12em; width: 0; background: #8e8e93; transition: width .5s cubic-bezier(.2,.8,.2,1); }
.pv-row.gone .nm { color: #8e8e93; } .pv-row.gone .nm::after { width: 104%; }
.pv-row .sub { display: block; font-size: .58em; color: #8e8e93; font-weight: 600; margin-top: .18em; }
.pv-row .st { margin-left: auto; font-size: .56em; font-weight: 800; padding: .42em .72em; border-radius: 2em; white-space: nowrap; transition: background .35s, color .35s; }
.st.found { background: rgba(255,159,10,.16); color: var(--amber); }
.st.served { background: rgba(180,124,255,.18); color: #cfa8ff; }
.st.gone { background: rgba(0,214,143,.16); color: var(--green); }
.pv-total { margin-top: .55em; display: flex; align-items: center; justify-content: space-between; padding: .85em 1em; border-radius: 1.15em; background: linear-gradient(120deg, rgba(180,124,255,.22), #151516 70%); border: 1px solid rgba(180,124,255,.16); }
.pv-total b { display: block; font-size: .8em; } .pv-total small { display: block; color: #a1a1a6; font-size: .58em; margin-top: .18em; }
.pv-total .big { font-size: 1.65em; font-weight: 900; font-variant-numeric: tabular-nums; color: #e3ccff; }
.pv-total .big small { display: inline; font-size: .42em; color: #a28bd6; margin: 0; }

/* outro */
.ot { display: grid; place-items: center; text-align: center; background: radial-gradient(70% 50% at 50% 42%, rgba(0,214,143,.24), #000 72%); }
.ot > div { width: 100%; }
.ot-ring { position: relative; display: block; width: 32%; aspect-ratio: 1; margin: 0 auto; }
.ot-ring::before, .ot-ring::after { content: ""; position: absolute; inset: -22%; border-radius: 50%; border: 1px solid rgba(0,214,143,.35); animation: otPulse 2.6s ease-out infinite; }
.ot-ring::after { animation-delay: 1.3s; }
@keyframes otPulse { from { transform: scale(.7); opacity: .9; } to { transform: scale(1.35); opacity: 0; } }
.ot img { display: block; width: 100%; height: 100%; margin: 0 auto; filter: drop-shadow(0 0 34px rgba(0,214,143,.65)); }
.ot-pills { display: flex; justify-content: center; gap: .45em; margin-top: 1.6em; }
.ot-pills i { font: 700 .62em/1 Inter, sans-serif; font-style: normal; color: #d8fff0; padding: .6em .85em; border-radius: 99px; background: rgba(0,214,143,.12); border: 1px solid rgba(0,214,143,.32); }
.ot b { display: block; font: 800 1.65em/1.1 "Inter Tight", Inter, sans-serif; margin-top: .9em; letter-spacing: -.02em; }
.ot small { display: block; color: #8e8e93; font-size: .8em; margin-top: .45em; }

/* controls */
.pf-ctl { position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 10; width: min(660px, calc(100% - 32px));
  display: flex; align-items: center; gap: 14px; padding: 9px 16px 9px 9px; border-radius: 999px;
  background: rgba(28,28,30,.66); border: 1px solid rgba(255,255,255,.08); backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); }
.pf-play { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #f5f5f7; color: #000; display: grid; place-items: center; cursor: pointer; transition: transform .15s; }
.pf-play:active { transform: scale(.92); }
.pf-play svg { width: 15px; height: 15px; }
.pf-segs { flex: 1; display: flex; gap: 10px; touch-action: none; }
.pf-seg { position: relative; background: none; border: 0; padding: 4px 0; text-align: left; color: #a1a1a6; font: 600 12px/1 Inter, sans-serif; cursor: pointer; min-width: 0; }
.pf-seg .bar { display: block; height: 4px; border-radius: 4px; background: rgba(255,255,255,.18); overflow: hidden; margin-bottom: 8px; }
.pf-seg .bar i { display: block; height: 100%; width: 0; border-radius: 4px; background: #f5f5f7; }
.pf-seg.cur { color: #f5f5f7; }
.pf-seg .lb { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-hint { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); font: 500 11.5px/1 Inter, sans-serif; color: #55555a; white-space: nowrap; }

@keyframes pf-ring { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.65); opacity: 0; } }
@keyframes pf-blink { 50% { opacity: .25; } }
@keyframes pf-tap { to { transform: translate(-50%,-50%) scale(3.4); opacity: 0; } }
.pf.paused .hm-hero .sh::after, .pf.paused .lv-tag i { animation-play-state: paused; }

@media (max-width: 980px) {
  .pf { --ph: min(62vh, 620px); }
  .pf-grid { grid-template-columns: minmax(0, 1fr); padding: 64px 20px 128px; gap: 4px; text-align: center; }
  .pf-phone { text-align: left; }
  .pf-stage { order: 1; }
  .pf-story { order: 2; min-height: 360px; }
  .pf-beat { top: 0; transform: none; }
  .pf-p { margin: 0 auto; }
  .pf-stats, .pf-cta { justify-content: center; }
  .pf-stat { text-align: left; }
}
@media (max-width: 520px) {
  .pf { --ph: min(58vh, 540px); }
  .pf-h { font-size: 36px; }
  .pf-seg .lb { display: none; } .pf-seg .bar { margin-bottom: 0; }
  .pf-hint { display: none; }
  .pf-stats { gap: 18px; }
  .pf-stat span { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .hm-hero .sh::after, .lv-tag i { animation: none; }
}
.pf-instant, .pf-instant * { transition: none !important; }
