/* ==========================================================
   Высшая школа знакомств — тёмная тема (navy + gold)
   ========================================================== */
:root{
  --fh:'Cormorant Garamond',Georgia,serif; --fb:'Lora',Georgia,serif; --fhand:'Caveat',cursive;
  --hs:1.12; --wl:300; --wb:600; --bs:1;
  --ease:cubic-bezier(.2,.8,.2,1); --ease2:cubic-bezier(.65,0,.35,1);
  --r:26px; --r2:18px; --wrap:1240px;
  --red:#c4705f; --green:#7fb08f;
}
/* dark palette (also used by .island blocks) */
:root{
  --bg:#080d18; --bg2:#0c1322; --navy:#0e1a33; --navy2:#13213f;
  --card:rgba(255,255,255,.035); --cardh:rgba(255,255,255,.06);
  --line:rgba(201,179,138,.2); --line2:rgba(255,255,255,.08);
  --gold:#c9b38a; --gold2:#e8dec8; --gold3:#9c8660; --gold-rgb:201,179,138;
  --ink:#f2ede3; --t2:#c4c5c9; --t3:#8b909c; --t4:#5d6371;
  --grad:linear-gradient(180deg,#e9dcbd 0%,#c9b088 100%);
  --acc:#d8c49c; --gradt:linear-gradient(var(--acc),var(--acc));
  --btn-ink:#16120a;
  --glass:rgba(11,18,33,.74); --glass2:rgba(11,18,33,.97);
  --field:rgba(255,255,255,.035); --fd1:rgba(242,237,227,.42); --fd2:rgba(242,237,227,.42);
  --shadow:0 30px 70px -30px rgba(0,0,0,.75); --shadow2:0 50px 90px -40px rgba(0,0,0,.9);
  --particle:232,222,198; --light:rgba(214,196,160,.10);
  --island-bg:linear-gradient(150deg,#101a30,#0a1222 60%);
  --btnbg:linear-gradient(180deg,#ece0c4,#cdb48b); --btnfg:#14110a;
  --fate-bg:radial-gradient(80% 60% at 70% 40%,#13213f,#080d18 70%); --ft-bg:radial-gradient(90% 70% at 80% 0%,#15254a,#080d18 65%);
  --bgfx:radial-gradient(60% 50% at 80% 0%,rgba(46,70,120,.32),transparent 70%),radial-gradient(50% 40% at 0% 30%,rgba(201,179,138,.05),transparent 70%),radial-gradient(70% 60% at 50% 110%,rgba(24,44,90,.4),transparent 70%),#080d18;
}
html[data-theme="light"]{
  --bg:#f6f1e8; --bg2:#eee6d8; --navy:#14213d; --navy2:#1c2c4d;
  --card:rgba(255,255,255,.7); --cardh:#fff;
  --line:rgba(160,126,68,.26); --line2:rgba(20,33,61,.09);
  --gold:#a5834a; --gold2:#87672f; --gold3:#6f5426; --gold-rgb:165,131,74;
  --ink:#14213d; --t2:#454a5b; --t3:#757987; --t4:#a4a7b1;
  --grad:linear-gradient(180deg,#d9c193 0%,#b39258 100%);
  --acc:#94713a; --gradt:linear-gradient(var(--acc),var(--acc));
  --btn-ink:#1b1408;
  --glass:rgba(250,247,241,.8); --glass2:rgba(251,249,244,.98);
  --field:rgba(20,33,61,.035); --fd1:rgba(20,33,61,.36); --fd2:rgba(20,33,61,.36);
  --shadow:0 30px 60px -34px rgba(70,52,22,.28); --shadow2:0 50px 90px -46px rgba(70,52,22,.38);
  --particle:165,131,74; --light:rgba(214,180,120,.22);
  --island-bg:linear-gradient(150deg,#fffdf8,#f3ebdc 70%);
  --btnbg:linear-gradient(180deg,#22325a,#14213d); --btnfg:#fbf6ec;
  --fate-bg:radial-gradient(80% 60% at 70% 40%,#fffaf0,#efe5d3 75%); --ft-bg:linear-gradient(180deg,#f1e8d8,#e9dcc6);
  --bgfx:radial-gradient(60% 55% at 85% 0%,rgba(222,196,150,.35),transparent 70%),radial-gradient(50% 40% at 0% 35%,rgba(170,190,225,.18),transparent 70%),radial-gradient(70% 60% at 50% 110%,rgba(222,200,160,.3),transparent 70%),#f6f1e8;
}
.island{color:var(--t2);background:var(--island-bg)}
html[data-font="playfair"]{--fh:'Playfair Display',Georgia,serif;--fb:'PT Serif',Georgia,serif;--hs:.9;--wl:400;--wb:700;--bs:1}
html[data-font="onest"]{--fh:'Onest',system-ui,sans-serif;--fb:'Onest',system-ui,sans-serif;--hs:.88;--wl:300;--wb:600;--bs:.97}
html[data-font="manrope"]{--fh:'Manrope',system-ui,sans-serif;--fb:'Manrope',system-ui,sans-serif;--hs:.86;--wl:300;--wb:700;--bs:.96}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;overflow-x:clip;background:var(--bg);color:var(--t2);font-family:var(--fb);font-size:calc(17px*var(--bs,1)*var(--bsz,1));line-height:var(--blh,1.68);font-weight:var(--bw,400);letter-spacing:var(--bls,0);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-decoration:none;transition:color .25s}
a:hover{color:var(--gold2)}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
::selection{background:rgba(var(--gold-rgb),.35);color:#fff}
h1,h2,h3,h4{font-family:var(--fh);color:var(--ink);margin:0;font-weight:var(--wl);line-height:1.08;letter-spacing:-.01em}
p{margin:0 0 1em}
b,strong{color:var(--ink);font-weight:600}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}

/* backdrop: glow + grain */
.bgfx{position:fixed;inset:0;z-index:-2;pointer-events:none;background:var(--bgfx);transition:background .6s}
.grain{position:fixed;inset:-50%;z-index:-1;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 8s steps(10) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}}

/* ---------- preloader ---------- */
.preloader{position:fixed;inset:0;z-index:999;background:var(--bg);display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
.preloader.done{opacity:0;visibility:hidden}
.preloader svg{width:180px;overflow:visible}
.preloader path{fill:none;stroke:url(#pg);stroke-width:3;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520;animation:pdraw 1.6s var(--ease2) forwards}
.preloader .pl-t{font-family:var(--fh);letter-spacing:.5em;color:var(--gold);text-align:center;font-size:13px;margin-top:22px;opacity:0;animation:fadeup 1s .6s var(--ease) forwards;text-transform:uppercase}
@keyframes pdraw{to{stroke-dashoffset:0}}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- cursor ---------- */
.cur,.cur-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:998;border-radius:50%;transform:translate(-50%,-50%)}
.cur{width:6px;height:6px;background:var(--gold2);box-shadow:0 0 14px 2px rgba(var(--gold-rgb),.7)}
.cur-ring{width:38px;height:38px;border:1px solid rgba(var(--gold-rgb),.5);transition:width .35s var(--ease),height .35s var(--ease),background .35s,border-color .35s}
.cur-ring.big{width:74px;height:74px;background:rgba(var(--gold-rgb),.08);border-color:rgba(var(--gold-rgb),.8)}
.cur-glow{position:fixed;left:0;top:0;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:-1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(var(--gold-rgb),.07),transparent 65%)}
@media (hover:none),(max-width:900px){.cur,.cur-ring,.cur-glow{display:none}}

/* ---------- scroll progress ---------- */
.sprog{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:200;background:var(--grad);box-shadow:0 0 12px rgba(var(--gold-rgb),.8)}

/* ---------- promo bar ---------- */
.promo{position:relative;z-index:60;background:linear-gradient(90deg,#0d1830,#16274a,#0d1830);border-bottom:1px solid var(--line);overflow:hidden;height:38px;display:flex;align-items:center}
.promo__track{display:flex;gap:56px;white-space:nowrap;animation:marquee 38s linear infinite;font-size:13px;letter-spacing:.06em;color:var(--t2);padding-left:56px}
.promo__track span{display:inline-flex;align-items:center;gap:14px}
.promo__track span::before{content:"✦";color:var(--gold);font-size:11px}
.promo__track b{color:var(--gold2);font-weight:600}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- header ---------- */
.hdr{position:sticky;top:14px;z-index:100;padding:0 18px;transition:transform .5s var(--ease)}
.hdr.hide{transform:translateY(-150%)}
.hdr__in{position:relative;max-width:1420px;margin:14px auto 0;display:flex;align-items:center;gap:28px;height:78px;padding:0 14px 0 26px;border-radius:999px;
  background:var(--glass);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid var(--line);box-shadow:var(--shadow);transition:background .5s,border-color .5s}
.hdr.scrolled .hdr__in{height:68px}
.logo{display:flex;align-items:center;gap:14px;color:var(--ink);flex:0 0 auto}
.logo img{height:42px;width:auto;transition:transform .6s var(--ease)}
.logo:hover img{transform:rotate(-4deg) scale(1.06)}
.logo__t{font-family:var(--fh);font-size:15px;letter-spacing:.16em;text-transform:uppercase;line-height:1.2;color:var(--ink)}
.logo__t small{display:block;font-size:9.5px;letter-spacing:.26em;color:var(--t3);margin-top:3px}
html[data-theme="light"] .on-dark,html:not([data-theme="light"]) .on-light{display:none}

.nav{position:relative;display:flex;gap:2px;margin:0 auto;height:100%;align-items:center}
.nav>a,.nav>button{position:relative;height:48px;padding:0 18px;border-radius:999px;font-size:15px;color:var(--t2);display:inline-flex;align-items:center;gap:8px;transition:color .3s;font-family:var(--fb);z-index:1;white-space:nowrap}
.nav>a:hover,.nav>button:hover,.nav>button.on,.nav>a.on{color:var(--ink)}
.nav>button svg{width:10px;transition:transform .4s var(--ease);opacity:.6}
.nav>button.on svg{transform:rotate(180deg)}
.nav__pill{position:absolute;top:50%;height:48px;border-radius:999px;background:rgba(var(--gold-rgb),.13);border:1px solid rgba(var(--gold-rgb),.25);transform:translateY(-50%);opacity:0;transition:left .45s var(--ease),width .45s var(--ease),opacity .3s;pointer-events:none;z-index:0}
.hdr__right{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.hdr__phone{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--ink);white-space:nowrap;font-family:var(--fb);padding:0 8px}
.hdr__phone i{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-style:normal;color:var(--gold);transition:.3s}
.hdr__phone:hover i{background:var(--gold);color:var(--bg)}
.hdr__phone small{display:block;font-size:11px;color:var(--t3);line-height:1.2}
.theme-btn{position:relative;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold);overflow:hidden;transition:border-color .3s,background .3s}
.theme-btn:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.1)}
.theme-btn svg{position:absolute;width:20px;height:20px;transition:transform .7s var(--ease),opacity .5s}
.theme-btn .sun{transform:translateY(0) rotate(0)}.theme-btn .moon{transform:translateY(40px) rotate(-90deg);opacity:0}
html:not([data-theme="light"]) .theme-btn .sun{transform:translateY(-40px) rotate(90deg);opacity:0}
html:not([data-theme="light"]) .theme-btn .moon{transform:none;opacity:1}
.burger{display:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);place-items:center}
.burger span{display:block;width:18px;height:1.5px;background:var(--ink);position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:var(--ink);transition:.3s}
.burger span::before{top:-6px}.burger span::after{top:6px}
@media(max-width:1600px){.hdr__phone span{display:none}.hdr__phone{padding:0}}
.btn .short{display:none}
@media(max-width:1520px){.hdr .btn .full{display:none}.hdr .btn .short{display:inline}.hdr__in{gap:18px}}
@media(max-width:1240px){.logo__t{display:none}.nav>a,.nav>button{padding:0 14px}}
@media(max-width:1060px){.nav,.hdr__phone{display:none}.burger{display:grid}.hdr__right{margin-left:auto}.hdr .btn--sm{display:none}.hdr__in{height:66px}.logo__t{display:block}}

/* ---------- mega menu ---------- */
.mega-wrap{position:absolute;left:0;right:0;top:100%;padding:12px 18px 0;pointer-events:none}
.mega{position:absolute;left:18px;right:18px;top:12px;max-width:1420px;margin:0 auto;border-radius:34px;background:var(--glass2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--line);box-shadow:var(--shadow2);
  clip-path:inset(0 0 100% 0 round 34px);opacity:0;visibility:hidden;transition:clip-path .7s var(--ease),opacity .4s,visibility 0s .7s;overflow:hidden}
.mega.open{clip-path:inset(0 0 0 0 round 34px);opacity:1;visibility:visible;pointer-events:auto;transition:clip-path .7s var(--ease),opacity .3s,visibility 0s}
.mega::before{content:"";position:absolute;inset:0;background:radial-gradient(520px circle at var(--mx,50%) var(--my,0%),rgba(var(--gold-rgb),.16),transparent 55%);pointer-events:none}
.mega__in{position:relative;display:grid;grid-template-columns:1fr 2.1fr 1.1fr;gap:44px;padding:46px 50px}
.mega__intro .eyebrow{margin-bottom:16px}
.mega__intro h3{font-size:calc(40px*var(--hs));line-height:1.05;margin-bottom:16px}
.mega__intro p{font-size:15px;color:var(--t3);margin-bottom:22px}
.mega__links{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;align-content:start}
.mega__links.three{grid-template-columns:repeat(3,1fr)}
.mlink{position:relative;display:flex;gap:16px;align-items:flex-start;padding:16px 16px;border-radius:20px;color:var(--ink);transition:background .35s,transform .45s var(--ease)}
.mlink i{flex:0 0 44px;height:44px;border-radius:14px;display:grid;place-items:center;font-style:normal;font-size:17px;color:var(--gold);background:rgba(var(--gold-rgb),.1);border:1px solid rgba(var(--gold-rgb),.2);transition:.45s var(--ease)}
.mlink b{display:block;font-family:var(--fh);font-size:calc(21px*var(--hs));font-weight:var(--wb);line-height:1.15;color:var(--ink)}
.mlink small{display:block;font-size:13.5px;color:var(--t3);line-height:1.4;margin-top:4px}
.mlink:hover{background:rgba(var(--gold-rgb),.08);color:var(--ink);transform:translateX(6px)}
.mlink:hover i{background:var(--gold);color:var(--bg);transform:rotate(-10deg) scale(1.08)}
.mlink::after{content:"→";position:absolute;right:16px;top:50%;transform:translate(-8px,-50%);opacity:0;color:var(--gold);transition:.4s var(--ease)}
.mlink:hover::after{opacity:1;transform:translate(0,-50%)}
.mega__group{grid-column:1/-1;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding:8px 16px 2px}
.mega__feat{position:relative;border-radius:26px;padding:30px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:300px;border:1px solid var(--line)}
.mega__feat .ring{position:absolute;right:-70px;top:-70px;width:240px;height:240px;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.3);box-shadow:0 0 0 30px rgba(var(--gold-rgb),.04),0 0 0 60px rgba(var(--gold-rgb),.03);animation:spin 40s linear infinite}
.mega__feat img.av{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:center 20%;border:1px solid var(--gold);margin-bottom:auto}
.mega__feat p{font-family:var(--fh);font-style:italic;font-size:calc(21px*var(--hs));line-height:1.35;color:var(--ink);margin:20px 0 14px}
.mega__feat .big{font-family:var(--fh);font-size:calc(64px*var(--hs));line-height:1;font-weight:var(--wl)}
.mega__posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mpost{display:block;border-radius:20px;overflow:hidden;border:1px solid var(--line2);background:var(--card);color:var(--ink);transition:.5s var(--ease)}
.mpost:hover{transform:translateY(-6px);border-color:var(--line);color:var(--ink)}
.mpost .post__cover{aspect-ratio:16/9}
.mpost b{display:block;padding:14px 16px 16px;font-family:var(--fh);font-size:calc(18px*var(--hs));line-height:1.2;font-weight:var(--wb)}
.mega [data-st]{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .6s var(--ease),transform .6s var(--ease),filter .6s var(--ease)}
.mega.open [data-st]{opacity:1;transform:none;filter:none;transition-delay:calc(var(--st)*45ms + 120ms)}
.mega-dim{position:fixed;inset:0;z-index:90;background:rgba(5,9,18,.35);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.5s var(--ease)}
html[data-theme="light"] .mega-dim{background:rgba(60,45,20,.12)}
.mega-dim.on{opacity:1;visibility:visible}
.mlevel{display:flex;gap:4px;margin-top:8px}.mlevel em{width:16px;height:3px;border-radius:3px;background:var(--line2)}.mlevel em.on{background:var(--gold)}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:150;background:var(--glass2);backdrop-filter:blur(20px);padding:22px 24px 40px;overflow:auto;opacity:0;visibility:hidden;transition:.45s var(--ease)}
.drawer.open{opacity:1;visibility:visible}
.drawer__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.drawer__close{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);font-size:22px;color:var(--ink)}
.drawer nav a{display:block;font-family:var(--fh);font-size:calc(30px*var(--hs));color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line2);opacity:0;transform:translateY(16px);transition:.5s var(--ease)}
.drawer.open nav a{opacity:1;transform:none}
.drawer nav a small{display:block;font-family:var(--fb);font-size:13px;color:var(--t3)}
.drawer nav .sub{padding-left:16px;font-size:calc(20px*var(--hs))}
.dgrp>button{display:flex;justify-content:space-between;align-items:center;width:100%;font-family:var(--fh);font-size:calc(30px*var(--hs));color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line2);text-align:left}
.dgrp>button i{font-style:normal;color:var(--gold);transition:transform .4s var(--ease)}
.dgrp.open>button i{transform:rotate(45deg)}
.dgrp>div{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.dgrp.open>div{grid-template-rows:1fr}
.dgrp>div>div{overflow:hidden}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:58px;padding:0 32px;border-radius:999px;font-family:var(--fb);font-size:15.5px;font-weight:500;letter-spacing:.01em;white-space:nowrap;overflow:hidden;isolation:isolate;transition:transform .35s var(--ease),box-shadow .35s,color .3s,background .3s}
.btn--gold{color:var(--btn-ink);background:var(--grad);box-shadow:0 14px 34px -16px rgba(var(--gold-rgb),.7),inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12)}
.btn--gold:hover{color:var(--btn-ink);box-shadow:0 20px 44px -14px rgba(var(--gold-rgb),.85),inset 0 1px 0 rgba(255,255,255,.6)}
.btn--gold::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .9s var(--ease)}
.btn--gold:hover::after{left:130%}
.btn::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120px circle at var(--bx,50%) var(--by,50%),rgba(255,255,255,.45),transparent 60%);opacity:0;transition:opacity .3s;z-index:-1;pointer-events:none}
.btn:hover::before{opacity:1}
@keyframes blick{0%,55%{left:-60%}100%{left:130%}}
@keyframes gshift{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.btn--ghost{color:var(--ink);border:1px solid rgba(var(--gold-rgb),.35);background:rgba(255,255,255,.02)}
.btn--ghost:hover{color:var(--bg);background:var(--gold);border-color:var(--gold)}
.btn--sm{height:46px;padding:0 22px;font-size:14px}
.btn .arr{display:inline-block;transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
.btn .pulse{position:absolute;inset:0;border-radius:inherit;z-index:-1}

/* ---------- typography helpers ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--fb);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.eyebrow::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.disp{font-size:calc(clamp(40px,5.8vw,86px)*var(--hs));line-height:1.0;letter-spacing:-.02em}
.h2{font-size:calc(clamp(34px,4.6vw,66px)*var(--hs));line-height:1.04;letter-spacing:-.015em;margin-bottom:26px}
.h3{font-size:calc(clamp(24px,2.2vw,32px)*var(--hs));line-height:1.15}
.lt{font-weight:var(--wl)}
.bd{font-weight:var(--wb)}
.gt{background:var(--gradt);-webkit-background-clip:text;background-clip:text;color:transparent}
.fd{background:linear-gradient(180deg,var(--fd1),var(--fd2));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:var(--wl)}
.it{font-style:italic}
.hand{font-family:var(--fhand);color:var(--gold2);font-size:26px;line-height:1.1}
.lead{font-size:calc(19px*var(--bs));color:var(--t2);max-width:640px}
.muted{color:var(--t3)}
.center{text-align:center}
.mx{margin-left:auto;margin-right:auto}

/* split words */
[data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
[data-split] .w>span{display:inline-block;transform:translateY(105%) rotate(4deg);opacity:0;filter:blur(6px);transition:transform 1s var(--ease),opacity 1s var(--ease),filter 1s var(--ease);transition-delay:calc(var(--i)*55ms)}
[data-split].in .w>span{transform:none;opacity:1;filter:none}
/* keep gradient on split spans */
.gt[data-split] .w>span,[data-split] .gt>span{background:var(--gradt);-webkit-background-clip:text;background-clip:text;color:transparent}
.fd[data-split] .w>span{background:linear-gradient(180deg,var(--fd1),var(--fd2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease);transition-delay:calc(var(--d,0)*1ms);filter:blur(4px)}
.rv.l{transform:translateX(-50px)}.rv.r{transform:translateX(50px)}.rv.s{transform:scale(.92)}
.rv.in{opacity:1;transform:none;filter:none}

/* ---------- sections ---------- */
.sec{position:relative;padding:130px 0}
.sec--tight{padding:90px 0}
.sec__head{max-width:860px;margin-bottom:60px}
.sec__head.center{margin-left:auto;margin-right:auto}
.panel{position:relative;max-width:calc(var(--wrap) + 80px);margin:0 auto;border-radius:44px;background:linear-gradient(180deg,rgba(19,33,62,.75),rgba(10,19,36,.4));border:1px solid var(--line);overflow:hidden}
.panel::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 100% 0%,rgba(var(--gold-rgb),.1),transparent 60%);pointer-events:none}
.divider{display:flex;align-items:center;gap:18px;color:var(--gold);max-width:560px;margin:0 auto}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--gold-rgb),.6),transparent)}
.star{display:inline-block;width:14px;height:14px;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.spark{animation:twinkle 3s ease-in-out infinite}
@keyframes twinkle{0%,100%{transform:scale(.7) rotate(0);opacity:.5}50%{transform:scale(1.15) rotate(45deg);opacity:1}}

/* ---------- HERO (home) ---------- */
.hero{position:relative;min-height:calc(100vh - 50px);padding:70px 0 0;overflow:hidden}
.hero__canvas{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:end;min-height:calc(100vh - 140px)}
.hero__txt{padding-bottom:110px}
.hero h1.seo{font-family:var(--fb);font-size:15px;font-weight:400;color:var(--t2);letter-spacing:.02em;margin-bottom:26px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hero h1.seo b{color:var(--gold2);font-weight:500}
.hero h1.seo .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(143,198,160,.6);animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(143,198,160,.55)}100%{box-shadow:0 0 0 12px rgba(143,198,160,0)}}
.hero .disp{margin-bottom:30px}
.hero__q{display:grid;gap:10px;margin:34px 0 38px;max-width:560px}
.hero__q p{margin:0;font-size:calc(19px*var(--bs));color:var(--ink)}
.hero__q p span{color:var(--gold2)}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero__note{position:absolute;right:4%;top:4%;transform:rotate(-6deg);text-align:right;z-index:4}
.hero__note svg{width:70px;margin:6px 0 0 auto;display:block;opacity:.8}
.hero__photo{position:relative;align-self:end;height:100%;display:flex;justify-content:center;align-items:flex-end}
.hero__photo img{position:relative;z-index:3;width:min(560px,100%);height:auto;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 98%),linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,#000 70%,transparent 98%),linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-composite:intersect}
.hero__halo{position:absolute;z-index:1;left:50%;bottom:12%;width:120%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(var(--gold-rgb),.28) 0%,rgba(var(--gold-rgb),.08) 35%,transparent 62%)}
.orbit{position:absolute;z-index:1;left:50%;bottom:22%;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.18);transform:translateX(-50%)}
.orbit.o1{width:520px;height:520px;animation:orbit 40s linear infinite}
.orbit.o2{width:760px;height:760px;animation:orbit 70s linear infinite reverse;border-style:dashed;border-color:rgba(var(--gold-rgb),.1)}
.orbit.o3{width:1020px;height:1020px;animation:orbit 110s linear infinite;border-color:rgba(var(--gold-rgb),.07)}
.orbit::after{content:"";position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--gold2);box-shadow:0 0 18px 4px rgba(var(--gold-rgb),.8)}
.orbit.o2::after{top:auto;bottom:-4px;width:7px;height:7px}
@keyframes orbit{from{transform:translateX(-50%) rotate(0)}to{transform:translateX(-50%) rotate(360deg)}}
.hero__inf{position:absolute;z-index:2;left:50%;bottom:30%;width:115%;transform:translateX(-50%);opacity:.55}
.hero__inf path{fill:none;stroke:url(#ig);stroke-width:1.4;stroke-dasharray:600;stroke-dashoffset:600;animation:pdraw 3.2s 1s var(--ease2) forwards}
.badge{position:absolute;z-index:5;padding:14px 18px;border-radius:20px;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:0 20px 40px -18px rgba(0,0,0,.7);display:flex;gap:12px;align-items:center;animation:bob 6s ease-in-out infinite}
.badge b{display:block;font-family:var(--fh);font-size:calc(30px*var(--hs));line-height:1;font-weight:var(--wb)}
.badge small{display:block;font-size:12.5px;color:var(--t3);line-height:1.3}
.badge i{flex:0 0 42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(var(--gold-rgb),.12);color:var(--gold);font-style:normal;font-size:20px}
.badge.b1{left:-4%;top:30%}
.badge.b2{right:-2%;top:48%;animation-delay:-2s}
.badge.b3{left:6%;bottom:14%;animation-delay:-4s}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -14px}}
.scrollhint{position:absolute;left:28px;bottom:28px;z-index:4;display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--t3)}
.scrollhint span{width:24px;height:38px;border-radius:14px;border:1px solid rgba(var(--gold-rgb),.4);position:relative}
.scrollhint span::after{content:"";position:absolute;left:50%;top:8px;width:3px;height:7px;border-radius:3px;background:var(--gold);transform:translateX(-50%);animation:wheel 1.8s infinite}
@keyframes wheel{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,14px)}}

