/* ===== Shared movement styles (reveal, tilt, parallax, filters, viewer, forms, accordions) ===== */
.js [data-rv]{opacity:0;transform:translate3d(0,34px,0);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js [data-rv=left]{transform:translate3d(-44px,0,0)}
.js [data-rv=right]{transform:translate3d(44px,0,0)}
.js [data-rv=zoom]{transform:scale(.92)}
.js [data-rv=fade]{transform:none}
.js [data-rv].in{opacity:1;transform:none}
[data-tilt]{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out,box-shadow .35s}
[data-parallax]{translate:0 var(--py,0px);will-change:translate}
[data-words]{display:inline-block;transition:opacity .38s,transform .38s}
[data-words].out{opacity:0;transform:translateY(.35em)}
.progress{position:fixed;left:0;top:0;right:0;height:4px;z-index:120;transform-origin:left;transform:scaleX(0);background:var(--grad,currentColor)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:10px;z-index:200;padding:12px 18px;border-radius:10px;background:#111;color:#fff;font-weight:700}
.skip:focus{left:12px}
[hidden]{display:none!important}
.pop{animation:pop .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(14px)}}
.marquee{overflow:hidden;white-space:nowrap}
.marquee-in{display:inline-flex;gap:var(--mgap,3rem);padding-right:var(--mgap,3rem);animation:marquee var(--mspeed,38s) linear infinite}
.marquee:hover .marquee-in{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-100%)}}
.form-msg{min-height:1.4em;font-size:.95rem}
.form-msg.bad{color:#c0392b}.form-msg.ok{color:#1f8a5b}
[aria-invalid=true]{border-color:#e0533d!important;box-shadow:0 0 0 3px rgba(224,83,61,.18)!important}
.lb{position:fixed;inset:0;z-index:300;background:rgba(10,10,14,.92);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:14px;animation:lbin .3s ease}
.lb figure{margin:0;display:grid;justify-items:center;gap:10px;min-width:0}
.lb img{max-width:100%;max-height:82vh;width:auto;height:auto;border-radius:10px;object-fit:contain}
.lb figcaption{color:#e8e8ee;font:14px/1.4 system-ui,sans-serif;text-align:center;max-width:70ch}
.lb button{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;font-size:26px;line-height:1;cursor:pointer;transition:background .25s}
.lb button:hover{background:rgba(255,255,255,.25)}
.lb-x{position:absolute;top:14px;right:14px}
.lb-open{overflow:hidden}
@keyframes lbin{from{opacity:0}}
@view-transition{navigation:auto}
::view-transition-old(root){animation:.18s ease both vtout}
::view-transition-new(root){animation:.35s ease both vtin}
@keyframes vtout{to{opacity:0}}
@keyframes vtin{from{opacity:0}}
html{scroll-behavior:smooth;overflow-x:clip}body{overflow-x:clip}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js [data-rv]{opacity:1;transform:none}
  [data-parallax]{translate:none}
}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Nova Web Studio: bright, friendly and full of movement. Warm white, violet, pink and orange. Plus Jakarta Sans. */
:root{--bg:#FFFCF7;--ink:#1C1B3A;--muted:#5C5A78;--line:rgba(28,27,58,.12);--violet:#6C4DFF;--violet2:#5436E0;--pink:#FF5C93;--orange:#FF9A3D;--mint:#14C99A;--sun:#FFD25E;--lav:#F3EFFF;--peach:#FFF1E4;--mintbg:#E7FBF4;
  --grad:linear-gradient(120deg,#6C4DFF,#FF5C93 58%,#FF9A3D);--grad-soft:linear-gradient(135deg,#EFE9FF,#FFE9F0 55%,#FFF1E0);--ease:cubic-bezier(.2,.7,.2,1);--r:26px}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip}
body{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3{font-weight:800;line-height:1.08;letter-spacing:-.03em}
h1{font-size:clamp(2.5rem,6.4vw,5rem)}h2{font-size:clamp(1.9rem,4.4vw,3.2rem)}h3{font-size:1.25rem;letter-spacing:-.02em}
a{color:inherit}img{display:block;max-width:100%;height:auto}
p{text-wrap:pretty}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:6px}
::selection{background:var(--violet);color:#fff}
.wrap{width:min(1200px,100% - 2.4rem);margin-inline:auto}.narrow{max-width:860px}.center{text-align:center}.muted{color:var(--muted)}
.fine{font-size:.85rem;color:var(--muted)}.note{max-width:62ch;margin:2rem auto 0;color:var(--muted);font-size:.95rem}
.kicker{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.8rem}
.lead{font-size:clamp(1.05rem,1.7vw,1.25rem);color:var(--muted);max-width:56ch}.lead.c{margin-inline:auto}
.ico{width:1.2em;height:1.2em;flex:none}
/* header */
.top{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s,box-shadow .35s,padding .35s}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:84px;transition:min-height .35s}
.top.scrolled{background:rgba(255,252,247,.88);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);box-shadow:0 10px 34px -22px rgba(28,27,58,.6)}.top.scrolled .top-in{min-height:68px}
.brand{display:inline-flex;align-items:center;gap:.65rem;text-decoration:none;font-weight:800;font-size:1.3rem;letter-spacing:-.03em}.brand b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--grad);color:#fff;box-shadow:0 10px 20px -10px rgba(255,92,147,.9);transition:transform .6s var(--ease)}.mark svg{width:24px;height:24px}.brand:hover .mark{transform:rotate(180deg) scale(1.08)}
.nav{display:none;align-items:center;gap:.4rem}
.nav a:not(.btn){position:relative;text-decoration:none;font-weight:600;font-size:.95rem;padding:.55rem 1rem;border-radius:999px;transition:background .3s,color .3s}
.nav a:not(.btn):hover{background:rgba(108,77,255,.1);color:var(--violet2)}.nav a[aria-current=page]:not(.btn){background:var(--lav);color:var(--violet2)}
.menu-btn{display:grid;place-content:center;gap:6px;width:48px;height:48px;border-radius:16px;border:1.5px solid var(--line);background:#fff;cursor:pointer;z-index:101}
.menu-btn span{display:block;width:20px;height:2.5px;border-radius:2px;background:var(--ink);transition:transform .4s var(--ease)}
.menu-btn.active span:first-child{transform:translateY(4px) rotate(45deg)}.menu-btn.active span:last-child{transform:translateY(-4px) rotate(-45deg)}
.nav.open{display:flex;position:fixed;inset:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:.2rem;background:linear-gradient(160deg,#fff,#F3EFFF 60%,#FFE9F0);padding:5rem 1.6rem 2rem;animation:menuin .45s var(--ease)}
.nav.open a:not(.btn){font-size:2.1rem;font-weight:800;letter-spacing:-.03em;padding:.5rem 0;border-radius:0;background:none;width:100%}.nav.open .btn{margin-top:1.6rem}
@keyframes menuin{from{opacity:0;transform:translateY(-20px)}}
.menu-open{overflow:hidden}
@media (min-width:960px){.nav{display:flex}.menu-btn{display:none}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:56px;padding:0 1.9rem;border-radius:999px;background:var(--grad);background-size:160% 100%;color:#fff;font:700 1rem "Plus Jakarta Sans",sans-serif;text-decoration:none;border:0;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 18px 30px -16px rgba(255,92,147,.9);transition:transform .35s var(--ease),box-shadow .35s,background-position .5s}
.btn::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s}
.btn:hover{transform:translateY(-3px);background-position:100% 0;box-shadow:0 24px 36px -16px rgba(255,92,147,.95)}.btn:hover::after{transform:translateX(120%)}
.btn .arr{width:1.2em;height:1.2em;transition:transform .35s var(--ease)}.btn:hover .arr{transform:translateX(5px)}
.btn.small{min-height:46px;padding:0 1.3rem;font-size:.92rem}
.btn.ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff;box-shadow:inset 0 0 0 2px var(--ink)}
.btn.white{background:#fff;color:var(--violet2);box-shadow:0 18px 30px -18px rgba(0,0,0,.5)}.btn.white:hover{background:var(--sun);color:var(--ink)}
.btn.ghost-w{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}.btn.ghost-w:hover{background:#fff;color:var(--violet2);box-shadow:inset 0 0 0 2px #fff}
.btns{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}.btns.c{justify-content:center}
.link{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--violet2);text-decoration:none}.link .arr{width:1.1em;height:1.1em;transition:transform .3s var(--ease)}.link:hover .arr{transform:translateX(5px)}
/* hero */
.hero,.page-head,.nf{position:relative;overflow:hidden;isolation:isolate}
.hero{padding:9rem 0 5rem;background:linear-gradient(180deg,#F6F1FF,var(--bg) 85%)}
.blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(60px);opacity:.55;animation:floaty 14s ease-in-out infinite alternate}
.b1{width:420px;height:420px;background:#8C74FF;left:-8%;top:-6%}.b2{width:380px;height:380px;background:#FF8FB5;right:-6%;top:12%;animation-delay:-5s}.b3{width:340px;height:340px;background:#FFC07A;left:38%;bottom:-18%;animation-delay:-9s}
@keyframes floaty{to{transform:translate(50px,40px) scale(1.15)}}
.hero::before{content:'';position:absolute;z-index:-1;width:540px;height:540px;border-radius:50%;left:var(--mx,60%);top:var(--my,30%);translate:-50% -50%;background:radial-gradient(circle,rgba(255,255,255,.9),transparent 65%);transition:left .5s,top .5s;pointer-events:none}
.hero-grid{display:grid;gap:3.5rem;align-items:center}
.chip{display:inline-flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);padding:.45rem 1.1rem;border-radius:999px;font-weight:700;font-size:.85rem;margin-bottom:1.4rem;box-shadow:0 10px 24px -16px rgba(28,27,58,.5)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 rgba(20,201,154,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(20,201,154,0)}100%{box-shadow:0 0 0 0 rgba(20,201,154,0)}}
.hero h1{margin-bottom:1.3rem}
.grad{background:var(--grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shift 6s linear infinite alternate}
@keyframes shift{to{background-position:100% 0}}
.words{font-weight:800;color:var(--violet2);display:inline-block}
.hero .lead{margin-bottom:1.9rem}
.trust{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:1.8rem;font-weight:700;font-size:.95rem}.trust li{display:inline-flex;align-items:center;gap:.4rem}.trust .ico{color:var(--mint);background:rgba(20,201,154,.14);border-radius:50%;padding:3px;width:1.5em;height:1.5em}
/* collage */
.collage{position:relative;min-height:380px}
.shot{display:block;position:absolute;border-radius:20px;overflow:hidden;background:#fff;text-decoration:none;box-shadow:0 40px 70px -30px rgba(28,27,58,.7),0 0 0 1px rgba(28,27,58,.08)}
.shot img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top}
.bar{display:flex;gap:6px;padding:.6rem .9rem;background:#F1EEF9}.bar i{width:9px;height:9px;border-radius:50%;background:#C8C2E6}.bar i:first-child{background:#FF8FB5}.bar i:nth-child(2){background:#FFD25E}.bar i:nth-child(3){background:#6FE0B9}
.s-main{left:0;top:6%;width:78%;z-index:2}.s-side{right:-2%;top:-4%;width:52%;z-index:1;opacity:.95}
.phone{display:block;position:absolute;right:2%;bottom:-6%;width:27%;z-index:3;border-radius:26px;overflow:hidden;border:6px solid #1C1B3A;box-shadow:0 40px 60px -26px rgba(28,27,58,.8)}.phone img{width:100%;aspect-ratio:390/844;object-fit:cover;object-position:top}
.float{position:absolute;z-index:4;background:#fff;border-radius:999px;padding:.55rem 1.1rem;font-weight:700;font-size:.88rem;box-shadow:0 16px 34px -14px rgba(28,27,58,.5);animation:bob 5s ease-in-out infinite}
.f1{left:-2%;bottom:14%}.f2{right:30%;top:-9%;animation-delay:-1.7s}.f3{left:44%;bottom:-10%;animation-delay:-3.2s}
@keyframes bob{50%{transform:translateY(-14px)}}
@media (min-width:600px){.collage{min-height:480px}}
@media (min-width:960px){.hero-grid{grid-template-columns:1.05fr 1fr}.collage{min-height:540px}}
/* strip */
.strip{background:var(--ink);color:#fff;padding:1rem 0;font-weight:800;font-size:1.25rem;letter-spacing:-.01em;--mgap:2.4rem;transform:rotate(-1deg) scale(1.03);margin:1rem 0 1.5rem}.strip .sep{color:var(--pink)}
.strip .marquee-in span{display:inline-block}
/* sections */
.sec{padding:clamp(4.5rem,9vw,7.5rem) 0}.sec.tight{padding-top:2rem}.sec.lav{background:var(--lav)}.sec.peach{background:var(--peach)}
.head{margin-bottom:3rem}.head.center{max-width:760px;margin-inline:auto}.head.center .lead{margin-top:1rem}
.ib{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--grad-soft);color:var(--violet2);margin-bottom:1.1rem;box-shadow:0 12px 24px -16px rgba(108,77,255,.8);transition:transform .5s var(--ease)}.ib .ico{width:28px;height:28px}.ib.small{width:48px;height:48px;border-radius:15px;margin:0;flex:none}.ib.small .ico{width:23px;height:23px}
.cards3,.why,.seo{list-style:none;display:grid;gap:1.4rem}
.card{background:#fff;border-radius:var(--r);padding:2rem;border:1px solid var(--line);box-shadow:0 26px 50px -38px rgba(28,27,58,.8);position:relative;overflow:hidden;transition:box-shadow .4s}
.card::before{content:'';position:absolute;inset:0;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,0%),rgba(108,77,255,.09),transparent 70%);opacity:0;transition:opacity .3s}.card:hover::before{opacity:1}.card:hover .ib{transform:rotate(-8deg) scale(1.1)}
.card h3{margin-bottom:.5rem;font-size:1.4rem}.card p{color:var(--muted)}.card .who{font-size:.9rem;margin:.9rem 0 1.1rem;color:var(--ink);font-weight:600}
/* projects */
.proj{list-style:none;display:grid;gap:1.4rem;margin-bottom:2.6rem}
.pcard a{display:block;text-decoration:none;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 56px -38px rgba(28,27,58,.8);height:100%}
.pimg{display:block;overflow:hidden;background:#EEE9FB}.pimg img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top;transition:transform 1.2s var(--ease)}.pcard a:hover .pimg img{transform:scale(1.06)}
.pbody{display:grid;gap:.15rem;padding:1.3rem 1.5rem 1.6rem}.tag{display:inline-block;width:fit-content;background:var(--lav);color:var(--violet2);padding:.2rem .85rem;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem}
.pname{font-weight:800;font-size:1.35rem;letter-spacing:-.02em}.pmeta{color:var(--muted);font-size:.92rem}
/* numbers */
.numbers{background:var(--ink);color:#fff;position:relative;overflow:hidden}.numbers::before{content:'';position:absolute;inset:0;background:radial-gradient(500px circle at 15% 0,rgba(108,77,255,.45),transparent 70%),radial-gradient(500px circle at 90% 100%,rgba(255,92,147,.35),transparent 70%)}
.stats{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:2.4rem 1rem;text-align:center}.stats b{display:block;font-size:clamp(2.8rem,7vw,4.8rem);font-weight:800;letter-spacing:-.04em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.stats span{font-weight:600;color:#cfcdf0;font-size:.95rem}
/* why / seo / steps */
.why li,.seo li{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.6rem;display:flex;gap:1.1rem;align-items:flex-start;transition:transform .4s var(--ease),box-shadow .4s}
.why li:hover,.seo li:hover{transform:translateY(-6px);box-shadow:0 26px 44px -30px rgba(108,77,255,.6)}.why h3{margin-bottom:.3rem}.why p,.seo p{color:var(--muted);font-size:.97rem}
.seo li{display:block}.seo .ib{margin-bottom:.9rem}.seo h3{font-size:1.1rem;margin-bottom:.3rem}
.steps{list-style:none;display:grid;gap:1.4rem;position:relative}
.steps li{background:#fff;border-radius:var(--r);padding:2rem 1.8rem;border:1px solid var(--line);position:relative;transition:transform .4s var(--ease)}.steps li:hover{transform:translateY(-6px)}
.n{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--grad);color:#fff;font-weight:800;font-size:1.3rem;margin-bottom:1rem;box-shadow:0 14px 24px -12px rgba(255,92,147,.9)}
.steps h3{margin-bottom:.4rem}.steps p{color:var(--muted);font-size:.97rem}
/* pricing */
.plans{list-style:none;display:grid;gap:1.6rem;align-items:stretch}
.plan{position:relative;background:#fff;border:1px solid var(--line);border-radius:30px;padding:2.2rem 2rem;display:flex;flex-direction:column;box-shadow:0 30px 56px -40px rgba(28,27,58,.8)}
.plan.best{background:linear-gradient(170deg,#fff,#F3EFFF);border:2px solid var(--violet);box-shadow:0 40px 70px -36px rgba(108,77,255,.8)}
.badge{position:absolute;top:-15px;left:50%;translate:-50%;background:var(--grad);color:#fff;padding:.35rem 1.1rem;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.plan h2,.plan h3{font-size:1.5rem}.price{margin:1rem 0 .3rem;display:flex;align-items:baseline;gap:.6rem}.price b{font-size:3.4rem;font-weight:800;letter-spacing:-.05em;line-height:1}.price span{color:var(--muted);font-size:.9rem}.pdesc{color:var(--muted);margin:.4rem 0 1rem;font-size:.97rem}
.plan ul{list-style:none;margin:1rem 0 1.8rem;display:grid;gap:.6rem;flex:1}.plan li{display:flex;gap:.6rem;align-items:flex-start;font-weight:600;font-size:.97rem}.plan li .ico{color:var(--mint);margin-top:.25rem}
.plans.mini .plan{padding:1.8rem}.plans.mini .price b{font-size:2.8rem}.plans.mini ul{margin-bottom:0}
.tbl-wrap{overflow-x:auto;border-radius:var(--r);background:#fff;border:1px solid var(--line)}.tbl{width:100%;border-collapse:collapse;min-width:560px}.tbl th,.tbl td{padding:1rem 1.2rem;text-align:center;border-bottom:1px solid var(--line)}.tbl thead th{background:var(--ink);color:#fff;font-weight:700}.tbl tbody th{text-align:left;font-weight:600}.tbl tbody tr:hover{background:var(--lav)}
.extras{list-style:none;display:grid;gap:.8rem}.extras li{display:flex;justify-content:space-between;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.3rem}.extras b{color:var(--violet2)}
.tools{list-style:none;display:grid;gap:.8rem}.tools li{display:flex;align-items:center;gap:.7rem;background:#fff;border-radius:16px;padding:1rem 1.3rem;font-weight:700}.tools .ico{color:var(--violet2)}
/* faq */
.qa{background:#fff;border:1px solid var(--line);border-radius:20px;margin-bottom:.8rem;overflow:hidden;transition:box-shadow .3s}.qa[open]{box-shadow:0 20px 40px -30px rgba(108,77,255,.7)}
.qa summary{cursor:pointer;list-style:none;padding:1.2rem 1.5rem;font-weight:700;font-size:1.08rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:'+';display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lav);color:var(--violet2);font-size:1.4rem;line-height:1;flex:none;transition:transform .35s var(--ease),background .3s}.qa[open] summary::after{transform:rotate(45deg);background:var(--violet);color:#fff}
.qa p{padding:0 1.5rem 1.3rem;color:var(--muted)}
/* cta */
.cta-band{position:relative;overflow:hidden;padding:clamp(4.5rem,9vw,7rem) 0;background:linear-gradient(120deg,#6C4DFF,#C74FD0 55%,#FF7B6B);color:#fff;isolation:isolate}
.cta-band h2{font-size:clamp(2rem,5vw,3.6rem);max-width:20ch;margin-inline:auto}.cta-band p{max-width:50ch;margin:1.1rem auto 2rem;color:#f4ecff;font-size:1.1rem}
.shapes i{position:absolute;z-index:-1;border-radius:50%;background:rgba(255,255,255,.14);animation:floaty 12s ease-in-out infinite alternate}.shapes i:nth-child(1){width:260px;height:260px;left:-60px;top:-60px}.shapes i:nth-child(2){width:180px;height:180px;right:8%;bottom:-50px;animation-delay:-4s}.shapes i:nth-child(3){width:90px;height:90px;right:22%;top:14%;animation-delay:-8s}
/* inner pages */
.page-head{padding:10rem 0 3rem;background:linear-gradient(180deg,#F6F1FF,var(--bg))}.page-head h1{font-size:clamp(2.3rem,5.6vw,4.4rem);max-width:19ch}.page-head .lead{margin-top:1.1rem}
.crumbs{font-size:.85rem;margin-bottom:1.3rem;color:var(--muted)}.crumbs ol{list-style:none;display:flex;gap:.5rem;flex-wrap:wrap}.crumbs li+li::before{content:'/';margin-right:.5rem;opacity:.5}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--violet2)}.crumbs [aria-current]{font-weight:700;color:var(--ink)}
.svc{list-style:none;display:grid;gap:4.5rem}.svc-row{display:grid;gap:2rem;align-items:center}.svc-tx h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:.7rem}.svc-tx>p{color:var(--muted)}.svc-tx .who{color:var(--ink);font-weight:600;margin:1rem 0 1.4rem;font-size:.95rem}
.ticks{list-style:none;display:grid;gap:.55rem;margin:1.2rem 0}.ticks li{display:flex;gap:.6rem;align-items:flex-start;font-weight:600;font-size:.97rem}.ticks .ico{color:var(--mint);margin-top:.25rem}
.svc-pic a{display:block;border-radius:var(--r);overflow:hidden;box-shadow:0 40px 70px -36px rgba(28,27,58,.8);border:1px solid var(--line)}.svc-pic img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top;transition:transform 1.2s var(--ease)}.svc-pic a:hover img{transform:scale(1.05)}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.4rem}.chips button{min-height:46px;padding:0 1.4rem;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:700 .95rem "Plus Jakarta Sans",sans-serif;cursor:pointer;color:var(--ink);transition:all .3s var(--ease)}.chips button:hover{border-color:var(--violet);color:var(--violet2)}.chips button.on{background:var(--ink);border-color:var(--ink);color:#fff;transform:translateY(-2px)}
.big-proj{list-style:none;display:grid;gap:4rem}.bp{display:grid;gap:1.8rem;align-items:center}
.bp-pic{display:block;position:relative;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:0 40px 70px -36px rgba(28,27,58,.8);border:1px solid var(--line);text-decoration:none}.bp-pic>img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top}.bp-phone{position:absolute;right:5%;bottom:-8%;width:19%;border-radius:16px;overflow:hidden;border:4px solid var(--ink);box-shadow:0 20px 30px -14px rgba(0,0,0,.6)}.bp-phone img{width:100%;aspect-ratio:390/844;object-fit:cover;object-position:top}
.bp-tx h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:.6rem}.bp-tx>p{color:var(--muted)}
.bp-tx dl{display:flex;gap:2rem;margin:1.2rem 0}.bp-tx dt{font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.bp-tx dd{font-weight:800;font-size:1.1rem}
.bp-tx .btns{margin-top:1.4rem}
.split{display:grid;gap:3.5rem;align-items:center}.split h2{margin-bottom:1rem}.split p{color:var(--muted);margin-bottom:1rem}
.collage2{position:relative;min-height:340px}.collage2 .shot{position:relative;width:88%}.collage2 .phone{right:0;bottom:-4%;width:26%}
.four{grid-template-columns:1fr}
.contact{display:grid;gap:2.6rem}
.form{display:grid;gap:1.15rem;background:#fff;padding:clamp(1.5rem,3vw,2.4rem);border-radius:30px;border:1px solid var(--line);box-shadow:0 40px 70px -46px rgba(28,27,58,.8)}.form h2{font-size:1.9rem}
.form label{display:grid;gap:.4rem;font-weight:700;font-size:.9rem}
.form input,.form select,.form textarea{font:inherit;font-weight:500;padding:.95rem 1.1rem;border-radius:14px;border:2px solid var(--line);background:#FBFAFF;color:var(--ink);width:100%;transition:border-color .25s,box-shadow .25s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px rgba(108,77,255,.15);background:#fff}.two{display:grid;gap:1.15rem}
.info{display:flex;gap:1rem;align-items:flex-start;padding:1.3rem 0;border-bottom:1px solid var(--line)}.info h2{font-size:1.05rem;margin-bottom:.2rem}.info p,.info a{color:var(--muted)}.info a:hover{color:var(--violet2)}
.nf{min-height:100svh;display:grid;align-content:center;padding:9rem 0 5rem;background:linear-gradient(180deg,#F6F1FF,var(--bg))}.nf h1{max-width:14ch;margin-bottom:1rem}.nf .btns{margin-top:2rem}
/* footer */
.foot{position:relative;background:var(--ink);color:#cfcdf0;padding:5rem 0 0;overflow:hidden;isolation:isolate}
.blobs-foot{position:absolute;inset:0;z-index:-1;background:radial-gradient(600px circle at 10% 0,rgba(108,77,255,.35),transparent 70%),radial-gradient(500px circle at 95% 60%,rgba(255,92,147,.25),transparent 70%)}
.foot-grid{display:grid;gap:2.6rem}.foot h2{font-size:.8rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:1rem}.foot ul{list-style:none;display:grid;gap:.5rem}.foot a{text-decoration:none}.foot li a:hover{color:#fff;text-decoration:underline}
.foot-brand p{max-width:34ch;margin:1rem 0 1.4rem}.foot .brand{color:#fff}
.legal{margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.15);font-size:.88rem}
.wordmark{font-weight:800;font-size:11.4vw;line-height:.8;letter-spacing:-.06em;white-space:nowrap;text-align:center;color:transparent;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 90%);-webkit-background-clip:text;background-clip:text;margin-top:2rem;margin-bottom:-.05em;user-select:none}
/* responsive */
@media (min-width:700px){.cards3{grid-template-columns:repeat(3,1fr)}.why{grid-template-columns:repeat(2,1fr)}.seo{grid-template-columns:repeat(2,1fr)}.proj{grid-template-columns:repeat(2,1fr)}.pcard.wide{grid-column:span 2}.pcard.wide .pimg img{aspect-ratio:21/9}.steps{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(4,1fr)}.plans{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr 1fr}.extras{grid-template-columns:repeat(2,1fr)}.tools{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr}.four{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.proj{grid-template-columns:repeat(3,1fr)}.pcard.wide{grid-column:span 2}.why{grid-template-columns:repeat(3,1fr)}.seo{grid-template-columns:repeat(4,1fr)}.steps{grid-template-columns:repeat(4,1fr)}.steps.six{grid-template-columns:repeat(3,1fr)}.svc-row{grid-template-columns:1fr 1fr;gap:5rem}.svc-row.flip .svc-pic{order:-1}.bp{grid-template-columns:1.25fr 1fr;gap:4rem}.split{grid-template-columns:1fr 1fr;gap:5rem}.contact{grid-template-columns:1.4fr 1fr;gap:4rem}.tools{grid-template-columns:repeat(3,1fr)}.cards3 .card:nth-child(2){margin-top:2.4rem}.four{grid-template-columns:repeat(4,1fr)}.four li{flex-direction:column}}
/* legal pages, cookie notice, form consent (appended to the Nova stylesheet by apply step) */
.doc{max-width:780px}.doc h2{font-size:1.45rem;margin:2.4rem 0 .6rem}.doc p,.doc li{color:var(--muted)}.doc p{margin-bottom:.9rem}.doc ul{padding-left:1.3rem;margin:.6rem 0 1rem;display:grid;gap:.5rem}.doc a{color:var(--violet2);text-decoration:underline}.doc b{color:var(--ink)}
.doc .updated{font-size:.88rem;font-weight:700;color:var(--violet2)}.doc .lead2{font-size:1.15rem;color:var(--ink);margin-bottom:1.4rem}
.doc .box{background:var(--lav);border-radius:20px;padding:1.2rem 1.5rem;margin:1.2rem 0;color:var(--ink)}
.doc code{background:var(--lav);padding:.1rem .4rem;border-radius:6px;font-size:.9em}
.tbl.small th,.tbl.small td{text-align:left;font-size:.95rem;vertical-align:top}.tbl.small thead th{text-align:left}
.consent{font-size:.88rem;color:var(--muted)}.consent a{color:var(--violet2);text-decoration:underline}
.legal-links{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-top:1rem;font-size:.92rem}.legal-links a{text-decoration:underline}.legal-links a:hover{color:#fff}
.legal a{text-decoration:underline}
.notice{position:fixed;left:50%;bottom:16px;translate:-50%;width:min(680px,calc(100% - 28px));display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 24px 60px -18px rgba(28,27,58,.55),0 0 0 1px var(--line);z-index:200;font-size:.92rem;animation:menuin .6s var(--ease) .6s both}
.notice p{flex:1;line-height:1.5}.notice a{color:var(--violet2);text-decoration:underline;font-weight:600}
@media (max-width:560px){.notice{flex-direction:column;align-items:stretch;text-align:center}}
