/* Site-level styles for splashscreen-nocturne-v1. Loads after nocturne.css. */

body.splash, body.hub {
  background: radial-gradient(1200px 700px at 20% -5%, #1b1e30, #0f111c 60%);
  min-height: 100vh;
}

a { color: var(--color-accent); text-decoration: none; }
a:hover { color: var(--color-accent-300); }
code, pre { font-family: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace; }

/* inline-SVG icons — sized like text, replaces the Phosphor icon font */
.ic {
  width: 1em; height: 1em; display: inline-block; vertical-align: -0.14em;
  flex: none; fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}

@keyframes blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
.term-cursor { display:inline-block; width:8px; height:1.05em; background: var(--color-accent); vertical-align:-2px; animation: blink 1.1s steps(1) infinite; }
.flow-arrow { color: var(--color-neutral-600); }

::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-thumb { background: var(--color-neutral-800); border-radius: 8px; }

/* thin site bar that ties the pages together as one website */
.site-bar {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; gap: 20px;
  padding: 11px 24px; font-size: 12.5px;
  background: color-mix(in srgb, #0f111c 82%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-neutral-900);
}
.site-bar .sb-brand { font-family: var(--font-heading); color: var(--color-text); letter-spacing: .01em; }
.site-bar .sb-brand b { color: var(--color-accent); font-weight: 500; }
.site-bar nav { display: flex; gap: 18px; margin-left: auto; }
.site-bar nav a { color: color-mix(in srgb, var(--color-text) 58%, transparent); }
.site-bar nav a:hover { color: var(--color-text); }
.site-bar nav a.active { color: var(--color-accent-300); }

/* landing column — each splash reads as a real page, not a floating card */
.page { width: min(960px, 100%); margin: 28px auto 80px; }

/* hub home */
.hub-wrap { width: min(1000px, 100%); margin: 0 auto; padding: 72px 32px 96px; }
.hub-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 44px; }
@media (max-width: 720px) { .hub-grid { grid-template-columns: 1fr; } }
.hub-card {
  display: flex; flex-direction: column; gap: 14px;
  padding: 26px 26px 22px; border-radius: var(--radius-lg);
  background: var(--color-surface); border: 1px solid var(--color-neutral-800);
  text-decoration: none; color: var(--color-text);
  transition: border-color .15s ease, transform .15s ease;
}
.hub-card:hover { border-color: color-mix(in srgb, var(--color-accent) 55%, transparent); transform: translateY(-2px); color: var(--color-text); }
.hub-card .hc-preview { height: 128px; border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--color-neutral-800); position: relative; }


/* ============ full-site layout (index, how-it-works, use-cases, security, access, splash) ============ */
.container { width: min(1080px, 100%); margin: 0 auto; padding: 0 32px; }

.site-header {
  position: sticky; top: 0; z-index: 40;
  background: color-mix(in srgb, #0f111c 82%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--color-neutral-900);
}
.site-header .nav { max-width: 1080px; margin: 0 auto; padding: 14px 32px; }
.site-header .nav-brand { font-size: 18px; }
.site-header .nav a { color: color-mix(in srgb, var(--color-text) 60%, transparent); font-family: var(--font-heading); font-size: 13.5px; }
.site-header .nav a:hover { color: var(--color-text); }
.site-header .nav a.nh-active { color: var(--color-accent-300); }
.site-header .nav .nh-links { display: flex; gap: 26px; align-items: center; margin-left: auto; }
@media (max-width: 760px) { .site-header .nav .nh-links { gap: 16px; } .site-header .nav .nh-links a.nh-plain { display: none; } }

.hero-wrap { position: relative; overflow: hidden; }
.hero-glow { position: absolute; border-radius: 50%; background: radial-gradient(circle, var(--color-accent), transparent 62%); opacity: 0.16; filter: blur(30px); pointer-events: none; }

.section { padding: 76px 0; }
.section-tight { padding: 54px 0; }
.kicker { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-accent-300); }

.stat-band { background: var(--color-section); background-image: radial-gradient(700px 240px at 20% 0%, var(--color-section-glow), transparent 70%); }
.stat-band .container { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; padding-top: 46px; padding-bottom: 46px; }
@media (max-width: 720px) { .stat-band .container { grid-template-columns: repeat(2,1fr); row-gap: 30px; } }
.stat-num { font-family: var(--font-heading); font-size: 44px; color: #f4f4f7; letter-spacing: -0.03em; line-height: 1; }
.stat-lbl { font-size: 12.5px; color: var(--color-accent-200); margin-top: 6px; }

.term { background:#0d0f18; border:1px solid var(--color-neutral-800); border-radius: var(--radius-md); box-shadow: var(--shadow-md); overflow:hidden; }
.term-head { display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--color-neutral-800); background:#12141f; }
.term pre { margin:0; padding:16px; font-size:13px; line-height:1.7; overflow:auto; color: var(--color-neutral-200); }

.numrow { display:grid; grid-template-columns:78px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid var(--color-neutral-900); }
.numrow:last-child { border-bottom:0; }
.numrow .n { font-family:var(--font-heading); font-size:40px; color:var(--color-neutral-700); line-height:1; }

.footer { border-top:1px solid var(--color-neutral-900); padding:34px 0 44px; margin-top: 20px; }
.footer .container { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.footer a { color: color-mix(in srgb, var(--color-text) 60%, transparent); font-size:12px; }
.footer a:hover { color: var(--color-text); }
