:root {
    --bg: #050b14;
    --card-bg: rgba(255,255,255,0.03);
    --card-border: rgba(255,255,255,0.08);
    --accent: #05f283;
    --accent-glow: rgba(5,242,131,0.25);
    --text: #ffffff;
    --muted: #94a3b8;
    --font-h: 'Outfit', sans-serif;
    --font-b: 'Inter', sans-serif;
    --r-lg: 24px;
    --r-md: 16px;
    --ease: cubic-bezier(0.25,0.8,0.25,1);
}

/* ── Reset ── */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--font-b);overflow-x:hidden;line-height:1.6;}
img{max-width:100%;display:block;}
a{text-decoration:none;}

/* ── Layout ── */
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 28px;position:relative;z-index:2;}
.section{padding:110px 0;position:relative;}

/* ── Scroll Progress ── */
.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--accent),#00c96b);z-index:9999;width:0%;transition:width 0.1s linear;}

/* ── Particle Canvas ── */
.particle-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:1;}

/* ── Noise Overlay ── */
.noise-overlay{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0.04;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size:200px 200px;}

/* ── Typography ── */
h1,h2,h3,h4{font-family:var(--font-h);font-weight:700;line-height:1.1;margin-bottom:20px;}
h1{font-size:clamp(2.6rem,5.5vw,5rem);letter-spacing:-0.03em;}
h2{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-0.02em;}
h3{font-size:1.4rem;font-weight:600;}
h4{font-size:1.1rem;font-weight:600;}
p{font-size:1.0625rem;color:var(--muted);line-height:1.7;}
.accent{color:var(--accent);}
.italic{font-style:italic;}
.center{text-align:center;}

/* ── Section Tag ── */
.section-tag{display:inline-block;font-size:0.75rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;}
.section-head{margin-bottom:70px;}
.section-head p{max-width:600px;margin-top:12px;}
.section-head.center p{margin:12px auto 0;}

/* ── Orbs ── */
.orb{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;z-index:0;}
.orb-1{width:700px;height:700px;background:rgba(5,242,131,0.06);top:-200px;right:-200px;}
.orb-2{width:500px;height:500px;background:rgba(5,100,200,0.04);bottom:10%;left:-150px;}
.orb-3{width:300px;height:300px;background:rgba(5,242,131,0.04);top:60%;right:10%;}
.orb-login{width:600px;height:600px;background:rgba(5,242,131,0.05);top:-100px;left:-200px;}
.orb-workflow{width:800px;height:800px;background:rgba(5,242,131,0.04);top:50%;left:50%;transform:translate(-50%,-50%);}
.orb-cta-1{width:500px;height:500px;background:rgba(5,242,131,0.08);top:-100px;right:-100px;}
.orb-cta-2{width:400px;height:400px;background:rgba(5,242,131,0.05);bottom:-100px;left:-100px;}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:50px;font-weight:600;font-size:0.9375rem;transition:all 0.3s var(--ease);cursor:pointer;border:none;position:relative;overflow:hidden;}
.btn svg{width:18px;height:18px;transition:transform 0.3s var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn-primary{background:var(--accent);color:#000;}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.2),transparent);opacity:0;transition:opacity 0.3s;}
.btn-primary:hover{box-shadow:0 0 30px var(--accent-glow),0 0 60px rgba(5,242,131,0.1);transform:translateY(-2px);}
.btn-primary:hover::before{opacity:1;}
.btn-outline{background:transparent;color:var(--text);border:1px solid var(--card-border);}
.btn-outline:hover{background:var(--card-bg);border-color:rgba(255,255,255,0.2);transform:translateY(-2px);}
.btn-large{padding:18px 40px;font-size:1rem;}

/* ── Scroll Animations ── */
.reveal-item{opacity:0;transform:translateY(36px);transition:opacity 0.7s var(--ease),transform 0.7s var(--ease);}
.reveal-item.visible{opacity:1;transform:translateY(0);}
.line-reveal{display:block;overflow:hidden;}
.line-reveal-inner{display:block;transform:translateY(100%);transition:transform 0.8s var(--ease);}
.line-reveal.visible .line-reveal-inner{transform:translateY(0);}

/* ── Badge ── */
.badge{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:50px;background:rgba(255,255,255,0.04);border:1px solid var(--card-border);font-size:0.8125rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:28px;color:var(--muted);}
.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse-dot 2s infinite;}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 6px var(--accent);}50%{box-shadow:0 0 14px var(--accent);}}

