/* =========================================================
   NUMIDIAN — Design System (site stylesheet)
   Ported from the Brand & Design System v1 and extended for
   the public site. One source of truth for tokens + components.
   Palette: warm paper · ink · terracotta (Numidian clay)
   Type: Schibsted Grotesk · Hanken Grotesk · JetBrains Mono
   ========================================================= */

:root{
  /* Surfaces */
  --paper:        #F6F3EC;
  --paper-raised: #FCFAF6;
  --paper-sunk:   #EFEADF;
  --ink-surface:  #1B1714;
  --ink-surface-2:#241F1A;

  /* Ink scale */
  --ink:   #1B1714;
  --ink-2: #574E44;
  --ink-3: #8C8377;
  --ink-4: #B4ABA0;

  /* Lines */
  --line:        #E4DCCD;
  --line-strong: #D6CBB7;
  --line-ink:    rgba(255,255,255,.12);

  /* Accent — terracotta (primary) */
  --clay:        #B4502A;   /* oklch(.56 .12 42) */
  --clay-deep:   #8E3D20;
  --clay-bright: #C75F37;
  --clay-tint:   #ECD7C9;
  --clay-wash:   #F4E6DC;

  /* Sand (neutral warm fill) */
  --sand:      #E9DFCB;
  --sand-deep: #DBCDAE;

  /* Heritage green — supporting / positive states */
  --green:      #1E7D3A;
  --green-deep: #145C2A;
  --green-wash: #E2F0E6;

  /* Radii */
  --r-xs: 4px;
  --r-sm: 7px;
  --r-md: 11px;
  --r-lg: 18px;
  --r-xl: 26px;

  /* Type */
  --display: "Schibsted Grotesk", system-ui, sans-serif;
  --body:    "Hanken Grotesk", system-ui, sans-serif;
  --mono:    "JetBrains Mono", ui-monospace, monospace;

  --shadow-sm: 0 1px 2px rgba(27,23,20,.05), 0 1px 1px rgba(27,23,20,.04);
  --shadow-md: 0 4px 14px rgba(27,23,20,.07), 0 1px 3px rgba(27,23,20,.05);
  --shadow-lg: 0 24px 60px -18px rgba(27,23,20,.22);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-size:17px;
  line-height:1.55;
}
img{ display:block; max-width:100%; }
a{ color:var(--clay-deep); }
::selection{ background:var(--clay); color:#fff; }

/* ---------- Layout ---------- */
.wrap{ max-width:1200px; margin:0 auto; padding:0 40px; }
.wrap-narrow{ max-width:860px; margin:0 auto; padding:0 40px; }
.section{ padding:96px 0; border-top:1px solid var(--line); }
.section.tight{ padding:64px 0; }
.section.dark{ background:var(--ink-surface); color:var(--paper); border-color:#2c261f; }
.section.sunk{ background:var(--paper-sunk); }
@media(max-width:720px){ .wrap,.wrap-narrow{ padding:0 22px; } .section{ padding:64px 0; } }

/* ---------- Type primitives ---------- */
.eyebrow{
  font-family:var(--mono); font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--clay);
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--clay); display:inline-block; }
.eyebrow.muted{ color:var(--ink-3); }
.eyebrow.muted::before{ background:var(--ink-4); }
.section.dark .eyebrow{ color:var(--clay-bright); }

h1,h2,h3,h4{ font-family:var(--display); font-weight:700; letter-spacing:-.02em; line-height:1.04; }
.section-head{ max-width:760px; margin-bottom:52px; }
.section-head h2{ font-size:clamp(32px,4.4vw,52px); margin:20px 0 18px; }
.lede{ font-size:20px; line-height:1.55; color:var(--ink-2); max-width:62ch; }
.lede strong{ color:var(--ink); font-weight:600; }
.section.dark .lede{ color:var(--ink-4); }
.section.dark .lede strong{ color:var(--paper); }
.kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); }

