/* ==========================================================================
   The Blueprint Co. — v3 "Aurora Noir"
   Dark cinematic surfaces, aurora light, glass, and light "paper" sections for
   long reading. Motion is driven by assets/js/main.js (GSAP + ScrollTrigger + Lenis)
   and degrades to plain, fast CSS when JavaScript or motion is off.
   ========================================================================== */

@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage.woff2") format("woff2"); font-weight: 200 800; font-stretch: 75% 100%; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@property --angle { syntax: "<angle>"; initial-value: 0deg; inherits: false; }

:root {
  --bg: #0B0A11; --bg-2: #110F18; --bg-3: #1A1723;
  --glass: rgba(255, 255, 255, .045); --glass-2: rgba(255, 255, 255, .075); --glass-3: rgba(255, 255, 255, .11);
  --line: rgba(255, 255, 255, .085); --line-2: rgba(255, 255, 255, .16);
  --text: #F6F3F8; --text-2: #CBC4D6; --muted: #948DA3;
  --mint: #F7D9AA; --sky: #EC8FC0; --iris: #A993FF; --amber: #F6C98E; --rose: #F59AA8; --peach: #F5A896;
  --grad: linear-gradient(100deg, #F7D9AA 0%, #F5A896 32%, #EC8FC0 62%, #A993FF 100%);
  --grad-warm: linear-gradient(100deg, var(--amber), var(--rose) 60%, var(--iris));
  --paper: #F5F3F7; --ink: #16131D; --ink-2: #3B3547; --ink-muted: #6C6579; --paper-line: rgba(22, 19, 29, .09);
  --r-xl: 36px; --r-lg: 28px; --r-md: 20px; --r-sm: 14px;
  --ease: cubic-bezier(.22, 1, .36, 1); --spring: cubic-bezier(.34, 1.36, .64, 1); --ios: cubic-bezier(.32, .72, 0, 1);
  --display: "Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --sh-1: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 20px 50px -20px rgba(0, 0, 0, .6);
  --sh-glow: 0 0 0 1px rgba(242, 211, 168, .25), 0 10px 40px -10px rgba(239, 169, 192, .45);
  --nav-h: 72px;
  /* legacy names used by the member app */
  --forest: var(--bg-2); --forest-3: #5A47B5; --brass: var(--mint); --brass-2: var(--mint); --brass-3: rgba(242, 211, 168, .14);
  --ivory: var(--text); --card: var(--glass-2); --sage: rgba(255, 255, 255, .1); --serif: var(--display); --ink-2-legacy: var(--text-2);
  color-scheme: dark;
}
.light {
  --bg: var(--paper); --bg-2: #ECE9F1; --bg-3: #E2DEEA;
  --glass: rgba(22, 19, 29, .035); --glass-2: #FFFFFF; --glass-3: #FFFFFF;
  --line: var(--paper-line); --line-2: rgba(22, 19, 29, .16);
  --text: var(--ink); --text-2: var(--ink-2); --muted: var(--ink-muted);
  --card: #FFFFFF; --sage: #E7E1F3; --forest-3: #5A47B5; --brass: #6A4ED4; --brass-2: #6A4ED4; --brass-3: #ECE5FF;
  --sh-1: 0 1px 2px rgba(22, 19, 29, .04), 0 18px 40px -24px rgba(22, 19, 29, .25);
  color-scheme: light;
  background: var(--bg); color: var(--text);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--nav-h) + 20px); }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 17px; line-height: 1.6; font-feature-settings: "ss01", "cv11"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; text-rendering: optimizeLegibility; }
