/* =========================================================
   OpenDash — Global Design System
   ========================================================= */

:root{
  --primary:#034CFF;
  --primary-strong:#0341DB;
  --secondary:#2B6BE6;
  --accent:#009B8D;
  --error:#DC2D4A;
  --warning:#D4940A;
  --success:#008F7A;
  --text:#0D1020;
  --text-muted:#5A6080;
  --bg:#FAFBFE;
  --bg-panel:#F0F2F8;
  --bg-element:#E8EBF2;
  --border:#A8B0C8;
  --border-active:#8890AC;
  --border-subtle:#DDE1EC;
  --syntax-comment:#8890AC;
  --syntax-keyword:#034CFF;
  --syntax-function:#009B8D;
  --syntax-variable:#DC2D4A;
  --syntax-string:#008F7A;
  --syntax-number:#D4940A;
  --dark-bar:#12141f;
  --font-display:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;
  --font-pixel:'Press Start 2P', monospace;
  --shadow: 0 24px 60px -28px rgba(3,76,255,0.22);
  --shadow-sm: 0 1px 2px rgba(13,16,32,0.04);
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:22px;
  --transition: .2s ease;
}
html[data-theme="dark"]{
  --primary:#5B8DEF;
  --secondary:#5B8DEF;
  --accent:#00D4AA;
  --error:#FF4D6A;
  --warning:#FFB547;
  --success:#00C9A7;
  --text:#e8ecf4;
  --text-muted:#8890AC;
  --bg:#0a0c14;
  --bg-panel:#111320;
  --bg-element:#1a1d2e;
  --border:#4a527a;
  --border-active:#6b7394;
  --border-subtle:#22263c;
  --syntax-comment:#6b7394;
  --syntax-keyword:#5B8DEF;
  --syntax-function:#00D4AA;
  --syntax-variable:#FF4D6A;
  --syntax-string:#00C9A7;
  --syntax-number:#FFB547;
  --dark-bar:#000000;
  --shadow: 0 24px 60px -24px rgba(0,0,0,0.5);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  transition:background .3s ease, color .3s ease;
  overflow-x:hidden;
  position:relative;
  line-height:1.6;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cg fill='%235A6080' fill-opacity='0.16'%3E%3Cpath d='M20 6l4 4-4 4-4-4z'/%3E%3Cpath d='M96 22l3 3-3 3-3-3z'/%3E%3Cpath d='M60 60l4 4-4 4-4-4z'/%3E%3Cpath d='M118 84l3 3-3 3-3-3z'/%3E%3Cpath d='M12 100l3 3-3 3-3-3z'/%3E%3Cpath d='M70 118l4 4-4 4-4-4z'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat;
}
html[data-theme="dark"] body::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cg fill='%238890AC' fill-opacity='0.10'%3E%3Cpath d='M20 6l4 4-4 4-4-4z'/%3E%3Cpath d='M96 22l3 3-3 3-3-3z'/%3E%3Cpath d='M60 60l4 4-4 4-4-4z'/%3E%3Cpath d='M118 84l3 3-3 3-3-3z'/%3E%3Cpath d='M12 100l3 3-3 3-3-3z'/%3E%3Cpath d='M70 118l4 4-4 4-4-4z'/%3E%3C/g%3E%3C/svg%3E");
}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
input,textarea,select{font:inherit;color:inherit;}
img,svg{display:block;max-width:100%;}
.container{max-width:1180px;margin:0 auto;padding:0 28px;position:relative;z-index:1;}
.mono{font-family:var(--font-mono);}

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0;line-height:1.25;}
p{margin:0;}

/* ---------- Pixel Logo ---------- */
.pixel-logo{font-family:var(--font-pixel);letter-spacing:0;display:inline-flex;}
.pixel-logo .open{color:var(--primary);}
.pixel-logo .dash{color:var(--text-muted);}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border-subtle);
}
.nav-row{display:flex;align-items:center;justify-content:space-between;height:64px;}
.logo-small{font-size:13px;}
.logo-small a{display:inline-flex;}
nav.links{display:flex;align-items:center;gap:34px;font-size:14.5px;color:var(--text);}
nav.links a{
  display:flex;align-items:center;gap:4px;transition:color .15s ease;position:relative;padding:6px 0;
}
nav.links a:hover{color:var(--primary);}
nav.links .caret{font-size:10px;opacity:.6;transition:transform .2s;}
nav.links a.active{color:var(--primary);}
nav.links a.active::after{
  content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary);border-radius:2px;
}
.nav-right{display:flex;align-items:center;gap:10px;}
.icon-btn{
  width:34px;height:34px;border-radius:8px;
  border:1px solid var(--border-subtle);
  display:flex;align-items:center;justify-content:center;
  color:var(--text-muted);cursor:pointer;background:var(--bg-panel);
  transition:.15s ease;
}
.icon-btn:hover{border-color:var(--border-active);color:var(--text);}
.hamburger{display:none;}