/* ---------- Top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(246,243,236,.82);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.topbar .brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink); }
.topbar .brand img{ height:30px; width:auto; }
.topbar .brand b{ font-family:var(--display); font-weight:700; font-size:18px; letter-spacing:-.01em; }
.topbar .brand b .thin{ font-weight:500; }
.topnav{ display:flex; gap:28px; align-items:center; }
.topnav a{
  font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); text-decoration:none; transition:color .18s; white-space:nowrap;
}
.topnav a:hover{ color:var(--ink); }
.topnav a.active{ color:var(--clay); }
.topnav a.cta{ color:#fff; background:var(--clay); padding:7px 14px; border-radius:var(--r-sm); letter-spacing:.06em; }
.topnav a.cta:hover{ background:var(--clay-bright); color:#fff; }
.menu-btn{ display:none; background:none; border:1px solid var(--line-strong); border-radius:var(--r-sm); padding:7px 10px; cursor:pointer; font-family:var(--mono); font-size:12px; color:var(--ink-2); }
@media(max-width:880px){
  .topnav{ position:fixed; inset:64px 0 auto 0; flex-direction:column; gap:0; background:var(--paper-raised); border-bottom:1px solid var(--line); padding:8px 0; display:none; }
  .topnav.open{ display:flex; }
  .topnav a{ padding:14px 26px; font-size:13px; border-bottom:1px solid var(--line); }
  .topnav a.cta{ margin:10px 22px; text-align:center; justify-content:center; }
  .menu-btn{ display:inline-block; }
}

/* ---------- Hero (landing) ---------- */
.hero{ position:relative; overflow:hidden; padding:118px 0 0; }
.hero .wrap{ position:relative; z-index:2; }
.hero-mark{ width:124px; margin-bottom:36px; filter:drop-shadow(0 10px 30px rgba(27,23,20,.12)); animation:rise .8s cubic-bezier(.2,.7,.2,1) both; }
.hero h1{ font-size:clamp(60px,12vw,158px); letter-spacing:-.045em; line-height:.92; animation:rise .8s .06s cubic-bezier(.2,.7,.2,1) both; }
.hero .sub{ margin-top:26px; max-width:56ch; font-size:21px; color:var(--ink-2); animation:rise .8s .14s cubic-bezier(.2,.7,.2,1) both; }
.hero .meta{
  margin-top:42px; display:flex; flex-wrap:wrap; gap:14px 38px;
  font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
  padding-bottom:118px; animation:rise .8s .2s cubic-bezier(.2,.7,.2,1) both;
}
.hero .meta span{ display:flex; align-items:center; gap:9px; }
.hero .meta .dot{ width:6px; height:6px; border-radius:50%; background:var(--clay); }
/* dune ridges */
.dunes{ position:absolute; inset:auto 0 0 0; height:340px; z-index:1; pointer-events:none; }
.dune{ position:absolute; bottom:0; }
.dune.a{ left:-6%; width:62%; height:300px; background:var(--sand); clip-path:polygon(0 100%,46% 8%,100% 100%); opacity:.55; }
.dune.b{ right:-8%; width:70%; height:240px; background:var(--sand-deep); clip-path:polygon(0 100%,58% 22%,100% 100%); opacity:.45; }
.dune.c{ left:24%; width:52%; height:360px; background:var(--clay-wash); clip-path:polygon(0 100%,50% 0,100% 100%); opacity:.5; }
@keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce){ *{ animation:none !important; } }

