/* emb3r — shared styles */

:root{
  --bg:#0a0908;
  --bg-soft:#121010;
  --line:#241f1c;
  --fg:#e8e0d8;
  --dim:#8a7d74;
  --ember:#ff6b1a;
  --ember-hot:#ffb347;
  /* the darkest of the three tones in the brand mark's flame (emb3r-app-icon.svg's
     #DC4622) - the existing two ember variables were both too warm/bright to
     stand in for it without flattening the mark's heat gradient */
  --ember-deep:#dc4622;
  --ash:#5c534d;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--mono);
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  min-height:100vh;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:100;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px);
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:99;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,107,26,.10),transparent 60%);
}
main{flex:1 0 auto}
.wrap{max-width:880px;margin:0 auto;padding:0 24px}
a{color:var(--ember)}

/* ---------- nav ---------- */
nav{
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
  background:rgba(10,9,8,.88);backdrop-filter:blur(8px);
}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:52px;gap:16px}
.brand{display:flex;align-items:center;gap:8px;color:var(--ember);font-weight:700;letter-spacing:.08em;text-decoration:none;font-size:16px}
/* The coil is square. The old side-on drawing was 35x18, and leaving those
   dimensions in place would have squashed the ring into an ellipse. */
.brandMark{display:block;width:22px;height:22px;image-rendering:pixelated}
.navlinks{display:flex;align-items:center;gap:20px}
.navlinks a{color:var(--dim);text-decoration:none;font-size:13px;padding:2px 0;border-bottom:1px solid transparent}
.navlinks a:hover{color:var(--ember-hot)}
.navlinks a.on{color:var(--ember);border-bottom-color:var(--ember)}
/* the one nav link that isn't a plain text link - reuses .btn's exact gradient
   and text colour rather than inventing a second "solid button" look, just at
   a size that fits a 52px bar */
.navlinks a.cta{
  color:#150a02;background:linear-gradient(180deg,#ff7a2b,#e8560c);
  font-weight:700;padding:6px 14px;border-radius:4px;border-bottom:none;
  box-shadow:0 0 0 1px rgba(255,179,71,.35);
  transition:filter .2s ease,box-shadow .2s ease;
}
.navlinks a.cta:hover{color:#150a02;filter:brightness(1.08);box-shadow:0 0 0 1px rgba(255,179,71,.6)}
@media(max-width:560px){
  .navlinks{gap:13px}
  .navlinks a{font-size:12px}
  .brand{font-size:14px}
}

/* ---------- page header ---------- */
.phead{padding:52px 0 8px;text-align:center}
pre.logo{
  color:var(--ember);
  font-size:clamp(5px,1.5vw,12px);
  line-height:1.12;
  display:inline-block;
  text-align:left;
  text-shadow:0 0 18px rgba(255,107,26,.45);
  animation:flicker 5s infinite;
}
@keyframes flicker{
  0%,100%{opacity:1} 42%{opacity:1} 43%{opacity:.86}
  45%{opacity:1} 72%{opacity:.92} 74%{opacity:1}
}
h1{
  font-size:clamp(20px,3.4vw,30px);font-weight:600;letter-spacing:.02em;
}
h1 .accent{color:var(--ember-hot)}
.kicker{
  font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ember);margin-bottom:10px;
}
.kicker::before{content:"// "}
.tagline{margin-top:22px;font-size:clamp(16px,2.3vw,21px)}
.tagline b{color:var(--ember-hot);font-weight:600}
.sub{margin-top:12px;color:var(--dim);font-size:14px;max-width:62ch;margin-left:auto;margin-right:auto}