/* ---------- Mobile nav ---------- */
.mobile-nav{
  position:fixed;top:64px;left:0;right:0;background:var(--bg);
  border-bottom:1px solid var(--border-subtle);padding:18px 28px 24px;
  display:none;flex-direction:column;gap:6px;z-index:99;
  transform:translateY(-110%);transition:transform .25s ease;
}
.mobile-nav.open{transform:translateY(0);}
.mobile-nav a{padding:12px 0;border-bottom:1px solid var(--border-subtle);font-size:15px;color:var(--text);}
.mobile-nav a:last-child{border-bottom:none;}
.mobile-nav .btn{display:flex;justify-content:center;margin-top:14px;}

/* ---------- Buttons ---------- */
.btn{
  font-family:var(--font-body);font-weight:600;font-size:14px;
  padding:11px 22px;border-radius:999px;
  display:inline-flex;align-items:center;gap:8px;justify-content:center;
  cursor:pointer;border:1px solid transparent;
  transition:transform .15s ease, border-color .15s ease, background .15s ease, opacity .15s ease;
  text-align:center;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-strong);}
.btn-outline{background:var(--bg);border:1px solid var(--border-subtle);color:var(--text);}
.btn-outline:hover{border-color:var(--border-active);}
.btn-dark{background:var(--text);color:var(--bg);}
.btn-dark:hover{opacity:.85;}
.btn-ghost{background:transparent;color:var(--text-muted);}
.btn-ghost:hover{color:var(--text);}
.btn-lg{padding:14px 26px;font-size:15px;}
.btn-sm{padding:7px 14px;font-size:13px;}

/* ---------- Hero ---------- */
.hero{padding:100px 0 88px;text-align:center;}
.hero.compact{padding:80px 0 60px;}
.hero .pixel-logo{font-size:34px;line-height:1.5;margin-bottom:20px;justify-content:center;width:100%;}
.hero h1{font-family:var(--font-display);font-size:46px;font-weight:700;letter-spacing:-.02em;margin:0 auto 18px;max-width:760px;}
.hero p.sub{
  max-width:600px;margin:0 auto 34px;
  font-size:16px;line-height:1.7;color:var(--text-muted);
}
.install-bar{
  max-width:560px;margin:0 auto 26px;
  background:var(--bg);
  border:1px solid var(--border-subtle);
  border-radius:12px;
  display:flex;align-items:center;
  padding:14px 12px 14px 20px;
  font-family:var(--font-mono);font-size:13.5px;
  color:var(--text);gap:10px;text-align:left;
  box-shadow:0 1px 2px rgba(13,16,32,0.04);
}
.install-bar .prompt{color:var(--primary);flex:none;}
.install-bar .cmd{flex:1;overflow-x:auto;white-space:nowrap;color:var(--text-muted);}
.install-bar .cmd b{color:var(--text);font-weight:500;}
.copy-btn{
  flex:none;width:32px;height:32px;border-radius:8px;
  border:1px solid transparent;background:transparent;color:var(--text-muted);
  display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;
}
.copy-btn:hover{background:var(--bg-panel);color:var(--text);}
.copy-btn .toast{
  position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:var(--text);color:var(--bg);font-size:11px;font-weight:600;
  padding:4px 9px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;
}
.copy-btn.copied .toast{opacity:1;}
.hero-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* ---------- Page Hero (sub-pages) ---------- */
.page-hero{padding:90px 0 50px;text-align:center;}
.page-hero .pixel-logo{font-size:22px;justify-content:center;width:100%;margin-bottom:18px;}
.page-hero h1{font-family:var(--font-display);font-size:40px;font-weight:700;letter-spacing:-.02em;margin:0 auto 14px;max-width:700px;}
.page-hero p{max-width:580px;margin:0 auto;font-size:16px;color:var(--text-muted);line-height:1.7;}