/* ─────────────────────────────────────────
   1. HERO
───────────────────────────────────────── */
.hero{min-height:100vh;display:flex;align-items:center;padding:140px 0 80px;position:relative;}
.hero-bg-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-h);font-size:16vw;font-weight:900;white-space:nowrap;color:rgba(255,255,255,0.018);pointer-events:none;user-select:none;z-index:1;letter-spacing:-0.04em;}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.hero-content{position:relative;z-index:2;}

/* Hero title — line by line reveal */
.hero-title{margin-bottom:28px;}
.hero-title .line-reveal{display:block;}

.hero-sub{font-size:1.125rem;max-width:500px;margin-bottom:0;}
.hero-actions{display:flex;gap:16px;margin-top:44px;}

/* Mockup wrapper */
.mockup-wrapper{position:relative;}
.mockup-glow{position:absolute;inset:-40px;background:radial-gradient(ellipse at center,rgba(5,242,131,0.12) 0%,transparent 70%);border-radius:50%;pointer-events:none;animation:glow-pulse 4s ease-in-out infinite;}
@keyframes glow-pulse{0%,100%{opacity:0.6;transform:scale(1);}50%{opacity:1;transform:scale(1.05);}}

/* Float animation */
.float-anim{animation:float var(--fd,1.2s) ease-in-out infinite alternate;}
@keyframes float{0%{transform:translateY(0);}100%{transform:translateY(-14px);}}

/* Floating mini-cards */
.float-card{position:absolute;background:rgba(8,16,30,0.9);border:1px solid rgba(5,242,131,0.25);border-radius:14px;padding:12px 18px;display:flex;align-items:center;gap:12px;backdrop-filter:blur(12px);box-shadow:0 8px 30px rgba(0,0,0,0.4),0 0 0 1px rgba(5,242,131,0.08);z-index:5;}
.fc-1{bottom:-24px;left:-30px;}
.fc-2{top:-20px;right:-20px;}
.fc-icon{font-size:1.5rem;}
.fc-val{font-family:var(--font-h);font-weight:800;font-size:1.2rem;color:var(--accent);line-height:1;}
.fc-lbl{font-size:0.75rem;color:var(--muted);margin-top:2px;}


/* ── Mockup Frames ── */
.mockup-frame{background:rgba(5,15,30,0.8);border:1px solid var(--card-border);border-radius:var(--r-lg);overflow:hidden;position:relative;backdrop-filter:blur(4px);}
.hero-mockup{box-shadow:0 40px 80px rgba(0,0,0,0.6),0 0 0 1px rgba(255,255,255,0.05),0 0 60px rgba(5,242,131,0.06);}
.login-mockup{max-width:900px;margin:60px auto 0;box-shadow:0 40px 80px rgba(0,0,0,0.5);}