/* ---------- page hero (inner) ---------- */
.phero{position:relative;padding:80px 0 90px;overflow:hidden}
.phero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:center}
.crumbs{font-size:13px;color:var(--t3);margin-bottom:26px;display:flex;gap:10px;flex-wrap:wrap}
.crumbs a{color:var(--t3)}.crumbs a:hover{color:var(--gold2)}
.phero h1{font-size:calc(clamp(36px,4.4vw,64px)*var(--hs));line-height:1.03;letter-spacing:-.02em;margin-bottom:28px}
.phero .lead{margin-bottom:34px}
.phero__side{position:relative}
.qcard{position:relative;padding:34px 32px 30px;border-radius:30px;background:var(--island-bg);border:1px solid var(--line);box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.qcard::before{content:"“";position:absolute;right:24px;top:-6px;font-family:Georgia,serif;font-size:140px;line-height:1;color:rgba(var(--gold-rgb),.22)}
.qcard p{font-family:var(--fh);font-style:italic;color:var(--ink);font-size:calc(21px*var(--hs));line-height:1.45}
.qcard__who{display:flex;gap:14px;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--line2)}
.qcard__who img{width:58px;height:58px;border-radius:50%;object-fit:cover;object-position:center 20%;border:1px solid var(--gold);background:var(--navy2)}
.qcard__who b{display:block;font-family:var(--fh);font-size:calc(20px*var(--hs))}
.qcard__who small{color:var(--t3);font-size:13px}

/* ---------- facts / counters ---------- */
.facts{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fact{padding:44px 22px;position:relative;border-right:1px solid var(--line)}
.fact:last-child{border-right:0}
.fact b{display:block;white-space:nowrap;font-family:var(--fh);font-weight:var(--wl);font-size:calc(clamp(34px,3.6vw,56px)*var(--hs));line-height:1;color:var(--ink);letter-spacing:-.02em;margin-bottom:12px;font-variant-numeric:tabular-nums}
.fact b em{font-style:normal;background:var(--gradt);-webkit-background-clip:text;background-clip:text;color:transparent}
.fact span{font-size:14px;color:var(--t3);line-height:1.4;display:block;max-width:200px}
.fact::before{content:"";position:absolute;left:0;top:0;height:1px;width:0;background:var(--gold);transition:width 1.6s var(--ease)}
.fact.in::before{width:100%}

/* ---------- marquee band ---------- */
.band{padding:28px 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(10,19,36,.6);transform:rotate(-1.5deg);margin:40px -20px}
.band__track{display:flex;gap:46px;white-space:nowrap;animation:marquee 45s linear infinite;width:max-content}
.band__track span{font-family:var(--fh);font-size:calc(clamp(28px,3vw,44px)*var(--hs));color:var(--ink);display:inline-flex;align-items:center;gap:46px;font-weight:var(--wl)}
.band__track span i{font-style:italic;color:var(--gold2)}
.band__track span::after{content:"";width:16px;height:16px;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.band.rev .band__track{animation-direction:reverse}

/* ---------- "not where but how" ---------- */
.how{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.vs{display:grid;gap:14px}
.vs__row{display:grid;grid-template-columns:1fr 40px 1fr;align-items:center;gap:12px}
.vs__no,.vs__yes{padding:18px 20px;border-radius:18px;font-size:15.5px;line-height:1.35;display:flex;gap:12px;align-items:center}
.vs__no{background:rgba(217,122,108,.06);border:1px solid rgba(217,122,108,.18);color:var(--t3);text-decoration:line-through;text-decoration-color:rgba(217,122,108,.6)}
.vs__yes{background:rgba(var(--gold-rgb),.08);border:1px solid rgba(var(--gold-rgb),.3);color:var(--ink)}
.vs__no::before{content:"✕";color:var(--red);text-decoration:none;display:inline-block}
.vs__yes::before{content:"✓";color:var(--gold);font-weight:700}
.vs__arr{display:grid;place-items:center;color:var(--gold)}
.vs__row.solo{grid-template-columns:1fr}
.vs__row.solo .vs__yes{justify-content:center}
.inout{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}
.inout>div{padding:30px;border-radius:24px;border:1px solid var(--line2);background:var(--card)}
.inout h4{font-size:calc(26px*var(--hs));margin-bottom:12px}
.inout .out{border-color:rgba(var(--gold-rgb),.35);background:linear-gradient(160deg,rgba(var(--gold-rgb),.14),rgba(var(--gold-rgb),.02))}

/* ---------- quote banner (scroll-scrub) ---------- */
.qb{position:relative;padding:140px 0;text-align:center;overflow:hidden}
.qb__mark{font-family:Georgia,serif;font-size:200px;line-height:.6;color:rgba(var(--gold-rgb),.25);display:block;margin-bottom:10px}
.qb__t{font-family:var(--fh);font-size:calc(clamp(30px,4.2vw,62px)*var(--hs));line-height:1.18;color:var(--ink);max-width:1100px;margin:0 auto;font-weight:var(--wl);letter-spacing:-.01em}
.scrub .sw{opacity:.14;transition:opacity .3s,color .3s,text-shadow .3s}
.scrub .sw.on{opacity:1}
.scrub .sw.g.on{color:var(--gold2);text-shadow:0 0 30px rgba(var(--gold-rgb),.45)}
.qb__by{margin-top:36px;font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.qb::before{content:"";position:absolute;left:50%;top:50%;width:900px;height:900px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(var(--gold-rgb),.09),transparent 60%);pointer-events:none}

/* ---------- founder ---------- */
.founder{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}
.founder__ph{position:relative;border-radius:36px;overflow:hidden;aspect-ratio:4/5;background:radial-gradient(80% 70% at 50% 100%,rgba(var(--gold-rgb),.35),rgba(19,33,62,.9) 60%,var(--bg2));border:1px solid var(--line)}
.founder__ph img{position:absolute;left:50%;top:5%;height:108%;width:auto;max-width:none;transform:translateX(-50%);transition:transform 1.2s var(--ease)}
.founder__ph:hover img{transform:translateX(-50%) scale(1.04)}
.founder__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(6,12,24,.85))}
.founder__sig{position:absolute;left:28px;bottom:24px;z-index:2}
.founder__sig b{display:block;font-family:var(--fh);font-size:calc(30px*var(--hs));color:var(--ink);font-weight:var(--wb)}
.founder__sig small{color:var(--gold);font-size:13px;letter-spacing:.06em}
.founder__ring{position:absolute;right:-60px;top:-60px;width:220px;height:220px;z-index:2;animation:spin 30s linear infinite}
.founder__ring text{font-family:var(--fb);font-size:11.5px;letter-spacing:.32em;fill:var(--gold);text-transform:uppercase}
@keyframes spin{to{transform:rotate(360deg)}}
.pull{position:relative;padding:28px 30px 28px 34px;margin:30px 0;border-left:2px solid var(--gold);background:linear-gradient(90deg,rgba(var(--gold-rgb),.09),transparent);border-radius:0 20px 20px 0}
.pull p{font-family:var(--fh);font-style:italic;font-size:calc(24px*var(--hs));line-height:1.4;color:var(--ink);margin:0}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:44px;border-top:1px solid var(--line)}
.timeline div{padding:22px 18px 0 0;position:relative}
.timeline div::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(var(--gold-rgb),.15)}
.timeline b{display:block;font-family:var(--fh);font-size:calc(30px*var(--hs));color:var(--gold2);font-weight:var(--wb);line-height:1}
.timeline span{font-size:13.5px;color:var(--t3);line-height:1.4;display:block;margin-top:8px}

/* ---------- expander ---------- */
.exp{border-top:1px solid var(--line);margin-top:20px}
.exp__btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:20px 0;font-family:var(--fh);font-size:calc(22px*var(--hs));color:var(--ink);text-align:left;gap:20px}
.exp__btn i{flex:0 0 40px;height:40px;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.4);display:grid;place-items:center;transition:transform .5s var(--ease),background .3s;font-style:normal;color:var(--gold);font-size:20px}
.exp.open .exp__btn i{transform:rotate(45deg);background:var(--gold);color:var(--bg)}
.exp__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.exp.open .exp__body{grid-template-rows:1fr}
.exp__body>div{overflow:hidden}
.exp__body>div>div{padding:4px 0 26px}

/* ---------- cards ---------- */
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
.card{position:relative;padding:36px 32px;border-radius:var(--r);background:var(--card);border:1px solid var(--line2);overflow:hidden;transition:transform .6s var(--ease),border-color .4s,box-shadow .6s;transform-style:preserve-3d}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(var(--gold-rgb),.16),transparent 45%);opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover{border-color:rgba(var(--gold-rgb),.4);box-shadow:0 40px 80px -40px rgba(0,0,0,.9),0 0 0 1px rgba(var(--gold-rgb),.1)}
.card:hover::before{opacity:1}
.card h3{font-size:calc(28px*var(--hs));margin-bottom:14px;font-weight:var(--wb)}
.card p{font-size:15.5px;margin:0;color:var(--t2)}
.card__ic{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(160deg,rgba(var(--gold-rgb),.22),rgba(var(--gold-rgb),.04));border:1px solid rgba(var(--gold-rgb),.3);color:var(--gold2);margin-bottom:26px;transition:transform .6s var(--ease)}
.card__ic svg{width:26px;height:26px}
.card:hover .card__ic{transform:rotate(-8deg) scale(1.08)}
.card__n{position:absolute;right:20px;bottom:-40px;font-family:var(--fh);font-size:170px;line-height:1;font-weight:300;color:rgba(var(--gold-rgb),.07);transition:transform .7s var(--ease),color .5s;pointer-events:none}
.card:hover .card__n{transform:translateY(-14px);color:rgba(var(--gold-rgb),.14)}
.card__tag{display:inline-block;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding:6px 12px;border-radius:999px;border:1px solid rgba(var(--gold-rgb),.3);margin-bottom:18px}
.card__more{display:inline-flex;gap:10px;align-items:center;margin-top:22px;font-size:14.5px;color:var(--gold2)}
.card__more::after{content:"→";transition:transform .35s var(--ease)}
.card:hover .card__more::after{transform:translateX(6px)}
a.card{display:block;color:inherit}

/* skills */
.skills .card{padding-top:44px}
.skills .card .num{font-family:var(--fh);font-size:calc(17px*var(--hs));letter-spacing:.2em;color:var(--gold);display:block;margin-bottom:16px}