/* ---------- Section heads ---------- */
.section-head{text-align:center;margin:8px 0 44px;}
.section-head h2{font-family:var(--font-display);font-size:30px;letter-spacing:-.01em;font-weight:700;margin:0 0 8px;}
.section-head p{color:var(--text-muted);font-size:15px;max-width:560px;margin:0 auto;}
.section-head.left{text-align:left;}
.section-head.left h2{margin-bottom:6px;}

/* ---------- Generic section ---------- */
section{padding:20px 0 70px;position:relative;z-index:1;}
section.tight{padding:36px 0 50px;}

/* ---------- Panels (ink-wash style) ---------- */
.panel{
  position:relative;overflow:hidden;
  border-radius:22px;
  margin-bottom:28px;
  padding:56px 60px;
}
.panel-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
  position:relative;z-index:2;
}
.panel.reverse .panel-inner{direction:rtl;}
.panel.reverse .panel-inner > *{direction:ltr;}
.panel-blob{
  position:absolute;border-radius:50%;filter:blur(60px);z-index:0;
}
.panel-text .tag{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--primary);font-weight:700;margin-bottom:14px;display:block;
}
.panel-text h3{font-family:var(--font-display);font-size:25px;margin:0 0 12px;font-weight:600;}
.panel-text p.desc{color:var(--text-muted);font-size:15px;line-height:1.7;margin:0;max-width:400px;}
.panel-text ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;max-width:420px;}
.panel-text li{color:var(--text-muted);font-size:14.5px;line-height:1.6;display:flex;gap:10px;}
.panel-text li::before{content:"";flex:none;width:5px;height:5px;margin-top:8px;border-radius:1px;background:var(--primary);}

/* ---------- Win / Code windows ---------- */
.win{position:relative;z-index:1;border-radius:14px;overflow:hidden;background:var(--bg);border:1px solid var(--border-subtle);box-shadow:var(--shadow);}
.win-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);}
.win-dot{width:9px;height:9px;border-radius:50%;}
.win-title{margin-left:6px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);}
.win-body{padding:18px;font-family:var(--font-mono);font-size:12.5px;line-height:1.85;}

/* splash */
.splash{padding:30px 22px 0;text-align:center;background:var(--bg);position:relative;}
.splash .pixel-logo{font-size:20px;justify-content:center;width:100%;margin-bottom:18px;}
.splash .msg-box{
  background:var(--bg-element);border:1px solid var(--border-subtle);border-radius:8px;
  padding:12px 14px;text-align:left;font-family:var(--font-mono);font-size:11.5px;color:var(--text-muted);
  margin-bottom:8px;
}
.splash .msg-box .cur{color:var(--text);}
.splash .mode-line{text-align:left;font-family:var(--font-mono);font-size:11px;color:var(--primary);font-weight:600;margin-bottom:14px;}
.splash .mode-line span{color:var(--text-muted);font-weight:400;}
.splash .keys{
  display:flex;flex-wrap:wrap;gap:14px;font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);
  border-top:1px solid var(--border-subtle);padding:10px 0;margin-bottom:10px;text-align:left;
}
.splash .keys b{color:var(--text);font-weight:600;}
.splash .tip{text-align:left;font-family:var(--font-mono);font-size:10.5px;color:var(--primary);margin-bottom:18px;}
.splash .tip::before{content:"● ";}
.splash .statusbar{
  background:var(--dark-bar);color:#9aa3c7;font-family:var(--font-mono);font-size:10px;
  display:flex;justify-content:space-between;padding:8px 14px;margin:0 -22px;
}

/* find data */
.src-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:8px;background:var(--bg-panel);margin-bottom:8px;}
.src-row .name{display:flex;align-items:center;gap:9px;color:var(--text);font-size:12px;}
.src-dot{width:8px;height:8px;border-radius:50%;flex:none;}
.src-row .meta{color:var(--text-muted);font-size:10.5px;}
.search-pill{margin-top:10px;padding:9px 12px;border-radius:8px;border:1px dashed var(--border);color:var(--text-muted);font-size:11.5px;}