/* ---------- ascii faces ---------- */
.face{
  color:var(--ember);
  font-size:clamp(9px,1.5vw,14px);
  line-height:1.15;
  white-space:pre;
  text-align:center;
  text-shadow:0 0 14px rgba(255,107,26,.35);
  margin:0 auto;
  user-select:none;
}
.face.sm{font-size:clamp(8px,1.2vw,11px);opacity:.9;text-shadow:none}
.face-wrap{text-align:center;margin:26px 0}
.face-cap{
  margin-top:12px;color:var(--dim);font-size:13px;min-height:1.6em;
}
.face-cap .cursor{
  display:inline-block;width:7px;height:13px;background:var(--ember);
  vertical-align:-2px;animation:blink 1.05s steps(1) infinite;
}
@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}

#flame{color:var(--ember);opacity:.45;font-size:11px;line-height:1.05;white-space:pre;text-align:center;margin-top:8px}

@media(prefers-reduced-motion:reduce){
  pre.logo{animation:none}
  #flame{display:none}
}

/* ---------- sections ---------- */
section{padding:64px 0 0}
h2{
  font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ember);font-weight:600;margin-bottom:6px;
}
h2::before{content:"// "}
.lead{color:var(--dim);font-size:14px;margin-bottom:28px;max-width:62ch}

.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.f{background:var(--bg);padding:22px 20px}
.f .glyph{color:var(--ember);font-size:11px;line-height:1.15;margin-bottom:12px;white-space:pre;opacity:.85;min-height:3.5em}
.f h3{font-size:14.5px;font-weight:600;margin-bottom:7px}
.f p{font-size:13px;color:var(--dim)}

.specs{border:1px solid var(--line);border-radius:4px;overflow:hidden}
.specs div{display:flex;justify-content:space-between;gap:16px;padding:11px 16px;font-size:13px;border-bottom:1px solid var(--line)}
.specs div:last-child{border-bottom:none}
.specs dt{color:var(--dim)}
.specs dd{color:var(--fg);text-align:right}

