:root{
  --bg:#0a0f1e; --bg-2:#0e1628; --card:#111c33; --card-2:#0f1930;
  --border:#20304f; --border-2:#2b3f66;
  --text:#eaf1fb; --muted:#93a5c4; --dim:#647495;
  --accent:#5eb0ef; --accent-2:#7ee0c3; --gold:#ffd479; --danger:#f28b82;
  --gt:#7ee0c3; --bl:#f2a58b;
  --radius:16px; --radius-sm:10px;
  --shadow:0 20px 60px -20px rgba(0,0,0,.7);
  font-size:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--text);
  font-family:"Segoe UI",system-ui,-apple-system,sans-serif;
  line-height:1.6; min-height:100vh;
  background-image:
    radial-gradient(1200px 700px at 82% -12%, #16294a 0%, transparent 58%),
    radial-gradient(900px 600px at -12% 108%, #103042 0%, transparent 55%);
  background-attachment:fixed;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(12px);
  background:rgba(10,15,30,.72);border-bottom:1px solid var(--border)}
.nav-in{max-width:1120px;margin:0 auto;padding:.85rem 1.4rem;display:flex;align-items:center;gap:1.2rem}
.brand{font-weight:700;letter-spacing:-.01em;font-size:1.1rem;color:var(--text)}
.brand:hover{text-decoration:none}
.brand .dot{color:var(--accent-2)}
.nav .spacer{flex:1}
.nav a.link{color:var(--muted);font-size:.94rem}
.nav a.link:hover{color:var(--text);text-decoration:none}

.wrap{max-width:1120px;margin:0 auto;padding:2.4rem 1.4rem 4rem}
.narrow{max-width:560px}
.mid{max-width:820px}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;
  border:1px solid transparent;border-radius:12px;padding:.72rem 1.3rem;
  font-size:.96rem;font-weight:600;font-family:inherit;transition:.15s;text-decoration:none}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--accent),#4f8fd6);color:#04121f}
.btn-primary:hover{box-shadow:0 10px 30px -10px var(--accent)}
.btn-ghost{background:transparent;border-color:var(--border-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent)}
.btn-gold{background:linear-gradient(135deg,var(--gold),#e9b74e);color:#2a1c00}
.btn-lg{padding:.95rem 1.7rem;font-size:1.02rem}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* ---- hero ---- */
.hero{padding:4.5rem 0 2rem;text-align:center}
.eyebrow{display:inline-block;padding:.3rem 1rem;border:1px solid var(--border-2);
  border-radius:999px;color:var(--accent-2);font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:1.4rem;background:rgba(126,224,195,.06)}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.08;letter-spacing:-.03em;font-weight:750}
.hero h1 .grad{background:linear-gradient(120deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.sub{color:var(--muted);font-size:clamp(1.02rem,2vw,1.22rem);max-width:640px;margin:1.3rem auto 0}
.hero .cta{margin-top:2.2rem;display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

/* ---- cards / grid ---- */
.grid{display:grid;gap:1.1rem}
.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.card{background:linear-gradient(180deg,var(--card),var(--card-2));
  border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:.18s}
.card:hover{border-color:var(--border-2);transform:translateY(-3px);box-shadow:var(--shadow)}
.card h3{font-size:1.14rem;margin-bottom:.4rem}
.card p{color:var(--muted);font-size:.94rem}
.card .ico{font-size:1.7rem;margin-bottom:.7rem}

.section-title{font-size:1.5rem;letter-spacing:-.02em;margin:2.6rem 0 1.2rem}
.lead{color:var(--muted);font-size:1.05rem;max-width:720px}

/* ---- steps ---- */
.steps{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1.6rem}
.step{position:relative;padding:1.4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-2)}
.step .n{position:absolute;top:-14px;left:16px;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;font-weight:700;color:#04121f;background:var(--accent-2)}
.step h4{margin:.5rem 0 .3rem}
.step p{color:var(--muted);font-size:.9rem}

/* ---- forms ---- */
.panel{background:linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--border);
  border-radius:var(--radius);padding:2rem}
.field{margin-bottom:1.15rem}
.field label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;background:#0b1424;border:1px solid var(--border-2);
  color:var(--text);border-radius:var(--radius-sm);padding:.75rem .9rem;font-size:.98rem;font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field .hint{color:var(--dim);font-size:.82rem;margin-top:.35rem}
.row{display:flex;gap:1rem;flex-wrap:wrap}
.row>*{flex:1;min-width:180px}
.form-title{font-size:1.6rem;margin-bottom:.4rem}
.form-sub{color:var(--muted);margin-bottom:1.6rem}

/* ---- dropzone ---- */
.dropzone{border:2px dashed var(--border-2);border-radius:var(--radius);padding:2.4rem 1.4rem;
  text-align:center;color:var(--muted);cursor:pointer;transition:.15s;background:#0b14248c}
.dropzone.drag{border-color:var(--accent);background:rgba(94,176,239,.08);color:var(--text)}
.dropzone .big{font-size:2rem;margin-bottom:.5rem}
.filelist{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}
.chip{background:#0b1424;border:1px solid var(--border-2);border-radius:999px;
  padding:.28rem .8rem;font-size:.82rem;color:var(--muted)}

/* ---- alerts ---- */
.alert{padding:.85rem 1.1rem;border-radius:var(--radius-sm);margin-bottom:1.2rem;font-size:.94rem;border:1px solid}
.alert-ok{background:rgba(126,224,195,.08);border-color:#2f5f52;color:var(--accent-2)}
.alert-err{background:rgba(242,139,130,.08);border-color:#6b3a37;color:var(--danger)}
.alert-info{background:rgba(94,176,239,.08);border-color:#2c496b;color:var(--accent)}

/* ---- stats / badges ---- */
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.8rem;margin:1.4rem 0}
.stat{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;text-align:center}
.stat .v{font-size:1.7rem;font-weight:700}
.stat .l{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.stat.gt .v{color:var(--gt)} .stat.bl .v{color:var(--bl)}
.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em}
.badge-gt{background:rgba(126,224,195,.15);color:var(--gt)}
.badge-bl{background:rgba(242,165,139,.15);color:var(--bl)}
.badge-un{background:rgba(148,165,196,.12);color:var(--muted)}

/* ---- table ---- */
.tbl{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:1rem}
.tbl th,.tbl td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--border)}
.tbl th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-2)}

/* ---- gallery ---- */
.masonry{columns:4 240px;column-gap:1rem}
.masonry .tile{break-inside:avoid;margin-bottom:1rem;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--border);background:var(--card-2);position:relative;transition:.18s}
.masonry .tile:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow)}
.masonry .tile img{width:100%}
.tile .meta{padding:.7rem .85rem}
.tile .meta .t{font-size:.92rem;font-weight:600}
.tile .meta .p{color:var(--accent-2);font-size:.85rem;margin-top:.2rem}
.tile .price-pill{position:absolute;top:.6rem;right:.6rem;background:rgba(0,0,0,.6);
  color:var(--gold);padding:.2rem .6rem;border-radius:999px;font-size:.82rem;font-weight:700;backdrop-filter:blur(4px)}