/* analyze */
.code-block{background:var(--bg-panel);border-radius:8px;padding:12px 14px;margin-bottom:10px;font-family:var(--font-mono);}
.checklist-row{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-muted);padding:3px 0;}
.checklist-row .ck{color:var(--success);flex:none;}
.tag-kw{color:var(--syntax-keyword);}
.tag-str{color:var(--syntax-string);}
.tag-num{color:var(--syntax-number);}
.tag-fn{color:var(--syntax-function);}
.tag-cm{color:var(--syntax-comment);}

/* communicate */
.bars{display:flex;align-items:flex-end;gap:8px;height:76px;margin:4px 0 14px;}
.bars i{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--accent),var(--primary));display:block;}
.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.chip{font-size:10.5px;padding:5px 10px;border-radius:20px;border:1px solid var(--border-subtle);color:var(--text-muted);}
.bubble{background:var(--bg-panel);border-radius:10px;padding:10px 12px;font-size:11px;color:var(--text-muted);}

/* diff */
.diff-line{font-size:12px;padding:2px 8px;border-radius:4px;margin-bottom:2px;}
.diff-remove{background:color-mix(in srgb, var(--error) 12%, transparent);color:var(--error);text-decoration:line-through;}
.diff-add{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);}
.diff-note{margin-top:10px;font-size:11.5px;color:var(--text-muted);}

/* ---------- Cards / grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.card{
  background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:16px;
  padding:24px 22px;transition:.2s ease;
}
.card:hover{border-color:var(--border-active);transform:translateY(-3px);}
.card .tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--accent);}
.card h3,.card h4{font-family:var(--font-display);font-size:17px;margin:9px 0 8px;font-weight:600;}
.card p{color:var(--text-muted);font-size:13.5px;line-height:1.6;margin:0;}
.card .icon{
  width:38px;height:38px;border-radius:10px;
  background:color-mix(in srgb, var(--primary) 12%, transparent);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--primary);
}
.card .icon.accent{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);}
.card .icon.success{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);}
.card .icon.warning{background:color-mix(in srgb, var(--warning) 14%, transparent);color:var(--warning);}

/* ---------- Workflow ---------- */
.workflow{max-width:740px;margin:0 auto;}
.wf-step{display:flex;gap:22px;position:relative;padding-bottom:36px;}
.wf-step:last-child{padding-bottom:0;}
.wf-num{
  flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border-active);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;
  font-size:13px;color:var(--primary);background:var(--bg);position:relative;z-index:1;
}
.wf-step:not(:last-child)::before{content:"";position:absolute;left:18.5px;top:38px;bottom:0;width:1px;background:var(--border-subtle);}
.wf-content h4{font-family:var(--font-display);font-size:17px;margin:5px 0 6px;font-weight:600;}
.wf-content p{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0;max-width:500px;}

/* ---------- CTA card ---------- */
.cta-card{
  max-width:620px;margin:0 auto;text-align:center;background:var(--bg-panel);
  border:1px solid var(--border-subtle);border-radius:20px;padding:44px 40px;box-shadow:var(--shadow);
}
.cta-card h2{font-family:var(--font-display);font-size:25px;margin:0 0 10px;font-weight:700;}
.cta-card p{color:var(--text-muted);font-size:14px;margin:0 0 22px;}
.prompt-bar{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:12px;padding:8px 8px 8px 18px;}
.prompt-bar input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--font-body);font-size:14px;}
.prompt-bar input::placeholder{color:var(--text-muted);}
.send-btn{flex:none;width:36px;height:36px;border-radius:9px;background:var(--text);border:none;display:flex;align-items:center;justify-content:center;color:var(--bg);cursor:pointer;}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--border-subtle);padding:48px 0 32px;position:relative;z-index:1;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:38px;margin-bottom:36px;}
.foot-brand p{color:var(--text-muted);font-size:13px;margin:14px 0 18px;max-width:260px;}
.foot-socials{display:flex;gap:8px;}
.foot-socials .icon-btn{width:30px;height:30px;}
.foot-col h5{font-family:var(--font-body);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--text-muted);margin:0 0 14px;}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.foot-col a{font-size:13.5px;color:var(--text);transition:color .15s;}
.foot-col a:hover{color:var(--primary);}
.foot-bottom{
  border-top:1px solid var(--border-subtle);padding-top:24px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;
}
.foot-bottom .copy{color:var(--text-muted);font-size:12px;}
.foot-bottom .legal{display:flex;gap:20px;flex-wrap:wrap;}
.foot-bottom .legal a{color:var(--text-muted);font-size:12px;transition:color .15s;}
.foot-bottom .legal a:hover{color:var(--text);}