/* directions (home) */
.dirs{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}
.dirs .card:nth-child(1),.dirs .card:nth-child(2){grid-column:span 3;min-height:340px}
.dirs .card:nth-child(n+3){grid-column:span 2}
.dirs .card h3{font-size:calc(32px*var(--hs))}
.dirs .card:nth-child(1)::after,.dirs .card:nth-child(2)::after{content:"";position:absolute;right:-80px;bottom:-80px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.2);box-shadow:0 0 0 30px rgba(var(--gold-rgb),.03),0 0 0 60px rgba(var(--gold-rgb),.02);transition:transform 1s var(--ease)}
.dirs .card:hover::after{transform:scale(1.25)}

/* ---------- steps ---------- */
.steps{position:relative;display:grid;gap:0}
.steps__line{position:absolute;left:58px;top:0;bottom:0;width:1px;background:var(--line2)}
.steps__line i{position:absolute;left:0;top:0;width:1px;height:0;background:linear-gradient(180deg,var(--gold2),var(--gold3));box-shadow:0 0 10px rgba(var(--gold-rgb),.8)}
.step{position:relative;display:grid;grid-template-columns:120px 1fr;gap:30px;padding:36px 0;border-bottom:1px solid var(--line2)}
.step__n{font-family:var(--fh);font-weight:300;font-size:calc(84px*var(--hs));line-height:.9;color:transparent;-webkit-text-stroke:1px rgba(var(--gold-rgb),.6);position:relative;z-index:1;background:var(--bg);text-align:center;height:fit-content;transition:color .6s,-webkit-text-stroke .6s}
.step.in .step__n{color:var(--gold);-webkit-text-stroke:0}
.step h3{font-size:calc(clamp(24px,2.4vw,34px)*var(--hs));margin-bottom:10px;font-weight:var(--wb)}
.step h3 .lt{display:block;font-size:.62em;color:var(--t2);margin-top:6px;font-weight:var(--wl);line-height:1.35}
.step__res{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:16px 20px;border-radius:16px;background:rgba(var(--gold-rgb),.08);border:1px solid rgba(var(--gold-rgb),.22);color:var(--ink);font-size:15px}
.step__res::before{content:"★";color:var(--gold)}
.checks{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:10px}
.checks li{position:relative;padding-left:32px;font-size:15.5px}
.checks li::before{content:"";position:absolute;left:0;top:.45em;width:18px;height:18px;border-radius:50%;border:1px solid var(--gold);background:radial-gradient(circle,var(--gold) 0 3px,transparent 4px)}
.checks.two{grid-template-columns:1fr 1fr;gap:10px 26px}

/* ---------- comparison table ---------- */
.cmp{overflow-x:auto;border-radius:30px;border:1px solid var(--line);background:var(--card);-webkit-overflow-scrolling:touch;box-shadow:var(--shadow)}
.cmp table{width:100%;border-collapse:collapse;min-width:900px}
.cmp th,.cmp td{padding:24px 24px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line2);font-size:15px;line-height:1.5}
.cmp thead th{font-family:var(--fh);font-size:calc(22px*var(--hs));color:var(--ink);font-weight:var(--wb);border-bottom:1px solid var(--line)}
.cmp tbody th{font-family:var(--fb);font-size:14px;letter-spacing:.04em;color:var(--t3);font-weight:500;width:19%}
.cmp .us{position:relative;background:linear-gradient(180deg,rgba(var(--gold-rgb),.12),rgba(var(--gold-rgb),.04));color:var(--ink)}
.cmp thead .us{color:var(--gold2)}
.cmp thead .us small{display:block;font-family:var(--fb);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:400}
.cmp td.us::before{content:"✓";color:var(--gold);margin-right:8px;font-weight:700}
.cmp td:not(.us){color:var(--t3)}
.cmp tr:last-child td,.cmp tr:last-child th{border-bottom:0}
.cmp tbody tr{transition:background .3s}
.cmp tbody tr:hover{background:rgba(255,255,255,.02)}

/* ---------- programs ---------- */
.progs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch}
.prog{min-width:0;position:relative;display:flex;flex-direction:column;padding:34px 28px 30px;border-radius:30px;background:var(--card);border:1px solid var(--line2);transition:transform .6s var(--ease),box-shadow .6s,border-color .4s}
.prog:hover{transform:translateY(-10px);border-color:rgba(var(--gold-rgb),.45);box-shadow:0 50px 80px -40px rgba(0,0,0,.9)}
.prog__lvl{display:flex;gap:5px;margin-bottom:22px}
.prog__lvl i{width:22px;height:4px;border-radius:4px;background:var(--line2)}
.prog__lvl i.on{background:var(--gold)}
.prog h3{font-size:calc(clamp(26px,2.3vw,34px)*var(--hs));overflow-wrap:anywhere;font-weight:var(--wb);margin-bottom:8px}
.prog__sub{font-size:14px;color:var(--t3);margin-bottom:22px;min-height:42px}
.prog ul{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:10px;flex:1;align-content:start}
.prog li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.45}
.prog li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.prog__res{font-size:14px;color:var(--ink);padding-top:18px;border-top:1px solid var(--line2);margin-bottom:22px}
.prog__res b{color:var(--gold2)}
.prog .btn{width:100%}
.prog.hot{background:linear-gradient(170deg,rgba(var(--gold-rgb),.16),var(--card) 45%);border-color:rgba(var(--gold-rgb),.5)}
.prog.hot::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--a,0deg),transparent 0 60%,var(--gold2) 75%,transparent 90%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rot 5s linear infinite;pointer-events:none}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes rot{to{--a:360deg}}
.prog__flag{position:absolute;top:-13px;left:28px;padding:6px 14px;border-radius:999px;background:var(--grad);color:var(--btn-ink);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}

/* ---------- vetting stages ---------- */
.vet{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:v}
.vet .card{padding:30px 26px}
.vet .card::after{counter-increment:v;content:"0" counter(v);position:absolute;top:22px;right:24px;font-family:var(--fh);font-size:calc(22px*var(--hs));color:var(--gold)}
.vet .card h3{font-size:calc(24px*var(--hs));margin:60px 0 12px}
.vet__bar{position:absolute;left:26px;top:34px;height:1px;width:40%;background:linear-gradient(90deg,var(--gold),transparent)}

/* ---------- guarantee banner ---------- */
.gban{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center;padding:44px 50px;border-radius:36px;background:linear-gradient(120deg,rgba(var(--gold-rgb),.18),rgba(19,33,62,.6) 50%,rgba(var(--gold-rgb),.08));border:1px solid rgba(var(--gold-rgb),.4);overflow:hidden}
.gban__seal{width:130px;height:130px;position:relative;display:grid;place-items:center}
.gban__seal svg{position:absolute;inset:0;animation:spin 24s linear infinite}
.gban__seal b{font-family:var(--fh);font-size:calc(44px*var(--hs));color:var(--gold2);font-weight:var(--wb);line-height:1}
.gban h3{font-size:calc(34px*var(--hs));margin-bottom:10px;font-weight:var(--wb)}
.gban p{margin:0}

/* ---------- reviews ---------- */
.revs{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.revs__track{display:flex;gap:22px;width:max-content;animation:marquee 70s linear infinite;padding:10px 0}
.revs:hover .revs__track{animation-play-state:paused}
.rev{width:420px;flex:0 0 auto;padding:30px;border-radius:26px;background:var(--card);border:1px solid var(--line2);transition:transform .5s var(--ease),border-color .4s}
.rev:hover{transform:translateY(-8px) rotate(-.6deg);border-color:rgba(var(--gold-rgb),.45)}
.rev__top{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.rev__av{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-family:var(--fh);font-size:22px;font-weight:600;color:var(--btn-ink);background:var(--grad)}
.rev__top b{display:block;font-family:var(--fh);font-size:calc(22px*var(--hs))}
.rev__stars{color:var(--gold);letter-spacing:2px;font-size:13px}
.rev p{font-size:15px;margin:0;color:var(--t2)}
.rating{display:inline-flex;gap:18px;align-items:center;padding:14px 22px;border-radius:999px;border:1px solid var(--line);background:var(--card)}
.rating b{font-family:var(--fh);font-size:calc(32px*var(--hs));line-height:1}

/* ---------- FAQ ---------- */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.faq__side{position:sticky;top:120px}
.faq__list .exp:first-child{border-top:0}
.faq__list .exp{border-top:1px solid var(--line2)}
.faq__list .exp__btn{font-size:calc(23px*var(--hs));padding:26px 0}
.faq__list .exp__body p{color:var(--t2);font-size:16px;max-width:720px}

/* ---------- forms / CTA ---------- */
.cta{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;padding:70px 64px;border-radius:44px;overflow:hidden;background:var(--island-bg);border:1px solid rgba(var(--gold-rgb),.35);color:var(--t2)}
.cta::before{content:"";position:absolute;right:-200px;top:-200px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(var(--gold-rgb),.28),transparent 60%);animation:blob 12s ease-in-out infinite}
.cta::after{content:"";position:absolute;left:-150px;bottom:-250px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(60,96,170,.35),transparent 60%);animation:blob 14s ease-in-out infinite reverse}
@keyframes blob{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-40px) scale(1.08)}66%{transform:translate(-30px,20px) scale(.95)}}
.cta>*{position:relative;z-index:1}
.cta h2{font-size:calc(clamp(32px,3.8vw,54px)*var(--hs));margin-bottom:20px}
.form{display:grid;gap:12px;padding:30px;border-radius:30px;background:rgba(255,255,255,.03);backdrop-filter:blur(10px);border:1px solid var(--line)}
.field{position:relative}
.field input,.field select,.field textarea{width:100%;height:60px;padding:22px 22px 6px;border-radius:18px;border:1px solid var(--line2);background:var(--field);color:var(--ink);font:inherit;font-size:16px;outline:none;transition:border-color .3s,box-shadow .3s,background .3s}
.field label{position:absolute;left:22px;top:19px;font-size:15px;color:var(--t3);pointer-events:none;transition:.25s var(--ease)}
.field input:focus,.field input:not(:placeholder-shown){border-color:rgba(var(--gold-rgb),.6);box-shadow:0 0 0 4px rgba(var(--gold-rgb),.08);background:rgba(var(--gold-rgb),.04)}
.field input:focus+label,.field input:not(:placeholder-shown)+label{top:8px;font-size:11.5px;color:var(--gold);letter-spacing:.05em}
.form .btn{width:100%;margin-top:6px}
.form__note{font-size:12px;color:var(--t4);text-align:center;line-height:1.5;margin:4px 0 0}
.form__msg{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.form__msg a{flex:1;min-width:110px;display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:14px;border:1px solid var(--line2);font-size:14px;color:var(--ink);transition:.3s}
.form__msg a:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.08);color:var(--gold2)}
.form.ok>*:not(.form__ok){display:none}
.form__ok{display:none;text-align:center;padding:30px 10px}
.form.ok .form__ok{display:block;animation:fadeup .6s var(--ease)}
.form__ok .tick{width:76px;height:76px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:var(--btn-ink);font-size:34px;animation:pop .6s var(--ease)}
@keyframes pop{from{transform:scale(.3) rotate(-30deg)}to{transform:none}}
.form__ok h4{font-size:calc(28px*var(--hs));margin-bottom:8px}
.bul{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:12px}
.bul li{display:flex;gap:14px;align-items:flex-start;color:var(--ink)}
.bul li::before{content:"";flex:0 0 22px;height:22px;margin-top:3px;border-radius:50%;background:var(--grad);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-1.6 17.2-5-5 1.7-1.7 3.3 3.3 7.3-7.3 1.7 1.7z'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-1.6 17.2-5-5 1.7-1.7 3.3 3.3 7.3-7.3 1.7 1.7z'/></svg>") center/contain no-repeat}

/* strip CTA */
.strip{display:flex;gap:30px;align-items:center;justify-content:space-between;padding:34px 44px;border-radius:30px;border:1px solid rgba(var(--gold-rgb),.3);background:linear-gradient(90deg,rgba(var(--gold-rgb),.12),rgba(19,33,62,.5));flex-wrap:wrap}
.strip p{margin:0;font-family:var(--fh);font-size:calc(26px*var(--hs));color:var(--ink);line-height:1.25;max-width:720px}

/* ---------- quiz ---------- */
.quiz{display:grid;grid-template-columns:.8fr 1.2fr;gap:0;border-radius:44px;overflow:hidden;border:1px solid var(--line);background:var(--card)}
.quiz__side{padding:56px 48px;background:linear-gradient(160deg,rgba(var(--gold-rgb),.16),rgba(var(--gold-rgb),.02));border-right:1px solid var(--line);position:relative;overflow:hidden}
.quiz__side .gift{position:absolute;right:-30px;bottom:-30px;width:220px;opacity:.9;animation:bob 6s ease-in-out infinite}
.quiz__main{padding:56px 52px;min-height:520px;display:flex;flex-direction:column}
.quiz__prog{display:flex;justify-content:space-between;font-size:13px;color:var(--t3);margin-bottom:12px;letter-spacing:.08em}
.quiz__bar{height:3px;border-radius:3px;background:var(--line2);margin-bottom:40px;overflow:hidden}
.quiz__bar i{display:block;height:100%;width:0;background:var(--grad);transition:width .6s var(--ease)}
.quiz__q{font-family:var(--fh);font-size:calc(34px*var(--hs));color:var(--ink);margin-bottom:28px;line-height:1.15}
.quiz__opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quiz__opt{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:20px 22px;border-radius:18px;border:1px solid var(--line2);background:rgba(255,255,255,.02);text-align:left;font-size:15.5px;color:var(--ink);transition:.35s var(--ease);animation:qpop .5s var(--ease) both;animation-delay:calc(var(--i)*60ms)}
.quiz__opt::after{content:"";width:20px;height:20px;border-radius:50%;border:1px solid var(--t4);flex:0 0 auto;transition:.3s}
.quiz__opt:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.08);transform:translateY(-3px)}
.quiz__opt:hover::after{border-color:var(--gold);background:radial-gradient(circle,var(--gold) 0 5px,transparent 6px)}
@keyframes qpop{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.quiz__back{margin-top:auto;padding-top:26px;font-size:14px;color:var(--t3);align-self:flex-start}
.quiz__back:hover{color:var(--gold2)}

/* ---------- blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post{display:flex;flex-direction:column;border-radius:28px;overflow:hidden;background:var(--card);border:1px solid var(--line2);color:inherit;transition:transform .6s var(--ease),border-color .4s,box-shadow .6s}
.post:hover{transform:translateY(-10px);border-color:rgba(var(--gold-rgb),.45);box-shadow:0 40px 70px -40px rgba(0,0,0,.9);color:inherit}
.post__cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(90% 90% at 30% 20%,var(--c1,#22386a),var(--c2,#0a1428))}
.post__cover svg{position:absolute;inset:0;width:100%;height:100%;transition:transform 1.2s var(--ease)}
.post:hover .post__cover svg{transform:scale(1.08) rotate(-1deg)}
.post__cat{position:absolute;left:18px;top:18px;padding:6px 12px;border-radius:999px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;background:rgba(6,12,24,.6);backdrop-filter:blur(8px);color:var(--gold2);border:1px solid var(--line)}
.post__b{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.post__b h3{font-size:calc(25px*var(--hs));margin-bottom:12px;line-height:1.18;font-weight:var(--wb)}
.post__b p{font-size:15px;color:var(--t3);margin-bottom:18px}
.post__meta{margin-top:auto;display:flex;justify-content:space-between;font-size:13px;color:var(--t4)}
.post.feat{grid-column:span 2;flex-direction:row}
.post.feat .post__cover{flex:1.1;aspect-ratio:auto;min-height:360px}
.post.feat .post__b{flex:1;padding:40px}
.post.feat h3{font-size:calc(36px*var(--hs))}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.chips button{height:42px;padding:0 20px;border-radius:999px;border:1px solid var(--line2);font-size:14px;color:var(--t2);transition:.3s}
.chips button:hover,.chips button.on{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.post.hidden{display:none}

/* article */
.art{max-width:780px;margin:0 auto}
.art__meta{display:flex;gap:18px;align-items:center;color:var(--t3);font-size:14px;margin-bottom:40px;flex-wrap:wrap}
.art__meta img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:center 20%;border:1px solid var(--gold)}
.art h2{font-size:calc(clamp(28px,3vw,40px)*var(--hs));margin:56px 0 20px;font-weight:var(--wb)}
.art h3{font-size:calc(26px*var(--hs));margin:36px 0 14px;font-weight:var(--wb)}
.art p,.art li{font-size:calc(18px*var(--bs));line-height:1.78;color:var(--t2)}
.art ul,.art ol{padding-left:1.2em;margin:0 0 1.4em}
.art li{margin-bottom:.5em}
.art li::marker{color:var(--gold)}
.art .pull{margin:40px 0}
.art .box{padding:28px 30px;border-radius:24px;background:var(--card);border:1px solid var(--line);margin:34px 0}
.art .box b{color:var(--gold2)}
.toc{position:sticky;top:120px}
.toc a{display:block;padding:8px 0 8px 16px;border-left:1px solid var(--line2);color:var(--t3);font-size:14px;line-height:1.4;transition:.3s}
.toc a:hover,.toc a.on{color:var(--gold2);border-color:var(--gold)}
.artgrid{display:grid;grid-template-columns:220px 1fr 220px;gap:40px}
.share{display:flex;gap:10px;margin-top:50px;padding-top:30px;border-top:1px solid var(--line2);align-items:center;flex-wrap:wrap;color:var(--t3);font-size:14px}
.share a{padding:10px 16px;border-radius:999px;border:1px solid var(--line2);color:var(--ink);font-size:14px}
.share a:hover{border-color:var(--gold);color:var(--gold2)}
.readbar{position:fixed;left:0;top:0;height:3px;background:var(--grad);z-index:201;width:0}