/* ---------- terminal ---------- */
.term{
  margin:40px 0 0;border:1px solid var(--line);border-radius:6px;
  background:var(--bg-soft);overflow:hidden;text-align:left;
}
.term-bar{display:flex;align-items:center;gap:7px;padding:9px 13px;border-bottom:1px solid var(--line);background:#0e0c0b}
.dot{width:10px;height:10px;border-radius:50%;background:var(--line)}
.dot.r{background:#4a2a20}
.term-bar span{margin-left:8px;color:var(--ash);font-size:11.5px}
.term-body{padding:16px 18px;font-size:13.5px;min-height:210px;white-space:pre-wrap;word-break:break-word}
.term-body .p{color:var(--ember)}
.term-body .u{color:var(--fg)}
.term-body .o{color:var(--dim)}
.term-body .cursor{display:inline-block;width:8px;height:15px;background:var(--ember);vertical-align:-2px;animation:blink 1.05s steps(1) infinite}

/* ---------- buttons ---------- */
.btn{
  display:block;width:100%;
  background:linear-gradient(180deg,#ff7a2b,#e8560c);
  color:#150a02;font-family:var(--mono);font-size:16px;font-weight:700;
  letter-spacing:.03em;border:none;border-radius:4px;padding:17px 20px;
  cursor:pointer;text-decoration:none;text-align:center;
  box-shadow:0 0 0 1px rgba(255,179,71,.35),0 8px 34px -8px rgba(255,107,26,.65);
  transition:transform .12s ease,box-shadow .2s ease,filter .2s ease;
}
.btn:hover{filter:brightness(1.08);box-shadow:0 0 0 1px rgba(255,179,71,.6),0 10px 44px -6px rgba(255,107,26,.85)}
.btn:active{transform:translateY(1px)}
.btn .sm{display:block;font-size:11.5px;font-weight:400;opacity:.72;letter-spacing:.06em;margin-top:3px}
.btn.pending{background:none;color:var(--dim);box-shadow:inset 0 0 0 1px var(--line);cursor:default}
.btn.pending:hover{filter:none;box-shadow:inset 0 0 0 1px var(--line)}
.btn.ghost{
  background:none;color:var(--ember);box-shadow:inset 0 0 0 1px var(--ember);
  font-size:14px;padding:13px 20px;
}
.btn.ghost:hover{background:rgba(255,107,26,.08);box-shadow:inset 0 0 0 1px var(--ember-hot);color:var(--ember-hot)}
.cta{max-width:420px;margin:32px auto 0}

/* ---------- download page ---------- */
.dl{margin:34px auto 0;max-width:560px}
.chip{display:none;margin-top:14px;text-align:center}
.chip.on{display:block}
.chip p{font-size:12.5px;color:var(--dim);margin-bottom:10px}
.chip .row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.chip button{
  font-family:var(--mono);font-size:13px;
  background:var(--bg-soft);color:var(--fg);
  border:1px solid var(--line);border-radius:3px;
  padding:10px 18px;cursor:pointer;
  transition:border-color .15s ease,color .15s ease;
}
.chip button:hover{border-color:var(--ember);color:var(--ember-hot)}
.chip button[aria-pressed="true"]{border-color:var(--ember);color:var(--ember-hot);background:rgba(255,107,26,.07)}
.chip button i{display:block;font-style:normal;font-size:11px;color:var(--ash);margin-top:2px}
.chip .hint{margin-top:10px;font-size:11.5px;color:var(--ash)}
.meta{margin-top:12px;font-size:12.5px;color:var(--ash);display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.meta .sep{color:var(--line)}
.alt{margin-top:20px;text-align:center;font-size:12.5px}
.alt summary{color:var(--dim);cursor:pointer;list-style:none;display:inline-block}
.alt summary::-webkit-details-marker{display:none}
.alt summary:hover{color:var(--ember-hot)}
.alt summary::before{content:"[+] ";color:var(--ember)}
.alt[open] summary::before{content:"[-] "}
.grid{margin-top:16px;text-align:left;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.grid a{
  display:flex;justify-content:space-between;gap:10px;
  border:1px solid var(--line);border-radius:3px;padding:9px 12px;
  color:var(--dim);text-decoration:none;background:var(--bg-soft);
}
.grid a:hover{border-color:var(--ember);color:var(--fg)}
.grid a i{font-style:normal;color:var(--ash);font-size:11px}

/* ---------- steps (download page) ---------- */
.steps{counter-reset:s;margin-top:8px}
.steps li{list-style:none;position:relative;padding:0 0 20px 34px;border-left:1px solid var(--line);margin-left:8px}
.steps li:last-child{border-left-color:transparent;padding-bottom:0}
.steps li::before{
  counter-increment:s;content:counter(s);
  position:absolute;left:-11px;top:0;
  width:22px;height:22px;border-radius:50%;
  background:var(--bg);border:1px solid var(--ember);color:var(--ember);
  font-size:11px;display:flex;align-items:center;justify-content:center;
}
.steps h3{font-size:14px;font-weight:600;margin-bottom:4px}
.steps p{font-size:13px;color:var(--dim)}
.steps code{background:var(--bg-soft);border:1px solid var(--line);border-radius:3px;padding:1px 6px;color:var(--ember-hot);font-size:12.5px}

/* ---------- faq (about page) ---------- */
.faq{border:1px solid var(--line);border-radius:4px;overflow:hidden}
.faq details{border-bottom:1px solid var(--line)}
.faq details:last-child{border-bottom:none}
.faq summary{
  padding:14px 16px;cursor:pointer;font-size:14px;list-style:none;
  display:flex;justify-content:space-between;gap:12px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--ember);font-size:16px}
.faq details[open] summary::after{content:"−"}
.faq summary:hover{color:var(--ember-hot)}
.faq p{padding:0 16px 15px;font-size:13px;color:var(--dim);max-width:70ch}

/* ---------- footer ---------- */
footer{margin-top:80px;border-top:1px solid var(--line);padding:24px 0 40px;color:var(--ash);font-size:12px;flex-shrink:0}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer a{color:var(--dim);text-decoration:none}
footer a:hover{color:var(--ember)}
