/* Emm's shared stylesheet. System fonts, no browser dependencies or scripts. */
:root {
  color-scheme: dark;
  --bg: #282828;
  --fg: #f4f1e9;
  --muted: #bcbab4;
  --line: #54534f;
  --accent: #62c8f1;
  --yellow: #feca10;
  --coral: #f85c46;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100svh;
  background: var(--bg);
  color: var(--fg);
  font: 16px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a { color: inherit; text-underline-offset: .22em; }
a:hover { color: var(--accent); }
a:focus-visible { outline: 2px solid var(--yellow); outline-offset: 6px; }
p { margin: 0 0 1rem; }
h1 { margin: 0; line-height: 1.07; font-weight: 550; letter-spacing: -.055em; text-wrap: balance; }

.site-head, .landing, .site-foot {
  width: min(1160px, calc(100% - 80px));
  margin-inline: auto;
}
.site-head { display: flex; align-items: center; justify-content: space-between; padding-block: 34px; }
.brand img { display: block; width: 150px; height: auto; }
.site-head nav { display: flex; gap: 32px; font-size: 14px; }
.site-head nav a { text-decoration: none; }
.landing { display: grid; grid-template-columns: 1.65fr 1fr; gap: 95px; padding-block: 66px 88px; }
.landing h1 { max-width: 690px; font-size: clamp(42px, 5.3vw, 72px); }
.eyebrow { margin-bottom: 25px; color: var(--accent); font-size: 14px; letter-spacing: .015em; }
.action { margin-top: 38px; }
.download {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  padding: 14px 22px;
  border-radius: 5px;
  background: var(--yellow);
  color: #242424;
  font-weight: 650;
  line-height: 1.5;
  text-decoration: none;
}
.download:hover { background: #ffda53; color: #181818; }
.fineprint { margin: 16px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.latest { margin-top: 12px; }
.story {
  align-self: end;
  padding-top: 24px;
  border-top: 3px solid transparent;
  border-image: linear-gradient(90deg, var(--coral) 0 33%, var(--yellow) 33% 66%, var(--accent) 66%) 1;
  color: var(--muted);
  line-height: 1.8;
  text-wrap: pretty;
}
.story p { margin: 0; }
.story a { color: var(--fg); }
.site-foot {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-block: 28px 38px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}
.site-foot a { text-decoration: none; }

/* Documents keep a quieter reading measure. Blog bodies are unchanged. */
body.doc { padding-bottom: 4rem; }
.doc main, .doc-head { width: min(760px, calc(100% - 80px)); margin-inline: auto; }
.doc-head { padding-top: 44px; }
.home { display: inline-flex; align-items: center; gap: 16px; text-decoration: none; color: var(--muted); }
.home img { display: block; width: 128px; height: auto; }
.home span { font-size: 14px; }
.doc h1 { margin-top: 50px; font-size: clamp(36px, 4.8vw, 58px); letter-spacing: -.04em; }
.doc .tagline { margin: 18px 0 46px; color: var(--muted); font-size: 17px; text-wrap: pretty; }
.card { margin-bottom: 40px; padding: 28px 0 0; border-top: 1px solid var(--line); }
.card h2 { margin: 0 0 16px; font-size: 25px; font-weight: 550; line-height: 1.25; letter-spacing: -.025em; }
.lede { margin: 0 0 24px; color: var(--muted); text-wrap: pretty; }
.lede strong { color: var(--fg); }
.card .lede:last-child { margin-bottom: 0; }
.card a, .back a, .doc main > .lede a { color: var(--accent); }
.post { line-height: 1.8; }
.post .lede { font-size: 13px; }
.post .lede a { color: var(--muted); text-decoration: none; }
.post .lede a:hover { text-decoration: underline; }
.post ul { margin: 0 0 1rem; padding-left: 1.2rem; }
code { padding: .1em .3em; border-radius: 3px; background: #383b3c; font-size: .9em; }
pre { overflow-x: auto; }
.roadmap { margin: 0; padding: 0; list-style: none; }
.roadmap > li { margin-bottom: 12px; padding-left: 16px; border-left: 2px solid var(--accent); }
.roadmap > li:last-child { margin-bottom: 0; }
.back { margin-top: 32px; }
body > main:not(.landing) { width: min(760px, calc(100% - 80px)); margin-inline: auto; }
body:not(.doc) > main:not(.landing) { padding-block: 80px; }
body:not(.doc) > main:not(.landing) h1 { margin-bottom: 24px; font-size: 42px; }

@media (max-width: 760px) {
  .site-head, .landing, .site-foot, .doc main, .doc-head, body > main:not(.landing) { width: calc(100% - 40px); }
  .site-head { padding-block: 26px; }
  .brand img { width: 132px; }
  .site-head nav { gap: 22px; font-size: 13px; }
  .landing { grid-template-columns: 1fr; gap: 42px; padding-block: 35px 50px; }
  .landing h1 { font-size: clamp(39px, 10.5vw, 65px); }
  .story { font-size: 15px; }
  .site-foot { gap: 20px; font-size: 11px; }
  .doc-head { padding-top: 28px; }
  .doc h1 { margin-top: 36px; }
  .doc .tagline { margin-bottom: 32px; font-size: 16px; }
  .card { padding-top: 24px; }
}