/* ---------- ages ---------- */
.ages{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.age{position:relative;padding:30px 26px;border-radius:26px;border:1px solid var(--line2);background:var(--card);overflow:hidden;transition:.6s var(--ease)}
.age b{display:block;font-family:var(--fh);font-size:calc(64px*var(--hs));line-height:1;font-weight:var(--wl);color:var(--ink);margin-bottom:16px}
.age b sup{font-size:.4em;color:var(--gold);vertical-align:top;margin-left:4px}
.age p{font-size:14.5px;margin:0}
.age:hover{transform:translateY(-8px);border-color:rgba(var(--gold-rgb),.45)}
.age:hover b{color:var(--gold2)}

/* ---------- geo ---------- */
.geo{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:980px;margin:0 auto}
.geo span{padding:10px 18px;border-radius:999px;border:1px solid var(--line2);font-size:14px;color:var(--t2);transition:.3s}
.geo span:hover{border-color:var(--gold);color:var(--gold2);transform:translateY(-3px)}

/* ---------- footer ---------- */
.ftr{position:relative;margin-top:60px;padding:90px 0 40px;border-top:1px solid var(--line);background:var(--island-bg)}
.ftr__big{font-family:var(--fh);font-size:calc(clamp(44px,8vw,130px)*var(--hs));line-height:.95;color:var(--ink);font-weight:var(--wl);letter-spacing:-.03em;margin-bottom:70px}
.ftr__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.ftr__col h4{font-family:var(--fb);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;font-weight:500}
.ftr__col a,.ftr__col p{display:block;color:var(--t2);font-size:15px;margin-bottom:10px}
.ftr__col a:hover{color:var(--gold2)}
.ftr__tel{white-space:nowrap;font-family:var(--fh);font-size:calc(25px*var(--hs))!important;color:var(--ink)!important;line-height:1.2}
.ftr__logo{width:220px;margin-bottom:24px}
.soc{display:flex;gap:10px;margin-top:18px}
.soc a{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:.4s var(--ease);margin:0;font-size:12px;font-weight:600}
.soc a:hover{background:var(--gold);color:var(--bg);border-color:var(--gold);transform:translateY(-4px) rotate(-8deg)}
.ftr__bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:60px;padding-top:26px;border-top:1px solid var(--line2);font-size:13px;color:var(--t4)}

/* ---------- floating ---------- */
.fab{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.fab__main{width:64px;height:64px;border-radius:50%;background:var(--grad);display:grid;place-items:center;color:var(--btn-ink);box-shadow:0 14px 34px -8px rgba(var(--gold-rgb),.7);position:relative;transition:transform .4s var(--ease)}
.fab__main::before,.fab__main::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid var(--gold);animation:fp 2.4s ease-out infinite}
.fab__main::after{animation-delay:1.2s}
@keyframes fp{from{transform:scale(1);opacity:.8}to{transform:scale(1.8);opacity:0}}
.fab__main svg{width:26px;height:26px;transition:transform .4s var(--ease)}
.fab.open .fab__main svg{transform:rotate(135deg)}
.fab__list{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.fab__list a{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;background:var(--glass2);backdrop-filter:blur(10px);border:1px solid var(--line);color:var(--ink);font-size:14px;opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;transition:.4s var(--ease)}
.fab.open .fab__list a{opacity:1;transform:none;pointer-events:auto}
.fab.open .fab__list a:nth-child(2){transition-delay:.05s}.fab.open .fab__list a:nth-child(1){transition-delay:.1s}
.mbar{display:none}
@media(max-width:760px){
  .fab{bottom:88px;right:14px}
  .fab__main{width:56px;height:56px}
  .mbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:91;display:flex;gap:8px;padding:8px;border-radius:999px;background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:0 14px 40px -10px rgba(0,0,0,.8)}
  .mbar a{flex:1;height:48px;border-radius:999px;display:grid;place-items:center;font-size:14px;color:var(--ink);border:1px solid var(--line2)}
  .mbar a.btn--gold{border:0;color:var(--btn-ink);padding:0;height:48px}
}

/* ---------- font switcher ---------- */
.fsw{position:fixed;left:24px;bottom:24px;z-index:95}
.fsw__btn{display:flex;align-items:center;gap:10px;height:52px;padding:0 18px 0 8px;border-radius:999px;background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line);color:var(--ink);font-size:13.5px;box-shadow:0 14px 34px -14px rgba(0,0,0,.8);transition:.35s var(--ease)}
.fsw__btn:hover{border-color:var(--gold)}
.fsw__btn i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:var(--btn-ink);font-family:var(--fh);font-style:normal;font-size:19px;font-weight:600}
.fsw__panel{position:absolute;left:0;bottom:64px;width:330px;padding:18px;border-radius:24px;background:var(--glass2);backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:0 30px 70px -20px rgba(0,0,0,.9);opacity:0;visibility:hidden;transform:translateY(12px) scale(.97);transform-origin:0 100%;transition:.4s var(--ease)}
.fsw.open .fsw__panel{opacity:1;visibility:visible;transform:none}
.fsw__h{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:4px 4px 10px}
.fsw__grp+.fsw__h{margin-top:16px}
.fsw__grp{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fsw__opt{padding:12px 14px;border-radius:16px;border:1px solid var(--line2);text-align:left;transition:.3s;background:rgba(255,255,255,.02)}
.fsw__opt span{display:block;font-size:24px;line-height:1.1;color:var(--ink)}
.fsw__opt small{display:block;font-size:11.5px;color:var(--t3);margin-top:4px;font-family:'Onest',sans-serif}
.fsw__opt:hover{border-color:rgba(var(--gold-rgb),.5)}
.fsw__opt.on{border-color:var(--gold);background:rgba(var(--gold-rgb),.1)}
.fsw__opt.on small{color:var(--gold2)}
@media(max-width:760px){.fsw{left:14px;bottom:88px}.fsw__btn span{display:none}.fsw__btn{padding:0 7px}.fsw__panel{width:calc(100vw - 28px)}}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px;background:rgba(3,7,15,.72);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.45s var(--ease)}
.modal.open{opacity:1;visibility:visible}
.modal__box{position:relative;width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:44px 38px 34px;border-radius:36px;background:linear-gradient(160deg,#13223f,#0a1428);border:1px solid rgba(var(--gold-rgb),.4);box-shadow:0 60px 120px -40px rgba(0,0,0,1);transform:translateY(30px) scale(.96);transition:.55s var(--ease)}
.modal.open .modal__box{transform:none}
.modal__x{position:absolute;right:18px;top:18px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);font-size:20px;color:var(--ink);transition:.3s}
.modal__x:hover{transform:rotate(90deg);border-color:var(--gold)}
.modal h3{font-size:calc(34px*var(--hs));margin-bottom:10px;text-align:center}
.modal .form{background:none;border:0;padding:0;backdrop-filter:none}
.modal__sub{text-align:center;color:var(--t3);font-size:15px;margin-bottom:24px}

/* toast */
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,40px);opacity:0;z-index:400;padding:14px 22px;border-radius:999px;background:var(--glass2);border:1px solid var(--gold);color:var(--ink);font-size:14px;transition:.5s var(--ease);pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .facts{grid-template-columns:repeat(3,1fr)}
  .fact:nth-child(3){border-right:0}.fact:nth-child(n+4){border-top:1px solid var(--line)}
  .progs{grid-template-columns:repeat(2,1fr)}
  .vet,.ages{grid-template-columns:repeat(2,1fr)}
  .g4,.g5{grid-template-columns:repeat(2,1fr)}
  .posts{grid-template-columns:repeat(2,1fr)}
  .artgrid{grid-template-columns:1fr}.toc,.artgrid>aside:last-child{display:none}
}
@media(max-width:900px){
  .sec{padding:90px 0}
  .hero{min-height:auto;padding-top:40px}
  .hero__grid,.phero__grid,.how,.founder,.faq,.cta,.quiz{grid-template-columns:1fr}
  .hero__txt{padding-bottom:0}
  .hero__photo{height:auto;margin-top:10px;min-height:520px}
  .hero__note{display:none}
  .badge.b1{left:0;top:20%}.badge.b2{right:0;top:44%}.badge.b3{left:2%;bottom:10%}
  .orbit.o1{width:380px;height:380px}.orbit.o2{width:560px;height:560px}.orbit.o3{display:none}
  .g3,.g2{grid-template-columns:1fr}
  .dirs{grid-template-columns:1fr}.dirs .card{grid-column:auto!important;min-height:auto!important}
  .timeline{grid-template-columns:1fr 1fr;gap:20px}
  .faq__side{position:static}
  .cta{padding:44px 26px}
  .quiz__side{border-right:0;border-bottom:1px solid var(--line);padding:40px 28px}
  .quiz__main{padding:36px 26px}
  .gban{grid-template-columns:1fr;text-align:center;padding:40px 28px}.gban__seal{margin:0 auto}
  .post.feat{grid-column:auto;flex-direction:column}.post.feat .post__cover{min-height:240px}
  .scrollhint{display:none}
  .founder__ring{right:-20px;top:-20px;width:150px;height:150px}
}
@media(max-width:640px){
  .wrap{padding:0 18px}
  .facts{grid-template-columns:1fr 1fr}
  .fact{border-right:0!important;border-top:1px solid var(--line);padding:30px 14px}
  .fact:nth-child(odd){border-right:1px solid var(--line)!important}
  .fact:nth-child(-n+2){border-top:0}
  .fact:last-child{grid-column:span 2}
  .progs,.vet,.ages,.g4,.g5,.posts{grid-template-columns:1fr}
  .vs__row{grid-template-columns:1fr;gap:6px}.vs__arr{transform:rotate(90deg);height:18px}
  .inout{grid-template-columns:1fr}
  .step{grid-template-columns:64px 1fr;gap:18px}
  .step__n{font-size:calc(52px*var(--hs))}
  .steps__line{left:32px}
  .quiz__opts{grid-template-columns:1fr}
  .checks.two{grid-template-columns:1fr}
  .rev{width:320px}
  .btn{height:54px;padding:0 24px}
  .hero__cta .btn{width:100%}
  .badge{padding:10px 12px}.badge b{font-size:calc(22px*var(--hs))}.badge i{display:none}
  .strip{padding:26px}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .ftr__grid>div:first-child{grid-column:span 2}
  .hdr{top:8px;padding:0 10px}.hdr__in{padding:8px 8px 8px 14px}
  .logo__t{font-size:12px}.logo img{height:32px}
  body{padding-bottom:70px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv,[data-split] .w>span{opacity:1!important;transform:none!important;filter:none!important}
  .preloader{display:none}
}

.card h3.gt{white-space:nowrap;font-size:calc(clamp(34px,3.2vw,48px)*var(--hs))!important}
.artgrid aside .btn{white-space:normal;height:auto;min-height:46px;padding:10px 16px;line-height:1.25;text-align:center}

/* =====================================================
   v2: light theme polish, lights, reveals, hero hotspots
   ===================================================== */
html[data-theme="light"] .grain{opacity:.035;mix-blend-mode:multiply}
html[data-theme="light"] :is(.card,.prog,.rev,.post,.age,.quiz,.rating,.strip,.cmp):not(.island *){box-shadow:var(--shadow);border-color:rgba(20,33,61,.07)}
html[data-theme="light"] :is(.card,.prog,.rev,.post,.age):not(.island *):hover{background:var(--cardh);box-shadow:var(--shadow2)}
html[data-theme="light"] .vs__no{background:rgba(196,112,95,.05)}
html[data-theme="light"] .step__n{-webkit-text-stroke-color:rgba(var(--gold-rgb),.7)}
.strip{background:linear-gradient(90deg,rgba(var(--gold-rgb),.12),var(--card))}
.founder__ph{background:radial-gradient(80% 70% at 50% 100%,rgba(201,179,138,.35),#13213f 60%,#0c1322)}
.gban{background:var(--island-bg)}
.ftr{border-top:0}
.cta,.gban,.qcard,.founder__ph,.ftr,.modal__box{--_:0}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}

/* ---- mouse lights ---- */
.mlight{position:fixed;left:0;top:0;width:900px;height:900px;border-radius:50%;pointer-events:none;z-index:0;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--light) 0%,transparent 60%);transition:opacity .6s}
html:not([data-theme="light"]) .mlight{mix-blend-mode:screen}
main,footer{position:relative;z-index:1}
.spk{position:fixed;left:0;top:0;width:10px;height:10px;pointer-events:none;z-index:997;background:rgb(var(--particle));clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 4px rgba(var(--particle),.9))}
/* border light following cursor */
:is(.card,.prog,.rev,.post,.age,.qcard,.quiz,.gban,.strip,.mpost)::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:radial-gradient(260px circle at var(--mx,-100%) var(--my,-100%),rgba(var(--gold-rgb),.95),transparent 45%);
  -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}
:is(.card,.prog,.rev,.post,.age,.qcard,.quiz,.gban,.strip,.mpost):hover::after{opacity:1}
.prog.hot::before{z-index:0}
.post,.rev,.age,.quiz,.strip,.qcard{position:relative}
/* heading light sweep on reveal */
.h2.in .gt>span,.h2 .gt.lit{position:relative}
.sheen{position:relative;overflow:hidden}
.sheen::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);pointer-events:none}
.sheen.in::before{animation:sheen 1.6s .3s var(--ease) forwards}
@keyframes sheen{to{transform:translateX(120%)}}

/* ---- reveal variants ---- */
.rv.zoom{transform:scale(.86);filter:blur(12px)}
.rv.flip{transform:perspective(1100px) rotateX(-24deg) translateY(70px);transform-origin:50% 0}
.rv.swing{transform:perspective(1000px) rotateY(-20deg) translateX(-50px);transform-origin:0 50%}
.rv.skew{transform:translateY(70px) skewY(5deg)}
.rv.drop{transform:translateY(-40px) scale(.96)}
.rv.clip{opacity:1;filter:none;transform:none;clip-path:inset(0 0 100% 0 round 30px);transition:clip-path 1.4s var(--ease);transition-delay:calc(var(--d,0)*1ms)}
.rv.clip.in{clip-path:inset(0 0 0 0 round 30px)}
.rv.wipe{opacity:1;filter:none;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path 1.3s var(--ease2);transition-delay:calc(var(--d,0)*1ms)}
.rv.wipe.in{clip-path:inset(0 0 0 0)}
.rv.zoom.in,.rv.flip.in,.rv.swing.in,.rv.skew.in,.rv.drop.in{transform:none;filter:none}
.eyebrow.rv::before{width:0;transition:width 1s .3s var(--ease)}
.eyebrow.rv.in::before{width:34px}
.post .post__cover svg{transform:scale(1.25);transition:transform 1.8s var(--ease)}
.post.in .post__cover svg{transform:scale(1)}
.post:hover .post__cover svg{transform:scale(1.08) rotate(-1deg)}
.cmp tbody tr{opacity:0;transform:translateX(-30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.cmp.in tbody tr{opacity:1;transform:none}
.cmp.in tbody tr:nth-child(2){transition-delay:.1s}.cmp.in tbody tr:nth-child(3){transition-delay:.2s}.cmp.in tbody tr:nth-child(4){transition-delay:.3s}.cmp.in tbody tr:nth-child(5){transition-delay:.4s}.cmp.in tbody tr:nth-child(6){transition-delay:.5s}.cmp.in tbody tr:nth-child(7){transition-delay:.6s}
.step{opacity:0;transform:translateX(-40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.step.in{opacity:1;transform:none}
.sec__line{height:1px;background:linear-gradient(90deg,transparent,rgba(var(--gold-rgb),.6),transparent);transform:scaleX(0);transition:transform 1.6s var(--ease)}
.sec__line.in{transform:scaleX(1)}
.qb .qb__t{transition:transform 1.2s var(--ease)}

/* ---- HERO v2 ---- */
.hero{min-height:calc(100vh - 20px)}
.hero__txt .hand{margin-top:26px;transform:rotate(-3deg);display:inline-block}
.hero__light{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(700px circle at var(--hx,70%) var(--hy,40%),var(--light),transparent 60%)}
.hero__rays{position:absolute;z-index:0;left:50%;bottom:20%;width:1500px;height:1500px;transform:translate(-50%,50%);border-radius:50%;pointer-events:none;
  background:repeating-conic-gradient(from 0deg,rgba(var(--gold-rgb),.09) 0deg 2deg,transparent 2deg 12deg);
  -webkit-mask:radial-gradient(circle,#000 0%,transparent 55%);mask:radial-gradient(circle,#000 0%,transparent 55%);animation:spin 120s linear infinite}
.hero__photo{z-index:2}
.orbit{pointer-events:none}
.orbit.o4{width:340px;height:340px;border-color:rgba(var(--gold-rgb),.3);animation:orbit 25s linear infinite reverse}
.orbit.o5{width:1280px;height:1280px;border-color:rgba(var(--gold-rgb),.05);border-style:dotted;animation:orbit 160s linear infinite reverse}
.orbit.o4::after{width:6px;height:6px;top:auto;bottom:20%;left:-3px}
.orbit.o3::before,.orbit.o1::before{content:"";position:absolute;bottom:-4px;left:30%;width:7px;height:7px;border-radius:50%;background:rgb(var(--particle));box-shadow:0 0 12px 3px rgba(var(--particle),.7)}
.ripple{position:absolute;z-index:1;left:50%;bottom:30%;width:360px;height:360px;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.45);transform:translate(-50%,50%) scale(.6);opacity:0;animation:ripple 6s var(--ease) infinite;pointer-events:none}
.ripple.r2{animation-delay:2s}.ripple.r3{animation-delay:4s}
@keyframes ripple{0%{transform:translate(-50%,50%) scale(.6);opacity:0}15%{opacity:.8}100%{transform:translate(-50%,50%) scale(2.6);opacity:0}}
.bokeh{position:absolute;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(var(--particle),.55),rgba(var(--particle),0) 70%);filter:blur(2px);animation:bokeh 14s ease-in-out infinite}
@keyframes bokeh{0%,100%{transform:translate(0,0) scale(1);opacity:.5}50%{transform:translate(20px,-30px) scale(1.15);opacity:1}}
/* hotspots */
.hs{position:absolute;z-index:6;width:0;height:0}
.hs__dot{position:absolute;left:-15px;top:-15px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;cursor:pointer;outline:none}
.hs__dot::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 4px rgba(var(--gold-rgb),.25),0 0 22px 6px rgba(var(--gold-rgb),.6);transition:transform .4s var(--ease)}
.hs__dot::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.8);animation:fp 2.6s ease-out infinite}
.hs:nth-child(2n) .hs__dot::after{animation-delay:.9s}.hs:nth-child(3n) .hs__dot::after{animation-delay:1.6s}
.hs__lbl{position:absolute;top:-11px;white-space:nowrap;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold2);padding:3px 10px;border-radius:999px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(8px);transition:.4s var(--ease)}
.hs.l .hs__lbl{right:22px}.hs.r .hs__lbl{left:22px}
.hs__pop{position:absolute;top:-30px;width:320px;padding:24px 24px 22px;border-radius:24px;background:var(--glass2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);box-shadow:var(--shadow2);
  opacity:0;visibility:hidden;filter:blur(8px);transition:opacity .45s var(--ease),transform .55s var(--ease),filter .45s,visibility 0s .5s;pointer-events:none}