/* =========================================================
   Page-specific (re-usable across pages)
   ========================================================= */

/* ---------- Generic content + tags ---------- */
.eyebrow{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--primary);font-weight:700;
}

/* ---------- Pricing ---------- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch;}
.price-card{
  background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:18px;
  padding:32px 28px;display:flex;flex-direction:column;
}
.price-card.featured{
  border:1.5px solid var(--primary);position:relative;
  background:color-mix(in srgb, var(--primary) 3%, var(--bg-panel));
}
.price-card.featured::before{
  content:"Most popular";position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--primary);color:#fff;font-size:11px;font-weight:600;
  padding:4px 12px;border-radius:999px;letter-spacing:.02em;
}
.price-name{font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-weight:700;}
.price-amount{display:flex;align-items:baseline;gap:6px;margin:14px 0 4px;}
.price-amount .n{font-family:var(--font-display);font-size:42px;font-weight:700;}
.price-amount .u{color:var(--text-muted);font-size:14px;}
.price-desc{color:var(--text-muted);font-size:14px;min-height:42px;}
.price-list{list-style:none;margin:22px 0 26px;padding:0;display:flex;flex-direction:column;gap:10px;flex:1;}
.price-list li{font-size:13.5px;color:var(--text);display:flex;gap:10px;align-items:flex-start;line-height:1.5;}
.price-list li svg{flex:none;margin-top:2px;color:var(--success);}
.price-list li.muted{color:var(--text-muted);}
.price-list li.muted svg{color:var(--text-muted);}
.price-card .btn{width:100%;}

/* comparison */
.compare-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:16px;background:var(--bg-panel);}
.compare{width:100%;border-collapse:collapse;font-size:13.5px;}
.compare th,.compare td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border-subtle);}
.compare th{background:var(--bg-element);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;}
.compare td:first-child{color:var(--text);font-weight:500;}
.compare td{color:var(--text-muted);}
.compare td.cent{text-align:center;}
.compare tr:last-child td{border-bottom:none;}
.compare td svg{color:var(--success);display:inline-block;vertical-align:middle;}
.compare td.x svg{color:var(--text-muted);opacity:.5;}

/* FAQ */
.faq{max-width:740px;margin:0 auto;}
.faq-item{
  border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-panel);
  margin-bottom:10px;overflow:hidden;
}
.faq-q{
  padding:18px 22px;font-weight:600;font-size:15px;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;color:var(--text);
}
.faq-q .chev{transition:transform .2s;color:var(--text-muted);}
.faq-item.open .faq-q .chev{transform:rotate(180deg);}
.faq-a{
  max-height:0;overflow:hidden;padding:0 22px;
  color:var(--text-muted);font-size:14px;line-height:1.7;
  transition:max-height .25s ease, padding .25s ease;
}
.faq-item.open .faq-a{max-height:500px;padding:0 22px 18px;}

/* ---------- Docs ---------- */
.docs-layout{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:start;padding-top:30px;}
.docs-side{position:sticky;top:90px;}
.docs-side h5{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:18px 0 8px;font-weight:700;}
.docs-side ul{list-style:none;margin:0;padding:0;}
.docs-side li a{display:block;padding:7px 12px;border-radius:8px;font-size:14px;color:var(--text-muted);transition:.15s;}
.docs-side li a:hover{background:var(--bg-panel);color:var(--text);}
.docs-side li a.active{background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary);font-weight:500;}

