:root{
  --bg:#0b0d11;--bg2:#11141a;--bg3:#171b22;--panel:#141820;--line:#232934;--line2:#2e3542;
  --text:#e8ebf0;--muted:#8a93a3;--muted2:#5d6675;
  --accent:#7c5cff;--accent2:#22d3ee;--ok:#34d399;--warn:#fbbf24;--danger:#f87171;
  --radius:12px;--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent2);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5em;font-weight:700;letter-spacing:-.01em}
h1{font-size:2.2rem;line-height:1.15}h2{font-size:1.5rem}h3{font-size:1.1rem}
p{margin:0 0 1em}
.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.grow{flex:1}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.card.pad-sm{padding:14px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--bg3);color:var(--text);border:1px solid var(--line2);border-radius:9px;padding:9px 16px;font-weight:600;font-size:.92rem;cursor:pointer;transition:.15s;text-decoration:none!important;white-space:nowrap}
.btn:hover{border-color:var(--accent);background:#1c2130}
.btn.primary{background:linear-gradient(135deg,var(--accent),#5b3df0);border-color:transparent;color:#fff}
.btn.primary:hover{filter:brightness(1.1)}
.btn.accent{background:var(--accent2);color:#06202a;border-color:transparent}
.btn.danger{color:var(--danger);border-color:#4a2b2b}.btn.danger:hover{background:#2a1717}
.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--bg3)}
.btn.sm{padding:6px 11px;font-size:.82rem}.btn.lg{padding:14px 26px;font-size:1.05rem}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.block{width:100%;justify-content:center}
input,select,textarea{background:var(--bg2);color:var(--text);border:1px solid var(--line2);border-radius:8px;padding:9px 12px;font:inherit;font-size:.92rem;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
input[type=checkbox]{width:auto}
input[type=range]{padding:0;background:transparent;border:0;accent-color:var(--accent)}
input[type=color]{padding:2px;height:34px;width:46px}
label{display:block;font-size:.82rem;color:var(--muted);margin:0 0 4px;font-weight:600}
.field{margin-bottom:12px}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--bg3);color:var(--muted);border:1px solid var(--line)}
.badge.ok{color:var(--ok);border-color:#1f4d3e}.badge.warn{color:var(--warn);border-color:#4d3f1f}.badge.danger{color:var(--danger);border-color:#4d1f1f}.badge.accent{color:#fff;background:var(--accent);border-color:transparent}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th,td{text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
tr:hover td{background:#13171f}
.table-wrap{overflow:auto}
.alert{padding:12px 16px;border-radius:10px;border:1px solid var(--line2);background:var(--bg3);margin-bottom:16px}
.alert.ok{border-color:#1f4d3e;background:#0f2a21}.alert.danger{border-color:#4d1f1f;background:#2a0f0f}
.bar{height:8px;background:var(--bg2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--bg3)}
hr{border:0;border-top:1px solid var(--line);margin:20px 0}
code{background:var(--bg2);padding:2px 6px;border-radius:5px;font-size:.85em}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50;background:rgba(11,13,17,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav .container{display:flex;align-items:center;gap:20px;height:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;color:var(--text)!important;letter-spacing:-.02em}
.logo i{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:inline-block;position:relative}
.logo i::after{content:"";position:absolute;inset:7px;border-radius:4px;background:var(--bg);opacity:.9}
.nav-links{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav-links a.btn.ghost{color:var(--muted)}.nav-links a.btn.ghost:hover{color:var(--text)}
.balance-pill{display:inline-flex;gap:6px;align-items:center;background:var(--bg3);border:1px solid var(--line2);border-radius:999px;padding:6px 12px;font-weight:700;font-size:.88rem}
.balance-pill b{color:var(--ok)}

main.page{padding:36px 0 80px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}

/* ---- landing ---- */
.hero{position:relative;padding:90px 0 60px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-200px 0 auto;height:700px;background:radial-gradient(600px 400px at 20% 20%,rgba(124,92,255,.25),transparent 60%),radial-gradient(500px 400px at 80% 10%,rgba(34,211,238,.18),transparent 60%);pointer-events:none}
.hero .container{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.hero h1{font-size:3.2rem;line-height:1.05;letter-spacing:-.03em;margin-bottom:18px}
.hero h1 span{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:1.15rem;color:var(--muted);max-width:540px}
.eyebrow{display:inline-flex;gap:8px;align-items:center;color:var(--accent2);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:16px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--accent2)}
.demo{position:relative;border-radius:18px;border:1px solid var(--line2);background:var(--bg2);box-shadow:0 30px 80px rgba(0,0,0,.6);overflow:hidden;aspect-ratio:4/3}
.demo .stage{position:absolute;inset:0;perspective:1200px}
.demo .layer{position:absolute;border-radius:10px;box-shadow:0 20px 40px rgba(0,0,0,.5);transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .6s}
.demo .l-bg{inset:8% 8%;background:linear-gradient(160deg,#1e2a3a,#0e1521 60%,#1a1228);transform:translateZ(-80px)}
.demo .l-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(200px 120px at 70% 30%,rgba(255,200,120,.35),transparent 70%),radial-gradient(300px 160px at 20% 90%,rgba(34,211,238,.25),transparent 70%);border-radius:10px}
.demo .l-subject{left:28%;top:22%;width:44%;height:60%;background:linear-gradient(180deg,#f0c9a8 0 28%,#2c3550 28% 100%);border-radius:40% 40% 10px 10px/30% 30% 10px 10px;transform:translateZ(40px)}
.demo .l-text{left:12%;bottom:14%;padding:10px 16px;background:rgba(255,255,255,.08);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);font-weight:800;letter-spacing:.06em;transform:translateZ(110px);font-size:.95rem}
.demo .l-obj{right:14%;top:16%;width:16%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6,#ffb35a 40%,#ff6b35);transform:translateZ(80px)}
.demo.exploded .l-bg{transform:translateZ(-80px) rotateY(-28deg) translateX(-10%)}
.demo.exploded .l-subject{transform:translateZ(40px) rotateY(-28deg) translateX(12%)}
.demo.exploded .l-text{transform:translateZ(110px) rotateY(-28deg) translateX(34%)}
.demo.exploded .l-obj{transform:translateZ(80px) rotateY(-28deg) translateX(40%)}
.demo .tag{position:absolute;right:14px;top:14px;background:var(--bg);border:1px solid var(--line2);border-radius:999px;padding:6px 12px;font-size:.75rem;font-weight:700;color:var(--accent2)}
.demo .tools{position:absolute;left:0;top:0;bottom:0;width:46px;background:var(--bg);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px;padding:12px 9px}
.demo .tools i{display:block;height:28px;border-radius:7px;background:var(--bg3);border:1px solid var(--line)}
.demo .tools i.on{background:var(--accent);border-color:transparent}
.demo .layers{position:absolute;right:14px;bottom:14px;width:150px;background:rgba(11,13,17,.9);border:1px solid var(--line2);border-radius:10px;padding:8px;font-size:.72rem}
.demo .layers div{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px}
.demo .layers div.on{background:var(--bg3)}
.demo .layers b{width:14px;height:14px;border-radius:3px;display:inline-block}
.feature{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:14px;transition:.2s}
.feature:hover{border-color:var(--accent);transform:translateY(-2px)}
.feature .ic{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,rgba(124,92,255,.3),rgba(34,211,238,.2));display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:20px}
.feature h3{margin-bottom:6px}.feature p{color:var(--muted);margin:0;font-size:.92rem}
.section{padding:60px 0}
.section-title{text-align:center;max-width:640px;margin:0 auto 40px}
.section-title h2{font-size:2.1rem;letter-spacing:-.02em}
.section-title p{color:var(--muted);font-size:1.05rem}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.step{text-align:center}.step b{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--accent);align-items:center;justify-content:center;margin-bottom:12px;font-size:1rem}
.pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;max-width:900px;margin:0 auto}
.price{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;text-align:center;position:relative}
.price.hl{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 20px 60px rgba(124,92,255,.2)}
.price .amt{font-size:2.3rem;font-weight:800;letter-spacing:-.03em;margin:8px 0}
.price .amt small{font-size:1rem;color:var(--muted);font-weight:600}
.price .credits{color:var(--ok);font-weight:700}
.cta{background:linear-gradient(135deg,rgba(124,92,255,.18),rgba(34,211,238,.1));border:1px solid var(--line2);border-radius:22px;padding:60px 40px;text-align:center}
footer{border-top:1px solid var(--line);padding:30px 0;color:var(--muted);font-size:.85rem}
footer .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* ---- dashboard ---- */
.proj{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.15s;display:flex;flex-direction:column}
.proj:hover{border-color:var(--accent)}
.proj .th{aspect-ratio:4/3;background:var(--bg2) repeating-conic-gradient(#1a1e26 0 25%,#141820 0 50%) 0 0/20px 20px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.proj .th img{width:100%;height:100%;object-fit:contain}
.proj .meta{padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.proj .meta b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.proj.new{align-items:center;justify-content:center;min-height:200px;border-style:dashed;cursor:pointer;color:var(--muted)}
.proj.new:hover{color:var(--text)}
.exports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.exp{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.exp img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--bg2)}
.exp .m{padding:8px 10px;font-size:.75rem;color:var(--muted);display:flex;justify-content:space-between;gap:6px}

/* ---- modal ---- */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-bg.open{display:flex}
.modal{background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:24px;width:100%;max-width:520px;max-height:92vh;overflow:auto;box-shadow:0 40px 100px rgba(0,0,0,.6)}
.modal h3{margin-bottom:14px}
.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.presets button{background:var(--bg2);border:1px solid var(--line2);color:var(--text);border-radius:8px;padding:8px;font-size:.78rem;cursor:pointer;text-align:left}
.presets button:hover,.presets button.on{border-color:var(--accent)}
.presets button small{display:block;color:var(--muted)}

/* ---- admin ---- */
.admin-nav{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px;flex-wrap:wrap}
.admin-nav a{padding:10px 14px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.admin-nav a.on,.admin-nav a:hover{color:var(--text);border-color:var(--accent);text-decoration:none}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.stat .v{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.stat .l{color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.inline-form{display:inline}

@media (max-width:900px){
  .hero .container{grid-template-columns:1fr}.hero h1{font-size:2.3rem}.steps{grid-template-columns:1fr 1fr}
}