.hs.l .hs__pop{right:34px;transform:translateX(20px) scale(.92);transform-origin:100% 20%}
.hs.r .hs__pop{left:34px;transform:translateX(-20px) scale(.92);transform-origin:0 20%}
.hs.open .hs__pop{opacity:1;visibility:visible;transform:none;filter:none;pointer-events:auto;transition:opacity .45s var(--ease),transform .55s var(--ease),filter .45s,visibility 0s}
.hs.open .hs__lbl{opacity:0}
.hs.open .hs__dot::before{transform:scale(1.5)}
.hs__pop .eyebrow{margin-bottom:10px;font-size:11px}
.hs__pop h4{font-size:calc(26px*var(--hs));font-weight:var(--wb);margin-bottom:8px;line-height:1.1}
.hs__pop p{font-size:14px;color:var(--t2);margin-bottom:14px;line-height:1.5}
.hs__pop .stat{display:flex;align-items:baseline;gap:10px;margin-bottom:16px;padding-top:14px;border-top:1px solid var(--line2)}
.hs__pop .stat b{font-family:var(--fh);font-size:calc(34px*var(--hs));line-height:1;font-weight:var(--wb)}
.hs__pop .stat span{font-size:12.5px;color:var(--t3);line-height:1.3}
.hs__pop a{display:inline-flex;gap:8px;align-items:center;font-size:14px;color:var(--gold2)}
.hs__pop a::after{content:"→";transition:transform .3s var(--ease)}
.hs__pop a:hover::after{transform:translateX(5px)}
.hs__line{position:absolute;top:0;height:1px;width:0;background:linear-gradient(90deg,rgba(var(--gold-rgb),.9),transparent);transition:width .5s var(--ease)}
.hs.l .hs__line{right:0;transform:scaleX(-1);transform-origin:0 0}.hs.r .hs__line{left:0}
.hs.open .hs__line{width:34px}
.hs.in{animation:hsin .9s var(--ease) both;animation-delay:calc(var(--i)*120ms + 900ms)}
@keyframes hsin{from{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}
@media(max-width:900px){.hs__pop{width:260px}.hs__lbl{display:none}.hero__rays{width:900px;height:900px}}

/* ---- reviews carousel ---- */
.revs{overflow:visible;-webkit-mask-image:none;mask-image:none}
.revs__track{animation:none;width:auto;display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:14px max(28px,calc((100vw - var(--wrap))/2 + 28px)) 30px;cursor:grab}
.revs__track::-webkit-scrollbar{display:none}
.revs__track.drag{cursor:grabbing;scroll-snap-type:none}
.rev{scroll-snap-align:start}
.revs__nav{display:flex;gap:10px;align-items:center}
.revs__nav button{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);color:var(--ink);font-size:20px;transition:.35s var(--ease)}
.revs__nav button:hover{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.revs__bar{height:2px;background:var(--line2);border-radius:2px;max-width:var(--wrap);margin:6px auto 0;overflow:hidden}
.revs__bar i{display:block;height:100%;width:20%;background:var(--grad);transition:transform .3s}
.sec__head.center .sec__line{margin-left:auto;margin-right:auto}
.founder__ring{right:16px!important;top:16px!important;width:150px!important;height:150px!important}
/* founder visual (cutout, no card) */
.founder__vis{position:relative;min-height:720px;display:flex;justify-content:center;align-items:flex-end}
.founder__vis img{position:relative;z-index:3;width:min(500px,100%);-webkit-mask-image:linear-gradient(180deg,#000 75%,transparent 99%);mask-image:linear-gradient(180deg,#000 75%,transparent 99%)}
.fv__halo{position:absolute;z-index:1;left:50%;bottom:18%;width:110%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(var(--gold-rgb),.32),rgba(var(--gold-rgb),.08) 38%,transparent 64%)}
.founder__vis .ripple{bottom:40%}
.fv__orb{position:absolute;z-index:1;left:50%;bottom:34%;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.25);transform:translateX(-50%);pointer-events:none}
.fv__orb.o1{width:440px;height:440px;animation:orbit 38s linear infinite}
.fv__orb.o2{width:620px;height:620px;border-style:dashed;border-color:rgba(var(--gold-rgb),.15);animation:orbit 60s linear infinite reverse}
.fv__orb.o3{width:300px;height:300px;border-color:rgba(var(--gold-rgb),.35);animation:orbit 22s linear infinite}
.fv__orb::after{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:rgb(var(--particle));box-shadow:0 0 14px 3px rgba(var(--particle),.8)}
.fv__ring{position:absolute;z-index:4;right:2%;top:6%;width:170px;height:170px;animation:spin 30s linear infinite}
.fv__ring text{font-family:var(--fb);font-size:11.5px;letter-spacing:.32em;fill:var(--gold);text-transform:uppercase}
.fv__tag{position:absolute;z-index:5;left:0;bottom:12%;padding:16px 22px;border-radius:20px;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow);animation:bob 7s ease-in-out infinite}
.fv__tag b{display:block;font-family:var(--fh);font-size:calc(26px*var(--hs));font-weight:var(--wb);color:var(--ink)}
.fv__tag small{font-size:13px;color:var(--gold2)}
/* quiz photo */
.quiz__side{min-height:540px}
.quiz__ph{position:absolute;right:-30px;bottom:0;width:300px;z-index:0;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent);pointer-events:none;transition:transform 1.2s var(--ease)}
.quiz:hover .quiz__ph{transform:translateY(-8px) scale(1.02)}
.quiz__side>*:not(.quiz__ph){position:relative;z-index:1;max-width:62%}
/* inner hero photo */
.phero__side{min-height:560px;display:flex;flex-direction:column;justify-content:flex-end}
.ps__vis{position:absolute;inset:-40px 0 0 0;display:flex;justify-content:center;align-items:flex-end;pointer-events:none}
.ps__vis img{position:relative;z-index:2;width:min(400px,90%);-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 92%);mask-image:linear-gradient(180deg,#000 55%,transparent 92%)}
.ps__vis .fv__orb.o1{width:380px;height:380px;bottom:40%}.ps__vis .fv__orb.o2{width:540px;height:540px;bottom:40%}
.ps__vis .fv__halo{bottom:30%}
.phero__side .qcard{position:relative;z-index:3;margin-top:auto}
@media(max-width:900px){.founder__vis{min-height:560px}.fv__orb.o2{width:460px;height:460px}.quiz__ph{width:200px;opacity:.5}.quiz__side>*:not(.quiz__ph){max-width:100%}.phero__side{min-height:480px}}
.cta.has-ph{grid-template-columns:1fr .62fr .9fr;gap:34px;padding-bottom:70px}
.cta__ph{align-self:end;width:100%;max-width:330px;justify-self:center;margin-bottom:-70px;position:relative;z-index:1;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 99%);mask-image:linear-gradient(180deg,#000 72%,transparent 99%);filter:none;transition:transform 1.2s var(--ease)}
.cta:hover .cta__ph{transform:translateY(-10px)}
@media(max-width:1100px){.cta.has-ph{grid-template-columns:1fr 1fr}.cta__ph{display:none}}
@media(max-width:900px){.cta.has-ph{grid-template-columns:1fr}}
[data-split] .gt .w>span{background:var(--gradt);-webkit-background-clip:text;background-clip:text;color:transparent}
[data-split] .fd .w>span{background:linear-gradient(180deg,var(--fd1),var(--fd2));-webkit-background-clip:text;background-clip:text;color:transparent}
[data-split] .gt>.w,[data-split] .fd>.w{background:none}
.cta__ph[src*="wave"]{max-width:none;width:175%;margin-bottom:-260px;transform-origin:50% 100%}
.cta:hover .cta__ph[src*="wave"]{transform:translateY(-10px) rotate(-1deg)}
.phero__side{min-height:660px}
.ps__vis{inset:-70px -20px 0 18%}
.ps__vis img{width:min(440px,100%)}
.phero__side .qcard{width:78%;align-self:flex-start;padding:26px 26px 22px}
.phero__side .qcard p{font-size:calc(18px*var(--hs))}
.phero__side .qcard::before{font-size:100px}
@media(max-width:900px){.phero__side .qcard{width:100%}.ps__vis{inset:-40px 0 0 0}}
.phero__side{min-height:640px}
.ps__vis{inset:-60px 0 0 0}
.ps__vis img{width:min(470px,100%)}
.qwide{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;max-width:1100px;margin:0 auto;padding:40px 48px}
.qwide p{font-size:calc(23px*var(--hs))!important;margin:0}
.qwide .qcard__who{margin:0;padding:0 0 0 36px;border-top:0;border-left:1px solid var(--line2);min-width:260px}
@media(max-width:900px){.qwide{grid-template-columns:1fr;padding:30px 26px}.qwide .qcard__who{padding:20px 0 0;border-left:0;border-top:1px solid var(--line2)}}
/* ===== v3 ===== */
/* header fit */
.hdr__in{max-width:1480px;gap:20px}
.nav{flex:1 1 auto;justify-content:center;min-width:0;margin:0}
.hdr__right{flex:0 0 auto}
@media(max-width:1760px){.hdr__phone span{display:none}.hdr__phone{padding:0}}
@media(max-width:1660px){.hdr .btn .full{display:none}.hdr .btn .short{display:inline}}
@media(max-width:1340px){.logo__t{display:none}}
@media(max-width:1060px){.logo__t{display:block}}
/* badges: no wrap, new spots */
.badge{white-space:nowrap}
.badge.b1{left:-6%;top:auto;bottom:26%}
.badge.b2{right:-6%;top:auto;bottom:6%}
/* quiz photo right, mirrored */
.quiz{position:relative;overflow:hidden}
.quiz__side>*:not(.quiz__ph){max-width:100%}
.quiz__ph{left:auto;right:-10px;bottom:0;width:250px;transform:scaleX(-1);z-index:0;opacity:1}
.quiz:hover .quiz__ph{transform:scaleX(-1) translateY(-8px)}
.quiz__main{position:relative;z-index:1;padding-right:240px}
@media(max-width:1100px){.quiz__main{padding-right:52px}.quiz__ph{display:none}}
/* CTA v3: photo left, content + inline form right */
.cta.has-ph{grid-template-columns:minmax(300px,.78fr) 1.22fr;grid-template-areas:"ph txt" "ph form";gap:22px 56px;padding:64px 64px 58px 30px;align-items:start}
.cta.has-ph>div:first-child{grid-area:txt}
.cta.has-ph>.cta__ph{grid-area:ph;align-self:end;justify-self:stretch;width:112%;max-width:none;margin:0 0 -58px -6%}
.cta.has-ph>.cta__ph[src*="wave"]{width:128%;margin:-40px 0 -58px -14%}
.cta.has-ph .form{grid-area:form;grid-template-columns:1fr 1fr auto;align-items:center;padding:20px;gap:12px}
.cta.has-ph .form .btn{width:auto;margin:0;height:60px}
.cta.has-ph .form__msg,.cta.has-ph .form__note,.cta.has-ph .form__ok{grid-column:1/-1}
.cta.has-ph .form__msg{justify-content:flex-start;margin:0}
.cta.has-ph .form__msg a{flex:0 0 auto;padding:0 20px;min-width:0}
.cta.has-ph .form__note{text-align:left}
.cta.has-ph h2{margin-bottom:16px}
.cta.has-ph .bul{grid-template-columns:1fr 1fr;gap:10px 24px;margin-bottom:10px}
.cta.has-ph .hand{font-size:24px}
@media(max-width:1100px){.cta.has-ph{grid-template-columns:1fr;grid-template-areas:"txt" "form";padding:48px 34px}.cta.has-ph>.cta__ph{display:none}.cta.has-ph .form{grid-template-columns:1fr}.cta.has-ph .form .btn{width:100%}.cta.has-ph .bul{grid-template-columns:1fr}}
.hero__rays{display:none!important}
.badge{padding:14px 22px 14px 14px;gap:14px}
.badge b{white-space:nowrap;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em}
.badge small{white-space:nowrap}
.badge>div{min-width:max-content}
body{font-variant-numeric:lining-nums}
/* steps: line on the left with nodes, no boxes behind numbers */
.steps__line{left:6px!important}
.step__n{background:none!important}
.step{padding-left:52px!important;position:relative}
.step::before{content:"";position:absolute;left:0;top:52px;width:13px;height:13px;border-radius:50%;background:var(--bg);border:1px solid rgba(var(--gold-rgb),.6);box-shadow:0 0 0 5px rgba(var(--gold-rgb),.08);transition:background .6s,box-shadow .6s;z-index:1}
.step.in::before{background:var(--gold);box-shadow:0 0 0 6px rgba(var(--gold-rgb),.15),0 0 18px 4px rgba(var(--gold-rgb),.45)}
@media(max-width:640px){.step{padding-left:34px!important}.step::before{top:44px}}
/* quote slider */
.qs{position:relative;max-width:1100px;margin:0 auto;padding:70px 80px 46px;border-radius:44px;overflow:hidden;border:1px solid rgba(var(--gold-rgb),.3)}
.qs__glow{position:absolute;inset:0;background:radial-gradient(600px circle at var(--mx,70%) var(--my,30%),rgba(var(--gold-rgb),.16),transparent 60%);pointer-events:none}
.qs__inf{position:absolute;right:-60px;top:50%;width:520px;transform:translateY(-50%);opacity:.18;pointer-events:none}
.qs__inf path{fill:none;stroke:var(--gold);stroke-width:1;stroke-dasharray:600;animation:infdash 14s linear infinite}
@keyframes infdash{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
.qs__mark{position:absolute;left:46px;top:-10px;font-family:Georgia,serif;font-size:220px;line-height:1;color:rgba(var(--gold-rgb),.2);pointer-events:none}
.qs__slides{position:relative;min-height:230px}
.qs__slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;visibility:hidden;transition:opacity .8s var(--ease),visibility 0s .8s}
.qs__slide.on{opacity:1;visibility:visible;transition:opacity .8s var(--ease),visibility 0s}
.qs__slide p{font-family:var(--fh);font-weight:var(--wl);font-size:calc(clamp(26px,3vw,44px)*var(--hs));line-height:1.25;color:var(--ink);margin:0 0 20px;max-width:900px}
.qs__slide p .w{display:inline-block;opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease);transition-delay:calc(var(--i)*35ms)}
.qs__slide.on p .w{opacity:1;transform:none;filter:none}
.qs__slide>span{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.qs__foot{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line2);flex-wrap:wrap}
.qs__who{display:flex;gap:14px;align-items:center}
.qs__who img{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:center 20%;border:1px solid var(--gold)}
.qs__who b{display:block;font-family:var(--fh);font-size:calc(21px*var(--hs));color:var(--ink);font-weight:var(--wb)}
.qs__who small{font-size:13px;color:var(--t3)}
.qs__nav{display:flex;align-items:center;gap:10px}
.qs__dots{display:flex;gap:6px;margin-right:10px}
.qs__dot{width:8px;height:8px;border-radius:8px;background:var(--line2);transition:.4s var(--ease)}
.qs__dot.on{width:28px;background:var(--gold)}
.qs__arr{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);color:var(--ink);font-size:18px;transition:.35s var(--ease)}
.qs__arr:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.qs__prog{position:absolute;left:0;bottom:0;height:2px;width:100%;background:transparent}
.qs__prog i{display:block;height:100%;width:0;background:var(--gold)}
.qs__prog i.run{animation:qprog 7s linear forwards}
@keyframes qprog{to{width:100%}}
@media(max-width:760px){.qs{padding:50px 26px 30px;border-radius:30px}.qs__slides{min-height:300px}.qs__mark{left:14px;font-size:150px}}
/* ---- fate map ---- */
.fate{position:relative;height:250vh;margin:60px 0;border-radius:0;background:radial-gradient(80% 60% at 70% 40%,#13213f,#080d18 70%)}
.fate__pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-top:70px}
.fate__head{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;width:100%}
.fate__head .h2{margin:0}
.fate__side p{color:var(--t2);margin-bottom:18px}
.fate__count{display:flex;gap:16px;align-items:center}
.fate__count b{font-family:var(--fh);font-size:calc(64px*var(--hs));line-height:1;color:var(--acc);font-weight:var(--wl);min-width:1.6em}
.fate__count span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);line-height:1.5}
.fate__count em{font-style:normal;color:var(--gold2);letter-spacing:.06em;text-transform:none;font-size:15px}
.fate__map{position:relative;width:100%;max-width:1320px;margin:10px auto 0;padding:0 20px;flex:1;min-height:0;display:flex;align-items:center}
.fate__svg{width:100%;height:100%;max-height:62vh;overflow:visible}
.fate__stars circle{fill:#e8dec8;animation:twinkle2 4s ease-in-out infinite;animation-delay:var(--d)}
@keyframes twinkle2{0%,100%{opacity:.15}50%{opacity:.8}}
.fate__sil circle{fill:rgba(201,179,138,.13)}
.fate__ghost{fill:none;stroke:rgba(201,179,138,.12);stroke-width:1;stroke-dasharray:2 6}
.fate__thread{fill:none;stroke:#d8c49c;stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 6px rgba(216,196,156,.8))}
.fate__comet{fill:#fff6e0;filter:drop-shadow(0 0 10px #f3e3bb) drop-shadow(0 0 22px rgba(216,196,156,.9));opacity:0;transition:opacity .4s}
.fate.go .fate__comet{opacity:1}
.fc{cursor:default}
.fc__halo{fill:rgba(216,196,156,.0);transition:fill .6s}
.fc__star{fill:#d8c49c;transform:scale(0);transform-box:fill-box;transform-origin:center;transition:transform .8s cubic-bezier(.3,1.6,.5,1)}
.fc__core{fill:rgba(232,222,200,.35);transition:fill .5s}
.fc text{font-family:var(--fb);font-size:14px;fill:#e8dec8;opacity:0;transform:translateY(6px);transition:opacity .6s,transform .6s;paint-order:stroke;stroke:#0a1222;stroke-width:4px}
.fc.on .fc__star{transform:scale(1);animation:fstar 3s ease-in-out infinite}
.fc.on .fc__core{fill:#fff6e0}
.fc.on .fc__halo{fill:rgba(216,196,156,.14)}
.fc.on text{opacity:.92;transform:none}
.fc.big .fc__star{transform:scale(0)}.fc.big.on .fc__star{transform:scale(1.6)}
.fc.big text{font-size:17px;fill:#fff}
@keyframes fstar{0%,100%{rotate:0deg}50%{rotate:45deg}}
.fc:hover .fc__halo{fill:rgba(216,196,156,.3)}
.fate__inf path{fill:none;stroke:#d8c49c;stroke-width:2.4;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--ease2);filter:drop-shadow(0 0 6px rgba(216,196,156,.8))}
.fate__inf text{font-family:var(--fhand);font-size:30px;fill:#e8dec8;opacity:0;transition:opacity 1s .8s}
.fate.done .fate__inf path{stroke-dashoffset:0}.fate.done .fate__inf text{opacity:1}
.fate__hint{text-align:center;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--t4);padding:10px 0 24px;transition:opacity .5s}
.fate.done .fate__hint{opacity:0}
@media(max-width:900px){.fate{height:200vh}.fate__head{grid-template-columns:1fr;gap:16px}.fc text{font-size:22px}.fc:not(.big):not(.on) text{display:none}.fate__count b{font-size:44px}}
.fc:not(.lbl) text{opacity:0!important}
.fc:not(.lbl):hover text{opacity:1!important}
.fc:not(.lbl) .fc__halo{r:12px}
.fate__sil circle{fill:rgba(201,179,138,.2)}
/* global bg canvas */
.bgc{position:fixed;left:0;top:0;z-index:0;pointer-events:none}
main>section{position:relative}
.deco-orb{position:absolute;z-index:-1;top:10%;width:520px;height:520px;border-radius:50%;border:1px dashed rgba(var(--gold-rgb),.16);pointer-events:none;animation:spin 90s linear infinite}
.deco-orb::before{content:"";position:absolute;inset:60px;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.1)}
.deco-orb::after{content:"";position:absolute;top:50%;left:-4px;width:8px;height:8px;border-radius:50%;background:rgb(var(--particle));box-shadow:0 0 14px 3px rgba(var(--particle),.7)}
.deco-orb.l{left:-300px}.deco-orb.r{right:-300px;animation-direction:reverse}
.deco-art{position:absolute;z-index:0;top:70px;width:170px;pointer-events:none;opacity:.55}
.deco-art.l{left:max(10px,calc((100vw - var(--wrap))/2 - 190px))}.deco-art.r{right:max(10px,calc((100vw - var(--wrap))/2 - 190px))}
.deco-art svg{width:100%;overflow:visible;animation:bob 9s ease-in-out infinite}
.deco-art svg *{fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.6s var(--ease2)}
.deco-art.in svg *{stroke-dashoffset:0}
@media(max-width:1500px){.deco-art{width:120px;opacity:.35;top:30px}}
@media(max-width:900px){.deco-art,.deco-orb{display:none}}
/* ---- footer v3 ---- */
.ftr{display:none}
.ft{position:relative;margin-top:80px;padding:100px 0 34px;overflow:hidden;border-radius:48px 48px 0 0;background:radial-gradient(90% 70% at 80% 0%,#15254a,#080d18 65%)}
.ft__glow{position:absolute;inset:0;background:radial-gradient(700px circle at var(--mx,70%) var(--my,20%),rgba(201,179,138,.12),transparent 60%);pointer-events:none}
.ft__top{display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:center;padding-bottom:70px;border-bottom:1px solid var(--line2)}
.ft__h{font-size:calc(clamp(38px,4.6vw,72px)*var(--hs));line-height:1.02;margin-bottom:34px}
.ft__btns{display:flex;gap:12px;flex-wrap:wrap}
.ft__rings svg{width:100%;max-width:300px;margin-left:auto;display:block;overflow:visible}
.ft__rings circle,.ft__rings .dm{fill:none;stroke:var(--gold);stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.4s var(--ease2)}
.ft__rings .r2{transition-delay:.5s}.ft__rings .dm{transition-delay:1.1s}
.ft.in .ft__rings circle,.ft.in .ft__rings .dm{stroke-dashoffset:0}
.ft__rings .sp{fill:var(--gold2);animation:twinkle 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.ft__rings .s2{animation-delay:1.4s}
.ft__rings svg{animation:bob 8s ease-in-out infinite}
.ft__grid{display:grid;grid-template-columns:1.25fr 1fr .9fr .9fr 1.1fr;gap:40px;padding:64px 0 40px}
.ft__col h4{font-family:var(--fb);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;font-weight:500}
.ft__col a,.ft__col p{display:block;color:var(--t2);font-size:15px;margin-bottom:11px;transition:color .3s,transform .4s var(--ease)}
.ft__col a:hover{color:var(--gold2);transform:translateX(4px)}
.ft__brand img{width:200px;margin-bottom:22px}
.ft__brand p{color:var(--t3);font-size:14.5px;max-width:300px}
.ft__tel{font-family:var(--fh)!important;font-size:calc(24px*var(--hs))!important;color:var(--ink)!important;white-space:nowrap}
.fpost{padding:12px 14px;border-radius:14px;border:1px solid var(--line2);font-size:14px!important;line-height:1.35;color:var(--ink)!important}
.fpost span{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.fpost:hover{border-color:var(--line);background:rgba(255,255,255,.03)}
.ft__more{color:var(--gold2)!important;font-size:14px!important}
.ft__word{font-family:var(--fh);font-weight:var(--wl);font-size:calc(clamp(40px,8.4vw,150px)*var(--hs));line-height:.95;letter-spacing:-.02em;white-space:nowrap;text-align:center;padding:20px 0 30px;
  color:transparent;-webkit-text-stroke:1px rgba(201,179,138,.28);background:radial-gradient(400px circle at var(--wx,50%) 50%,rgba(232,222,200,.9),rgba(232,222,200,0) 60%);-webkit-background-clip:text;background-clip:text;overflow:hidden;user-select:none}
.ft__bot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--line2);font-size:13px;color:var(--t4)}
.ft__up{height:42px;padding:0 18px;border-radius:999px;border:1px solid var(--line);color:var(--ink);font-size:13px;transition:.35s var(--ease)}
.ft__up:hover{background:var(--gold);color:var(--bg)}
@media(max-width:1100px){.ft__grid{grid-template-columns:1fr 1fr 1fr}.ft__brand{grid-column:1/-1}.ft__top{grid-template-columns:1fr}.ft__rings{display:none}}
@media(max-width:640px){.ft{border-radius:30px 30px 0 0;padding-top:70px}.ft__grid{grid-template-columns:1fr 1fr;gap:28px}.ft__col:nth-child(2),.ft__col:last-child{grid-column:1/-1}.ft__word{font-size:34px;white-space:normal}}
.ft__col .soc a{display:grid;place-items:center;margin:0;transform:none}
.ft__col .soc a:hover{transform:translateY(-4px) rotate(-8deg);color:var(--bg)}
.ft__col p{line-height:1.5}
.fsw__panel{width:400px}
.fsw__scroll{max-height:min(68vh,620px);overflow:auto;padding-right:6px;scrollbar-width:thin}
.fsw__grp{grid-template-columns:repeat(3,1fr)}
.fsw__opt{padding:12px 10px;text-align:center}
.fsw__opt span{font-size:30px;line-height:1.1;color:var(--ink);display:block}
.fsw__opt b{display:block;font-family:'Onest',system-ui,sans-serif;font-weight:500;font-size:12.5px;color:var(--ink);margin-top:6px}
.fsw__opt small{font-family:system-ui,sans-serif;font-size:10.5px;margin-top:2px}
@media(max-width:760px){.fsw__panel{width:calc(100vw - 28px)}}

.bokeh{display:none!important}
.spk{clip-path:none;border-radius:50%;filter:none;opacity:.7}
.orbit::after,.orbit.o3::before,.orbit.o1::before,.fv__orb::after,.deco-orb::after{box-shadow:none!important;width:5px!important;height:5px!important}
.hs__dot::before{box-shadow:0 0 0 4px rgba(var(--gold-rgb),.18)}

@media(max-width:1640px){.deco-art{display:none}}
.ft__word{font-size:var(--fw,120px)!important;white-space:nowrap}
.hdr__phone span{display:none!important}.hdr__phone{padding:0!important;position:relative}
.hdr__phone::after{content:attr(data-tel);position:absolute;top:calc(100% + 10px);right:0;white-space:nowrap;padding:8px 14px;border-radius:999px;background:var(--glass2);border:1px solid var(--line);font-size:14px;color:var(--ink);opacity:0;transform:translateY(-6px);transition:.35s var(--ease);pointer-events:none}
.hdr__phone:hover::after{opacity:1;transform:none}
.hdr__in{max-width:1480px}
@media(min-width:1561px){.hdr .btn .full{display:inline}.hdr .btn .short{display:none}}
@media(max-width:1560px){.hdr .btn .full{display:none}.hdr .btn .short{display:inline}}
.logo{min-width:0}
/* ---- wedding videos ---- */
.vids{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-template-rows:280px 280px;gap:18px}
.vid{position:relative;display:block;border-radius:28px;overflow:hidden;text-align:left;cursor:pointer;isolation:isolate;box-shadow:var(--shadow)}
.vid--big{grid-row:1/3}
.vid__ph{position:absolute;inset:0;display:grid;place-items:center;transition:transform 1.4s var(--ease)}
.vid__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid__ph.v1{background:radial-gradient(120% 90% at 30% 20%,#f6e7cf,#d9bb8e 45%,#7d5f37)}
.vid__ph.v2{background:radial-gradient(120% 90% at 70% 20%,#f3dcd4,#c99b8c 50%,#6b4a45)}
.vid__ph.v3{background:radial-gradient(120% 90% at 40% 30%,#e9e2d3,#b7a789 50%,#4d4535)}
.vid__ph.v4{background:radial-gradient(120% 90% at 50% 20%,#dfe6ee,#93a6bd 50%,#2c3b55)}
.vid__ph.v5{background:radial-gradient(120% 90% at 60% 30%,#f1e3d6,#c8a98a 50%,#5e4630)}
.vid__ph::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.35) 0 2px,transparent 3px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.3) 0 3px,transparent 4px),radial-gradient(circle at 60% 70%,rgba(255,255,255,.25) 0 2px,transparent 3px);background-size:180px 160px;opacity:.7}
.vid__art{width:42%;max-width:220px;opacity:.55}
.vid__art svg{width:100%;overflow:visible}
.vid__art svg *{fill:none;stroke:#fff;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.vid__img~.vid__art{display:none}
.vid__shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,13,24,.75));z-index:1}
.vid__play{position:absolute;z-index:2;left:50%;top:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5);display:grid;place-items:center;transition:transform .5s var(--ease),background .4s}
.vid__play::before,.vid__play::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(255,255,255,.55);animation:fp 2.6s ease-out infinite}
.vid__play::after{animation-delay:1.3s}
.vid__play i{width:0;height:0;border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:6px}
.vid--big .vid__play{width:104px;height:104px;margin:-52px 0 0 -52px}
.vid--big .vid__play i{border-left-width:26px;border-top-width:15px;border-bottom-width:15px}
.vid:hover .vid__ph{transform:scale(1.07)}
.vid:hover .vid__play{transform:scale(1.12);background:var(--grad)}
.vid:hover .vid__play i{border-left-color:var(--btn-ink)}
.vid__dur{position:absolute;z-index:2;right:16px;top:16px;padding:5px 11px;border-radius:999px;background:rgba(8,13,24,.5);backdrop-filter:blur(6px);color:#fff;font-size:12.5px;font-family:system-ui,sans-serif;letter-spacing:.04em}
.vid__cap{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;color:#fff}
.vid__cap small{display:block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:#e8dcc2;margin-bottom:4px}
.vid__cap b{display:block;font-family:var(--fh);font-weight:var(--wb);font-size:calc(20px*var(--hs));line-height:1.2;color:#fff}
.vid--big .vid__cap b{font-size:calc(30px*var(--hs));max-width:440px}
.vmodal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px;background:rgba(3,7,15,.82);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.45s var(--ease)}
.vmodal.open{opacity:1;visibility:visible}
.vmodal__box{position:relative;width:min(1000px,100%);transform:scale(.94);transition:.5s var(--ease)}
.vmodal.open .vmodal__box{transform:none}
.vmodal__box .modal__x{right:-6px;top:-54px;color:#fff;border-color:rgba(255,255,255,.4)}
.vmodal__frame{aspect-ratio:16/9;border-radius:24px;background:radial-gradient(circle at 50% 40%,#1c2b4d,#080d18);border:1px solid rgba(201,179,138,.35);display:grid;place-items:center;position:relative;color:#e8dcc2;font-family:var(--fh);font-size:24px}
.vmodal__frame .vid__play{position:relative;left:auto;top:auto;margin:0 0 -60px}
.vmodal__frame p{margin:150px 0 0}
@media(max-width:900px){.vids{grid-template-columns:1fr 1fr;grid-template-rows:320px 220px 220px}.vid--big{grid-column:1/3;grid-row:auto}}
@media(max-width:560px){.vids{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:240px}.vid--big{grid-column:auto}}
@media(max-width:760px){
  .fab{display:none}
  .fsw{display:none}.fsw.mshow{display:block;left:14px;right:14px;bottom:84px}
  .fsw.mshow .fsw__btn{display:none}.fsw.mshow .fsw__panel{bottom:0}
  .fsw__grp{grid-template-columns:repeat(3,1fr)}
  .vid__play{width:56px;height:56px;margin:-28px 0 0 -28px;left:auto;right:16px;top:auto;bottom:16px;margin:0}
  .vid--big .vid__play{width:64px;height:64px;margin:0}
  .vid__cap{right:90px}
  .vid--big .vid__cap b{font-size:calc(22px*var(--hs))}
}

/* ===== v4 ===== */
.btn--gold{background:var(--btnbg)!important;color:var(--btnfg)!important;box-shadow:0 14px 30px -14px rgba(20,33,61,.45),inset 0 1px 0 rgba(255,255,255,.18)!important;font-weight:500;letter-spacing:.02em}
.btn--gold:hover{color:var(--btnfg)!important;box-shadow:0 20px 40px -14px rgba(20,33,61,.55),0 0 0 1px rgba(var(--gold-rgb),.6),inset 0 1px 0 rgba(255,255,255,.25)!important}
html:not([data-theme="light"]) .btn--gold{box-shadow:0 14px 34px -16px rgba(var(--gold-rgb),.7),inset 0 1px 0 rgba(255,255,255,.45)!important}
.btn--gold .arr{color:var(--acc)}
html:not([data-theme="light"]) .btn--gold .arr{color:inherit}
html[data-theme="light"] .island{border:1px solid rgba(20,33,61,.08);box-shadow:var(--shadow)}
.fate{background:var(--fate-bg)!important}
.fate__stars circle{fill:rgb(var(--particle))}
.fate__sil circle{fill:rgba(var(--gold-rgb),.2)!important}
.fate__ghost{stroke:rgba(var(--gold-rgb),.22)}
.fate__thread{stroke:var(--acc);filter:drop-shadow(0 0 5px rgba(var(--gold-rgb),.6))}
.fate__comet{fill:var(--acc);filter:drop-shadow(0 0 10px rgba(var(--gold-rgb),.9))}
.fc__star{fill:var(--acc)}.fc__core{fill:rgba(var(--gold-rgb),.4)}.fc.on .fc__core{fill:var(--acc)}
.fc.on .fc__halo{fill:rgba(var(--gold-rgb),.14)}.fc:hover .fc__halo{fill:rgba(var(--gold-rgb),.3)}
.fc text{fill:var(--ink);stroke:var(--bg)}.fc.big text{fill:var(--ink)}
.fate__inf path{stroke:var(--acc);filter:drop-shadow(0 0 5px rgba(var(--gold-rgb),.6))}
.fate__inf text{fill:var(--ink)}
.ft{background:var(--ft-bg)!important}
.ft__glow{background:radial-gradient(700px circle at var(--mx,70%) var(--my,20%),rgba(var(--gold-rgb),.12),transparent 60%)}
.ft__word{-webkit-text-stroke:1px rgba(var(--gold-rgb),.35);background:radial-gradient(400px circle at var(--wx,50%) 50%,rgba(var(--gold-rgb),.95),rgba(var(--gold-rgb),0) 60%);-webkit-background-clip:text;background-clip:text}
.fpost:hover{background:rgba(var(--gold-rgb),.06)}
.qs__mark{color:rgba(var(--gold-rgb),.25)}
/* quiz photo: soften the cut edge */
.quiz__ph{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(180deg,#000 70%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(180deg,#000 70%,transparent);mask-composite:intersect;width:280px!important;right:-6px!important}
.badge{width:max-content;max-width:none}
.badge>div{flex:0 0 auto}
.badge small{display:block;line-height:1.35}
.fsw__sws{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fsw__sw{padding:10px 6px 8px;border-radius:14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);text-align:center;transition:.3s}
.fsw__sw i{display:block;width:34px;height:34px;margin:0 auto 6px;border-radius:50%;background:linear-gradient(135deg,var(--l) 0 50%,var(--d) 50% 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 4px 10px -4px rgba(0,0,0,.3);transition:transform .4s var(--ease)}
.fsw__sw small{display:block;font-family:system-ui,sans-serif;font-size:10.5px;color:var(--t3);line-height:1.2}
.fsw__sw:hover i{transform:scale(1.1) rotate(-12deg)}
.fsw__sw.on{border-color:var(--gold);background:rgba(var(--gold-rgb),.1)}
.fsw__sw.on small{color:var(--ink)}
/* badges: fixed generous width, text wraps inside — never overflows */
.badge{width:268px!important;max-width:none}
.badge.b2{width:286px!important}
.badge>div{min-width:0!important;flex:1 1 auto!important}
.badge small{white-space:normal!important;line-height:1.35}
.badge small br{display:none}
/* ---- wedding symbols (cut-out photos) ---- */
.deco-art{display:none!important}
.sym{position:absolute;z-index:2;pointer-events:none;width:var(--w,180px);top:var(--t,40px);filter:drop-shadow(0 18px 24px rgba(60,45,20,.18))}
html:not([data-theme="light"]) .sym{filter:drop-shadow(0 18px 28px rgba(0,0,0,.5)) brightness(.95)}
.sym.r{right:max(8px,calc(50% - 650px + var(--dx,0px)))}
.sym.l{left:max(8px,calc(50% - 650px + var(--dx,0px)))}
.sym img{width:100%;animation:symfloat 9s ease-in-out infinite;animation-delay:var(--dl,0s);transform-origin:50% 80%}
@keyframes symfloat{0%,100%{transform:translateY(0) rotate(var(--rot,-3deg))}50%{transform:translateY(-12px) rotate(calc(var(--rot,-3deg) * -1))}}
.sym.rv{transition:opacity 1.2s var(--ease),transform 1.4s var(--ease),filter 1.2s}
.sym.rv:not(.in){opacity:0;transform:translateY(40px) scale(.85)}
@media(max-width:1180px){.sym{--w:130px!important}.sym.hide-t{display:none}}
@media(max-width:900px){.sym:not(.keep-m){display:none}.sym.keep-m{--w:110px!important}}
/* petals drifting */
.petal{position:absolute;z-index:3;pointer-events:none;width:var(--w,90px);opacity:.9;animation:petal 14s linear infinite;animation-delay:var(--dl,0s)}
@keyframes petal{0%{transform:translate(0,-40px) rotate(0);opacity:0}10%{opacity:.9}90%{opacity:.9}100%{transform:translate(var(--dxp,-120px),520px) rotate(220deg);opacity:0}}
/* video placeholders with real objects */
.vid__obj{position:absolute;inset:0;display:grid;place-items:center}
.vid__obj img{width:58%;max-width:340px;filter:drop-shadow(0 24px 30px rgba(0,0,0,.35));transition:transform 1.4s var(--ease)}
.vid:hover .vid__obj img{transform:scale(1.06) rotate(-2deg)}
.vid__img~.vid__obj{display:none}
.sym.hb{left:-8%;bottom:2%;top:auto;z-index:6}
.sym.hb img{animation-duration:11s}
.qsec .sym.dl{left:max(8px,calc(50% - 520px));top:30px}.qsec .sym.dr{right:max(8px,calc(50% - 520px));top:30px}
.ft__rings{position:relative}
.ft__rings img{display:block;width:100%;max-width:300px;margin-left:auto;filter:drop-shadow(0 24px 30px rgba(60,45,20,.25));animation:symfloat 9s ease-in-out infinite}
.phero__side .sym{z-index:4}

/* pencil sketch background */
.pencil{position:fixed;inset:-40px;z-index:-1;pointer-events:none;background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="560" height="580" viewBox="0 0 560 580"%3E%3Cdefs%3E%3Cfilter id="p"%3E%3CfeTurbulence type="fractalNoise" baseFrequency=".9" numOctaves="2" seed="3"/%3E%3CfeDisplacementMap in="SourceGraphic" scale="2.2"/%3E%3C/filter%3E%3C/defs%3E%3Cg fill="none" stroke="%233a3a3a" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round" filter="url(%23p)"%3E%3Cg transform="translate(40 40) scale(1.0)"%3E%3Ccircle cx="52" cy="66" r="30"/%3E%3Ccircle cx="88" cy="66" r="30"/%3E%3Cpath d="M44 34 L52 24 L60 34 L52 42 Z"/%3E%3C/g%3E%3Cg transform="translate(41.2 40.8) scale(1.0)" opacity=".55"%3E%3Ccircle cx="52" cy="66" r="30"/%3E%3Ccircle cx="88" cy="66" r="30"/%3E%3Cpath d="M44 34 L52 24 L60 34 L52 42 Z"/%3E%3C/g%3E%3Cg transform="translate(320 30) scale(1.0)"%3E%3Cpath d="M38 62 C50 50 70 48 92 52 C100 44 110 42 116 48 L126 52 L116 54 C114 66 102 76 84 78 C66 80 52 76 40 72 L14 80 L22 66 L10 56 Z"/%3E%3Cpath d="M58 54 C52 34 44 18 46 8 C62 16 80 30 90 50"/%3E%3Cpath d="M126 52 C134 56 142 62 152 64"/%3E%3Cellipse cx="134" cy="54" rx="6" ry="2.4" transform="rotate(30 134 54)"/%3E%3Cellipse cx="143" cy="61" rx="6" ry="2.4" transform="rotate(-20 143 61)"/%3E%3C/g%3E%3Cg transform="translate(321.2 30.8) scale(1.0)" opacity=".55"%3E%3Cpath d="M38 62 C50 50 70 48 92 52 C100 44 110 42 116 48 L126 52 L116 54 C114 66 102 76 84 78 C66 80 52 76 40 72 L14 80 L22 66 L10 56 Z"/%3E%3Cpath d="M58 54 C52 34 44 18 46 8 C62 16 80 30 90 50"/%3E%3Cpath d="M126 52 C134 56 142 62 152 64"/%3E%3Cellipse cx="134" cy="54" rx="6" ry="2.4" transform="rotate(30 134 54)"/%3E%3Cellipse cx="143" cy="61" rx="6" ry="2.4" transform="rotate(-20 143 61)"/%3E%3C/g%3E%3Cg transform="translate(190 190) scale(0.9)"%3E%3Cpath d="M60 98 C20 70 8 50 14 32 C20 14 44 10 60 32 C76 10 100 14 106 32 C112 50 100 70 60 98 Z"/%3E%3C/g%3E%3Cg transform="translate(191.2 190.8) scale(0.9)" opacity=".55"%3E%3Cpath d="M60 98 C20 70 8 50 14 32 C20 14 44 10 60 32 C76 10 100 14 106 32 C112 50 100 70 60 98 Z"/%3E%3C/g%3E%3Cg transform="translate(40 300) scale(0.9)"%3E%3Cpath d="M28 30 L52 22 L60 62 C62 74 54 82 46 82 C38 82 32 74 30 62 Z"/%3E%3Cpath d="M45 82 L52 118 M40 120 H64"/%3E%3Cpath d="M112 30 L88 22 L80 62 C78 74 86 82 94 82 C102 82 108 74 110 62 Z"/%3E%3Cpath d="M95 82 L88 118 M76 120 H100"/%3E%3C/g%3E%3Cg transform="translate(41.2 300.8) scale(0.9)" opacity=".55"%3E%3Cpath d="M28 30 L52 22 L60 62 C62 74 54 82 46 82 C38 82 32 74 30 62 Z"/%3E%3Cpath d="M45 82 L52 118 M40 120 H64"/%3E%3Cpath d="M112 30 L88 22 L80 62 C78 74 86 82 94 82 C102 82 108 74 110 62 Z"/%3E%3Cpath d="M95 82 L88 118 M76 120 H100"/%3E%3C/g%3E%3Cg transform="translate(360 280) scale(0.9)"%3E%3Ccircle cx="40" cy="40" r="15"/%3E%3Cpath d="M40 33 a7 7 0 1 1 -7 7"/%3E%3Ccircle cx="72" cy="34" r="16"/%3E%3Cpath d="M72 26 a8 8 0 1 1 -8 8"/%3E%3Ccircle cx="58" cy="64" r="15"/%3E%3Cpath d="M58 57 a7 7 0 1 1 -7 7"/%3E%3Cpath d="M48 78 L58 132 M58 78 L60 132 M70 78 L62 132"/%3E%3Cpath d="M50 108 C40 100 34 112 46 114 C54 115 58 110 60 108 C62 110 66 115 74 114 C86 112 80 100 70 108"/%3E%3C/g%3E%3Cg transform="translate(361.2 280.8) scale(0.9)" opacity=".55"%3E%3Ccircle cx="40" cy="40" r="15"/%3E%3Cpath d="M40 33 a7 7 0 1 1 -7 7"/%3E%3Ccircle cx="72" cy="34" r="16"/%3E%3Cpath d="M72 26 a8 8 0 1 1 -8 8"/%3E%3Ccircle cx="58" cy="64" r="15"/%3E%3Cpath d="M58 57 a7 7 0 1 1 -7 7"/%3E%3Cpath d="M48 78 L58 132 M58 78 L60 132 M70 78 L62 132"/%3E%3Cpath d="M50 108 C40 100 34 112 46 114 C54 115 58 110 60 108 C62 110 66 115 74 114 C86 112 80 100 70 108"/%3E%3C/g%3E%3Cg transform="translate(210 420) scale(0.8)"%3E%3Cpath d="M30 80 C30 50 40 30 55 30 C70 30 80 50 80 80 Z"/%3E%3Cpath d="M60 82 C64 54 76 38 90 40 C104 42 110 62 106 90 Z"/%3E%3Ccircle cx="55" cy="88" r="5"/%3E%3Ccircle cx="96" cy="96" r="5"/%3E%3Cpath d="M50 26 C55 10 75 10 80 26"/%3E%3C/g%3E%3Cg transform="translate(211.2 420.8) scale(0.8)" opacity=".55"%3E%3Cpath d="M30 80 C30 50 40 30 55 30 C70 30 80 50 80 80 Z"/%3E%3Cpath d="M60 82 C64 54 76 38 90 40 C104 42 110 62 106 90 Z"/%3E%3Ccircle cx="55" cy="88" r="5"/%3E%3Ccircle cx="96" cy="96" r="5"/%3E%3Cpath d="M50 26 C55 10 75 10 80 26"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:240px 249px;opacity:.07}
html:not([data-theme="light"]) .pencil{filter:invert(1);opacity:.05}
/* ===== v6 ===== */
/* symbols live only in side gutters — never over text */
.sym{width:min(var(--w,180px),calc((100vw - 1300px)/2 - 10px));left:auto;right:auto}
.sym.r{left:calc(50% + 645px + var(--dx,0px))!important;right:auto!important}
.sym.l{right:calc(50% + 645px);left:auto!important}
.sym.fx img{scale:-1 1}
@media(max-width:1560px){.sym.l,.sym.r{display:none}}
.sym.hb{left:-6%!important;right:auto!important;bottom:4%;top:auto;width:220px}
.sym.qg{left:auto!important;right:auto!important;margin-left:-40px;bottom:-30px;top:auto;width:150px;z-index:6}
.qsec .sym.dl,.qsec .sym.dr{width:150px;display:block}
@media(max-width:1100px){.qsec .sym.dl,.qsec .sym.dr{display:none}}
/* quiz photo: soft fade on both sides (image is mirrored) */
.quiz__ph{-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%,#000 80%,transparent),linear-gradient(180deg,#000 62%,transparent 98%)!important;mask-image:linear-gradient(90deg,transparent,#000 22%,#000 80%,transparent),linear-gradient(180deg,#000 62%,transparent 98%)!important;-webkit-mask-composite:source-in!important;mask-composite:intersect!important;right:14px!important;width:260px!important}
/* CTA blue blob -> theme tone */
.cta::after{background:radial-gradient(circle,rgba(var(--gold-rgb),.18),transparent 60%)!important}
html:not([data-theme="light"]) .cta::after{background:radial-gradient(circle,rgba(60,96,170,.35),transparent 60%)!important}
.cta.has-ph>.cta__ph{-webkit-mask-image:linear-gradient(180deg,#000 80%,transparent 99%);mask-image:linear-gradient(180deg,#000 80%,transparent 99%)}
/* presence map */
.fate{display:none}
.pmap{position:relative;margin:60px 0;padding:110px 0 70px;overflow:hidden;background:var(--fate-bg)}
.pmap__head{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end}
.pmap__head .h2{margin:0}
.pmap__side p{color:var(--t2)}
.pmap__stats{display:flex;gap:34px;margin-top:20px;flex-wrap:wrap}
.pmap__stats b{display:block;font-family:var(--fh);font-size:calc(52px*var(--hs));line-height:1;color:var(--acc);font-weight:var(--wl)}
.pmap__stats span{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);line-height:1.5;margin-top:8px}
.pmap__stage{perspective:1600px;max-width:1320px;margin:30px auto 0;padding:0 20px}
.pmap__tilt{position:relative;transform-style:preserve-3d;transform:rotateX(18deg);transition:transform .9s var(--ease)}
.pmap__svg{width:100%;overflow:visible;display:block}
.pmap__dots circle{fill:rgba(var(--gold-rgb),.22);animation:pdot 6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes pdot{0%,100%{fill-opacity:.55}50%{fill-opacity:1}}
.pc{opacity:0;transform-box:fill-box}
.pmap.in .pc{animation:pcin .9s var(--ease) both;animation-delay:calc(var(--i)*90ms + .2s)}
@keyframes pcin{from{opacity:0;translate:0 -30px}to{opacity:1;translate:0 0}}
.pc__core{fill:var(--acc);stroke:var(--bg);stroke-width:2}
.pc__halo{fill:rgba(var(--gold-rgb),.16)}
.pc__w{fill:none;stroke:var(--acc);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center}
.pmap.in .pc__w{animation:pwave 3.6s ease-out infinite;animation-delay:calc(var(--p) + 1.5s)}
.pmap.in .pc__w.w2{animation-delay:calc(var(--p) + 2.7s)}
@keyframes pwave{0%{transform:scale(.6);opacity:.9}100%{transform:scale(5);opacity:0}}
.pc text{font-family:var(--fb);font-size:14px;fill:var(--ink);opacity:0;paint-order:stroke;stroke:var(--bg);stroke-width:4px;transition:opacity .4s}
.pc.lbl text{opacity:.85}
.pc.big .pc__halo{r:18px}.pc.big text{font-size:18px;font-weight:600}
.pc:hover text{opacity:1}
.pc:hover .pc__core{fill:var(--ink)}
.pc{cursor:pointer}
.pmap__tip{position:absolute;padding:10px 16px;border-radius:14px;background:var(--glass2);border:1px solid var(--line);box-shadow:var(--shadow);font-size:14px;color:var(--ink);pointer-events:none;opacity:0;transform:translate(-50%,-130%) scale(.9);transition:opacity .25s,transform .3s var(--ease);white-space:nowrap}
.pmap__tip.on{opacity:1;transform:translate(-50%,-140%) scale(1)}
.pmap__tip small{display:block;color:var(--t3);font-size:12px}
@media(max-width:900px){.pmap__head{grid-template-columns:1fr}.pmap__tilt{transform:none}.pc text{font-size:22px}}
/* 3D word reveal */
[data-split] .w{perspective:600px}
[data-split] .w>span{transform:translateY(80%) rotateX(-75deg)!important;transform-origin:50% 100%}
[data-split].in .w>span{transform:none!important}
/* 3D rings in hero */
.r3d{position:absolute;z-index:1;left:50%;bottom:42%;width:420px;height:420px;transform:translateX(-50%);perspective:1000px;pointer-events:none}
.r3d i{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(var(--gold-rgb),.45);transform-style:preserve-3d;animation:r3d 14s linear infinite}
.r3d i:nth-child(2){inset:30px;border-color:rgba(var(--gold-rgb),.3);animation-duration:20s;animation-direction:reverse}
.r3d i:nth-child(3){inset:-60px;border-style:dashed;border-color:rgba(var(--gold-rgb),.18);animation-duration:30s}
@keyframes r3d{from{transform:rotateX(70deg) rotateZ(0)}to{transform:rotateX(70deg) rotateZ(360deg)}}
/* heart cursor */



.hcur{position:fixed;left:0;top:0;width:64px;height:64px;margin:-32px 0 0 -32px;pointer-events:none;z-index:999}
.hcur svg{width:100%;height:100%;overflow:visible}
.hcur .hh{fill:var(--acc);transform-origin:32px 34px;transform:scale(.42);transition:transform .45s cubic-bezier(.3,1.6,.5,1),fill .3s}
.hcur .ha{opacity:0;transition:opacity .2s}
.hcur.big .hh{transform:scale(.8);fill:rgba(var(--gold-rgb),.85)}
.hcur.big .ha{opacity:1;animation:pierce .45s cubic-bezier(.2,.9,.25,1.2) both}
@keyframes pierce{from{transform:translate(-26px,26px)}to{transform:none}}
.hcur.down .hh{transform:scale(.6)}
.hcur.beat .hh{animation:hbeat 1.2s ease-in-out infinite}
@keyframes hbeat{0%,100%{transform:scale(.42)}15%{transform:scale(.52)}30%{transform:scale(.44)}45%{transform:scale(.5)}}
@media(hover:none),(max-width:900px){.hcur{display:none}}
/* 3D tilt everywhere */
.tilt3d{transform-style:preserve-3d;will-change:transform}
.pmap__dots circle{fill:rgba(var(--gold-rgb),.42)}
.pmap__tilt{transform:rotateX(12deg)}
.pc__core{r:5px}.pc.big .pc__core{r:8px}
/* ---- cupid cursor (vector) ---- */
html.hc,html.hc *{cursor:none!important}
html.hc input,html.hc textarea{cursor:text!important}
.cur,.cur-ring{display:none!important}
.cupid{position:fixed;left:0;top:0;width:58px;height:47px;margin:-4.7px 0 0 -3.4px;pointer-events:none;z-index:1000;transform-origin:3.4px 4.7px;transition:opacity .2s}
.cupid svg{width:100%;height:100%;overflow:visible;display:block}
.cupid svg *{transform-box:view-box}
.cp-in{transform-origin:200px 150px;animation:cpFloat 3.4s ease-in-out infinite;transition:transform .55s cubic-bezier(.3,.9,.3,1.2)}
@keyframes cpFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
.cp-body path,.cp-wing path{fill:none;stroke:var(--acc);stroke-width:3.6;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke}
.cupid svg{filter:drop-shadow(0 0 .6px rgba(255,255,255,.9))}
html:not([data-theme="light"]) .cupid svg{filter:drop-shadow(0 0 .6px rgba(0,0,0,.9)) drop-shadow(0 0 3px rgba(var(--gold-rgb),.3))}
.cp-wing{transform-origin:250px 160px;animation:cpFlap 1s ease-in-out infinite}
@keyframes cpFlap{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(5deg) scaleY(.92)}}
.cp-str{fill:none;stroke:var(--acc);stroke-width:1.6;opacity:.6;transition:d .5s cubic-bezier(.3,.9,.3,1.2)}
.cp-heart{fill:#e07a80;stroke:none;transform-origin:45px 40px;animation:cpBeat 2.6s ease-in-out infinite}
@keyframes cpBeat{0%,60%,100%{transform:scale(1)}70%{transform:scale(1.18)}80%{transform:scale(1)}90%{transform:scale(1.1)}}
.cp-arrow{transition:transform .5s cubic-bezier(.3,.9,.3,1.2)}
.cupid.aim .cp-in{transform:rotate(6deg) scale(1.05)}
.cupid.aim .cp-arrow{transform:translate(22px,12px)}
.cupid.aim .cp-str{d:path("M186 15 L196 168 L108 186")}
.cupid.aim .cp-wing{animation-duration:.42s}
.cupid.aim .cp-heart{animation-duration:.9s;fill:#e8606b}
.cupid.shoot .cp-arrow{animation:cpShoot .6s cubic-bezier(.2,.9,.2,1)}
@keyframes cpShoot{0%{transform:translate(22px,12px)}30%{transform:translate(-70px,-40px);opacity:0}31%{transform:translate(10px,6px);opacity:0}100%{transform:none;opacity:1}}
.cupid.shoot .cp-in{animation:cpFloat 3.4s ease-in-out infinite,cpRecoil .4s ease-out}
@keyframes cpRecoil{30%{scale:.93}}
@media(hover:none){.cupid{display:none}}
/* hotspot popup always on top */
.hs{z-index:7}
.hs.open{z-index:60}
.hs.open .hs__pop{z-index:61}
.hero__photo:has(.hs.open) .badge{z-index:4}
/* hero: no empty space on tall screens */
.hero{min-height:0!important;padding-top:56px!important}
.hero__grid{min-height:clamp(600px,calc(100vh - 130px),820px)!important;align-items:center!important}
.hero__txt{padding-bottom:40px!important;align-self:center}
.hero__photo{align-self:end!important}
@media(max-width:900px){.hero__grid{min-height:0!important}}
.revgrid .rev{width:auto}
.mchip{display:inline-flex;align-items:center;height:34px;padding:0 14px;margin:4px 6px 0 0;border-radius:999px;border:1px solid var(--line2);font-size:13.5px;color:var(--ink);transition:.3s}
.mchip:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.1);color:var(--ink)}
.mega__links .mega__group{margin-top:6px}
.mchips{grid-column:1/-1;padding:0 12px 4px}
.ft__made{display:inline-flex;align-items:center;gap:6px;color:var(--t3);font-size:13px;transition:color .3s}
.ft__made b{font-weight:600;color:var(--ink);transition:color .3s}
.ft__made:hover,.ft__made:hover b{color:var(--acc)}
.ft__heart{display:inline-block;color:#e0606b;font-size:15px;line-height:1;animation:ftBeat 1.6s ease-in-out infinite}
.ft__made:hover .ft__heart{animation-duration:.6s}
@keyframes ftBeat{0%,60%,100%{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(1)}45%{transform:scale(1.18)}}
.ft__right{display:inline-flex;align-items:center;gap:18px;margin-left:auto}
/* ===== photos: no fades — cut edge sits flush on the block edge ===== */
.hero__photo img,.founder__vis img,.ps__vis img,.cta__ph,.quiz__ph,.cta.has-ph>.cta__ph{-webkit-mask-image:none!important;mask-image:none!important}
/* hero: photo stands on the bottom edge of the first screen */
.hero{overflow:hidden}
.hero__grid{align-items:stretch!important}
.hero__txt{align-self:center}
.hero__photo{align-self:end!important;margin-bottom:0}
.hero__photo img{display:block;margin-bottom:0}
/* founder & inner heroes: photo framed in a soft panel, flush with its bottom */
.founder__vis{min-height:640px;border-radius:40px;overflow:hidden;background:radial-gradient(90% 80% at 50% 100%,rgba(var(--gold-rgb),.28),rgba(var(--gold-rgb),.08) 55%,transparent 80%),var(--card);border:1px solid var(--line2);box-shadow:var(--shadow);align-items:flex-end;padding-top:40px}
.founder__vis img{width:min(470px,92%);margin-bottom:0}
.founder__vis .fv__tag{bottom:28px;left:22px}
.founder__vis .fv__ring{right:22px;top:22px}
.phero__side{min-height:560px!important}
.ps__vis{position:absolute;inset:0!important;border-radius:40px;overflow:hidden;background:radial-gradient(90% 80% at 50% 100%,rgba(var(--gold-rgb),.3),rgba(var(--gold-rgb),.08) 55%,transparent 80%),var(--card);border:1px solid var(--line2);box-shadow:var(--shadow);display:flex;align-items:flex-end;justify-content:center}
.ps__vis img{width:min(420px,88%)!important;margin:0!important}
/* quiz: photo flush with card's bottom-right corner */
.quiz__ph{right:0!important;bottom:0!important;width:250px!important;transform:scaleX(-1)!important}
.quiz:hover .quiz__ph{transform:scaleX(-1)!important}
/* CTA: photo stands on the card bottom */
.cta.has-ph{padding-bottom:0!important}
.cta.has-ph>.cta__ph{margin-bottom:0!important;align-self:end}
.cta.has-ph>.cta__ph[src*="wave"]{margin-bottom:0!important}
.cta.has-ph>div:first-child,.cta.has-ph .form{margin-bottom:0}
.cta.has-ph .form{margin-bottom:58px}
.cta:hover .cta__ph{transform:none!important}
@media(max-width:900px){.phero__side{min-height:440px!important}.founder__vis{min-height:480px}}
.phero__side{margin-top:24px}
/* v7: cutout photos — every cut edge sits exactly on a block edge */
.ps__vis:has(img[src*="polo"]){justify-content:flex-end}
.ps__vis img[src*="polo"]{width:min(440px,94%)!important;margin:0!important}
.quiz__ph{right:0!important;bottom:0!important;width:280px!important;transform:scaleX(-1)!important}
.quiz:hover .quiz__ph{transform:scaleX(-1)!important}
.cta.has-ph>.cta__ph[src*="wave"]{margin-bottom:-14%!important}
.cta.has-ph{border-bottom-color:rgba(var(--gold-rgb),.35)}
.ps__vis img[src*="wave"]{margin-bottom:-12%!important}
@media(min-width:1101px){.quiz{grid-template-columns:.72fr 1.28fr}.quiz__main{padding-right:300px!important}.quiz__ph{width:270px!important}}
.cta.has-ph>.cta__ph[src*="wave"]{margin-bottom:-24%!important}
.ps__vis img[src*="wave"]{width:min(470px,100%)!important;margin-bottom:-26%!important}
.cta.has-ph>.cta__ph[src*="wave"],.ps__vis img[src*="wave"]{margin-bottom:0!important;translate:0 27%}
.ps__vis img[src*="wave"]{width:min(520px,112%)!important}
/* borders as inset outlines so the photo covers them — no stripe under photos */
.cta.has-ph,.ps__vis,.founder__vis,.quiz{border:0!important}
.cta.has-ph{box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.35),var(--shadow)}
.ps__vis,.founder__vis,.quiz{box-shadow:inset 0 0 0 1px var(--line2),var(--shadow)!important}
.quiz{box-shadow:inset 0 0 0 1px var(--line),var(--shadow)!important}
@media(min-width:1101px) and (max-width:1320px){.quiz__main{padding-right:250px!important}.quiz__ph{width:230px!important}}
.cta.has-ph>.cta__ph[src*="wave"]{width:150%!important;margin-left:-22%!important;translate:0 22%}
/* v8: no photo cards — free cutouts resting on a thin line */
.phero{padding-bottom:0!important}
.phero__grid{align-items:end!important;border-bottom:1px solid rgba(var(--gold-rgb),.55)}
.phero__grid>div:first-child{align-self:center;padding:10px 0 80px}
.phero__side{min-height:600px!important;margin-top:0!important}
.ps__vis{position:absolute!important;inset:-160px -10px 0 -10px!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden;display:flex;align-items:flex-end;justify-content:center!important}
.ps__vis img{width:min(430px,100%)!important;margin:0!important}
.ps__vis img[src*="polo-half"]{width:min(560px,112%)!important}
.ps__vis img[src*="wave"]{width:min(470px,100%)!important}
.founder__vis{background:none!important;box-shadow:none!important;border-radius:0!important;border:0!important;border-bottom:1px solid rgba(var(--gold-rgb),.55)!important;padding-top:0!important;overflow:hidden}
.founder__vis img{width:min(500px,100%)!important}
@media(max-width:900px){.phero__side{min-height:460px!important}.phero__grid>div:first-child{padding-bottom:20px}}
.hero{padding-bottom:0!important}.hero__grid{margin-bottom:0!important;padding-bottom:0!important}.hero__photo{padding-bottom:0!important;margin-bottom:0!important}.facts-wrap{padding-top:0;position:relative;z-index:3}.facts-wrap .facts{border-top-color:rgba(var(--gold-rgb),.55)}
.ps__vis{overflow:visible!important}
.phero{overflow:hidden}
.phero + section.wrap{margin-top:48px!important}
/* v9: unique photo per inner page, rings + service hotspots behind it */
.phero__side{min-height:640px!important;position:relative}
.phero .ps__vis{inset:-170px -20px 0 -20px!important;overflow:visible!important;display:flex;align-items:flex-end;justify-content:center!important;pointer-events:none}
.phero .ps__vis img.ps__ph{position:relative;z-index:3;width:auto!important;height:auto!important;max-height:700px;max-width:118%!important;margin:0!important;translate:none!important}
.ps__halo{position:absolute;z-index:1;left:50%;bottom:8%;width:min(680px,140%);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(var(--gold-rgb),.30) 0%,rgba(var(--gold-rgb),.10) 38%,transparent 64%)}
.phero .ps__vis .r3d{bottom:36%;width:380px;height:380px}
.phero .ps__vis .orbit{bottom:16%}
.phero .ps__vis .orbit.o1{width:500px;height:500px}.phero .ps__vis .orbit.o2{width:700px;height:700px}.phero .ps__vis .orbit.o4{width:300px;height:300px}
.phero .ps__vis .ripple{left:50%;bottom:44%}
.ps__hs{position:absolute;inset:0;z-index:8}
.ps__hs .hs{pointer-events:auto}
.ps--sym .ps__sym{position:relative;z-index:3;width:min(400px,86%);margin-bottom:110px;filter:drop-shadow(0 30px 40px rgba(60,40,10,.18));animation:symfl 7s ease-in-out infinite}
@keyframes symfl{50%{transform:translateY(-14px) rotate(-2deg)}}
@media(max-width:1100px){.phero .ps__vis .orbit.o2{display:none}}
@media(max-width:900px){.phero__side{min-height:500px!important}.phero .ps__vis img.ps__ph{max-height:520px}.phero .ps__vis .r3d{width:300px;height:300px}.ps__hs .hs.l{left:16%!important}.ps__hs .hs.r{left:84%!important}}
/* quiz: armchair photo, cut on the right → flush to the card's right-bottom corner */
.quiz__ph[src*="armchair-white"]{transform:none!important;right:0!important;bottom:0!important;width:290px!important}
.quiz:hover .quiz__ph[src*="armchair-white"]{transform:none!important}
/* blog CTA: photo cut on the left → flush to the card's left edge */
.cta.has-ph{padding-left:0!important}
.cta.has-ph>.cta__ph--l{width:100%!important;margin:0!important;justify-self:start;translate:none}
.cta.has-ph:has(.cta__ph--l){grid-template-columns:minmax(340px,1fr) 1.15fr!important;gap:22px 48px}
.cta.has-ph>.cta__ph--l{width:112%!important;max-width:520px}
.quiz__ph[src*="armchair-white"]{width:330px!important}
@media(min-width:1101px){.quiz:has(.quiz__ph[src*="armchair-white"]) .quiz__main{padding-right:320px!important}}
.phero .ps__vis img.ps__ph{height:640px!important;max-height:none;width:auto!important;max-width:118%!important;object-fit:contain;object-position:50% 100%}
@media(max-width:900px){.phero .ps__vis img.ps__ph{height:500px!important}}
/* quiz without photo */
@media(min-width:1101px){.quiz:not(:has(.quiz__ph)) .quiz__main{padding-right:56px!important}}
/* photos whose cut is on the right side: run to the screen edge, line runs full width */
.phero .ps--bleed{right:calc(-1*((100vw - min(var(--wrap),100vw))/2 + 28px))!important;justify-content:flex-end!important}
.phero .ps--bleed img.ps__ph{object-position:100% 100%;max-width:none!important}
.phero:has(.ps--bleed) .phero__grid{border-bottom:0}
.phero:has(.ps--bleed){border-bottom:1px solid rgba(var(--gold-rgb),.55)}
@media(max-width:717px){.phero .ps--bleed{right:-18px!important}}
.phero .ps__vis img.ps__ph[src*="wave"]{margin-bottom:-6px!important}
/* hotspot popups: right-side points open towards the photo */
.ps__hs .hs.r .hs__pop{left:auto;right:34px;transform:translateX(20px) scale(.92);transform-origin:100% 20%}
.hs.flip.l .hs__pop{right:auto;left:34px;transform-origin:0 20%}
.hs.flip.r .hs__pop{left:34px!important;right:auto!important;transform-origin:0 20%}
.ps__hs .hs.r.flip .hs__pop{left:34px!important;right:auto!important}
.hs.open .hs__pop{transform:none!important}
/* theme switch: soft diagonal "dusk / dawn" veil sliding from the top */
html.vt-wipe::view-transition-group(root){animation-duration:1.15s}
html.vt-wipe::view-transition-new(root){
  -webkit-mask-image:linear-gradient(172deg,#000 0%,#000 38%,rgba(0,0,0,.55) 46%,transparent 58%);mask-image:linear-gradient(172deg,#000 0%,#000 38%,rgba(0,0,0,.55) 46%,transparent 58%);
  -webkit-mask-size:100% 280%;mask-size:100% 280%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:vtVeil 1.15s cubic-bezier(.7,0,.25,1) both}
html.vt-wipe::view-transition-old(root){animation:vtFade 1.15s cubic-bezier(.7,0,.25,1) both}
@keyframes vtVeil{from{-webkit-mask-position:0 100%;mask-position:0 100%}to{-webkit-mask-position:0 0;mask-position:0 0}}
@keyframes vtFade{from{filter:none;transform:none}to{filter:blur(6px) saturate(.8);transform:scale(1.015)}}
.ps__hs{pointer-events:none}
@media(max-width:900px){.ps__hs{display:none}.hero .hs__pop{width:min(260px,calc(100vw - 40px))}}
.phero .ps--bleed img.ps__ph[src*="desk"]{height:auto!important;width:min(760px,54vw)!important}
@media(max-width:900px){.phero .ps--bleed img.ps__ph[src*="desk"]{width:100vw!important}}
.quiz>.quiz__ph{position:absolute;z-index:1}
@media(max-width:900px){.phero__side:has(img[src*="desk"]){min-height:330px!important}}

/* body text picker + writing variants */
.fsw__body{grid-template-columns:1fr 1fr!important}
.fsw__bopt{padding:11px 13px;border-radius:16px;border:1px solid var(--line2);text-align:left;transition:.3s;background:rgba(255,255,255,.02)}
.fsw__bopt span{display:block;font-size:15px;line-height:1.25;color:var(--ink);font-family:var(--fb)}
.fsw__bopt b{display:block;font-size:12.5px;font-weight:600;margin-top:5px;color:var(--t2);font-family:'Onest',sans-serif}
.fsw__bopt small{display:block;font-size:11px;color:var(--t3);font-family:'Onest',sans-serif}
.fsw__bopt:hover{border-color:rgba(var(--gold-rgb),.5)}
.fsw__bopt.on{border-color:var(--gold);background:rgba(var(--gold-rgb),.1)}
.fsw__seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;border-radius:14px;border:1px solid var(--line2)}
.fsw__seg button{height:38px;border-radius:10px;font-size:13px;color:var(--t2);font-family:'Onest',sans-serif;transition:.25s}
.fsw__seg button:hover{color:var(--ink);background:rgba(var(--gold-rgb),.08)}
.fsw__seg button.on{background:rgba(var(--gold-rgb),.16);color:var(--ink);box-shadow:inset 0 0 0 1px var(--gold)}
.fsw__grp+.fsw__h,.fsw__seg+.fsw__h{margin-top:16px}
.disp,.disp *{font-family:var(--fh)}
/* ===== mobile fit fixes ===== */
h1,h2,h3{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
@media(max-width:600px){
  .hdr__right{flex-shrink:0}
  .logo{min-width:0;gap:10px}
  .logo__t{font-size:11px!important;letter-spacing:.07em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .logo__t small{font-size:8.5px;letter-spacing:.12em}
  .badge,.badge.b2{width:auto!important;max-width:calc(100% - 12px)!important;white-space:normal}
  .badge.b1{left:6px!important;right:auto!important}
  .badge.b2{right:6px!important;left:auto!important}
  .gban{padding:30px 20px!important;gap:18px!important}
  .gban h3{font-size:calc(25px*var(--hs))!important}
  .gban>*{min-width:0}
  .timeline{grid-template-columns:1fr 1fr!important}
  .timeline>div{min-width:0}
  .phero .ps__vis img.ps__ph{max-width:100%!important;height:auto!important;max-height:480px}
}
@media(max-width:380px){.logo__t small{display:none}.logo img{height:28px}}
@media(max-width:600px){.phero .ps__vis{left:0!important;right:0!important}}
@media(max-width:600px){.logo{flex:0 1 auto!important;overflow:hidden}.hdr__right{gap:8px}.hdr .theme-btn,.hdr .burger{width:44px;height:44px}}
/* CTA with photo: heading runs across the full card on top */
.cta.has-ph{grid-template-areas:"head head" "ph txt" "ph form"!important;grid-template-rows:auto auto 1fr}
.cta.has-ph>.cta__head{grid-area:head!important;padding-left:34px;max-width:none}
.cta.has-ph>.cta__head h2{margin-bottom:0}
.cta.has-ph>.cta__txt{grid-area:txt!important}
.cta.has-ph .form{align-self:end}
@media(max-width:1100px){.cta.has-ph{grid-template-areas:"head" "txt" "form"!important;grid-template-rows:auto}.cta.has-ph>.cta__head{padding-left:0}}
@media(min-width:1101px){
 .cta.has-ph{grid-template-rows:auto auto auto!important}
 .cta.has-ph>.cta__ph,.cta.has-ph>.cta__ph[src*="wave"],.cta.has-ph>.cta__ph--l{grid-area:ph!important;align-self:stretch!important;height:0!important;min-height:calc(100% + 0px)!important;width:100%!important;max-width:none!important;margin:0!important;translate:none!important;object-fit:contain;object-position:50% 100%}
 .cta.has-ph .form{align-self:start!important;margin-top:18px}
 .cta.has-ph>.cta__txt{min-height:0}
}
@media(max-width:600px){
  .hero .badge{z-index:7!important;padding:9px 12px!important}
  .hero .sym.hb{--w:110px!important;width:110px!important;left:-8px!important;right:auto!important;bottom:0!important;top:auto!important;z-index:5!important}
  .hero .badge.b1{top:auto!important;bottom:34%!important}
  .hero .badge.b2{bottom:8%!important;top:auto!important}
}