.doc-content h1{font-family:var(--font-display);font-size:30px;font-weight:700;margin:0 0 14px;letter-spacing:-.01em;}
.doc-content > p{color:var(--text-muted);font-size:15.5px;line-height:1.7;margin:0 0 24px;max-width:680px;}
.doc-content h2{font-family:var(--font-display);font-size:22px;font-weight:600;margin:40px 0 12px;}
.doc-content h3{font-family:var(--font-display);font-size:18px;font-weight:600;margin:28px 0 10px;}
.doc-content p,.doc-content li{color:var(--text);font-size:15px;line-height:1.7;}
.doc-content ul{padding-left:20px;margin:0 0 16px;}
.doc-content ul li{margin-bottom:6px;color:var(--text-muted);}
.doc-content code{
  font-family:var(--font-mono);font-size:13px;
  background:var(--bg-element);padding:2px 6px;border-radius:5px;color:var(--text);
}
.doc-content pre{
  background:var(--dark-bar);color:#d6dcec;font-family:var(--font-mono);font-size:13px;line-height:1.7;
  padding:18px 20px;border-radius:12px;overflow-x:auto;margin:14px 0 22px;
}
.doc-content pre .cm{color:#8890AC;}
.doc-content pre .kw{color:#5B8DEF;}
.doc-content pre .fn{color:#00D4AA;}
.doc-content pre .st{color:#00C9A7;}
.doc-content pre .nu{color:#FFB547;}
.doc-content .callout{
  background:color-mix(in srgb, var(--primary) 6%, var(--bg-panel));
  border-left:3px solid var(--primary);
  padding:14px 18px;border-radius:8px;margin:18px 0;color:var(--text);font-size:14px;
}
.doc-content table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px;}
.doc-content th,.doc-content td{padding:10px 12px;border:1px solid var(--border-subtle);text-align:left;}
.doc-content th{background:var(--bg-panel);font-weight:600;}
.docs-pager{display:flex;justify-content:space-between;gap:20px;margin-top:50px;padding-top:30px;border-top:1px solid var(--border-subtle);}
.docs-pager a{display:block;padding:14px 18px;border:1px solid var(--border-subtle);border-radius:12px;flex:1;background:var(--bg-panel);}
.docs-pager a:hover{border-color:var(--border-active);}
.docs-pager .dir{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.docs-pager .ttl{font-weight:600;color:var(--text);font-size:14px;}
.docs-pager .next{text-align:right;}

/* ---------- Blog ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.blog-card{
  background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:16px;
  overflow:hidden;transition:.2s ease;display:flex;flex-direction:column;
}
.blog-card:hover{border-color:var(--border-active);transform:translateY(-3px);}
.blog-cover{
  aspect-ratio:16/9;background:linear-gradient(135deg,color-mix(in srgb, var(--primary) 20%, var(--bg-element)),color-mix(in srgb, var(--accent) 20%, var(--bg-element)));
  position:relative;overflow:hidden;
}
.blog-cover.alt-1{background:linear-gradient(135deg,#EAF0FF,#CFE0FF);}
.blog-cover.alt-2{background:linear-gradient(135deg,#E3F7F2,#BEEBE0);}
.blog-cover.alt-3{background:linear-gradient(135deg,#F5EAF8,#E2C7EF);}
.blog-cover.alt-4{background:linear-gradient(135deg,#FFF0E5,#FFD3B0);}
.blog-cover.alt-5{background:linear-gradient(135deg,#EAF0FF,#B9CBFF);}
.blog-cover svg{position:absolute;inset:0;margin:auto;}
.blog-body{padding:22px;flex:1;display:flex;flex-direction:column;}
.blog-meta{display:flex;gap:10px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
.blog-meta .tag{color:var(--primary);}
.blog-card h3{font-family:var(--font-display);font-size:18px;font-weight:600;margin:0 0 8px;line-height:1.3;}
.blog-card p{color:var(--text-muted);font-size:13.5px;line-height:1.6;margin:0;flex:1;}
.blog-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:12px;color:var(--text-muted);}
.blog-author{display:flex;align-items:center;gap:8px;}
.avatar{width:24px;height:24px;border-radius:50%;background:color-mix(in srgb, var(--primary) 18%, var(--bg-element));display:inline-flex;align-items:center;justify-content:center;color:var(--primary);font-size:11px;font-weight:600;}

/* post */
.post{max-width:760px;margin:0 auto;}
.post-meta{display:flex;gap:14px;align-items:center;margin:14px 0 28px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;}
.post-meta .dot{width:4px;height:4px;background:var(--text-muted);border-radius:50%;}
.post h1{font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:-.02em;margin:0 0 14px;line-height:1.2;}
.post .lede{font-size:18px;color:var(--text-muted);line-height:1.7;margin:0 0 32px;}
.post h2{font-family:var(--font-display);font-size:24px;font-weight:600;margin:40px 0 14px;}
.post h3{font-family:var(--font-display);font-size:19px;font-weight:600;margin:32px 0 10px;}
.post p,.post li{font-size:16px;line-height:1.8;color:var(--text);margin:0 0 18px;}
.post ul,.post ol{margin:0 0 20px;padding-left:22px;}
.post ul li,.post ol li{margin-bottom:8px;color:var(--text-muted);}
.post code{font-family:var(--font-mono);font-size:14px;background:var(--bg-element);padding:2px 7px;border-radius:5px;}
.post pre{background:var(--dark-bar);color:#d6dcec;font-family:var(--font-mono);font-size:13.5px;line-height:1.7;padding:22px;border-radius:12px;overflow-x:auto;margin:18px 0 26px;}
.post .pull{
  border-left:3px solid var(--accent);padding:14px 22px;margin:22px 0;color:var(--text-muted);font-size:16px;font-style:italic;
}
.post .pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:34px;}
.pill{font-size:12px;padding:5px 12px;border-radius:999px;border:1px solid var(--border-subtle);color:var(--text-muted);background:var(--bg-panel);}

/* ---------- Changelog ---------- */
.timeline{max-width:780px;margin:0 auto;}
.tl-day{margin-bottom:36px;}
.tl-header{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;}
.tl-version{font-family:var(--font-mono);font-size:13px;color:var(--primary);font-weight:700;}
.tl-date{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);}
.tl-tag{
  display:inline-block;font-size:10px;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;
  margin:0 0 4px;display:inline-block;margin-right:8px;
}
.tl-tag.new{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success);}
.tl-tag.fix{background:color-mix(in srgb, var(--warning) 18%, transparent);color:var(--warning);}
.tl-tag.change{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--primary);}
.tl-list{list-style:none;padding:0;margin:0;}
.tl-list li{padding:6px 0;color:var(--text);font-size:14.5px;line-height:1.6;display:flex;gap:10px;}
.tl-list li::before{content:"–";color:var(--text-muted);}

/* ---------- About ---------- */
.mission{
  background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:20px;
  padding:50px 46px;text-align:center;margin:0 0 36px;
}
.mission h2{font-family:var(--font-display);font-size:28px;margin:0 0 12px;}
.mission p{color:var(--text-muted);max-width:600px;margin:0 auto;font-size:16px;line-height:1.7;}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.value-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:16px;padding:26px 22px;}
.value-card .v-num{font-family:var(--font-mono);font-size:12px;color:var(--accent);font-weight:700;}
.value-card h3{font-family:var(--font-display);font-size:18px;margin:8px 0 8px;font-weight:600;}
.value-card p{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0;}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.team-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:14px;padding:24px 20px;text-align:center;}
.team-avatar{width:64px;height:64px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:#fff;font-size:22px;}
.team-card h4{font-family:var(--font-display);font-size:15px;margin:0 0 2px;font-weight:600;}
.team-card .role{font-size:12px;color:var(--text-muted);font-family:var(--font-mono);}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.stat-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:14px;padding:22px;text-align:center;}
.stat-num{font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--primary);}
.stat-label{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;}

