/* ASI Design - invitations that move */
:root{
  --bg:#0D0A0E;
  --bg-2:#151117;
  --bg-3:#1E1922;
  --line:rgba(255,236,224,.1);
  --line-2:rgba(255,236,224,.18);
  --text:#F6EFE9;
  --muted:#B5AAB0;
  --gold:#EFD3A8;
  --rose:#E9A6A1;
  --lilac:#C8A8EA;
  --ink:#1B1013;
  --grad:linear-gradient(100deg,#F6DFB8 0%,#EBAAA3 52%,#C6A4E8 100%);
  --ease:cubic-bezier(.22,1,.36,1);
  --r:26px;
  --wrap:min(1320px,100% - 64px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scrollbar-color:#3a2f37 var(--bg)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:"Google Sans",system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
svg{display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--rose);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:8px}
.wrap{width:var(--wrap);margin-inline:auto}
.ltr{direction:ltr;unicode-bidi:embed}
.skip{position:absolute;top:-60px;inset-inline-start:16px;z-index:999;background:var(--gold);color:var(--ink);padding:10px 16px;border-radius:12px}
.skip:focus{top:16px}
.grad{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.soft{color:#8E8189}
.scroll-progress{position:fixed;inset:0 0 auto;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:right;z-index:300}

/* grain */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:400;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* type helpers */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;letter-spacing:.08em;color:var(--gold);min-height:22px}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor}
.display{font-size:clamp(34px,4.3vw,72px);font-weight:500;letter-spacing:-.045em;line-height:.98;margin-top:18px}
.lead{font-size:19px;color:var(--muted);max-width:480px;line-height:1.7}
.line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.line-inner{display:block}
.js .line-inner{transform:translateY(110%)}
.js [data-reveal]{opacity:0;transform:translateY(30px)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.caret{display:inline-block;width:3px;height:.9em;background:var(--rose);margin-inline-start:4px;vertical-align:-.1em;border-radius:2px;animation:blink 1s steps(1) infinite}
.type-caret{display:inline-block;width:2px;height:1em;background:currentColor;margin-inline-start:3px;vertical-align:-.15em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:44px}
.sec-head--c{justify-content:center;text-align:center}
.sec-head--c .eyebrow{justify-content:center}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 26px;border-radius:99px;font-weight:500;font-size:16px;white-space:nowrap;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s}
.btn svg{width:20px;height:20px}
.btn--gold{background:var(--grad);color:var(--ink);box-shadow:0 16px 40px -18px rgba(235,170,163,.7)}
.btn--gold:hover{box-shadow:0 22px 50px -16px rgba(235,170,163,.85)}
.btn--ghost{box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text)}
.btn--ghost:hover{background:rgba(255,255,255,.06)}
.btn--xl{height:72px;padding:0 36px;font-size:19px}
.btn--xl svg{width:24px;height:24px}
.btn .ic{width:30px;height:30px;border-radius:50%;background:rgba(27,16,19,.12);display:grid;place-items:center;margin-inline-end:-12px}
.btn .ic svg{width:14px;height:14px}

/* preloader */
.preloader{position:fixed;inset:0;z-index:500;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px}
html:not(.js) .preloader{display:none}
.preloader__word{position:relative;font-size:clamp(48px,9vw,120px);font-weight:600;letter-spacing:-.05em;line-height:1}
.preloader__base{color:transparent;-webkit-text-stroke:1px rgba(246,239,233,.25)}
.preloader__fill{position:absolute;inset:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;clip-path:inset(0 0 0 100%)}
.preloader__bar{width:180px;height:2px;background:var(--line);overflow:hidden;border-radius:2px}
.preloader__bar span{display:block;height:100%;background:var(--grad);transform:scaleX(0);transform-origin:right}
.preloader__count{font-size:13px;color:var(--muted);letter-spacing:.1em;direction:ltr}

/* header */
.hdr{position:fixed;inset:0 0 auto;z-index:200;padding:18px 0;transition:background .4s,padding .4s,border-color .4s;border-bottom:1px solid transparent}
.js .hdr{opacity:0}
.hdr.is-scrolled{background:rgba(13,10,14,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);padding:10px 0;border-color:var(--line)}
.hdr__in{display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;margin-inline-end:auto}
.brand img{height:34px;width:auto}
.brand__mark{width:42px;height:42px;border-radius:14px;background:var(--grad);color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:20px;letter-spacing:-.04em;transform:rotate(-6deg);transition:transform .5s var(--ease)}
.brand:hover .brand__mark{transform:rotate(6deg) scale(1.05)}
.brand__txt b{display:block;font-size:19px;font-weight:600;letter-spacing:-.02em;line-height:1.1}
.brand__txt small{font-size:12px;color:var(--muted);letter-spacing:.06em}
.nav{display:flex;align-items:center;gap:4px}
.nav>a,.nav__btn{padding:10px 16px;border-radius:99px;font-size:15px;color:#DCD2D7;transition:background .3s,color .3s;display:flex;align-items:center;gap:8px}
.nav>a:hover,.nav__btn:hover,.nav__btn[aria-expanded="true"]{background:rgba(255,255,255,.07);color:#fff}
.nav a[aria-current="page"]{color:var(--gold)}
.nav__btn i{width:7px;height:7px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.nav__btn[aria-expanded="true"] i{transform:rotate(225deg) translateY(-1px)}
.nav__grp{position:relative}
.dd{position:absolute;top:calc(100% + 10px);inset-inline-start:0;min-width:240px;background:rgba(24,19,26,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;padding:8px;display:grid;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .3s var(--ease)}
.nav__btn[aria-expanded="true"]+.dd{opacity:1;visibility:visible;transform:none}
.dd a{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:12px;font-size:15px;transition:background .25s}
.dd a:hover{background:rgba(255,255,255,.07)}
.dd a[aria-current="page"]{color:var(--gold)}
.dd small,.chip small,.mnav small{font-size:12px;color:var(--muted);direction:ltr}
.hdr__cta{height:46px;padding:0 20px;font-size:15px}
.hdr__cta svg{width:18px;height:18px}
.burger{display:none;width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-2);position:relative}
.burger span{position:absolute;inset-inline:14px;height:1.5px;background:var(--text);transition:transform .4s var(--ease)}
.burger span:first-child{top:19px}.burger span:last-child{top:26px}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:190;background:var(--bg);padding:110px 24px 28px;display:flex;flex-direction:column;overflow-y:auto}
.mnav nav{display:grid;gap:2px}
.mnav a{display:flex;justify-content:space-between;align-items:center;font-size:24px;letter-spacing:-.02em;padding:12px 4px;border-bottom:1px solid var(--line)}
.mnav__h{font-size:13px;color:var(--gold);letter-spacing:.08em;margin:22px 0 4px}
.mnav .btn{margin-top:28px;flex:none}

/* hero */
.hero{position:relative;min-height:92svh;display:flex;align-items:center;padding:120px 0 60px;overflow:hidden}
.hero__glow{position:absolute;inset:-20% -10% auto;height:120%;pointer-events:none;background:radial-gradient(45% 40% at 28% 45%,rgba(233,166,161,.22),transparent 70%),radial-gradient(40% 35% at 15% 70%,rgba(200,168,234,.18),transparent 70%),radial-gradient(35% 30% at 80% 20%,rgba(239,211,168,.12),transparent 70%)}
.hero__grid{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:40px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:#E5DBDF;padding:8px 16px 8px 14px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line-2);background:rgba(255,255,255,.03)}
.badge__dot{width:7px;height:7px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 4px rgba(233,166,161,.2);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(233,166,161,0)}}
.hero__title{font-size:clamp(40px,4.8vw,86px);font-weight:500;letter-spacing:-.05em;line-height:.96;margin-top:28px}
.hero__title em{font-weight:500}
.hero__typed{font-size:clamp(22px,2.2vw,30px);margin-top:26px;color:#E5DBDF;letter-spacing:-.01em;min-height:1.5em}
.typer__text{color:var(--gold);font-weight:500}
.hero__lead{font-size:19px;color:var(--muted);max-width:520px;margin-top:16px;line-height:1.7}
.hero__ctas{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
.js .badge,.js .hero__typed,.js .hero__lead,.js .hero__ctas{opacity:0}
.hero__phones{position:relative;height:min(640px,72vh);perspective:1400px}
.phone{position:absolute;top:50%;left:50%;width:min(270px,19vw);aspect-ratio:9/19.2;border-radius:42px;padding:9px;background:linear-gradient(150deg,#3a3036,#17121a 40%,#2a2229);box-shadow:0 50px 90px -30px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.12);translate:-50% -50%;transition:box-shadow .4s}
.phone:hover{box-shadow:0 60px 100px -30px rgba(233,166,161,.35),inset 0 0 0 1px rgba(255,255,255,.2)}
.phone__screen{position:relative;display:block;width:100%;height:100%;border-radius:34px;overflow:hidden;background:#000}
.phone__screen img{width:100%;height:100%;object-fit:cover}
.phone__live{position:absolute;inset:0;pointer-events:none}
.phone__live iframe{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%) scale(1.02);border:0;opacity:0;transition:opacity .6s}
.phone__live iframe.on{opacity:1}
.phone__notch{position:absolute;top:18px;left:50%;width:30%;height:22px;border-radius:20px;background:#000;transform:translateX(-50%)}
.phone--c{z-index:3}
.phone--l{z-index:2;translate:12% -50%;rotate:9deg;scale:.86}
.phone--r{z-index:1;translate:-112% -50%;rotate:-9deg;scale:.86}
.sticker{position:absolute;z-index:4;font-size:14px;font-weight:500;padding:10px 16px;border-radius:16px;white-space:nowrap;box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.sticker--a{top:12%;right:-2%;background:#1F7A4D;color:#fff;transform:rotate(5deg)}
.sticker--b{bottom:10%;left:-2%;background:var(--grad);color:var(--ink);transform:rotate(-6deg)}
.hero__cue{position:absolute;bottom:26px;left:50%;width:24px;height:38px;border-radius:14px;box-shadow:inset 0 0 0 1.5px var(--line-2);transform:translateX(-50%)}
.hero__cue span{position:absolute;top:8px;left:50%;width:3px;height:7px;border-radius:2px;background:var(--gold);transform:translateX(-50%);animation:cue 2s var(--ease) infinite}
@keyframes cue{70%{transform:translate(-50%,12px);opacity:0}100%{opacity:0}}

/* ticker */
.ticker{border-block:1px solid var(--line);padding:26px 0;overflow:hidden}
.ticker__track{display:flex;width:max-content;gap:56px}
.ticker span{display:flex;align-items:center;gap:56px;font-size:clamp(34px,4.2vw,66px);font-weight:500;letter-spacing:-.04em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(246,239,233,.35);white-space:nowrap}
.ticker span:nth-child(3n+2){color:var(--text);-webkit-text-stroke:0}
.ticker span::after{content:"✦";font-size:.38em;color:var(--rose);-webkit-text-stroke:0}

/* manifesto */
.manifesto{padding:170px 0}
.manifesto__txt{font-size:clamp(30px,4.2vw,64px);font-weight:500;letter-spacing:-.035em;line-height:1.2;margin-top:30px;max-width:1180px}
.js .manifesto__txt .w{opacity:.14}

/* categories */
.cats{padding:90px 0 100px}
.cats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cat{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:420px;padding:28px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line);overflow:hidden;isolation:isolate;transition:border-color .5s,background .5s}
.cat::before{content:"";position:absolute;inset:auto -20% -40% -20%;height:70%;background:radial-gradient(closest-side,rgba(233,166,161,.28),transparent);opacity:0;transition:opacity .6s;z-index:-1}
.cat:hover{border-color:var(--line-2);background:var(--bg-3)}
.cat:hover::before{opacity:1}
.cat__n{font-size:13px;color:var(--muted);direction:ltr;text-align:right}
.cat__stack{position:relative;height:210px;display:block}
.mini{position:absolute;top:0;left:50%;width:104px;aspect-ratio:9/16;border-radius:16px;overflow:hidden;box-shadow:0 20px 40px -18px rgba(0,0,0,.8),0 0 0 3px #2a232c;transform:translateX(calc(-50% + (var(--k) - 1) * 54px)) rotate(calc((var(--k) - 1) * 8deg)) translateY(calc(var(--k) * 4px - 4px));transition:transform .7s var(--ease)}
.mini:nth-child(2){z-index:2}
.mini img{width:100%;height:100%;object-fit:cover}
.cat:hover .mini{transform:translateX(calc(-50% + (var(--k) - 1) * 80px)) rotate(calc((var(--k) - 1) * 14deg)) translateY(-10px)}
.cat__txt b{display:block;font-size:28px;font-weight:500;letter-spacing:-.035em;line-height:1.1}
.cat__txt small{font-size:15px;color:var(--muted)}
.cat__go{position:absolute;bottom:28px;left:28px;width:50px;height:50px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-2);display:grid;place-items:center;transition:all .5s var(--ease)}
.cat__go svg{width:18px;height:18px;transition:transform .5s var(--ease)}
.cat:hover .cat__go{background:var(--grad);color:var(--ink);box-shadow:none}
.cat:hover .cat__go svg{transform:rotate(45deg)}

/* phone wall */
.wall{padding:0 0 100px;overflow:hidden}
.wall__row{overflow:hidden;padding:12px 0}
.wall__track{display:flex;gap:18px;width:max-content}
.wphone{flex:none;width:176px;aspect-ratio:9/16;border-radius:24px;overflow:hidden;position:relative;box-shadow:0 0 0 4px #251e27,0 30px 50px -30px rgba(0,0,0,.9);transition:transform .5s var(--ease),box-shadow .5s}
.wphone img{width:100%;height:100%;object-fit:cover}
.wphone::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,10,14,.5),transparent 40%);opacity:.8;transition:opacity .4s}
.wphone:hover{transform:translateY(-8px) rotate(-2deg);box-shadow:0 0 0 4px var(--rose),0 40px 60px -30px rgba(233,166,161,.6)}
.wphone:hover::after{opacity:0}
.wphone iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:1;opacity:0;transition:opacity .5s;pointer-events:none}
.wphone iframe.on{opacity:1}

/* how */
.how{padding:0 0 100px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;perspective:1200px}
.step{position:relative;padding:36px 32px 40px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line);transform-style:preserve-3d;min-height:320px;display:flex;flex-direction:column}
.step__n{font-size:86px;font-weight:600;letter-spacing:-.06em;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:auto;direction:ltr;text-align:right}
.step h3{font-size:28px;font-weight:500;letter-spacing:-.03em;margin:34px 0 10px}
.step p{color:var(--muted);font-size:16px}

/* print burst */
.print{padding:20px 0 90px;overflow:hidden}
.print__stage{position:relative;min-height:780px;display:grid;place-items:center}
.print__copy{position:relative;z-index:3;text-align:center;max-width:620px;padding:40px 24px}
.print__copy .eyebrow{justify-content:center}
.print__copy .lead{margin:22px auto 0}
.print__links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.pcard{position:absolute;width:250px;border-radius:14px;overflow:hidden;box-shadow:0 40px 70px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08);background:#221c24}
.pcard img{width:100%;height:auto}
.pc1{top:2%;right:6%;rotate:-10deg}
.pc2{top:6%;left:5%;rotate:9deg;width:230px}
.pc3{bottom:4%;right:12%;rotate:7deg;width:220px}
.pc4{bottom:0;left:10%;rotate:-8deg}
.pc5{top:38%;right:-3%;rotate:4deg;width:200px}
.pc6{top:40%;left:-2%;rotate:-5deg;width:200px}

/* chips */
.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line-2);font-size:15px;transition:all .3s}
.chip:hover{background:rgba(255,255,255,.07)}
.chip.is-on{background:var(--grad);color:var(--ink);box-shadow:none}
.chip.is-on small{color:rgba(27,16,19,.7)}

/* numbers */
.nums{padding:0 0 160px}
.nums__grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.num{padding:40px 28px 0;border-inline-start:1px solid var(--line)}
.num:first-child{border-inline-start:0;padding-inline-start:0}
.num b{display:block;font-size:clamp(54px,6vw,96px);font-weight:500;letter-spacing:-.06em;line-height:1;direction:ltr;text-align:right}
.num>span{display:block;color:var(--muted);margin-top:10px}

/* cta */
.cta{padding:70px 0 110px;text-align:center;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;left:50%;top:55%;width:900px;height:600px;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(233,166,161,.2),transparent);pointer-events:none}
.cta__in{position:relative}
.cta .eyebrow{justify-content:center}
.cta__title{font-size:clamp(38px,5.2vw,88px);font-weight:500;letter-spacing:-.05em;line-height:.98;margin:22px 0 48px}
.cta__alt{margin-top:22px;color:var(--muted)}
.cta__alt a{color:var(--text);border-bottom:1px solid var(--line-2)}
.cta--sm{padding:60px 0 90px}
.cta--sm .cta__title{font-size:clamp(32px,3.8vw,58px);margin-top:0}

/* footer */
.ftr{border-top:1px solid var(--line);padding:56px 0 36px;overflow:hidden}
.ftr__logo{display:block;width:min(720px,80%);height:auto;opacity:.09;margin-bottom:48px}
.ftr__big{font-size:clamp(70px,15vw,250px);font-weight:600;letter-spacing:-.06em;line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(246,239,233,.16);margin-bottom:56px;white-space:nowrap}
.ftr__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.ftr__h{font-size:13px;font-weight:500;color:var(--gold);letter-spacing:.08em;margin-bottom:14px}
.ftr__grid a{display:block;color:#D9CFD4;padding:5px 0;width:fit-content;transition:color .3s}
.ftr__grid a:hover{color:#fff}
.ftr__soc{display:flex;gap:10px;margin-top:14px}
.ftr__soc a{width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-2);display:grid;place-items:center;padding:0}
.ftr__soc svg{width:19px;height:19px}
.ftr__bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.ftr__bot a{margin-inline-start:20px}
.ftr__bot a:hover{color:var(--text)}

/* floating whatsapp */
.fab{position:fixed;left:24px;bottom:24px;z-index:150;width:60px;height:60px;border-radius:50%;background:#1F9D5B;color:#fff;display:grid;place-items:center;box-shadow:0 18px 40px -14px rgba(0,0,0,.6);transform:scale(0);transition:transform .5s var(--ease)}
.fab.show{transform:scale(1)}
.fab svg{width:30px;height:30px}

/* ---------- category page ---------- */
.phero{position:relative;padding:140px 0 36px;overflow:hidden}
.phero .wrap{position:relative}
.crumbs{display:flex;gap:10px;font-size:14px;color:var(--muted)}
.crumbs a:hover{color:var(--text)}
.phero__title{font-size:clamp(38px,5.2vw,84px);font-weight:500;letter-spacing:-.05em;line-height:1;margin-top:18px}
.phero__lead{font-size:18px;color:var(--muted);max-width:620px;margin-top:20px}
.phero__meta{margin-top:18px;font-size:15px;color:var(--muted)}
.phero__meta b{font-size:20px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:34px}
.gal{padding:20px 0 40px}
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.grid--wide{grid-template-columns:repeat(2,1fr)}
.vc{position:relative;display:block;width:100%;text-align:right}
.vc__ph{position:relative;display:block;aspect-ratio:9/16;border-radius:26px;overflow:hidden;background:#1a151c;box-shadow:0 0 0 5px #231c25,0 34px 60px -34px rgba(0,0,0,.95);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.grid--wide .vc__ph{aspect-ratio:16/9}
.vc__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.vc__ph iframe{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .5s;pointer-events:none}
.vc__ph iframe.on{opacity:1}
.vc__play{position:absolute;bottom:14px;left:14px;width:44px;height:44px;border-radius:50%;background:rgba(13,10,14,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;color:#fff;z-index:2;transition:all .4s var(--ease)}
.vc__play svg{width:18px;height:18px;margin-left:2px}
.vc:hover .vc__ph{transform:translateY(-8px);box-shadow:0 0 0 5px var(--rose),0 44px 70px -30px rgba(233,166,161,.5)}
.vc:hover .vc__ph img{transform:scale(1.05)}
.vc:hover .vc__play{background:var(--grad);color:var(--ink)}
.vc__meta{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:14px;color:var(--muted);padding-inline:4px}
.vc__meta b{color:var(--text);font-weight:500;font-size:15px}
.vc__meta span{direction:ltr}
.masonry{columns:4;column-gap:20px}
.pc{display:block;width:100%;break-inside:avoid;margin-bottom:20px;border-radius:18px;overflow:hidden;position:relative;background:#1a151c;box-shadow:0 0 0 1px var(--line);transition:transform .5s var(--ease),box-shadow .5s}
.pc img{width:100%;height:auto;transition:transform 1.2s var(--ease)}
.pc:hover{transform:translateY(-6px);box-shadow:0 0 0 2px var(--rose),0 30px 60px -30px rgba(233,166,161,.5)}
.pc:hover img{transform:scale(1.04)}
.pc__n{position:absolute;top:12px;right:12px;font-size:12px;padding:5px 11px;border-radius:99px;background:rgba(13,10,14,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);direction:ltr}
.js .vc,.js .pc{opacity:0;transform:translateY(40px)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:600;display:grid;place-items:center}
.lb[hidden]{display:none}
.lb__bg{position:absolute;inset:0;background:rgba(8,6,9,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.lb__box{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;max-width:96vw}
.lb__media{position:relative;height:min(78vh,820px);aspect-ratio:9/16;border-radius:30px;overflow:hidden;background:#000;box-shadow:0 0 0 6px #241d26,0 50px 100px -30px rgba(0,0,0,.9)}
.lb__media.is-wide{aspect-ratio:16/9;height:auto;width:min(88vw,1100px)}
.lb__media.is-img{aspect-ratio:auto;height:auto;max-height:78vh;background:none;box-shadow:0 50px 100px -30px rgba(0,0,0,.9);border-radius:16px}
.lb__media.is-img img{max-height:78vh;width:auto;max-width:88vw}
.lb__media iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb__bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}
.lb__title{font-size:16px;color:var(--muted)}
.lb__x{position:fixed;top:20px;left:20px;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.08);font-size:30px;line-height:1;z-index:2}
.lb__x:hover{background:rgba(255,255,255,.16)}
.lb__nav{position:fixed;top:50%;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;transform:translateY(-50%);z-index:2;transition:background .3s}
.lb__nav:hover{background:rgba(255,255,255,.18)}
.lb__nav svg{width:20px;height:20px}
.lb__prev{right:24px}
.lb__prev svg{transform:scaleX(-1)}
.lb__next{left:24px}

/* legal */
.legal__doc{padding:150px 0 90px;max-width:860px}
.legal__doc h1{font-size:clamp(38px,5vw,60px);font-weight:500;letter-spacing:-.04em;margin-bottom:24px}
.legal__doc h2,.legal__doc h3{font-size:24px;font-weight:500;margin:34px 0 10px}
.legal__doc p,.legal__doc li{color:#D9CFD4;margin-bottom:10px}
.legal__doc ul{padding-inline-start:22px}
.legal__doc a{color:var(--gold);text-decoration:underline}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav,.hdr__cta{display:none}
  .burger{display:block}
  .grid{grid-template-columns:repeat(4,1fr)}
  .masonry{columns:3}
  .cats__grid{grid-template-columns:repeat(2,1fr)}
  .hero__grid{grid-template-columns:1fr}
  .hero__phones{height:600px}
  .phone{width:250px}
}
@media (max-width:820px){
  .grid{grid-template-columns:repeat(3,1fr);gap:16px}
  .steps{grid-template-columns:1fr}
  .nums__grid{grid-template-columns:1fr 1fr}
  .num:nth-child(3){border-inline-start:0;padding-inline-start:0}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .sec-head{flex-direction:column;align-items:flex-start;gap:20px}
  .sec-head--c{align-items:center}
}
@media (max-width:640px){
  :root{--wrap:calc(100% - 32px);--r:22px}
  body{font-size:16px}
  .hdr{padding:12px 0}
  .brand img{height:28px}
  .hero{padding:100px 0 40px;min-height:0}
  .hero__lead{font-size:17px}
  .hero__ctas .btn{flex:1}
  .hero__phones{height:470px;margin-top:10px}
  .phone{width:200px;border-radius:34px;padding:7px}
  .phone__screen{border-radius:28px}
  .phone--l{translate:-2% -50%;scale:.82}
  .phone--r{translate:-98% -50%;scale:.82}
  .sticker{font-size:12px;padding:8px 12px}
  .sticker--a{right:0}.sticker--b{left:0}
  .manifesto{padding:110px 0}
  .cats{padding:60px 0 70px}
  .cats__grid{grid-template-columns:1fr;gap:12px}
  .cat{min-height:340px;padding:22px}
  .wall{padding-bottom:70px}
  .wphone{width:132px;border-radius:20px}
  .how{padding-bottom:70px}
  .step{min-height:0}
  .step__n{font-size:64px}
  .print__stage{min-height:0;display:block}
  .pcard{display:none}
  .print__copy{padding:0}
  .print{padding-bottom:70px}
  .nums{padding-bottom:110px}
  .num{padding:28px 16px 0}
  .btn--xl{height:62px;padding:0 24px;font-size:16px;width:100%}
  .cta{padding:50px 0 80px}
  .phero{padding:110px 0 26px}
  .phero__lead{font-size:17px}
  .grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .grid--wide{grid-template-columns:1fr}
  .vc__ph{border-radius:20px;box-shadow:0 0 0 4px #231c25,0 24px 40px -24px rgba(0,0,0,.95)}
  .masonry{columns:2;column-gap:12px}
  .pc{margin-bottom:12px;border-radius:14px}
  .ftr__grid{grid-template-columns:1fr}
  .ftr__bot a{margin:0 0 0 16px}
  .fab{left:16px;bottom:16px;width:56px;height:56px}
  .lb__media{height:min(70vh,640px)}
  .lb__nav{top:auto;bottom:22px;transform:none;width:48px;height:48px}
  .lb__prev{right:16px}.lb__next{left:16px}
  .lb__bar{padding-bottom:70px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
.motion-btn{font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.motion-btn:hover{color:var(--text)}
.mnav[hidden]{display:none}

/* print placeholders: dominant colour + soft shimmer until the image arrives */
.pc{background:var(--ph,#1a151c)}
.pc img{opacity:0;transition:opacity .6s var(--ease),transform 1.2s var(--ease)}
.pc.is-loaded img{opacity:1}
.pc::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);background-size:220% 100%;animation:shimmer 1.4s linear infinite;pointer-events:none}
.pc.is-loaded::before{display:none}
@keyframes shimmer{from{background-position:120% 0}to{background-position:-120% 0}}

/* ---------- background: light touches + geometric network ---------- */
.bgfx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bgfx canvas{position:absolute;inset:0;opacity:.9}
.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.16;will-change:transform}
.orb--a{width:46vw;height:46vw;background:#EBAAA3;top:-12vw;left:-10vw;animation:orbA 26s ease-in-out infinite alternate}
.orb--b{width:38vw;height:38vw;background:#C6A4E8;top:40%;right:-12vw;animation:orbB 32s ease-in-out infinite alternate}
.orb--c{width:30vw;height:30vw;background:#F6DFB8;bottom:-14vw;left:30%;opacity:.1;animation:orbC 28s ease-in-out infinite alternate}
@keyframes orbA{to{transform:translate(14vw,10vh) scale(1.15)}}
@keyframes orbB{to{transform:translate(-12vw,-14vh) scale(.9)}}
@keyframes orbC{to{transform:translate(-16vw,-8vh) scale(1.2)}}
body.motion-off .orb{animation-play-state:paused}

/* ---------- preloader uses the logo ---------- */
.preloader__word{width:min(420px,70vw);aspect-ratio:536/140;font-size:0}
.preloader__base,.preloader__fill{position:absolute;inset:0;-webkit-mask:url(/assets/img/logo.webp) center/contain no-repeat;mask:url(/assets/img/logo.webp) center/contain no-repeat}
.preloader__base{background:rgba(246,239,233,.16);-webkit-text-stroke:0}
.preloader__fill{background:var(--grad);clip-path:inset(0 0 0 100%)}

/* ---------- how it works: drawn flow line ---------- */
.flow{position:relative}
.flow__line{position:absolute;top:0;left:0;width:100%;height:120px;overflow:visible}
.flow__line path{fill:none;vector-effect:non-scaling-stroke}
.flow__base{stroke:rgba(246,239,233,.14);stroke-width:2;stroke-dasharray:4 8}
.flow__fill{stroke:url(#flowGrad);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 8px rgba(235,170,163,.55))}
.flow .steps{position:relative;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;perspective:1200px}
.flow .step{display:flex;flex-direction:column;align-items:center}
.step__node{position:relative;z-index:1;width:72px;height:72px;margin:24px 0 34px;border-radius:50%;background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line-2);display:grid;place-items:center;color:#7d7177;transition:background .6s var(--ease),color .5s,box-shadow .6s}
.step__node svg{width:30px;height:30px}
.step__node svg :is(path,rect){stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease) .15s}
.step__node::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(235,170,163,.5);opacity:0;transform:scale(.8)}
.step.on .step__node{background:var(--grad);color:var(--ink);box-shadow:0 0 0 6px rgba(235,170,163,.12),0 20px 40px -14px rgba(235,170,163,.6)}
.step.on .step__node svg :is(path,rect){stroke-dashoffset:0}
.step.on .step__node::after{animation:ping 2.2s var(--ease) infinite}
@keyframes ping{0%{opacity:.8;transform:scale(.85)}100%{opacity:0;transform:scale(1.45)}}
.step__card{width:100%;flex:1;padding:30px 30px 34px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line);transform-style:preserve-3d;transition:border-color .6s,background .6s}
.step.on .step__card{border-color:rgba(235,170,163,.35);background:linear-gradient(180deg,rgba(235,170,163,.07),var(--bg-2) 60%)}
.step__card .step__n{font-size:56px;margin-bottom:14px}
.step__card h3{font-size:24px;font-weight:500;letter-spacing:-.03em;margin:0 0 10px}
.step__card p{color:var(--muted);font-size:16px}

/* ---------- mobile menu: gallery-style ---------- */
.mnav{padding:96px 20px 26px;background:radial-gradient(120% 60% at 100% 0%,rgba(235,170,163,.16),transparent 60%),radial-gradient(90% 50% at 0% 100%,rgba(198,164,232,.14),transparent 60%),var(--bg)}
.mnav__glow{display:none}
.mnav__in{display:flex;flex-direction:column;gap:14px;min-height:100%}
.mnav__h{margin:6px 0 0}
.mnav__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mnav a.mcard{display:flex;flex-direction:column;gap:10px;padding:10px;border:0;border-radius:20px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line);font-size:inherit}
.mcard__ph{display:block;height:120px;border-radius:14px;overflow:hidden}
.mcard__ph img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.mcard__t b{display:block;font-size:18px;font-weight:500;letter-spacing:-.02em;line-height:1.2}
.mcard__t small{font-size:12.5px;color:var(--muted)}
.mnav__chips{display:flex;flex-wrap:wrap;gap:8px}
.mnav__chips .chip{font-size:15px;padding:9px 14px;border:0}
.mnav__foot{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:14px}
.mnav__foot .btn{flex:1;margin:0}
.mnav__foot .ftr__soc{margin:0}
.mnav [style*="--i"]{opacity:0;transform:translateY(24px);transition:opacity .5s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * 45ms)}
.mnav.open [style*="--i"]{opacity:1;transform:none}

@media (max-width:820px){
  .flow__line{display:none}
  .flow .steps{grid-template-columns:1fr;gap:14px}
  .flow::before,.flow::after{content:"";position:absolute;top:36px;bottom:36px;right:35px;width:2px;border-radius:2px}
  .flow::before{background:rgba(246,239,233,.12)}
  .flow::after{background:var(--grad);transform:scaleY(var(--p,0));transform-origin:top}
  .flow .step{flex-direction:row;align-items:flex-start;gap:14px}
  .step__node{flex:none;margin:0;width:72px;height:72px}
  .step__card{padding:22px}
  .step__card .step__n{font-size:40px;margin-bottom:6px}
}
@media (prefers-reduced-motion:reduce){
  .step__node svg :is(path,rect),.flow__fill{stroke-dashoffset:0}
  .mnav [style*="--i"]{opacity:1;transform:none}
}
/* the flow steps replace the older card-style .step */
.flow .step{padding:0;background:none;border:0;border-radius:0;min-height:0}
.mnav a.mcard{align-items:stretch;justify-content:flex-start}
.how{padding-bottom:40px}
.print__stage{min-height:660px}
@media (max-width:640px){.how{padding-bottom:50px}}

/* ---------- print categories with real previews ---------- */
.print{padding:20px 0 80px}
.print__stage{min-height:560px}
.pcats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:10px;position:relative;z-index:3}
.pcat{position:relative;display:flex;flex-direction:column;gap:18px;padding:18px 18px 22px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line);overflow:hidden;isolation:isolate;transition:border-color .5s,background .5s,transform .6s var(--ease)}
.pcat:hover{border-color:var(--line-2);background:var(--bg-3);transform:translateY(-6px)}
.pcat::before{content:"";position:absolute;inset:auto -30% -50%;height:70%;background:radial-gradient(closest-side,rgba(239,211,168,.22),transparent);opacity:0;transition:opacity .6s;z-index:-1}
.pcat:hover::before{opacity:1}
.pcat__imgs{position:relative;display:block;height:220px;border-radius:16px;background:radial-gradient(80% 70% at 50% 60%,rgba(255,255,255,.05),transparent)}
.pcat__imgs img{position:absolute;top:50%;left:50%;width:62%;height:auto;max-height:92%;object-fit:cover;border-radius:10px;box-shadow:0 24px 40px -18px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08);transition:transform .7s var(--ease)}
.pcat__imgs img:first-child{transform:translate(-30%,-52%) rotate(-7deg);z-index:1}
.pcat__imgs img:last-child{transform:translate(-72%,-46%) rotate(6deg);z-index:2}
.pcat:hover .pcat__imgs img:first-child{transform:translate(-18%,-56%) rotate(-12deg) scale(1.03)}
.pcat:hover .pcat__imgs img:last-child{transform:translate(-84%,-44%) rotate(11deg) scale(1.03)}
.pcat__t b{display:block;font-size:24px;font-weight:500;letter-spacing:-.03em;line-height:1.15}
.pcat__t small{font-size:14px;color:var(--muted)}
.pcat .cat__go{bottom:22px;left:18px;width:44px;height:44px}
.pcat:hover .cat__go{background:var(--grad);color:var(--ink);box-shadow:none}
.pcat:hover .cat__go svg{transform:rotate(45deg)}

/* ---------- mobile menu: compact lists ---------- */
.mnav{padding:88px 20px 22px}
.mnav__in{gap:8px}
.mnav__h{margin:10px 0 2px}
.mnav__list{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mnav .mnav__list a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 14px;border:0;border-radius:14px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line);font-size:16px;letter-spacing:-.01em;line-height:1.2}
.mnav .mnav__list a:active{background:rgba(255,255,255,.1)}
.mnav__foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:18px;flex-wrap:wrap}
.mnav__foot .btn{flex:1;height:52px;padding:0 16px;font-size:15px;min-width:120px}
.mnav__foot .btn svg{width:18px;height:18px}

/* ---------- footer ---------- */
.ftr__grid{grid-template-columns:1.3fr 1fr 1fr 1fr}
.ftr__brand p{color:var(--muted);font-size:15px;margin-top:14px;max-width:260px}
.ftr__logo{width:150px;opacity:1;margin:0}
.ftr__credit a{margin:0;color:var(--text);border-bottom:1px solid var(--line-2)}
.ftr__credit a:hover{border-color:var(--rose)}

@media (max-width:1180px){.pcats{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.ftr__grid{grid-template-columns:1fr 1fr}.ftr__brand{grid-column:1/-1}}
@media (max-width:640px){
  .print{padding:0 0 50px}
  .print__stage{min-height:0;display:block;margin-bottom:26px}
  .pcats{gap:10px}
  .pcat{padding:12px 12px 16px;gap:12px}
  .pcat__imgs{height:150px}
  .pcat__t b{font-size:18px}
  .pcat__t small{font-size:12.5px}
  .pcat .cat__go{display:none}
  .ftr__grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .ftr__bot{flex-direction:column;gap:8px}
}
.mnav .mnav__foot a{border-bottom:0;font-size:15px;justify-content:center;letter-spacing:0}
.mnav .mnav__foot .ftr__soc a{padding:0;width:52px;height:52px}
.mnav nav.mnav__in{display:flex;flex-direction:column;gap:8px}

/* ---------- cookie consent ---------- */
.consent{position:fixed;z-index:160;left:50%;bottom:20px;width:min(640px,calc(100% - 200px));display:flex;align-items:center;gap:16px;padding:14px 16px 14px 20px;border-radius:20px;background:rgba(27,16,19,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:0 24px 60px -24px rgba(0,0,0,.9);transform:translate(-50%,140%);opacity:0;transition:transform .5s var(--ease),opacity .4s}
.consent.is-in{transform:translate(-50%,0);opacity:1}
.consent p{margin:0;flex:1;font-size:13.5px;line-height:1.55;color:var(--muted)}
.consent a{color:var(--text);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.consent__btns{display:flex;gap:8px;flex:none}
.consent__btns button{min-height:42px;padding:0 18px;border-radius:99px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text)}
.consent__yes{background:var(--grad)!important;color:var(--ink)!important;border-color:transparent!important}
.consent__btns button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media (max-width:640px){.consent{width:calc(100% - 24px);bottom:86px;flex-direction:column;align-items:stretch;gap:10px;padding:14px}.consent__btns button{flex:1}}
.ftr__bot button[data-consent-open]{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:inherit}

/* ---------- accessibility widget "stop animations" pauses all motion on the site ---------- */
body.disable-animations *,body.disable-animations *::before,body.disable-animations *::after{animation-play-state:paused!important}

/* ---------- legal pages ---------- */
.legal__doc h2{font-size:1.25rem;margin:2em 0 .6em}
.legal__doc ul{padding-inline-start:1.2em}
.legal__doc li{margin:.35em 0}
.legal__doc .upd{color:var(--muted);font-size:.95rem}
