/* Canessa Labs Systems: dark-first glass design, with light theme via [data-theme="light"] */
:root, :root[data-theme="dark"] {
  --bg: #18191c;
  --panel: rgba(255, 255, 255, .04);
  --panel-hover: rgba(255, 255, 255, .07);
  --border: rgba(255, 255, 255, .06);
  --border-strong: rgba(255, 255, 255, .14);
  --ink: #f5f5f7;
  --ink-2: #94a3b8;
  --ink-3: #7d8ba1;
  --hero-grad: linear-gradient(180deg, #ffffff 0%, #94a3b8 100%);
  --accent-grad: linear-gradient(90deg, #2dd4bf 0%, #818cf8 50%, #c084fc 100%);
  --logo-accent: #2dd4bf; /* Set-Square point, on dark (9.4:1) */
  --btn-bg: #ffffff; --btn-ink: #000000;
  --orb: .07; --dot: #2c2f36;
  --done: #34d399; --partial: #fbbf24; --open: rgba(148, 163, 184, .25);
  --shadow: 0 30px 60px -20px rgba(0, 0, 0, .6);
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg: #f5f5f7;
  --panel: rgba(255, 255, 255, .62);
  --panel-hover: rgba(255, 255, 255, .85);
  --border: rgba(0, 0, 0, .07);
  --border-strong: rgba(0, 0, 0, .14);
  --ink: #1d1d1f;
  --ink-2: #515154;
  --ink-3: #6e6e73;
  --hero-grad: linear-gradient(180deg, #1d1d1f 0%, #6e6e73 100%);
  --accent-grad: linear-gradient(90deg, #0d9488 0%, #6366f1 50%, #9333ea 100%);
  --logo-accent: #0d9488; /* Set-Square point, on light (3.4:1) */
  --btn-bg: #1d1d1f; --btn-ink: #ffffff;
  --orb: .16; --dot: #c7cdd6;
  --done: #15803d; --partial: #b45309; --open: rgba(0, 0, 0, .1);
  --shadow: 0 30px 60px -30px rgba(15, 23, 42, .25);
  color-scheme: light;
}
:root {
  --sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Helvetica Neue", sans-serif;
  --mono: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --max: 1200px;
  --r: 28px;
}
.tinted { --accent-ink: var(--accent); }
:root[data-theme="light"] .tinted { --accent-ink: color-mix(in srgb, var(--accent) 50%, #000); }

* { box-sizing: border-box; }
a, button { -webkit-tap-highlight-color: transparent; }
.card, .article, .next a { -webkit-backdrop-filter: none; backdrop-filter: none; }
html { scroll-behavior: smooth; }
html { overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 17px/1.6 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; transition: background .4s, color .4s; }
::selection { background: #0d9488; color: #fff; }
img { max-width: 100%; display: block; }
a { color: inherit; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .wrap { padding: 0 48px; } }

/* Ambient background */
.ambient { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: var(--orb); }
.orb.a { background: #0d9488; width: 600px; height: 600px; top: -10%; left: -10%; animation: pulse 8s ease-in-out infinite; }
.orb.b { background: #6b21a8; width: 500px; height: 500px; bottom: 15%; right: -8%; animation: pulse 8s ease-in-out 2s infinite; }
.orb.c { background: #0369a1; width: 700px; height: 700px; top: 40%; left: 30%; opacity: calc(var(--orb) * .5); }
.dots-bg { position: absolute; inset: 0; opacity: .45; background-image: radial-gradient(var(--dot) 1px, transparent 1.2px); background-size: 20px 20px; }
@keyframes pulse { 50% { opacity: calc(var(--orb) * .55); } }
@keyframes float { 50% { transform: translate(600px, 30px); } }
.float { transform: translate(600px, 40px); animation: float 6s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .orb, .float, .pulse-dot { animation: none !important; } html { scroll-behavior: auto; } }

/* Glass */
.glass { background: var(--panel); border: 1px solid var(--border); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-radius: var(--r); transition: background .3s, border-color .3s, transform .3s; }
.pad { padding: 32px; }

/* Header */
.site-head { position: fixed; inset: 0 0 auto 0; z-index: 50; border-bottom: 1px solid transparent; transition: background .3s, border-color .3s; }
.site-head.scrolled { background: color-mix(in srgb, var(--bg) 78%, transparent); backdrop-filter: blur(20px) saturate(1.4); -webkit-backdrop-filter: blur(20px) saturate(1.4); border-color: var(--border); }
.site-head .wrap { display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 16px; }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.logo svg { width: 24px; height: 24px; flex: none; }
.logo-pt { fill: var(--logo-accent); }
.head-right { display: flex; align-items: center; gap: 28px; }
.nav { display: flex; gap: 28px; font-size: 14px; font-weight: 500; }
.nav a { text-decoration: none; color: var(--ink-2); transition: color .2s; }
.nav a:hover { color: var(--ink); }
@media (max-width: 720px) { .logo .full { display: none; } .head-right { gap: 14px; } .nav { gap: 16px; font-size: 13px; } .nav a { white-space: nowrap; } .nav a:nth-child(2) { display: none; } }
@media (max-width: 560px) { .nav { display: none; } .logo { font-size: 11px; letter-spacing: .12em; } }
@media (pointer: coarse) { .theme-switch span, .theme-switch::before { height: 36px; width: 36px; } :root[data-theme="light"] .theme-switch::before { transform: translateX(38px); } }
@media (min-width: 721px) { .logo .short { display: none; } }

/* Theme switch */
.theme-switch { position: relative; display: inline-flex; align-items: center; gap: 2px; padding: 3px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); cursor: pointer; font: inherit; color: var(--ink-3); }
.theme-switch span { width: 30px; height: 26px; display: grid; place-items: center; border-radius: 99px; position: relative; z-index: 1; transition: color .3s; }
.theme-switch svg { width: 15px; height: 15px; }
.theme-switch::before { content: ""; position: absolute; top: 3px; left: 3px; width: 30px; height: 26px; border-radius: 99px; background: var(--ink); transition: transform .35s cubic-bezier(.4, 0, .2, 1); }
:root[data-theme="light"] .theme-switch::before { transform: translateX(32px); }
.theme-switch .moon, :root[data-theme="light"] .theme-switch .sun { color: var(--bg); }
:root[data-theme="light"] .theme-switch .moon { color: var(--ink-3); }
.theme-switch:focus-visible, .btn:focus-visible, .card:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 3px; }
.card:focus:not(:focus-visible) { outline: none; }

/* Type */
.eyebrow { display: inline-block; font: 600 12px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.eyebrow.tint { color: var(--accent-ink, #2dd4bf); }
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -.03em; line-height: 1.05; }
h2 { font-size: clamp(32px, 4.5vw, 52px); }
.h-md { font-size: 28px; margin-bottom: 20px; letter-spacing: -.02em; }
.h-sm { font-size: 20px; margin-bottom: 20px; letter-spacing: -.01em; }
.lede { font-size: clamp(18px, 2vw, 21px); line-height: 1.55; color: var(--ink-2); font-weight: 400; max-width: 640px; }
.muted { color: var(--ink-2); }
.fine { font-size: 13px; color: var(--ink-3); margin: 20px 0 0; }
.grad-hero { background: var(--hero-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.grad-accent { background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* Buttons & pills */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 30px; border-radius: 99px; font-weight: 500; font-size: 16px; text-decoration: none; transition: opacity .2s, background .2s; }
.btn.primary { background: var(--btn-bg); color: var(--btn-ink); }
.btn.primary:hover { opacity: .85; }
.btn.ghost { background: var(--panel); border: 1px solid var(--border-strong); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.btn.ghost:hover { background: var(--panel-hover); }
.pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); font: 500 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); white-space: nowrap; }
.pill.tint { color: var(--accent-ink); border-color: color-mix(in srgb, var(--accent) 35%, transparent); background: transparent; }
.pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: #2dd4bf; animation: blink 2s ease-in-out infinite; }
@keyframes blink { 50% { opacity: .35; } }

/* Hero */
.hero { min-height: 88vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 128px 0 64px; }
.hero h1 { font-size: clamp(40px, 7.4vw, 88px); letter-spacing: -.045em; line-height: 1.02; margin: 32px 0 28px; }
.hero h1 span { display: block; padding-bottom: .06em; }
.hero .lede { margin: 0 auto; }
.actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 44px; }
@media (max-width: 480px) { .actions .btn { width: 100%; } }

section { padding: 96px 0; }
section + section { border-top: 1px solid var(--border); }
.section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 56px; }
.section-head p { margin: 16px 0 0; color: var(--ink-2); max-width: 520px; }
.center-head { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.center-head h2 { margin: 16px 0 20px; }
.center-head .lede { margin: 0 auto; }

/* Bento */
.bento { display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .bento { grid-template-columns: repeat(2, 1fr); } .card.featured { grid-column: span 2; } }
@media (min-width: 1040px) { .bento { grid-template-columns: repeat(3, 1fr); } }
.card { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 22px; min-height: 340px; padding: 32px; text-decoration: none; }
.card:hover { background: var(--panel-hover); border-color: var(--border-strong); transform: translateY(-4px); }
.card { background-image: radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 58%); }
.card:hover { background-image: radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--accent) 26%, transparent) 0%, transparent 62%); }
.card-top { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.mark { width: 52px; height: 52px; flex: none; border-radius: 16px; display: grid; place-items: center; color: var(--accent-ink); background: color-mix(in srgb, var(--accent) 12%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); }
.mark svg { width: 30px; height: 30px; }
.mark .acc, .product-mark .acc { color: var(--ink); }
.emph { color: #16d3c7; }
:root[data-theme="light"] .emph { color: #0b8f87; }
.card h3 { font-size: 28px; letter-spacing: -.02em; }
.card .cat { color: var(--accent-ink); font-size: 14px; font-weight: 500; margin-top: 6px; }
.card p { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.6; flex: 1; }
.card.featured p { font-size: 19px; color: var(--ink); opacity: .85; max-width: 560px; }
.card-foot { display: flex; flex-wrap: wrap; gap: 18px; border-top: 1px solid var(--border); padding-top: 20px; align-items: stretch; }
.card-foot > div { display: flex; flex-direction: column; }
.card-foot .sep { width: 1px; background: var(--border); }
.card-foot small { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.card-foot span { font-size: 14px; color: var(--ink-2); }
.card-foot .go { margin-left: auto; align-self: end; font-size: 14px; color: var(--ink); white-space: nowrap; }

/* Status ladder */
.ladder { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.step { font: 500 11px/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; }
.step::before { content: ""; display: block; height: 3px; border-radius: 2px; margin-bottom: 7px; background: var(--open); }
.step.done::before { background: var(--done); }
.step.partial::before { background: linear-gradient(90deg, var(--partial) 55%, var(--open) 55%); }
.step.done, .step.partial { color: var(--ink-2); }
.legend { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; color: var(--ink-3); }
.legend span::before { content: ""; display: inline-block; width: 14px; height: 3px; border-radius: 2px; margin-right: 7px; vertical-align: middle; }
.legend .l-done::before { background: var(--done); }
.legend .l-partial::before { background: var(--partial); }
.legend .l-open::before { background: var(--open); }

/* Principles */
.pgrid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.pgrid .glass { padding: 32px; }
.pgrid .num { font: 600 12px var(--mono); letter-spacing: .14em; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.pgrid h3 { font-size: 22px; margin: 14px 0 10px; letter-spacing: -.02em; }
.pgrid p { margin: 0; color: var(--ink-2); font-size: 15px; }

/* Profile */
.profile { max-width: 980px; margin: 0 auto; padding: 40px; display: grid; gap: 40px; align-items: center; }
@media (min-width: 760px) { .profile { grid-template-columns: 220px 1fr; padding: 48px; } }
.avatar { width: 220px; height: 220px; max-width: 100%; border-radius: 50%; overflow: hidden; justify-self: center; background: var(--accent-grad); padding: 3px; }
.avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.profile h3 { font-size: 30px; letter-spacing: -.03em; }
.profile .role { color: var(--ink-3); margin-top: 6px; font-size: 15px; }
.profile .positioning { font-size: clamp(26px, 3.4vw, 36px); font-weight: 600; letter-spacing: -.03em; line-height: 1.15; margin: 22px 0 0; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.profile p { color: var(--ink-2); margin: 16px 0 0; }
.profile .actions { justify-content: flex-start; margin-top: 28px; }
.about-block { max-width: 980px; margin: 56px auto 0; }
.about-block > .eyebrow, .about-block > div > .eyebrow { margin-bottom: 18px; }
.offers { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.offer { padding: 28px; }
.offer .num { font: 600 12px var(--mono); letter-spacing: .14em; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.offer h3 { font-size: 20px; margin: 12px 0 8px; letter-spacing: -.02em; }
.offer p { margin: 0; color: var(--ink-2); font-size: 15px; }
.about-block .stat b { color: var(--ink); }
.split2 { display: grid; gap: 48px; }
@media (min-width: 860px) { .split2 { grid-template-columns: 1.1fr 1fr; } }
.skill-group + .skill-group { margin-top: 22px; }
.skill-group .eyebrow { font-size: 11px; color: var(--ink-2); display: block; margin-bottom: 10px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips .pill { text-transform: none; letter-spacing: 0; font: 500 13px var(--sans); }
.journey { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--border-strong); }
.journey > li { position: relative; display: grid; grid-template-columns: 92px 1fr; gap: 14px; padding: 0 0 26px 22px; }
.journey > li::before { content: ""; position: absolute; left: -5px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--accent-grad); }
.journey .when { font: 600 12px/1.9 var(--mono); color: var(--ink-3); }
.journey strong { font-weight: 600; font-size: 16px; }
.journey p { margin: 2px 0 0; color: var(--ink-2); font-size: 14px; }

/* CTA & footer */
.cta { text-align: center; }
.cta h2 { margin: 16px 0 20px; }
.cta .lede { margin: 0 auto 36px; }
.site-foot { border-top: 1px solid var(--border); padding: 40px 0; color: var(--ink-3); font-size: 14px; }
.site-foot .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.site-foot .brand { display: flex; align-items: center; gap: 10px; }

/* Product page */
.product-hero { padding: 140px 0 80px; }
.crumb { font-size: 14px; color: var(--ink-3); text-decoration: none; }
.crumb:hover { color: var(--ink); }
.product-hero .row { display: grid; gap: 48px; align-items: center; margin-top: 32px; }
@media (min-width: 900px) { .product-hero .row { grid-template-columns: 1.35fr 1fr; } }
.product-hero .cat { color: var(--accent-ink); font-weight: 500; margin-bottom: 14px; }
.product-hero h1 { font-size: clamp(56px, 10vw, 112px); letter-spacing: -.05em; line-height: 1; }
.product-hero .lede { margin: 24px 0 28px; }
.meta { display: flex; gap: 10px; flex-wrap: wrap; }
.status-panel { margin-top: 32px; padding: 22px 24px; max-width: 520px; }
.status-panel .ladder { margin-top: 14px; }
.product-mark { position: relative; aspect-ratio: 1; width: 100%; max-width: 380px; justify-self: center; display: grid; place-items: center; color: var(--accent-ink); overflow: visible; background: none; border: 0; }
.product-mark::before { content: ""; position: absolute; inset: 8%; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--accent) 30%, transparent) 0%, transparent 68%); }
.product-mark svg { position: relative; width: 52%; height: 52%; }
@media (max-width: 899px) { .product-hero .row { gap: 20px; } .product-mark { order: -1; max-width: 112px; justify-self: start; margin-left: -14px; } }
.split { display: grid; gap: 56px; }
@media (min-width: 900px) { .split { grid-template-columns: 1fr 1.15fr; gap: 72px; } }
.pitch { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.35; letter-spacing: -.02em; font-weight: 500; margin: 18px 0 0; }
.stack { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 28px; }
.features { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.feature { padding: 26px; border-radius: 22px; }
.feature h3 { font-size: 17px; letter-spacing: -.01em; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.feature h3::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px var(--accent); flex: none; }
.feature p { margin: 0; color: var(--ink-2); font-size: 15px; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); overflow: hidden; padding: 0; }
.stat { padding: 34px; border-left: 1px solid var(--border); }
.stat:first-child { border-left: 0; }
@media (max-width: 700px) { .stat { border-left: 0; border-top: 1px solid var(--border); } .stat:first-child { border-top: 0; } }
.stat b { display: block; font-size: clamp(36px, 4.5vw, 52px); font-weight: 600; letter-spacing: -.04em; line-height: 1; margin-bottom: 10px; color: var(--accent-ink); }
.stat span { color: var(--ink-3); font-size: 14px; }
.shot { margin: 32px 0 0; padding: 28px; display: grid; gap: 28px; align-items: center; }
@media (min-width: 800px) { .shot { grid-template-columns: 1fr 340px; } }
.shot p { margin: 12px 0 10px; color: var(--ink-2); font-size: 15px; max-width: 520px; }
.shot cite { display: block; font: 12px/1.5 var(--mono); font-style: normal; color: var(--ink-3); margin-bottom: 20px; }
.shot .btn { padding: 9px 18px; font-size: 14px; }
.thumb { display: block; height: 220px; border-radius: 16px; overflow: hidden; border: 1px solid var(--border-strong); background: #fff; box-shadow: var(--shadow); }
.thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .5s; }
.thumb:hover img { transform: scale(1.03); }
.diagram { position: relative; border-radius: var(--r); overflow: hidden; background: var(--dg-bg); border: 1px solid var(--border-strong); box-shadow: var(--shadow);
  --dg-strong: #f8fafc; --dg-panel: #ffffff; --dg-text: #e2e8f0; --dg-muted: #94a3b8; --dg-dim: #64748b; --dg-line: #475569;
  --dg-line2: #334155; --dg-track: #1e293b; --dg-node: #0f172a; --dg-bg: #18191c; --dg-warn: #fbbf24; --dg-teal: #2dd4bf; --dg-indigo: #818cf8; --dg-violet: #c084fc; }
:root[data-theme="light"] .diagram { --dg-strong: #1d1d1f; --dg-panel: #64748b; --dg-text: #334155; --dg-muted: #64748b; --dg-dim: #6e6e73;
  --dg-line: #64748b; --dg-line2: #94a3b8; --dg-track: #e2e8f0; --dg-node: #ffffff; --dg-bg: #fbfbfd; --dg-warn: #b45309; --dg-teal: #0d9488; --dg-indigo: #4f46e5; --dg-violet: #9333ea; }
.diagram::before { content: ""; position: absolute; inset: 0; opacity: .4; background-image: radial-gradient(var(--dot) 1px, transparent 1.2px); background-size: 20px 20px; }
.diagram svg { position: relative; width: 100%; height: auto; display: block; }
.terminal { background: rgba(0, 0, 0, .55); border: 1px solid rgba(255, 255, 255, .06); border-radius: 14px; padding: 16px 18px; font: 13.5px/1.7 var(--mono); color: #cbd5e1; overflow-x: auto; }
:root[data-theme="light"] .terminal { background: #ffffff; border-color: var(--border-strong); color: #1d1d1f; }
:root[data-theme="light"] .terminal b { color: #be185d; }
.terminal code { display: block; white-space: pre; }
.terminal b { color: #f472b6; font-weight: 400; }
.terminal .c { color: #64748b; }
.terminal .dots { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; color: #64748b; }
.terminal .dots i { width: 11px; height: 11px; border-radius: 50%; background: rgba(239, 68, 68, .5); }
.terminal .dots i:nth-child(2) { background: rgba(234, 179, 8, .5); }
.terminal .dots i:nth-child(3) { background: rgba(34, 197, 94, .5); }
.terminal .dots span { margin-left: 6px; }
.next { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.next a { padding: 26px 30px; text-decoration: none; }
.next a:hover { background: var(--panel-hover); border-color: var(--border-strong); }
.next small { display: block; color: var(--ink-3); font-size: 13px; margin-bottom: 4px; }
.next strong { font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.next .r { text-align: right; }

/* Policy & support pages */
.doc-page { padding: 130px 0 96px; }
.doc { max-width: 760px; }
.doc h1 { font-size: clamp(36px, 5vw, 52px); letter-spacing: -.04em; margin: 28px 0 32px; }
.doc h2 { font-size: 22px; letter-spacing: -.02em; margin: 40px 0 10px; }
.doc p { color: var(--ink-2); margin: 0 0 16px; }
.doc a { color: var(--accent-ink); }
mark.todo { background: color-mix(in srgb, #fbbf24 30%, transparent); color: var(--ink); border-radius: 4px; padding: 0 4px; }
.draft-flag { margin-top: 20px !important; padding: 10px 14px; border-radius: 12px; border: 1px dashed #fbbf24; color: var(--ink) !important; font-size: 14px; }
.legal-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.legal-links .eyebrow { margin-right: 8px; }
.legal-links .pill { text-decoration: none; text-transform: none; letter-spacing: 0; font: 500 14px var(--sans); }
.legal-links .pill:hover { color: var(--ink); border-color: var(--ink-3); }

.foot-links { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.foot-links a { color: var(--ink-2); text-decoration: none; }
.foot-links a:hover { color: var(--ink); text-decoration: underline; }

/* Diagram floating directly on the page (no panel) */
.diagram.bare { background: transparent; border: 0; box-shadow: none; overflow: visible; }
.diagram.bare::before { display: none; }

/* Diagrams on phones and portrait tablets: keep text legible, scroll sideways */
.swipe-hint { display: none; text-align: center; font-size: 13px; color: var(--ink-3); margin: -32px 0 16px; }
@media (max-width: 899px) {
  .swipe-hint { display: block; }
  .diagram, .diagram.bare { overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; margin: 0 -16px; padding: 0 16px; scrollbar-width: thin; }
  .diagram svg { min-width: 920px; }
}

/* Portfolio home */
.hero-photo { position: relative; z-index: 2; width: 100%; height: 100%; border-radius: 50%; padding: 3px; background: var(--accent-grad); }
.hero-photo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.hero h1 { margin-top: 26px; }
.about-text { max-width: 760px; margin: 0 auto; }
.about-text p { font-size: clamp(17px, 1.9vw, 20px); line-height: 1.65; color: var(--ink-2); margin: 0 0 18px; }
.art-card { display: grid; overflow: hidden; padding: 0; max-width: 1100px; margin: 0 auto; }
.art-media { display: block; background: #07152a; }
.art-media img { width: 100%; height: auto; transition: transform .6s; }
.art-media:hover img { transform: scale(1.02); }
.art-body { padding: 36px; }
@media (min-width: 900px) { .art-body { padding: 44px 48px; } }
.art-body h3 { font-size: clamp(30px, 4vw, 42px); letter-spacing: -.03em; margin: 12px 0 14px; }
.art-body p { color: var(--ink-2); margin: 0; max-width: 720px; }
.art-body ul { margin: 20px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.art-body li { color: var(--ink-2); font-size: 15px; padding-left: 18px; position: relative; }
.art-body li::before { content: ""; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; border-radius: 50%; background: var(--accent-grad); }
.art-body .actions { justify-content: flex-start; margin-top: 28px; }

/* Opening orbit around the portrait */
.hero { overflow: clip; }
.orbit-stage { position: relative; width: 132px; height: 132px; margin: 0 auto 28px; }
#orbit-canvas, .orbit-hs, .orbit-poster { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
/* wide canvas, same height: the orbit keeps its size but its outer glows are never clipped at the sides */
#orbit-canvas, .orbit-hs { width: min(1800px, 260vw); height: min(900px, 155vw); }
.orbit-poster { width: min(900px, 155vw); aspect-ratio: 1; }
#orbit-canvas { z-index: 0; pointer-events: none; opacity: 0; transition: opacity 1.2s; }
.orbit-hs { z-index: 3; pointer-events: none; }
.orbit-poster { z-index: 0; pointer-events: none; transition: opacity 1s; }
.orbit-poster i { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 1.5px solid; transform: translate(-50%, -50%) rotate(var(--rot)); opacity: .45; }
.orbit-poster i:nth-child(1) { width: 35%; height: 12%; --rot: -18deg; border-color: #2dd4bf; }
.orbit-poster i:nth-child(2) { width: 57%; height: 17%; --rot: 9deg; border-color: #818cf8; }
.orbit-poster i:nth-child(3) { width: 80%; height: 27%; --rot: -3deg; border-color: #38bdf8; border-style: dashed; }
.orbit-stage.live #orbit-canvas { opacity: 1; }
.orbit-stage.live .orbit-poster { opacity: 0; }
.hero .pill, .hero h1, .hero .lede, .hero .actions, .orbit-hint { position: relative; z-index: 2; }
.orbit-hint { display: none; justify-content: center; align-items: center; gap: 10px; margin: 26px 0 0; font-size: 14px; color: var(--ink-3); }
.orbit-hint i { width: 9px; height: 9px; border-radius: 50%; background: #2dd4bf; box-shadow: 0 0 12px #2dd4bf; }
body.orbit-on .orbit-hint { display: flex; }
.ohs { position: absolute; left: 0; top: 0; width: 44px; height: 44px; margin: -22px 0 0 -22px; border: 0; border-radius: 50%; background: transparent;
  pointer-events: auto; cursor: pointer; display: grid; place-items: center; transition: opacity .35s; will-change: transform; }
.ohs::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 55%, transparent), 0 0 18px 5px color-mix(in srgb, var(--c) 70%, transparent); }
.ohs::after { content: ""; position: absolute; inset: 8px; border-radius: 50%; border: 1.5px solid var(--c); animation: oping 2.6s ease-out infinite; }
.ohs span { position: absolute; left: 38px; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--ink); padding: 4px 10px; border-radius: 99px;
  background: color-mix(in srgb, var(--bg) 80%, transparent); border: 1px solid var(--border-strong); opacity: 0; transform: translateX(-4px); transition: .2s; pointer-events: none; }
.ohs:hover span, .ohs:focus-visible span { opacity: 1; transform: none; }
.ohs.back { opacity: .25; pointer-events: none; }
.ohs.back span { opacity: 0; }
.ohs.off { opacity: 0; pointer-events: none; }
@keyframes oping { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }
#ocard { position: fixed; z-index: 60; width: min(340px, calc(100vw - 32px)); padding: 24px; border-radius: 20px; text-align: left;
  background: color-mix(in srgb, var(--bg) 90%, transparent); border: 1px solid var(--border-strong); border-top: 3px solid var(--c);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); box-shadow: var(--shadow); opacity: 0; transform: translateY(8px) scale(.98); transition: .22s; pointer-events: none; }
#ocard.open { opacity: 1; transform: none; pointer-events: auto; }
#ocard .oc-kind { color: var(--ink-3); }
#ocard h3 { font-size: 22px; margin: 10px 0 8px; letter-spacing: -.02em; }
#ocard p { margin: 0 0 18px; color: var(--ink-2); font-size: 15px; }
#ocard .btn { padding: 9px 18px; font-size: 14px; }
#ocard .oc-x { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--panel-hover); color: var(--ink); font-size: 18px; cursor: pointer; }
@media (max-width: 640px) { #ocard { left: 16px !important; right: 16px; top: auto !important; bottom: calc(16px + env(safe-area-inset-bottom)); width: auto; } }
@media (prefers-reduced-motion: reduce) { .ohs::after { animation: none; } }

.hero > .wrap { width: 100%; }
.hero .pill { white-space: normal; max-width: 100%; text-align: center; line-height: 1.5; }

/* Certifications & articles */
.certs { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); max-width: 1100px; margin: 0 auto; }
.cert-group { padding: 28px; }
.cert-group ul { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 14px; }
.cert-group li { display: flex; flex-direction: column; padding-left: 16px; border-left: 2px solid var(--border-strong); }
.cert-group strong { font-weight: 600; font-size: 15.5px; line-height: 1.35; }
.cert-group li span { color: var(--ink-3); font-size: 13.5px; }
.articles { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.article { display: flex; flex-direction: column; gap: 10px; padding: 28px; text-decoration: none; }
.article:hover { background: var(--panel-hover); border-color: var(--border-strong); transform: translateY(-3px); }
.article h3 { font-size: 20px; letter-spacing: -.02em; line-height: 1.25; }
.article p { margin: 0; color: var(--ink-2); font-size: 15px; flex: 1; }
.article .go { font-size: 14px; font-weight: 600; }
@media (max-width: 1100px) and (min-width: 721px) { .nav { gap: 18px; font-size: 13px; } }
@media (max-width: 860px) and (min-width: 721px) { .nav a:nth-child(5) { display: none; } }

.journey em { display: block; font-style: normal; color: var(--ink-3); font-size: 14px; margin-top: 2px; }
.journey ul { margin: 8px 0 0; padding: 0 0 0 16px; color: var(--ink-2); font-size: 14px; }
.journey ul li { margin: 4px 0; }
.journey ul li::marker { color: var(--ink-3); }
@media (max-width: 480px) { .journey > li { grid-template-columns: 1fr; gap: 2px; } }

.hero-role { position: relative; z-index: 2; margin: -6px auto 10px; font-size: clamp(15px, 1.7vw, 18px); font-weight: 600; letter-spacing: -.01em; color: var(--ink); max-width: 760px; }
.hero-role span { color: var(--ink-3); font-weight: 500; }

.hero-scope { position: relative; z-index: 2; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 auto 18px; max-width: 640px; }
.hero-scope span, .hero-scope abbr { font: 500 13px/1 var(--sans); letter-spacing: 0; text-transform: none; color: var(--ink-2); padding: 7px 12px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); text-decoration: none; }
.hero-scope abbr { cursor: help; color: var(--ink); border-color: color-mix(in srgb, #2dd4bf 45%, transparent); }

/* Paper / article page */
.read-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 70; }
.read-progress span { display: block; height: 100%; background: var(--accent-grad); transform: scaleX(0); transform-origin: 0 50%; }
.paper-page { padding: 120px 0 96px; }
.paper { max-width: 820px; }
.paper-head { margin: 28px 0 36px; }
.paper-head h1 { font-size: clamp(40px, 6.4vw, 72px); letter-spacing: -.045em; margin: 14px 0 10px; }
.paper-sub { font-size: clamp(18px, 2.2vw, 22px); color: var(--ink); margin: 0 0 14px; }
.paper-sub abbr { text-decoration: none; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.paper-by { color: var(--ink-3); font-size: 14px; margin: 0 0 18px; }
.paper-keys { display: flex; flex-wrap: wrap; gap: 8px; }
.paper-keys span { font-size: 12.5px; padding: 5px 11px; border-radius: 99px; border: 1px solid var(--border-strong); color: var(--ink-2); background: var(--panel); }
.abstract { padding: 28px 30px; margin: 0 0 8px; }
.abstract p { color: var(--ink-2); margin: 12px 0 0; font-size: 16.5px; line-height: 1.7; }
.pull { margin: 48px 0; padding: 0; font-size: clamp(28px, 4.4vw, 46px); font-weight: 600; letter-spacing: -.035em; line-height: 1.12; text-align: center; }
.paper h2 { font-size: clamp(22px, 3vw, 28px); letter-spacing: -.02em; margin: 52px 0 14px; }
.paper h2 span { font: 600 13px var(--mono); color: var(--ink-3); margin-right: 10px; vertical-align: 4px; }
.paper p { color: var(--ink-2); font-size: 17px; line-height: 1.75; margin: 0 0 16px; }
.steps { list-style: none; counter-reset: s; padding: 0; margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.steps li { counter-increment: s; font-size: 13.5px; padding: 7px 14px 7px 10px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); color: var(--ink); }
.steps li::before { content: counter(s); display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; background: var(--accent-grad); color: #fff; font: 600 11px var(--mono); }
.formula { margin: 22px 0 26px; padding: 26px 20px; border-radius: 20px; border: 1px solid var(--border); background: var(--panel); text-align: center;
  font: 400 clamp(19px, 2.8vw, 26px)/1.4 "Times New Roman", Georgia, serif; color: var(--ink); overflow-x: auto; white-space: nowrap; }
.formula i { font-style: italic; padding: 0 1px; }
.formula .q { color: #2dd4bf; } .formula .k { color: #818cf8; } .formula .v { color: #c084fc; }
:root[data-theme="light"] .formula .q { color: #0d9488; } :root[data-theme="light"] .formula .k { color: #4f46e5; } :root[data-theme="light"] .formula .v { color: #9333ea; }
.frac { display: inline-flex; flex-direction: column; vertical-align: middle; margin: 0 6px; text-align: center; font-size: .85em; }
.frac > span:first-child { border-bottom: 1.5px solid currentColor; padding: 0 4px 2px; }
.frac > span:last-child { padding-top: 2px; }
.paper-fig { margin: 30px 0; padding: 22px; border-radius: 22px; border: 1px solid var(--border); background: var(--panel); }
.paper-fig svg { width: 100%; height: auto; display: block; overflow: visible; }
.paper-fig figcaption { margin-top: 14px; font-size: 14px; color: var(--ink-3); }
.paper-fig figcaption b { color: var(--ink-2); }
.fg-h { fill: var(--ink-3); font: 600 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.fg-t { fill: var(--ink); font: 600 15px var(--sans); }
.fg-t.sm { font-size: 13px; }
.fg-t.hl { fill: #f59e0b; }
.fg-t.center { fill: var(--ink-2); font-weight: 500; font-size: 14px; }
.fg-m { fill: var(--ink-3); font: 400 12px var(--sans); }
.fg-div { stroke: var(--border-strong); stroke-dasharray: 4 6; }
.fg-line { stroke: var(--border-strong); stroke-width: 1.5; fill: none; }
.fg-box { fill: var(--panel-hover); stroke: var(--border-strong); stroke-width: 1.2; }
.fg-box.q { stroke: #2dd4bf; } .fg-box.k { stroke: #818cf8; } .fg-box.v { stroke: #c084fc; }
.fg-box.out { stroke: var(--ink-3); } .fg-box.gov { stroke: #f59e0b; }
.fg-node { fill: var(--panel-hover); stroke: var(--ink-3); stroke-width: 1.5; } .fg-node.gov { stroke: #f59e0b; }
.fg-flow { fill: none; stroke-width: 2; stroke-dasharray: 6 6; animation: fgflow 1.6s linear infinite; }
.fg-flow.q { stroke: #2dd4bf; } .fg-flow.k { stroke: #818cf8; } .fg-flow.v { stroke: #c084fc; }
.fg-arrow { fill: none; stroke: #818cf8; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@keyframes fgflow { to { stroke-dashoffset: -24; } }
.fg-band { fill: var(--panel-hover); stroke: var(--border-strong); }
.fg-band.hot { stroke: #f59e0b; fill: color-mix(in srgb, #f59e0b 9%, transparent); }
.fg-brace { fill: none; stroke: #f59e0b; stroke-width: 2; }
.fg-orbit { fill: none; stroke: var(--ink-3); stroke-opacity: .55; stroke-width: 2; stroke-dasharray: 3 7; }
.fg-runner { fill: #2dd4bf; filter: drop-shadow(0 0 6px #2dd4bf); }
.fg-stage { fill: var(--bg); stroke: #818cf8; stroke-width: 2; }
.fg-stage.gov { stroke: #f59e0b; stroke-width: 3; }
.fg-stage.render { stroke: #2dd4bf; }
.fg-chip.bad { fill: color-mix(in srgb, #f43f5e 10%, transparent); stroke: color-mix(in srgb, #f43f5e 55%, transparent); }
.layers { margin: 24px 0; border-radius: 20px; overflow: hidden; border: 1px solid var(--border); }
.lrow { display: grid; grid-template-columns: 1.1fr 1fr 1.5fr; gap: 14px; padding: 14px 20px; border-top: 1px solid var(--border); font-size: 15px; color: var(--ink-2); background: var(--panel); }
.lrow:first-child { border-top: 0; }
.lrow span:first-child { color: var(--ink); font-weight: 600; display: flex; align-items: center; gap: 10px; }
.lrow i { font: 600 11px var(--mono); font-style: normal; width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--accent-grad); color: #fff; flex: none; }
.lhead { background: transparent; font: 600 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.lhead span:first-child { color: var(--ink-3); }
@media (max-width: 640px) { .lrow { grid-template-columns: 1fr; gap: 4px; } .lhead { display: none; } .paper-fig { padding: 14px; margin: 24px -8px; } }
.refs { padding-left: 22px; color: var(--ink-2); font-size: 15px; }
.refs li { margin: 8px 0; }
.featured-article { border-color: color-mix(in srgb, #2dd4bf 40%, var(--border)); }
@media (prefers-reduced-motion: reduce) { .fg-flow { animation: none; } }

@media (max-width: 700px) {
  .paper-fig { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .paper-fig svg { min-width: 640px; }
  .paper-fig::before { content: "Swipe to explore the figure →"; display: block; font-size: 12px; color: var(--ink-3); margin-bottom: 8px; }
}

/* Orbit callouts: one point at a time shows its name and a tap cue */
.ohs span small { display: block; font-size: 11px; font-weight: 500; color: var(--ink-3); max-height: 0; overflow: hidden; transition: max-height .25s; }
.ohs.callout span { opacity: 1; transform: none; }
.ohs.callout span small { max-height: 16px; }
.ohs.callout::before { animation: obeat 1.1s ease-in-out infinite; }
@keyframes obeat { 50% { transform: scale(1.35); } }
@media (max-width: 640px) { .orbit-stage { width: 104px; height: 104px; } }
@media (prefers-reduced-motion: reduce) { .ohs.callout::before { animation: none; } }
.ohs.flip span { left: auto; right: 38px; text-align: right; transform: translateX(4px); }
.ohs.flip.callout span, .ohs.flip:hover span, .ohs.flip:focus-visible span { transform: none; }

/* Figure system additions */
.fig-wide { max-width: 940px; margin-left: auto; margin-right: auto; }
.fg-chip.warn { fill: color-mix(in srgb, #f59e0b 10%, transparent); stroke: color-mix(in srgb, #f59e0b 55%, transparent); }
.fg-band.live { stroke-dasharray: 8 6; animation: fgflow 2.4s linear infinite; }
:root[data-theme="light"] .fg-t.hl { fill: #b45309; }
:root[data-theme="light"] .fg-runner { fill: #0d9488; filter: none; }
@media (prefers-reduced-motion: reduce) { .fg-band.live { animation: none; } }

/* Cards: no backdrop blur (prevents square compositing artifacts while scrolling/hovering) */
.card.glass, .article.glass, .next a.glass { -webkit-backdrop-filter: none; backdrop-filter: none; }

.paper-fig { cursor: pointer; }
.paper-fig.paused .fg-flow, .paper-fig.paused .fg-band.live { animation-play-state: paused; }
.fig-toggle { margin-left: 6px; padding: 3px 10px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); color: var(--ink-2); font: 500 12px var(--sans); cursor: pointer; min-height: 28px; }
.fig-toggle:hover { color: var(--ink); }
.fig-toggle:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 2px; }

/* Book entry (closed book that opens into the flipbook) */
.book-entry { margin: 32px 0 0; padding: 32px; display: grid; gap: 32px; align-items: center; }
@media (min-width: 800px) { .book-entry { grid-template-columns: 300px 1fr; } }
.book-entry p { margin: 12px 0 10px; color: var(--ink-2); font-size: 15px; max-width: 540px; }
.book-entry cite { display: block; font: 12px/1.5 var(--mono); font-style: normal; color: var(--ink-3); }
.book-entry .actions { justify-content: flex-start; margin-top: 22px; }
.book-entry .btn { padding: 10px 20px; font-size: 14px; }
.book-note { font-size: 13px !important; color: var(--ink-3) !important; margin-top: 14px !important; }
.book-cover { position: relative; display: block; width: min(300px, 100%); justify-self: center; padding: 0; border: 0; background: #fff; cursor: pointer;
  border-radius: 4px 10px 10px 4px; transform: perspective(1200px) rotateY(-14deg) rotateX(2deg); transform-origin: left center;
  box-shadow: -6px 0 0 -2px #d8dde4, 18px 24px 50px rgba(0, 0, 0, .45), inset 6px 0 10px -6px rgba(0, 0, 0, .35); transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
.book-cover img { width: 100%; height: auto; display: block; border-radius: 4px 10px 10px 4px; }
.book-cover:hover, .book-cover:focus-visible { transform: perspective(1200px) rotateY(-4deg); }
.book-cover:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 6px; }
.book-peel { position: absolute; right: 0; bottom: 0; width: 0; height: 0; border-radius: 0 0 10px 0; transition: width .35s, height .35s;
  background: linear-gradient(315deg, var(--bg) 48%, #e5e8ee 50%, #fff 70%); box-shadow: -3px -3px 8px rgba(0,0,0,.25); }
.book-cover:hover .book-peel { width: 46px; height: 46px; }
.paper-book { display: flex; flex-wrap: wrap; gap: 12px; margin: -8px 0 28px; }
.paper-book .btn { padding: 10px 20px; font-size: 14px; }

/* Flipbook viewer */
.fb-lock, .fb-lock body { overflow: hidden; }
.fb-overlay { position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; background: rgba(10, 11, 14, .94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #f5f5f7; animation: fbin .25s ease-out; }
@keyframes fbin { from { opacity: 0; } }
.fb-overlay.closing { opacity: 0; transition: opacity .2s; }
.fb-bar, .fb-nav { display: flex; align-items: center; gap: 12px; padding: 12px 16px; padding-top: max(12px, env(safe-area-inset-top)); }
.fb-nav { justify-content: center; padding-bottom: max(14px, env(safe-area-inset-bottom)); }
.fb-title { font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.fb-count { font: 500 13px var(--mono); color: #a3a3b8; white-space: nowrap; }
.fb-actions { display: flex; gap: 8px; }
.fb-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 14px; border-radius: 99px; border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06); color: #f5f5f7; font: 500 14px var(--sans); text-decoration: none; cursor: pointer; white-space: nowrap; }
.fb-btn:hover { background: rgba(255,255,255,.12); }
.fb-btn:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 2px; }
.fb-stage { flex: 1; min-height: 0; display: grid; place-items: center; padding: 0 12px; overflow: hidden; }
.fb-book { margin: 0 auto; }
.fb-page { background: #fff; overflow: hidden; }
.fb-page img { width: 100%; height: 100%; object-fit: contain; display: block; user-select: none; -webkit-user-drag: none; }
.fb-tip { font-size: 13px; color: #a3a3b8; text-align: center; }
.fb-loading { color: #a3a3b8; }
.fb-loading a { color: #2dd4bf; }
@media (max-width: 640px) { .fb-actions .fb-btn:not(.fb-close) { display: none; } .fb-tip { display: none; } }

/* Art: inline preview books */
.art-row { display: grid; gap: 28px 48px; align-items: center; max-width: 1180px; margin: 0 auto 72px; }
@media (min-width: 1000px) { .art-row { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); } .art-row:nth-of-type(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); } .art-row:nth-of-type(even) .book-window { order: 2; } }
.art-text h3 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -.03em; margin: 12px 0 14px; }
.art-text p { color: var(--ink-2); margin: 0 0 12px; }
.art-credit { font-size: 14px; color: var(--ink-3) !important; }
.book-window { position: relative; border-radius: 26px; padding: 26px 16px 14px; outline: none;
  background: radial-gradient(70% 60% at 50% 40%, color-mix(in srgb, #818cf8 10%, transparent), transparent 70%), var(--panel); border: 1px solid var(--border); }
.book-window:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 3px; }
.bw-stage { display: grid; place-items: center; min-height: 360px; perspective: 1400px; }
.bw-poster { width: min(330px, 70%); height: auto; border-radius: 3px 8px 8px 3px; box-shadow: 18px 24px 50px rgba(0, 0, 0, .45); transform: rotateY(-12deg); }
.book-window .fb-book { filter: drop-shadow(0 26px 40px rgba(0, 0, 0, .45)); }
.bw-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 14px; }
.bw-count { font: 500 13px var(--sans); color: var(--ink-3); min-width: 120px; text-align: center; }
.book-window .fb-btn { border-color: var(--border-strong); background: var(--panel); color: var(--ink); }
.book-window .fb-btn:hover { background: var(--panel-hover); }
.fb-html { background: #13161c !important; }
.bw-back { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 12%; text-align: center; color: #e9e3d6;
  background: radial-gradient(80% 60% at 50% 40%, #1f2533, #0f1218); font-family: Georgia, "Times New Roman", serif; }
.bw-back svg { width: 34px; height: 34px; fill: none; stroke: #f6af2f; stroke-width: 1.6; stroke-linecap: round; }
.bw-back p { margin: 0; font-size: clamp(14px, 1.6vw, 19px); line-height: 1.5; font-style: italic; }
.bw-back span { font: 500 10px var(--sans); letter-spacing: .5em; color: #b8b0a0; }
@media (max-width: 640px) { .bw-stage { min-height: 300px; } .book-window { padding: 18px 10px 12px; } }

.bw-canvas { width: 100%; height: 520px; display: block; cursor: pointer; touch-action: pan-y; }
@media (max-width: 640px) { .bw-canvas { height: 420px; } }
.bw-3d .bw-stage { transition: opacity .4s; }
.bw-handoff .bw-stage { opacity: 0; }

/* About: pull quote and story */
.pull-hero { margin: 0 auto 36px; max-width: 900px; text-align: center; font-size: clamp(30px, 4.6vw, 54px); font-weight: 650; letter-spacing: -.04em; line-height: 1.08; }
.about-text .human { border-left: 2px solid; border-image: var(--accent-grad) 1; padding-left: 18px; }
.offer-proof { display: block; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); font: 500 12px/1.5 var(--mono); color: var(--ink-3); }
@media (min-width: 1000px) { .offers { grid-template-columns: repeat(3, 1fr); } }
/* Closing */
.closing { position: relative; text-align: center; padding: 140px 0 150px; overflow: clip; }
.closing h2 { font-size: clamp(40px, 6.6vw, 84px); letter-spacing: -.045em; line-height: 1.02; max-width: 1000px; margin: 18px auto 22px; }
.closing .lede { margin: 0 auto; max-width: 680px; }
.closing .actions { justify-content: center; margin-top: 34px; }
.closing-signals { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }
.closing-signals span { font: 500 13px var(--sans); padding: 8px 16px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); color: var(--ink-2); }
.closing-ring { position: absolute; left: 50%; top: 50%; width: min(980px, 140vw); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; pointer-events: none; opacity: .5;
  background: conic-gradient(from 0deg, transparent 0 20%, rgba(45, 212, 191, .22) 30%, transparent 40% 60%, rgba(192, 132, 252, .22) 72%, transparent 82%);
  -webkit-mask: radial-gradient(circle, transparent 62%, #000 63%, #000 64.5%, transparent 66%); mask: radial-gradient(circle, transparent 62%, #000 63%, #000 64.5%, transparent 66%);
  animation: ring 22s linear infinite; }
@keyframes ring { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .closing-ring { animation: none; } }

/* Figure captions: text and the pause control aligned on one line */
.paper-fig figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.paper-fig figcaption .fig-toggle { margin-left: auto; flex: none; }
/* Cetus: pet stage and companion */
.pet-sprite { display: block; width: 192px; height: 208px; background-repeat: no-repeat; background-size: 800% 1100%; image-rendering: auto; }
.pet-dock { position: fixed; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 40; display: flex; align-items: flex-end; gap: 6px; }
.pet-btn { width: 96px; height: 104px; padding: 0; border: 0; background: none; cursor: pointer; }
.pet-btn .pet-sprite { width: 96px; height: 104px; filter: drop-shadow(0 8px 14px rgba(0,0,0,.4)); }
.pet-bubble { position: absolute; right: 70px; bottom: 96px; width: max-content; max-width: min(260px, calc(100vw - 110px)); margin: 0; padding: 10px 14px; border-radius: 16px 16px 4px 16px;
  background: color-mix(in srgb, var(--bg) 92%, transparent); border: 1px solid var(--border-strong); box-shadow: var(--shadow); font-size: 13.5px; color: var(--ink);
  opacity: 0; transform: translateY(6px); transition: .25s; pointer-events: none; }
.pet-dock.talking .pet-bubble { opacity: 1; transform: none; }
.pet-hide { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--border-strong); background: var(--panel); color: var(--ink-2); cursor: pointer; font-size: 14px; line-height: 1; }
.pet-dock.tucked .pet-btn, .pet-dock.tucked .pet-bubble { display: none; }
@media (max-width: 640px) { .pet-dock .pet-btn, .pet-dock .pet-btn .pet-sprite { width: 72px; height: 78px; } .pet-bubble { bottom: 74px; right: 54px; } }
/* Rendered documents as 3D books (Exedrion-brand covers) */
.book-entry.doc-book { grid-template-columns: minmax(0, 1fr); padding: 24px; }
@media (min-width: 1000px) { .book-entry.doc-book { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } }
.paper-book { flex-direction: column; align-items: center; }
.paper-book .book-window { width: 100%; }
.book-entry cite { overflow-wrap: anywhere; }
/* ===== Cetus story page: chapters in the Apple manner (one idea per screen, big type, quiet motion) ===== */
[hidden] { display: none !important; }
.grad { background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.story { padding: clamp(72px, 12vw, 150px) 0; }
.story-narrow { max-width: 880px; text-align: center; }
.story-h { font-size: clamp(34px, 5.4vw, 64px); line-height: 1.05; letter-spacing: -.025em; }
.story-xl { font-size: clamp(44px, 8vw, 104px); line-height: 1; letter-spacing: -.035em; margin: 14px 0 26px; }
.story-lede { font-size: clamp(18px, 2.1vw, 23px); line-height: 1.5; color: var(--ink-2); max-width: 760px; margin: 0 auto; }
.story-meta { margin-top: 26px; font: 500 12.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.story-trio { display: grid; gap: 32px; max-width: 1080px; margin: 56px auto 0; }
@media (min-width: 860px) { .story-trio { grid-template-columns: repeat(3, 1fr); } }
.story-trio h3 { font-size: 21px; letter-spacing: -.01em; margin-bottom: 8px; }
.story-trio p { color: var(--ink-2); font-size: 15.5px; line-height: 1.6; margin: 0; }

/* Wake stage: dark water, a wave in a glass circle */
.story-wake { padding-bottom: clamp(40px, 8vw, 90px); }
.wake-stage { position: relative; max-width: 960px; min-height: 460px; margin: 0 auto; border-radius: 32px; overflow: hidden; display: grid; place-items: center; align-content: center; gap: 18px; padding: 36px 20px;
  background: radial-gradient(90% 70% at 50% 110%, rgba(34,207,223,.16), transparent 60%), radial-gradient(120% 90% at 50% 0%, #15314d 0%, #0d1b2b 55%, #0a121c 100%);
  border: 1px solid rgba(148,163,184,.16); color: #e8eef5; }
.wake-orb { width: 168px; height: 168px; border-radius: 50%; padding: 0; cursor: pointer; display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(circle at 50% 30%, rgba(255,255,255,.10), rgba(255,255,255,.02) 60%); border: 1px solid rgba(255,255,255,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 20px 50px rgba(0,0,0,.35); backdrop-filter: blur(8px); transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s; }
.wake-orb:hover { transform: scale(1.04); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 0 0 6px rgba(34,207,223,.08), 0 24px 60px rgba(0,0,0,.4); }
.wake-orb:focus-visible { outline: 2px solid #22CFDF; outline-offset: 5px; }
.wake-orb svg { width: 104px; height: 56px; overflow: visible; }
.wake-orb path { fill: none; stroke-width: 3.2; stroke-linecap: round; }
.wake-orb .w1 { stroke: #22CFDF; animation: waveDrift 3.6s linear infinite; }
.wake-orb .w2 { stroke: rgba(232,238,245,.55); stroke-width: 2.4; animation: waveDrift 5.2s linear infinite reverse; }
@keyframes waveDrift { to { transform: translateX(-90px); } }
.wake-hint { margin: 0; font: 500 12.5px var(--mono); letter-spacing: .16em; text-transform: uppercase; color: rgba(232,238,245,.6); }
.wake-stage::after { content: ""; position: absolute; left: 50%; top: 45%; width: 160px; height: 160px; margin: -80px 0 0 -80px; border-radius: 50%; pointer-events: none; opacity: 0;
  background: radial-gradient(circle, rgba(255,255,255,.95), rgba(34,207,223,.55) 32%, rgba(29,78,216,.2) 56%, transparent 70%); }
.wake-stage.waking:not(.awake) .wake-orb { animation: orbSink 2.2s ease-in forwards; }
.wake-stage.waking:not(.awake) .wake-hint { opacity: 0; transition: opacity .4s; }
.wake-stage.waking:not(.awake)::after { animation: wakeFlash 1.3s ease-out .9s forwards; }
@keyframes orbSink { 40% { transform: scale(1.08); } 100% { transform: scale(.2); opacity: 0; } }
@keyframes wakeFlash { 0% { opacity: 0; transform: scale(.6); } 45% { opacity: 1; transform: scale(3.4); } 100% { opacity: 0; transform: scale(10); } }
.wake-stage.awake .wake-orb, .wake-stage.awake .wake-hint { display: none; }
.wake-awake { display: grid; justify-items: center; gap: 18px; text-align: center; animation: petIn .9s cubic-bezier(.2,.8,.2,1); }
@keyframes petIn { from { opacity: 0; transform: translateY(24px) scale(.9); filter: blur(8px); } }
.wake-pet { width: 230px; height: 249px; filter: drop-shadow(0 22px 30px rgba(0,0,0,.45)); }
.wake-caption { margin: 0; min-height: 3em; max-width: 560px; font-size: clamp(17px, 2vw, 21px); line-height: 1.45; color: #f1f5f9; }
.wake-flow { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 4px; }
.wake-flow li { display: flex; align-items: center; gap: 4px; font: 500 12.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: rgba(232,238,245,.6); transition: color .4s; }
.wake-flow li + li::before { content: ""; width: 22px; height: 1px; margin-right: 4px; background: rgba(232,238,245,.25); }
.wake-flow li.done { color: rgba(232,238,245,.8); }
.wake-flow li.on { color: #22CFDF; text-shadow: 0 0 14px rgba(34,207,223,.6); }

/* Decision rights: two columns of large type split by the amber gate */
.rights { display: grid; gap: 28px; max-width: 980px; margin: 0 auto; align-items: stretch; }
@media (min-width: 760px) { .rights { grid-template-columns: 1fr auto 1fr; gap: 48px; } }
.rights-k { display: block; font: 600 12.5px var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.rights ul { list-style: none; margin: 0; padding: 0; }
.rights li { font-size: clamp(30px, 4.4vw, 52px); font-weight: 600; letter-spacing: -.03em; line-height: 1.18; }
.rights-col:not(.human) li { color: var(--ink); }
.rights-col.human li { color: #f59e0b; }
:root[data-theme="light"] .rights-col.human li { color: #b45309; }
.rights-gate { display: grid; place-items: center; }
.rights-gate span { width: 2px; height: 100%; min-height: 60px; background: linear-gradient(transparent, #f59e0b 20%, #f59e0b 80%, transparent); position: relative; }
.rights-gate span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; margin: -7px 0 0 -7px; background: #f59e0b; transform: rotate(45deg); border-radius: 2px; box-shadow: 0 0 18px rgba(245,158,11,.6); }
@media (max-width: 759px) { .rights-gate span { width: 100%; height: 2px; min-height: 0; background: linear-gradient(90deg, transparent, #f59e0b 20%, #f59e0b 80%, transparent); } }
.rights-eco { max-width: 980px; margin: 64px auto 0; text-align: center; }
.eco-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 16px; }
.eco-tags span { display: inline-flex; gap: 8px; align-items: baseline; padding: 10px 16px; border-radius: 99px; border: 1px dashed var(--border-strong); color: var(--ink-3); font-size: 13.5px; }
.eco-tags b { color: var(--ink-2); font-weight: 600; }

/* Skills bento */
.skill-bento { display: grid; gap: 14px; max-width: 1120px; margin: 0 auto; grid-auto-flow: dense; }
@media (min-width: 900px) { .skill-bento { grid-template-columns: repeat(4, 1fr); } .sk-tile.big { grid-column: span 2; grid-row: span 2; } .sk-tile.wide { grid-column: span 2; } }
@media (min-width: 600px) and (max-width: 899px) { .skill-bento { grid-template-columns: repeat(2, 1fr); } .sk-tile.big, .sk-tile.wide { grid-column: span 2; } }
.sk-tile { position: relative; padding: 26px; border-radius: 26px; background: var(--panel); border: 1px solid var(--border); overflow: hidden; }
.sk-tile.big { background: radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, #818cf8 14%, transparent), transparent 60%), var(--panel); }
.sk-n { display: block; font-size: clamp(44px, 5vw, 72px); font-weight: 700; letter-spacing: -.05em; line-height: .9; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; opacity: .9; }
.sk-tile.big .sk-n { font-size: clamp(64px, 8vw, 120px); }
.sk-tile h3 { font-size: 20px; margin: 12px 0 14px; letter-spacing: -.01em; }
.sk-tile ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sk-tile li { display: grid; gap: 3px; }
.sk-tile code { font: 600 12.5px var(--mono); color: var(--ink); overflow-wrap: anywhere; }
.sk-tile li span { color: var(--ink-2); font-size: 14px; line-height: 1.5; }
.sk-tile.note { display: grid; place-items: center; text-align: center; background: var(--accent-grad); border: 0; }
.sk-tile.note p { margin: 0; color: #0b1220; font-size: 22px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; }
.sk-tile.note span { display: block; font-size: 15px; font-weight: 500; opacity: .8; margin-top: 6px; }

/* Proof */
.bignums { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px 20px; max-width: 1040px; margin: 0 auto 64px; text-align: center; }
@media (min-width: 860px) { .bignums { grid-template-columns: repeat(4, 1fr); } }
.bignums b { display: block; font-size: clamp(56px, 8vw, 104px); line-height: 1; letter-spacing: -.05em; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.bignums span { display: block; margin-top: 10px; color: var(--ink-2); font-size: 15px; }
.proof-split { display: grid; gap: 36px; max-width: 980px; margin: 0 auto; }
@media (min-width: 800px) { .proof-split { grid-template-columns: 1fr 1fr; gap: 56px; } }
.proof-split h3 { font-size: 13px; font: 600 12.5px var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--done); margin-bottom: 14px; }
.proof-split .open h3 { color: #f59e0b; }
.proof-split ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.proof-split li { padding-bottom: 12px; border-bottom: 1px solid var(--border); color: var(--ink); font-size: 16.5px; line-height: 1.45; }

/* Evolution: horizontal timeline */
.evo-scroll { overflow-x: auto; scroll-snap-type: x mandatory; padding: 8px 4px 22px; outline: none; scrollbar-width: thin; }
.evo-scroll:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 2px; border-radius: 12px; }
.evo-h { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); gap: 0; min-width: min-content; }
.evo-h li { scroll-snap-align: start; position: relative; padding: 34px 22px 0 0; display: grid; gap: 6px; align-content: start; border-top: 1px solid var(--border-strong); }
.evo-h li::before { content: ""; position: absolute; left: 0; top: -6px; width: 11px; height: 11px; border-radius: 50%; background: var(--ink-3); }
.evo-h li.now::before { background: #2dd4bf; box-shadow: 0 0 0 6px rgba(45,212,191,.18); animation: nowPulse 2.4s ease-in-out infinite; }
@keyframes nowPulse { 50% { box-shadow: 0 0 0 11px rgba(45,212,191,.05); } }
.evo-when { font: 600 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.evo-h b { font-size: 18px; letter-spacing: -.01em; }
.evo-h span:last-child { color: var(--ink-2); font-size: 14.5px; line-height: 1.5; }

/* Finale: the closing ocean */
.finale { position: relative; overflow: hidden; padding: clamp(110px, 16vw, 200px) 0 clamp(90px, 12vw, 150px); text-align: center; color: #eef4fa;
  background: linear-gradient(180deg, transparent 0%, #0d2136 22%, #0b2a45 60%, #0f3a5c 100%); }
.finale-sea { position: absolute; inset: 0; pointer-events: none; }
.finale .ray { position: absolute; top: -10%; width: 22%; height: 120%; background: linear-gradient(180deg, rgba(186,230,253,.16), transparent 70%); transform: skewX(-14deg); filter: blur(10px); animation: rayDrift 9s ease-in-out infinite alternate; }
.finale .r1 { left: 12%; } .finale .r2 { left: 42%; width: 14%; animation-delay: -3s; } .finale .r3 { left: 70%; width: 18%; animation-delay: -6s; }
@keyframes rayDrift { to { transform: skewX(-8deg) translateX(30px); opacity: .6; } }
.finale-swim { position: absolute; top: 14%; left: 0; width: 100%; animation: swimAcross 26s linear infinite; }
.finale-pet { width: 120px; height: 130px; opacity: .9; filter: drop-shadow(0 16px 20px rgba(0,0,0,.4)); }
@keyframes swimAcross { from { transform: translateX(-160px); } to { transform: translateX(calc(100vw + 40px)); } }
.finale-in { position: relative; }
.finale .story-lede { color: rgba(238,244,250,.75); }
.finale .eyebrow { color: #7dd3fc; }
.finale .actions { justify-content: center; margin-top: 36px; }
.finale .btn.ghost { color: #eef4fa; border-color: rgba(238,244,250,.35); }

/* Dock: the companion facing the viewer */
.pet-dock { transition: opacity .3s, transform .3s; }
.pet-dock.away { opacity: 0; transform: translateY(12px); pointer-events: none; visibility: hidden; transition: opacity .3s, transform .3s, visibility 0s .3s; }
.pet-dock .pet-btn { animation: petBob 4s ease-in-out infinite; }
@keyframes petBob { 50% { transform: translateY(-5px); } }
.dock-tools { display: grid; gap: 6px; }
.sound-toggle { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--border-strong); background: var(--panel); color: var(--ink-2); cursor: pointer; font-size: 13px; line-height: 1; padding: 0; }
.sound-toggle.off { text-decoration: line-through; opacity: .6; }
@media (prefers-reduced-motion: reduce) {
  .wake-orb path, .wake-awake, .finale .ray, .finale-swim, .pet-dock .pet-btn, .evo-h li.now::before { animation: none; }
  .wake-stage.waking:not(.awake) .wake-orb, .wake-stage.waking:not(.awake)::after { animation: none; }
  .finale-swim { left: 50%; transform: translateX(-60px); }
}
.film { max-width: 1120px; margin: clamp(48px, 7vw, 88px) auto 0; border-radius: 28px; overflow: hidden; border: 1px solid var(--border); background: #0a121c; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.film video { display: block; width: 100%; height: auto; aspect-ratio: 2.4 / 1; object-fit: cover; }

/* Listen: the audio overview */
.listen { max-width: 760px; margin: clamp(40px, 6vw, 64px) auto 0; padding: 24px 26px; border-radius: 24px; display: grid; gap: 16px; text-align: left; }
.listen h3 { font-size: 20px; letter-spacing: -.01em; margin: 0; }
.listen p { margin: 0; color: var(--ink-2); font-size: 15px; }
.listen audio { width: 100%; height: 44px; }
.listen .alt { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--border); }
.listen .alt span { font: 600 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
/* ===== Exedrion story page: an editorial publication (all classes ex-) ===== */
.ex-serif, .ex-display, .ex-h, .ex-h3, .ex-quote { font-family: "Iowan Old Style", "Charter", "Palatino Linotype", Georgia, serif; font-weight: 500; }
.ex-open { padding: clamp(64px, 10vw, 130px) 0 clamp(32px, 6vw, 72px); }
.ex-open-grid { display: grid; gap: clamp(28px, 5vw, 64px); align-items: center; max-width: 1080px; }
@media (min-width: 860px) { .ex-open-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } }
.ex-ink { display: grid; place-items: center; }
.ex-draw, .ex-mark-static { width: min(300px, 70vw); height: auto; color: var(--accent-ink); overflow: visible; }
.ex-draw path { stroke: currentColor; }
.ex-draw .acc, .ex-mark-static .acc { stroke: #22CFDF; }
.ex-display { font-size: clamp(42px, 6.4vw, 84px); line-height: 1.02; letter-spacing: -.02em; margin: 14px 0 22px; text-wrap: balance; }
.ex-display em { font-style: italic; background: var(--accent-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-right: .06em; }
.ex-open-text .story-lede { margin: 0; }
.ex-h { font-size: clamp(34px, 5vw, 60px); line-height: 1.06; letter-spacing: -.015em; text-wrap: balance; }
.ex-h3 { font-size: clamp(24px, 3vw, 34px); line-height: 1.15; }
.ex-k { display: block; font: 600 12px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 10px; }
.ex-num { display: block; font: 600 13px var(--mono); letter-spacing: .1em; color: var(--accent-ink); margin-bottom: 12px; }
.ex-problems, .ex-triad, .ex-tiers, .ex-who { display: grid; gap: 28px; max-width: 1080px; margin: 52px auto 0; }
@media (min-width: 860px) { .ex-problems, .ex-triad, .ex-tiers, .ex-who { grid-template-columns: repeat(3, 1fr); gap: 40px; } }
.ex-problems h3, .ex-triad h3, .ex-who h3 { font-size: 21px; letter-spacing: -.01em; margin-bottom: 8px; }
.ex-problems p, .ex-triad p, .ex-tiers p, .ex-who p { color: var(--ink-2); font-size: 15.5px; line-height: 1.6; margin: 0; }
.ex-problems > div, .ex-triad > div, .ex-tiers > div { padding-top: 18px; border-top: 1px solid var(--border-strong); }
.ex-triad h3 { font-family: "Iowan Old Style", "Charter", Georgia, serif; font-size: clamp(26px, 3vw, 34px); font-weight: 500; }
.ex-boundary { border-top-color: #f59e0b !important; }
.ex-boundary .ex-k { color: #f59e0b; }
:root[data-theme="light"] .ex-boundary .ex-k { color: #b45309; }
.ex-quote { max-width: 820px; margin: 64px auto 0; padding: 0 0 0 28px; border-left: 3px solid var(--accent-ink); font-size: clamp(21px, 2.6vw, 29px); line-height: 1.4; font-style: italic; color: var(--ink); }
.ex-quote-sm { font-size: clamp(18px, 2vw, 22px); margin-top: 48px; }

/* Routes */
.ex-routes { max-width: 1080px; margin: 44px auto 0; }
.ex-switch { display: inline-flex; gap: 4px; padding: 5px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); margin: 0 auto 26px; position: relative; left: 50%; transform: translateX(-50%); }
.ex-switch button { font: 600 15px var(--sans); padding: 10px 22px; border-radius: 99px; border: 0; background: none; color: var(--ink-2); cursor: pointer; transition: background .25s, color .25s; }
.ex-switch button[aria-selected="true"] { background: var(--ink); color: var(--bg); }
.ex-switch button:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 2px; }
.ex-panel { display: grid; gap: 22px; padding: clamp(22px, 3vw, 34px); border-radius: 26px; background: var(--panel); border: 1px solid var(--border); margin-bottom: 16px; }
@media (min-width: 860px) { .ex-panel { grid-template-columns: 1.15fr 1fr 1.1fr; gap: 34px; } }
.ex-col { min-width: 0; }
.ex-ask { margin: 0; padding: 16px 18px; border-radius: 18px 18px 18px 6px; background: color-mix(in srgb, var(--accent) 12%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); font-size: 16px; line-height: 1.5; color: var(--ink); }
.ex-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; counter-reset: c; }
.ex-chips li { counter-increment: c; font: 500 13px var(--mono); padding: 7px 12px; border-radius: 99px; border: 1px solid var(--border-strong); color: var(--ink); }
.ex-chips li::before { content: counter(c) " "; color: var(--accent-ink); }
.ex-get { margin: 0 0 10px; font-size: 17px; line-height: 1.5; color: var(--ink); }
.ex-tags { margin: 0; font: 500 12.5px var(--mono); color: var(--ink-3); letter-spacing: .04em; }
@media (prefers-reduced-motion: no-preference) { .ex-panel.ex-enter { animation: exIn .45s cubic-bezier(.2,.8,.2,1); } }
@keyframes exIn { from { opacity: 0; transform: translateY(10px); } }

/* Contents (operating model) */
.ex-contents { max-width: 980px; margin: 44px auto 0; padding: clamp(22px, 3.5vw, 44px); border-radius: 26px; background: var(--panel); border: 1px solid var(--border); }
.ex-contents-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--border-strong); font: italic 500 22px "Iowan Old Style", Charter, Georgia, serif; }
.ex-legend { display: inline-flex; align-items: center; gap: 8px; font: 500 12.5px var(--sans); color: var(--ink-2); font-style: normal; }
.ex-legend .ex-route { margin-left: 6px; }
.ex-toc { list-style: none; margin: 0; padding: 0; }
.ex-toc-row { display: grid; grid-template-columns: 2.4em auto minmax(24px, 1fr) minmax(0, 1.4fr) 14px 14px; align-items: baseline; gap: 6px 12px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.ex-toc-n { font: 600 13px var(--mono); color: var(--accent-ink); }
.ex-toc-row b { font: 500 21px "Iowan Old Style", Charter, Georgia, serif; }
.ex-leader { border-bottom: 2px dotted var(--border-strong); transform-origin: left; height: .7em; }
.ex-toc-d { color: var(--ink-2); font-size: 15px; line-height: 1.45; }
.ex-route { display: inline-block; width: 11px; height: 11px; border-radius: 50%; border: 1.5px solid var(--ink-3); align-self: center; }
.ex-route.u.on { background: #2dd4bf; border-color: #2dd4bf; }
.ex-route.c.on { background: #818cf8; border-color: #818cf8; }
@media (max-width: 640px) { .ex-toc-row { grid-template-columns: 2.2em 1fr 14px 14px; } .ex-leader { display: none; } .ex-toc-d { grid-column: 2 / -1; grid-row: 2; } }
.ex-note { margin: 18px 0 0 !important; }
.ex-js .ex-toc .ex-leader { transform: scaleX(0); transition: transform .9s cubic-bezier(.2,.8,.2,1); }
.ex-js .ex-toc.in .ex-leader { transform: none; }
.ex-js .ex-toc.in .ex-toc-row:nth-child(2) .ex-leader { transition-delay: .08s; } .ex-js .ex-toc.in .ex-toc-row:nth-child(3) .ex-leader { transition-delay: .16s; }
.ex-js .ex-toc.in .ex-toc-row:nth-child(4) .ex-leader { transition-delay: .24s; } .ex-js .ex-toc.in .ex-toc-row:nth-child(5) .ex-leader { transition-delay: .32s; }
.ex-js .ex-toc.in .ex-toc-row:nth-child(6) .ex-leader { transition-delay: .4s; } .ex-js .ex-toc.in .ex-toc-row:nth-child(7) .ex-leader { transition-delay: .48s; }
.ex-js .ex-toc.in .ex-toc-row:nth-child(8) .ex-leader { transition-delay: .56s; }

/* Card catalog (skills) */
.ex-catalog { display: grid; gap: 22px; max-width: 1120px; margin: 44px auto 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.ex-drawer { position: relative; padding: 30px 18px 18px; border-radius: 6px 22px 22px 22px; background: var(--panel); border: 1px solid var(--border); display: grid; gap: 12px; align-content: start; }
.ex-drawer-tab { position: absolute; top: -13px; left: 16px; font: 600 12px var(--mono); letter-spacing: .08em; text-transform: uppercase; padding: 5px 12px; border-radius: 8px 8px 8px 2px; background: var(--accent-ink); color: var(--bg); }
.ex-drawer-sum { margin: 0; color: var(--ink-2); font-size: 14px; line-height: 1.5; }
.ex-drawer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ex-card { display: grid; gap: 4px; padding: 12px 14px; border-radius: 10px; background: color-mix(in srgb, var(--ink) 4%, transparent); border: 1px solid var(--border); border-left: 3px solid var(--accent-ink); }
.ex-card code { font: 600 12.5px var(--mono); color: var(--ink); overflow-wrap: anywhere; }
.ex-card span { color: var(--ink-2); font-size: 13.5px; line-height: 1.45; }

/* Evidence ledger */
.ex-ledger { max-width: 860px; margin: 44px auto 0; padding: clamp(20px, 3vw, 32px); border-radius: 20px; background: color-mix(in srgb, var(--ink) 3.5%, var(--bg)); border: 1px solid var(--border-strong); box-shadow: 0 30px 60px rgba(0,0,0,.25); }
.ex-ledger figcaption { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 14px; margin-bottom: 4px; border-bottom: 2px solid var(--ink); font: 600 13px var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.ex-ledger-tag { color: var(--ink-3); letter-spacing: .04em; text-transform: none; font-weight: 500; }
.ex-ledger ol { list-style: none; margin: 0; padding: 0; }
.ex-entry { display: grid; grid-template-columns: 2.4em minmax(0, 1fr) auto 6.5em; gap: 8px 14px; align-items: center; padding: 13px 0; border-bottom: 1px dashed var(--border-strong); }
.ex-entry-n { font: 600 12.5px var(--mono); color: var(--ink-3); }
.ex-entry-e { font-size: 15.5px; color: var(--ink); min-width: 0; }
.ex-entry-h { font: 12.5px var(--mono); color: var(--ink-2); }
.ex-entry-s { justify-self: end; font: 600 11.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; padding: 4px 9px; border-radius: 6px; color: var(--done); border: 1.5px solid currentColor; transform: rotate(-2deg); }
.ex-entry.warn .ex-entry-s { color: #f59e0b; }
.ex-sign { border-bottom: 0; }
.ex-sign .ex-entry-e { font-family: "Iowan Old Style", Charter, Georgia, serif; font-style: italic; font-size: 18px; }
.ex-signline { height: 1px; align-self: end; margin-bottom: 8px; border-bottom: 1.5px solid var(--ink-2); min-width: 90px; }
.ex-sign .ex-entry-s { color: var(--ink); }
@media (max-width: 640px) { .ex-entry { grid-template-columns: 2em minmax(0, 1fr) auto; } .ex-entry-h, .ex-signline { grid-column: 2; grid-row: 2; } .ex-signline { width: 120px; } }
.ex-js [data-ex-reveal].ex-ledger .ex-entry { opacity: .15; transition: opacity .4s; }
.ex-js [data-ex-reveal].ex-ledger.in .ex-entry { opacity: 1; }
.ex-js .ex-ledger.in .ex-entry .ex-entry-s { animation: exStamp .5s cubic-bezier(.2,1.6,.4,1) backwards; }
.ex-js .ex-ledger.in .ex-entry:nth-child(1), .ex-js .ex-ledger.in .ex-entry:nth-child(1) .ex-entry-s { transition-delay: .1s; animation-delay: .1s; }
.ex-js .ex-ledger.in .ex-entry:nth-child(2), .ex-js .ex-ledger.in .ex-entry:nth-child(2) .ex-entry-s { transition-delay: .45s; animation-delay: .45s; }
.ex-js .ex-ledger.in .ex-entry:nth-child(3), .ex-js .ex-ledger.in .ex-entry:nth-child(3) .ex-entry-s { transition-delay: .8s; animation-delay: .8s; }
.ex-js .ex-ledger.in .ex-entry:nth-child(4), .ex-js .ex-ledger.in .ex-entry:nth-child(4) .ex-entry-s { transition-delay: 1.15s; animation-delay: 1.15s; }
.ex-js .ex-ledger.in .ex-entry:nth-child(5), .ex-js .ex-ledger.in .ex-entry:nth-child(5) .ex-entry-s { transition-delay: 1.5s; animation-delay: 1.5s; }
.ex-js .ex-ledger.in .ex-entry:nth-child(6), .ex-js .ex-ledger.in .ex-entry:nth-child(6) .ex-entry-s { transition-delay: 1.9s; animation-delay: 1.9s; }
@keyframes exStamp { from { opacity: 0; transform: rotate(-2deg) scale(1.8); } }

/* Mark drawing */
.ex-js .ex-draw path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.ex-js .ex-draw circle { opacity: 0; transition: opacity .6s 1.9s; }
.ex-js .ex-draw.in path { animation: exDraw 2.2s cubic-bezier(.6,0,.3,1) forwards; }
.ex-js .ex-draw.in path:nth-of-type(2) { animation-delay: .25s; } .ex-js .ex-draw.in path:nth-of-type(3) { animation-delay: .5s; }
.ex-js .ex-draw.in path:nth-of-type(4) { animation-delay: .75s; } .ex-js .ex-draw.in path:nth-of-type(n+5) { animation-delay: 1s; }
.ex-js .ex-draw.in circle { opacity: 1; }
@keyframes exDraw { to { stroke-dashoffset: 0; } }

/* Book, reality, audience */
.ex-book { display: grid; justify-items: center; gap: 14px; max-width: 1000px; margin: 40px auto 0; }
.ex-book .book-window { width: 100%; }
.ex-tablewrap { max-width: 980px; margin: 8px auto 0; overflow-x: auto; }
.ex-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ex-table th { text-align: left; font: 600 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); padding: 10px 12px; border-bottom: 2px solid var(--ink); }
.ex-table td { padding: 13px 12px; border-bottom: 1px solid var(--border); vertical-align: top; color: var(--ink-2); line-height: 1.5; }
.ex-table td:first-child { color: var(--ink); font-weight: 600; white-space: nowrap; }
.ex-who-head { margin-top: 80px; }
.ex-who { margin-top: 28px; }
.ex-who > div { padding: 22px; border-radius: 20px; background: var(--panel); border: 1px solid var(--border); }
.ex-pill { display: inline-block; font: 600 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; border-radius: 99px; border: 1px dashed var(--ink-3); color: var(--ink-3); margin-bottom: 12px; }

/* Finale: a navy back cover */
.ex-finale { position: relative; overflow: hidden; padding: clamp(100px, 14vw, 180px) 0; text-align: center; color: #eef4fa;
  background: radial-gradient(70% 60% at 50% 30%, #1c4a78 0%, #123657 50%, #0b2440 100%); }
.ex-finale::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(34,207,223,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(34,207,223,.06) 1px, transparent 1px); background-size: 56px 56px; -webkit-mask: radial-gradient(60% 60% at 50% 40%, #000, transparent); mask: radial-gradient(60% 60% at 50% 40%, #000, transparent); }
.ex-finale-in { position: relative; display: grid; justify-items: center; }
.ex-finale-mark .ex-mark-static { width: 92px; color: #eef4fa; margin-bottom: 26px; }
.ex-finale .eyebrow { color: #7dd3fc; }
.ex-finale .story-xl { font-size: clamp(38px, 6vw, 76px); font-weight: 500; letter-spacing: -.02em; max-width: 16ch; text-wrap: balance; }
.ex-finale .story-lede { color: rgba(238,244,250,.78); }
.ex-finale .actions { justify-content: center; margin-top: 36px; }
.ex-finale .btn.ghost { color: #eef4fa; border-color: rgba(238,244,250,.35); }
:root[data-theme="light"] .ex-entry.warn .ex-entry-s { color: #b45309; }
/* Approved product identities (Cetus Orbit Eye v1.0, Nomic Linear v1.0): exact geometry, theme-aware colors.
   Light theme = the approved master colors; dark theme = the white mono structure with the approved accents. */
.mk-cetus .mk-o1 { stop-color: #16D3C7; } .mk-cetus .mk-o2 { stop-color: #CFE3F3; } .mk-cetus .mk-o3 { stop-color: #F5F8FB; }
.mk-cetus .mk-c { fill: #F5F8FB; } .mk-cetus .mk-dash { stroke: #D9EAF9; } .mk-cetus .mk-lens { fill: #F6FAFF; } .mk-cetus .mk-n3 { fill: #D9EAF9; }
:root[data-theme="light"] .mk-cetus .mk-o2 { stop-color: #0E3A5F; } :root[data-theme="light"] .mk-cetus .mk-o3 { stop-color: #081B2B; }
:root[data-theme="light"] .mk-cetus .mk-c { fill: #081B2B; } :root[data-theme="light"] .mk-cetus .mk-n3 { fill: #0E3A5F; }
.mk-nomic .mk-bars { stroke: #E6E9F5; } .mk-nomic .mk-halo { fill: #FFFFFF; }
:root[data-theme="light"] .mk-nomic .mk-bars { stroke: #153654; }
/* Cetus story v2: same story kit as Exedrion, in Cetus's voice (sans, ocean) */
.cx-quote { font-family: var(--sans); font-style: normal; font-weight: 600; letter-spacing: -.02em; font-size: clamp(26px, 3.4vw, 40px); border-left-color: #2dd4bf; }
@media (min-width: 980px) { .ex-triad.cx-quartet { grid-template-columns: repeat(4, 1fr); gap: 32px; } }
.cx-quartet h3 { font-family: var(--sans) !important; font-weight: 700 !important; font-size: clamp(28px, 3vw, 36px) !important; letter-spacing: -.03em; }
.cx-gates h3 { font-size: 19px; letter-spacing: -.01em; margin: 0 0 8px; }
.cx-gates { margin-bottom: 8px; }
.ex-switch.cx-switch { display: flex; flex-wrap: wrap; justify-content: center; width: fit-content; max-width: 100%; margin-inline: auto; left: auto; transform: none; border-radius: 24px; }
.cx-switch button { padding: 10px 18px; }
.cx-who-h { font-size: clamp(28px, 4vw, 44px) !important; }
.finale .cx-finale-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.finale .finale-sea::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,20,32,.55) 0%, rgba(10,24,40,.45) 45%, rgba(8,20,34,.75) 100%); }
/* Exedrion v0.4.14: replayable mark with sound logo; seven-row ledger */
.ex-mark-btn { padding: 0; border: 0; background: none; cursor: pointer; color: inherit; border-radius: 24px; display: grid; place-items: center; }
.ex-mark-btn:focus-visible { outline: 2px solid #2dd4bf; outline-offset: 8px; }
.ex-mark-hint { display: block; margin-top: 14px; font: 500 12px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); text-align: center; }
.ex-ink { flex-direction: column; }
.ex-ledger .ex-sign { border-bottom: 1px dashed var(--border-strong); }
.ex-js .ex-ledger.in .ex-entry:nth-child(7), .ex-js .ex-ledger.in .ex-entry:nth-child(7) .ex-entry-s { transition-delay: 2.3s; animation-delay: 2.3s; }
.ex-ledger .ex-entry:last-child .ex-entry-s { color: #2dd4bf; }
/* Development status: Now / Release / Next */
.status-meta { display: grid; grid-template-columns: auto 1fr; gap: 18px 28px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border); }
.status-meta div, .status-next { display: grid; gap: 4px; min-width: 0; }
.status-meta span, .status-next span { font: 600 11px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.status-meta b { font-size: 16px; font-weight: 600; color: var(--ink); }
.status-meta div:first-child b { color: var(--accent-ink); }
.status-next { margin: 14px 0 0; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
/* Screening room: film and narration in one frame */
.cine { position: relative; max-width: 1120px; margin: clamp(48px, 7vw, 88px) auto 0; border-radius: 28px; overflow: hidden; aspect-ratio: 2.2 / 1; background: #0a121c; border: 1px solid var(--border); box-shadow: 0 30px 80px rgba(0,0,0,.35); color: #f2f6fb; }
.cine-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; transition: opacity .8s ease, transform 1.2s ease; transform: scale(1.03); }
.cine.playing .cine-film { opacity: 1; transform: none; }
.cine-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,12,20,.86) 0%, rgba(6,12,20,.55) 42%, rgba(6,12,20,0) 75%), linear-gradient(0deg, rgba(6,12,20,.8) 0%, rgba(6,12,20,0) 40%); transition: opacity .8s ease; }
.cine.playing .cine-shade { opacity: .55; }
.cine-ui { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; padding: clamp(22px, 4vw, 44px); max-width: 640px; }
.cine-ui .eyebrow { color: #7dd3fc; }
.cine-title { margin: 0; font-size: clamp(24px, 3.4vw, 40px); line-height: 1.08; letter-spacing: -.02em; }
.cine-sub { margin: 0; color: rgba(242,246,251,.78); font-size: 15.5px; line-height: 1.5; max-width: 46ch; }
.cine-bar { display: none; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.cine-ready .cine-bar { display: flex; }
.cine-play { width: 58px; height: 58px; border-radius: 50%; border: 0; background: #f2f6fb; color: #0a121c; cursor: pointer; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.35); transition: transform .2s; }
.cine-play:hover { transform: scale(1.06); }
.cine-play:focus-visible, .cine-tracks button:focus-visible, .cine-progress:focus-visible { outline: 2px solid #7dd3fc; outline-offset: 3px; }
.cine-play svg { width: 22px; height: 22px; }
.cine-play .i-pause, .cine.playing .cine-play .i-play { display: none; }
.cine.playing .cine-play .i-pause { display: block; }
.cine-tracks { display: inline-flex; gap: 4px; padding: 4px; border-radius: 99px; background: rgba(255,255,255,.1); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.cine-tracks button { font: 600 13px var(--sans); padding: 8px 14px; border-radius: 99px; border: 0; background: none; color: rgba(242,246,251,.75); cursor: pointer; }
.cine-tracks button[aria-pressed="true"] { background: #f2f6fb; color: #0a121c; }
.cine-time { font: 500 13px var(--mono); color: rgba(242,246,251,.8); font-variant-numeric: tabular-nums; }
.cine-progress { display: none; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: rgba(255,255,255,.14); cursor: pointer; }
.cine-ready .cine-progress { display: block; }
.cine-progress span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #2dd4bf, #818cf8); transition: width .2s linear; }
.cine-ready audio { display: none; }
.cine audio { position: relative; width: 100%; margin-top: 10px; }
@media (max-width: 760px) { .cine { aspect-ratio: 4 / 5; } .cine-shade { background: linear-gradient(0deg, rgba(6,12,20,.92) 0%, rgba(6,12,20,.55) 55%, rgba(6,12,20,.1) 100%); } .cine-title { font-size: 26px; } }
@media (prefers-reduced-motion: reduce) { .cine-film { transition: none; transform: none; } }
.cine-tracks button { white-space: nowrap; }
/* Per-product gradient: each story page speaks in its own color family.
   Exedrion = teal and green (its brand is navy + teal), no indigo or violet. */
.tinted[data-product="exedrion"] { --accent-grad: linear-gradient(90deg, #22CFDF 0%, #2dd4bf 50%, #6ee7b7 100%); --ex-soft: #5eead4; }
:root[data-theme="light"] .tinted[data-product="exedrion"] { --accent-grad: linear-gradient(90deg, #0e7490 0%, #0d9488 50%, #059669 100%); --ex-soft: #0f766e; }
.tinted[data-product="exedrion"] .ex-route.u.on { background: #22CFDF; border-color: #22CFDF; }
.tinted[data-product="exedrion"] .ex-route.c.on { background: #6ee7b7; border-color: #6ee7b7; }
.tinted[data-product="exedrion"] .ex-finale .eyebrow, .tinted[data-product="exedrion"] .cine-ui .eyebrow { color: #5eead4; }
.cine-progress span { background: var(--accent-grad); }
.tinted[data-product="exedrion"] .cine-play:focus-visible, .tinted[data-product="exedrion"] .cine-tracks button:focus-visible, .tinted[data-product="exedrion"] .cine-progress:focus-visible { outline-color: #5eead4; }
/* Cetus: fused opening and the D2 film band that opens "The discipline" */
.cx-thesis { margin: 12px 0 22px; }
.cx-tap { margin: 18px auto 0; font: 500 13px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); max-width: 60ch; }
.story-wake .story-meta { text-align: center; margin-top: 28px; }
.story-wake .cine { margin-top: clamp(36px, 5vw, 56px); }
.cx-band { position: relative; max-width: 1120px; margin: 0 auto; border-radius: 28px; overflow: hidden; aspect-ratio: 2.4 / 1; background: #0a121c; border: 1px solid var(--border); color: #f2f6fb; }
.cx-band video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cx-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,12,20,.85) 0%, rgba(6,12,20,.45) 45%, rgba(6,12,20,0) 75%); }
.cx-band-text { position: absolute; inset: auto auto 0 0; z-index: 1; padding: clamp(22px, 4vw, 48px); max-width: 560px; display: grid; gap: 10px; }
.cx-band-text .eyebrow { color: #7dd3fc; }
.cx-band-text .story-h { color: #f2f6fb; margin: 0; }
.cx-band-text p { margin: 0; color: rgba(242,246,251,.8); font-size: 16px; line-height: 1.5; }
.cx-band + .cx-quartet { margin-top: 48px; }
@media (max-width: 760px) { .cx-band { aspect-ratio: 4 / 5; } .cx-band::after { background: linear-gradient(0deg, rgba(6,12,20,.9) 0%, rgba(6,12,20,.4) 60%, rgba(6,12,20,.1) 100%); } }
