*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root, [data-theme="light"] {
  --max-w:1080px;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-light:#3b82f6;
  --accent:#10b981;
  --bg:#ffffff;
  --bg-alt:#f8fafc;
  --bg-dark:#0f172a;
  --bg-card:#ffffff;
  --text:#1e293b;
  --text-light:#64748b;
  --text-inv:#f1f5f9;
  --border:#e2e8f0;
  --border-input:#e2e8f0;
  --code-bg:#e2e8f0;
  --header-bg:rgba(255,255,255,.95);
  --radius:8px;
  --shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);
  --shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -4px rgba(0,0,0,.04);
  --input-bg:#fff;
  --input-text:#1e293b;
  --success-bg:#e7faf0;
  --success-text:#085229;
  --success-border:#13ce66;
  --error-bg:#ffeded;
  --error-text:#661d1d;
  --error-border:#ff4949;
}

[data-theme="dark"] {
  --primary:#3b82f6;
  --primary-dark:#2563eb;
  --primary-light:#60a5fa;
  --accent:#34d399;
  --bg:#0f172a;
  --bg-alt:#1e293b;
  --bg-dark:#020617;
  --bg-card:#1e293b;
  --text:#e2e8f0;
  --text-light:#94a3b8;
  --text-inv:#f1f5f9;
  --border:#334155;
  --border-input:#475569;
  --code-bg:#334155;
  --header-bg:rgba(15,23,42,.95);
  --input-bg:rgba(255,255,255,.06);
  --input-text:#e2e8f0;
  --success-bg:#064e3b;
  --success-text:#a7f3d0;
  --success-border:#059669;
  --error-bg:#450a0a;
  --error-text:#fca5a5;
  --error-border:#dc2626;
}

