:root{--v:#6c3bff;--p:#ff4d8d;--o:#ff9a3c;--a:#12d6c4;--ink:#1b1340;--mute:#625b80;--bg:#fbf9ff;--line:#e9e3f7;
--grad:linear-gradient(135deg,var(--v),var(--p) 60%,var(--o));
--h:'Bricolage Grotesque',system-ui,sans-serif;--b:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17.5px/1.7 var(--b);overflow-x:hidden}
h1,h2,h3{font-family:var(--h);margin:0;line-height:1.05;letter-spacing:-.025em}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--o);outline-offset:3px}
.wrap{max-width:1180px;margin:auto;padding:0 24px;position:relative}
section{padding:110px 0;position:relative}
.mute{color:var(--mute)}
.tint{background:linear-gradient(180deg,#f3edff,#fff1f7)}

/* nav */
nav{position:fixed;top:14px;left:0;right:0;z-index:50;padding:0 16px}
.bar{max-width:1120px;margin:auto;display:flex;align-items:center;gap:24px;height:68px;padding:0 14px 0 20px;border-radius:50px;background:#ffffffe6;backdrop-filter:blur(14px);box-shadow:0 12px 40px #6c3bff22;border:1px solid #fff}
.logo{display:flex;align-items:center;gap:10px;font:800 19px var(--h);margin-right:auto}
.logo small{display:block;font:700 9px var(--b);letter-spacing:.3em;color:var(--p);margin-top:2px}
.links{display:flex;gap:26px;font-weight:500;font-size:15px}
.links a:hover{color:var(--v)}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger i{display:block;width:24px;height:2.5px;background:var(--ink);margin:6px 0;border-radius:2px}

/* buttons */
.btn{display:inline-block;padding:16px 32px;border-radius:50px;font:700 16px var(--b);border:2px solid transparent;cursor:pointer;transition:transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-4px)}
.btn.sm{padding:11px 22px;font-size:14.5px}
.grad{background:var(--grad);color:#fff;box-shadow:0 14px 30px #ff4d8d55}
.line{border-color:var(--ink);color:var(--ink)}
.line.d:hover,.line:hover{background:var(--ink);color:#fff}
.white{background:#fff;color:var(--v);box-shadow:0 14px 30px #0003}

/* blobs */
.blob{position:absolute;display:block;border-radius:42% 58% 63% 37%/45% 40% 60% 55%;animation:morph 14s ease-in-out infinite;pointer-events:none}
.b1{width:560px;height:560px;right:-120px;top:-60px;background:linear-gradient(135deg,#ff4d8d55,#ff9a3c66)}
.b2{width:420px;height:420px;left:-140px;top:380px;background:linear-gradient(135deg,#6c3bff44,#12d6c444);animation-delay:-5s}
.b3{width:200px;height:200px;left:46%;bottom:40px;background:linear-gradient(135deg,#12d6c477,#6c3bff55);animation-delay:-9s}
@keyframes morph{50%{border-radius:63% 37% 38% 62%/58% 63% 37% 42%;transform:rotate(25deg) scale(1.08)}}

/* hero */
.hero{padding:160px 0 100px;overflow:hidden;position:relative}
.hgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.pill{display:inline-block;padding:9px 20px;border-radius:50px;background:#fff;box-shadow:0 8px 24px #6c3bff1f;font-weight:700;font-size:14px;margin-bottom:26px}
.hero h1{font-size:clamp(46px,7.2vw,100px);font-weight:800}
mark{background:linear-gradient(transparent 58%,#ffc85799 58% 92%,transparent 92%);color:inherit;padding:0 4px}
.lead{font-size:20px;color:var(--mute);max-width:500px;margin:26px 0 34px}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.mini{display:flex;gap:34px;margin-top:40px}
.mini div{font-size:14px;color:var(--mute)}
.mini b{display:block;font:800 30px var(--h);color:var(--ink)}
.vis{position:relative;perspective:1200px;max-width:460px;margin:auto;width:100%}
.arch{aspect-ratio:4/5;border-radius:240px 240px 44px 44px;overflow:hidden;box-shadow:0 40px 80px #6c3bff44;border:8px solid #fff;transform:rotateY(-8deg) rotateX(3deg);transition:transform .2s;background:var(--grad)}
.ph{margin:0;position:relative;width:100%;height:100%;background:linear-gradient(135deg,#8d6bff,#ff6fa3);display:grid;place-items:center;overflow:hidden}
.ph:after{content:attr(data-f);position:absolute;color:#fff;font:700 13px var(--b);opacity:.9;text-align:center;padding:10px}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;transition:transform .6s}
.ph:hover img{transform:scale(1.07)}
.stk{position:absolute;z-index:5;background:#fff;border-radius:18px;padding:12px 18px;box-shadow:0 20px 44px #1b134033;display:flex;align-items:center;gap:10px;font-size:14px;animation:bob 6s ease-in-out infinite}
.stk b{color:var(--v)}
.s1{top:30px;left:-40px}.s2{top:44%;right:-36px;animation-delay:-2s}.s3{bottom:40px;left:-20px;animation-delay:-4s}
.badge{position:absolute;width:112px;height:112px;right:-14px;top:-20px;z-index:6;animation:spin 14s linear infinite;filter:drop-shadow(0 14px 24px #1b134055)}
@keyframes bob{50%{transform:translateY(-14px)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* marquee band */
.band{background:var(--grad);overflow:hidden;padding:20px 0;transform:rotate(-1.4deg);margin:0 -20px;position:relative;z-index:3;box-shadow:0 20px 50px #ff4d8d44}
.mt{display:flex;width:max-content;animation:mq 26s linear infinite}
.mt span{font:800 26px var(--h);color:#fff;padding:0 30px;white-space:nowrap}
.mt span:after{content:"✦";color:#ffe27a;margin-left:60px}
@keyframes mq{to{transform:translateX(-50%)}}

/* headings */
.head{max-width:680px;margin-bottom:56px}
h2{font-size:clamp(34px,4.8vw,62px);font-weight:800;margin:12px 0 16px}
.tag{display:inline-block;padding:6px 16px;border-radius:50px;background:#6c3bff1a;color:var(--v);font-weight:700;font-size:13.5px}
.tag.lt{background:#ffffff22;color:#fff}

/* grid + cards */
.grid{display:grid;gap:26px;perspective:1200px}
.g4{grid-template-columns:repeat(4,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.card{position:relative;background:#fff;border-radius:30px;padding:34px 26px;box-shadow:0 18px 50px #6c3bff1a;overflow:hidden;transition:transform .15s,box-shadow .3s;transform-style:preserve-3d;margin:0}
.card:before{content:"";position:absolute;width:160px;height:160px;right:-50px;top:-50px;border-radius:50%;background:linear-gradient(135deg,var(--a),var(--b));opacity:.28;transition:transform .5s}
.card:hover:before{transform:scale(1.7)}
.card:hover{box-shadow:0 30px 70px #6c3bff33}
.card>i{display:grid;place-items:center;width:68px;height:68px;border-radius:22px;background:linear-gradient(135deg,var(--a),var(--b));font-size:32px;font-style:normal;margin-bottom:22px;position:relative;box-shadow:0 14px 28px #0002;transform:translateZ(40px)}
.card h3{font-size:22px;margin-bottom:10px;position:relative;transform:translateZ(22px)}
.card p{margin:0;color:var(--mute);font-size:16px;position:relative}
blockquote{margin:0 0 22px;position:relative;font-size:17px}
.st{color:var(--o);letter-spacing:4px;margin-bottom:12px;position:relative}
figcaption{display:flex;align-items:center;gap:14px;position:relative;font-size:14px;color:var(--mute)}
figcaption b{display:block;color:var(--ink);font-size:16px}
figcaption i{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--a),var(--b));color:#fff;font:800 19px var(--h);font-style:normal}

/* about */
.two{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.duo{position:relative;height:520px;perspective:1000px}
.duo>div{position:absolute;border-radius:36px;overflow:hidden;border:8px solid #fff;box-shadow:0 30px 70px #6c3bff40;transition:transform .2s}
.d1{width:66%;height:78%;left:0;top:0}
.d2{width:56%;height:56%;right:0;bottom:0;border-radius:200px 200px 36px 36px!important}
.exp{position:absolute;left:8%;bottom:6%;z-index:5;background:var(--ink);color:#fff;border-radius:24px;padding:20px 26px;box-shadow:0 20px 40px #1b134055;font-size:14px;animation:bob 6s ease-in-out infinite}
.exp b{display:block;font:800 40px var(--h);color:#ffc857}
.sp{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:26px 0 34px}
.sp span{font-weight:500;font-size:16px}
.sp span:before{content:"✔";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--grad);color:#fff;font-size:11px;margin-right:10px}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:20px}
.gal .ph{border-radius:28px;box-shadow:0 20px 50px #6c3bff2e;transition:transform .15s}
.gt1{grid-column:span 2;grid-row:span 2}.gt4{grid-column:span 2}
.gal .ph:nth-child(2){background:linear-gradient(135deg,#12d6c4,#6c3bff)}
.gal .ph:nth-child(3){background:linear-gradient(135deg,#ff9a3c,#ff4d8d)}
.gal .ph:nth-child(5){background:linear-gradient(135deg,#6c3bff,#12d6c4)}

/* dark steps */
.dark{background:var(--ink);color:#fff;overflow:hidden}
.dark:before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-160px;border-radius:50%;background:radial-gradient(#ff4d8d66,transparent 70%)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;position:relative}
.step{padding:32px 26px;border-radius:28px;background:#ffffff0f;border:1px solid #ffffff22}
.step b{display:block;font:800 64px var(--h);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.step h3{font-size:22px;margin:14px 0 8px}
.step p{margin:0;color:#b9b3d6;font-size:16px}

/* pricing */
.plan{position:relative;background:#fff;border-radius:34px;padding:42px 32px;box-shadow:0 18px 50px #6c3bff1a;transition:transform .15s;transform-style:preserve-3d}
.plan.hot{background:var(--grad);color:#fff;box-shadow:0 36px 80px #ff4d8d55;transform:scale(1.04)}
.plan em{position:absolute;top:20px;right:20px;background:#fff;color:var(--p);font:700 12px var(--b);font-style:normal;padding:6px 14px;border-radius:50px}
.plan h3{font-size:24px}
.pr{font:800 52px var(--h);margin:16px 0 22px}
.pr small{font:400 16px var(--b);opacity:.7}
.plan ul{list-style:none;padding:0;margin:0 0 30px}
.plan li{padding:10px 0;border-bottom:1px dashed #6c3bff33;font-size:16px}
.plan.hot li{border-color:#ffffff55}
.plan li:before{content:"✔";margin-right:12px;color:var(--v)}
.plan.hot li:before{color:#ffe27a}
.plan .btn{width:100%;text-align:center}

/* cta */
.cta-s{padding:60px 0 110px}
.ctab{position:relative;overflow:hidden;text-align:center;color:#fff;background:var(--grad);border-radius:50px;padding:90px 30px;box-shadow:0 40px 90px #ff4d8d55}
.ctab h2{max-width:720px;margin:0 auto 14px;position:relative}
.ctab p{margin:0 0 32px;position:relative;font-size:19px}
.ctab .btn{position:relative}
.b4{width:380px;height:380px;left:-90px;bottom:-140px;background:#ffffff26}

/* contact */
.info p{margin:0 0 20px;color:var(--mute)}
.info b{display:block;color:var(--ink);font-size:17px}
form{display:grid;gap:14px;background:#fff;border-radius:34px;padding:40px;box-shadow:0 30px 80px #6c3bff26}
input,select,textarea{width:100%;padding:17px 22px;border-radius:18px;border:2px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus{border-color:var(--v);outline:none;background:#fff}

footer{background:var(--ink);color:#b9b3d6;text-align:center;padding:64px 0 0}
.fl{font:800 28px var(--h);color:#fff}
.copy{border-top:1px solid #ffffff1a;margin-top:36px;padding:24px;font-size:14px}
.wa{position:fixed;right:20px;bottom:20px;z-index:60;width:62px;height:62px;border-radius:50%;background:#25d366;display:grid;place-items:center;font-size:30px;box-shadow:0 12px 30px #25d36680;animation:pulse 2.2s infinite}
@keyframes pulse{50%{transform:scale(1.1)}}
.rv{opacity:0;transform:translateY(44px);transition:opacity .9s,transform .9s}
.rv.on{opacity:1;transform:none}
.tilt.rv.on{transition:opacity .9s,transform .15s}

/* responsive */
@media(max-width:1020px){.hgrid,.two{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.gal{grid-template-columns:repeat(2,1fr)}.gt1{grid-column:span 2}.plan.hot{transform:none}.duo{max-width:520px;margin:auto;width:100%}.s1{left:-6px}.s2{right:-6px}.s3{left:-6px}.badge{right:0}}
@media(max-width:820px){.burger{display:block}.bar .btn{display:none}.links{display:none;position:absolute;top:78px;left:16px;right:16px;background:#fff;border-radius:26px;box-shadow:0 20px 50px #6c3bff33;flex-direction:column;gap:0;padding:10px 24px}.links.open{display:flex}.links a{padding:15px 0;border-bottom:1px solid var(--line)}}
@media(max-width:560px){section{padding:76px 0}.hero{padding:130px 0 70px}.g4,.steps{grid-template-columns:1fr}.sp{grid-template-columns:1fr}.gal{grid-template-columns:1fr;grid-auto-rows:220px}.gt1,.gt4{grid-column:auto;grid-row:auto}.duo{height:420px}.mt span{font-size:20px}.mini{gap:22px}.ctab{border-radius:34px;padding:60px 22px}form{padding:26px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}