/* Flo site styles - modern, minimal, feature-rich */
:root{
  --bg:#0f1724;
  --card:#0b1220;
  --muted:#94a3b8;
  --accent:#7c3aed;
  --accent-2:#06b6d4;
  --glass: rgba(255,255,255,0.04);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: radial-gradient(1000px 400px at 10% 10%, rgba(124,58,237,0.08), transparent),
              radial-gradient(800px 300px at 90% 80%, rgba(6,182,212,0.06), transparent),
              var(--bg);
  color:#e6eef8; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
.container{max-width:1100px;margin:0 auto;padding:28px}
.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:44px;height:44px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-weight:700;color:white}
.brand h1{font-size:1.05rem;margin:0}
.nav{display:flex;gap:14px;align-items:center}
.nav a{color:var(--muted);text-decoration:none;font-size:0.95rem}
.hero{display:grid;grid-template-columns:1fr 420px;gap:28px;align-items:center;padding:36px 0}
.hero .lead{font-size:2rem;line-height:1.02;margin:0}
.lead small{display:block;color:var(--muted);font-size:0.9rem;margin-top:10px}
.hero .cta{margin-top:18px;display:flex;gap:12px}
.btn{background:linear-gradient(90deg,var(--accent),#5b21b6);color:white;padding:10px 16px;border-radius:10px;border:0;cursor:pointer;font-weight:600}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--muted)}
.panel{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius:12px;padding:18px;box-shadow:0 6px 30px rgba(2,6,23,0.6);border:1px solid rgba(255,255,255,0.03)}
.small{font-size:0.92rem;color:var(--muted)}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}
.feature{padding:16px}
.feature h3{margin:0 0 6px 0}
.codecard{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:0.9rem;background:linear-gradient(180deg,rgba(0,0,0,0.2),rgba(255,255,255,0.01));padding:14px;border-radius:10px;overflow:auto}
.compare{display:grid;gap:12px;margin-top:24px}
.compare .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.compare pre{margin:0;padding:12px;border-radius:8px;background:rgba(0,0,0,0.16)}
.copy-btn{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:8px;border-radius:8px}
.playground{margin-top:20px;display:grid;gap:12px}
.playground .editor{height:220px;border-radius:10px;overflow:hidden}
.footer{border-top:1px solid rgba(255,255,255,0.03);margin-top:38px;padding-top:18px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.badge{font-size:0.78rem;padding:6px 8px;background:rgba(255,255,255,0.02);border-radius:8px}
/* responsiveness */
@media (max-width:960px){.hero{grid-template-columns:1fr;}.features{grid-template-columns:1fr 1fr}.compare .row{grid-template-columns:1fr}.hero .lead{font-size:1.6rem}.container{padding:18px}}
/* subtle animations */
.logo{transform:translateZ(0);transition:transform .28s ease}
.logo:hover{transform:translateY(-4px) scale(1.02)}
.btn:active{transform:translateY(1px)}
/* particle canvas */
#particles{position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;mix-blend-mode:screen}
main{position:relative;z-index:2}
/* accessibility helpers */
.vis-hidden{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* small utilities */
.kv{font-size:0.82rem;color:var(--muted)}
.highlight{background: linear-gradient(90deg, rgba(124,58,237,0.14), rgba(6,182,212,0.06));padding:4px 8px;border-radius:6px;color:var(--accent)}

/* playground output flash */
#play-output.flash{animation:flash .36s ease}
@keyframes flash{from{background-color:rgba(255,255,255,0.06);transform:translateY(-2px)}to{background-color:rgba(255,255,255,0.02);transform:none}}

/* focus and accessibility */
button:focus, .copy-btn:focus, a:focus{outline:2px solid rgba(124,58,237,0.28);outline-offset:3px}
pre:focus{outline:2px dashed rgba(255,255,255,0.04);outline-offset:4px}