body{font-family:system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}
a{color:var(--primary-light);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max-w);margin:0 auto;padding:0 1.25rem}
.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:600;font-size:.95rem;transition:all .15s ease;cursor:pointer;border:none}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark);text-decoration:none}
.btn-outline{border:2px solid var(--primary);color:var(--primary);background:transparent}
.btn-outline:hover{background:var(--primary);color:#fff;text-decoration:none}
.badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:99px;letter-spacing:.02em;vertical-align:top}
.badge-amber{background:#fef3c7;color:#92400e}
[data-theme="dark"] .badge-amber{background:#78350f;color:#fde68a}
.badge.soon{background:#f1f5f9;color:#64748b}
[data-theme="dark"] .badge.soon{background:#1e293b;color:#e2e8f0}

/* Header */
.site-header{border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--header-bg);backdrop-filter:blur(8px);z-index:100;transition:background .2s,border-color .2s}
.site-header nav{display:flex;align-items:center;gap:1.5rem;padding:.75rem 0;flex-wrap:wrap}
.site-header .logo{font-weight:700;font-size:1.1rem;color:var(--text);margin-right:auto}
.site-header .logo span{color:var(--primary)}
.site-header a{color:var(--text-light);font-size:.9rem}
.site-header a:hover{color:var(--primary);text-decoration:none}

/* Theme toggle */
.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .5rem;cursor:pointer;color:var(--text-light);font-size:1rem;line-height:1;display:flex;align-items:center;transition:border-color .15s,color .15s}
.theme-toggle:hover{border-color:var(--primary);color:var(--primary)}
.theme-toggle .icon-sun,.theme-toggle .icon-moon{width:18px;height:18px}
[data-theme="light"] .theme-toggle .icon-sun{display:none}
[data-theme="light"] .theme-toggle .icon-moon{display:block}
[data-theme="dark"] .theme-toggle .icon-sun{display:block}
[data-theme="dark"] .theme-toggle .icon-moon{display:none}

/* Hero */
.hero{padding:5rem 0 4rem;text-align:center}
.hero h1{font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.2;margin-bottom:1rem;letter-spacing:-.02em}
.hero h1 em{font-style:normal;color:var(--primary)}
.hero .subtitle{font-size:1.15rem;color:var(--text-light);max-width:620px;margin:0 auto 1.5rem}
.hero .hero-meta{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;font-size:.85rem;color:var(--text-light)}
.hero .hero-meta span::before{content:"✓ ";color:var(--accent);font-weight:700}

/* Native email form */
.email-form-row{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;align-items:flex-start;max-width:480px;margin:0 auto}
.email-form-row input[type="email"]{flex:1;min-width:220px;padding:.75rem 1rem;border:2px solid var(--border-input);border-radius:var(--radius);font-size:.95rem;font-family:system-ui,-apple-system,sans-serif;outline:none;transition:border-color .15s,background .2s;background:var(--input-bg);color:var(--input-text)}
.email-form-row input[type="email"]:focus{border-color:var(--primary)}
.email-form-row input[type="email"]::placeholder{color:#94a3b8}
.email-form-row button{flex:0 0 auto}
.form-consent{max-width:480px;margin:1rem auto 0;display:flex;align-items:flex-start;gap:.5rem;text-align:left}
.form-consent input[type="checkbox"]{margin-top:.25rem;margin-left: .25rem;flex-shrink:0}
.form-consent label{font-size:.8rem;color:var(--text-light);line-height:1.4}
.form-consent a{color:var(--primary);font-size:.8rem}
.form-note{max-width:480px;margin:.35rem auto 0;font-size:.72rem;color:#94a3b8;text-align:start;padding-left: 0.25rem;}
.form-note a{font-size:.72rem;color:#94a3b8}
.form-note a:hover{color:var(--primary)}
.form-message{max-width:480px;margin:.75rem auto 0;padding:1rem 1.25rem;border-radius:var(--radius);display:none;text-align:left}
.form-message.visible{display:block}
.form-message.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}
.form-message.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}
.form-message h4{font-size:.95rem;font-weight:600;margin-bottom:.25rem}
.form-message p{font-size:.85rem;line-height:1.5;margin:0}
@media(max-width:500px){.email-form-row{flex-direction:column;align-items:stretch}.email-form-row input[type="email"]{min-width:0}}

/* Final CTA form overrides */
.final-cta .email-form-row input[type="email"]{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff}
.final-cta .email-form-row input[type="email"]::placeholder{color:#94a3b8}
.final-cta .email-form-row input[type="email"]:focus{border-color:var(--primary)}
.final-cta .form-consent label,.final-cta .form-consent a{color:#64748b}
.final-cta .form-note,.final-cta .form-note a{color:#64748b;font-size:.72rem}
.final-cta .form-message.success{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.3);color:#a7f3d0}

/* Stack bar */
.stack-bar{background:var(--bg-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.25rem 0;text-align:center;transition:background .2s,border-color .2s}
.stack-bar .inner{display:flex;gap:1.75rem;justify-content:center;flex-wrap:wrap;font-size:.85rem;color:var(--text-light);font-weight:500}
.stack-bar code{background:var(--code-bg);padding:.15rem .4rem;border-radius:4px;font-size:.8rem;color:var(--text);transition:background .2s}

/* Sections */
section{padding:4rem 0}
section.alt{background:var(--bg-alt);transition:background .2s}
.section-title{font-size:1.6rem;text-align:center;margin-bottom:.5rem;letter-spacing:-.01em}
.section-subtitle{text-align:center;color:var(--text-light);margin-bottom:2.5rem;max-width:580px;margin-left:auto;margin-right:auto}

/* Problem */
.problem-grid{display:grid;gap:1.25rem}
@media(min-width:640px){.problem-grid{grid-template-columns:repeat(2,1fr)}}
.problem-card{padding:1.25rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);transition:background .2s,border-color .2s}
.problem-card .label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}
.problem-card .label.red{color:#dc2626}
.problem-card .label.green{color:#16a34a}
[data-theme="dark"] .problem-card .label.red{color:#f87171}
[data-theme="dark"] .problem-card .label.green{color:#4ade80}
.problem-card p{font-size:.9rem;color:var(--text-light);line-height:1.5}

/* Features */
.features-grid{display:grid;gap:1.5rem}
@media(min-width:640px){.features-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.features-grid{grid-template-columns:repeat(3,1fr)}}
.feature{padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);transition:background .2s,border-color .2s}
.feature .icon{font-size:1.5rem;margin-bottom:.5rem}
.feature h3{font-size:1rem;margin-bottom:.35rem}
.feature p{font-size:.875rem;color:var(--text-light);line-height:1.5}

/* How it works */
.steps{display:grid;gap:1.5rem;max-width:640px;margin:0 auto;counter-reset:step}
.step{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;align-items:start}
.step::before{counter-increment:step;content:counter(step);display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:.85rem}
.step h3{font-size:1rem;margin-bottom:.2rem}
.step p{font-size:.875rem;color:var(--text-light)}
.step code{background:var(--code-bg);padding:.1rem .35rem;border-radius:3px;font-size:.8rem;color:var(--text)}

/* Comparison */
.compare-section .compare-intro{max-width:700px;margin:0 auto 2rem;font-size:.9rem;color:var(--text-light);line-height:1.6;text-align:center}
.compare-cards{display:grid;gap:1.25rem;max-width:900px;margin:0 auto}
@media(min-width:640px){.compare-cards{grid-template-columns:repeat(3,1fr)}}
.compare-card{padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);transition:background .2s,border-color .2s}
.compare-card.highlight{border-color:var(--primary);box-shadow:var(--shadow-lg)}
.compare-card h3{font-size:1rem;margin-bottom:.15rem}
.compare-card .compare-type{font-size:.78rem;color:var(--text-light);margin-bottom:.75rem}
.compare-card .compare-best{font-size:.85rem;color:var(--text);margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);line-height:1.5}
.compare-card ul{list-style:none;margin:0;padding:0}
.compare-card li{font-size:.82rem;padding:.25rem 0;color:var(--text-light)}
.compare-card li::before{content:"• ";color:var(--text-light)}
.compare-card.highlight li::before{content:"✓ ";color:var(--accent);font-weight:700}

/* Pricing */
.pricing-grid{display:grid;gap:1rem;max-width:900px;margin:0 auto}
@media(min-width:550px){.pricing-grid{grid-template-columns:repeat(3,1fr)}}
.price-card{padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);display:flex;flex-direction:column;transition:background .2s,border-color .2s}
.price-card.featured{border-color:var(--primary);box-shadow:var(--shadow-lg);position:relative}
.price-card h3{font-size:.95rem;margin-bottom:.25rem}
.price-card .price{font-size:1.8rem;font-weight:700;margin-bottom:.15rem}
.price-card .price-note{font-size:.78rem;color:var(--text-light);margin-bottom:.75rem}
.price-card .tier-desc{font-size:.8rem;color:var(--text-light);margin-bottom:.75rem;line-height:1.4;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.price-card ul{list-style:none;margin-bottom:.5rem;flex:1}
.price-card li{font-size:.82rem;padding:.25rem 0;color:var(--text-light)}
.price-card li::before{content:"✓ ";color:var(--accent);font-weight:700}
.price-card .btn{width:100%;text-align:center}
.price-renewal{font-size:.78rem;color:var(--text-light);padding:.5rem 0;margin-bottom:.5rem;border-top:1px solid var(--border);text-align:center}
.price-card .tier-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:99px;letter-spacing:.02em;margin-bottom:.5rem}
.price-card .tier-badge.launch{background:#dcfce7;color:#166534}
.price-card .tier-badge.soon{background:#f1f5f9;color:#64748b}
[data-theme="dark"] .price-card .tier-badge.launch{background:#064e3b;color:#6ee7b7}
[data-theme="dark"] .price-card .tier-badge.soon{background:#334155;color:#94a3b8}
.price-card.coming-soon{opacity:.65}
.price-card.coming-soon .btn{background:var(--primary);color:#fff;border-color:var(--primary);cursor:pointer}
.price-card.coming-soon .btn:hover{background:var(--primary-dark);color:#fff}

/* FAQ */
details{border-bottom:1px solid var(--border);max-width:700px;margin:0 auto}
details summary{padding:1rem 0;cursor:pointer;font-weight:500;font-size:.95rem;list-style:none}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";float:right;font-size:1.1rem;color:var(--text-light);transition:transform .2s}
details[open] summary::after{content:"−"}
details p{padding:0 0 1rem;font-size:.9rem;color:var(--text-light);line-height:1.6}

/* CTA */
.final-cta{background:var(--bg-dark);color:var(--text-inv);padding:4rem 0;text-align:center;transition:background .2s}
.final-cta h2{font-size:1.6rem;margin-bottom:.5rem}
.final-cta p{color:#94a3b8;margin-bottom:1.5rem;font-size:.95rem}

/* Footer */
.site-footer{border-top:1px solid var(--border);padding:2rem 0;text-align:center;font-size:.8rem;color:var(--text-light);transition:border-color .2s}

/* Cookie Banner */
#cookie-banner{
    display:none;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    background:var(--bg-dark, #1a1a1a);
    color:var(--text-light, #ccc);
    padding:14px 20px;
    z-index:9999;
    font-size:13px;
    border-top:1px solid #333;
}
#cookie-banner > div{
    max-width:960px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
}
#cookie-banner p{
    margin:0;
    flex:1;
    min-width:240px;
}
#cookie-banner p a{
    color:#38bdf8;
    text-decoration:underline;
}
#cookie-banner .buttons{
    display:flex;
    gap:8px;
    flex-shrink:0;
}
#cookie-banner .buttons button{
    border:none;
    border-radius:5px;
    cursor:pointer;
    font-size:13px;
    padding:7px 18px;
}
#cookie-banner .buttons #accept-btn{
    background:#0284c7;
    color:#fff;
}
#cookie-banner .buttons #reject-btn{
    background:transparent;
    color:#999;
    border:1px solid #444;
}

.text-center{text-align:center}
.mt-1{margin-top:1rem}
.comparison-text{font-size:.8rem;color:var(--text-light)}
.pricing-note{font-size:.8rem;color:var(--text-light)}

/* Hero section specific styles */
.hero h1{margin-top:1.5rem}
.hero .button-group{margin:2rem auto 0;display:flex;gap:1rem;max-width:620px}
.btn-primary-cta{flex:1;}
.btn-demo{
    background:var(--code-bg);
    color:var(--text-light);
    border-color:var(--code-bg);
    flex:1;
    position:relative;
}
.btn-demo:hover{
    background:var(--code-bg);
    color:var(--text-light);
    border-color:var(--code-bg);
}
.hero .hero-meta{margin-top:2rem}
.hero p.subtitle{margin-top:2rem;}
.hero-detail{
  font-size:0.8rem;
  color:var(--text-light);
  max-width:640px;
  margin:1.5rem auto 0;
  line-height:1.6;
  display:block;
}

/* Gallery */
.gallery{padding:4rem 0}
.gallery-grid{
  column-count:1;
  column-gap:1rem;
}
@media(min-width:500px){.gallery-grid{column-count:2}}
@media(min-width:900px){.gallery-grid{column-count:3}}
.gallery-item{break-inside:avoid;margin-bottom:1rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--bg-card);transition:border-color .2s,transform .2s,box-shadow .2s}
.gallery-item:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.gallery-item img{width:100%;height:auto;display:block;object-fit:cover}

/* Gallery fullscreen overlay */
.gallery-overlay{position:fixed;inset:0;background:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;padding:2rem}
.gallery-overlay.open{opacity:1;visibility:visible}
.gallery-overlay img{max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain}
.gallery-close{position:absolute;top:1rem;right:1.5rem;background:none;border:none;color:#fff;font-size:2.5rem;line-height:1;cursor:pointer;opacity:.7;transition:opacity .15s;padding:.5rem}
.gallery-close:hover{opacity:1}
@media(max-width:600px){.gallery-close{top:.5rem;right:1rem;font-size:2rem}}

/* Product Hunt badges */
.hero-ph{
  margin-top:1.5rem;
  display:flex;
  justify-content:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.ph-badge{
  display:inline-block;
  line-height:0;
}
.ph-badge img{
  display:block;
  width:250px;
  height:54px;
  max-width:100%;
}
[data-theme="light"] .ph-badge-dark{
  display:none;
}
[data-theme="dark"] .ph-badge-light{
  display:none;
}
