/* Shared helmet layer extracted from the per-page <style> blocks (2026-08-14).
   Loaded INSIDE <helmet> right before each page's residual <style> so the
   cascade position is unchanged (after the _ds sheets, before page styles). */

html, body { scroll-behavior: smooth; background: #FFFFFF; margin: 0; }

.ssq-base { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

.ssq-base h1, .ssq-base h2, .ssq-base h3 { text-wrap: balance; }

.ssq-base a { color: var(--fg); }

.ssq-base a:hover { color: var(--accent); }

.navlink.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--accent-fill); }

.nav-links > .navlink { height: 66px; display: inline-flex; align-items: center; }

.navdrop { position: relative; display: flex; align-items: center; height: 66px; }

.navdrop-btn { background: none; border: none; cursor: pointer; height: 66px; font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.02em; display: flex; align-items: center; gap: 6px; padding: 0; }

.navdrop-btn:focus-visible, .navlink:focus-visible { outline: 2px solid var(--accent-fill); outline-offset: -2px; }

.navdrop-btn svg { transition: transform var(--dur-base) var(--ease-out); }

.navdrop:hover .navdrop-btn svg, .navdrop:focus-within .navdrop-btn svg { transform: rotate(180deg); }

.navdrop-menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(-4px); background: var(--ink-950); border: 1px solid var(--border-strong); border-radius: var(--radius-md); padding: 6px 6px 8px; min-width: 285px; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility var(--dur-fast); box-shadow: var(--shadow-lg); z-index: 110; }

.navdrop:hover .navdrop-menu, .navdrop:focus-within .navdrop-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

.navdrop:hover .navdrop-btn, .navdrop:focus-within .navdrop-btn { color: var(--fg); }

.navdrop-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fg-faint); padding: 10px 14px 7px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }

.navdrop-item { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: var(--radius-sm); text-decoration: none; font-family: var(--font-mono); transition: background var(--dur-fast) var(--ease-out); }

.navdrop-item:hover { background: rgba(255,255,255,0.06); }

.langlink { background: none; border: none; cursor: pointer; font-family: var(--font-mono); font-size: 11.5px; padding: 5px 9px; border-radius: 4px; color: var(--fg-secondary); transition: color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out); }

.langlink:hover { color: var(--fg); background: rgba(255,255,255,0.08); }

.cta { transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }

.cta-solid:hover { background: var(--accent-fill-hover); color: var(--fg-on-accent); }

.cta-ghost:hover { border-color: var(--fg); color: var(--fg); }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); }

.reveal.is-visible { opacity: 1; transform: none; }

.stagger > *:nth-child(2){transition-delay:.06s} .stagger > *:nth-child(3){transition-delay:.12s}

.stagger > *:nth-child(4){transition-delay:.18s} .stagger > *:nth-child(5){transition-delay:.24s}

.m-nav { display: none; }

@media (max-width: 1080px) {
  html.m-nav-open { overflow: hidden; }
  .nav-links { display: none !important; }
  .m-nav { display: flex; align-items: center; }
  .m-nav summary { list-style: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; cursor: pointer; color: var(--fg-secondary); border-radius: var(--radius-sm); -webkit-tap-highlight-color: transparent; }
  .m-nav summary::-webkit-details-marker { display: none; }
  .m-nav summary:hover, .m-nav[open] summary { color: var(--fg); }
  .m-nav summary:focus-visible { outline: 2px solid var(--accent-fill); outline-offset: -2px; }
  .m-nav .mi-close { display: none; }
  .m-nav[open] .mi-open { display: none; }
  .m-nav[open] .mi-close { display: block; }
  .m-nav[open]::before { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 100vh; background: rgba(4,5,7,0.55); }
  .m-nav[open] + .nav-links { display: flex !important; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch !important; gap: 0 !important; background: var(--ink-950); border-bottom: 1px solid var(--border-strong); box-shadow: var(--shadow-lg); max-height: calc(100vh - 66px); max-height: calc(100dvh - 66px); overflow-y: auto; overscroll-behavior: contain; padding: 8px 16px 18px; }
  .m-nav[open] + .nav-links > .navlink { height: auto; padding: 13px 10px; border-radius: var(--radius-sm); }
  .m-nav[open] + .nav-links > .navlink.active { color: var(--accent); background: rgba(255,255,255,0.04); }
  .m-nav[open] + .nav-links .navlink.active::after { content: none; }
  .m-nav[open] + .nav-links .navdrop { display: block; height: auto; }
  .m-nav[open] + .nav-links .navdrop-btn { display: none; }
  .m-nav[open] + .nav-links .navdrop-menu { position: static; transform: none; opacity: 1; visibility: visible; min-width: 0; padding: 0; border: none; border-radius: 0; box-shadow: none; background: transparent; transition: none; }
  .m-nav[open] + .nav-links .navdrop-label { margin: 6px 0 4px; padding: 16px 10px 8px; border-top: 1px solid var(--border); border-bottom: none; }
  .m-nav[open] + .nav-links .navdrop-item { padding: 11px 10px; }
  .m-nav[open] + .nav-links > .navlink:active, .m-nav[open] + .nav-links .navdrop-item:active { background: rgba(255,255,255,0.08); }
  .m-nav[open] + .nav-links > div:last-child { margin: 14px 10px 2px; align-self: flex-start; }
}

/* ---------- Hero: typed prompt description + command links (2026-08-14) ----------
   The hero subcopy renders as a terminal prompt (mono, ❯ prefix, blinking caret)
   Heroes carry no CTA buttons or links — eyebrow, headline, prompt. */
.ssq-base header .hero-prompt {
  font-family: var(--font-mono);
  font-size: 14px;
  line-height: 1.95;
  letter-spacing: 0.01em;
}

.ssq-base header .hero-prompt::before {
  content: "\276F\00a0";
  color: var(--cyan-glow);
}

.ssq-base header .hero-prompt::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 13px;
  margin-left: 7px;
  vertical-align: text-bottom;
  background: var(--cyan-glow);
  animation: ssq-caret 1.15s step-end infinite;
}

@keyframes ssq-caret {
  50% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ssq-base header .hero-prompt::after { animation: none; }
}






/* ---------- Reading-size bump (2026-08-14): the DS scale reads small on
   today's screens; +1px on every body role via the token layer. ---------- */
.ssq-base {
  --text-body-lg: 1.1875rem; /* 18 -> 19px */
  --text-body:    1.0625rem; /* 16 -> 17px */
  --text-body-sm: 0.9375rem; /* 14 -> 15px */
  --text-caption: 0.875rem;  /* 13 -> 14px */
}