/* ---------- Page hero (sub-pages) ---------- */
.page-hero{ position:relative; padding:84px 0 56px; border-bottom:1px solid var(--line); overflow:hidden; }
.page-hero::after{ content:""; position:absolute; right:-60px; bottom:-120px; width:420px; height:300px; background:var(--clay-wash); clip-path:polygon(0 100%,50% 0,100% 100%); opacity:.5; z-index:0; }
.page-hero .wrap{ position:relative; z-index:1; }
.page-hero h1{ font-size:clamp(40px,6vw,76px); letter-spacing:-.04em; margin:18px 0 18px; }
.page-hero .lede{ font-size:21px; }
.breadcrumb{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.breadcrumb a{ color:var(--ink-3); text-decoration:none; }
.breadcrumb a:hover{ color:var(--clay); }

/* ---------- Pillars (tech / management / VC) ---------- */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pillar{ border:1px solid var(--line); border-radius:var(--r-lg); background:var(--paper-raised); padding:34px; box-shadow:var(--shadow-sm); }
.pillar .ic{ width:40px; height:40px; border-radius:var(--r-sm); display:grid; place-items:center; background:var(--clay-wash); color:var(--clay-deep); margin-bottom:20px; }
.pillar .ic svg{ width:22px; height:22px; }
.pillar h3{ font-size:21px; margin-bottom:8px; }
.pillar p{ color:var(--ink-2); font-size:15.5px; }
@media(max-width:820px){ .pillars{ grid-template-columns:1fr; } }

/* ---------- Audience gateways ---------- */
.gateways{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.gateway{
  position:relative; display:flex; flex-direction:column; gap:14px;
  border:1px solid var(--line); border-radius:var(--r-lg); background:var(--paper-raised);
  padding:34px 32px; text-decoration:none; color:var(--ink); box-shadow:var(--shadow-sm);
  transition:transform .18s, box-shadow .18s, border-color .18s; overflow:hidden; min-height:188px;
}
.gateway::before{ content:""; position:absolute; right:-40px; bottom:-70px; width:200px; height:150px; background:var(--clay-wash); clip-path:polygon(0 100%,50% 0,100% 100%); opacity:0; transition:opacity .25s; }
.gateway:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }
.gateway:hover::before{ opacity:.55; }
.gateway .g-top{ display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; }
.gateway .g-num{ font-family:var(--mono); font-size:12px; letter-spacing:.16em; color:var(--clay); }
.gateway .arr{ font-family:var(--mono); color:var(--ink-3); transition:transform .2s, color .2s; }
.gateway:hover .arr{ transform:translateX(5px); color:var(--clay); }
.gateway h3{ font-size:26px; letter-spacing:-.025em; position:relative; z-index:1; }
.gateway p{ color:var(--ink-2); font-size:15.5px; position:relative; z-index:1; max-width:46ch; }
.gateway .g-tags{ margin-top:auto; display:flex; gap:8px; flex-wrap:wrap; position:relative; z-index:1; }
.gateway.feature{ grid-column:1 / -1; background:var(--ink-surface); color:var(--paper); border-color:#2c261f; }
.gateway.feature h3{ color:var(--paper); font-size:30px; }
.gateway.feature p{ color:var(--ink-4); }
.gateway.feature .g-num{ color:var(--clay-bright); }
.gateway.feature .arr{ color:var(--ink-4); }
.gateway.feature:hover .arr{ color:var(--clay-bright); }
@media(max-width:760px){ .gateways{ grid-template-columns:1fr; } }

/* ---------- Buttons ---------- */
.btn{
  font-family:var(--body); font-weight:600; font-size:15px;
  border-radius:var(--r-sm); padding:12px 22px; border:1px solid transparent; cursor:pointer;
  display:inline-flex; align-items:center; gap:9px; transition:transform .12s, background .18s, box-shadow .18s, border-color .18s;
  text-decoration:none; white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--ink); color:var(--paper); }
.btn-primary:hover{ background:#000; color:var(--paper); }
.btn-clay{ background:var(--clay); color:#fff; box-shadow:0 1px 0 var(--clay-deep) inset, var(--shadow-sm); }
.btn-clay:hover{ background:var(--clay-bright); color:#fff; }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn-ghost:hover{ border-color:var(--ink); background:var(--paper-sunk); }
.btn-soft{ background:var(--clay-wash); color:var(--clay-deep); }
.btn-soft:hover{ background:var(--clay-tint); }
.btn .arr{ transition:transform .18s; }
.btn:hover .arr{ transform:translateX(3px); }
.section.dark .btn-ghost{ color:var(--paper); border-color:var(--line-ink); }
.section.dark .btn-ghost:hover{ background:var(--ink-surface-2); border-color:var(--ink-4); }

/* ---------- Badges ---------- */
.badge{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  padding:5px 10px; border-radius:100px; border:1px solid var(--line-strong); color:var(--ink-2); background:var(--paper);
}
.badge .d{ width:6px; height:6px; border-radius:50%; background:var(--ink-3); }
.badge.clay{ background:var(--clay-wash); border-color:var(--clay-tint); color:var(--clay-deep); }
.badge.clay .d{ background:var(--clay); }
.badge.green{ background:var(--green-wash); border-color:#C4E0CB; color:var(--green-deep); }
.badge.green .d{ background:var(--green); }
.badge.ink{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.badge.ink .d{ background:var(--clay-bright); }
.badge.blue{ background:#E3ECF5; border-color:#C8DAEC; color:#23507e; }
.badge.blue .d{ background:#3f7fc4; }

/* pill (filter / tag) */
.pill{
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 11px; border-radius:100px; border:1px solid var(--line-strong);
  color:var(--ink-2); background:var(--paper); cursor:pointer; transition:all .16s; user-select:none;
}
.pill:hover{ border-color:var(--ink-3); color:var(--ink); }
.pill.on{ background:var(--ink); border-color:var(--ink); color:var(--paper); }

/* ---------- Forms ---------- */
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.field label{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); }
.input, .textarea, select.input{
  font-family:var(--body); font-size:15px; padding:12px 14px; border-radius:var(--r-sm);
  border:1px solid var(--line-strong); background:var(--paper); color:var(--ink); width:100%;
  transition:border-color .16s, box-shadow .16s;
}
.textarea{ min-height:120px; resize:vertical; }
.input::placeholder, .textarea::placeholder{ color:var(--ink-4); }
.input:focus, .textarea:focus, select.input:focus{ outline:none; border-color:var(--clay); box-shadow:0 0 0 3px var(--clay-wash); }
.form-card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--r-lg); padding:38px; box-shadow:var(--shadow-sm); }
.form-note{ font-size:13px; color:var(--ink-3); margin-top:6px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:560px){ .form-row{ grid-template-columns:1fr; } }

/* ---------- Card / generic ---------- */
.card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--r-lg); padding:32px; box-shadow:var(--shadow-sm); }
.note{ background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--r-lg); padding:34px; box-shadow:var(--shadow-sm); }
.note-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.note h4{ font-size:18px; margin-bottom:8px; letter-spacing:-.01em; font-family:var(--display); }
.note p{ color:var(--ink-2); font-size:15.5px; }
@media(max-width:720px){ .note-grid{ grid-template-columns:1fr; } }

/* stat strip */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.stat-card{ border:1px solid var(--line); border-radius:var(--r-lg); background:var(--paper-raised); padding:26px; box-shadow:var(--shadow-sm); }
.stat-card .big{ font-family:var(--display); font-weight:700; font-size:38px; letter-spacing:-.03em; line-height:1; color:var(--clay-deep); }
.stat-card .lab{ color:var(--ink-2); font-size:14px; margin-top:10px; }
.section.dark .stat-card{ background:var(--ink-surface-2); border-color:#2c261f; }
.section.dark .stat-card .big{ color:var(--clay-bright); }
.section.dark .stat-card .lab{ color:var(--ink-4); }
@media(max-width:820px){ .stats{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Product catalog ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin-bottom:14px; }
.filters .flab{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-right:6px; }
.cat-count{ font-family:var(--mono); font-size:12px; color:var(--ink-3); margin-bottom:34px; }
.cat-group{ margin-bottom:56px; }
.cat-group-head{ display:flex; align-items:baseline; gap:14px; padding-bottom:14px; margin-bottom:24px; border-bottom:1px solid var(--line-strong); }
.cat-group-head .n{ font-family:var(--mono); font-size:12px; color:var(--clay); letter-spacing:.12em; }
.cat-group-head h3{ font-size:24px; letter-spacing:-.02em; }
.cat-group-head .blurb{ color:var(--ink-3); font-size:14px; margin-left:auto; max-width:42ch; text-align:right; }
.products{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.product{
  display:flex; flex-direction:column; gap:13px; border:1px solid var(--line); border-radius:var(--r-md);
  background:var(--paper); padding:24px; box-shadow:var(--shadow-sm); transition:transform .16s, box-shadow .16s, border-color .16s;
}
.product:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }
.product .p-top{ display:flex; align-items:center; gap:10px; }
.product .p-name{ font-family:var(--display); font-weight:700; font-size:19px; letter-spacing:-.02em; }
.product .p-name .ai{ color:var(--clay); }
.product .p-tag{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--clay-deep); }
.product .p-desc{ font-size:14.5px; color:var(--ink-2); }
.product .p-feat{ font-size:13px; color:var(--ink-3); border-top:1px solid var(--line); padding-top:12px; margin-top:2px; }
.product .p-buyers{ display:flex; gap:6px; flex-wrap:wrap; margin-top:auto; padding-top:6px; }
.stage{ margin-left:auto; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:4px 8px; border-radius:100px; white-space:nowrap; }
.stage.live{ background:var(--green-wash); color:var(--green-deep); }
.stage.building{ background:#E7EEF6; color:#23507e; }
.stage.spec{ background:#FBEFD7; color:#8a6d1e; }
.stage.concept{ background:var(--paper-sunk); color:var(--ink-3); }
.stage.research{ background:#EFE7F2; color:#6d3f7a; }
.stage.service{ background:var(--clay-wash); color:var(--clay-deep); }
.stage.tool{ background:var(--paper-sunk); color:var(--ink-2); }
@media(max-width:980px){ .products{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:620px){ .products{ grid-template-columns:1fr; } .cat-group-head .blurb{ display:none; } }

/* ---------- CTA band ---------- */
.cta{ background:var(--ink-surface); color:var(--paper); border-radius:var(--r-xl); padding:64px 56px; position:relative; overflow:hidden; }
.cta::after{ content:""; position:absolute; right:-30px; bottom:-90px; width:360px; height:260px; background:var(--clay); clip-path:polygon(0 100%,50% 0,100% 100%); opacity:.22; }
.cta .wrap-c{ position:relative; z-index:1; max-width:620px; }
.cta h2{ font-size:clamp(28px,3.6vw,42px); margin-bottom:16px; }
.cta p{ color:var(--ink-4); font-size:18px; margin-bottom:28px; }
.cta .row{ display:flex; gap:12px; flex-wrap:wrap; }
@media(max-width:620px){ .cta{ padding:44px 28px; } }

/* ---------- Prose (rendered markdown) ---------- */
.prose{ max-width:72ch; font-size:17px; }
.prose.wide{ max-width:none; }
.prose > *+*{ margin-top:1.1em; }
.prose h2{ font-size:30px; margin:1.6em 0 .1em; letter-spacing:-.02em; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:21px; margin:1.5em 0 .1em; }
.prose h4{ font-size:16px; font-family:var(--mono); font-weight:500; text-transform:uppercase; letter-spacing:.1em; color:var(--clay); margin:1.4em 0 .1em; }
.prose p{ color:var(--ink-2); }
.prose strong{ color:var(--ink); font-weight:600; }
.prose a{ color:var(--clay-deep); text-decoration:underline; text-decoration-color:var(--clay-tint); text-underline-offset:3px; }
.prose a:hover{ text-decoration-color:var(--clay); }
.prose ul, .prose ol{ padding-left:24px; color:var(--ink-2); }
.prose li{ margin:.35em 0; }
.prose li::marker{ color:var(--clay); }
.prose blockquote{ border-left:3px solid var(--clay); padding:.4em 0 .4em 18px; color:var(--ink-2); font-size:19px; font-style:italic; }
.prose blockquote p{ color:var(--ink-2); }
.prose code{ font-family:var(--mono); background:var(--paper-sunk); padding:.12em .42em; border-radius:5px; font-size:.86em; }
.prose pre{ background:var(--ink-surface); color:var(--paper); border-radius:var(--r-md); padding:18px 20px; overflow:auto; }
.prose pre code{ background:none; color:inherit; padding:0; font-size:13.5px; }
.prose hr{ border:0; border-top:1px solid var(--line); margin:2em 0; }
.prose table{ border-collapse:collapse; width:100%; font-size:14.5px; }
.prose th, .prose td{ border:1px solid var(--line); padding:11px 14px; text-align:left; vertical-align:top; }
.prose th{ background:var(--paper-sunk); font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); }
.prose tr:nth-child(even) td{ background:var(--paper-raised); }
.prose .wikilink{ font-family:var(--mono); font-size:.84em; color:var(--clay-deep); text-decoration:none; border-bottom:1px dotted var(--clay-tint); }
.prose .lead-para{ font-size:20px; color:var(--ink); }

/* layout helper for content + aside */
.content-grid{ display:grid; grid-template-columns:1fr 300px; gap:56px; align-items:start; }
.aside{ position:sticky; top:90px; }
.aside .box{ border:1px solid var(--line); border-radius:var(--r-lg); background:var(--paper-raised); padding:24px; box-shadow:var(--shadow-sm); }
.aside .box h4{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:14px; }
.aside .box ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.aside .box a{ text-decoration:none; color:var(--ink); font-size:15px; display:flex; gap:8px; align-items:center; }
.aside .box a:hover{ color:var(--clay); }
@media(max-width:920px){ .content-grid{ grid-template-columns:1fr; } .aside{ position:static; } }

/* ---------- Provenance footer ("no childless data") ---------- */
.sources{ border-top:1px solid var(--line); padding:28px 0; }
.sources .lab{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.sources .chips{ display:flex; flex-wrap:wrap; gap:8px; }
.sources .chip{ font-family:var(--mono); font-size:11.5px; color:var(--ink-2); background:var(--paper-sunk); border:1px solid var(--line); border-radius:var(--r-sm); padding:5px 10px; text-decoration:none; }
.sources .chip:hover{ border-color:var(--clay-tint); color:var(--clay-deep); }
.sources .chip .ext{ color:var(--ink-4); }

/* ---------- Footer ---------- */
.foot{ background:var(--ink-surface); color:var(--paper); padding:72px 0 56px; }
.foot .wrap{ display:flex; flex-direction:column; gap:32px; }
.foot .ft-top{ display:flex; align-items:center; gap:16px; }
.foot .ft-top img{ height:42px; }
.foot .ft-top .wordmark{ font-family:var(--display); color:var(--paper); font-size:30px; font-weight:700; letter-spacing:-.03em; }
.foot .ft-top .wordmark .thin{ font-weight:500; }
.foot .ft-cols{ display:flex; flex-wrap:wrap; gap:40px 64px; }
.foot .ft-col h5{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-4); margin-bottom:14px; }
.foot .ft-col a{ display:block; color:var(--paper); text-decoration:none; font-size:15px; margin:8px 0; opacity:.85; }
.foot .ft-col a:hover{ opacity:1; color:var(--clay-bright); }
.foot .ln{ height:1px; background:var(--line-ink); }
.foot .ft-meta{ display:flex; flex-wrap:wrap; gap:14px 40px; font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4); }

/* misc */
.divider-label{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin:0 0 16px; }
.two{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.three{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:760px){ .two,.three{ grid-template-columns:1fr; } }
.stack-lg{ display:flex; flex-direction:column; gap:44px; }
.stack-md{ display:flex; flex-direction:column; gap:24px; }
.center{ text-align:center; }
.mt-0{ margin-top:0; }
.dz{ color:var(--clay); }

/* ===== Public landing: minimal header, hero CTAs, gated rooms ===== */
.topbar.public .pub-cta{ display:flex; align-items:center; gap:16px; }
.topbar.public .pub-cta .signin{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); text-decoration:none; }
.topbar.public .pub-cta .signin:hover{ color:var(--ink); }
.btn.sm{ padding:9px 16px; font-size:13.5px; }
.hero .cta-row{ margin-top:32px; display:flex; gap:12px; flex-wrap:wrap; animation:rise .8s .18s cubic-bezier(.2,.7,.2,1) both; }

.rooms{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.room{ position:relative; display:flex; flex-direction:column; gap:11px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--paper-raised); padding:28px 30px; text-decoration:none; color:var(--ink); box-shadow:var(--shadow-sm); transition:transform .18s, box-shadow .18s, border-color .18s; min-height:172px; overflow:hidden; }
.room::after{ content:""; position:absolute; right:-40px; bottom:-70px; width:190px; height:140px; background:var(--clay-wash); clip-path:polygon(0 100%,50% 0,100% 100%); opacity:0; transition:opacity .25s; }
.room:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }
.room:hover::after{ opacity:.5; }
.room .r-top{ display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; }
.room .r-num{ font-family:var(--mono); font-size:12px; letter-spacing:.16em; color:var(--clay); }
.room .lock{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); }
.room .lock svg{ width:12px; height:12px; }
.room h3{ font-size:23px; letter-spacing:-.02em; position:relative; z-index:1; }
.room p{ color:var(--ink-2); font-size:15px; position:relative; z-index:1; max-width:48ch; }
.room .enter{ margin-top:auto; font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--clay-deep); display:inline-flex; align-items:center; gap:8px; position:relative; z-index:1; }
.room .enter .arr{ transition:transform .2s; }
.room:hover .enter .arr{ transform:translateX(4px); }
.room.feature{ grid-column:1/-1; background:var(--ink-surface); color:var(--paper); border-color:#2c261f; }
.room.feature h3{ color:var(--paper); font-size:27px; }
.room.feature p{ color:var(--ink-4); }
.room.feature .r-num{ color:var(--clay-bright); }
.room.feature .lock{ color:var(--ink-4); }
.room.feature .enter{ color:var(--clay-bright); }
@media(max-width:760px){ .rooms{ grid-template-columns:1fr; } }

/* gated chip on content pages */
.gatechip{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--clay-deep); background:var(--clay-wash); border:1px solid var(--clay-tint); border-radius:100px; padding:3px 10px; margin-left:10px; }
.gatechip svg{ width:11px; height:11px; }

/* ===== Auth / sign-in screen ===== */
.auth{ min-height:100vh; display:grid; grid-template-columns:1.05fr .95fr; }
.auth-brand{ position:relative; overflow:hidden; background:var(--ink-surface); color:var(--paper); padding:56px 60px; display:flex; flex-direction:column; justify-content:space-between; gap:40px; }
.auth-brand .dunes{ position:absolute; inset:auto 0 0 0; height:320px; z-index:0; }
.auth-brand .dune{ position:absolute; bottom:0; }
.auth-brand .dune.a{ left:-10%; width:60%; height:240px; background:#2a2018; clip-path:polygon(0 100%,46% 18%,100% 100%); }
.auth-brand .dune.b{ right:-12%; width:64%; height:200px; background:#221a13; clip-path:polygon(0 100%,58% 30%,100% 100%); }
.auth-brand .dune.c{ left:26%; width:46%; height:280px; background:var(--clay-deep); opacity:.34; clip-path:polygon(0 100%,50% 0,100% 100%); }
.auth-brand > *{ position:relative; z-index:1; }
.auth-brand .ab-top{ display:flex; align-items:center; gap:13px; }
.auth-brand .ab-top img{ height:34px; }
.auth-brand .ab-top b{ font-family:var(--display); font-weight:700; font-size:20px; }
.auth-brand .ab-top .thin{ font-weight:500; }
.auth-brand .ab-mid h2{ font-size:clamp(30px,3.4vw,46px); letter-spacing:-.03em; max-width:15ch; line-height:1.04; font-family:var(--display); }
.auth-brand .ab-mid p{ color:var(--ink-4); font-size:17px; max-width:46ch; margin-top:18px; }
.auth-brand .ab-meta{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4); display:flex; gap:14px 26px; flex-wrap:wrap; }
.auth-card-wrap{ display:grid; place-items:center; padding:40px 28px; background:var(--paper); }
.auth-card{ width:100%; max-width:392px; }
.auth-card .ac-ey{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--clay); }
.auth-card h1{ font-size:30px; letter-spacing:-.025em; margin:12px 0 6px; }
.auth-card .ac-sub{ color:var(--ink-2); font-size:15px; margin-bottom:26px; }
.auth-card .sso{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.sso-btn{ display:flex; align-items:center; justify-content:center; gap:10px; padding:11px 16px; border:1px solid var(--line-strong); border-radius:var(--r-sm); background:var(--paper); color:var(--ink); font-family:var(--body); font-weight:600; font-size:14.5px; cursor:pointer; text-decoration:none; transition:border-color .16s, background .16s; }
.sso-btn:hover{ border-color:var(--ink-3); background:var(--paper-sunk); }
.auth-div{ display:flex; align-items:center; gap:14px; color:var(--ink-3); font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; margin:6px 0 18px; }
.auth-div::before,.auth-div::after{ content:""; flex:1; height:1px; background:var(--line); }
.auth-card .ac-foot{ margin-top:22px; font-size:14px; color:var(--ink-2); text-align:center; }
.auth-card .ac-foot a{ color:var(--clay-deep); font-weight:600; text-decoration:none; }
.auth-back{ position:absolute; top:26px; left:30px; z-index:3; font-family:var(--mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); text-decoration:none; }
.auth-back:hover{ color:var(--paper); }
.auth-note{ margin-top:18px; font-size:12.5px; color:var(--ink-3); background:var(--paper-sunk); border:1px solid var(--line); border-radius:var(--r-sm); padding:11px 13px; }
@media(max-width:860px){ .auth{ grid-template-columns:1fr; } .auth-brand{ min-height:220px; padding:36px 30px; } .auth-brand .ab-mid{ display:none; } }

/* ===== Cover landing (single screen, no scroll, identity-forward) ===== */
.cover{ position:relative; height:100svh; min-height:560px; display:flex; flex-direction:column; overflow:hidden; }
.cover .topbar{ position:relative; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom:none; }
.cover-main{ flex:1; display:flex; align-items:center; position:relative; z-index:2; }
.cover-mark{ width:82px; margin-bottom:22px; filter:drop-shadow(0 10px 30px rgba(27,23,20,.12)); animation:rise .7s cubic-bezier(.2,.7,.2,1) both; }
.cover .eyebrow{ animation:rise .7s .03s cubic-bezier(.2,.7,.2,1) both; }
.cover h1{ font-size:clamp(58px,11vw,140px); letter-spacing:-.045em; line-height:.9; margin:14px 0 0; animation:rise .7s .06s cubic-bezier(.2,.7,.2,1) both; }
.cover-sub{ margin-top:22px; font-size:clamp(17px,1.7vw,21px); color:var(--ink-2); max-width:50ch; animation:rise .7s .12s cubic-bezier(.2,.7,.2,1) both; }
.cover-sub strong{ color:var(--ink); font-weight:600; }
.cover .cta-row{ margin-top:30px; display:flex; gap:12px; flex-wrap:wrap; animation:rise .7s .18s cubic-bezier(.2,.7,.2,1) both; }
.cover-foot{ position:relative; z-index:2; padding-bottom:28px; }
.cover-foot .wrap{ display:flex; flex-direction:column; gap:13px; }
.rooms-line{ font-family:var(--mono); font-size:12px; letter-spacing:.03em; color:var(--ink-3); display:flex; flex-wrap:wrap; gap:7px 9px; align-items:center; }
.rooms-line a{ color:var(--ink-2); text-decoration:none; transition:color .15s; }
.rooms-line a:hover{ color:var(--clay); }
.rooms-line .sep{ color:var(--ink-4); }
.rooms-line .byinv{ color:var(--clay); text-transform:uppercase; letter-spacing:.12em; margin-left:5px; }
.meta-line{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-4); display:flex; gap:8px 24px; flex-wrap:wrap; }
.cover .dunes{ position:absolute; inset:auto 0 0 0; height:42vh; z-index:1; pointer-events:none; }
@media(max-height:660px){ .cover-mark{ width:58px; margin-bottom:14px; } .cover h1{ font-size:clamp(46px,9vw,84px); } .cover-sub{ margin-top:14px; } .cover .cta-row{ margin-top:20px; } }