/* ---------- Careers ---------- */
.job-list{max-width:820px;margin:0 auto;}
.job-item{
  background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:14px;
  padding:24px 28px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  transition:.2s ease;
}
.job-item:hover{border-color:var(--border-active);transform:translateY(-2px);}
.job-info h3{font-family:var(--font-display);font-size:18px;margin:0 0 8px;font-weight:600;}
.job-meta{display:flex;flex-wrap:wrap;gap:14px;font-family:var(--font-mono);font-size:11.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;}
.job-meta .meta-pill{padding:4px 10px;background:var(--bg);border-radius:999px;border:1px solid var(--border-subtle);}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;}
.contact-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:18px;padding:36px 32px;}
.contact-card h3{font-family:var(--font-display);font-size:20px;margin:0 0 6px;font-weight:600;}
.contact-card p{color:var(--text-muted);font-size:14px;margin:0 0 16px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--text);}
.field input,.field textarea,.field select{
  width:100%;background:var(--bg);border:1px solid var(--border-subtle);border-radius:10px;
  padding:11px 14px;font-size:14px;font-family:var(--font-body);color:var(--text);outline:none;
  transition:border-color .15s;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--primary);}
.field textarea{min-height:120px;resize:vertical;}
.contact-info-item{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;}
.contact-info-item .ic{
  width:36px;height:36px;border-radius:9px;flex:none;
  background:color-mix(in srgb, var(--primary) 12%, transparent);
  display:flex;align-items:center;justify-content:center;color:var(--primary);
}
.contact-info-item h4{font-size:14px;margin:0 0 4px;font-weight:600;}
.contact-info-item p{font-size:13px;color:var(--text-muted);margin:0;}