img, svg, video, canvas { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
::selection { background: rgba(242, 211, 168, .35); color: #fff; }
.light ::selection { background: rgba(106, 78, 212, .22); color: var(--ink); }
:focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; border-radius: 8px; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 999; background: #fff; color: #000; padding: 10px 16px; border-radius: 12px; transition: top .3s var(--ease); }
.skip:focus { top: 12px; }
[hidden] { display: none !important; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ic { width: 20px; height: 20px; flex: none; }

h1, h2, h3, h4 { font-family: var(--display); font-weight: 700; letter-spacing: -.035em; line-height: 1.02; margin: 0; font-optical-sizing: auto; }
h1, .display { font-size: clamp(48px, 8.4vw, 132px); letter-spacing: -.055em; line-height: .92; font-weight: 750; }
h2, .h2 { font-size: clamp(38px, 5.6vw, 84px); letter-spacing: -.048em; line-height: .96; }
h3 { font-size: clamp(21px, 2vw, 27px); letter-spacing: -.025em; line-height: 1.12; }
h1 em, h2 em, h3 em, .grad { font-style: normal; background: var(--grad); background-size: 200% 100%; background-position: calc(var(--sp, 0) * 100%) 50%; -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .04em; }
.light h1 em, .light h2 em, .light h3 em, .light .grad { background: linear-gradient(100deg, #B8603A, #B0457E 50%, #6A4ED4); -webkit-background-clip: text; background-clip: text; }
p { margin: 0 0 1em; }
.lede { font-size: clamp(17px, 1.5vw, 21px); line-height: 1.55; color: var(--text-2); max-width: 64ch; }
.muted { color: var(--muted); }
.small { font-size: 14.5px; }
.tiny { font-size: 13px; }
.link { color: var(--text); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--mint) 70%, transparent); text-underline-offset: 4px; text-decoration-thickness: 1.5px; transition: text-decoration-color .3s; display: inline-flex; align-items: center; gap: 6px; }
.light .link { text-decoration-color: #6A4ED4; }
.link:hover { text-decoration-color: currentColor; }
.link .ic { width: 16px; height: 16px; transition: transform .4s var(--spring); }
.link:hover .ic { transform: translateX(4px); }

.wrap { width: min(1260px, 100% - 32px); margin-inline: auto; }
.wrap--narrow { width: min(860px, 100% - 32px); }
@media (min-width: 700px) { .wrap { width: min(1260px, 100% - 64px); } .wrap--narrow { width: min(860px, 100% - 64px); } }

.sec { position: relative; padding: clamp(80px, 12vw, 170px) 0; }
.sec--tight { padding: clamp(50px, 7vw, 90px) 0; }
.sec__head { max-width: 900px; margin-bottom: clamp(40px, 6vw, 72px); }
.sec__head > * + * { margin-top: 20px; }
.sec__head--center { margin-inline: auto; text-align: center; }
.sec__head--center .lede { margin-inline: auto; }
.round-top { border-radius: clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) 0 0; }
.round { border-radius: clamp(28px, 4vw, 56px); }
.paper { background: var(--bg); }

/* ---------- Labels ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 10px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--glass); font-size: 13px; font-weight: 600; letter-spacing: .01em; color: var(--text-2); }
.eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 0 rgba(242, 211, 168, .6); animation: ping 2.4s var(--ease) infinite; }
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(242, 211, 168, .55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(242, 211, 168, 0); } }
.kicker { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.light .kicker { background: linear-gradient(100deg, #B0457E, #6A4ED4); -webkit-background-clip: text; background-clip: text; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--glass-2); border: 1px solid var(--line); font-size: 12.5px; font-weight: 600; color: var(--text-2); white-space: nowrap; transition: background .3s, border-color .3s, transform .4s var(--spring); }
button.chip:hover { border-color: var(--line-2); transform: translateY(-1px); }
.chip .ic { width: 15px; height: 15px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.badge { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--text-2); background: var(--glass); }
.badge--live { color: #1B1422; background: var(--mint); border-color: transparent; }
.badge--live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #1B1422; animation: blink 1.6s steps(2) infinite; }
@keyframes blink { 50% { opacity: .25; } }
.badge--soon { color: #1A1206; background: var(--amber); border-color: transparent; }
.badge--dark { background: var(--bg-3); color: var(--text); }
.badge--hot { color: #1B1422; background: linear-gradient(100deg, #F7D9AA, #F5A896, #EC8FC0, #A993FF, #F7D9AA); background-size: 300% 100%; border-color: transparent; animation: flow 6s linear infinite; }
.badge--hot .ic { width: 13px; height: 13px; }

/* ---------- Buttons ---------- */
.btn { --bh: 56px; --bx: 50%; --by: 50%; position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: var(--bh); padding: 0 26px; border-radius: 999px; background: #fff; color: #0E0B14; font-weight: 650; font-size: 15.5px; letter-spacing: -.01em; white-space: nowrap; isolation: isolate; overflow: hidden; transition: transform .45s var(--ios), box-shadow .45s var(--ios), background .3s; }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--grad); opacity: 0; transition: opacity .45s var(--ios); }
/* a soft light that follows the pointer inside the button (position set by main.js) */
.btn::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; background: radial-gradient(150px circle at var(--bx) var(--by), rgba(255, 255, 255, .5), rgba(255, 255, 255, .12) 38%, transparent 64%); opacity: 0; transition: opacity .4s var(--ios); }
.btn:hover { transform: translateY(-2px); box-shadow: 0 18px 44px -16px rgba(236, 143, 192, .65), 0 0 0 1px rgba(255, 255, 255, .16); }
.btn:hover::before, .btn:hover::after { opacity: 1; }
.btn .ic { width: 18px; height: 18px; transition: transform .45s var(--spring); }
.btn:hover .ic { transform: translateX(4px); }
.btn:active { transform: translateY(0) scale(.96); transition-duration: .12s; }
.biz:active, .g-item:active, .stand__i:active, .lesson:active, .dcard:active { transform: scale(.98); transition-duration: .15s; }
/* buy buttons: a slowly flowing gradient, brighter on hover */
.btn--brass { background: linear-gradient(100deg, #F7D9AA, #F5A896 25%, #EC8FC0 50%, #A993FF 75%, #F7D9AA); background-size: 300% 100%; color: #1B1422; animation: flow 9s linear infinite; }
.btn--brass::before { background: linear-gradient(100deg, #FFE9C6, #FFC1AE 35%, #F7A8D2 65%, #C2B2FF); }
@keyframes flow { to { background-position: 300% 0; } }
.btn--ghost { background: var(--glass-2); color: var(--text); border: 1px solid var(--line-2); }
.btn--ghost::before { background: var(--glass-3); }
.btn--ghost::after { background: radial-gradient(140px circle at var(--bx) var(--by), rgba(247, 217, 170, .22), transparent 64%); }
.btn--ghost:hover { box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .8); border-color: rgba(247, 217, 170, .45); }
.light .btn { background: var(--ink); color: #fff; }
.light .btn::before { background: linear-gradient(100deg, #B0457E, #6A4ED4); }
.light .btn--brass { background: linear-gradient(100deg, #B8603A, #B0457E 35%, #6A4ED4 70%, #B8603A); background-size: 300% 100%; color: #fff; }
.light .btn--brass::before { background: linear-gradient(100deg, #C9714A, #C0558E, #7A5EE4); }
.light .btn--ghost { background: #fff; color: var(--ink); border-color: var(--line-2); }
.light .btn--ghost::before { background: #EFECF4; }
.btn--sm { --bh: 42px; padding: 0 18px; font-size: 14px; }
.btn--block { width: 100%; }
.btn[disabled] { opacity: .5; pointer-events: none; }

/* ---------- Progress, cursor, grain ---------- */
.progress { position: fixed; inset: 0 0 auto 0; height: 2px; z-index: 120; background: var(--grad); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
.cursor { position: fixed; left: 0; top: 0; z-index: 131; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .55); pointer-events: none; mix-blend-mode: difference; transition: width .35s var(--ios), height .35s var(--ios), margin .35s var(--ios), border-radius .35s var(--ios), opacity .3s; }
.cursor.is-hover { width: 54px; height: 54px; margin: -27px 0 0 -27px; border-color: rgba(255, 255, 255, .8); }
.cursor.is-text { width: 3px; height: 26px; margin: -13px 0 0 -1.5px; border-radius: 2px; }
.cursor.is-down { width: 20px; height: 20px; margin: -10px 0 0 -10px; }
.glow { position: fixed; left: 0; top: 0; z-index: 90; width: 620px; height: 620px; margin: -310px 0 0 -310px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(236, 143, 192, .11), rgba(169, 147, 255, .06) 34%, transparent 66%); mix-blend-mode: screen; transition: opacity .6s var(--ios); }
.cursor.is-hidden, .glow.is-hidden { opacity: 0; }
@media (pointer: coarse) { .cursor, .glow { display: none; } }
.ripple { position: absolute; border-radius: 50%; pointer-events: none; z-index: 2; background: radial-gradient(circle, color-mix(in srgb, currentColor 30%, transparent) 0%, color-mix(in srgb, currentColor 10%, transparent) 42%, transparent 70%); transform: scale(0); animation: ripple .7s var(--ios) forwards; }
@keyframes ripple { to { transform: scale(1); opacity: 0; } }
.seg button, .vs-seg button, .vs-toggles button, .chip, .side__nav button, .lib__sections button, .buybox__row { position: relative; overflow: clip; }
.fx-spark { position: fixed; z-index: 170; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; pointer-events: none; animation: fx-spark .8s var(--ios) both; }
@keyframes fx-spark { 0% { transform: translate3d(0, 0, 0) scale(1.2); opacity: 1; } 100% { transform: translate3d(var(--tx), var(--ty), 0) scale(.2); opacity: 0; } }
.grain::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

@media (pointer: coarse) { .grain::after { display: none; } }

/* ---------- Aurora background ---------- */
.aurora { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.aurora__b { position: absolute; border-radius: 50%; opacity: .5; will-change: transform; }
.aurora__b--1 { width: 55vw; height: 55vw; left: -12vw; top: -18vw; background: radial-gradient(circle, rgba(242, 211, 168, .75), transparent 70%); animation: drift1 22s ease-in-out infinite alternate; }
.aurora__b--2 { width: 50vw; height: 50vw; right: -14vw; top: -8vw; background: radial-gradient(circle, rgba(184, 166, 255, .7), transparent 70%); animation: drift2 26s ease-in-out infinite alternate; }
.aurora__b--3 { width: 46vw; height: 46vw; left: 28vw; top: 22vw; background: radial-gradient(circle, rgba(239, 169, 192, .55), transparent 70%); animation: drift3 30s ease-in-out infinite alternate; }
@keyframes drift1 { to { transform: translate3d(12vw, 8vw, 0) scale(1.15); } }
@keyframes drift2 { to { transform: translate3d(-10vw, 12vw, 0) scale(.9); } }
@keyframes drift3 { to { transform: translate3d(-14vw, -10vw, 0) scale(1.2); } }
.gridlines { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 72px 72px; -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 75%); mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 75%); }
.spotlight { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(600px circle at var(--sx, 50%) var(--sy, 30%), rgba(255, 255, 255, .07), transparent 60%); transition: background .2s; }

/* ---------- Top bar + navigation ---------- */
.bar { position: relative; z-index: 110; text-align: center; font-size: 13.5px; padding: 9px 16px; background: var(--grad); color: #1B1422; font-weight: 600; }
.bar a { text-decoration: underline; }
.nav { position: fixed; top: 14px; left: 0; right: 0; z-index: 100; pointer-events: none; transition: transform .6s var(--ease); }
.has-bar .nav { top: 52px; }
.nav.is-hidden { transform: translateY(calc(-100% - 70px)); }
.nav__in { pointer-events: auto; display: flex; align-items: center; justify-content: space-between; gap: 18px; height: var(--nav-h); padding: 0 12px 0 20px; border-radius: 999px; background: rgba(16, 14, 22, .55); border: 1px solid var(--line); backdrop-filter: blur(22px) saturate(160%); -webkit-backdrop-filter: blur(22px) saturate(160%); box-shadow: 0 10px 40px -20px rgba(0, 0, 0, .8); transition: background .4s, height .5s var(--ease); }
.nav.is-scrolled .nav__in { --nav-h: 62px; background: rgba(12, 10, 17, .78); }
.brand { display: inline-flex; align-items: center; gap: 12px; font-family: var(--display); font-weight: 700; font-size: 19px; letter-spacing: -.03em; }
.brand__mark { position: relative; width: 38px; height: 38px; display: block; flex: none; filter: drop-shadow(0 6px 14px rgba(236, 143, 192, .35)); transition: transform .5s var(--spring, cubic-bezier(.34, 1.4, .64, 1)); }
.brand__mark svg { display: block; width: 100%; height: 100%; }
.brand:hover .brand__mark { transform: rotate(-4deg) scale(1.04); }
.brand__soft { font-weight: 500; opacity: .78; }
.brand__dot { font-style: normal; color: var(--sky); }
.nav__links { display: none; gap: 4px; }
.nav__links a { position: relative; padding: 10px 16px; border-radius: 999px; font-size: 14.5px; font-weight: 550; color: var(--text-2); transition: color .3s, background .3s; }
.nav__links a:hover, .nav__links a.on { color: var(--text); background: var(--glass-2); }
.nav__cta { display: flex; align-items: center; gap: 8px; }
.nav__member { display: none; }
.burger { width: 46px; height: 46px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--glass-2); border: 1px solid var(--line); }
.burger span { display: block; width: 18px; height: 2px; background: var(--text); border-radius: 2px; transition: transform .5s var(--ease), opacity .3s; }
.burger span + span { margin-top: 5px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
@media (min-width: 980px) { .nav__links { display: flex; } .nav__member { display: inline-flex; } .burger { display: none; } }
@media (max-width: 520px) { .nav__cta .btn:not(.nav__member) { display: none; } .nav__in { padding: 0 8px 0 16px; } }

/* Full-screen menu */
.sheet { position: fixed; inset: 0; z-index: 95; visibility: hidden; pointer-events: none; transition: visibility 0s .5s; }
.sheet.is-open { visibility: visible; pointer-events: auto; transition: visibility 0s; }
.sheet__bg { position: absolute; inset: 0; background: rgba(8, 7, 12, .55); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); opacity: 0; transition: opacity .45s var(--ios); }
.sheet.is-open .sheet__bg { opacity: 1; }
.sheet__panel { position: absolute; left: 8px; right: 8px; bottom: 8px; max-height: calc(100% - 90px); overflow-y: auto; display: flex; flex-direction: column; gap: 24px; padding: 30px 22px calc(22px + env(safe-area-inset-bottom, 0px)); border-radius: 34px; background: rgba(24, 21, 32, .92); border: 1px solid var(--line-2); box-shadow: 0 -20px 60px -20px rgba(0, 0, 0, .7); transform: translate3d(0, 110%, 0); transition: transform .55s var(--ios); }
.sheet__panel::before { content: ""; position: absolute; top: 10px; left: 50%; width: 40px; height: 5px; margin-left: -20px; border-radius: 3px; background: var(--line-2); }
.sheet.is-open .sheet__panel { transform: none; }
.sheet__links { display: grid; gap: 2px; }
.sheet__links a { display: flex; align-items: center; justify-content: space-between; font-family: var(--display); font-size: clamp(30px, 8.4vw, 46px); font-weight: 700; letter-spacing: -.045em; line-height: 1.15; padding: 8px 4px; border-bottom: 1px solid var(--line); opacity: 0; transform: translate3d(0, 18px, 0); transition: opacity .5s var(--ios), transform .6s var(--ios); }
.sheet__links a:active { opacity: .6; }
.sheet__links a .ic { width: 26px; height: 26px; color: var(--mint); }
.sheet.is-open .sheet__links a { opacity: 1; transform: none; }
.sheet.is-open .sheet__links a:nth-child(1) { transition-delay: .08s; } .sheet.is-open .sheet__links a:nth-child(2) { transition-delay: .12s; } .sheet.is-open .sheet__links a:nth-child(3) { transition-delay: .16s; } .sheet.is-open .sheet__links a:nth-child(4) { transition-delay: .2s; } .sheet.is-open .sheet__links a:nth-child(5) { transition-delay: .24s; }
.sheet__panel > .btn { opacity: 0; transform: translate3d(0, 14px, 0); transition: opacity .5s .26s var(--ios), transform .6s .26s var(--ios); }
.sheet.is-open .sheet__panel > .btn { opacity: 1; transform: none; }

/* ---------- Reveal system (JS adds .in; GSAP drives when present) ---------- */
.js [data-reveal] { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .9s var(--ios), transform 1s var(--ios); transition-delay: calc(var(--d, 0) * 60ms); }
.js [data-reveal="scale"] { transform: scale(.96); }
.js [data-reveal="blur"] { transform: translate3d(0, 18px, 0); }
.js [data-reveal="left"] { transform: translate3d(-32px, 0, 0); }
.js [data-reveal="right"] { transform: translate3d(32px, 0, 0); }
.js [data-reveal].in { opacity: 1; transform: none; }
.gsap-on [data-reveal] { transition: none; }

/* Headlines are split into words on the server (inc/motion.php). The padded .w box keeps
   descenders and accents visible while each word rises into place. */
.w { display: inline-block; overflow: clip; padding: .1em .05em .2em; margin: -.1em -.05em -.2em; vertical-align: top; }
.w > span { display: inline-block; }
[data-split="now"] .w > span, [data-split].in .w > span { animation: w-up 1.1s var(--ios) both; animation-delay: calc(var(--i, 0) * 55ms + var(--d0, 0s) + .05s); }
.js [data-split]:not(.in):not([data-split="now"]) .w > span { transform: translate3d(0, 115%, 0); }
@keyframes w-up { from { transform: translate3d(0, 115%, 0) rotate(3deg); } to { transform: none; } }

/* ---------- Hero ---------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center; padding: calc(var(--nav-h) + 90px) 0 90px; overflow: hidden; isolation: isolate; }
.hero .wrap { position: relative; z-index: 2; }
.hero__grid { display: grid; gap: 64px; align-items: center; }
@media (min-width: 1080px) { .hero__grid { grid-template-columns: 1.05fr .95fr; gap: 40px; } }
.hero__copy > * + * { margin-top: 26px; }
.hero h1 { font-size: clamp(50px, 7.6vw, 118px); }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__trust { display: flex; flex-wrap: wrap; gap: 10px 22px; color: var(--muted); font-size: 14px; font-weight: 550; }
.hero__trust span { display: inline-flex; align-items: center; gap: 8px; }
.hero__trust .ic { width: 17px; height: 17px; color: var(--mint); }
.rotator { display: inline-grid; vertical-align: bottom; overflow: clip; height: 1.16em; margin-bottom: -.14em; padding-right: .06em; }
.rotator span { grid-area: 1 / 1; white-space: nowrap; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.js .rotator span:not(:first-child) { transform: translateY(110%); }
.hero__intro > :not(h1) { animation: rise 1s var(--ios) both; }
.hero__intro h1 .rotator { animation: rise 1s .18s var(--ios) both; }
.hero__intro > *:nth-child(2) { animation-delay: .08s; } .hero__intro > *:nth-child(3) { animation-delay: .16s; } .hero__intro > *:nth-child(4) { animation-delay: .24s; } .hero__intro > *:nth-child(5) { animation-delay: .32s; }
@keyframes rise { from { opacity: 0; transform: translate3d(0, 26px, 0); } to { opacity: 1; transform: none; } }
.scroll-cue { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 2; display: grid; justify-items: center; gap: 8px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.scroll-cue i { width: 22px; height: 36px; border-radius: 12px; border: 1.5px solid var(--line-2); position: relative; }
.scroll-cue i::after { content: ""; position: absolute; left: 50%; top: 7px; width: 3px; height: 7px; margin-left: -1.5px; border-radius: 2px; background: var(--mint); animation: wheel 1.8s var(--ease) infinite; }
@keyframes wheel { 0% { transform: translateY(0); opacity: 1; } 80% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }

/* ---------- App mockup (hero + showcase) ---------- */
.stage { position: relative; perspective: 1600px; }
.mock { position: relative; border-radius: 26px; background: linear-gradient(180deg, rgba(30, 26, 40, .92), rgba(16, 14, 22, .95)); border: 1px solid var(--line-2); box-shadow: 0 50px 120px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .04) inset, 0 0 80px -20px rgba(239, 169, 192, .25); transform-style: preserve-3d; overflow: hidden; }
.mock__bar { display: flex; align-items: center; gap: 7px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.mock__bar i { width: 11px; height: 11px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.mock__bar i:nth-child(1) { background: #FF6B6B; } .mock__bar i:nth-child(2) { background: #F6C98E; } .mock__bar i:nth-child(3) { background: #F2D3A8; }
.mock__bar span { margin-left: 12px; font-size: 12px; color: var(--muted); font-weight: 600; }
.mock__body { display: grid; grid-template-columns: 150px 1fr; min-height: 420px; }
.mock__side { padding: 16px 12px; border-right: 1px solid var(--line); display: grid; align-content: start; gap: 4px; }
.mock__side b { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; color: var(--muted); padding: 8px 10px; border-radius: 10px; }
.mock__side b.on { background: var(--glass-2); color: var(--text); }
.mock__side b .ic { width: 15px; height: 15px; }
.mock__main { padding: 18px; display: grid; gap: 12px; align-content: start; }
.mock__task { padding: 16px; border-radius: 16px; background: linear-gradient(135deg, rgba(242, 211, 168, .16), rgba(239, 169, 192, .08)); border: 1px solid rgba(242, 211, 168, .22); }
.mock__task small { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--mint); font-weight: 700; }
.mock__task b { display: block; font-family: var(--display); font-size: 20px; letter-spacing: -.02em; margin: 6px 0 10px; }
.mock__task .mbtn { display: inline-flex; font-size: 11.5px; font-weight: 700; padding: 6px 11px; border-radius: 999px; background: var(--mint); color: #1B1422; }
.mock__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.mock__stat { padding: 12px; border-radius: 14px; background: var(--glass); border: 1px solid var(--line); }
.mock__stat span { display: block; font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.mock__stat b { font-family: var(--display); font-size: 20px; letter-spacing: -.02em; }
.mock__chart { height: 110px; display: flex; align-items: end; gap: 7px; padding: 12px; border-radius: 14px; background: var(--glass); border: 1px solid var(--line); }
.mock__chart i { flex: 1; border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, var(--sky), rgba(239, 169, 192, .25)); height: var(--h, 40%); transform-origin: bottom; }
.mock__chart i:nth-child(3n) { background: linear-gradient(180deg, var(--mint), rgba(242, 211, 168, .25)); }
.mock__list { display: grid; gap: 6px; }
.mock__li { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 12px; background: var(--glass); font-size: 12.5px; color: var(--text-2); }
.mock__li .tick { width: 18px; height: 18px; border-radius: 6px; border: 1.5px solid var(--line-2); display: grid; place-items: center; flex: none; transition: all .4s var(--spring); }
.mock__li .tick .ic { width: 12px; height: 12px; opacity: 0; color: #1B1422; }
.mock__li.done .tick { background: var(--mint); border-color: var(--mint); }
.mock__li.done .tick .ic { opacity: 1; }
.mock__li.done span { text-decoration: line-through; color: var(--muted); }
.float-card { position: absolute; z-index: 3; padding: 12px 16px; border-radius: 18px; background: rgba(22, 19, 30, .85); border: 1px solid var(--line-2); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .8); display: flex; align-items: center; gap: 12px; font-size: 13.5px; font-weight: 600; }
.float-card .fi { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--grad); color: #1B1422; }
.float-card small { display: block; font-size: 11.5px; color: var(--muted); font-weight: 500; }
.fc-1 { left: -26px; bottom: 60px; }
.fc-2 { right: -18px; top: 70px; }
.fc-3 { right: 40px; bottom: -24px; }
@media (max-width: 700px) { .mock__body { grid-template-columns: 1fr; min-height: 0; } .mock__side { display: none; } .fc-1 { left: -6px; bottom: 30px; } .fc-2 { right: -6px; } .fc-3 { display: none; } }

/* ---------- Marquee ---------- */
.marquee { position: relative; overflow: hidden; padding: 26px 0; border-block: 1px solid var(--line); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marquee + .marquee { border-top: 0; padding-top: 0; }
.marquee__track { display: flex; width: max-content; gap: 14px; animation: marquee 60s linear infinite; }
.marquee--rev .marquee__track { animation-direction: reverse; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__item { display: inline-flex; align-items: center; gap: 12px; padding: 12px 22px 12px 12px; border-radius: 999px; background: var(--glass); border: 1px solid var(--line); font-family: var(--display); font-weight: 600; font-size: 18px; letter-spacing: -.02em; white-space: nowrap; transition: background .3s, border-color .3s; }
.marquee__item:hover { background: var(--glass-2); border-color: var(--line-2); }
.marquee__item .mi { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--glass-2); color: var(--mint); }
.marquee__item .mi .ic { width: 18px; height: 18px; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Segmented filter ---------- */
.seg { position: relative; display: inline-flex; flex-wrap: nowrap; gap: 2px; padding: 5px; border-radius: 999px; background: var(--glass); border: 1px solid var(--line); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.seg::-webkit-scrollbar { display: none; }
.seg button { position: relative; z-index: 1; padding: 10px 18px; border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--muted); white-space: nowrap; transition: color .35s; }
.seg button[aria-pressed="true"] { color: #1B1422; }
.light .seg button[aria-pressed="true"] { color: #fff; }
.seg__pill { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 0; border-radius: 999px; background: #fff; transition: transform .6s var(--spring), width .6s var(--spring); }
.light .seg__pill { background: var(--ink); }

/* ---------- Business cards ---------- */
.biz-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.biz { --mx: 50%; --my: 50%; position: relative; display: grid; gap: 18px; align-content: start; min-height: 290px; padding: 24px; border-radius: var(--r-lg); background: var(--glass); border: 1px solid var(--line); overflow: hidden; isolation: isolate; transition: border-color .4s, transform .6s var(--ease), background .4s; transform-style: preserve-3d; }
.biz::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(420px circle at var(--mx) var(--my), rgba(242, 211, 168, .16), transparent 45%); opacity: 0; transition: opacity .4s; }
.biz::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px; background: radial-gradient(260px circle at var(--mx) var(--my), rgba(242, 211, 168, .9), rgba(184, 166, 255, .4) 40%, transparent 70%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .4s; }
.biz:hover::before, .biz:hover::after { opacity: 1; }
.biz:hover { background: var(--glass-2); }
.light .biz { background: #fff; }
.biz__top { display: flex; align-items: center; justify-content: space-between; }
.biz__icon { width: 54px; height: 54px; border-radius: 17px; display: grid; place-items: center; background: linear-gradient(135deg, rgba(242, 211, 168, .22), rgba(184, 166, 255, .18)); border: 1px solid var(--line-2); color: var(--mint); transition: transform .6s var(--spring); }
.light .biz__icon { color: #6A4ED4; background: linear-gradient(135deg, #FBE7DE, #ECE5FF); }
.biz__icon .ic { width: 26px; height: 26px; }
.biz:hover .biz__icon { transform: rotate(-8deg) scale(1.08); }
.biz__name { font-family: var(--display); font-size: 25px; font-weight: 700; letter-spacing: -.035em; line-height: 1.05; }
.biz__tag { color: var(--text-2); font-size: 14.5px; line-height: 1.5; }
.biz__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: auto; font-size: 12.5px; color: var(--muted); font-weight: 600; }
.biz__meta span { display: inline-flex; align-items: center; gap: 6px; }
.biz__meta .ic { width: 14px; height: 14px; }
.biz__arrow { position: absolute; right: 20px; bottom: 20px; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: #1B1422; transform: scale(.6) rotate(-45deg); opacity: 0; transition: all .6s var(--spring); }
.light .biz__arrow { background: var(--ink); color: #fff; }
.biz:hover .biz__arrow { transform: none; opacity: 1; }
.biz.is-hidden { display: none; }
.biz--hot { border-color: rgba(236, 143, 192, .3); background: linear-gradient(165deg, rgba(236, 143, 192, .09), rgba(169, 147, 255, .05) 55%, rgba(255, 255, 255, .03)); }
.light .biz--hot { background: linear-gradient(165deg, #FDF0F5, #F3EFFF 60%, #fff); }

/* ---------- Pinned product story ---------- */
.story-pin { position: relative; }
.story-pin__grid { display: grid; gap: 48px; }
@media (min-width: 1000px) { .story-pin__grid { grid-template-columns: .9fr 1.1fr; gap: 72px; align-items: start; } .story-pin__stage { position: sticky; top: calc(var(--nav-h) + 60px); } }
.sp-steps { display: grid; gap: 14px; }
.sp-step { padding: 26px; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--glass); transition: background .5s, border-color .5s, opacity .5s; }
@media (min-width: 1000px) { .sp-step { min-height: 62vh; display: flex; flex-direction: column; justify-content: center; background: none; border-color: transparent; opacity: .28; } .sp-step.is-on { opacity: 1; } }
.sp-step .num { font-family: var(--display); font-size: 15px; font-weight: 700; color: var(--mint); letter-spacing: .06em; }
.sp-step h3 { font-size: clamp(28px, 3.4vw, 46px); letter-spacing: -.045em; margin: 10px 0 14px; }
.sp-step p { color: var(--text-2); font-size: 17px; max-width: 46ch; }
.sp-step ul { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.sp-step li { display: flex; gap: 10px; color: var(--text-2); font-size: 15px; }
.sp-step li .ic { width: 18px; height: 18px; color: var(--mint); margin-top: 3px; }
.screens { position: relative; aspect-ratio: 4 / 3.3; }
.screen { position: absolute; inset: 0; opacity: 0; transform: translateY(24px) scale(.97); transition: opacity .7s var(--ease), transform .8s var(--ease); }
.screen.is-on { opacity: 1; transform: none; }
.no-js .screen:first-child, .reduce .screen:first-child { opacity: 1; transform: none; }
.screen .mock { height: 100%; }
.sp-rail { position: absolute; left: -22px; top: 10%; bottom: 10%; width: 2px; border-radius: 2px; background: var(--line); display: none; }
.sp-rail i { position: absolute; left: 0; top: 0; width: 100%; height: 0; background: var(--grad); border-radius: inherit; }
@media (min-width: 1000px) { .sp-rail { display: block; } }
.scr-lessons { display: grid; gap: 10px; }
.scr-lesson { display: grid; grid-template-columns: 96px 1fr auto; gap: 12px; align-items: center; padding: 8px; border-radius: 14px; background: var(--glass); border: 1px solid var(--line); font-size: 13px; font-weight: 600; }
.scr-lesson .th { aspect-ratio: 16 / 9; border-radius: 9px; background-size: cover; background-position: center; position: relative; }
.scr-lesson .th::after { content: ""; position: absolute; inset: 0; margin: auto; width: 26px; height: 26px; border-radius: 50%; background: rgba(255, 255, 255, .92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l8 5-8 5z' fill='%2307080B'/%3E%3C/svg%3E") center / 16px no-repeat; }
.scr-lesson em { font-style: normal; font-size: 11px; color: var(--mint); font-weight: 700; }
.scr-lib { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.scr-lib div { padding: 12px; border-radius: 14px; background: var(--glass); border: 1px solid var(--line); font-size: 12.5px; color: var(--text-2); line-height: 1.45; }
.scr-lib div b { display: block; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--mint); margin-bottom: 6px; }
.scr-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.scr-cal div { aspect-ratio: 1; border-radius: 10px; background: var(--glass); border: 1px solid var(--line); display: grid; place-items: center; font-size: 11px; font-weight: 700; color: var(--muted); }
.scr-cal div.on { background: linear-gradient(135deg, rgba(242, 211, 168, .3), rgba(239, 169, 192, .15)); color: var(--text); border-color: rgba(242, 211, 168, .35); }
.scr-fund { display: grid; gap: 10px; }
.scr-fund div { display: flex; justify-content: space-between; align-items: center; padding: 14px; border-radius: 14px; background: var(--glass); border: 1px solid var(--line); font-size: 13.5px; font-weight: 600; }
.scr-fund div span { font-size: 11px; color: var(--mint); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* ---------- Horizontal scroll ---------- */
.hs { position: relative; overflow: hidden; }
.hs__track { display: flex; gap: 18px; width: max-content; padding: 0 max(16px, (100vw - 1260px) / 2); }
.hs-card { position: relative; flex: none; width: min(420px, 82vw); min-height: 460px; padding: 30px; border-radius: var(--r-xl); background: var(--glass); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 14px; overflow: hidden; }
.hs-card .ic-big { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: var(--grad); color: #1B1422; }
.hs-card .ic-big .ic { width: 30px; height: 30px; }
.hs-card h3 { font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -.04em; margin-top: 8px; }
.hs-card p { color: var(--text-2); }
.hs-card .big { margin-top: auto; font-family: var(--display); font-size: clamp(54px, 6vw, 84px); font-weight: 750; letter-spacing: -.06em; line-height: .9; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hs-card--hot { background: linear-gradient(160deg, rgba(242, 211, 168, .14), rgba(184, 166, 255, .1)); border-color: rgba(242, 211, 168, .3); }
@media (max-width: 999px) { .hs { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .hs::-webkit-scrollbar { display: none; } .hs-card { scroll-snap-align: center; min-height: 400px; } }

/* ---------- Roadmap line ---------- */
.path { position: relative; display: grid; gap: 18px; }
.path__svg { position: absolute; left: 27px; top: 0; bottom: 0; width: 4px; }
.path__line { position: absolute; left: 27px; top: 26px; bottom: 26px; width: 2px; background: var(--line); border-radius: 2px; }
.path__line i { position: absolute; inset: 0 0 auto 0; height: 0; background: var(--grad); border-radius: inherit; box-shadow: 0 0 20px rgba(242, 211, 168, .6); }
.path__node { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 20px; align-items: start; }
.path__dot { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; font-family: var(--display); font-size: 20px; font-weight: 750; background: var(--bg); border: 1.5px solid var(--line-2); color: var(--muted); transition: all .6s var(--spring); }
.path__node.is-on .path__dot { background: var(--grad); color: #1B1422; border-color: transparent; box-shadow: 0 0 0 8px rgba(242, 211, 168, .12); transform: scale(1.06); }
.path__body { padding: 20px 24px; border-radius: var(--r-md); background: var(--glass); border: 1px solid var(--line); }
.path__body small { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mint); }
.light .path__body small { color: #6A4ED4; }
.path__body h3 { margin: 6px 0 8px; }
.path__body p { margin: 0; color: var(--text-2); font-size: 15.5px; }
.light .path__dot { background: #fff; }

/* ---------- Stacking cards ---------- */
.stack-cards { display: grid; gap: 20px; }
.stk { position: sticky; top: calc(var(--nav-h) + 50px); min-height: 380px; padding: clamp(28px, 4vw, 56px); border-radius: var(--r-xl); border: 1px solid var(--line-2); overflow: hidden; display: grid; gap: 30px; align-content: space-between; transform-origin: 50% 0; box-shadow: 0 -30px 60px -30px rgba(0, 0, 0, .7); }
.stk:nth-child(1) { background: linear-gradient(145deg, #2A1D2E, #17121C); }
.stk:nth-child(2) { background: linear-gradient(145deg, #0F2033, #0B141F); top: calc(var(--nav-h) + 70px); }
.stk:nth-child(3) { background: linear-gradient(145deg, #1E1A36, #110F1F); top: calc(var(--nav-h) + 90px); }
.stk .n { font-family: var(--display); font-size: clamp(90px, 14vw, 190px); font-weight: 800; letter-spacing: -.07em; line-height: .8; opacity: .15; position: absolute; right: 24px; bottom: -10px; }
.stk h3 { font-size: clamp(34px, 4.6vw, 64px); letter-spacing: -.05em; max-width: 14ch; }
.stk p { color: var(--text-2); max-width: 52ch; font-size: 18px; margin: 0; }

/* ---------- Bento ---------- */
.bento { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
@media (min-width: 980px) { .bento { grid-template-columns: repeat(4, 1fr); } .tile--wide { grid-column: span 2; } }
.tile { position: relative; padding: 28px; border-radius: var(--r-lg); background: var(--glass); border: 1px solid var(--line); display: grid; gap: 12px; align-content: start; overflow: hidden; }
.light .tile { background: #fff; }
.tile > .ic { width: 28px; height: 28px; color: var(--mint); }
.light .tile > .ic { color: #6A4ED4; }
.tile p { color: var(--text-2); margin: 0; font-size: 15.5px; }
.tile .num { font-family: var(--display); font-size: 64px; font-weight: 800; letter-spacing: -.06em; line-height: .9; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tile--dark { background: linear-gradient(160deg, #10141D, #0A0C11); color: #F6F3F8; border-color: rgba(255, 255, 255, .1); }
.tile--dark p { color: #CBC4D6; }
.tile--brass { background: linear-gradient(160deg, rgba(242, 211, 168, .18), rgba(239, 169, 192, .08)); }

/* ---------- Growth grid ---------- */
.growth { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.g-item { display: grid; gap: 6px; padding: 22px; border-radius: var(--r-md); background: var(--glass); border: 1px solid var(--line); transition: transform .6s var(--spring), border-color .4s, background .4s; }
.g-item:hover { transform: translateY(-6px); border-color: rgba(242, 211, 168, .35); background: var(--glass-2); }
.g-item .ic { width: 26px; height: 26px; color: var(--mint); margin-bottom: 8px; }
.g-item b { font-family: var(--display); font-size: 19px; letter-spacing: -.02em; }
.g-item span { color: var(--muted); font-size: 14px; }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; border-radius: var(--r-xl); overflow: hidden; background: var(--line); border: 1px solid var(--line); }
@media (min-width: 860px) { .stats { grid-template-columns: repeat(4, 1fr); } }
.stat { padding: clamp(26px, 4vw, 48px) clamp(20px, 3vw, 36px); background: var(--bg); display: grid; gap: 10px; }
.stat b { font-family: var(--display); font-size: clamp(46px, 6vw, 88px); font-weight: 800; letter-spacing: -.06em; line-height: .9; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat span { color: var(--muted); font-weight: 600; font-size: 15px; }

/* ---------- Stories ---------- */
.stories { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.story { position: relative; display: grid; gap: 16px; align-content: start; padding: 28px; border-radius: var(--r-lg); background: var(--glass); border: 1px solid var(--line); overflow: hidden; }
.light .story { background: #fff; }
.story .ic-q { position: absolute; right: 22px; top: 22px; width: 42px; height: 42px; color: var(--mint); opacity: .35; }
.story__co { font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.story__name { font-size: 27px; letter-spacing: -.035em; }
.story__head { font-family: var(--display); font-size: 19px; font-weight: 600; letter-spacing: -.02em; line-height: 1.3; }
.story__body { color: var(--text-2); font-size: 15px; }
.story__lessons { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.story__lessons li { display: flex; gap: 10px; font-size: 14.5px; }
.story__lessons .ic { width: 17px; height: 17px; color: var(--mint); margin-top: 3px; }
.light .story__lessons .ic, .light .story .ic-q { color: #6A4ED4; }
.story__src { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.story__src a { font-size: 12.5px; font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--text-2); transition: background .3s, color .3s; }
.story__src a:hover { background: var(--text); color: var(--bg); }

/* ---------- Plans ---------- */
.plans { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); align-items: start; }
.plan { position: relative; display: grid; gap: 20px; padding: 30px; border-radius: var(--r-xl); background: var(--glass); border: 1px solid var(--line); isolation: isolate; }
.light .plan { background: #fff; }
.plan--hot { background: linear-gradient(170deg, #1C1624, #0F0D15); color: #F6F3F8; border-color: transparent; --text: #F6F3F8; --text-2: #CBC4D6; --muted: #948DA3; --line: rgba(255, 255, 255, .1); }
.plan--hot::before { content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit; padding: 1.5px; background: conic-gradient(from var(--angle), var(--mint), var(--sky), var(--iris), var(--rose), var(--mint)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: spin 6s linear infinite; }
.plan--hot::after { opacity: .06; }
@keyframes spin { to { --angle: 360deg; } }
.plan__badge { justify-self: start; margin-bottom: -6px; }
.plan__name { font-size: 26px; letter-spacing: -.035em; }
.plan__scope { font-size: 14px; color: var(--muted); font-weight: 600; }
.plan__price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.plan__price b { font-family: var(--display); font-size: 64px; font-weight: 800; letter-spacing: -.06em; line-height: .9; }
.plan__price s { color: var(--muted); font-size: 20px; }
.plan__price small { color: var(--muted); font-weight: 600; }
.plan__pitch { color: var(--text-2); margin: 0; font-size: 15.5px; }
.plan__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.plan__list li { display: flex; gap: 10px; font-size: 14.5px; line-height: 1.45; }
.plan__list li .ic { width: 18px; height: 18px; color: var(--mint); margin-top: 2px; }
.light .plan:not(.plan--hot) .plan__list li .ic { color: #6A4ED4; }
.plan__list li.sub { padding-left: 28px; color: var(--muted); font-size: 13.5px; }
.plan__more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .7s var(--ease); }
.plan__more > ul { overflow: hidden; }
.plan.is-open .plan__more { grid-template-rows: 1fr; }
.plan.is-open .plan__more > ul { padding-top: 10px; }
.plan__toggle { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; color: var(--text); }
.plan__toggle .ic { width: 16px; height: 16px; transition: transform .5s var(--spring); }
.plan.is-open .plan__toggle .ic { transform: rotate(180deg); }
.guarantee { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 26px; color: var(--muted); font-size: 14px; font-weight: 600; text-align: center; }
.guarantee .ic { color: var(--mint); }
.light .guarantee .ic { color: #6A4ED4; }

/* ---------- Comparison table ---------- */
.compare { overflow-x: auto; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--glass); }
.light .compare { background: #fff; }
.compare table { width: 100%; border-collapse: collapse; min-width: 720px; font-size: 14.5px; }
.compare th, .compare td { padding: 16px 18px; text-align: center; border-bottom: 1px solid var(--line); }
.compare th:first-child, .compare td:first-child { text-align: left; }
.compare thead th { font-family: var(--display); font-size: 17px; letter-spacing: -.02em; position: sticky; top: 0; background: inherit; }
.compare .yes { color: #6A4ED4; } .compare .no { color: var(--muted); opacity: .5; }
.compare .yes .ic, .compare .no .ic { margin: auto; }
.compare tbody tr { transition: background .3s; }
.compare tbody tr:hover { background: var(--glass); }

/* ---------- FAQ ---------- */
.faq { display: grid; gap: 10px; }
.faq details { border-radius: var(--r-md); background: var(--glass); border: 1px solid var(--line); overflow: hidden; transition: background .3s, border-color .3s; }
.light .faq details { background: #fff; }
.faq details[open] { border-color: var(--line-2); }
.faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 24px; font-family: var(--display); font-size: 19px; font-weight: 600; letter-spacing: -.02em; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ic { width: 22px; height: 22px; flex: none; transition: transform .6s var(--spring); }
.faq details[open] summary .ic { transform: rotate(45deg); }
.faq .ans { padding: 0 24px 22px; color: var(--text-2); }
.faq .ans p:last-child { margin: 0; }

/* ---------- CTA band ---------- */
.cta-band { position: relative; overflow: hidden; isolation: isolate; padding: clamp(50px, 9vw, 130px) clamp(24px, 6vw, 80px); border-radius: var(--r-xl); background: #0E0C14; border: 1px solid var(--line-2); text-align: center; display: grid; justify-items: center; gap: 26px; }
.cta-band h2 { font-size: clamp(40px, 6.4vw, 104px); max-width: 16ch; }
.cta-band .aurora__b { opacity: .45; }

/* ---------- Footer ---------- */
.foot { position: relative; overflow: hidden; padding: clamp(70px, 10vw, 120px) 0 30px; border-top: 1px solid var(--line); background: var(--bg); }
.foot__grid { display: grid; gap: 40px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .foot__grid { grid-template-columns: 1.3fr 1fr 1fr .8fr; } }
.foot h4 { font-family: var(--sans); font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.foot ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.foot ul a { color: var(--text-2); font-size: 15px; transition: color .3s; }
.foot ul a:hover { color: var(--text); }
.foot p { color: var(--text-2); }
.socials { display: flex; gap: 8px; margin-top: 20px; }
.socials a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--glass-2); border: 1px solid var(--line); transition: transform .5s var(--spring), background .3s; }
.socials a:hover { transform: translateY(-3px); background: var(--glass-3); }
.foot__word { font-family: var(--display); font-weight: 800; letter-spacing: -.07em; line-height: .8; font-size: clamp(40px, 11vw, 200px); text-align: center; overflow: hidden; padding-bottom: .06em; margin: clamp(60px, 9vw, 110px) 0 24px; background: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .05)); -webkit-background-clip: text; background-clip: text; color: transparent; white-space: nowrap; user-select: none; }
.foot__word span { display: inline-block; background: inherit; -webkit-background-clip: text; background-clip: text; color: transparent; } /* transformed letters need their own text clip */
.foot__bottom { display: grid; gap: 12px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
@media (min-width: 900px) { .foot__bottom { grid-template-columns: auto 1fr; gap: 40px; } }
.foot__note { line-height: 1.55; }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { position: relative; overflow: hidden; isolation: isolate; padding: calc(var(--nav-h) + 110px) 0 clamp(50px, 7vw, 90px); }
.page-hero .wrap { position: relative; z-index: 2; }
.page-hero h1 { font-size: clamp(46px, 7.4vw, 112px); }
.prose { font-size: 17.5px; }
.prose h2 { font-size: clamp(28px, 3vw, 38px); margin: 1.6em 0 .5em; }
.prose h3 { margin: 1.4em 0 .4em; }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.2em; }

/* ---------- Business page ---------- */
.bhero { position: relative; overflow: hidden; isolation: isolate; padding: calc(var(--nav-h) + 90px) 0 clamp(50px, 7vw, 90px); }
.bhero .wrap { position: relative; z-index: 2; }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13.5px; color: var(--muted); font-weight: 600; margin-bottom: 28px; }
.crumbs .ic { width: 14px; height: 14px; }
.crumbs a:hover { color: var(--text); }
.bhero__grid { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1060px) { .bhero__grid { grid-template-columns: 1fr 420px; gap: 60px; } .buybox { position: sticky; top: calc(var(--nav-h) + 40px); } }
.bhero h1 { font-size: clamp(44px, 6.2vw, 96px); }
.bhero h1 + .lede { margin-top: 24px; }
.bhero__icon { width: 72px; height: 72px; border-radius: 22px; display: grid; place-items: center; background: var(--grad); color: #1B1422; margin-bottom: 26px; box-shadow: 0 20px 50px -18px rgba(242, 211, 168, .7); }
.bhero__icon .ic { width: 36px; height: 36px; }
.nums { display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); margin-top: 34px; }
@media (min-width: 700px) { .nums { grid-template-columns: repeat(4, 1fr); } }
.num-card { padding: 16px; border-radius: 18px; background: var(--glass); border: 1px solid var(--line); display: grid; gap: 4px; }
.num-card span { font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.num-card b { font-family: var(--display); font-size: 21px; letter-spacing: -.03em; line-height: 1.1; }
.num-card small { font-size: 12px; color: var(--muted); }
.buybox { padding: 24px; border-radius: var(--r-xl); background: rgba(22, 19, 30, .75); border: 1px solid var(--line-2); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); display: grid; gap: 14px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9); }
.mini-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-weight: 700; font-size: 15px; }
.buybox__row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; border-radius: 18px; border: 1.5px solid var(--line); cursor: pointer; transition: border-color .3s, background .3s; }
.buybox__row span { display: grid; gap: 2px; font-weight: 700; }
.buybox__row small { font-weight: 500; color: var(--muted); font-size: 12.5px; }
.buybox__row b { font-family: var(--display); font-size: 26px; letter-spacing: -.04em; }
.buybox__row.is-on { border-color: var(--mint); background: rgba(242, 211, 168, .08); }
.subnav { position: sticky; top: calc(var(--nav-h) + 22px); z-index: 50; margin: 0 auto; width: max-content; max-width: calc(100% - 24px); pointer-events: none; transition: top .6s var(--ease); }
body:has(.nav.is-hidden) .subnav { top: 14px; }
.subnav__in { position: relative; pointer-events: auto; display: flex; gap: 2px; padding: 5px; border-radius: 999px; background: rgba(16, 14, 22, .78); border: 1px solid var(--line-2); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); overflow-x: auto; scrollbar-width: none; }
.subnav__in::-webkit-scrollbar { display: none; }
.subnav a { position: relative; z-index: 1; padding: 9px 15px; border-radius: 999px; font-size: 13.5px; font-weight: 600; color: var(--muted); white-space: nowrap; transition: color .3s; }
.subnav a.on { color: #1B1422; }
.subnav__pill { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 0; width: 0; border-radius: 999px; background: var(--grad); transition: transform .55s var(--spring), width .55s var(--spring); }
.overview { display: grid; grid-auto-flow: dense; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.ov { padding: 28px; border-radius: var(--r-lg); background: var(--glass); border: 1px solid var(--line); }
.light .ov { background: #fff; }
.ov--wide { grid-column: 1 / -1; }
.ov h3 { margin-bottom: 14px; }
.ov p { color: var(--text-2); }
.ov ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
@media (min-width: 900px) { .ov--wide ul { grid-template-columns: 1fr 1fr; column-gap: 28px; } }
.ov li { display: flex; gap: 10px; font-size: 15.5px; }
.ov li .ic { width: 18px; height: 18px; color: #6A4ED4; margin-top: 3px; }
.stand { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.stand__i { position: relative; padding: 26px; border-radius: var(--r-md); background: var(--glass); border: 1px solid var(--line); display: grid; gap: 8px; counter-increment: st; transition: transform .6s var(--spring), border-color .4s; }
.stand__i::before { content: counter(st, decimal-leading-zero); font-family: var(--display); font-weight: 750; font-size: 14px; color: var(--mint); }
.stand { counter-reset: st; }
.stand__i:hover { transform: translateY(-5px); border-color: rgba(242, 211, 168, .35); }
.stand__i b { font-family: var(--display); font-size: 20px; letter-spacing: -.02em; }
.stand__i span { color: var(--text-2); font-size: 15px; }
.course { display: grid; gap: 10px; }
.mod { border-radius: var(--r-md); background: var(--glass-2); border: 1px solid var(--line); overflow: hidden; }
.mod summary { list-style: none; display: flex; align-items: center; gap: 16px; padding: 18px 20px; cursor: pointer; }
.mod summary::-webkit-details-marker { display: none; }
.mod__n { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--ink); color: #fff; font-family: var(--display); font-weight: 750; flex: none; }
.mod__t { flex: 1; display: grid; font-family: var(--display); font-weight: 650; font-size: 19px; letter-spacing: -.02em; }
.mod__t small { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.mod summary .ic { transition: transform .5s var(--spring); }
.mod[open] summary .ic { transform: rotate(180deg); }
.lessons { display: grid; gap: 8px; padding: 0 16px 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.lesson { display: grid; grid-template-columns: 112px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; text-align: left; padding: 8px; border-radius: 14px; border: 1px solid var(--line); background: var(--bg); transition: transform .5s var(--spring), border-color .3s; }
.lesson:hover { transform: translateY(-3px); border-color: var(--line-2); }
.lesson__th { grid-row: span 2; position: relative; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: var(--bg-3); display: grid; place-items: center; color: var(--muted); }
.lesson__th img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lesson__th > .ic { position: relative; z-index: 1; width: 30px; height: 30px; padding: 7px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #0E0B14; }
.lesson__t { font-size: 14px; font-weight: 600; line-height: 1.35; }
.lesson__tag { align-self: start; justify-self: start; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6A4ED4; display: inline-flex; gap: 4px; align-items: center; }
.lesson--locked { opacity: .7; }
.lesson--locked .lesson__tag { color: var(--muted); }
.lesson--locked .lesson__tag .ic { width: 12px; height: 12px; }
.locknote { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 18px; padding: 16px 20px; border-radius: 18px; background: var(--glass); border: 1px dashed var(--line-2); color: var(--text-2); font-size: 14.5px; }
.locknote .ic { color: var(--mint); }
.light .locknote .ic { color: #6A4ED4; }
.locknote span { flex: 1; min-width: 200px; }
.road { display: grid; gap: 14px; }
.road__ph { padding: 26px; border-radius: var(--r-lg); background: var(--glass); border: 1px solid var(--line); }
.light .road__ph { background: #fff; }
.road__ph header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: baseline; }
.road__ph .when { font-size: 13px; font-weight: 700; color: var(--mint); letter-spacing: .04em; }
.light .road__ph .when { color: #6A4ED4; }
.road__ph .goal { color: var(--text-2); margin: 10px 0 16px; }
.road__steps { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.road__step { padding: 18px; border-radius: 16px; background: var(--glass); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; }
.road__step p { margin: 0; color: var(--text-2); }
.road__step ul { margin: 0; padding-left: 18px; color: var(--text-2); font-size: 14px; }
.road__ph.locked .road__step { flex-direction: row; justify-content: space-between; align-items: center; color: var(--muted); }
.road__ph.locked .road__step .ic { width: 16px; height: 16px; }
.pillars { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.pillar { padding: 22px; border-radius: var(--r-md); background: var(--glass-2); border: 1px solid var(--line); display: grid; gap: 6px; }
.pillar b { font-family: var(--display); font-size: 20px; letter-spacing: -.02em; }
.pillar span { color: var(--text-2); font-size: 14.5px; }
.week { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); margin-top: 14px; }
.day { padding: 18px; border-radius: var(--r-md); background: var(--bg-3); border: 1px solid var(--line); color: var(--text); display: grid; gap: 4px; transition: transform .6s var(--spring), border-color .4s; }
.day:hover { transform: translateY(-5px); border-color: rgba(242, 211, 168, .35); }
.light .day { background: var(--ink); color: #F6F3F8; border-color: transparent; }
.day b { font-family: var(--display); font-size: 22px; }
.day span { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mint); }
.day p { margin: 0; font-size: 14px; color: var(--text-2); }
.light .day p { color: #CBC4D6; }

/* ---------- Thank-you / 404 ---------- */
.ty { position: relative; min-height: 100svh; display: grid; place-items: center; padding: calc(var(--nav-h) + 60px) 16px 60px; overflow: hidden; isolation: isolate; text-align: center; }
.ty__card { position: relative; z-index: 2; display: grid; justify-items: center; gap: 22px; max-width: 920px; }
.ty__seal { width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center; background: var(--grad); color: #1B1422; box-shadow: 0 0 0 14px rgba(242, 211, 168, .12); animation: pop 1s var(--spring) both; }
.ty__seal .ic { width: 40px; height: 40px; }
@keyframes pop { from { transform: scale(.3); opacity: 0; } }
.confetti { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }

/* ---------- Video modal + toast ---------- */
.vmodal { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; padding: 16px; visibility: hidden; }
.vmodal.is-open { visibility: visible; }
.vmodal__bg { position: absolute; inset: 0; background: rgba(6, 5, 9, .82); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); opacity: 0; transition: opacity .5s var(--ease); }
.vmodal.is-open .vmodal__bg { opacity: 1; }
.vmodal__box { position: relative; width: min(1040px, 100%); transform: translateY(40px) scale(.94); opacity: 0; transition: transform .7s var(--spring), opacity .5s var(--ease); }
.vmodal.is-open .vmodal__box { transform: none; opacity: 1; }
.vmodal__frame { aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: #000; box-shadow: 0 40px 100px -20px rgba(0, 0, 0, .9); }
.vmodal__frame iframe { width: 100%; height: 100%; border: 0; }
.vmodal__title { margin-top: 14px; color: #CBC4D6; font-weight: 600; text-align: center; }
.vmodal__close { position: absolute; right: -6px; top: -54px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: #0E0B14; }
.toast { position: fixed; left: 50%; bottom: 26px; z-index: 150; transform: translate(-50%, calc(100% + 60px)); visibility: hidden; padding: 13px 20px; border-radius: 999px; background: #fff; color: #0E0B14; font-weight: 650; font-size: 14.5px; box-shadow: 0 20px 50px -14px rgba(0, 0, 0, .6); transition: transform .6s var(--spring), visibility 0s .6s; pointer-events: none; }
.toast.is-on { transform: translate(-50%, 0); visibility: visible; transition: transform .6s var(--spring), visibility 0s; }

/* ==========================================================================
   Member area app (rendered by members.js) — light, calm, readable
   ========================================================================== */
.app { min-height: 100vh; padding-top: calc(var(--nav-h) + 30px); }
.app-login { min-height: calc(100vh - var(--nav-h) - 30px); display: grid; place-items: center; padding: 30px 16px; position: relative; overflow: hidden; }
.login-card { position: relative; z-index: 2; width: min(560px, 100%); padding: clamp(26px, 5vw, 44px); border-radius: var(--r-xl); background: rgba(22, 19, 30, .8); border: 1px solid var(--line-2); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); display: grid; gap: 18px; box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .9); }
.login-card h1 { font-size: clamp(40px, 6vw, 60px); }
.err { color: var(--rose); font-weight: 600; margin: 0; }
.picker { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); max-height: 56vh; overflow: auto; padding-right: 4px; }
.picker button { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 16px; background: var(--glass); border: 1px solid var(--line); text-align: left; transition: border-color .3s, background .3s, transform .5s var(--spring); }
.picker button:hover { border-color: var(--mint); background: var(--glass-2); transform: translateY(-2px); }
.picker .biz__icon { width: 40px; height: 40px; border-radius: 12px; }
.picker .biz__icon .ic { width: 20px; height: 20px; }
.field { display: grid; gap: 8px; }
.field label { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.input { height: 52px; width: 100%; padding: 0 16px; border-radius: 14px; border: 1.5px solid var(--line-2); background: var(--glass); color: var(--text); font-size: 16px; transition: border-color .3s, box-shadow .3s, background .3s; }
.input:focus { outline: 0; border-color: var(--mint); box-shadow: 0 0 0 4px rgba(242, 211, 168, .15); }
.light .input { background: #fff; }
select.input, .vs-biz select { color-scheme: dark; }
select option { background-color: #1A1723; color: #F6F3F8; }
.light select.input { color-scheme: light; }
.light select option { background-color: #fff; color: #16131D; }
.light .input:focus { border-color: #6A4ED4; box-shadow: 0 0 0 4px rgba(106, 78, 212, .12); }
select.input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B92A4' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; padding-right: 38px; }
.shell { display: grid; gap: 0; min-height: calc(100vh - var(--nav-h) - 30px); }
@media (min-width: 980px) { .shell { grid-template-columns: 280px 1fr; } }
.side { position: relative; padding: 18px; display: grid; align-content: start; gap: 14px; }
@media (min-width: 980px) { .side { position: sticky; top: calc(var(--nav-h) + 30px); height: calc(100vh - var(--nav-h) - 30px); border-right: 1px solid var(--line); } }
.side__biz { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 18px; background: var(--glass-2); border: 1px solid var(--line); }
.side__biz .biz__icon { flex: none; }
.side__biz select { flex: 1; min-width: 0; border: 0; background: transparent; font-weight: 700; font-size: 15px; color: var(--text); appearance: none; -webkit-appearance: none; cursor: pointer; }
.side__biz select option { color: #0E0B14; }
.side__nav { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.side__nav::-webkit-scrollbar { display: none; }
@media (min-width: 980px) { .side__nav { display: grid; } }
.side__nav button { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; font-weight: 600; font-size: 14.5px; color: var(--text-2); white-space: nowrap; transition: background .3s, color .3s; }
.side__nav button .ic { width: 19px; height: 19px; }
.side__nav button:hover { background: var(--glass-2); color: var(--text); }
.side__nav button.on { background: var(--text); color: var(--bg); }
.side__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); }
@media (min-width: 980px) { .side__foot { position: absolute; left: 18px; right: 18px; bottom: 18px; display: grid; } }
.side__foot button { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.pane { padding: clamp(18px, 3vw, 44px); min-width: 0; }
.pane__head { display: flex; flex-wrap: wrap; gap: 16px; align-items: end; justify-content: space-between; margin-bottom: 26px; }
.pane__head h2 { font-size: clamp(34px, 4vw, 56px); }
.ring { --p: 0; width: 64px; height: 64px; border-radius: 50%; background: conic-gradient(#6A4ED4 calc(var(--p) * 1%), var(--sage) 0); display: grid; place-items: center; }
.ring span { width: 50px; height: 50px; border-radius: 50%; background: var(--bg); display: grid; place-items: center; font-weight: 800; font-size: 13px; }
.cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.dcard { padding: 20px; border-radius: 22px; background: var(--card); border: 1px solid var(--line); display: grid; gap: 8px; align-content: start; text-align: left; transition: transform .6s var(--spring), box-shadow .4s, border-color .3s; }
button.dcard:hover, a.dcard:hover { transform: translateY(-4px); box-shadow: var(--sh-1); border-color: var(--line-2); }
.dcard .ic { width: 24px; height: 24px; color: #6A4ED4; }
.dcard b { font-size: 16px; }
.dcard span { font-size: 13.5px; color: var(--muted); }
.checks { display: grid; gap: 10px; margin-top: 12px; }
.check { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; padding: 16px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.check__t { font-weight: 700; }
.check__d { color: var(--text-2); font-size: 14.5px; margin-top: 4px; }
.toggle { position: relative; width: 50px; height: 30px; border-radius: 999px; background: var(--sage); transition: background .4s var(--ease); flex: none; }
.toggle::after { content: ""; position: absolute; left: 3px; top: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .25); transition: transform .5s var(--spring); }
.toggle[aria-pressed="true"] { background: #6A4ED4; }
.toggle[aria-pressed="true"]::after { transform: translateX(20px); }
.road__ph h3 { font-size: 22px; }
.player { display: grid; gap: 16px; }
@media (min-width: 1200px) { .player { grid-template-columns: 1fr 360px; } }
.player__main iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 20px; background: #000; }
.player__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; margin-top: 12px; }
.player__list { max-height: 70vh; overflow: auto; display: grid; gap: 6px; align-content: start; padding-right: 4px; }
.pl-mod { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 12px 0 4px; }
.pl-item { display: grid; grid-template-columns: 90px 1fr 20px; gap: 10px; align-items: center; padding: 6px; border-radius: 12px; text-align: left; font-size: 13px; font-weight: 600; transition: background .3s; }
.pl-item img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; }
.pl-item:hover { background: var(--card); }
.pl-item.on { background: var(--card); box-shadow: 0 0 0 1.5px #6A4ED4; }
.pl-item .done { color: #6A4ED4; }
.lib { display: grid; gap: 14px; }
.lib__bar .input { max-width: 380px; height: 46px; }
.lib__sections { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
.lib__sections::-webkit-scrollbar { display: none; }
.lib__sections button { border: 1.5px solid var(--line); background: var(--card); padding: 8px 14px; border-radius: 999px; font-size: 13.5px; font-weight: 600; white-space: nowrap; transition: all .35s var(--spring); }
.lib__sections button.on { background: var(--text); border-color: var(--text); color: var(--bg); }
.lib__sections button small { opacity: .6; font-weight: 500; }
.items { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.item { position: relative; padding: 18px 18px 18px; border-radius: 20px; background: var(--card); border: 1px solid var(--line); display: grid; gap: 8px; align-content: start; }
.item__tag { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6A4ED4; padding-right: 36px; }
.item__t { font-weight: 700; line-height: 1.35; padding-right: 30px; }
.item__b { font-size: 14px; color: var(--text-2); white-space: pre-line; line-height: 1.55; }
.item mark { background: #FFF1C9; color: #5A4300; border-radius: 4px; padding: 0 3px; }
.item__copy { position: absolute; right: 12px; top: 12px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--bg); border: 1px solid var(--line); transition: transform .4s var(--spring), background .3s; }
.item__copy:hover { transform: scale(1.08); }
.item__copy .ic { width: 16px; height: 16px; }
.pager { display: flex; gap: 8px; justify-content: center; margin-top: 18px; align-items: center; font-size: 14px; }
.files { display: grid; gap: 10px; }
.file { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.file > .ic { color: #6A4ED4; }
.file div { flex: 1; display: grid; }
.file small { color: var(--muted); }
.empty { padding: 36px; text-align: center; border-radius: 22px; border: 1.5px dashed var(--line-2); color: var(--muted); }
.skeleton { border-radius: 20px; background: linear-gradient(90deg, var(--bg-2), var(--bg-3), var(--bg-2)); background-size: 200% 100%; animation: shimmer 1.4s linear infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }

/* Manage my business */
.mgrid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.mhero { grid-column: 1 / -1; background: linear-gradient(145deg, #2A1D2E, #15121D) !important; color: #F6F3F8; border: 0 !important; --text: #F6F3F8; --text-2: #CBC4D6; --muted: #948DA3; }
.mhero .mbody { color: rgba(244, 245, 248, .82); font-size: 14.5px; line-height: 1.6; max-height: 260px; overflow: auto; }
.mhero mark { background: rgba(242, 211, 168, .2); color: #fff; }
.mhero .btn--ghost { color: #F6F3F8 !important; border-color: rgba(255, 255, 255, .3) !important; background: rgba(255, 255, 255, .06) !important; }
.mbody { font-size: 14px; line-height: 1.55; color: var(--text-2); }
.mbody.small { font-size: 13px; max-height: 220px; overflow: auto; }
.mstats { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); grid-column: 1 / -1; margin-bottom: 12px; }
.mstat { padding: 14px 16px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); display: grid; gap: 4px; }
.mstat span { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.mstat b { font-size: 24px; font-family: var(--display); font-weight: 700; letter-spacing: -.03em; }
.mlist { display: grid; gap: 8px; }
.mlist > div { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.mform { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: center; padding: 14px; border-radius: 20px; background: var(--card); border: 1px solid var(--line); }
.mform .input, .input--sm { height: 42px; border-radius: 12px; font-size: 14px; padding: 0 12px; }
.mtable { overflow-x: auto; border-radius: 18px; border: 1px solid var(--line); background: var(--card); }
.mtable table { width: 100%; border-collapse: collapse; font-size: 14px; }
.mtable th { text-align: left; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); padding: 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.mtable td { padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.mtable tr.due td { background: rgba(246, 201, 142, .1); }
.light .mtable tr.due td { background: #FFF6DD; }
.mbar { height: 10px; border-radius: 999px; background: var(--sage); overflow: hidden; margin: 0 0 14px; }
.mbar i { display: block; height: 100%; background: linear-gradient(90deg, #B0457E, #6A4ED4); border-radius: inherit; transition: width 1s var(--spring); }
.mchart { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; align-items: end; height: 150px; margin-top: 16px; padding: 12px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.mchart > div { height: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; align-items: end; position: relative; padding-bottom: 18px; }
.mchart i { display: block; border-radius: 4px 4px 0 0; min-height: 2px; }
.mchart i.in { background: #6A4ED4; }
.mchart i.out { background: #F2B544; }
.mchart span { position: absolute; bottom: 0; left: 0; right: 0; text-align: center; font-size: 11px; color: var(--muted); }
.spark { display: flex; gap: 3px; align-items: end; height: 30px; min-width: 90px; }
.spark i { flex: 1; background: #6A4ED4; border-radius: 2px; min-height: 2px; }


/* ---------- Surfaces: light slabs inside dark pages, dark islands inside light ---------- */
.dark {
  --bg: #0B0A11; --bg-2: #110F18; --bg-3: #1A1723;
  --glass: rgba(255, 255, 255, .045); --glass-2: rgba(255, 255, 255, .075); --glass-3: rgba(255, 255, 255, .11);
  --line: rgba(255, 255, 255, .085); --line-2: rgba(255, 255, 255, .16);
  --text: #F6F3F8; --text-2: #CBC4D6; --muted: #948DA3;
  color-scheme: dark; color: var(--text);
}
.slab { position: relative; margin-inline: clamp(6px, 1.1vw, 16px); border-radius: clamp(28px, 4vw, 56px); }
.slab + .slab { margin-top: clamp(6px, 1.1vw, 16px); }
.aurora ~ .wrap, .cta-band > :not(.aurora):not(.gridlines):not(.spotlight) { position: relative; z-index: 2; }
.cta-band.dark, .light .cta-band { background: #0E0C14; }
.light .dark h1 em, .light .dark h2 em, .light .dark .grad { background: var(--grad); -webkit-background-clip: text; background-clip: text; }
.light .dark .kicker { background: var(--grad); -webkit-background-clip: text; background-clip: text; }
.paylogos { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 18px; }
.paylogos span { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--glass); color: var(--muted); font-size: 12.5px; font-weight: 600; }
.compare .yes .ic { color: #6A4ED4; }
.compare thead small { display: block; font-family: var(--sans); font-size: 14px; color: var(--muted); font-weight: 600; letter-spacing: 0; margin-top: 4px; }
.compare td.val { font-weight: 600; color: var(--text-2); font-size: 13.5px; }
.compare th.hot { color: #6A4ED4; }
.biz-grid .biz { min-height: 250px; }
@media (max-width: 640px) {
  .biz-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .biz-grid .biz { min-height: 0; padding: 16px; gap: 12px; border-radius: 22px; }
  .biz-grid .biz__icon { width: 42px; height: 42px; border-radius: 13px; }
  .biz-grid .biz__icon .ic { width: 21px; height: 21px; }
  .biz-grid .biz__name { font-size: 18px; }
  .biz-grid .biz__tag, .biz-grid .biz__meta span:not(:first-child), .biz-grid .biz__arrow { display: none; }
  .biz-grid .badge { font-size: 0; padding: 0; width: 9px; height: 9px; border: 0; border-radius: 50%; }
  .biz-grid .badge::before { display: none; }
}
.ty .aurora { opacity: .9; }
.ty h1 { font-size: clamp(44px, 6.6vw, 92px); }
.big404 { font-family: var(--display); font-weight: 800; font-size: clamp(120px, 26vw, 360px); letter-spacing: -.08em; line-height: .8; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.post-list { display: grid; gap: 12px; }
.post-list a { display: grid; gap: 6px; padding: 24px 26px; border-radius: var(--r-md); background: var(--glass-2); border: 1px solid var(--line); transition: transform .6s var(--spring), border-color .3s; }
.post-list a:hover { transform: translateY(-4px); border-color: var(--line-2); }
.post-list b { font-family: var(--display); font-size: 22px; letter-spacing: -.02em; }
.post-list span { color: var(--muted); font-size: 15px; }
.prose > :first-child { margin-top: 0; }
.prose p, .prose li { color: var(--text-2); }
.prose table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: 15px; }
.prose th, .prose td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }


/* ---------- Viral Score tool ---------- */
.vs-card { position: relative; border-radius: var(--r-xl); background: var(--glass); border: 1px solid var(--line-2); padding: clamp(16px, 3vw, 30px); box-shadow: var(--sh-1); }
.light .vs-card { background: #fff; }
.vs-top { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.vs-seg { position: relative; display: inline-flex; padding: 4px; border-radius: 16px; background: var(--glass-2); border: 1px solid var(--line); max-width: 100%; }
.vs-seg button { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 12px; font-size: 14px; font-weight: 650; color: var(--muted); transition: color .35s var(--ios); }
.vs-seg button svg { width: 18px; height: 18px; }
.vs-seg button[aria-selected="true"] { color: var(--text); }
.vs-seg__pill { position: absolute; top: 4px; bottom: 4px; left: 4px; width: 0; border-radius: 12px; background: var(--glass-3); box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 6px 16px -8px rgba(0, 0, 0, .6); transition: transform .45s var(--ios), width .45s var(--ios); }
.light .vs-seg__pill { background: #fff; box-shadow: 0 1px 3px rgba(22, 19, 29, .12), 0 6px 16px -10px rgba(22, 19, 29, .4); }
.vs-biz { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; color: var(--muted); }
.vs-biz .input { height: 44px; min-width: 190px; }
.vs-grid { display: grid; gap: clamp(18px, 3vw, 34px); }
@media (min-width: 1000px) { .vs-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: start; } .vs-out { position: sticky; top: calc(var(--nav-h) + 30px); } }
.vs-in { display: grid; gap: 16px; min-width: 0; }
.vs-drop { position: relative; display: grid; justify-items: center; gap: 6px; padding: 26px 18px; border-radius: 22px; border: 1.5px dashed var(--line-2); background: var(--glass); text-align: center; cursor: pointer; transition: border-color .3s, background .3s, transform .4s var(--ios); }
.vs-drop:hover, .vs-drop.is-over { border-color: var(--mint); background: var(--glass-2); }
.vs-drop.is-over { transform: scale(1.01); }
.vs-drop:focus-within { outline: 2px solid var(--mint); outline-offset: 3px; }
.vs-drop__ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--grad); color: #1B1422; }
.vs-drop__ic svg { width: 22px; height: 22px; }
.vs-drop b { font-family: var(--display); font-size: 18px; letter-spacing: -.02em; }
.vs-drop small { color: var(--muted); font-size: 13px; }
.vs-drop.has-media { padding: 12px; }
.vs-drop.has-media .vs-drop__ic, .vs-drop.has-media b, .vs-drop.has-media small { display: none; }
.vs-media { width: 100%; display: grid; gap: 10px; }
.vs-media video { width: 100%; max-height: 320px; border-radius: 14px; background: #000; object-fit: contain; }
.vs-thumbs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.vs-thumbs img { width: 96px; height: 120px; object-fit: cover; border-radius: 12px; flex: none; }
.vs-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.vs-meta span { padding: 5px 10px; border-radius: 999px; background: var(--glass-2); border: 1px solid var(--line); font-size: 12.5px; font-weight: 650; }
.vs-x { margin-left: auto; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--glass-2); border: 1px solid var(--line); }
.vs-x svg { width: 16px; height: 16px; }
.vs-ta { height: auto; min-height: 128px; padding: 14px 16px; line-height: 1.5; resize: vertical; }
.vs-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
.vs-toggles button { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: var(--glass); border: 1px solid var(--line-2); font-size: 13px; font-weight: 600; color: var(--text-2); transition: background .3s var(--ios), color .3s, border-color .3s, transform .3s var(--ios); }
.vs-toggles button::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--line-2); transition: background .3s, border-color .3s, box-shadow .3s; }
.vs-toggles button[aria-pressed="true"] { color: var(--text); border-color: transparent; background: var(--glass-3); }
.vs-toggles button[aria-pressed="true"]::before { background: var(--grad); border-color: transparent; box-shadow: 0 0 0 3px rgba(242, 211, 168, .18); }
.vs-toggles button:active { transform: scale(.96); }
.vs-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.vs-out { min-width: 0; }
.vs-empty { display: grid; justify-items: center; gap: 12px; text-align: center; padding: clamp(24px, 5vw, 50px) 20px; border-radius: 24px; border: 1px solid var(--line); background: var(--glass); }
.vs-empty p { color: var(--muted); max-width: 44ch; margin: 0; font-size: 14.5px; }
.vs-empty b { font-family: var(--display); font-size: 22px; letter-spacing: -.02em; }
.vs-empty__rings { display: flex; gap: 12px; }
.vs-empty__rings i { width: 58px; height: 58px; border-radius: 50%; background: conic-gradient(var(--mint) calc(var(--p) * 1%), var(--glass-2) 0); -webkit-mask: radial-gradient(circle, transparent 54%, #000 56%); mask: radial-gradient(circle, transparent 54%, #000 56%); opacity: .55; animation: vs-breathe 3s var(--ios) infinite alternate; animation-delay: calc(var(--i) * .3s); }
@keyframes vs-breathe { to { opacity: .9; transform: scale(1.05); } }
.vs-busy { display: flex; align-items: center; gap: 12px; padding: 18px; border-radius: 18px; background: var(--glass); color: var(--text-2); font-weight: 600; font-size: 14.5px; }
.vs-spin { width: 20px; height: 20px; border-radius: 50%; border: 2.5px solid var(--line-2); border-top-color: var(--mint); animation: vs-spin .8s linear infinite; }
@keyframes vs-spin { to { transform: rotate(360deg); } }
.vs-res { display: grid; gap: 18px; animation: rise .6s var(--ios) both; }
.vs-best { padding: 20px 22px; border-radius: 24px; background: linear-gradient(135deg, rgba(242, 211, 168, .16), rgba(184, 166, 255, .14)); border: 1px solid var(--line-2); }
.light .vs-best { background: linear-gradient(135deg, #FBEFE6, #EEE9FF); }
.vs-best b { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; font-family: var(--display); font-size: clamp(26px, 3vw, 34px); letter-spacing: -.035em; margin-top: 6px; }
.vs-best b i { font-style: normal; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; }
.light .vs-best b i { background: linear-gradient(100deg, #B8603A, #B0457E 50%, #6A4ED4); -webkit-background-clip: text; background-clip: text; }
.vs-best p { margin: 6px 0 0; color: var(--text-2); font-size: 14.5px; }
.vs-rings { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); }
.vs-ring { position: relative; display: grid; justify-items: center; gap: 2px; padding: 14px 8px 12px; border-radius: 20px; background: var(--glass); border: 1px solid var(--line); text-align: center; animation: rise .6s var(--ios) both; animation-delay: calc(var(--i) * 60ms); }
.vs-ring svg { width: 74px; height: 74px; transform: rotate(-90deg); }
.vs-ring circle { fill: none; stroke-width: 9; }
.vs-ring__bg { stroke: var(--line-2); }
.vs-ring__fg { stroke: var(--ring, var(--mint)); stroke-linecap: round; transition: stroke-dashoffset 1.2s var(--ios); }
.vs-ring.is-strong { --ring: #30D158; } .vs-ring.is-good { --ring: #B8A6FF; } .vs-ring.is-fair { --ring: #FF9F0A; } .vs-ring.is-weak { --ring: #FF453A; }
.light .vs-ring.is-strong { --ring: #1FA045; } .light .vs-ring.is-good { --ring: #6A4ED4; } .light .vs-ring.is-fair { --ring: #D97706; } .light .vs-ring.is-weak { --ring: #D92D20; }
.vs-ring b { position: absolute; top: 38px; left: 0; right: 0; font-family: var(--display); font-size: 19px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.vs-ring span { font-size: 12.5px; font-weight: 650; line-height: 1.25; margin-top: 6px; }
.vs-ring em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ring); }
.vs-note { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--glass); color: var(--text-2); font-size: 13.5px; }
.vs-note svg, .vs-list h4 svg, .vs-up svg { width: 18px; height: 18px; flex: none; }
.vs-lists { display: grid; gap: 12px; }
.vs-list { border-radius: 20px; padding: 16px 18px; background: var(--glass); border: 1px solid var(--line); }
.vs-list h4 { display: flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 12.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 10px; }
.vs-list--fix h4 { color: #FF9F0A; } .vs-list--ok h4 { color: #30D158; }
.light .vs-list--fix h4 { color: #B45309; } .light .vs-list--ok h4 { color: #1A8A3D; }
.vs-chk { padding: 10px 0; border-top: 1px solid var(--line); }
.vs-list h4 + .vs-chk { border-top: 0; padding-top: 0; }
.vs-chk b { display: block; font-size: 15px; }
.vs-chk p { margin: 3px 0 0; color: var(--text-2); font-size: 14px; line-height: 1.5; }
.vs-chk small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 600; }
.vs-kit { display: grid; gap: 12px; }
.vs-kit__h { font-family: var(--display); font-size: 21px; letter-spacing: -.02em; margin: 6px 0 0; }
.vs-sug { display: grid; gap: 8px; }
.vs-sug__h { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; }
.vs-sug__h b { font-size: 14px; }
.vs-sug__h small { color: var(--muted); font-size: 12.5px; font-weight: 600; }
.vs-item { position: relative; padding: 14px 52px 14px 16px; border-radius: 16px; background: var(--glass-2); border: 1px solid var(--line); }
.vs-item p { margin: 0; font-size: 14.5px; line-height: 1.5; }
.vs-item details summary { cursor: pointer; font-weight: 650; font-size: 14.5px; list-style: none; }
.vs-item details summary::-webkit-details-marker { display: none; }
.vs-item details summary::after { content: " +"; color: var(--muted); }
.vs-item details[open] summary::after { content: " –"; }
.vs-sug__b { margin-top: 8px; font-size: 13.5px; color: var(--text-2); line-height: 1.55; }
.vs-tag { display: inline-block; margin-bottom: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--mint); }
.light .vs-tag { color: #6A4ED4; }
.vs-copy { position: absolute; right: 10px; top: 10px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--glass-3); border: 1px solid var(--line); transition: transform .3s var(--ios), background .3s; }
.vs-copy svg { width: 17px; height: 17px; }
.vs-copy:active { transform: scale(.9); }
.vs-copy.is-done { background: #30D158; color: #fff; }
.vs-up { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 4px 0 0; padding: 14px 16px; border-radius: 16px; border: 1px dashed var(--line-2); color: var(--text-2); font-size: 14px; }
.vs-up span { flex: 1; min-width: 200px; }
.vs-fine { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.vs-sec .sec__head { margin-bottom: clamp(26px, 4vw, 44px); }
.vs-points { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; color: var(--text-2); font-size: 14px; font-weight: 600; }
.vs-points span { display: inline-flex; align-items: center; gap: 8px; }
.vs-points .ic { width: 17px; height: 17px; color: var(--mint); }
.light .vs-points .ic { color: #6A4ED4; }


/* ---------- Viral Score v2: expert report ---------- */
.vs-card { overflow: hidden; }
.vs-score { display: flex; gap: 20px; align-items: center; padding: 20px; border-radius: 26px; background: linear-gradient(135deg, rgba(247, 217, 170, .13), rgba(236, 143, 192, .1) 50%, rgba(169, 147, 255, .12)); border: 1px solid var(--line-2); }
.light .vs-score { background: linear-gradient(135deg, #FBEFE6, #FBE9F3 50%, #EEE9FF); }
.vs-big { position: relative; flex: none; width: 128px; height: 128px; display: grid; place-items: center; }
.vs-big svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.vs-big circle { fill: none; stroke-width: 10; }
.vs-big .vs-ring__fg { stroke-linecap: round; transition: stroke-dashoffset 1.4s var(--ios); }
.vs-big > div { position: relative; display: grid; justify-items: center; line-height: 1; }
.vs-big b { font-family: var(--display); font-size: 34px; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.vs-big small { margin-top: 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.vs-score__txt { min-width: 0; display: grid; gap: 4px; }
.vs-score__txt > b { font-family: var(--display); font-size: clamp(24px, 2.6vw, 30px); letter-spacing: -.03em; line-height: 1.1; }
.vs-score__txt p { margin: 0; color: var(--text-2); font-size: 14px; }
.vs-score__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.vs-score__acts .btn svg { width: 15px; height: 15px; }
.vs-delta { display: inline-flex; align-items: center; gap: 4px; padding: 6px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; }
.vs-delta.is-up { background: rgba(48, 209, 88, .15); color: #30D158; } .vs-delta.is-down { background: rgba(255, 69, 58, .14); color: #FF6B60; }
@media (max-width: 520px) { .vs-score { flex-direction: column; text-align: center; } .vs-score__acts { justify-content: center; } }
.vs-pillars { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.vs-pil { padding: 14px 14px 12px; border-radius: 18px; background: var(--glass); border: 1px solid var(--line); animation: rise .6s var(--ios) both; animation-delay: calc(var(--i) * 70ms); }
.vs-pil__h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.vs-pil__h b { font-size: 14px; } .vs-pil__h span { font-family: var(--display); font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; color: var(--ring); }
.vs-pil.is-strong { --ring: #30D158; } .vs-pil.is-good { --ring: #B8A6FF; } .vs-pil.is-fair { --ring: #FF9F0A; } .vs-pil.is-weak { --ring: #FF453A; }
.light .vs-pil.is-strong { --ring: #1FA045; } .light .vs-pil.is-good { --ring: #6A4ED4; } .light .vs-pil.is-fair { --ring: #D97706; } .light .vs-pil.is-weak { --ring: #D92D20; }
.vs-bar { display: block; height: 6px; margin: 8px 0 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.vs-bar > i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--ring); transition: width 1.2s var(--ios); }
.vs-bar > i.is-in { width: var(--w); }
.vs-pil small { color: var(--muted); font-size: 12px; line-height: 1.35; display: block; }
button.vs-ring { font: inherit; color: inherit; cursor: pointer; transition: transform .35s var(--ios), border-color .3s, background .3s; }
button.vs-ring:hover { transform: translateY(-3px); border-color: var(--line-2); }
button.vs-ring.is-on { border-color: var(--ring); background: var(--glass-2); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 22%, transparent); }
.vs-play { padding: 18px 20px; border-radius: 22px; background: var(--glass); border: 1px solid var(--line-2); animation: rise .45s var(--ios) both; }
.vs-play__h b { display: block; font-family: var(--display); font-size: 22px; letter-spacing: -.02em; margin-top: 4px; }
.vs-play__h b i { font-style: normal; color: var(--mint); }
.light .vs-play__h b i { color: #6A4ED4; }
.vs-play dl { display: grid; gap: 10px; margin: 12px 0 0; }
.vs-play dt { font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.vs-play dd { margin: 2px 0 0; font-size: 14.5px; color: var(--text-2); }
.vs-play dd small { color: var(--muted); }
.vs-play__fix { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.vs-play__fix > b { font-size: 14px; }
.vs-play__fix ul { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14px; color: var(--text-2); }
.vs-play__ok { display: flex; gap: 8px; align-items: center; margin: 12px 0 0; color: #30D158; font-weight: 600; font-size: 14px; }
.vs-play__ok svg { width: 18px; height: 18px; }
.vs-report:empty { display: none; }
.vs-rep { display: grid; gap: 14px; margin-top: clamp(18px, 3vw, 30px); }
@media (min-width: 1000px) { .vs-rep { grid-template-columns: 1fr 1fr; align-items: start; } .vs-rep > :first-child, .vs-rep > .vs-fine, .vs-rep > [data-kit] { grid-column: 1 / -1; } }
.vs-block { padding: clamp(16px, 2.4vw, 24px); border-radius: 24px; background: var(--glass); border: 1px solid var(--line); animation: rise .6s var(--ios) both; min-width: 0; }
.vs-block__h { display: grid; gap: 4px; margin-bottom: 14px; }
.vs-block__h h4, .vs-block > h4 { font-family: var(--display); font-size: clamp(20px, 2vw, 24px); letter-spacing: -.02em; margin: 0; }
.vs-block__h p, .vs-block > p { margin: 0; color: var(--muted); font-size: 14px; }
.vs-block--ok h4 { display: flex; gap: 8px; align-items: center; } .vs-block--ok h4 svg { width: 20px; height: 20px; color: #30D158; }
.vs-block--info { border-style: dashed; }
.vs-block--info b { display: block; }
.vs-plan { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
@media (min-width: 1000px) { .vs-plan { grid-template-columns: 1fr 1fr; } }
.vs-step { display: grid; grid-template-columns: 36px 1fr; gap: 12px; padding: 14px; border-radius: 18px; background: var(--glass-2); border: 1px solid var(--line); animation: rise .5s var(--ios) both; animation-delay: calc(var(--i) * 60ms); }
.vs-step__n { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; font-family: var(--display); font-weight: 750; background: var(--sev); color: #16131D; }
.vs-step.is-high { --sev: #FF6B60; } .vs-step.is-mid { --sev: #FFB340; } .vs-step.is-low { --sev: #B8A6FF; }
.vs-step b { display: block; font-size: 15.5px; }
.vs-step p { margin: 4px 0 0; font-size: 14px; color: var(--text-2); line-height: 1.5; }
.vs-step .vs-why { color: var(--muted); font-size: 13px; }
.vs-step .vs-why em { font-style: normal; font-weight: 700; color: var(--text-2); }
.vs-where { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 7px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: linear-gradient(100deg, rgba(247, 217, 170, .16), rgba(169, 147, 255, .16)); border: 1px solid var(--line-2); color: var(--text); text-align: left; }
button.vs-where:hover { border-color: var(--mint); }
.vs-where.is-static { font-weight: 600; color: var(--text-2); }
.light .vs-where { background: linear-gradient(100deg, #FBEFE6, #EEE9FF); }
.vs-aff { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; font-weight: 600; }
.vs-wins { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.vs-wins li { display: flex; gap: 10px; font-size: 14px; color: var(--text-2); }
.vs-wins svg { width: 18px; height: 18px; flex: none; color: #30D158; margin-top: 2px; }
.vs-wins b { color: var(--text); }
.vs-learn { display: grid; gap: 10px; }
.vs-learn__i { display: grid; grid-template-columns: 30px 1fr; column-gap: 12px; align-items: start; }
.vs-learn__i > span { grid-row: span 2; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 13px; background: var(--grad); color: #1B1422; }
.vs-learn__i b { font-size: 15px; } .vs-learn__i b i { font-style: normal; color: var(--muted); font-weight: 600; font-size: 13px; }
.vs-learn__i p { margin: 2px 0 0; font-size: 13.5px; color: var(--text-2); }
.vs-rw { display: grid; gap: 8px; }
.vs-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
.vs-tabs::-webkit-scrollbar { display: none; }
.vs-tabs button { flex: none; padding: 8px 12px; border-radius: 999px; font-size: 13px; font-weight: 650; color: var(--text-2); background: var(--glass); border: 1px solid var(--line); transition: background .3s, color .3s, border-color .3s; }
.vs-tabs button[aria-selected="true"] { background: var(--text); color: var(--bg); border-color: transparent; }
.vs-verbox { position: relative; display: grid; gap: 8px; margin-top: 10px; }
.vs-ver { margin: 0; padding: 16px; border-radius: 16px; background: var(--glass-2); border: 1px solid var(--line); white-space: pre-wrap; word-break: break-word; font-family: var(--sans); font-size: 14px; line-height: 1.55; max-height: 340px; overflow: auto; }
.vs-verbox .btn { justify-self: start; }
.vs-verbox .btn svg { width: 15px; height: 15px; }
.vs-verbox small { color: var(--muted); font-size: 12px; }
.vs-hist summary { cursor: pointer; font-weight: 700; list-style: none; }
.vs-hist summary::-webkit-details-marker { display: none; }
.vs-hist summary::after { content: " +"; color: var(--muted); }
.vs-hist[open] summary::after { content: " –"; }
.vs-hist ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.vs-hist li { display: grid; grid-template-columns: 52px 1fr; column-gap: 10px; font-size: 13.5px; }
.vs-hist li b { grid-row: span 2; font-family: var(--display); font-size: 20px; }
.vs-hist li small { color: var(--muted); }
.vs-vid { position: relative; max-width: 100%; margin: 0 auto; border-radius: 14px; overflow: hidden; background: #000; }
.vs-vid video { width: 100%; height: 100%; max-height: none; object-fit: cover; border-radius: 0; display: block; }
.vs-safe { position: absolute; inset: 0; pointer-events: none; }
.vs-safe i { position: absolute; background: repeating-linear-gradient(135deg, rgba(255, 69, 58, .32) 0 8px, rgba(255, 69, 58, .18) 8px 16px); }
.vs-safe__t { left: 0; right: 0; top: 0; height: 9%; } .vs-safe__b { left: 0; right: 0; bottom: 0; height: 22%; } .vs-safe__r { right: 0; top: 30%; width: 16%; height: 48%; }
.vs-safe span { position: absolute; left: 8px; right: 20%; bottom: 8px; font-size: 11px; line-height: 1.35; font-weight: 700; color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, .8); }
.vs-chipbtn { padding: 5px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; border: 1px solid var(--line-2); background: var(--glass-2); }
.vs-chipbtn[aria-pressed="true"] { background: #FF453A; border-color: transparent; color: #fff; }
.vs-strip { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.vs-strip figure { margin: 0; flex: none; width: 64px; }
.vs-strip img { width: 64px; height: 88px; object-fit: cover; border-radius: 9px; border: 1px solid var(--line); }
.vs-strip figcaption { font-size: 11px; color: var(--muted); text-align: center; margin-top: 3px; font-variant-numeric: tabular-nums; }
.vs-strip__cap { color: var(--muted); font-size: 12px; text-align: left; }
.vs-cover { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 14px; background: var(--glass-2); border: 1px solid var(--line); text-align: left; }
.vs-cover img { width: 54px; height: 72px; object-fit: cover; border-radius: 8px; flex: none; }
.vs-cover span { font-size: 12.5px; color: var(--text-2); line-height: 1.45; }
.vs-cover b { display: block; color: var(--text); font-size: 13px; }

/* ---------- 6-month example ---------- */
.ern-sec .sec__head { max-width: 760px; }
.ern-sec [data-earn] { max-width: 1120px; margin: 0 auto; }
.ern { position: relative; padding: clamp(18px, 3vw, 32px); border-radius: var(--r-xl); background: var(--glass); border: 1px solid var(--line); box-shadow: var(--sh-1); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
.light .ern { background: #fff; }
[data-earn-app] { transition: opacity .35s var(--ios); }
[data-earn-app].is-busy { opacity: .45; pointer-events: none; }
.ern__pick { display: flex; flex-wrap: wrap; align-items: end; gap: 12px 18px; margin: 0 0 16px; }
.ern__pick label { display: grid; gap: 6px; font-size: 13px; font-weight: 650; color: var(--muted); }
.ern__pick .input { height: 46px; min-width: 230px; }
.ern__pick .link { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.ern__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 22px; }
.ern__seg, .ern__cur { display: inline-flex; padding: 4px; border-radius: 15px; background: var(--glass-2); border: 1px solid var(--line); max-width: 100%; }
.light .ern__seg, .light .ern__cur { background: var(--bg-2); }
.ern__seg button, .ern__cur button { padding: 9px 15px; border-radius: 11px; font-size: 14px; font-weight: 650; color: var(--muted); white-space: nowrap; transition: color .35s var(--ios), background .35s var(--ios), box-shadow .35s var(--ios), transform .25s var(--ios); }
.ern__seg button:hover, .ern__cur button:hover { color: var(--text); }
.ern__seg button:active, .ern__cur button:active { transform: scale(.96); }
.ern__seg button[aria-selected="true"], .ern__cur button[aria-pressed="true"] { color: var(--text); background: var(--glass-3); box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 6px 16px -8px rgba(0, 0, 0, .6); }
.light .ern__seg button[aria-selected="true"], .light .ern__cur button[aria-pressed="true"] { background: #fff; box-shadow: 0 1px 2px rgba(22, 19, 29, .08), 0 6px 16px -10px rgba(22, 19, 29, .35); }
.ern__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr); gap: clamp(18px, 3vw, 36px); align-items: stretch; }
.ern__nums { display: grid; gap: 10px; align-content: start; }
.ern__big { padding: 14px 16px; border-radius: 18px; background: var(--glass-2); border: 1px solid var(--line); opacity: 0; transform: translate3d(0, 10px, 0); transition: opacity .6s var(--ios), transform .6s var(--ios); }
.light .ern__big { background: var(--bg); }
.ern.is-in .ern__big { opacity: 1; transform: none; }
.ern.is-in .ern__big:nth-child(2) { transition-delay: .06s; }
.ern.is-in .ern__big:nth-child(3) { transition-delay: .12s; }
.ern__big span { display: block; font-size: 12.5px; font-weight: 650; letter-spacing: .02em; color: var(--muted); }
.ern__big b { display: block; font-family: var(--display); font-size: clamp(28px, 3.4vw, 38px); line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; background: var(--grad); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; }
.light .ern__big b { background: linear-gradient(100deg, #B8603A, #B0457E 50%, #6A4ED4); -webkit-background-clip: text; background-clip: text; }
.ern__big:first-child b { font-size: clamp(34px, 4.4vw, 50px); }
.ern__big small { display: block; font-size: 13px; color: var(--text-2); margin-top: 2px; }
.ern__start { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 12px 4px 0; border-top: 1px dashed var(--line-2); font-size: 13px; }
.ern__start span { color: var(--muted); font-weight: 650; }
.ern__start b { color: var(--text-2); font-weight: 600; text-align: right; }
.ern__chart { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px 8px; align-items: end; padding: 18px 14px 12px; border-radius: 22px; background: var(--glass-2); border: 1px solid var(--line); }
.light .ern__chart { background: var(--bg); }
.ern__col { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; }
.ern__val { font-size: 12px; font-weight: 650; color: var(--text-2); font-variant-numeric: tabular-nums; white-space: nowrap; opacity: 0; transition: opacity .5s var(--ios) calc(.25s + var(--i) * .07s); }
.ern.is-in .ern__val { opacity: 1; }
.ern__col small { font-size: 12px; color: var(--muted); font-weight: 600; }
.ern__bars { position: relative; display: flex; align-items: flex-end; justify-content: center; gap: 4px; width: 100%; height: clamp(160px, 22vw, 230px); border-bottom: 1px solid var(--line-2); }
.ern__bars i, .ern__legend i { display: block; border-radius: 8px 8px 3px 3px; }
.ern__bars i { width: min(26px, 34%); height: max(3px, var(--h)); transform: scaleY(0); transform-origin: 50% 100%; transition: transform .9s var(--ios) calc(var(--i) * .07s); }
.ern.is-in .ern__bars i { transform: scaleY(1); }
.ern__rev { background: linear-gradient(180deg, #F7D9AA, #F5A896 45%, #EC8FC0 75%, #A993FF); box-shadow: 0 8px 24px -10px rgba(236, 143, 192, .7); }
.light .ern__rev { background: linear-gradient(180deg, #E2956E, #C0558E 55%, #6A4ED4); }
.ern__pro { background: rgba(169, 147, 255, .38); border: 1px solid rgba(169, 147, 255, .6); }
.light .ern__pro { background: rgba(106, 78, 212, .16); border-color: rgba(106, 78, 212, .45); }
.ern__act { background: repeating-linear-gradient(135deg, var(--text) 0 3px, transparent 3px 7px); border: 1.5px solid var(--text); opacity: .85; }
.ern__legend { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; font-size: 12.5px; color: var(--text-2); }
.ern__legend span { display: inline-flex; align-items: center; gap: 7px; }
.ern__legend i { width: 11px; height: 11px; border-radius: 4px; box-shadow: none; }
.ern__legend .muted { margin-left: auto; color: var(--muted); }
.ern__adj { margin-top: 18px; border-radius: 18px; border: 1px solid var(--line); background: var(--glass); }
.ern__adj summary { cursor: pointer; list-style: none; padding: 14px 18px; font-weight: 650; font-size: 15px; display: flex; align-items: center; justify-content: space-between; }
.ern__adj summary::-webkit-details-marker { display: none; }
.ern__adj summary::after { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform .35s var(--ios); opacity: .6; }
.ern__adj[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.ern__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 18px; padding: 0 18px 18px; align-items: end; }
.ern__f { display: grid; gap: 8px; font-size: 13px; font-weight: 650; color: var(--text-2); }
.ern__f > div { display: flex; gap: 10px; align-items: center; }
.ern__f input[type="range"] { flex: 1; min-width: 0; accent-color: var(--iris); height: 28px; }
.light .ern__f input[type="range"] { accent-color: #6A4ED4; }
.ern__f .input { width: 104px; height: 42px; padding: 0 10px; font-size: 15px; font-variant-numeric: tabular-nums; }
.ern__fields .btn { justify-self: start; }
.ern__note { margin: 16px 0 0; font-size: 14px; color: var(--text-2); line-height: 1.55; }
.ern__note b { color: var(--text); }
.ern__fine { margin: 8px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.5; }
@media (max-width: 860px) {
  .ern__grid { grid-template-columns: 1fr; }
  .ern__nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ern__big:first-child { grid-column: 1 / -1; }
  .ern__start { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .ern__top { flex-direction: column; align-items: stretch; }
  .ern__seg, .ern__cur { width: 100%; }
  .ern__seg button, .ern__cur button { flex: 1; padding: 9px 6px; font-size: 13px; }
  .ern__chart { gap: 4px; padding: 14px 8px 10px; }
  .ern__val { font-size: 10px; letter-spacing: -.02em; }
  .ern__legend .muted { margin-left: 0; }
  .ern__pick .input { min-width: 0; width: 100%; }
  .ern__pick label { flex: 1 1 100%; }
  .ern__start b { text-align: left; }
}

/* ---------- Business Hub (member Manage app) ---------- */
.mtabs { margin: -8px 0 22px; padding: 2px 2px 6px; }
.mtabs button { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.mbody-wrap > * + * { margin-top: 0; }
.qa { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.qa__b { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px 10px 12px; border-radius: 999px; background: var(--glass-2); border: 1px solid var(--line); font-size: 14px; font-weight: 650; color: var(--text); transition: transform .45s var(--spring), background .3s, border-color .3s, box-shadow .3s; }
.qa__b .ic { width: 18px; height: 18px; color: var(--iris); }
.qa__b:hover { transform: translateY(-2px); background: var(--glass-3); border-color: var(--line-2); box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .7); }
.qa__b:active { transform: scale(.96); }
.hubg { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); margin: 4px 0 12px; }
.hw { position: relative; display: grid; gap: 8px; align-content: start; padding: 16px 18px 18px; border-radius: 24px; background: var(--card); border: 1px solid var(--line); overflow: hidden; animation: hw-in .7s var(--ios) both; transition: transform .5s var(--spring), border-color .3s, box-shadow .4s; }
.hw:nth-child(2) { animation-delay: .05s; } .hw:nth-child(3) { animation-delay: .1s; } .hw:nth-child(4) { animation-delay: .15s; } .hw:nth-child(5) { animation-delay: .2s; } .hw:nth-child(6) { animation-delay: .25s; }
.hw:hover { transform: translateY(-3px); border-color: var(--line-2); box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .8); }
.hw::before { content: ""; position: absolute; inset: 0 0 auto; height: 60%; background: radial-gradient(120% 90% at 0% 0%, rgba(169, 147, 255, .09), transparent 60%); pointer-events: none; }
@keyframes hw-in { from { opacity: 0; transform: translate3d(0, 14px, 0) scale(.98); } }
.hw__h { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 28px; }
.hw__h > span { font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.hw__go { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--glass-2); border: 1px solid var(--line); color: var(--text-2); transition: transform .35s var(--spring), background .3s; }
.hw__go .ic { width: 15px; height: 15px; }
.hw__go:hover { transform: translateX(2px); background: var(--glass-3); color: var(--text); }
.hw__big { display: block; font-family: var(--display); font-size: 30px; line-height: 1.1; letter-spacing: -.03em; font-weight: 700; font-variant-numeric: tabular-nums; }
.hw small { display: block; font-size: 13px; color: var(--muted); line-height: 1.45; }
.hw .warn { font-style: normal; color: #F2A07B; font-weight: 700; }
.hw__ring { display: flex; align-items: center; gap: 16px; }
.gring { --p: 0; flex: none; width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(from -90deg, #F7D9AA, #F5A896 calc(var(--p) * .35%), #EC8FC0 calc(var(--p) * .7%), #A993FF calc(var(--p) * 1%), var(--glass-3) calc(var(--p) * 1%)); transition: --p 1s var(--ios); }
.gring span { width: calc(100% - 16px); height: calc(100% - 16px); border-radius: 50%; background: var(--bg-2); display: grid; place-items: center; font-family: var(--display); font-weight: 700; font-size: 18px; letter-spacing: -.02em; }
.gring--lg { width: 96px; height: 96px; }
.hw__bars { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; align-items: end; height: 84px; padding-top: 4px; }
.hw__bars > div { position: relative; height: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 2px; border-bottom: 1px solid var(--line-2); }
.hw__bars i { display: block; width: 44%; height: max(3px, var(--h)); border-radius: 5px 5px 2px 2px; transform-origin: 50% 100%; animation: bar-up .9s var(--ios) both; }
.hw__bars i.p { background: linear-gradient(180deg, #F5A896, #A993FF); opacity: .85; }
.hw__bars i.a { background: repeating-linear-gradient(135deg, var(--text) 0 2px, transparent 2px 5px); border: 1px solid var(--text); }
.hw__bars > div.now::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--text); }
@keyframes bar-up { from { transform: scaleY(0); } }
.pipe, .gmini { display: grid; gap: 8px; }
.pipe > div, .gmini > div { display: grid; grid-template-columns: 64px 1fr 34px; align-items: center; gap: 10px; font-size: 13px; }
.gmini > div { grid-template-columns: minmax(0, 1.2fr) 1fr 40px; }
.gmini span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-2); }
.pipe span { color: var(--text-2); font-weight: 600; }
.pipe i, .gmini i { position: relative; height: 8px; border-radius: 99px; background: var(--glass-3); overflow: hidden; }
.pipe i::after, .gmini i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: inherit; background: linear-gradient(90deg, #F5A896, #EC8FC0, #A993FF); animation: bar-grow 1s var(--ios) both; }
@keyframes bar-grow { from { width: 0; } }
.pipe b, .gmini b { text-align: right; font-variant-numeric: tabular-nums; }
.dots { display: grid; grid-template-columns: repeat(14, 1fr); gap: 5px; margin-top: 4px; }
.dots i { aspect-ratio: 1; border-radius: 50%; background: var(--glass-3); border: 1px solid var(--line); }
.dots i.on { background: linear-gradient(135deg, #F7D9AA, #EC8FC0 60%, #A993FF); border-color: transparent; box-shadow: 0 0 10px -2px rgba(236, 143, 192, .7); }
.dots i.now { outline: 2px solid var(--text-2); outline-offset: 1px; }
.sbadge { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; background: var(--glass-3); color: var(--text-2); }
.sbadge--paid { background: rgba(94, 214, 160, .16); color: #7FE0B4; }
.sbadge--sent { background: rgba(246, 201, 142, .16); color: #F6C98E; }
.sbadge--over { background: rgba(240, 120, 130, .16); color: #F4919A; }
.sbadge--draft { background: var(--glass-3); color: var(--muted); }
.light .sbadge--paid { color: #1F8A5B; } .light .sbadge--sent { color: #A0661A; } .light .sbadge--over { color: #B8343F; }
.mtable tr.is-best td { background: rgba(169, 147, 255, .08); }
.ptable .input--sm { width: 96px; }
.tips { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-top: 14px; }
.tips > div { display: grid; gap: 6px; align-content: start; padding: 14px 16px; border-radius: 18px; border: 1px dashed var(--line-2); font-size: 13.5px; }
.tips b { font-size: 14px; }
.tips span { color: var(--text-2); line-height: 1.5; }
.tips .chip { justify-self: start; }
.cbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 14px 0; }
.cbar .btn { margin-left: auto; }
.board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 10px; overflow-x: auto; padding-bottom: 8px; scroll-snap-type: x proximity; }
.board__col { display: grid; grid-template-rows: auto 1fr; gap: 10px; padding: 12px; border-radius: 22px; background: var(--glass); border: 1px solid var(--line); min-height: 260px; scroll-snap-align: start; transition: background .3s, border-color .3s, box-shadow .3s; }
.board__col.is-over { background: rgba(169, 147, 255, .1); border-color: rgba(169, 147, 255, .5); box-shadow: 0 0 0 4px rgba(169, 147, 255, .12); }
.board__col header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 2px 4px; }
.board__col header span { font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.board__list { display: grid; gap: 8px; align-content: start; }
.board__empty { margin: 0; padding: 18px; text-align: center; font-size: 13px; color: var(--muted); border: 1.5px dashed var(--line-2); border-radius: 16px; }
.bcard { display: grid; gap: 4px; padding: 12px 12px 10px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); cursor: grab; transition: transform .4s var(--spring), box-shadow .3s, opacity .3s; animation: hw-in .5s var(--ios) both; }
.bcard:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -18px rgba(0, 0, 0, .8); }
.bcard.is-drag { opacity: .4; transform: scale(.97); }
.bcard b { font-size: 14.5px; }
.bcard small { font-size: 12.5px; color: var(--muted); }
.bcard .bcard__next { color: var(--text-2); }
.bcard.is-due { border-color: rgba(246, 201, 142, .5); }
.bcard.is-due .bcard__next { color: #F6C98E; font-weight: 700; }
.bcard__act { display: grid; grid-template-columns: 30px 1fr 30px; gap: 6px; margin-top: 6px; }
.bcard__act .chip { justify-content: center; padding: 5px 8px; }
.goals { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.goal { position: relative; display: flex; align-items: center; gap: 16px; padding: 18px; border-radius: 24px; background: var(--card); border: 1px solid var(--line); animation: hw-in .6s var(--ios) both; }
.goal.is-hit { border-color: rgba(94, 214, 160, .45); background: linear-gradient(145deg, rgba(94, 214, 160, .08), var(--card) 60%); }
.goal.is-hit .gring span { color: #7FE0B4; font-size: 26px; }
.goal__b { display: grid; gap: 3px; min-width: 0; }
.goal__b b { font-size: 15.5px; }
.goal__b span { font-family: var(--display); font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
.goal__b small { font-size: 12.5px; color: var(--muted); }
.goal__step { display: flex; gap: 6px; margin-top: 4px; }
.goal__x { position: absolute; top: 10px; right: 12px; width: 26px; height: 26px; border-radius: 50%; color: var(--muted); opacity: .5; transition: opacity .3s, background .3s; }
.goal__x:hover { opacity: 1; background: var(--glass-3); }
.dedit { display: grid; gap: 16px; padding: clamp(16px, 2.5vw, 26px); border-radius: 26px; background: var(--card); border: 1px solid var(--line); }
.dedit__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dedit__top b { font-size: 17px; }
.dedit__grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.dedit .input { height: 46px; }
.dedit textarea.input { height: auto; padding: 12px 14px; line-height: 1.5; resize: vertical; }
.dlines { display: grid; gap: 8px; }
.dline { display: grid; grid-template-columns: minmax(0, 1fr) 76px 112px 110px 34px; gap: 8px; align-items: center; }
.dline--h span { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.dline b { text-align: right; font-variant-numeric: tabular-nums; }
.dline .chip { justify-content: center; padding: 6px; }
.dedit__add { display: flex; flex-wrap: wrap; gap: 8px; }
.dedit__add select { max-width: 340px; }
.dedit__foot { display: grid; gap: 16px; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: start; }
.dtot { display: grid; gap: 10px; padding: 14px 16px; border-radius: 18px; background: var(--glass); border: 1px solid var(--line); }
.dtot__in { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dtot__in label { display: grid; gap: 6px; font-size: 12px; font-weight: 700; color: var(--muted); }
[data-dtot] { display: grid; gap: 6px; font-variant-numeric: tabular-nums; }
[data-dtot] > div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--text-2); }
.dtot__big { padding-top: 8px; border-top: 1px solid var(--line-2); font-size: 20px !important; color: var(--text) !important; }
.dtot__big b { font-family: var(--display); letter-spacing: -.02em; }
.dedit__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.dview__bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.dview__act { display: flex; flex-wrap: wrap; gap: 8px; }
.qdoc-wrap { animation: hw-in .6s var(--ios) both; }
@media (max-width: 700px) {
  .dline { grid-template-columns: 1fr 1fr 1fr 34px; }
  .dline > input[data-lf="d"] { grid-column: 1 / -1; }
  .dline--h { display: none; }
  .dedit__foot { grid-template-columns: 1fr; }
  .cbar .btn { margin-left: 0; }
  .board { grid-auto-columns: minmax(78%, 1fr); }
  .hw__big { font-size: 26px; }
}

/* ---------- Statement, comparison, nav pill (v3.3) ---------- */
.manifesto { padding-block: clamp(70px, 11vw, 150px); }
.fill { margin: 0 auto; max-width: 21ch; font-family: var(--display); font-weight: 700; font-size: clamp(32px, 5vw, 72px); line-height: 1.08; letter-spacing: -.035em; text-align: center; text-wrap: balance; }
.fill em { font-style: normal; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fill.is-split em { background: none; color: inherit; }
.fill.is-split .fw { opacity: .14; will-change: opacity; }
.fill.is-split em .fw { background: var(--grad); background-size: 400% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; }
.fill.is-split em .fw:nth-child(2n) { background-position: 35% 0; } .fill.is-split em .fw:nth-child(3n) { background-position: 70% 0; }
.cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 1040px; margin: 0 auto; }
.cmp__col { position: relative; overflow: hidden; padding: clamp(20px, 3vw, 34px); border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--glass); }
.cmp__col--kit { background: linear-gradient(160deg, rgba(169, 147, 255, .12), rgba(236, 143, 192, .06) 45%, var(--glass) 80%); border-color: rgba(169, 147, 255, .35); box-shadow: 0 30px 80px -40px rgba(169, 147, 255, .45); }
.cmp h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 22px; }
.cmp h3 .ic { width: 22px; height: 22px; }
.cmp__col--alone h3 { color: var(--muted); }
.cmp ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cmp li { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 15.5px; line-height: 1.45; }
.cmp li:first-child { border-top: 0; }
.cmp__col--alone li { color: var(--muted); }
.cmp__x, .cmp__ok { position: relative; flex: none; width: 24px; height: 24px; margin-top: -1px; border-radius: 50%; }
.cmp__x { background: rgba(255, 255, 255, .05); border: 1px solid var(--line-2); }
.cmp__x::before, .cmp__x::after { content: ""; position: absolute; left: 6px; right: 6px; top: 50%; height: 1.5px; background: var(--muted); border-radius: 2px; transform: rotate(45deg) scaleX(0); transition: transform .5s var(--ios) calc(.15s + var(--i) * .12s); }
.cmp__x::after { transform: rotate(-45deg) scaleX(0); }
.cmp.in .cmp__x::before { transform: rotate(45deg) scaleX(1); } .cmp.in .cmp__x::after { transform: rotate(-45deg) scaleX(1); }
.cmp__col--alone li::after { content: ""; position: absolute; left: 36px; right: 20%; top: 50%; height: 1px; background: currentColor; opacity: .35; transform: scaleX(0); transform-origin: 0 50%; transition: transform .7s var(--ios) calc(.35s + var(--i) * .12s); }
.cmp.in .cmp__col--alone li::after { transform: scaleX(1); }
.cmp__ok { display: grid; place-items: center; background: var(--grad); box-shadow: 0 6px 16px -6px rgba(236, 143, 192, .7); transform: scale(.4); opacity: 0; transition: transform .6s var(--spring) calc(.55s + var(--i) * .12s), opacity .3s calc(.55s + var(--i) * .12s); }
.cmp__ok svg { width: 15px; height: 15px; fill: none; stroke: #16131D; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset .5s var(--ios) calc(.75s + var(--i) * .12s); }
.cmp.in .cmp__ok { transform: none; opacity: 1; } .cmp.in .cmp__ok svg { stroke-dashoffset: 0; }
.cmp__col--kit li { opacity: .35; transition: opacity .6s var(--ios) calc(.55s + var(--i) * .12s); }
.cmp.in .cmp__col--kit li { opacity: 1; }
@media (max-width: 760px) { .cmp { grid-template-columns: 1fr; } .cmp__col--alone li::after { right: 10%; } }
.nav__links { position: relative; }
.nav__links a { z-index: 1; }
.nav__pill { position: absolute; left: 0; top: 0; height: 100%; width: 0; border-radius: 999px; background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--line); opacity: 0; pointer-events: none; transition: transform .5s var(--ios), width .5s var(--ios), opacity .3s; }
.nav__links.has-pill a:hover, .nav__links.has-pill a.on { background: transparent; }

/* ---------- Vivid Studio (member view) ---------- */
.stv__hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 24px; align-items: center; padding: clamp(20px, 3vw, 34px); border-radius: 28px; background: linear-gradient(150deg, rgba(169, 147, 255, .16), rgba(236, 143, 192, .08) 45%, var(--card) 80%); border: 1px solid rgba(169, 147, 255, .28); }
.stv__copy h3 { margin: 8px 0 10px; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.15; letter-spacing: -.02em; }
.stv__copy p { color: var(--text-2); margin: 0 0 18px; }
.stv__demo { display: grid; place-items: center; }
.stv__phone { position: relative; width: min(210px, 100%); aspect-ratio: 9 / 16; border-radius: 28px; overflow: hidden; background: #111; box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .9), 0 0 0 6px rgba(255, 255, 255, .06); transform: rotate(3deg); animation: stv-float 6s ease-in-out infinite; }
.stv__bg { position: absolute; inset: -20%; background: radial-gradient(40% 35% at 30% 30%, #F5A896, transparent 70%), radial-gradient(45% 40% at 70% 60%, #A993FF, transparent 70%), radial-gradient(40% 35% at 40% 85%, #EC8FC0, transparent 70%), #1B1526; filter: blur(8px); animation: stv-bg 9s ease-in-out infinite alternate; }
.stv__cap { position: absolute; left: 8%; right: 8%; top: 62%; text-align: center; font: 900 19px/1.15 Montserrat, "Bricolage Grotesque", sans-serif; text-transform: uppercase; color: #fff; -webkit-text-stroke: 4px #000; paint-order: stroke fill; }
.stv__cap span { display: inline-block; animation: stv-word 3.6s infinite; }
.stv__cap span:nth-child(2) { animation-delay: .6s; } .stv__cap span:nth-child(3) { animation-delay: 1.2s; } .stv__cap span:nth-child(4) { animation-delay: 1.8s; } .stv__cap span:nth-child(5) { animation-delay: 2.4s; } .stv__cap span:nth-child(6) { animation-delay: 3s; }
.stv__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(255, 255, 255, .2); }
.stv__bar i { display: block; height: 100%; width: 0; background: var(--grad); animation: stv-bar 3.6s linear infinite; }
@keyframes stv-word { 0%, 16% { color: #FFD400; transform: scale(1.14); } 20%, 100% { color: #fff; transform: none; } }
@keyframes stv-bar { to { width: 100%; } }
@keyframes stv-float { 50% { transform: rotate(1deg) translateY(-8px); } }
@keyframes stv-bg { to { transform: translate3d(6%, -4%, 0) rotate(10deg); } }
.stv-y { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(94, 214, 160, .16); color: #7FE0B4; }
.stv-y .ic { width: 15px; height: 15px; }
.stv-n { color: var(--muted); } .stv-t { font-size: 12.5px; font-weight: 650; }
@media (max-width: 760px) { .stv__hero { grid-template-columns: 1fr; } .stv__phone { width: 170px; } }
/* Vivid Studio on every device (home page) */
.cs-dev { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; margin-top: clamp(40px, 6vw, 80px); }
.cs-dev__copy h3 { margin: 10px 0 10px; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.08; letter-spacing: -.03em; }
.cs-dev__copy p { margin: 0; color: var(--text-2); max-width: 54ch; }
.cs-dev__feat { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.cs-dev__feat li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; background: var(--glass-2); border: 1px solid var(--line); font-size: 13px; font-weight: 600; }
.cs-dev__feat .ic { width: 14px; height: 14px; color: #7FE0B4; }
.cs-dev__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.cs-dev__list li { display: grid; justify-items: center; gap: 10px; padding: clamp(16px, 2.4vw, 26px) 10px; border-radius: 22px; background: var(--glass); border: 1px solid var(--line); text-align: center; opacity: 0; transform: translate3d(0, 18px, 0) scale(.96); transition: opacity .6s var(--ease), transform .8s var(--spring), border-color .3s; transition-delay: calc(var(--i) * 70ms); }
.cs-dev.is-in .cs-dev__list li { opacity: 1; transform: none; }
.cs-dev__list li:hover { border-color: var(--line-2); }
.cs-dev__list span { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--grad); color: #16131D; box-shadow: 0 14px 30px -14px rgba(236, 143, 192, .8); }
.cs-dev.is-play .cs-dev__list span { animation: cs-dev-bob 4.8s ease-in-out infinite; animation-delay: calc(var(--i) * -.8s); }
.cs-dev__list .ic { width: 24px; height: 24px; }
.cs-dev__list b { font-size: 14.5px; }
@keyframes cs-dev-bob { 50% { transform: translateY(-5px); } }
@media (max-width: 860px) { .cs-dev { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .cs-dev__list { gap: 8px; } .cs-dev__list span { width: 44px; height: 44px; border-radius: 13px; } }
@media (prefers-reduced-motion: reduce) { .cs-dev__list li { opacity: 1; transform: none; transition: none; } .cs-dev__list span { animation: none !important; } }
/* Vivid Studio on every device (member area) */
.stapp { margin-top: 18px; padding: clamp(18px, 3vw, 30px); border-radius: 28px; border: 1px solid var(--line-2); background: radial-gradient(70% 90% at 100% 0%, rgba(236, 143, 192, .1), transparent 60%), var(--card); }
.stapp__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; }
.stapp__head h3 { margin: 8px 0 8px; font-size: clamp(21px, 2.2vw, 28px); line-height: 1.15; letter-spacing: -.02em; }
.stapp__head p { margin: 0; color: var(--text-2); max-width: 62ch; }
.stapp__feat { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.stapp__feat li { padding: 5px 12px; border-radius: 99px; background: var(--glass-2); border: 1px solid var(--line); font-size: 13px; font-weight: 600; }
.stapp__qr { display: grid; justify-items: center; gap: 8px; width: 170px; text-align: center; }
.stapp__qr small { color: var(--muted); font-size: 12px; line-height: 1.35; }
.stapp__code { width: 148px; height: 148px; padding: 12px; border-radius: 20px; background: #fff; box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .7); }
.stapp__code svg { display: block; width: 100%; height: 100%; }
.stapp__code:empty { background: linear-gradient(100deg, #eee, #fafafa, #eee); background-size: 200% 100%; animation: shimmer 1.2s linear infinite; }
.stapp__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin-top: 20px; }
.stapp__dev { display: grid; gap: 4px; align-content: start; padding: 16px; border-radius: 20px; background: var(--glass); border: 1px solid var(--line); transition: transform .5s var(--spring), border-color .3s; }
.stapp__dev:hover { transform: translateY(-3px); border-color: var(--line-2); }
.stapp__dev > span { width: 40px; height: 40px; margin-bottom: 6px; border-radius: 12px; display: grid; place-items: center; background: var(--grad); color: #16131D; }
.stapp__dev > span svg { width: 20px; height: 20px; }
.stapp__dev b { font-size: 15.5px; } .stapp__dev small { color: var(--muted); font-size: 13px; line-height: 1.45; }
.stapp__row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.stapp__row .btn svg { width: 15px; height: 15px; margin-right: 4px; vertical-align: -2px; }
@media (max-width: 760px) { .stapp__head { grid-template-columns: 1fr; } .stapp__qr { display: none; } }


/* ---------- Vivid Studio (home) ---------- */
.cs-sec { position: relative; overflow: hidden; }
.cs-sec::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(45% 55% at 78% 45%, rgba(169, 147, 255, .16), transparent 70%), radial-gradient(40% 50% at 20% 60%, rgba(245, 168, 150, .1), transparent 70%); }
.cs-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 5vw, 70px); align-items: center; }
.cs-copy { display: grid; gap: 18px; justify-items: start; }
.cs-copy h2 { margin: 0; }
.cs-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cs-list li { display: flex; gap: 10px; align-items: flex-start; color: var(--text-2); }
.cs-list .ic { flex: none; width: 20px; height: 20px; margin-top: 2px; color: #F5A896; }
.cs-demo { position: relative; display: grid; place-items: center; min-height: 520px; }
.cs-phone { width: min(280px, 70vw); border-radius: 36px; }
.cs-phone .stv__cap { font-size: 26px; }
.cs-title { position: absolute; left: 50%; top: 13%; z-index: 2; transform: translateX(-50%); padding: 8px 14px; border-radius: 14px; background: rgba(16, 14, 24, .62); border: 1px solid rgba(255, 255, 255, .2); color: #fff; font: 800 14px/1.2 Poppins, "Bricolage Grotesque", sans-serif; white-space: nowrap; animation: cs-title 3.6s var(--ios) infinite; }
@keyframes cs-title { 0% { opacity: 0; transform: translate(-50%, -14px); } 12%, 70% { opacity: 1; transform: translate(-50%, 0); } 85%, 100% { opacity: 0; transform: translate(-50%, -8px); } }
.cs-float { position: absolute; z-index: 3; display: grid; padding: 12px 16px; border-radius: 18px; background: var(--glass-2); border: 1px solid var(--line-2); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); box-shadow: 0 20px 50px -24px rgba(0, 0, 0, .8); animation: cs-float 6s ease-in-out infinite; }
.cs-float b { font-family: var(--display); font-size: 18px; letter-spacing: -.02em; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cs-float small { color: var(--text-2); font-size: 12.5px; }
.cs-float--a { left: 2%; top: 16%; } .cs-float--b { right: 0; top: 44%; animation-delay: -2s; } .cs-float--c { left: 6%; bottom: 12%; animation-delay: -4s; } .cs-float--d { right: 4%; bottom: 6%; animation-delay: -6s; }
@keyframes cs-float { 50% { transform: translateY(-12px); } }
.cs-langs { margin-top: clamp(30px, 5vw, 60px); position: relative; z-index: 2; }
.cs-langs .marquee__item { font-size: clamp(18px, 2.2vw, 26px); }
@media (max-width: 900px) { .cs-grid { grid-template-columns: 1fr; } .cs-demo { min-height: 460px; } .cs-float--b { right: 2%; } }

/* ---------- Motion off ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .js [data-reveal] { opacity: 1; transform: none; filter: none; }
  .w > span, .js [data-split]:not(.in):not([data-split="now"]) .w > span { animation: none !important; transform: none !important; }
  .marquee__track, .btn--brass, .badge--hot { animation: none; }
  .ern__bars i, .ern__big, .ern__val { transform: none !important; opacity: 1 !important; }
  .hw, .bcard, .goal, .qdoc-wrap, .hw__bars i { animation: none !important; }
  .stv__phone, .stv__bg, .stv__cap span, .stv__bar i, .cs-title, .cs-float { animation: none !important; }
  .cmp__x::before, .cmp__x::after, .cmp__col--alone li::after, .cmp__ok, .cmp__ok svg, .cmp__col--kit li { transition: none !important; }
}

/* ---------- Page transitions (supporting browsers) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vt-out .2s var(--ios) both; }
::view-transition-new(root) { animation: vt-in .5s .12s var(--ios) both; }
@keyframes vt-out { to { opacity: 0; transform: scale(.985); } }
@keyframes vt-in { from { opacity: 0; transform: translate3d(0, 14px, 0); } }

/* ---------- Motion layer 2: rolling labels, magnets, masks, zoom panels, kinetic type, studio showcase ---------- */
.roll { display: inline-grid; overflow: hidden; line-height: 1.25; height: 1.25em; }
.roll > span { grid-area: 1 / 1; transition: transform .55s var(--ios); }
.roll__b { transform: translateY(110%); }
.btn:hover .roll__a { transform: translateY(-110%); }
.btn:hover .roll__b { transform: none; }
.mag-back { transition: translate .6s var(--spring), transform .45s var(--ios), box-shadow .45s var(--ios), background .3s !important; }
.mask { clip-path: inset(10% 8% 10% 8% round 40px); transition: clip-path 1.3s var(--ios); }
.mask.mask-in { clip-path: inset(0 0 0 0 round 0px); }
@supports (animation-timeline: scroll()) {
  h1 em, h2 em, h3 em, .grad { animation: sp-drift linear both; animation-timeline: scroll(root block); }
}
@keyframes sp-drift { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }

.kin { position: relative; padding: clamp(40px, 7vw, 90px) 0; overflow: hidden; display: grid; gap: clamp(6px, 1.2vw, 14px); }
.kin__row { white-space: nowrap; }
.kin__track { display: inline-flex; align-items: center; gap: clamp(18px, 3vw, 44px); will-change: transform; }
.kin__track span { font-family: var(--display); font-weight: 800; font-size: clamp(56px, 11vw, 168px); line-height: .95; letter-spacing: -.045em; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.kin__track span.o { background: linear-gradient(180deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .06)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.kin__track i { font-style: normal; font-size: clamp(22px, 3vw, 40px); color: #F5A896; }
.kin--auto .kin__track { animation: kin-slide 40s linear infinite; }
.kin__row[data-kin="1"].kin--auto .kin__track { animation-direction: reverse; }
@keyframes kin-slide { to { transform: translateX(-33.33%); } }

.vs-wrap { position: relative; z-index: 2; margin-top: clamp(40px, 6vw, 80px); }
.vs-show { --vsl: rgba(255, 255, 255, .08); position: relative; border-radius: 26px; overflow: hidden; background: #0B0A10; border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 60px 140px -50px rgba(0, 0, 0, .9), 0 0 0 1px rgba(169, 147, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .06); transform-origin: 50% 20%; will-change: transform; font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.vs-show.zp-static { transform: none; }
.vs-show__top { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; border-bottom: 1px solid var(--vsl); background: rgba(20, 18, 28, .9); }
.vs-show__top > i { width: 11px; height: 11px; border-radius: 50%; background: #3A3446; } .vs-show__top > i:nth-child(1) { background: #FF5F57; } .vs-show__top > i:nth-child(2) { background: #FEBC2E; } .vs-show__top > i:nth-child(3) { background: #28C840; }
.vs-show__top b { margin-left: 8px; color: #fff; font-size: 13px; font-weight: 700; }
.vs-show__tabs { display: flex; gap: 4px; margin: 0 auto; } .vs-show__tabs em { font-style: normal; font-size: 11.5px; font-weight: 650; color: rgba(255, 255, 255, .45); padding: 5px 10px; border-radius: 8px; }
.vs-show__tabs em.on { background: rgba(255, 255, 255, .08); color: #fff; }
.vs-show__exp { padding: 6px 12px; border-radius: 10px; font-size: 12px; font-weight: 750; color: #16131D; background: var(--grad); background-size: 200% 100%; }
.vs-show.is-play .vs-show__exp { animation: vs-flow 4s linear infinite; }
@keyframes vs-flow { to { background-position: 200% 0; } }
.vs-show__body { display: grid; grid-template-columns: 54px 230px minmax(0, 1fr); height: clamp(260px, 30vw, 380px); }
.vs-show__rail { position: relative; display: grid; align-content: start; gap: 10px; padding: 14px 12px; border-right: 1px solid var(--vsl); }
.vs-show__rail i { width: 30px; height: 30px; border-radius: 9px; background: rgba(255, 255, 255, .06); position: relative; z-index: 1; }
.vs-pill { position: absolute; left: 10px; top: 12px; width: 34px; height: 34px; border-radius: 10px; background: rgba(245, 168, 150, .22); box-shadow: inset 0 0 0 1px rgba(245, 168, 150, .5); }
.vs-show.is-play .vs-pill { animation: vs-pill 8s var(--ios) infinite; }
@keyframes vs-pill { 0%, 20% { transform: translateY(0); } 25%, 45% { transform: translateY(80px); } 50%, 70% { transform: translateY(160px); } 75%, 95% { transform: translateY(40px); } 100% { transform: translateY(0); } }
.vs-show__panel { display: grid; align-content: start; gap: 10px; padding: 14px; border-right: 1px solid var(--vsl); background: #100E16; }
.vs-show__panel small { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .4); }
.vs-wheels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.vs-wheels i { position: relative; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(from 90deg, #FF4D4D, #FF4FD8, #3C7BFF, #3CE0E0, #4CD964, #FFE14D, #FF4D4D); -webkit-mask: radial-gradient(circle, #000 64%, transparent 66%); mask: radial-gradient(circle, #000 64%, transparent 66%); }
.vs-wheels i::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle, #1B1726 8%, rgba(27, 23, 38, 0) 70%); }
.vs-wheels b { position: absolute; left: 50%; top: 50%; z-index: 2; width: 10px; height: 10px; margin: -5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px #16131D; }
.vs-show.is-play .vs-wheels i:nth-child(1) b { animation: vs-orbit 7s var(--ios) infinite; } .vs-show.is-play .vs-wheels i:nth-child(2) b { animation: vs-orbit 7s -2.3s var(--ios) infinite reverse; } .vs-show.is-play .vs-wheels i:nth-child(3) b { animation: vs-orbit 7s -4.6s var(--ios) infinite; }
@keyframes vs-orbit { 0% { transform: rotate(0deg) translateX(0) rotate(0deg); } 30% { transform: rotate(40deg) translateX(14px) rotate(-40deg); } 60% { transform: rotate(200deg) translateX(10px) rotate(-200deg); } 100% { transform: rotate(360deg) translateX(0) rotate(-360deg); } }
.vs-sl { display: grid; gap: 11px; }
.vs-sl span { position: relative; height: 4px; border-radius: 4px; background: linear-gradient(90deg, #F5A896, #A993FF); opacity: .85; }
.vs-sl i { position: absolute; top: 50%; left: 0; width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .5); transform: translateX(var(--a)); }
.vs-sl span { --tw: 180px; }
.vs-show.is-play .vs-sl i { animation: vs-slide 5s var(--ios) infinite alternate; }
.vs-sl span:nth-child(2) i { animation-delay: -1.2s !important; } .vs-sl span:nth-child(3) i { animation-delay: -2.4s !important; } .vs-sl span:nth-child(4) i { animation-delay: -3.6s !important; }
@keyframes vs-slide { from { left: var(--a); transform: none; } to { left: var(--b); transform: none; } }
.vs-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; } .vs-chips em { font-style: normal; font-size: 10.5px; font-weight: 700; padding: 5px 9px; border-radius: 99px; background: rgba(255, 255, 255, .07); color: rgba(255, 255, 255, .75); }
.vs-chips em:first-child { background: rgba(236, 143, 192, .2); color: #F9C6DF; }
.vs-show__stage { position: relative; display: grid; place-items: center; background: radial-gradient(70% 70% at 50% 45%, #1A1624, #0B0A10); }
.vs-frame { position: relative; height: 88%; aspect-ratio: 9 / 16; border-radius: 16px; overflow: hidden; background: #111; box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .08); }
.vs-vid { position: absolute; inset: -30%; background: radial-gradient(35% 30% at 30% 35%, #F5A896, transparent 70%), radial-gradient(40% 35% at 70% 65%, #A993FF, transparent 70%), radial-gradient(40% 35% at 40% 80%, #3FB8A3, transparent 70%), #2A2238; }
.vs-vid--b { opacity: 0; background: radial-gradient(35% 30% at 65% 30%, #F7D9AA, transparent 70%), radial-gradient(40% 35% at 25% 70%, #EC8FC0, transparent 70%), #1D1A2A; }
.vs-show.is-play .vs-vid { animation: vs-drift 8s var(--ios) infinite; } .vs-show.is-play .vs-vid--b { animation: vs-drift 8s var(--ios) infinite reverse, vs-cut 8s steps(1) infinite; }
@keyframes vs-drift { 50% { transform: translate3d(6%, -4%, 0) scale(1.08) rotate(6deg); } }
@keyframes vs-cut { 0%, 37% { opacity: 0; } 38%, 62% { opacity: 1; } 63%, 100% { opacity: 0; } }
.vs-grade { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0, 190, 200, .28), rgba(255, 140, 60, .22)); mix-blend-mode: soft-light; }
.vs-wipe { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; background: #fff; box-shadow: 0 0 12px rgba(255, 255, 255, .8); opacity: 0; }
.vs-show.is-play .vs-wipe { animation: vs-wipe 8s var(--ios) infinite; }
@keyframes vs-wipe { 0%, 64% { opacity: 0; transform: translateX(0); } 66% { opacity: 1; } 78% { opacity: 1; transform: translateX(1000%); } 80%, 100% { opacity: 0; transform: translateX(1000%); } }
.vs-hook { position: absolute; left: 8%; right: 8%; top: 12%; text-align: center; padding: 7px 8px; border-radius: 10px; background: rgba(16, 14, 24, .62); border: 1px solid rgba(255, 255, 255, .2); color: #fff; font: 800 11px/1.2 Poppins, "Bricolage Grotesque", sans-serif; opacity: 0; }
.vs-show.is-play .vs-hook { animation: vs-hook 8s var(--ios) infinite; }
@keyframes vs-hook { 0%, 4% { opacity: 0; transform: translateY(-10px) scale(.9); } 9%, 34% { opacity: 1; transform: none; } 38%, 100% { opacity: 0; transform: translateY(-6px); } }
.vs-caps { position: absolute; left: 6%; right: 6%; top: 62%; text-align: center; font: 900 15px/1.15 Montserrat, "Bricolage Grotesque", sans-serif; text-transform: uppercase; color: #fff; -webkit-text-stroke: 3px #000; paint-order: stroke fill; }
.vs-caps span { display: inline-block; }
.vs-show.is-play .vs-caps span { animation: vs-word 2.4s infinite; } .vs-caps span:nth-child(2) { animation-delay: .6s !important; } .vs-caps span:nth-child(3) { animation-delay: 1.2s !important; } .vs-caps span:nth-child(4) { animation-delay: 1.8s !important; }
@keyframes vs-word { 0% { color: #fff; transform: scale(1); } 6% { color: #FFD400; transform: scale(1.22); } 22% { color: #FFD400; transform: scale(1); } 26%, 100% { color: #fff; } }
.vs-sticker { position: absolute; right: 10%; top: 38%; font-style: normal; font-size: 26px; opacity: 0; }
.vs-show.is-play .vs-sticker { animation: vs-stick 8s var(--spring) infinite; }
@keyframes vs-stick { 0%, 30% { opacity: 0; transform: scale(.2) rotate(-30deg); } 35%, 60% { opacity: 1; transform: scale(1) rotate(8deg); } 47% { transform: scale(1.1) rotate(-6deg); } 64%, 100% { opacity: 0; transform: scale(.4); } }
.vs-follow { position: absolute; left: 50%; bottom: 10%; padding: 6px 12px; margin-left: -34px; border-radius: 99px; background: var(--grad); color: #16131D; font: 800 10px/1 Poppins, sans-serif; font-style: normal; opacity: 0; }
.vs-show.is-play .vs-follow { animation: vs-follow 8s var(--spring) infinite; }
@keyframes vs-follow { 0%, 66% { opacity: 0; transform: scale(.4); } 71%, 94% { opacity: 1; transform: scale(1); } 80% { transform: scale(1.12); } 98%, 100% { opacity: 0; } }
.vs-show__tl { position: relative; display: grid; gap: 6px; padding: 8px 14px 14px; border-top: 1px solid var(--vsl); background: #0F0D15; }
.vs-ruler { display: flex; justify-content: space-between; font-size: 9.5px; color: rgba(255, 255, 255, .35); font-variant-numeric: tabular-nums; padding-bottom: 2px; }
.vs-track { position: relative; height: 22px; border-radius: 7px; background: rgba(255, 255, 255, .025); }
.vs-track--m { height: 40px; } .vs-track--a { height: 24px; } .vs-track--l { height: 20px; }
.vs-it { position: absolute; top: 0; bottom: 0; left: var(--l); width: calc(var(--w) - .5%); display: flex; align-items: center; gap: 4px; padding: 0 8px; border-radius: 6px; overflow: hidden; font-style: normal; font-size: 10.5px; font-weight: 650; color: #fff; white-space: nowrap; }
.vs-it--t { background: #8E7BFF; } .vs-it--s { background: #F08A6E; } .vs-it--c { background: rgba(201, 103, 154, .55); }
.vs-it--m { background: linear-gradient(120deg, var(--c1), var(--c2)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.vs-it--m::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; background: repeating-linear-gradient(90deg, rgba(150, 200, 255, .5) 0 1px, transparent 1px 3px); opacity: .6; }
.vs-it--a { background: #4F8EEA; gap: 1.5%; padding: 3px 8px; }
.vs-it--a b { display: block; flex: 1; height: var(--h); background: rgba(255, 255, 255, .45); border-radius: 1px; }
.vs-kf { position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; background: #fff; transform: rotate(45deg); }
.vs-show .vs-it { opacity: 0; transform: translateX(40px); }
.vs-show.is-in .vs-it { animation: vs-in .9s var(--ios) both; animation-delay: calc(var(--i) * 70ms + .2s); }
@keyframes vs-in { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
.vs-show.is-play .vs-kf { animation: vs-kf 1.6s ease-in-out infinite; }
@keyframes vs-kf { 50% { transform: rotate(45deg) scale(1.5); box-shadow: 0 0 10px #fff; } }
.vs-phw { position: absolute; left: 14px; right: 14px; top: 26px; bottom: 14px; pointer-events: none; }
.vs-ph { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; }
.vs-ph::before { content: ""; position: absolute; left: 0; top: -4px; bottom: 0; width: 2px; background: #fff; box-shadow: 0 0 10px rgba(255, 255, 255, .6); }
.vs-ph::after { content: ""; position: absolute; left: -6px; top: -8px; border: 7px solid transparent; border-top: 9px solid #fff; }
.vs-show.is-play .vs-ph { animation: vs-play 8s linear infinite; }
@keyframes vs-play { from { transform: translateX(0); } to { transform: translateX(100%); } }
/* site-wide: iOS screen entrance, soft masks, tap feedback */
.ios-in { animation: ios-in .95s calc(var(--n, 0) * 85ms + .08s) var(--ios) both; }
@keyframes ios-in { from { opacity: 0; transform: translate3d(0, 26px, 0) scale(.985); filter: blur(6px); } }
.mask--soft { clip-path: inset(6% 6% 6% 6% round 18px); transition-duration: .9s; }
.mask--soft.mask-in { clip-path: inset(0 0 0 0 round 0px); }
@media (hover: none) {
  .btn, .chip, .item, .hs-card, .lesson, .tier, .road__step, .faq summary, .nav a, .menu a { transition: scale .35s var(--spring), transform .45s var(--ios), background .3s, box-shadow .3s, opacity .3s; }
  .btn:active, .chip:active, .item:active, .hs-card:active, .lesson:active, .tier:active, .road__step:active, .faq summary:active, .menu a:active { scale: .965; transition-duration: .12s; }
}
@media (max-width: 900px) {
  .vs-show__body { grid-template-columns: 0 0 minmax(0, 1fr); height: 300px; }
  .vs-show__rail, .vs-show__panel { overflow: hidden; padding: 0; border: 0; }
  .vs-show__tabs em:not(.on) { display: none; }
  .vs-track--c { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .roll > span, .mask { transition: none !important; } .mask { clip-path: none !important; } .ios-in { animation: none !important; }
  .vs-show *, .kin__track { animation: none !important; } .vs-show .vs-it, .vs-hook { opacity: 1 !important; transform: none !important; }
}
