/* Nightwave — Flow. Opt-in theme: app-owned pages retain their own design. */
body.nightwave {
  --ink:#f4f0f3;--ink-2:#bcb7c1;--bg:#101114;--surface:#18191f;--surface-muted:#202127;
  --primary:#e1a6cb;--primary-dark:#e1a6cb;--border:#39383f;--border-strong:#62606b;
  --studio-paper:#101114;--studio-ink:#f4f0f3;--studio-muted:#bcb7c1;--studio-line:#39383f;--studio-pink:#e1a6cb;
  --muted:#bcb7c1;--line:#39383f;--pink:#e1a6cb;--paper:#101114;--soft:#1b1c22;
  background:#101114;color:#f4f0f3;color-scheme:dark;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  margin:0;line-height:1.65;-webkit-font-smoothing:antialiased;
}
.nightwave * { box-sizing:border-box; }
.nightwave h1,.nightwave h2,.nightwave h3 { color:var(--ink); }
.nightwave a { text-underline-offset:4px; }
.nightwave a:focus-visible,.nightwave button:focus-visible,.nightwave [tabindex]:focus-visible { outline:2px solid #f9cce7;outline-offset:5px;border-radius:3px; }
.nightwave [id] { scroll-margin-top:8rem; }
.nw-shell { width:min(100% - 96px,1184px);margin-inline:auto; }
.nw-header { position:sticky;top:0;z-index:60;background:rgba(16,17,20,.94);border-bottom:1px solid #ffffff12;backdrop-filter:blur(20px); }
.nw-nav { min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:32px; }
.nw-brand { display:inline-flex;align-items:center;gap:10px;font-size:23px;font-weight:500;letter-spacing:.06em;color:#f4f0f3;text-decoration:none;flex-shrink:0; }
.nw-brand img { width:32px;height:32px; }
.nw-nav nav { display:flex;align-items:center;gap:28px; }
.nw-nav nav a { font-size:13px;color:#cbc5ce;text-decoration:none;padding:10px 0; }
.nw-nav nav a:hover,.nw-nav nav a[aria-current] { color:#f0badb; }
.nw-sr { position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.nw-hero { position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid #ffffff12; }
.nw-hero::before { content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,17,20,.15),transparent 80%),url('/images/nightwave-flow.webp') center/cover no-repeat; }
.nw-hero .nw-shell { padding-top:clamp(72px,8vw,112px);padding-bottom:clamp(144px,15vw,214px); }
.nw-eyebrow { color:#e1a6cb;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin:0 0 24px; }
.nw-hero h1 { font-size:clamp(44px,5.3vw,76px);font-weight:600;letter-spacing:-.05em;line-height:1.08;margin:0 0 25px;max-width:950px;text-wrap:balance; }
.nw-lead { font-size:clamp(17px,1.7vw,21px);line-height:1.65;max-width:610px;margin:0;color:#e2dce4; }
.nw-actions { display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:30px; }
.nw-button,.nightwave .studio-button,.nightwave .button.primary { background:#292a30;border:1px solid #74717c;color:#f4f0f3;border-radius:12px;padding:13px 23px;display:inline-flex;gap:22px;align-items:center;font-size:14px;font-weight:600;text-decoration:none;min-height:48px;transform:none; }
.nw-button:hover,.nightwave .studio-button:hover,.nightwave .button.primary:hover { background:#3a3b43;border-color:#96919f;color:#ffffff;transform:none; }
.nw-actions>a:not(.nw-button) { color:#edb7d8;font-size:14px;text-decoration:none; }
.nw-section { padding-block:64px; }
.nw-section-head { display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;margin-bottom:40px; }
.nw-section h2 { font-size:clamp(27px,3vw,36px);font-weight:600;letter-spacing:-.035em;line-height:1.2;margin:0; }
.nw-section-head p { color:#bcb7c1;margin:0;font-size:15px;max-width:510px; }
.nw-expertise { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px; }
.nw-expertise article { display:grid;grid-template-columns:32px 1fr;gap:20px; }
.nw-expertise article+article { border-left:1px solid #39383f;padding-left:28px; }
.nw-expertise svg { width:28px;height:28px;stroke:#dba2c3;fill:none;stroke-width:1.4; }
.nw-expertise h3 { font-size:17px;font-weight:600;margin:0 0 9px;letter-spacing:-.015em; }
.nw-expertise p { font-size:14px;line-height:1.75;color:#bcb7c1;margin:0; }
.nw-work { border-top:1px solid #39383f;padding-top:32px; }
.nw-work h2 { font-size:23px;margin-bottom:24px; }
.nw-work-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px; }
.nw-work-card { position:relative;overflow:hidden;background:linear-gradient(90deg,#1a1a22f5,#1a1a22c9),url('/images/nightwave-flow.webp') center/cover;border:1px solid #45424c;border-radius:14px;padding:26px;text-decoration:none;color:#f4f0f3; }
.nw-work-card:hover { border-color:#b984a3; }
.nw-work-card h3 { margin:0 0 9px;font-size:19px; }.nw-work-card p { color:#c9c2cd;font-size:13px;margin:0;max-width:26ch; }
.nw-work-card>span { position:absolute;right:24px;top:28px;color:#edb7d8; }
.nw-about { border-top:1px solid #39383f;display:grid;grid-template-columns:1fr 1.4fr;gap:70px;padding-block:40px 64px; }
.nw-about h2 { font-size:23px; }.nw-about p { margin:0;color:#bcb7c1;font-size:15px; }.nw-about a { color:#e1a6cb; }
.nw-footer { background:#101114;border-top:1px solid #39383f;padding:48px 0 24px; }
.nw-contact { display:flex;align-items:center;justify-content:space-between;gap:28px; }
.nw-contact h2 { font-size:32px;letter-spacing:-.035em;line-height:1.2;margin:0 0 12px; }
.nw-contact p { color:#bcb7c1;font-size:14px;margin:0; }
.nw-email { color:#edb7d8;font-size:clamp(17px,2vw,22px);text-decoration:none;white-space:nowrap; }
.nw-social { display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:30px; }
.nw-social a { color:#d7d0dc;font-size:13px;text-decoration:none;padding:7px 0; }
.nw-colophon { border-top:1px solid #39383f;margin-top:32px;padding-top:24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;color:#aaa4af;font-size:11px; }
.nw-colophon nav { display:flex;gap:16px;flex-wrap:wrap; }.nw-colophon a { color:inherit; }
/* Reading surfaces: quiet, opaque backgrounds keep long-form text legible. */
.nightwave .blog-hero,.nightwave .article-header,.nightwave .catalog-hero { background:linear-gradient(90deg,#101114f5,#101114d9),url('/images/nightwave-flow.webp') center/cover; }
.nightwave .article-body { color:#d4ced8; }.nightwave .article-body pre { background:#1c1d24; }
.nightwave .article-body figure.wide { margin-inline:0; }
.nightwave .blog-card-image,.nightwave .article-hero img,.nightwave .journal-signup { border-radius:14px; }
.nightwave .tech-heading { background:linear-gradient(90deg,#101114f5,#101114cb),url('/images/nightwave-flow.webp') right center/cover;padding-top:32px; }
.nightwave .tech-heading,.nightwave .tech-cards>section,.nightwave .tech-content th,.nightwave .tech-content td { border-color:#39383f; }
.nightwave .tech-heading>p:last-child,.nightwave .tech-breadcrumb,.nightwave .tech-note,.nightwave .tech-tag { color:#bcb7c1; }
.nightwave .tech-content a,.nightwave .tech-breadcrumb a { color:#e1a6cb; }.nightwave .tech-content .studio-button { color:#f4f0f3; }
.nightwave .tech-content :not(pre)>code { background:#26232d;color:#ecd7e7; }
.nightwave .tech-cards>section { background:#18191f; }
.nightwave .tech-content pre { background:#1c1d24; }
.nightwave .tech-content table { display:block;overflow:auto; }
.nightwave .catalog-section { background:#101114; }.nightwave .catalog-card { background:#18191f;border-color:#39383f;border-radius:16px;overflow:hidden; }
.nightwave .catalog-copy p,.nightwave .catalog-intro p { color:#bcb7c1; }
.nightwave .catalog-status.live { color:#a7d8bd; }.nightwave .catalog-belief { background:#1b1820; }
.nightwave .catalog-belief blockquote { color:#f4f0f3; }.nightwave .catalog-actions a { color:#e1a6cb; }
.nightwave .catalog-hero h1 em { color:#e1a6cb; }
/* Traversal keeps its technical diagrams, examples, downloads and controls. */
.nightwave .run-sheet { background:#1b1c22; }.nightwave .reuse { color:#c7c0cb; }
.nightwave .hero-art img { border-radius:14px; }
.nightwave .syntax .k,.nightwave .syntax .kn { color:#f9a8d4; }.nightwave .syntax .nb,.nightwave .syntax .nf,.nightwave .syntax .nc { color:#7dd3fc; }.nightwave .syntax .s,.nightwave .syntax .s1,.nightwave .syntax .s2 { color:#a7f3d0; }.nightwave .syntax .mi,.nightwave .syntax .mf,.nightwave .syntax .na { color:#fcd34d; }.nightwave .syntax .o,.nightwave .syntax .p { color:#cbd5e1; }.nightwave .syntax .c1 { color:#aaaab7; }
.nightwave .skip-link { background:#d49abb;color:#19131b; }
@media(min-width:800px) and (prefers-reduced-motion:no-preference) { .nw-hero::before { animation:nw-drift 24s ease-in-out infinite alternate;transform-origin:75% 65%; } }
@keyframes nw-drift { from { transform:scale(1); } to { transform:scale(1.025); } }
@media(max-width:900px) { .nw-shell { width:calc(100% - 48px); }.nw-nav nav { gap:18px; }.nw-expertise { gap:20px; }.nw-expertise article { grid-template-columns:1fr;gap:12px; }.nw-expertise article+article { padding-left:20px; }.nw-section-head,.nw-about { gap:35px; } }
@media(max-width:650px) {
 .nw-shell { width:calc(100% - 40px); }.nw-nav { padding-block:15px;gap:10px;flex-wrap:wrap;min-height:unset; }.nw-brand { font-size:20px; }.nw-brand img { width:27px;height:27px; }
 .nw-nav nav { width:100%;justify-content:space-between;gap:8px;flex-wrap:wrap; }.nw-nav nav a { font-size:11px;padding-block:7px; }
 .nw-hero .nw-shell { padding-top:58px;padding-bottom:148px; }.nw-hero::before { background-position:65% center; }.nw-hero h1 { max-width:11ch;font-size:clamp(42px,10vw,58px); }.nw-lead { font-size:17px;max-width:34ch; }
 .nw-eyebrow { max-width:28ch;line-height:1.9;letter-spacing:.16em; }.nw-actions { gap:20px; }.nw-actions>a:not(.nw-button) { display:block; }
 .nw-section { padding-block:40px; }.nw-section-head,.nw-expertise,.nw-work-grid,.nw-about { grid-template-columns:1fr;gap:26px; }
 .nw-expertise article { grid-template-columns:28px 1fr;gap:18px; }.nw-expertise article+article { border-left:0;border-top:1px solid #39383f;padding:24px 0 0; }.nw-work-card { padding:24px; }.nw-about { padding-block:32px 40px; }
 .nw-contact { flex-direction:column;align-items:flex-start;gap:24px; }.nw-footer { padding-top:36px; }.nw-colophon { flex-direction:column;gap:18px; }
 .nightwave .tech-breadcrumb { margin-bottom:1.5rem; }.nightwave .article-header { padding-top:3rem; }.nightwave .article-header h1 { font-size:clamp(32px,9vw,48px); }.nightwave .article { padding-top:2.5rem; }.nightwave .blog-card { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.nightwave *, .nightwave *::before { animation:none!important;scroll-behavior:auto!important; } }
/* Keep the shared brand accents and browser canvas consistent across page families. */
html:has(body.nightwave) { background:#101114;color-scheme:dark; }
.nightwave .catalog-hero .studio-eyebrow,.nightwave .catalog-platform { color:#e1a6cb; }
.nightwave .catalog-art:not(.atlas) { background:linear-gradient(145deg,#28242e,#1a1b21); }
.nightwave .hero.wrap { background:linear-gradient(90deg,#101114f5,#101114e8),url('/images/nightwave-flow.webp') right center/cover; }
@media(max-width:650px) { .nw-hero::before { background-image:linear-gradient(180deg,#101114 0%,#101114cc 65%,#10111400 95%),url('/images/nightwave-flow.webp'); } }
.nightwave .tech-cards>section { border-radius:14px; }
.nw-resources { display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px;font-size:12px; }.nw-resources a { color:#bcb7c1; }
@media(max-width:360px) { .nw-nav nav { display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px; }.nw-nav nav a { font-size:12px; } }