/* ---------- Legal pages ---------- */
.legal{max-width:780px;margin:0 auto;}
.legal h1{font-family:var(--font-display);font-size:34px;font-weight:700;margin:0 0 8px;}
.legal .updated{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-bottom:34px;}
.legal h2{font-family:var(--font-display);font-size:21px;font-weight:600;margin:32px 0 10px;padding-top:18px;border-top:1px solid var(--border-subtle);}
.legal h3{font-family:var(--font-display);font-size:17px;font-weight:600;margin:24px 0 8px;}
.legal p,.legal li{font-size:15px;line-height:1.8;color:var(--text-muted);margin:0 0 14px;}
.legal ul,.legal ol{margin:0 0 14px;padding-left:22px;}
.legal ul li,.legal ol li{margin-bottom:8px;}

/* ---------- 404 ---------- */
.error-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 20px;}
.error-code{font-family:var(--font-pixel);font-size:90px;color:var(--primary);line-height:1;margin-bottom:18px;}
.error-page h1{font-family:var(--font-display);font-size:32px;margin:0 0 10px;font-weight:700;}
.error-page p{color:var(--text-muted);font-size:16px;margin:0 auto 26px;max-width:440px;}
.error-actions{display:flex;gap:12px;justify-content:center;}

/* ---------- Status / banner ---------- */
.banner{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-panel));
  border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);
  color:var(--accent);font-size:13px;padding:9px 18px;border-radius:999px;
  display:inline-flex;align-items:center;gap:8px;
}
.banner::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);}

/* ---------- Login form ---------- */
.auth-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:60px 20px;}
.auth-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:18px;padding:40px 36px;width:100%;max-width:420px;}
.auth-card h1{font-family:var(--font-display);font-size:24px;margin:0 0 6px;font-weight:700;text-align:center;}
.auth-card .lede{text-align:center;color:var(--text-muted);font-size:14px;margin:0 0 26px;}
.auth-divider{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-muted);margin:18px 0;text-transform:uppercase;letter-spacing:.06em;}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--border-subtle);}
.oauth-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}
.oauth-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px;border:1px solid var(--border-subtle);border-radius:9px;
  background:var(--bg);font-size:13.5px;font-weight:500;color:var(--text);transition:.15s;
}
.oauth-btn:hover{border-color:var(--border-active);}
.auth-foot{text-align:center;font-size:13px;color:var(--text-muted);margin-top:18px;}
.auth-foot a{color:var(--primary);font-weight:500;}

/* ---------- Misc helpers ---------- */
.text-muted{color:var(--text-muted);}
.text-center{text-align:center;}
.mt-2{margin-top:8px;}
.mt-4{margin-top:16px;}
.mt-6{margin-top:24px;}
.mt-8{margin-top:32px;}
.mb-0{margin-bottom:0;}
.gap-12{gap:12px;}
.divider-line{border-top:1px solid var(--border-subtle);margin:48px 0;}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .grid-3,.principles-grid,.roles-grid,.team-grid,.price-grid,.values-grid,.stat-row,.blog-grid{grid-template-columns:repeat(2,1fr);}
  .docs-layout{grid-template-columns:1fr;gap:24px;}
  .docs-side{position:static;}
  .foot-grid{grid-template-columns:repeat(3,1fr);}
  .contact-grid{grid-template-columns:1fr;}
}
@media (max-width:860px){
  nav.links{display:none;}
  .hamburger{display:flex;}
  .hero .pixel-logo{font-size:22px;}
  .hero h1{font-size:36px;}
  .page-hero h1{font-size:30px;}
  .panel{padding:36px 26px;}
  .panel-inner{grid-template-columns:1fr;gap:30px;}
  .panel.reverse .panel-inner{direction:ltr;}
  .win{order:-1;}
}
@media (max-width:520px){
  .grid-3,.principles-grid,.roles-grid,.team-grid,.price-grid,.values-grid,.stat-row,.blog-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .hero-buttons{flex-direction:column;align-items:stretch;}
  .docs-pager{flex-direction:column;}
  .hero{padding:60px 0 56px;}
  .install-bar{font-size:12px;padding:12px 8px 12px 16px;}
  .auth-card{padding:32px 22px;}
  .error-code{font-size:64px;}
}