.mockup-chrome{height:34px;background:rgba(255,255,255,0.03);border-bottom:1px solid var(--card-border);display:flex;align-items:center;padding:0 14px;gap:12px;flex-shrink:0;}
.mockup-chrome.compact{height:24px;padding:0 10px;}
.chrome-dots{display:flex;gap:6px;}
.chrome-dots span{width:10px;height:10px;border-radius:50%;}
.chrome-dots span:nth-child(1){background:#ff5f57;}
.chrome-dots span:nth-child(2){background:#febc2e;}
.chrome-dots span:nth-child(3){background:#28c840;}
.chrome-dots.small span{width:7px;height:7px;}
.chrome-url{font-size:0.7rem;color:var(--muted);background:rgba(255,255,255,0.04);border:1px solid var(--card-border);border-radius:4px;padding:2px 10px;font-family:monospace;}

.mockup-img{width:100%;height:auto;display:block;}

/* Empty state for missing images */
.mockup-frame.no-img .mockup-img{display:none;}
.mockup-empty-state{padding:40px 20px;text-align:center;color:var(--muted);}
.mockup-frame:not(.no-img) .mockup-empty-state{display:none;}
.empty-icon{font-size:2rem;margin-bottom:10px;}
.empty-text{font-family:var(--font-h);font-size:1rem;font-weight:600;color:rgba(255,255,255,0.5);margin-bottom:8px;}
.empty-hint{font-size:0.8rem;opacity:0.6;}
.empty-hint code{background:rgba(5,242,131,0.1);color:var(--accent);padding:2px 6px;border-radius:4px;}
.mockup-empty-state.compact{padding:20px;}

/* ─────────────────────────────────────────
   STATS STRIP
───────────────────────────────────────── */
.stats-strip{position:relative;z-index:2;padding:50px 0;}
.strip-line-top,.strip-line-bottom{height:1px;background:linear-gradient(90deg,transparent,var(--card-border),transparent);}
.stats-grid{display:grid;grid-template-columns:1fr 1px 1fr 1px 1fr 1px 1fr;align-items:center;gap:0;padding:40px 0;}
.stat-item{text-align:center;padding:0 20px;}
.stat-divider{width:1px;height:60px;background:var(--card-border);}
.stat-num{font-family:var(--font-h);font-size:clamp(2.5rem,4vw,4rem);font-weight:800;color:var(--text);line-height:1;}
.stat-suffix{font-size:clamp(1.5rem,2.5vw,2.5rem);}
.stat-label{font-size:0.85rem;color:var(--muted);margin-top:6px;font-weight:500;}

/* ─────────────────────────────────────────
   2. LOGIN
───────────────────────────────────────── */
.unified-login{overflow:hidden;}

/* Flow */
.login-flow{display:flex;align-items:center;justify-content:center;gap:0;margin:40px 0;flex-wrap:wrap;gap:4px;}
.flow-box{background:var(--card-bg);border:1px solid var(--card-border);padding:18px 28px;border-radius:var(--r-md);font-family:var(--font-h);font-size:1rem;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all 0.3s var(--ease);min-width:160px;}
.flow-box:hover{border-color:rgba(255,255,255,0.2);transform:translateY(-3px);}
.flow-icon{font-size:1.5rem;}
.accent-box{border-color:var(--accent);box-shadow:0 0 20px rgba(5,242,131,0.12);}
.accent-box .flow-icon{filter:drop-shadow(0 0 8px var(--accent));}
.flow-connector{display:flex;align-items:center;padding:0 8px;}
.flow-arrow-svg{width:80px;height:20px;}
.flow-path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1s var(--ease);}
.flow-path.drawn{stroke-dashoffset:0;}

/* ─────────────────────────────────────────
   3. ROLE DASHBOARDS
───────────────────────────────────────── */
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.dash-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);padding:36px;display:flex;flex-direction:column;gap:28px;position:relative;overflow:hidden;transition:border-color 0.4s var(--ease),transform 0.4s var(--ease);}
.dash-card:hover{border-color:rgba(255,255,255,0.14);transform:translateY(-6px);}
.dash-card-glow{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(5,242,131,0.07),transparent 70%);top:-100px;right:-100px;pointer-events:none;transition:all 0.5s var(--ease);}
.dash-card:hover .dash-card-glow{transform:scale(1.3);opacity:0.8;}