/* ---- pricing ---- */
.price-cards{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1.6rem}
.price-card{border:1px solid var(--border);border-radius:var(--radius);padding:1.8rem;background:var(--card-2)}
.price-card.feat{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.price-card .amt{font-size:2.4rem;font-weight:750;margin:.4rem 0}
.price-card ul{list-style:none;margin:1.1rem 0;color:var(--muted);font-size:.92rem}
.price-card li{padding:.3rem 0 .3rem 1.4rem;position:relative}
.price-card li:before{content:"✓";position:absolute;left:0;color:var(--accent-2)}

footer{border-top:1px solid var(--border);margin-top:4rem;padding:2rem 1.4rem;color:var(--dim);font-size:.85rem;text-align:center}
footer a{color:var(--muted)}

.spin{width:18px;height:18px;border:2px solid var(--border-2);border-top-color:var(--accent);
  border-radius:50%;display:inline-block;animation:sp .7s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}
.fade{animation:fade .5s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---- animated hero backdrop (floating gradient orbs) ---- */
.hero{position:relative;overflow:hidden}
.hero .orbs{position:absolute;inset:-20% -10% auto;height:120%;z-index:-1;pointer-events:none;filter:blur(60px);opacity:.55}
.hero .orb{position:absolute;border-radius:50%;mix-blend-mode:screen;animation:float 14s ease-in-out infinite}
.orb.a{width:340px;height:340px;background:radial-gradient(circle,#5eb0ef,transparent 65%);top:-40px;left:8%}
.orb.b{width:300px;height:300px;background:radial-gradient(circle,#7ee0c3,transparent 65%);top:20px;right:12%;animation-delay:-4s}
.orb.c{width:260px;height:260px;background:radial-gradient(circle,#9d7bff,transparent 65%);top:120px;left:44%;animation-delay:-8s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(24px,-26px) scale(1.08)}66%{transform:translate(-20px,18px) scale(.94)}}
@media (prefers-reduced-motion:reduce){.hero .orb{animation:none}}

/* ---- scroll reveal ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.06s}.reveal.d2{transition-delay:.12s}.reveal.d3{transition-delay:.18s}.reveal.d4{transition-delay:.24s}

/* ---- button shine ---- */
.btn-primary,.btn-gold{position:relative;overflow:hidden}
.btn-primary:after,.btn-gold:after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);transition:left .6s}
.btn-primary:hover:after,.btn-gold:hover:after{left:140%}

/* card lift + accent glow on hover already exists; add icon pop */
.card:hover .ico{transform:scale(1.12) translateY(-2px);transition:transform .2s}
.card .ico{transition:transform .2s;display:inline-block}

/* count-up stat emphasis */
.stat .v[data-count]{font-variant-numeric:tabular-nums}

/* gallery hover overlay */
.masonry .tile:after{content:"View";position:absolute;inset:auto 0 0 0;padding:.9rem;
  background:linear-gradient(transparent,rgba(4,10,20,.85));color:#fff;font-weight:600;font-size:.85rem;
  opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}
.masonry .tile:hover:after{opacity:1;transform:none}
.masonry .tile img{transition:transform .35s ease}
.masonry .tile:hover img{transform:scale(1.06)}

/* before/after focus demo strip on landing */
.demo-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-top:1.4rem}
.demo-cell{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--card-2);position:relative}
.demo-cell .ph{height:110px;display:grid;place-items:center;font-size:2.2rem}
.demo-cell .cap{padding:.5rem .7rem;font-size:.8rem;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.demo-cell.gt{box-shadow:inset 0 0 0 1px var(--gt)}
.demo-cell.bl{opacity:.85}
.demo-cell .ph.blur{filter:blur(3px)}