.dash-card-header{display:flex;align-items:center;gap:14px;}
.icon-wrap{width:50px;height:50px;border-radius:14px;background:rgba(255,255,255,0.04);border:1px solid var(--card-border);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0;}
.role-tag{font-size:0.7rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);margin-top:3px;}

.feature-list{list-style:none;display:flex;flex-direction:column;gap:10px;}
.feature-list li{display:flex;align-items:center;gap:10px;font-size:0.9375rem;color:var(--muted);}
.check{color:var(--accent);font-weight:700;font-size:0.875rem;width:18px;text-align:center;flex-shrink:0;}

.card-mockup{border-radius:12px;overflow:hidden;border-color:rgba(255,255,255,0.06);}

/* ─────────────────────────────────────────
   4. WORKFLOW — Vertical Alternating Timeline
───────────────────────────────────────── */
.vflow{position:relative;margin-top:80px;display:flex;flex-direction:column;gap:0;}

/* Center vertical spine */
.vflow-spine{position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);background:rgba(255,255,255,0.06);border-radius:2px;z-index:0;}
.vflow-spine-fill{width:100%;height:0%;background:linear-gradient(to bottom,var(--accent),rgba(5,242,131,0.3));border-radius:2px;transition:height 2.2s cubic-bezier(0.4,0,0.2,1);}
.vflow-spine-fill.animated{height:100%;}

/* Each row */
.vflow-row{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;gap:0;padding:24px 0;position:relative;z-index:1;}

/* Dot center column */
.vflow-dot-col{display:flex;justify-content:center;align-items:center;}
.vflow-dot-ring{width:60px;height:60px;border-radius:50%;background:var(--bg);border:2px solid rgba(255,255,255,0.12);display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all 0.4s var(--ease);box-shadow:0 0 0 6px rgba(5,15,20,0.8);}
.vflow-dot-accent{border-color:var(--accent);box-shadow:0 0 0 6px rgba(5,15,20,0.8),0 0 20px rgba(5,242,131,0.3);}
.vflow-row:hover .vflow-dot-ring{border-color:rgba(255,255,255,0.3);transform:scale(1.1);}

/* Cards */
.vflow-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);padding:28px 30px;transition:all 0.4s var(--ease);position:relative;overflow:hidden;}
.vflow-card::before{content:'';position:absolute;inset:0;border-radius:var(--r-lg);background:linear-gradient(135deg,rgba(5,242,131,0.04),transparent);opacity:0;transition:opacity 0.4s;}
.vflow-card:hover{border-color:rgba(255,255,255,0.14);transform:translateY(-4px);}
.vflow-card:hover::before{opacity:1;}
.vflow-card-accent{border-color:rgba(5,242,131,0.2);background:rgba(5,242,131,0.03);}
.vflow-card-accent:hover{border-color:rgba(5,242,131,0.4);}

.vflow-spacer{flex:1;}
.vflow-num{font-family:var(--font-h);font-size:0.7rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;opacity:0.5;}
.vflow-num.accent{color:var(--accent);opacity:1;}
.vflow-ch{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.vflow-ico{font-size:1.4rem;}
.vflow-ch h3{margin:0;font-size:1.2rem;}
.vflow-card p{font-size:0.9rem;margin:0 0 14px;line-height:1.6;}
.vflow-tag{display:inline-block;font-size:0.75rem;font-weight:500;color:var(--muted);background:rgba(255,255,255,0.04);border:1px solid var(--card-border);border-radius:50px;padding:4px 12px;}
.accent-tag{color:var(--accent);border-color:rgba(5,242,131,0.2);background:rgba(5,242,131,0.05);}

/* Slide-in animation — left cards from left, right cards from right */
.vflow-row[data-side="left"] .vflow-card{opacity:0;transform:translateX(-40px);transition:opacity 0.6s var(--ease),transform 0.6s var(--ease);}
.vflow-row[data-side="right"] .vflow-card{opacity:0;transform:translateX(40px);transition:opacity 0.6s var(--ease),transform 0.6s var(--ease);}
.vflow-row .vflow-dot-ring{opacity:0;transform:scale(0.6);transition:opacity 0.5s var(--ease),transform 0.5s var(--ease);}
.vflow-row.vf-visible .vflow-card{opacity:1;transform:translateX(0);}
.vflow-row.vf-visible .vflow-dot-ring{opacity:1;transform:scale(1);}


/* ─────────────────────────────────────────
   5. FEATURES
───────────────────────────────────────── */
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.feat-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);padding:30px 24px;position:relative;overflow:hidden;transition:all 0.4s var(--ease);}
.feat-card:hover{border-color:rgba(5,242,131,0.25);transform:translateY(-6px);}
.feat-card:hover .feat-glow{opacity:1;}
.feat-glow{position:absolute;bottom:-60px;left:50%;transform:translateX(-50%);width:200px;height:200px;background:radial-gradient(circle,rgba(5,242,131,0.12),transparent 70%);border-radius:50%;opacity:0;transition:opacity 0.4s var(--ease);pointer-events:none;}
.feat-icon-wrap{font-size:2rem;margin-bottom:16px;display:block;}
.feat-card h4{margin-bottom:8px;font-size:1rem;}
.feat-card p{font-size:0.875rem;margin:0;line-height:1.6;}

/* ─────────────────────────────────────────
   6. CTA
───────────────────────────────────────── */
.cta{overflow:hidden;}
.cta-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(5,242,131,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(5,242,131,0.04) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);pointer-events:none;}
.cta-inner{background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.07);border-radius:var(--r-lg);padding:90px 60px;text-align:center;position:relative;z-index:2;backdrop-filter:blur(20px);overflow:hidden;}
.cta-inner::before{content:'';position:absolute;inset:-1px;border-radius:var(--r-lg);background:linear-gradient(135deg,rgba(5,242,131,0.1),transparent 50%,rgba(5,242,131,0.05));pointer-events:none;}
.cta-content{position:relative;z-index:2;}
.cta-inner h2{margin-bottom:14px;}
.cta-inner p{font-size:1.125rem;margin-bottom:40px;}
.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.cta-sub{margin-top:30px;font-size:0.85rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:12px;}
.cta-sub span:nth-child(2){opacity:0.3;}

/* ─────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────── */
@media(max-width:1024px){
    .feat-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:900px){
    .hero-grid{grid-template-columns:1fr;text-align:center;gap:50px;}
    .hero-sub{margin:0 auto;}
    .hero-actions{justify-content:center;}
    .dash-grid{grid-template-columns:1fr;}
    /* Workflow collapses to single-column on mobile */
    .vflow-row{grid-template-columns:50px 1fr;gap:16px;}
    .vflow-row[data-side="left"] .vflow-card{grid-column:2;grid-row:1;}
    .vflow-row[data-side="left"] .vflow-dot-col{grid-column:1;grid-row:1;}
    .vflow-row[data-side="left"] .vflow-spacer{display:none;}
    .vflow-row[data-side="right"] .vflow-card{grid-column:2;grid-row:1;}
    .vflow-row[data-side="right"] .vflow-dot-col{grid-column:1;grid-row:1;}
    .vflow-row[data-side="right"] .vflow-spacer{display:none;}
    .vflow-spine{left:25px;}
    .vflow-dot-ring{width:44px;height:44px;font-size:1.1rem;}
    .stats-grid{grid-template-columns:1fr 1fr;gap:30px;}
    .stat-divider{display:none;}
}
@media(max-width:600px){
    .section{padding:70px 0;}
    .hero{padding:120px 0 60px;}
    .feat-grid{grid-template-columns:1fr;}
    .login-flow{flex-direction:column;gap:10px;}
    .flow-connector{transform:rotate(90deg);}
    .cta-inner{padding:50px 24px;}
    .float-card{display:none;}
    .hero-bg-text{font-size:24vw;}
}
