/* ============================================================
   Jubaleth — jbl.css
   Self-contained dark theme ported from the Claude Design redesign.
   Fonts: Chakra Petch (display), IBM Plex Sans (body), JetBrains Mono.
   ============================================================ */

:root {
  color-scheme: dark;

  /* Channels (r,g,b triplets used inside rgba() washes/borders/grids).
     --fg-ch is the "ink" that contrasts with the surface; the tint channels
     back the translucent panel gradients; --bg-ch backs blurred page chrome. */
  --fg-ch:      255,255,255;
  --tint-hi-ch: 17,19,27;
  --tint-lo-ch: 10,12,16;
  --bg-ch:      10,11,15;

  /* Surfaces */
  --bg:        #0a0b0f;
  --bg-2:      #0c0e13;
  --panel-a:   #0f1218;
  --panel-b:   #0c0e13;
  --panel-c:   #0d0f15;   /* media / pre / thumb panels */
  --panel-d:   #0b0d12;
  --panel-hover: #10141b;
  --deep:      #090b0e;   /* page washes on project experience pages */
  --deep-2:    #080a0d;   /* darkest media surfaces */

  /* Accents */
  --acc:       #ffb020;   /* amber  */
  --acc2:      #7c5cff;   /* purple */
  --purple:    #9d86ff;   /* skye   */
  --purple2:   #a58fff;
  --indigo:    #7e83ff;
  --green:     #28c840;
  --green2:    #20c95c;
  --lime:      #9ddd62;
  --teal:      #53d4a5;
  --teal2:     #36c2b4;
  --cyan:      #35c8d4;
  --cyan2:     #45d1dc;
  --ember:     #d97841;

  /* Text */
  --text:      #e7e9ee;
  --text-2:    #d2d6df;
  --text-3:    #bbc1cc;
  --muted:     #9ea6b3;
  --muted-2:   #8c95a3;
  --faint:     #565d68;   /* dim separators, idle arrows */
  --purple-text:  #c7bcf5;
  --purple-muted: #a89ed0;
  --amber-text:   #d3ac60;
  --green-text:   #9ac98b;
  --cyan-text:    #7ee0e8;
  --pink-text:    #ff85ae;
  --mix-ink:   #fff;      /* color-mix() endpoint: lightens accents in dark, darkens in light */

  /* Body copy weight: 300 reads crisp light-on-dark but thin dark-on-light,
     so the light theme raises it to 400. */
  --w-body:    300;

  --line:      rgba(var(--fg-ch),.07);
  --line-2:    rgba(var(--fg-ch),.10);
  --maxw:      1320px;
  --rail:      min(calc(100% - 64px), var(--maxw));

  --f-display: 'Chakra Petch', system-ui, sans-serif;
  --f-body:    'IBM Plex Sans', system-ui, sans-serif;
  --f-mono:    'JetBrains Mono', ui-monospace, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--f-body);
  font-weight: var(--w-body);
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: rgba(255,176,32,.28); color: #fff; }
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 600; }
p { margin: 0 0 1em; }
:where(a,button,input,summary):focus-visible { outline:2px solid var(--acc); outline-offset:3px; }
.skip-link { position:fixed; top:10px; left:10px; z-index:200; padding:10px 14px; color:var(--bg); background:var(--acc);
  font:700 14px var(--f-body); transform:translateY(-160%); transition:transform .2s; }
.skip-link:focus { transform:none; }

/* ---------- keyframes ---------- */
@keyframes jblBlink  { 0%,100%{opacity:1} 50%{opacity:.2} }
@keyframes jblDrift  { from{background-position:0 0,0 0} to{background-position:46px 46px,46px 46px} }
@keyframes jblTicker { from{transform:translateX(0)} to{transform:translateX(-25%)} }
@keyframes jblScan   { from{transform:translateY(-100%)} to{transform:translateY(800%)} }
@keyframes jblFadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
@property --ip-field-angle {
  syntax:"<angle>";
  inherits:false;
  initial-value:0deg;
}
@keyframes ipBorderTravel { to { stroke-dashoffset:-100; } }
@keyframes ipBorderFieldCounterRotate { to { --ip-field-angle:-360deg; } }

/* ---------- icons (lucide) ---------- */
[data-lucide] { width: 100%; height: 100%; stroke-width: 1.6; }
.ic { display: inline-flex; }

/* ---------- reveal on scroll ---------- */
[data-reveal].is-hidden { opacity: 0; transform: translateY(20px); }
[data-reveal] { transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }

/* ---------- layout ---------- */
.wrap { width: var(--rail); max-width: var(--maxw); margin: 0 auto; }
.mono { font-family: var(--f-mono); }
.eyebrow {
  font-family: var(--f-mono); font-size: 13px; letter-spacing: .14em;
  color: var(--acc); margin-bottom: 14px;
}
.eyebrow--pink { color: var(--acc2); }
.eyebrow--purple { color: var(--purple); }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.jbl-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(14px);
  background: rgba(var(--bg-ch),.72);
  border-bottom: 1px solid var(--line);
}
.jbl-header__inner {
  width: var(--rail); max-width: var(--maxw); margin: 0 auto;
  padding: 15px 0;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.jbl-header__logo { display: flex; align-items: center; }
.jbl-header__logo img { height: 40px; width: auto; }
.jbl-nav {
  display: flex; align-items: center; gap: 30px;
  font-family: var(--f-mono); font-size: 13.5px; letter-spacing: .04em;
}
.jbl-nav a { color: var(--text-3); transition: color .2s; }
.jbl-nav a:hover { color: var(--text); }
.jbl-nav a:not(.btn-accent).is-active { position:relative; color:var(--text); }
.jbl-nav a:not(.btn-accent).is-active::after { content:""; position:absolute; right:0; bottom:-9px; left:0; height:1px; background:var(--acc); }
.jbl-nav a.btn-accent { color: var(--bg); }
.btn-accent {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bg); background: var(--acc);
  padding: 8px 16px; font-weight: 700; border-radius: 2px;
  transition: filter .2s, transform .2s;
}
.btn-accent:hover { filter: brightness(1.12); }
.jbl-nav__toggle {
  display: none; background: none; border: 0; color: var(--text);
  width: 30px; height: 30px; cursor: pointer; padding: 0;
}
.jbl-nav__toggle .ic { width: 24px; height: 24px; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 22px; border-radius: 2px; font-size: 15.5px;
  font-family: var(--f-body); cursor: pointer; border: 1px solid transparent;
}
.btn .ic { width: 16px; height: 16px; }
.btn-primary {
  background: var(--acc); color: var(--bg); font-weight: 700;
  transition: filter .2s, transform .2s;
}
.btn-primary:hover { filter: brightness(1.12); transform: translateY(-1px); }
.btn-ghost {
  border: 1px solid rgba(var(--fg-ch),.16); color: var(--text); font-weight: 500;
  transition: border-color .2s, background .2s;
}
.btn-ghost:hover { border-color: var(--acc); background: rgba(var(--fg-ch),.03); }
.btn-link {
  display: inline-flex; align-items: center; gap: 9px; color: var(--acc);
  font-family: var(--f-mono); font-size: 14px; font-weight: 500;
  border-bottom: 1px solid rgba(255,176,32,.3); padding-bottom: 3px;
  transition: gap .2s;
}
.btn-link:hover { gap: 14px; }
.btn-link .ic { width: 15px; height: 15px; }

/* chips */
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em;
  color: var(--muted-2); border: 1px solid rgba(var(--fg-ch),.09);
  padding: 5px 11px; border-radius: 2px;
}

/* ============================================================
   HERO
   ============================================================ */
.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero__grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(var(--fg-ch),.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--fg-ch),.045) 1px, transparent 1px);
  background-size: 46px 46px;
  animation: jblDrift 7s linear infinite;
  -webkit-mask-image: radial-gradient(120% 80% at 70% 0%, #000 30%, transparent 75%);
          mask-image: radial-gradient(120% 80% at 70% 0%, #000 30%, transparent 75%);
}
.hero__glow-a { position:absolute; top:-180px; right:-120px; width:620px; height:620px;
  background: radial-gradient(circle, rgba(255,176,32,.16), transparent 62%); filter: blur(8px); pointer-events:none; }
.hero__glow-b { position:absolute; bottom:-220px; left:-140px; width:560px; height:560px;
  background: radial-gradient(circle, rgba(124,92,255,.12), transparent 62%); filter: blur(8px); pointer-events:none; }
.hero__skull {
  position:absolute; right:-360px; top:50%;
  transform: translateY(-50%) rotate(-118deg) scaleY(-1);
  width:1420px; opacity:.085; pointer-events:none;
  -webkit-mask-image: radial-gradient(circle at 55% 50%, #000 35%, transparent 74%);
          mask-image: radial-gradient(circle at 55% 50%, #000 35%, transparent 74%);
}
.hero__inner {
  width: var(--rail); max-width: var(--maxw); margin: 0 auto; padding: 90px 0 76px;
  position: relative; display: grid; grid-template-columns: 1.25fr .85fr;
  gap: 56px; align-items: center;
}
.hero__status {
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--f-mono); font-size:13px; letter-spacing:.12em; color: var(--text-3);
  border:1px solid var(--line-2); padding:7px 14px; border-radius:2px; margin-bottom:30px;
}
.dot { width:7px; height:7px; border-radius:50%; background:var(--acc);
  box-shadow:0 0 10px var(--acc); animation: jblBlink 1.6s ease-in-out infinite; }
.dot--green { background: var(--green); box-shadow:0 0 9px var(--green); width:8px; height:8px; }
.dot--pink { background: var(--acc2); box-shadow:0 0 8px var(--acc2); }
.hero__title {
  font-family: var(--f-display); font-weight:700;
  font-size: clamp(46px,6.4vw,90px); line-height:.96; letter-spacing:-.01em;
  margin:0 0 26px; text-transform:uppercase;
}
.hero__title .pink { color: var(--acc2); }
.hero__lead { font-size:19px; line-height:1.62; color:var(--text-2); max-width:540px; margin:0 0 36px; font-weight:var(--w-body); }
.hero__lead strong { color: var(--text); font-weight:600; }
.hero__cta { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.hero__tags { display:flex; flex-wrap:wrap; gap:10px; font-family:var(--f-mono);
  font-size:12px; letter-spacing:.06em; color:var(--muted-2); }
.hero__tags span { border:1px solid rgba(var(--fg-ch),.09); padding:5px 11px; border-radius:2px; }

/* terminal card */
.term {
  background: linear-gradient(180deg,var(--panel-hover),var(--panel-c));
  border:1px solid var(--line-2); border-radius:6px; overflow:hidden;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.8);
}
.term__bar { display:flex; align-items:center; gap:8px; padding:12px 15px;
  border-bottom:1px solid var(--line); background:rgba(var(--fg-ch),.02); }
.term__dot { width:11px; height:11px; border-radius:50%; }
.term__dot.r{background:#ff5f57} .term__dot.y{background:#febc2e} .term__dot.g{background:var(--green)}
.term__path { margin-left:8px; font-family:var(--f-mono); font-size:12px; color:var(--muted); }
.term__body { padding:20px 20px 22px; font-family:var(--f-mono); font-size:14px; line-height:1.95; }
.term__body .pr { color: var(--muted); }
.term__body .pr span { color: var(--acc); }
.term__out { color: var(--text); margin-bottom:12px; }
.term__out.dim { color: var(--text-2); }
.term__out.pink { color: var(--acc2); }
.term__cmt { color: var(--muted); }
.term__status { display:flex; align-items:center; gap:9px; color:var(--text); }
.term__online { display:inline-flex; align-items:center; gap:7px; color:var(--green); }
.term__clock { margin-left:auto; color:var(--muted); }

/* ============================================================
   TICKER
   ============================================================ */
.ticker { border-bottom:1px solid var(--line); background:var(--bg-2); overflow:hidden; padding:11px 0; }
.ticker__row { display:flex; width:max-content; animation: jblTicker 34s linear infinite;
  font-family:var(--f-mono); font-size:13px; letter-spacing:.16em; color:var(--muted-2); }
.ticker__row span { padding:0 22px; }
.ticker__row .sep { color: var(--acc); padding:0; }

/* ============================================================
   SECTIONS / GENERIC
   ============================================================ */
.section { width: var(--rail); max-width: var(--maxw); margin:0 auto; padding:96px 0 30px; }
.section__head { display:flex; align-items:baseline; justify-content:space-between;
  flex-wrap:wrap; gap:16px; margin-bottom:42px; }
.section__title { font-family:var(--f-display); font-weight:600;
  font-size:clamp(30px,3.6vw,44px); margin:0; text-transform:uppercase; letter-spacing:-.01em; }
.section__note { font-family:var(--f-mono); font-size:13.5px; color:var(--muted);
  max-width:300px; line-height:1.7; margin:0; }

/* pillars */
.pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.pillar {
  position:relative; background:linear-gradient(180deg,var(--panel-a),var(--panel-b));
  border:1px solid rgba(var(--fg-ch),.08); border-radius:5px; padding:30px 26px; overflow:hidden;
  transition:border-color .25s, transform .25s;
}
.pillar:hover { border-color: var(--acc); transform: translateY(-3px); }
.pillar::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--acc); }
.pillar__icon { width:46px; height:46px; border-radius:4px; background:rgba(255,176,32,.09);
  border:1px solid rgba(255,176,32,.2); display:flex; align-items:center; justify-content:center;
  color:var(--acc); margin-bottom:22px; }
.pillar__icon .ic { width:23px; height:23px; }
.pillar__tag { font-family:var(--f-mono); font-size:11.5px; letter-spacing:.1em; color:var(--muted); margin-bottom:9px; }
.pillar h3 { font-size:21px; margin:0 0 12px; text-transform:uppercase; }
.pillar p { font-size:15.5px; line-height:1.62; color:var(--text-3); margin:0; font-weight:var(--w-body); }

/* ============================================================
   ESPORTS FEATURE
   ============================================================ */
.esports { position:relative; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-top:70px; background:linear-gradient(180deg,var(--panel-d),var(--bg)); }
.esports__glow { position:absolute; top:0; right:0; width:50%; height:100%;
  background:radial-gradient(80% 80% at 80% 30%, rgba(124,92,255,.08), transparent 70%); pointer-events:none; }
.esports__inner { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:88px 0; position:relative;
  display:grid; grid-template-columns:minmax(440px,.9fr) minmax(620px,1.25fr); gap:46px; align-items:center; }
.esports h2 { font-weight:700; font-size:clamp(32px,4.4vw,54px); line-height:1; margin:0 0 22px;
  text-transform:uppercase; letter-spacing:-.01em; }
.esports__lead { font-size:17.5px; line-height:1.65; color:var(--text-2); margin:0 0 26px; font-weight:var(--w-body); max-width:520px; }
.esports__roles { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:28px; }
.role { display:flex; align-items:center; gap:11px; background:rgba(var(--fg-ch),.025);
  border:1px solid rgba(var(--fg-ch),.08); border-radius:4px; padding:13px 15px; }
.role .ic { width:18px; height:18px; color:var(--acc2); }
.role span:last-child { font-size:15px; font-weight:500; color:var(--text); }
.quote { border-left:2px solid var(--acc2); padding:4px 0 4px 20px; margin-bottom:30px; }
.quote p { font-size:16.5px; line-height:1.6; color:var(--text-3); margin:0; font-style:italic; }
.events { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.events__label { font-family:var(--f-mono); font-size:11.5px; color:var(--muted); margin-right:4px; }
.event { font-family:var(--f-mono); font-size:13px; letter-spacing:.06em; color:var(--text-3);
  border:1px solid rgba(var(--fg-ch),.12); background:rgba(var(--fg-ch),.02); padding:7px 13px; border-radius:2px; }

/* media placeholder / framed image */
.frame {
  border-radius:6px; border:1px solid var(--line-2); background-color:var(--panel-c);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  overflow:hidden; position:relative; color:var(--faint);
}
.frame--45 { aspect-ratio:4/5; background-image:repeating-linear-gradient(135deg,rgba(var(--fg-ch),.035) 0 2px,transparent 2px 13px); }
.frame--event-photo {
  aspect-ratio: 3/2;
  background:var(--deep-2);
  align-self:center;
  width:min(100%, 760px);
  justify-self:end;
  box-shadow: 0 30px 90px -42px rgba(0,0,0,.95);
}
.frame--1612 { aspect-ratio:16/12; background-image:repeating-linear-gradient(45deg,rgba(var(--fg-ch),.035) 0 2px,transparent 2px 13px); }
.frame img { width:100%; height:100%; object-fit:cover; }
.frame--event-photo img { object-position:center center; }
.frame .ic { width:42px; height:42px; }
.frame__cap { font-family:var(--f-mono); font-size:13px; letter-spacing:.08em; color:var(--muted-2); text-align:center; line-height:1.6; max-width:240px; }
.frame__attribution {
  position:absolute; left:14px; bottom:14px; max-width:calc(100% - 28px);
  display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center;
  font-family:var(--f-mono); font-size:11px; line-height:1.35; color:#d7dbe4;
  text-shadow:0 1px 8px rgba(0,0,0,.85);
  background:rgba(var(--bg-ch),.76);
  border:1px solid rgba(var(--fg-ch),.14); border-radius:2px; padding:7px 10px;
  backdrop-filter:blur(7px);
}
.frame__attribution::before {
  content:""; width:7px; height:7px; border-radius:50%; flex:0 0 auto;
  background:var(--acc2); box-shadow:0 0 8px var(--acc2);
  animation:jblBlink 1.6s ease-in-out infinite;
}
.frame__attribution span:first-child { color:#fff; }
.frame__attribution span:last-child { color:#aeb5c3; letter-spacing:.05em; text-transform:uppercase; }
.frame__live { position:absolute; bottom:14px; left:14px; display:flex; align-items:center; gap:8px;
  font-family:var(--f-mono); font-size:11.5px; color:var(--text-3); background:rgba(var(--bg-ch),.7);
  border:1px solid var(--line-2); padding:6px 11px; border-radius:2px; }

/* ============================================================
   CURRENT WORK
   ============================================================ */
.current-work__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.current-project { --project-accent:var(--acc); position:relative; min-width:0; padding:25px 23px 22px;
  border:1px solid var(--line); border-radius:6px; overflow:hidden;
  background:linear-gradient(160deg,rgba(var(--tint-hi-ch),.98),rgba(var(--tint-lo-ch),.98));
  transition:border-color .25s, transform .25s, background .25s; }
.current-project::before { content:""; position:absolute; top:0; right:0; width:180px; height:130px;
  background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--project-accent) 18%,transparent),transparent 68%);
  pointer-events:none; }
.current-project--purple { --project-accent:var(--purple); }
.current-project--pink { --project-accent:var(--acc2); }
.current-project--cyan { --project-accent:var(--cyan); }
.current-project--ember { --project-accent:var(--ember); }
.current-project--wide { grid-column:1 / -1; }
.current-project:hover { border-color:color-mix(in srgb,var(--project-accent) 45%,transparent); transform:translateY(-3px);
  background:linear-gradient(160deg,rgba(var(--tint-hi-ch),.98),rgba(var(--tint-lo-ch),.98)); }
.current-project__top { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-bottom:26px; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em; }
.current-project__number { color:var(--muted-2); }
.current-project__status { display:inline-flex; align-items:center; gap:7px; color:var(--project-accent); }
.current-project__status .dot { width:6px; height:6px; background:var(--project-accent); box-shadow:0 0 8px var(--project-accent); }
.current-project__icon { position:relative; width:34px; height:34px; margin-bottom:20px; color:var(--project-accent); }
.current-project__eyebrow { display:block; margin-bottom:8px; color:var(--project-accent); font-family:var(--f-mono);
  font-size:10px; letter-spacing:.11em; }
.current-project h3 { margin:0 0 12px; color:var(--text); font-size:24px; text-transform:uppercase; }
.current-project > p { min-height:88px; margin:0; color:var(--text-3); font-size:14.5px; line-height:1.6; }
.current-project__tags { display:flex; flex-wrap:wrap; gap:7px; margin:22px 0 24px; }
.current-project__tags span { padding:5px 8px; border:1px solid color-mix(in srgb,var(--project-accent) 24%,transparent);
  border-radius:2px; color:color-mix(in srgb,var(--project-accent) 78%,var(--mix-ink)); font-family:var(--f-mono); font-size:10px; }
.current-project__link { display:inline-flex; align-items:center; gap:7px; color:var(--project-accent);
  font-family:var(--f-mono); font-size:11.5px; border-bottom:1px solid color-mix(in srgb,var(--project-accent) 30%,transparent); }
.current-project__link .ic { width:13px; height:13px; }
.current-project__link--muted { color:var(--muted-2); border-bottom:0; }

/* ============================================================
   SKYEENGINE
   ============================================================ */
.skye { position:relative; border:1px solid rgba(124,92,255,.25); border-radius:8px; overflow:hidden;
  background:linear-gradient(135deg,var(--panel-a),var(--panel-d)); }
.skye__glow { position:absolute; top:-120px; left:30%; width:420px; height:420px;
  background:radial-gradient(circle, rgba(124,92,255,.16), transparent 65%); pointer-events:none; }
.skye__inner { position:relative; padding:46px 44px; display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); gap:52px; align-items:start; }
.skye h2 { font-weight:700; font-size:clamp(34px,4.6vw,56px); margin:0 0 18px; text-transform:uppercase; letter-spacing:-.01em; }
.skye__title { line-height:1; }
.skye__logo { width:min(100%, 420px); max-height:58px; object-fit:contain; object-position:left center; }
.skye__intro > p { font-size:17px; line-height:1.66; color:var(--text-3); margin:0 0 24px; font-weight:var(--w-body); max-width:500px; }
.wip-badge { font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; color:var(--bg);
  background:var(--purple); padding:3px 9px; border-radius:2px; font-weight:700; }
.skye__flow { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:30px 0 0;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; color:var(--purple-text); }
.skye__flow span { padding:7px 10px; border-radius:2px; background:rgba(157,134,255,.08);
  border:1px solid rgba(157,134,255,.24); }
.skye__flow svg { width:13px; height:13px; color:var(--faint); }
.skye__chips { display:flex; flex-wrap:wrap; gap:9px; margin-top:26px; font-family:var(--f-mono); font-size:11.5px; color:var(--purple); }
.skye__chips span { border:1px solid rgba(157,134,255,.3); padding:6px 12px; border-radius:2px; }
.skye .btn-link { display:inline-flex; margin-top:22px; }
.skye__dispatches { min-width:0; }
.skye__dispatch-head { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:15px; }
.skye__dispatch-kicker { display:block; margin-bottom:5px; font-family:var(--f-mono); font-size:11px;
  letter-spacing:.12em; color:var(--purple); }
.skye__dispatch-head h3 { margin:0; font-size:20px; text-transform:uppercase; letter-spacing:.01em; }
.skye__dispatch-head > a { flex:0 0 auto; padding-bottom:2px; color:var(--purple-muted); font-family:var(--f-mono);
  font-size:11.5px; border-bottom:1px solid rgba(157,134,255,.3); transition:color .2s; }
.skye__dispatch-head > a:hover { color:var(--purple-text); }
.skye__stories { display:flex; flex-direction:column; gap:10px; }
.skye-story { border:1px solid rgba(157,134,255,.16); border-radius:5px;
  background:rgba(var(--tint-lo-ch),.52); transition:border-color .2s, background .2s, transform .2s; }
.skye-story:hover { border-color:rgba(157,134,255,.48); background:rgba(var(--tint-hi-ch),.82); transform:translateX(-3px); }
.skye-story > a { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:start; padding:17px 18px; }
.skye-story__index { padding-top:2px; font-family:var(--f-mono); font-size:10.5px; color:var(--purple-muted); }
.skye-story__meta { display:flex; align-items:center; gap:10px; margin-bottom:6px; font-family:var(--f-mono);
  font-size:10px; letter-spacing:.08em; color:var(--purple-muted); }
.skye-story__meta span { color:var(--purple); }
.skye-story h4 { margin:0 0 6px; color:var(--text); font-size:16px; line-height:1.3; text-transform:uppercase; }
.skye-story p { margin:0; color:var(--text-3); font-size:13.5px; line-height:1.48; }
.skye-story__arrow { width:17px; height:17px; color:var(--faint); transition:color .2s, transform .2s; }
.skye-story:hover .skye-story__arrow { color:var(--purple); transform:translate(2px,-2px); }

/* ============================================================
   SKILLS
   ============================================================ */
.skills { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.skill { background:linear-gradient(180deg,var(--panel-a),var(--panel-b)); border:1px solid var(--line);
  border-radius:5px; padding:26px 22px; transition:border-color .25s, background .25s; }
.skill:hover { border-color:rgba(255,176,32,.4); background:var(--panel-hover); }
.skill__icon { display:inline-flex; width:30px; height:30px; color:var(--acc); margin-bottom:18px; }
.skill h3 { font-size:17px; margin:0 0 8px; text-transform:uppercase; letter-spacing:.01em; }
.skill p { font-size:14px; line-height:1.55; color:var(--text-3); margin:0; font-weight:var(--w-body); }

/* ============================================================
   CONTACT CTA
   ============================================================ */
.cta { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:90px 0 0; }
.cta__box { position:relative; border:1px solid var(--line-2); border-radius:8px; overflow:hidden;
  background:linear-gradient(135deg,var(--panel-a),var(--panel-d)); text-align:center; padding:64px 32px; }
.cta__grid { position:absolute; inset:0;
  background-image:linear-gradient(rgba(var(--fg-ch),.035) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.035) 1px,transparent 1px);
  background-size:40px 40px;
  -webkit-mask-image:radial-gradient(60% 100% at 50% 0%,#000,transparent 75%);
          mask-image:radial-gradient(60% 100% at 50% 0%,#000,transparent 75%); }
.cta__inner { position:relative; }
.cta h2 { font-weight:700; font-size:clamp(32px,4.6vw,58px); margin:0 0 18px;
  text-transform:uppercase; letter-spacing:-.01em; line-height:1; }
.cta__lead { font-size:17px; color:var(--text-2); margin:0 auto 34px; max-width:460px; font-weight:var(--w-body); line-height:1.6; }
.cta__btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.jbl-footer { border-top:1px solid var(--line); margin-top:90px; background:var(--bg-2); }
.jbl-footer__top { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:54px 0 30px;
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.jbl-footer__brand img { height:40px; width:auto; margin-bottom:18px; }
.jbl-footer__brand p { font-size:14.5px; color:var(--muted-2); line-height:1.6; max-width:280px; font-weight:var(--w-body); margin:0; }
.jbl-footer__col h4 { font-family:var(--f-mono); font-size:11.5px; letter-spacing:.12em; color:var(--muted-2);
  margin:0 0 16px; font-weight:400; text-transform:uppercase; }
.jbl-footer__col .links { display:flex; flex-direction:column; gap:11px; font-size:15px; color:var(--text-3); }
.jbl-footer__col .links a { transition:color .2s; }
.jbl-footer__col .links a:hover { color:var(--acc); }
.jbl-footer__feeds { display:flex; flex-wrap:wrap; align-items:center; gap:5px 10px; margin-top:4px;
  font:10.5px var(--f-mono); letter-spacing:.05em; text-transform:uppercase; }
.jbl-footer__feeds span { width:100%; color:var(--muted-2); font-size:9.5px; letter-spacing:.12em; }
.jbl-footer__feeds a + a::before { content:"·"; margin-right:10px; color:var(--faint); }
.jbl-footer__settings { border:0; padding:0; background:none; color:var(--text-3); text-align:left;
  font:inherit; cursor:pointer; transition:color .2s; }
.jbl-footer__settings:hover,.jbl-footer__settings:focus { color:var(--acc); }
.jbl-footer__bar { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:20px 0 40px;
  border-top:1px solid rgba(var(--fg-ch),.06); display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:14px; }
.jbl-footer__bar span { font-family:var(--f-mono); font-size:12px; color:var(--muted-2); }
.jbl-footer__bar .build { color:var(--muted-2); }

/* ============================================================
   INNER PAGE HERO
   ============================================================ */
.page-hero { position:relative; overflow:hidden; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-d),var(--bg)); }
.page-hero__grid { position:absolute; inset:0;
  background-image:linear-gradient(rgba(var(--fg-ch),.04) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.04) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 20%,transparent 75%);
          mask-image:radial-gradient(120% 90% at 50% 0%,#000 20%,transparent 75%); }
.page-hero__glow { position:absolute; top:-160px; right:-100px; width:520px; height:520px;
  background:radial-gradient(circle, rgba(255,176,32,.12), transparent 62%); filter:blur(8px); pointer-events:none; }
.page-hero__inner { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:64px 0 56px; position:relative; }
.page-hero h1 { font-family:var(--f-display); font-weight:700; font-size:clamp(36px,5vw,64px);
  margin:0; text-transform:uppercase; letter-spacing:-.01em; line-height:1; }
.page-hero p { font-size:17px; color:var(--text-2); margin:16px 0 0; max-width:560px; font-weight:var(--w-body); line-height:1.6; }

/* ============================================================
   PROSE (blog post, policies)
   ============================================================ */
.prose { max-width:760px; margin:0 auto; padding:56px 32px 30px; font-size:17px; line-height:1.7; color:var(--text-2); }
.prose h1,.prose h2,.prose h3,.prose h4 { color:var(--text); margin:1.6em 0 .6em; line-height:1.2; }
.prose h2 { font-size:28px; text-transform:uppercase; letter-spacing:-.01em; }
.prose h3 { font-size:21px; }
.prose a { color:var(--acc); border-bottom:1px solid rgba(255,176,32,.3); }
.prose a:hover { border-color:var(--acc); }
.prose strong { color:var(--text); }
.prose img { border-radius:6px; border:1px solid var(--line-2); margin:1.4em 0; }
.prose ul,.prose ol { padding-left:1.3em; }
.prose li { margin:.4em 0; }
.prose blockquote { border-left:2px solid var(--acc2); margin:1.4em 0; padding:4px 0 4px 20px;
  color:var(--text-3); font-style:italic; }
.prose hr { border:0; border-top:1px solid var(--line); margin:2em 0; }
.prose code { font-family:var(--f-mono); font-size:.88em; background:rgba(var(--fg-ch),.05);
  border:1px solid var(--line); border-radius:3px; padding:.15em .4em; color:var(--acc); }
.prose pre { background:var(--panel-c); border:1px solid var(--line-2); border-radius:6px;
  padding:18px 20px; overflow:auto; font-family:var(--f-mono); font-size:14px; line-height:1.7; }
.prose pre code { background:none; border:0; padding:0; color:var(--text-2); }
.back-link { display:block; text-align:center; padding:30px; font-family:var(--f-mono); font-size:14px; }
.back-link a { color:var(--acc); }

/* post meta */
.post-meta { display:flex; flex-wrap:wrap; gap:18px; font-family:var(--f-mono); font-size:13px;
  color:var(--muted); letter-spacing:.04em; margin-bottom:20px; }
.post-meta .ic { width:14px; height:14px; vertical-align:-2px; margin-right:5px; color:var(--acc); }
.post-meta a { color:var(--text-3); }
.post-meta a:hover { color:var(--acc); }
.ip-disclaimer { position:relative; isolation:isolate; overflow:hidden; margin:0 0 30px; padding:0;
  border:1px solid rgba(124,92,255,.38); border-radius:6px; background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.98),rgba(var(--tint-lo-ch),.98) 58%);
  box-shadow:0 18px 55px rgba(0,0,0,.24),inset 0 1px rgba(var(--fg-ch),.025); }
.ip-disclaimer::after { content:""; position:absolute; z-index:-1; width:320px; height:320px; right:-145px; top:-205px; border-radius:50%;
  background:radial-gradient(circle,rgba(124,92,255,.14),transparent 68%); pointer-events:none; }
.ip-disclaimer__grid { position:absolute; z-index:-2; inset:0; opacity:.42; pointer-events:none;
  background-image:linear-gradient(rgba(var(--fg-ch),.022) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.022) 1px,transparent 1px);
  background-size:28px 28px; mask-image:linear-gradient(110deg,#000,transparent 72%); }
.ip-disclaimer__trace { position:absolute; z-index:3; inset:-1px; width:calc(100% + 2px); height:calc(100% + 2px); overflow:visible; pointer-events:none;
  -webkit-mask-image:conic-gradient(from var(--ip-field-angle) at 50% 50%,rgba(var(--fg-ch),.48) 0deg,rgba(var(--fg-ch),.96) 38deg,rgba(var(--fg-ch),.64) 91deg,rgba(var(--fg-ch),1) 142deg,rgba(var(--fg-ch),.5) 205deg,rgba(var(--fg-ch),.86) 267deg,rgba(var(--fg-ch),.58) 321deg,rgba(var(--fg-ch),.48) 360deg);
  mask-image:conic-gradient(from var(--ip-field-angle) at 50% 50%,rgba(var(--fg-ch),.48) 0deg,rgba(var(--fg-ch),.96) 38deg,rgba(var(--fg-ch),.64) 91deg,rgba(var(--fg-ch),1) 142deg,rgba(var(--fg-ch),.5) 205deg,rgba(var(--fg-ch),.86) 267deg,rgba(var(--fg-ch),.58) 321deg,rgba(var(--fg-ch),.48) 360deg);
  animation:ipBorderFieldCounterRotate 17s linear infinite; }
.ip-disclaimer__trace rect { fill:none; vector-effect:non-scaling-stroke; stroke-linecap:round;
  stroke-dasharray:4.8 11.8667; animation:ipBorderTravel 22s linear infinite; }
.ip-disclaimer__trace-halo { stroke:rgba(255,77,141,.26); stroke-width:7; filter:blur(2px); }
.ip-disclaimer__trace-core { stroke:#ff5f9a; stroke-width:1.4; filter:drop-shadow(0 0 3px rgba(255,77,141,.8)); }
.ip-disclaimer__head { display:grid; grid-template-columns:46px minmax(0,1fr) auto; gap:17px; align-items:center; padding:22px 26px 20px; }
.ip-disclaimer__icon { display:grid; place-items:center; width:44px; height:44px; padding:10px; border:1px solid rgba(124,92,255,.42); border-radius:4px;
  color:var(--purple); background:rgba(124,92,255,.08); box-shadow:inset 0 0 18px rgba(124,92,255,.06); }
.ip-disclaimer__heading > span { display:block; margin-bottom:5px; color:var(--purple-muted); font:9px var(--f-mono); letter-spacing:.13em; }
.ip-disclaimer strong { display:block; margin:0; color:var(--text); font:600 19px var(--f-display); letter-spacing:.035em; text-transform:uppercase; }
.ip-disclaimer__affiliation { display:flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid rgba(255,77,141,.3);
  color:var(--pink-text); background:rgba(255,77,141,.055); font:9.5px var(--f-mono); letter-spacing:.09em; white-space:nowrap; }
.ip-disclaimer__affiliation > span { width:6px; height:6px; border-radius:50%; background:#ff4d8d; box-shadow:0 0 10px rgba(255,77,141,.85); }
.ip-disclaimer__body { display:grid; grid-template-columns:1.2fr .8fr; border-top:1px solid rgba(124,92,255,.18); background:rgba(var(--tint-lo-ch),.23); }
.ip-disclaimer__item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:14px; margin:0; padding:22px 26px 24px; }
.ip-disclaimer__item + .ip-disclaimer__item { border-left:1px solid var(--line); }
.ip-disclaimer__index { display:grid; place-items:center; align-self:start; width:26px; height:26px; border:1px solid rgba(124,92,255,.3); border-radius:50%;
  color:var(--purple); background:var(--panel-b); font:8.5px var(--f-mono); }
.ip-disclaimer__label { display:block; margin:3px 0 9px; color:var(--purple-text); font:9px var(--f-mono); letter-spacing:.11em; }
.ip-disclaimer p { margin:0; color:var(--muted); font-size:13.5px; line-height:1.65; }
.project-disclaimer { width:var(--rail); max-width:1040px; margin:34px auto 0; }
.note-disclaimer { width:var(--rail); max-width:1040px; margin:38px auto 0; }
@media (prefers-reduced-motion:reduce) {
  .ip-disclaimer__trace { animation:none; }
  .ip-disclaimer__trace rect { animation:none; stroke-dashoffset:-7; }
}
.tag-pill { font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; color:var(--text-3);
  border:1px solid var(--line-2); background:rgba(var(--fg-ch),.02); padding:4px 10px; border-radius:2px; }

/* Historical post notice. Content is supplied through archive_notice frontmatter. */
.post-archive-notice { --notice-green:var(--green2); position:relative; display:grid; grid-template-columns:48px minmax(0,1fr); gap:19px; margin:30px 0 38px; padding:25px 27px 27px; overflow:hidden; border:1px solid rgba(255,176,32,.28); border-left:3px solid var(--notice-green); border-radius:4px; background:linear-gradient(115deg,rgba(255,176,32,.07),rgba(32,201,92,.035) 72%,transparent),var(--panel-c); }
.post-archive-notice::after { content:""; position:absolute; right:-70px; bottom:-105px; width:210px; height:210px; border:1px solid rgba(32,201,92,.08); border-radius:50%; pointer-events:none; }
.post-archive-notice__icon { display:grid; width:44px; height:44px; place-items:center; padding:11px; border:1px solid rgba(32,201,92,.28); border-radius:50%; color:var(--notice-green); background:rgba(32,201,92,.04); }
.post-archive-notice__copy { position:relative; z-index:1; min-width:0; }
.post-archive-notice__copy > span { display:block; margin:1px 0 8px; color:var(--amber-text); font:8.5px var(--f-mono); letter-spacing:.13em; text-transform:uppercase; }
.post-archive-notice__copy h2 { margin:0 0 11px; color:var(--text); font-size:22px; line-height:1.1; text-transform:uppercase; }
.post-archive-notice__copy p { margin:0; color:var(--muted); font-size:14.5px; line-height:1.65; }
.post-archive-notice__copy a { display:inline-flex; align-items:center; gap:7px; margin-top:17px; color:var(--notice-green); font:9.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.post-archive-notice__copy a:hover { color:var(--green-text); }
.post-archive-notice__copy a svg { width:14px; height:14px; }

@media (max-width: 640px) {
  .post-archive-notice { grid-template-columns:1fr; gap:14px; padding:22px 20px 24px; }
  .post-archive-notice__icon { width:38px; height:38px; padding:9px; }
  .post-archive-notice__copy h2 { font-size:19px; }
}

/* ============================================================
   BLOG LIST
   ============================================================ */
.blog-layout { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:56px 0 30px;
  display:grid; grid-template-columns:1fr 300px; gap:46px; align-items:start; }
.section-subscribe { display:flex; justify-content:flex-end; margin:0 0 24px; }
.section-subscribe a { display:inline-flex; align-items:center; gap:8px; padding-bottom:4px; border-bottom:1px solid rgba(255,176,32,.3);
  color:var(--acc); font:11px var(--f-mono); letter-spacing:.07em; text-transform:uppercase; transition:gap .2s,border-color .2s; }
.section-subscribe a:hover { gap:12px; border-color:var(--acc); }
.section-subscribe .ic { width:14px; height:14px; }
.post-card { background:linear-gradient(180deg,var(--panel-a),var(--panel-b)); border:1px solid var(--line);
  border-radius:6px; overflow:hidden; margin-bottom:26px; transition:border-color .25s, transform .25s; }
.post-card:hover { border-color:rgba(255,176,32,.4); transform:translateY(-2px); }
.post-card__thumb { display:block; aspect-ratio:16/8; overflow:hidden; background:var(--panel-c); }
.post-card__thumb img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.post-card__thumb img.is-contain { object-fit:contain; padding:9%; }
.post-card:hover .post-card__thumb img { transform:scale(1.04); }
.post-card__body { padding:24px 26px 28px; }
.post-card__body h3 { font-size:23px; margin:0 0 12px; text-transform:uppercase; letter-spacing:-.01em; }
.post-card__body h3 a:hover { color:var(--acc); }
.post-card__excerpt { font-size:15.5px; line-height:1.6; color:var(--text-3); margin:0 0 20px; font-weight:var(--w-body); }
.sidebar { position:sticky; top:90px; display:flex; flex-direction:column; gap:30px; }
.widget h4 { font-family:var(--f-mono); font-size:11.5px; letter-spacing:.12em; color:var(--muted-2);
  text-transform:uppercase; margin:0 0 16px; font-weight:400; }
.widget ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.widget li a { display:inline-block; font-family:var(--f-mono); font-size:13px; color:var(--text-3);
  border:1px solid var(--line); background:rgba(var(--fg-ch),.02); padding:5px 11px; border-radius:2px; transition:.2s; }
.widget li a:hover { border-color:var(--acc); color:var(--acc); }
.widget li small { margin-left:4px; color:var(--muted-2); font:9.5px var(--f-mono); }
.post-search-widget > label { display:block; margin-bottom:9px; color:var(--muted-2); font:400 11.5px var(--f-mono);
  letter-spacing:.12em; text-transform:uppercase; }
.post-search-field { display:flex; align-items:center; gap:9px; height:42px; padding:0 12px; border:1px solid var(--line-2);
  border-radius:3px; background:rgba(var(--fg-ch),.025); }
.post-search-field:focus-within { border-color:rgba(255,176,32,.65); }
.post-search-field .ic { flex:0 0 auto; width:15px; height:15px; color:var(--muted); }
.post-search-field input { width:100%; border:0; outline:0; color:var(--text); background:transparent; font:13px var(--f-mono); }
.post-search-widget > span { display:block; margin-top:9px; color:var(--muted); font:9.5px var(--f-mono); letter-spacing:.06em; }
.post-search-empty { margin:20px 0 30px; padding:34px 24px; border:1px dashed var(--line-2); color:var(--muted); text-align:center; }
.post-search-empty .ic { width:24px; height:24px; }
.post-search-empty p { margin:10px 0 0; }
.post-card[hidden],.post-search-empty[hidden] { display:none; }
.taxonomy-all { display:flex; align-items:center; gap:6px; margin-top:15px; padding-top:14px; border-top:1px solid var(--line);
  color:var(--acc); font:10.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.term-cloud { display:flex; flex-wrap:wrap; gap:10px; max-width:880px; }
.term-cloud a { padding:8px 13px; border:1px solid var(--line); border-radius:2px; color:var(--text-2);
  font:11.5px var(--f-mono); letter-spacing:.07em; text-transform:uppercase; transition:border-color .15s, color .15s; }
.term-cloud a:hover { border-color:var(--acc); color:var(--acc); }
.term-cloud a small { color:var(--acc); font-size:10.5px; margin-left:5px; }

/* pagination */
.pagination { display:flex; gap:8px; justify-content:center; list-style:none; padding:20px 0 0; margin:0; flex-wrap:wrap; }
.pagination .page-item a, .pagination .page-item span {
  display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px;
  padding:0 10px; font-family:var(--f-mono); font-size:14px; color:var(--text-3);
  border:1px solid var(--line); border-radius:2px; background:rgba(var(--fg-ch),.02); }
.pagination .page-item.active span { background:var(--acc); color:var(--bg); border-color:var(--acc); font-weight:700; }
.pagination .page-item.disabled span { opacity:.35; }
.pagination .page-item a:hover { border-color:var(--acc); color:var(--acc); }

/* ============================================================
   GALLERY
   ============================================================ */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery-card { position:relative; aspect-ratio:4/3; border-radius:6px; overflow:hidden;
  border:1px solid var(--line); background:var(--panel-c); }
.gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.gallery-card:hover img { transform:scale(1.06); }
.gallery-card__overlay { position:absolute; inset:0; display:flex; align-items:flex-end;
  background:linear-gradient(180deg,transparent 40%, rgba(var(--bg-ch),.85)); opacity:0; transition:opacity .3s; }
.gallery-card:hover .gallery-card__overlay { opacity:1; }
.gallery-card__overlay h2 { font-size:20px; margin:0; padding:20px; text-transform:uppercase; color:#fff; }

/* ============================================================
   STREAM
   ============================================================ */
.stream-layout { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:56px 0 30px;
  display:grid; grid-template-columns:1fr 360px; gap:24px; align-items:start; }
.stream-player { position:relative; border:1px solid var(--line-2); border-radius:6px; overflow:hidden;
  background:var(--panel-c); aspect-ratio:16/9; }
.stream-player iframe { position:absolute; inset:0; width:100%; height:100%; border:0; background:var(--panel-c); }
.stream-player .video-bg { position:absolute; inset:0; background:var(--panel-c);
  background-image:repeating-linear-gradient(45deg,rgba(var(--fg-ch),.03) 0 2px,transparent 2px 14px); }
.stream-player .video-offline { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--f-display); text-transform:uppercase; letter-spacing:.05em; font-size:24px; color:var(--muted); }
.stream-side { position:relative; min-height:470px; border-radius:6px; background:var(--panel-c); }
.stream-side iframe { width:100%; height:470px; border:0; border-radius:6px; border:1px solid var(--line-2); background:var(--panel-c); }
.stream-intro { padding-top:24px; color:var(--text-2); }

/* External media is local placeholder markup until consent supplies iframe src. */
.external-content { position:relative; }
.external-content iframe[hidden] { display:none; }
.external-content__placeholder { position:absolute; inset:0; z-index:4; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:14px; padding:28px; text-align:center;
  background:linear-gradient(135deg,rgba(var(--tint-hi-ch),.98),rgba(var(--bg-ch),.98));
  border:1px solid var(--line-2); border-radius:6px; }
.external-content__placeholder::before { content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(var(--fg-ch),.025) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.025) 1px,transparent 1px);
  background-size:32px 32px; }
.external-content__placeholder > * { position:relative; }
.external-content__label { font-family:var(--f-mono); font-size:11px; letter-spacing:.13em; color:var(--acc); }
.external-content__placeholder p { max-width:440px; margin:0; color:var(--text-2); }
.external-content__actions { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }
.external-content__actions a { color:var(--acc); font-family:var(--f-mono); font-size:13px;
  border-bottom:1px solid rgba(255,176,32,.3); }
.external-content--loaded > .external-content__placeholder { display:none; }

/* Site-wide, reversible external-content consent control. */
.consent-banner { position:fixed; right:24px; bottom:24px; left:24px; z-index:100;
  max-width:980px; margin:0 auto; border:1px solid rgba(255,176,32,.45); border-radius:7px;
  background:rgba(var(--tint-lo-ch),.98); box-shadow:0 20px 70px rgba(0,0,0,.55); backdrop-filter:blur(14px); }
.consent-banner[hidden] { display:none; }
.consent-banner__inner { display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px; padding:24px 26px; }
.consent-banner__label { display:block; margin-bottom:6px; font-family:var(--f-mono); font-size:11px;
  letter-spacing:.13em; color:var(--acc); }
.consent-banner h2 { margin:0 0 8px; font-size:22px; text-transform:uppercase; }
.consent-banner p { max-width:650px; margin:0; color:var(--text-2); font-size:15px; line-height:1.55; }
.consent-banner p a { color:var(--acc); border-bottom:1px solid rgba(255,176,32,.3); }
.consent-banner__actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.consent-banner__actions .btn-ghost { background:transparent; color:var(--text); }
.consent-banner__actions .btn-ghost:hover,
.consent-banner__actions .btn-ghost:focus-visible { background:rgba(var(--fg-ch),.06); }

/* ============================================================
   PROJECTS GRID
   ============================================================ */
.projects-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:stretch; }
.project-card { --project-card-accent:var(--acc); position:relative; overflow:hidden; display:grid;
  grid-template-rows:auto 1fr; min-width:0; border:1px solid var(--line); border-radius:6px;
  background:var(--panel-c); transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease; }
.project-card--aotu { --project-card-accent:var(--ember); }
.project-card--skyeengine-code { --project-card-accent:var(--indigo); }
.project-card--skyeengine { --project-card-accent:var(--cyan2); }
.project-card--fabric { --project-card-accent:var(--cyan2); }
.project-card--character-model { --project-card-accent:var(--purple2); }
.project-card--hubn { --project-card-accent:var(--cyan2); }
.project-card--octoprint { --project-card-accent:var(--green2); }
.project-card--pnp { --project-card-accent:var(--lime); }
.project-card:hover,.project-card:focus-visible { transform:translateY(-4px);
  border-color:color-mix(in srgb,var(--project-card-accent) 48%,var(--line));
  box-shadow:0 18px 48px rgba(0,0,0,.28),0 0 30px color-mix(in srgb,var(--project-card-accent) 7%,transparent); }
.project-card:focus-visible { outline:1px solid var(--project-card-accent); outline-offset:4px; }
.project-card__media { position:relative; isolation:isolate; aspect-ratio:16/10; overflow:hidden;
  border-bottom:1px solid var(--line); background:var(--panel-a); }
.project-card__media::before { content:""; position:absolute; inset:0; z-index:-1;
  background-image:linear-gradient(rgba(var(--fg-ch),.022) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.022) 1px,transparent 1px),radial-gradient(circle at 78% 24%,color-mix(in srgb,var(--project-card-accent) 13%,transparent),transparent 43%);
  background-size:32px 32px,32px 32px,auto; }
.project-card__media::after { content:""; position:absolute; inset:auto 0 0; height:1px; z-index:2;
  background:linear-gradient(90deg,transparent,var(--project-card-accent),transparent); opacity:.42; }
.project-card__media img { position:absolute; inset:50% auto auto 50%; width:72%; height:48%; padding:0;
  object-fit:contain; background:transparent; transform:translate(-50%,-50%);
  transition:transform .5s cubic-bezier(.2,.75,.2,1),filter .35s ease; }
.project-card:hover .project-card__media img,.project-card:focus-visible .project-card__media img { transform:translate(-50%,-50%) scale(1.035); }
.project-card--hubn .project-card__media img { width:69%; height:58%;
  filter:drop-shadow(1px 0 0 rgba(255,255,255,.88)) drop-shadow(-1px 0 0 rgba(255,255,255,.88)) drop-shadow(0 1px 0 rgba(255,255,255,.88)) drop-shadow(0 -1px 0 rgba(255,255,255,.88)); }
.project-card--octoprint .project-card__media { background:var(--deep); }
.project-card--octoprint .project-card__media img { width:58%; height:66%; }
.project-card--pnp .project-card__media img { width:78%; height:86%; filter:drop-shadow(0 22px 28px rgba(0,0,0,.4)); }
.project-card--aotu .project-card__media img,.project-card--skyeengine-code .project-card__media img {
  inset:0; width:100%; height:100%; object-fit:cover; transform:none; }
.project-card--aotu:hover .project-card__media img,.project-card--aotu:focus-visible .project-card__media img,
.project-card--skyeengine-code:hover .project-card__media img,.project-card--skyeengine-code:focus-visible .project-card__media img { transform:scale(1.025); }
.project-card--fabric .project-card__media img { width:82%; height:54%; }
.project-card__index { position:absolute; top:15px; right:16px; z-index:3; color:color-mix(in srgb,var(--project-card-accent) 72%,var(--text-3));
  font:9.5px var(--f-mono); letter-spacing:.12em; text-shadow:0 1px 5px var(--deep-2); }
.project-card__body { display:flex; flex-direction:column; min-height:168px; padding:21px 22px 23px; }
.project-card__meta { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px;
  font:9.5px var(--f-mono); letter-spacing:.11em; text-transform:uppercase; }
.project-card__cat { color:var(--project-card-accent); }
.project-card__open { display:inline-flex; align-items:center; gap:5px; color:var(--text-3); white-space:nowrap; transition:color .25s ease; }
.project-card__open span { transition:transform .25s ease; }
.project-card:hover .project-card__open,.project-card:focus-visible .project-card__open { color:var(--project-card-accent); }
.project-card:hover .project-card__open span,.project-card:focus-visible .project-card__open span { transform:translate(2px,-2px); }
.project-card__body h2 { margin:0 0 9px; color:var(--text); font-size:21px; line-height:1.08; text-transform:uppercase; }
.project-card__body p { margin:0; color:var(--text-3); font-size:14.5px; line-height:1.55; font-weight:var(--w-body); }
@media (min-width:981px) {
  .projects-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .projects-grid > .project-card { grid-column:span 2; }
  .projects-grid > .project-card:last-child:nth-child(3n + 1) { grid-column:3 / span 2; }
  .projects-grid > .project-card:nth-last-child(2):nth-child(3n + 1) { grid-column:2 / span 2; }
  .projects-grid > .project-card:last-child:nth-child(3n + 2) { grid-column:4 / span 2; }
}
@media (min-width:641px) and (max-width:980px) {
  .projects-grid > .project-card:last-child:nth-child(2n + 1) { grid-column:1 / -1; width:calc((100% - 22px) / 2); justify-self:center; }
}
@media (max-width:640px) {
  .projects-grid { grid-template-columns:1fr; gap:18px; }
  .project-card__body { min-height:0; }
}

/* Shared jump navigation for the long-form project dossiers. */
.project-section-nav { --project-nav-accent:var(--acc); width:var(--rail); max-width:var(--maxw); margin:28px auto 0;
  padding:18px 20px; border-top:1px solid color-mix(in srgb,var(--project-nav-accent) 35%,transparent);
  border-bottom:1px solid var(--line); background:linear-gradient(90deg,color-mix(in srgb,var(--project-nav-accent) 5%,transparent),transparent 75%); }
.project-section-nav--purple { --project-nav-accent:var(--purple); }
.project-section-nav--pink { --project-nav-accent:var(--acc2); }
.project-section-nav--cyan { --project-nav-accent:var(--cyan2); }
.project-section-nav--ember { --project-nav-accent:var(--ember); }
.project-section-nav--green { --project-nav-accent:var(--green2); }
.project-section-nav > span { display:block; margin-bottom:12px; color:var(--project-nav-accent); font:9.5px var(--f-mono); letter-spacing:.12em; }
.project-section-nav > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:1px; }
.project-section-nav a { display:flex; align-items:center; gap:9px; min-height:38px; padding:7px 10px; border-left:1px solid var(--line);
  color:var(--text-3); font:10.5px var(--f-mono); letter-spacing:.04em; text-transform:uppercase; transition:color .2s,background .2s; }
.project-section-nav a:hover { color:var(--project-nav-accent); background:color-mix(in srgb,var(--project-nav-accent) 5%,transparent); }
.project-section-nav small { color:var(--project-nav-accent); font-size:8.5px; }
[id$="-title"],#project-dispatches,#project-notebook { scroll-margin-top:92px; }

/* ============================================================
   CONTACT DETAILS (CTA page)
   ============================================================ */
.contact-info { display:flex; flex-direction:column; gap:14px; max-width:520px; margin:36px auto 0;
  font-family:var(--f-mono); font-size:14.5px; color:var(--text-2); text-align:left; }
.contact-info .row { display:flex; align-items:center; gap:12px; justify-content:center; }
.contact-info .ic { width:18px; height:18px; color:var(--acc); }
.contact-info a { color:var(--text); }
.contact-info a:hover { color:var(--acc); }

/* ============================================================
   PROJECT DOSSIERS
   ============================================================ */
.project-dossier { --project-accent:var(--acc); position:relative; overflow:hidden; border-bottom:1px solid var(--line);
  background:linear-gradient(145deg,var(--panel-c),var(--deep)); }
.project-dossier--purple { --project-accent:var(--purple); }
.project-dossier--pink { --project-accent:var(--acc2); }
.project-dossier--cyan { --project-accent:var(--cyan); }
.project-dossier--ember { --project-accent:var(--ember); }
.project-dossier__grid { position:absolute; inset:0; opacity:.55;
  background-image:linear-gradient(rgba(var(--fg-ch),.035) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.035) 1px,transparent 1px);
  background-size:46px 46px; mask-image:linear-gradient(90deg,#000,transparent 82%); }
.project-dossier::after { content:""; position:absolute; width:650px; height:650px; right:-180px; top:-290px;
  background:radial-gradient(circle,color-mix(in srgb,var(--project-accent) 20%,transparent),transparent 67%); pointer-events:none; }
.project-dossier__inner { position:relative; z-index:1; width:var(--rail); max-width:var(--maxw); margin:0 auto;
  padding:76px 0 68px; display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:center; }
.project-dossier__copy { min-width:0; }
.project-dossier__status { display:inline-flex; align-items:center; gap:9px; margin-bottom:22px; padding:6px 11px;
  border:1px solid color-mix(in srgb,var(--project-accent) 32%,transparent); color:var(--project-accent);
  font-family:var(--f-mono); font-size:11px; letter-spacing:.11em; }
.project-dossier__status .dot { width:6px; height:6px; background:var(--project-accent); box-shadow:0 0 9px var(--project-accent); }
.project-dossier h1 { margin:0 0 22px; font-size:clamp(52px,7vw,96px); line-height:.88; text-transform:uppercase; letter-spacing:-.025em; }
.project-dossier__copy > p { max-width:680px; margin:0 0 26px; color:var(--text-2); font-size:19px; line-height:1.65; }
.project-dossier__tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.project-dossier__tags span { padding:5px 9px; border:1px solid color-mix(in srgb,var(--project-accent) 25%,transparent);
  color:color-mix(in srgb,var(--project-accent) 75%,var(--mix-ink)); font-family:var(--f-mono); font-size:10.5px; letter-spacing:.06em; }
.project-dossier__links { display:flex; gap:12px; flex-wrap:wrap; }
.project-dossier__links .btn:hover { border-color:var(--project-accent); color:var(--project-accent); }
.project-dossier__mark { min-width:0; min-height:290px; display:flex; align-items:center; justify-content:center; padding:36px; overflow:hidden; }
.project-dossier__logo { width:min(100%,440px); max-width:100%; max-height:220px; object-fit:contain; }
.project-dossier__visual { width:100%; margin:0; border:1px solid color-mix(in srgb,var(--project-accent) 30%,transparent); background:var(--deep-2); box-shadow:0 22px 70px rgba(0,0,0,.45); }
.project-dossier__visual img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.project-dossier__visual figcaption { padding:9px 12px; color:var(--muted); font:10px var(--f-mono); letter-spacing:.06em; text-transform:uppercase; }
.project-dossier__logo--hubn { filter:drop-shadow(2px 0 0 rgba(var(--fg-ch),.9)) drop-shadow(-2px 0 0 rgba(var(--fg-ch),.9))
  drop-shadow(0 2px 0 rgba(var(--fg-ch),.9)) drop-shadow(0 -2px 0 rgba(var(--fg-ch),.9)); }
.project-facts { width:var(--rail); max-width:var(--maxw); margin:34px auto 0; display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line); background:var(--panel-c); border-radius:5px; overflow:hidden; }
.project-fact { padding:22px 24px; border-right:1px solid var(--line); }
.project-fact:last-child { border-right:0; }
.project-fact span { display:block; margin-bottom:8px; color:var(--muted); font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; }
.project-fact strong { color:var(--text); font-family:var(--f-display); font-size:18px; font-weight:600; }
.project-milestones { --milestone-accent:var(--acc); position:relative; isolation:isolate; width:var(--rail); max-width:var(--maxw);
  margin:68px auto 0; overflow:hidden; border:1px solid var(--line-2); border-radius:7px;
  background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.98),rgba(var(--tint-lo-ch),.98)); box-shadow:0 28px 90px rgba(0,0,0,.28); }
.project-milestones--purple { --milestone-accent:var(--purple); }
.project-milestones--pink { --milestone-accent:var(--acc2); }
.project-milestones--cyan { --milestone-accent:var(--cyan); }
.project-milestones--ember { --milestone-accent:var(--ember); }
.project-milestones::before { content:""; position:absolute; z-index:-1; top:0; left:0; width:42%; height:2px;
  background:linear-gradient(90deg,var(--milestone-accent),transparent); box-shadow:0 0 22px color-mix(in srgb,var(--milestone-accent) 55%,transparent); }
.project-milestones__grid { position:absolute; z-index:-2; inset:0; opacity:.32; pointer-events:none;
  background-image:linear-gradient(rgba(var(--fg-ch),.025) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.025) 1px,transparent 1px);
  background-size:34px 34px; mask-image:linear-gradient(140deg,#000,transparent 74%); }
.project-milestones__head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:44px; align-items:start; padding:46px 48px 38px; }
.project-milestones__head h2 { max-width:760px; margin:10px 0 14px; font-size:clamp(34px,4.2vw,58px); line-height:.98; text-transform:uppercase; }
.project-milestones__head p { max-width:790px; margin:0; color:var(--text-3); font-size:16px; line-height:1.7; }
.project-milestones__snapshot { display:flex; align-items:center; gap:9px; margin-top:4px; padding:7px 10px;
  border:1px solid color-mix(in srgb,var(--milestone-accent) 28%,var(--line)); color:color-mix(in srgb,var(--milestone-accent) 70%,var(--mix-ink));
  background:color-mix(in srgb,var(--milestone-accent) 5%,transparent); font:10px var(--f-mono); letter-spacing:.09em; white-space:nowrap; }
.project-milestones__snapshot span { width:6px; height:6px; border-radius:50%; background:var(--milestone-accent); box-shadow:0 0 10px var(--milestone-accent); }
.project-milestones__stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(var(--tint-lo-ch),.42); }
.project-milestones__stats > div { padding:24px 28px; border-right:1px solid var(--line); }
.project-milestones__stats > div:last-child { border-right:0; }
.project-milestones__stats strong { display:block; margin-bottom:7px; color:var(--text); font:600 25px var(--f-display); letter-spacing:-.01em; }
.project-milestones__stats span { display:block; color:var(--muted); font:9.5px var(--f-mono); letter-spacing:.09em; text-transform:uppercase; }
.project-milestones__list { margin:0; padding:0 48px 16px; list-style:none; }
.project-milestone { position:relative; display:grid; grid-template-columns:76px minmax(0,1fr) 170px; gap:28px; align-items:center; min-height:158px; border-bottom:1px solid var(--line); }
.project-milestone:last-child { border-bottom:0; }
.project-milestone__rail { align-self:stretch; position:relative; display:flex; align-items:center; justify-content:flex-start; }
.project-milestone__rail::before { content:""; position:absolute; left:19px; top:0; bottom:0; width:1px; background:var(--line-2); }
.project-milestone:first-child .project-milestone__rail::before { top:50%; }
.project-milestone:last-child .project-milestone__rail::before { bottom:50%; }
.project-milestone__rail span { position:relative; z-index:1; display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--line-2); border-radius:50%;
  color:var(--muted-2); background:var(--panel-b); font:10.5px var(--f-mono); letter-spacing:.06em; }
.project-milestone__status { display:inline-flex; align-items:center; gap:7px; margin-bottom:9px; color:var(--muted-2); font:9.5px var(--f-mono); letter-spacing:.11em; }
.project-milestone__status::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; }
.project-milestone h3 { margin:0 0 9px; font-size:21px; text-transform:uppercase; }
.project-milestone p { max-width:760px; margin:0; color:var(--text-3); font-size:14.5px; line-height:1.6; }
.project-milestone__metric { justify-self:end; max-width:170px; padding:6px 9px; border:1px solid var(--line); color:var(--muted-2);
  font:9.5px var(--f-mono); letter-spacing:.08em; text-align:right; }
.project-milestone--complete .project-milestone__rail span { border-color:rgba(54,194,180,.42); color:var(--teal2); box-shadow:inset 0 0 18px rgba(54,194,180,.07); }
.project-milestone--complete .project-milestone__rail::before { background:rgba(54,194,180,.3); }
.project-milestone--complete .project-milestone__status,.project-milestone--complete .project-milestone__metric { color:var(--teal2); border-color:rgba(54,194,180,.22); }
.project-milestone--active { background:linear-gradient(90deg,color-mix(in srgb,var(--milestone-accent) 5%,transparent),transparent 62%); }
.project-milestone--active .project-milestone__rail span { border-color:var(--milestone-accent); color:var(--milestone-accent); box-shadow:0 0 18px color-mix(in srgb,var(--milestone-accent) 22%,transparent); }
.project-milestone--active .project-milestone__status,.project-milestone--active .project-milestone__metric { color:var(--milestone-accent); border-color:color-mix(in srgb,var(--milestone-accent) 28%,transparent); }
.project-milestone--gated .project-milestone__rail span { border-color:rgba(255,176,32,.45); color:var(--acc); }
.project-milestone--gated .project-milestone__status,.project-milestone--gated .project-milestone__metric { color:var(--acc); border-color:rgba(255,176,32,.24); }
.project-milestone--queued { opacity:.72; }
.project-story { --story-accent:var(--acc); position:relative; isolation:isolate; width:var(--rail); max-width:var(--maxw); margin:68px auto 0;
  overflow:hidden; border:1px solid var(--line-2); border-radius:7px;
  background:linear-gradient(155deg,rgba(var(--tint-hi-ch),.98),rgba(var(--tint-lo-ch),.99) 58%); box-shadow:0 28px 90px rgba(0,0,0,.2); }
.project-story--purple { --story-accent:var(--purple); }
.project-story--pink { --story-accent:var(--acc2); }
.project-story--cyan { --story-accent:var(--cyan); }
.project-story--ember { --story-accent:var(--ember); }
.project-story::before { content:""; position:absolute; z-index:2; top:0; left:0; width:32%; height:2px;
  background:linear-gradient(90deg,var(--story-accent),transparent); box-shadow:0 0 24px color-mix(in srgb,var(--story-accent) 52%,transparent); }
.project-story__grid { position:absolute; z-index:-1; inset:0; opacity:.28; pointer-events:none;
  background-image:linear-gradient(rgba(var(--fg-ch),.024) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.024) 1px,transparent 1px);
  background-size:34px 34px; mask-image:linear-gradient(125deg,#000,transparent 58%); }
.project-story__head { display:grid; grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr); gap:70px; align-items:end; padding:50px 48px 42px; border-bottom:1px solid var(--line); }
.project-story__head h2 { max-width:680px; margin:10px 0 0; font-size:clamp(36px,4.3vw,60px); line-height:.98; text-transform:uppercase; }
.project-story__head > p { max-width:640px; margin:0; color:var(--text-3); font-size:16px; line-height:1.72; }
.project-story__lead { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-bottom:1px solid var(--line); background:rgba(var(--tint-lo-ch),.42); }
.project-story__lead > p { margin:0; padding:30px 48px 32px; color:var(--text-2); font-size:17px; line-height:1.72; }
.project-story__lead > p + p { border-left:1px solid var(--line); }
.project-story__timeline { padding:8px 48px 18px; }
.project-chapter { display:grid; grid-template-columns:190px minmax(0,1fr); gap:38px; padding:40px 0 42px; border-bottom:1px solid var(--line); }
.project-chapter:last-child { border-bottom:0; }
.project-chapter__rail { position:relative; min-height:54px; padding:5px 0 0 58px; }
.project-chapter__rail::before { content:""; position:absolute; left:18px; top:-40px; bottom:-42px; width:1px; background:var(--line-2); }
.project-chapter:first-child .project-chapter__rail::before { top:20px; }
.project-chapter:last-child .project-chapter__rail::before { bottom:calc(100% - 21px); }
.project-chapter__rail > span { position:absolute; z-index:1; top:0; left:0; display:grid; place-items:center; width:38px; height:38px;
  border:1px solid color-mix(in srgb,var(--story-accent) 42%,var(--line)); border-radius:50%; color:color-mix(in srgb,var(--story-accent) 72%,var(--mix-ink));
  background:var(--panel-b); box-shadow:inset 0 0 18px color-mix(in srgb,var(--story-accent) 7%,transparent); font:9.5px var(--f-mono); letter-spacing:.05em; }
.project-chapter__rail small { display:block; max-width:125px; color:color-mix(in srgb,var(--story-accent) 64%,var(--muted));
  font:9.5px/1.5 var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.project-chapter__body { max-width:880px; }
.project-chapter__body h3 { margin:0 0 15px; font-size:clamp(24px,2.5vw,32px); line-height:1.05; text-transform:uppercase; }
.project-chapter__copy { color:var(--text-2); font-size:16.5px; line-height:1.72; }
.project-chapter__copy p { margin:0 0 1em; }
.project-chapter__copy p:last-child { margin-bottom:0; }
.project-chapter__copy em { color:var(--text); }
.project-chapter__copy a { color:color-mix(in srgb,var(--story-accent) 78%,var(--mix-ink)); border-bottom:1px solid color-mix(in srgb,var(--story-accent) 35%,transparent); }
.project-chapter__copy a:hover { border-color:var(--story-accent); }
.project-chapter__copy ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 12px; margin:8px 0 0; padding:0; list-style:none; }
.project-chapter__copy li { margin:0; }
.project-chapter__copy li a { display:block; height:100%; padding:12px 14px; border:1px solid var(--line); background:rgba(var(--fg-ch),.018); font:11.5px/1.5 var(--f-mono); }
.project-chapter__copy li a:hover { border-color:color-mix(in srgb,var(--story-accent) 45%,var(--line)); background:color-mix(in srgb,var(--story-accent) 4%,transparent); }
.project-chapter--policy .project-chapter__rail > span { border-color:rgba(255,95,154,.5); color:var(--pink-text); }
.project-chapter--warning .project-chapter__rail > span { border-color:rgba(255,176,32,.42); color:var(--acc); }
.project-chapter--warning .project-chapter__rail small { color:color-mix(in srgb,var(--acc) 68%,var(--muted)); }
.project-chapter--engine .project-chapter__rail > span { border-color:rgba(53,200,212,.44); color:var(--cyan-text); }
.project-chapter--engine .project-chapter__rail small { color:color-mix(in srgb,var(--cyan) 68%,var(--muted)); }
.project-chapter--active { background:linear-gradient(90deg,color-mix(in srgb,var(--story-accent) 4%,transparent),transparent 78%); }
.project-chapter--active .project-chapter__rail > span { box-shadow:0 0 18px color-mix(in srgb,var(--story-accent) 18%,transparent); }
.project-prose { max-width:880px; padding-top:68px; }
.project-prose h2 { margin-top:2.2em; }
.related-dispatches { padding-top:58px; }
.dispatch-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.dispatch-card { padding:24px; border:1px solid var(--line); border-radius:5px; background:linear-gradient(160deg,var(--panel-hover),var(--panel-b)); transition:.25s; }
.dispatch-card:hover { transform:translateY(-3px); border-color:rgba(255,176,32,.35); }
.dispatch-card time { color:var(--acc); font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; }
.dispatch-card h3 { margin:12px 0 9px; font-size:20px; text-transform:uppercase; }
.dispatch-card p { margin:0 0 15px; color:var(--text-3); font-size:14.5px; line-height:1.55; }
.dispatch-card > span { color:var(--acc); font-family:var(--f-mono); font-size:11.5px; }

/* ============================================================
   PROJECT EXPERIENCES
   Four independent visual systems share only the site typography,
   spacing rail and related-content handoff.
   ============================================================ */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.project-related { --related-accent:var(--acc); }
.project-related--purple { --related-accent:var(--purple); }
.project-related--pink { --related-accent:var(--acc2); }
.project-related--cyan { --related-accent:var(--cyan); }
.project-related--ember { --related-accent:var(--ember); }
.project-related .eyebrow,.project-related .btn-link,.project-related .dispatch-card time,.project-related .dispatch-card > span { color:var(--related-accent); }
.project-related .btn-link { border-color:color-mix(in srgb,var(--related-accent) 35%,transparent); }
.project-related .dispatch-card:hover { border-color:color-mix(in srgb,var(--related-accent) 38%,transparent); }
.project-back-link { --back-accent:var(--acc); }
.project-back-link--purple { --back-accent:var(--purple); }
.project-back-link--pink { --back-accent:var(--acc2); }
.project-back-link--cyan { --back-accent:var(--cyan); }
.project-back-link--ember { --back-accent:var(--ember); }
.project-back-link a:hover { color:var(--back-accent); }

/* AotU second pass: cinematic game showcase, deliberately separate from the field-record experiment above. */
.ashes-page { --ashes:var(--ember); --ashes-hot:#ffb06f; --ashes-cool:#6fb9c6; }
.ashes-hero { position:relative; min-height:760px; overflow:hidden; border-bottom:1px solid rgba(219,123,69,.24); background:#050608; }
.ashes-hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; filter:saturate(.88) contrast(1.03); }
.ashes-hero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,5,7,.92) 0%,rgba(4,5,7,.58) 40%,rgba(4,5,7,.08) 74%),linear-gradient(0deg,rgba(4,5,7,.9),transparent 34%,rgba(4,5,7,.2) 70%,rgba(4,5,7,.64)); }
.ashes-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:var(--maxw); min-height:760px; margin:0 auto; padding:54px 0 42px; display:flex; flex-direction:column; justify-content:space-between; }
.ashes-hero__top,.ashes-hero__foot { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.ashes-hero__top > span { color:var(--ashes-hot); font:9.5px var(--f-mono); letter-spacing:.16em; text-transform:uppercase; }
.ashes-hero__top > strong { display:flex; align-items:center; gap:8px; padding:6px 10px; border:1px solid rgba(219,123,69,.36); color:#e7b28d; background:rgba(6,7,9,.52); font:8.5px var(--f-mono); font-weight:400; letter-spacing:.11em; }
.ashes-hero__top i { width:5px; height:5px; border-radius:50%; background:var(--ashes-hot); box-shadow:0 0 10px var(--ashes-hot); }
.ashes-hero__title { max-width:820px; margin-top:auto; padding:80px 0 36px; }
.ashes-hero h1 { margin:0 0 23px; color:#f3f0eb; font-size:clamp(58px,7.4vw,104px); line-height:.84; letter-spacing:-.04em; text-transform:uppercase; text-shadow:0 15px 55px #000; }
.ashes-hero__title p { max-width:680px; margin:0; color:#c6c2bb; font-size:19px; line-height:1.62; text-shadow:0 3px 18px #000; }
.ashes-hero__tags { display:flex; flex-wrap:wrap; gap:8px; }
.ashes-hero__tags span { padding:5px 9px; border:1px solid rgba(219,123,69,.28); color:#d5a27d; background:rgba(5,6,8,.56); font:8.5px var(--f-mono); letter-spacing:.08em; }
.ashes-hero__foot small { color:var(--muted); font:8.5px var(--f-mono); letter-spacing:.09em; text-transform:uppercase; }
.ashes-intro,.ashes-thesis,.ashes-feature,.ashes-systems,.ashes-proof,.ashes-current { width:var(--rail); max-width:var(--maxw); margin-right:auto; margin-left:auto; }
.ashes-intro { padding-top:86px; display:grid; grid-template-columns:.8fr 1.2fr; gap:54px 90px; align-items:start; }
.ashes-intro__title > span,.ashes-thesis span,.ashes-feature__copy > span,.ashes-systems__head > span,.ashes-proof header > span,.ashes-current > div > span { color:var(--ashes); font:9.5px var(--f-mono); letter-spacing:.15em; text-transform:uppercase; }
.ashes-intro h2,.ashes-thesis h2,.ashes-feature h2,.ashes-systems h2,.ashes-proof h2,.ashes-current h2 { margin:13px 0 0; font-size:clamp(38px,4.8vw,66px); line-height:.96; text-transform:uppercase; }
.ashes-intro__copy { color:var(--text-2); font-size:17px; line-height:1.74; }
.ashes-intro__copy p:last-child { margin-bottom:0; }
.ashes-intro__scale { grid-column:1 / -1; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(219,123,69,.22); border-bottom:1px solid var(--line-2); }
.ashes-intro__scale > div { padding:23px 22px; border-right:1px solid var(--line); }
.ashes-intro__scale > div:last-child { border-right:0; }
.ashes-intro__scale strong { display:block; margin-bottom:7px; color:var(--text); font:600 19px var(--f-display); }
.ashes-intro__scale span,.ashes-intro__scale small { display:block; color:var(--muted); font:8.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.ashes-intro__scale small { margin-top:5px; color:var(--muted-2); }
.ashes-thesis { margin-top:74px; padding:44px 48px; display:grid; grid-template-columns:70px minmax(300px,.75fr) minmax(0,1.25fr); gap:42px; align-items:start; border:1px solid rgba(219,123,69,.2); background:linear-gradient(125deg,rgba(219,123,69,.07),rgba(var(--tint-lo-ch),.88)); }
.ashes-thesis__index { color:var(--faint); font:500 34px var(--f-display); }
.ashes-thesis h2 { font-size:clamp(30px,3.6vw,48px); }
.ashes-thesis__copy,.ashes-feature__copy > div,.ashes-systems__head > div,.ashes-proof__record > div:last-child,.ashes-current > div:last-child { color:var(--text-2); font-size:15.5px; line-height:1.7; }
.ashes-thesis__copy p:last-child,.ashes-feature__copy p:last-child,.ashes-systems__head p:last-child,.ashes-proof__record p:last-child,.ashes-current p:last-child { margin-bottom:0; }
.ashes-feature { margin-top:88px; display:grid; grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr); gap:64px; align-items:center; }
.ashes-feature--image-left { grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr); }
.ashes-feature figure { margin:0; overflow:hidden; border:1px solid rgba(219,123,69,.18); background:var(--deep-2); box-shadow:0 26px 80px rgba(0,0,0,.3); }
.ashes-feature figure img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.ashes-feature figure figcaption,.ashes-proof figcaption { padding:11px 13px; border-top:1px solid var(--line); color:var(--muted); font:8.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.ashes-feature__copy { padding:14px 0; }
.ashes-feature h2 { margin-bottom:24px; font-size:clamp(36px,4vw,56px); }
.ashes-systems { margin-top:88px; padding:48px; display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; border:1px solid var(--line-2); background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.92),rgba(var(--tint-lo-ch),.92)); }
.ashes-systems__head h2 { margin-bottom:24px; font-size:clamp(36px,4vw,55px); }
.ashes-systems__map { display:grid; grid-template-columns:1fr 1fr; gap:9px; align-content:center; }
.ashes-systems__core { grid-column:1 / -1; margin-bottom:5px; padding:18px 20px; display:flex; justify-content:space-between; align-items:center; border:1px solid rgba(219,123,69,.3); background:rgba(219,123,69,.045); }
.ashes-systems__core span { color:var(--ashes); font:8.5px var(--f-mono); letter-spacing:.1em; }
.ashes-systems__core strong { font:600 16px var(--f-display); }
.ashes-system { position:relative; display:flex; align-items:center; gap:10px; min-height:48px; padding:11px 13px; border:1px solid var(--line); color:var(--text-3); font:10.5px var(--f-mono); }
.ashes-system i { width:5px; height:5px; border-radius:50%; background:var(--faint); }
.ashes-proof { padding-top:92px; }
.ashes-proof > header { display:grid; grid-template-columns:.8fr 1fr; gap:24px 76px; align-items:end; margin-bottom:34px; }
.ashes-proof > header > span { grid-column:1 / -1; }
.ashes-proof header p { margin:0; color:var(--text-3); font-size:15.5px; line-height:1.65; }
.ashes-proof__grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ashes-proof figure { margin:0; overflow:hidden; border:1px solid var(--line-2); background:var(--deep-2); }
.ashes-proof figure img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.ashes-proof__record { margin-top:16px; padding:32px 35px; display:grid; grid-template-columns:330px 1fr; gap:54px; border-left:2px solid var(--ashes-cool); background:rgba(111,185,198,.035); }
.ashes-proof__record span { color:var(--ashes-cool); font:8.5px var(--f-mono); letter-spacing:.1em; }
.ashes-proof__record h3 { margin:12px 0 0; font-size:28px; text-transform:uppercase; }
.ashes-current { margin-top:18px; padding:35px; display:grid; grid-template-columns:380px 1fr; gap:60px; border:1px solid rgba(219,123,69,.19); background:rgba(219,123,69,.028); }
.ashes-current h2 { font-size:31px; }

/* ---------- HubN / network control plane ---------- */
.hubn-page { --hubn:var(--acc); --hubn-cyan:var(--cyan2); }
.hubn-hero { position:relative; overflow:hidden; border-bottom:1px solid rgba(255,176,32,.22); background:radial-gradient(circle at 78% 24%,rgba(255,176,32,.1),transparent 30%),var(--deep); }
.hubn-hero::before { content:""; position:absolute; inset:0; opacity:.5; background-image:linear-gradient(rgba(var(--fg-ch),.027) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.027) 1px,transparent 1px); background-size:38px 38px; mask-image:linear-gradient(90deg,transparent 18%,#000); }
.hubn-hero__mesh { position:absolute; inset:0; pointer-events:none; opacity:.55; background:linear-gradient(24deg,transparent 50%,rgba(255,176,32,.14) 50.1%,transparent 50.3%),linear-gradient(-18deg,transparent 67%,rgba(78,214,222,.12) 67.1%,transparent 67.3%); }
.hubn-hero__mesh span { position:absolute; width:8px; height:8px; border:1px solid var(--hubn); border-radius:50%; background:var(--deep); box-shadow:0 0 14px rgba(255,176,32,.48); }
.hubn-hero__mesh span:nth-child(1){left:57%;top:18%}.hubn-hero__mesh span:nth-child(2){left:76%;top:35%}.hubn-hero__mesh span:nth-child(3){left:65%;top:69%}.hubn-hero__mesh span:nth-child(4){left:89%;top:72%}.hubn-hero__mesh span:nth-child(5){left:48%;top:82%}
.hubn-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:84px 0 70px; display:grid; grid-template-columns:minmax(0,1fr) 470px; gap:86px; align-items:center; }
.hubn-hero__route,.hubn-topology header span,.hubn-services header span,.hubn-route header span,.hubn-state__copy > span,.hubn-trust header > span { color:var(--hubn); font:9.5px var(--f-mono); letter-spacing:.16em; text-transform:uppercase; }
.hubn-hero__identity img { width:min(100%,460px); max-height:170px; margin:30px 0 29px; object-fit:contain; object-position:left center; filter:drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff) drop-shadow(0 0 24px rgba(255,176,32,.18)); }
.hubn-hero__identity > p { max-width:650px; margin:0 0 25px; color:var(--text-2); font-size:19px; line-height:1.68; }
.hubn-hero__tags { display:flex; flex-wrap:wrap; gap:8px; }
.hubn-hero__tags span { padding:5px 9px; border:1px solid rgba(255,176,32,.25); color:var(--amber-text); font:9.5px var(--f-mono); letter-spacing:.08em; }
.hubn-hero__control { border:1px solid rgba(var(--fg-ch),.1); background:rgba(var(--tint-lo-ch),.76); box-shadow:0 25px 80px rgba(0,0,0,.32); }
.hubn-control__bar { display:flex; justify-content:space-between; gap:12px; padding:13px 16px; border-bottom:1px solid var(--line); font:8.5px var(--f-mono); letter-spacing:.1em; }
.hubn-control__bar span { display:flex; align-items:center; gap:8px; color:var(--hubn); }
.hubn-control__bar i { width:5px; height:5px; border-radius:50%; background:var(--hubn); box-shadow:0 0 9px var(--hubn); }
.hubn-control__bar strong { color:var(--muted-2); font-weight:400; }
.hubn-control__facts { display:grid; grid-template-columns:1fr 1fr; }
.hubn-control__facts > div { min-height:104px; padding:20px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.hubn-control__facts > div:nth-child(2n) { border-right:0; }
.hubn-control__facts > div:nth-last-child(-n+2) { border-bottom:0; }
.hubn-control__facts span { display:block; margin-bottom:10px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.hubn-control__facts strong { color:var(--text); font:600 17px/1.25 var(--f-display); }
.hubn-topology,.hubn-services,.hubn-route,.hubn-trust { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding-top:82px; }
.hubn-topology > header { display:grid; grid-template-columns:minmax(0,.8fr) minmax(380px,1.2fr); gap:70px; align-items:end; margin-bottom:38px; }
.hubn-topology h2,.hubn-services h2,.hubn-route h2,.hubn-state h2,.hubn-trust h2 { margin:12px 0 0; font-size:clamp(38px,4.5vw,62px); line-height:.98; text-transform:uppercase; }
.hubn-topology__lead { color:var(--text-2); font-size:17px; line-height:1.72; }
.hubn-topology__lead p:last-child { margin:0; }
.hubn-topology__figure { margin:0; overflow:hidden; border:1px solid rgba(255,176,32,.18); background:var(--deep-2); box-shadow:0 28px 80px rgba(0,0,0,.24); }
.hubn-topology__chrome { display:flex; justify-content:space-between; gap:18px; padding:12px 15px; border-bottom:1px solid var(--line); color:var(--hubn); font:8.5px var(--f-mono); letter-spacing:.1em; }
.hubn-topology__chrome i { color:var(--hubn-cyan); font-style:normal; }
.hubn-topology__figure img { width:100%; aspect-ratio:2.25/1; object-fit:contain; padding:20px; background:radial-gradient(circle at 50% 50%,rgba(78,214,222,.045),transparent 60%); }
.hubn-topology__figure figcaption { padding:13px 15px; border-top:1px solid var(--line); color:var(--muted-2); font:9.5px/1.5 var(--f-mono); letter-spacing:.06em; }
.hubn-services > header { display:grid; grid-template-columns:1fr 1fr; gap:62px; align-items:end; margin-bottom:34px; }
.hubn-services > header p,.hubn-route > header p { margin:0; color:var(--text-3); font-size:16px; line-height:1.65; }
.hubn-services__grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-2); border-left:1px solid var(--line-2); }
.hubn-services article { position:relative; min-height:240px; padding:27px 24px 24px; border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2); background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.72),rgba(var(--tint-lo-ch),.72)); }
.hubn-services article::after { content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--hubn); transition:right .35s; }
.hubn-services article:hover::after { right:0; }
.hubn-service__id { color:var(--muted-2); font:9.5px var(--f-mono); }
.hubn-services h3 { margin:31px 0 10px; font-size:21px; text-transform:uppercase; }
.hubn-services p { margin:0 0 20px; color:var(--text-3); font-size:14px; line-height:1.55; }
.hubn-services article > span { position:absolute; left:24px; bottom:22px; color:var(--hubn); font:8.5px var(--f-mono); letter-spacing:.11em; }
.hubn-route > header { display:grid; grid-template-columns:1fr 1fr; gap:62px; align-items:end; margin-bottom:36px; }
.hubn-route__flow { display:grid; grid-template-columns:repeat(4,1fr); margin:0; padding:0; list-style:none; }
.hubn-route__flow li { position:relative; min-height:228px; padding:26px 27px; border-top:1px solid rgba(255,176,32,.24); border-bottom:1px solid var(--line); }
.hubn-route__flow li + li { border-left:1px solid var(--line); }
.hubn-route__flow li:not(:last-child)::after { content:""; position:absolute; z-index:2; top:30px; right:-5px; width:9px; height:9px; border-top:1px solid var(--hubn); border-right:1px solid var(--hubn); transform:rotate(45deg); background:var(--bg); }
.hubn-route__flow > li > span { color:var(--hubn); font:9.5px var(--f-mono); }
.hubn-route__flow h3 { margin:34px 0 11px; font-size:20px; text-transform:uppercase; }
.hubn-route__flow p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.hubn-state { width:var(--rail); max-width:var(--maxw); margin:82px auto 0; padding:45px; display:grid; grid-template-columns:minmax(0,1fr) minmax(410px,.9fr); gap:68px; border:1px solid rgba(78,214,222,.18); background:linear-gradient(135deg,rgba(78,214,222,.045),rgba(255,176,32,.025)); }
.hubn-state__copy p { color:var(--text-3); font-size:15.5px; line-height:1.7; }
.hubn-state__copy p:first-of-type { margin-top:20px; }
.hubn-state__matrix { align-self:center; border:1px solid var(--line-2); background:rgba(var(--tint-lo-ch),.55); }
.hubn-state__matrix-head { display:grid!important; grid-template-columns:1fr 1fr; padding:10px 13px!important; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; }
.hubn-state__matrix-head span:last-child { text-align:right; }
.hubn-state__matrix > div { display:grid; grid-template-columns:1fr 28px 1fr; align-items:center; min-height:58px; padding:10px 13px; border-bottom:1px solid var(--line); }
.hubn-state__matrix > div:last-child { border-bottom:0; }
.hubn-state__matrix > div > span,.hubn-state__matrix > div > strong { font:10.5px/1.35 var(--f-mono); }
.hubn-state__matrix > div > span { color:var(--amber-text); }
.hubn-state__matrix > div > strong { color:var(--hubn-cyan); text-align:right; font-weight:400; }
.hubn-state__matrix i { width:20px; height:1px; background:linear-gradient(90deg,var(--hubn),var(--hubn-cyan)); }
.hubn-trust > header { margin-bottom:35px; }
.hubn-trust__grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line-2); }
.hubn-trust article { padding:30px; border-right:1px solid var(--line-2); }
.hubn-trust article:last-child { border-right:0; }
.hubn-trust article > div { color:var(--hubn); font:9.5px var(--f-mono); letter-spacing:.1em; }
.hubn-trust h3 { margin:30px 0 6px; font-size:24px; text-transform:uppercase; }
.hubn-trust article strong { color:var(--hubn-cyan); font:9.5px var(--f-mono); letter-spacing:.07em; }
.hubn-trust article p { margin:18px 0 0; color:var(--text-3); font-size:14.5px; line-height:1.62; }
.hubn-publication { display:grid; grid-template-columns:220px 1fr; gap:36px; margin-top:18px; padding:28px 30px; border:1px solid rgba(255,176,32,.2); background:rgba(255,176,32,.025); }
.hubn-publication > span { color:var(--hubn); font:9.5px var(--f-mono); letter-spacing:.12em; }
.hubn-publication p { margin:0 0 1em; color:var(--text-2); font-size:15px; line-height:1.65; }
.hubn-publication p:last-child { margin:0; }

/* SkyeEngine second pass: a compact technical manual instead of a poster wall. */
.skye-page { --skye:var(--purple2); --skye-cyan:var(--cyan2); }
.skye-manual-hero { position:relative; border-bottom:1px solid rgba(165,143,255,.2); background:linear-gradient(150deg,var(--panel-c),var(--deep) 68%); overflow:hidden; }
.skye-manual-hero::before { content:""; position:absolute; inset:0; opacity:.42; background-image:linear-gradient(rgba(165,143,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(165,143,255,.035) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(125deg,#000,transparent 70%); }
.skye-manual-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:1180px; margin:0 auto; padding:66px 0 58px; }
.skye-manual-hero__meta { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.skye-manual-hero__meta > span,.skye-manual-intro span,.skye-workbench header span,.skye-record__copy > span,.skye-lineage header span,.skye-execution header span,.skye-components header > span { color:var(--skye); font:9.5px var(--f-mono); letter-spacing:.15em; text-transform:uppercase; }
.skye-manual-hero__meta > strong { display:flex; align-items:center; gap:8px; padding:6px 10px; border:1px solid rgba(165,143,255,.3); color:var(--purple-text); font:8.5px var(--f-mono); font-weight:400; letter-spacing:.1em; }
.skye-manual-hero__meta i { width:5px; height:5px; border-radius:50%; background:var(--skye); box-shadow:0 0 9px var(--skye); }
.skye-manual-hero__inner > img { width:min(100%,700px); margin:76px 0 34px; }
.skye-manual-hero__bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; }
.skye-manual-hero__bottom p { max-width:670px; margin:0; color:var(--text-2); font-size:19px; line-height:1.65; }
.skye-manual-hero__facts { display:grid; grid-template-columns:repeat(4,1fr); margin-top:45px; border-top:1px solid rgba(165,143,255,.2); border-bottom:1px solid var(--line-2); }
.skye-manual-hero__facts > div { padding:20px 18px; border-right:1px solid var(--line); }
.skye-manual-hero__facts > div:last-child { border-right:0; }
.skye-manual-hero__facts span { display:block; margin-bottom:7px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.skye-manual-hero__facts strong { color:var(--text-2); font:600 16px var(--f-display); }
.skye-manual-intro,.skye-workbench,.skye-record,.skye-lineage,.skye-execution,.skye-components { width:var(--rail); max-width:1180px; margin-right:auto; margin-left:auto; }
.skye-manual-intro { padding-top:82px; display:grid; grid-template-columns:.82fr 1.18fr; gap:82px; }
.skye-manual-intro h2,.skye-workbench h2,.skye-record h2,.skye-lineage h2,.skye-execution h2,.skye-components h2 { margin:13px 0 0; font-size:clamp(36px,4.5vw,58px); line-height:.97; text-transform:uppercase; }
.skye-manual-intro > div:last-child { color:var(--text-2); font-size:16.5px; line-height:1.72; }
.skye-manual-intro p:last-child { margin-bottom:0; }
.skye-workbench,.skye-lineage,.skye-execution,.skye-components { padding-top:78px; }
.skye-workbench > header,.skye-execution > header { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; margin-bottom:31px; }
.skye-workbench header p,.skye-execution header p { margin:0; color:var(--text-3); font-size:15px; line-height:1.65; }
.skye-workbench__flow { display:grid; grid-template-columns:repeat(7,1fr); padding:24px 18px; border:1px solid rgba(165,143,255,.18); background:rgba(165,143,255,.025); }
.skye-workbench__stage { position:relative; min-width:0; text-align:center; }
.skye-workbench__stage > span { display:grid; place-items:center; width:30px; height:30px; margin:0 auto 12px; border:1px solid rgba(165,143,255,.38); border-radius:50%; color:var(--skye); font:8.5px var(--f-mono); }
.skye-workbench__stage > strong { color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.skye-workbench__stage > i { position:absolute; top:7px; right:-4px; color:var(--faint); font:11.5px var(--f-mono); font-style:normal; }
.skye-fabric-feature { position:relative; isolation:isolate; width:var(--rail); max-width:1320px; margin:92px auto 0; border:1px solid rgba(99,213,220,.22); background:linear-gradient(145deg,rgba(99,213,220,.025),rgba(165,143,255,.035) 52%,rgba(var(--tint-lo-ch),.96)); box-shadow:0 26px 80px rgba(0,0,0,.24); overflow:hidden; }
.skye-fabric-feature::before { content:""; position:absolute; z-index:-1; inset:-180px auto auto -120px; width:520px; height:520px; border-radius:50%; background:rgba(99,213,220,.07); filter:blur(100px); pointer-events:none; }
.skye-fabric-feature__banner { position:relative; min-height:170px; display:grid; place-items:center; border-bottom:1px solid rgba(99,213,220,.2); background:radial-gradient(circle at 50% 50%,rgba(99,213,220,.08),transparent 62%),var(--deep-2); overflow:hidden; }
.skye-fabric-feature__banner::after { content:"DISTRIBUTED EXECUTION / IDENTITY / ROUTING / TRANSFER"; position:absolute; right:20px; bottom:14px; color:rgba(99,213,220,.44); font:7.5px var(--f-mono); letter-spacing:.14em; }
.skye-fabric-feature__banner img { display:block; width:min(82%,1040px); max-height:210px; padding:34px 0; object-fit:contain; filter:drop-shadow(0 0 22px rgba(99,213,220,.13)); }
.skye-fabric-feature > header { display:grid; grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr); gap:80px; align-items:end; padding:58px 58px 49px; }
.skye-fabric-feature > header span { color:var(--skye-cyan); font:9.5px var(--f-mono); letter-spacing:.15em; text-transform:uppercase; }
.skye-fabric-feature > header h2 { max-width:720px; margin:15px 0 0; font-size:clamp(41px,4.7vw,65px); line-height:.95; text-transform:uppercase; }
.skye-fabric-feature > header p { margin:0; color:var(--text-2); font-size:16px; line-height:1.7; }
.skye-fabric-feature__stats { display:grid; grid-template-columns:repeat(4,1fr); margin:0 58px 58px; border:1px solid rgba(99,213,220,.18); background:rgba(var(--tint-lo-ch),.64); }
.skye-fabric-feature__stats > div { min-width:0; padding:24px 21px; border-right:1px solid rgba(99,213,220,.13); }
.skye-fabric-feature__stats > div:last-child { border-right:0; }
.skye-fabric-feature__stats strong { display:block; margin-bottom:9px; color:var(--text); font:600 clamp(20px,2.2vw,29px) var(--f-display); }
.skye-fabric-feature__stats span { display:block; color:var(--muted-2); font:8.5px/1.5 var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.skye-fabric-feature figure { margin:0; }
.skye-fabric-feature figure img { display:block; width:100%; }
.skye-fabric-feature figcaption { padding:13px 18px; border-top:1px solid rgba(99,213,220,.12); color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.09em; text-transform:uppercase; }
.skye-fabric-feature__topology { margin:0 58px!important; border:1px solid rgba(99,213,220,.2); background:var(--deep-2); }
.skye-fabric-feature__topology img { padding:24px; }
.skye-fabric-feature__architecture { display:grid; grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr); gap:72px; padding:64px 58px; }
.skye-fabric-feature__copy { color:var(--text-2); font-size:16px; line-height:1.72; }
.skye-fabric-feature__copy::before { content:"// CONTROL WITHOUT A DATA-PLANE BOTTLENECK"; display:block; margin-bottom:24px; color:var(--skye-cyan); font:9.5px var(--f-mono); letter-spacing:.13em; }
.skye-fabric-feature__copy p:first-child { margin-top:0; }
.skye-fabric-feature__copy p:last-child { margin-bottom:0; }
.skye-fabric-feature__planes { border:1px solid rgba(165,143,255,.18); background:rgba(var(--tint-lo-ch),.58); }
.skye-fabric-feature__planes article { position:relative; display:grid; grid-template-columns:96px 1fr; gap:7px 20px; min-height:126px; padding:24px; border-bottom:1px solid rgba(165,143,255,.13); }
.skye-fabric-feature__planes article:last-child { border-bottom:0; }
.skye-fabric-feature__planes article > span { grid-row:1 / 3; color:var(--skye-cyan); font:8.5px var(--f-mono); letter-spacing:.12em; }
.skye-fabric-feature__planes h3 { margin:0; font-size:19px; text-transform:uppercase; }
.skye-fabric-feature__planes p { margin:0; color:var(--text-3); font-size:13.5px; line-height:1.58; }
.skye-fabric-feature__evidence { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(99,213,220,.17); border-bottom:1px solid rgba(99,213,220,.17); background:var(--deep-2); }
.skye-fabric-feature__evidence figure:first-child { border-right:1px solid rgba(99,213,220,.17); }
.skye-fabric-feature__evidence img { padding:22px; }
.skye-fabric-feature > footer { display:grid; grid-template-columns:1fr auto; gap:60px; align-items:center; padding:37px 58px; }
.skye-fabric-feature > footer p { max-width:760px; margin:0; color:var(--text-3); font-size:14.5px; line-height:1.65; }
.skye-fabric-feature > footer > div { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.skye-record { margin-top:78px; padding:44px; display:grid; grid-template-columns:1fr 440px; gap:68px; align-items:center; border:1px solid var(--line-2); background:linear-gradient(135deg,rgba(165,143,255,.04),rgba(var(--tint-lo-ch),.7)); }
.skye-record__copy h2 { margin-bottom:22px; }
.skye-record__copy p { color:var(--text-3); font-size:15px; line-height:1.68; }
.skye-record__copy p:last-child { margin-bottom:0; }
.skye-record__sample { border:1px solid rgba(165,143,255,.2); background:var(--deep-2); }
.skye-record__sample-head { display:flex!important; justify-content:space-between; padding:11px 13px!important; color:var(--skye); font:8.5px var(--f-mono); letter-spacing:.09em; }
.skye-record__sample-head strong { color:var(--skye-cyan)!important; font:inherit!important; font-weight:400!important; }
.skye-record__sample > div { display:grid; grid-template-columns:130px 1fr; gap:5px 14px; padding:14px; border-bottom:1px solid var(--line); }
.skye-record__sample > div:last-child { border-bottom:0; }
.skye-record__sample > div > span { grid-row:1 / 3; color:var(--skye); font:8.5px/1.4 var(--f-mono); }
.skye-record__sample > div > strong { color:var(--text-2); font:600 14px var(--f-display); }
.skye-record__sample > div > small { color:var(--muted-2); font:8.5px var(--f-mono); }
.skye-lineage > header { display:grid; grid-template-columns:.9fr 1.1fr; gap:65px; align-items:end; margin-bottom:31px; }
.skye-lineage header p { margin:0; color:var(--text-3); font-size:15px; line-height:1.65; }
.skye-lineage__stack { border:1px solid var(--line-2); }
.skye-lineage__stack article { display:grid; grid-template-columns:45px 1fr 135px; gap:24px; align-items:center; min-height:112px; padding:22px 25px; border-bottom:1px solid var(--line); background:linear-gradient(90deg,rgba(165,143,255,.03),transparent 42%); }
.skye-lineage__stack article:last-child { border-bottom:0; }
.skye-lineage__stack article > span { display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(165,143,255,.36); border-radius:50%; color:var(--skye); font:8.5px var(--f-mono); }
.skye-lineage__stack h3 { margin:0 0 7px; font-size:19px; text-transform:uppercase; }
.skye-lineage__stack p { margin:0; color:var(--text-3); font-size:14px; line-height:1.5; }
.skye-lineage__stack small { color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.08em; text-align:right; }
.skye-execution__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }
.skye-execution__grid article { padding:27px; border:1px solid rgba(165,143,255,.16); background:rgba(165,143,255,.022); }
.skye-execution__grid article > span { color:var(--skye-cyan); font:8.5px var(--f-mono); letter-spacing:.1em; }
.skye-execution__grid h3 { margin:28px 0 9px; font-size:22px; text-transform:uppercase; }
.skye-execution__grid p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.skye-components > header { margin-bottom:31px; }
.skye-components__grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line-2); }
.skye-components__grid article { padding:29px; border-right:1px solid var(--line-2); }
.skye-components__grid article:last-child { border-right:0; }
.skye-components__grid small { color:var(--skye); font:8.5px var(--f-mono); letter-spacing:.1em; }
.skye-components__grid h3 { margin:27px 0 9px; font-size:24px; text-transform:uppercase; }
.skye-components__grid p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.skye-migration > span { color:var(--skye-cyan); font:8.5px var(--f-mono); letter-spacing:.1em; }
.skye-migration p { margin:0 0 1em; color:var(--text-2); font-size:14.5px; line-height:1.65; }
.skye-migration p:last-child { margin-bottom:0; }
.skye-migration { display:grid; grid-template-columns:190px 1fr; gap:40px; margin-top:14px; padding:27px 30px; border-left:2px solid var(--skye); background:rgba(165,143,255,.03); }

/* ---------- SkyeEngine Code / operator console ---------- */
.code-page { --code:var(--cyan2); --code-green:var(--teal); --code-warn:var(--acc); }
.code-hero { position:relative; overflow:hidden; border-bottom:1px solid rgba(69,209,220,.2); background:radial-gradient(circle at 78% 18%,rgba(69,209,220,.09),transparent 35%),var(--deep-2); }
.code-hero__noise { position:absolute; inset:0; opacity:.5; background-image:linear-gradient(rgba(69,209,220,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(69,209,220,.025) 1px,transparent 1px); background-size:28px 28px; mask-image:linear-gradient(100deg,transparent,#000 40%,#000); }
.code-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:1480px; margin:0 auto; padding:74px 0 42px; display:grid; grid-template-columns:430px minmax(0,1fr); gap:60px; align-items:center; }
.code-kicker,.code-origin header > span,.code-workspace header span,.code-review__copy > span,.code-recovery header span,.code-memory header > span { color:var(--code); font:9.5px var(--f-mono); letter-spacing:.15em; text-transform:uppercase; }
.code-status { display:inline-flex; align-items:center; gap:8px; margin:20px 0 30px; padding:6px 10px; border:1px solid rgba(69,209,220,.32); color:var(--cyan-text); font:8.5px var(--f-mono); letter-spacing:.11em; }
.code-status span { width:5px; height:5px; border-radius:50%; background:var(--code-green); box-shadow:0 0 9px var(--code-green); }
.code-hero h1 { margin:0 0 22px; font-size:clamp(52px,5.8vw,86px); line-height:.84; letter-spacing:-.04em; text-transform:uppercase; }
.code-hero h1 span { display:block; color:var(--text-3); font-size:.53em; letter-spacing:.02em; }
.code-hero__copy > p { margin:0 0 25px; color:var(--text-2); font-size:18px; line-height:1.65; }
.code-window { margin:0; overflow:hidden; border:1px solid rgba(69,209,220,.24); background:var(--deep-2); box-shadow:0 28px 90px rgba(0,0,0,.48); }
.code-window__bar { display:grid; grid-template-columns:70px 1fr auto; gap:14px; align-items:center; min-height:38px; padding:9px 13px; border-bottom:1px solid var(--line); color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.08em; }
.code-window__bar > span { display:flex; gap:5px; }
.code-window__bar i { width:6px; height:6px; border-radius:50%; background:#343b44; }
.code-window__bar i:first-child { background:#c95f68; }.code-window__bar i:nth-child(2){background:#c99a50}.code-window__bar i:nth-child(3){background:#55a982}
.code-window__bar strong { color:var(--text-3); font-weight:400; }.code-window__bar small { color:var(--code); font:inherit; }
.code-window img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.code-window figcaption,.code-workflow figcaption { padding:10px 13px; border-top:1px solid var(--line); color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.07em; }
.code-hero__facts { position:relative; z-index:1; width:var(--rail); max-width:var(--maxw); margin:0 auto 52px; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line-2); background:rgba(var(--tint-lo-ch),.78); }
.code-hero__facts > div { padding:18px 21px; border-right:1px solid var(--line); }
.code-hero__facts > div:last-child { border-right:0; }
.code-hero__facts span { display:block; margin-bottom:7px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.code-hero__facts strong { color:var(--text); font:600 17px var(--f-display); }
.code-origin,.code-workspace,.code-review,.code-recovery,.code-memory,.code-boundary,.code-current { width:var(--rail); max-width:var(--maxw); margin:0 auto; }
.code-origin { padding-top:80px; display:grid; grid-template-columns:.8fr 1.2fr; gap:84px; align-items:start; }
.code-origin h2,.code-workspace h2,.code-review h2,.code-recovery h2,.code-memory h2,.code-boundary h2 { margin:12px 0 0; font-size:clamp(38px,4.5vw,62px); line-height:.97; text-transform:uppercase; }
.code-origin__body { color:var(--text-2); font-size:17px; line-height:1.72; }
.code-origin__body p:last-child { margin:0; }
.code-origin__body a,.code-boundary a { color:var(--code); border-bottom:1px solid rgba(69,209,220,.32); }
.code-workspace,.code-review,.code-recovery,.code-memory { padding-top:80px; }
.code-workspace > header { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; margin-bottom:35px; }
.code-workspace > header p { margin:0; color:var(--text-3); font-size:15.5px; line-height:1.65; }
.code-workspace__records { display:grid; grid-template-columns:repeat(4,1fr); }
.code-workspace__records article { min-height:232px; padding:27px 24px; border:1px solid var(--line-2); border-right:0; background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.84),rgba(var(--tint-lo-ch),.7)); }
.code-workspace__records article:last-child { border-right:1px solid var(--line-2); }
.code-workspace__records article > span { color:var(--code); font:9.5px var(--f-mono); letter-spacing:.1em; }
.code-workspace__records h3 { margin:35px 0 10px; font-size:21px; text-transform:uppercase; }
.code-workspace__records p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.code-review { display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:70px; align-items:start; }
.code-review__copy p { color:var(--text-3); font-size:15.5px; line-height:1.7; }
.code-review__copy p:first-of-type { margin-top:20px; }
.code-review__roles { border:1px solid var(--line-2); }
.code-review__roles > div { display:grid; grid-template-columns:28px 108px 1fr; gap:10px; align-items:center; min-height:62px; padding:10px 13px; border-bottom:1px solid var(--line); }
.code-review__roles > div:last-child { border-bottom:0; }
.code-review__roles span { color:var(--code); font:8.5px var(--f-mono); }
.code-review__roles strong { font:600 14px var(--f-display); text-transform:uppercase; }
.code-review__roles small { color:var(--muted-2); font:9.5px/1.35 var(--f-mono); }
.code-workflow { grid-column:1 / -1; margin:8px 0 0; overflow:hidden; border:1px solid rgba(69,209,220,.18); background:var(--deep-2); box-shadow:0 26px 80px rgba(0,0,0,.28); }
.code-workflow img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.code-recovery > header { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; margin-bottom:34px; }
.code-recovery > header p { margin:0; color:var(--text-3); font-size:15.5px; line-height:1.65; }
.code-recovery__states { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.code-recovery__states article { min-height:225px; padding:25px; border:1px solid var(--line-2); }
.code-recovery__states article > span { color:var(--code-warn); font:8.5px var(--f-mono); letter-spacing:.1em; }
.code-recovery__states h3 { margin:35px 0 10px; font-size:20px; text-transform:uppercase; }
.code-recovery__states p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.code-recovery__state--denied { border-color:rgba(213,89,104,.25)!important; }.code-recovery__state--denied > span{color:var(--pink-text)!important}
.code-recovery__state--paused { border-color:rgba(255,176,32,.23)!important; }
.code-recovery__state--recovered { border-color:rgba(83,212,165,.25)!important; }.code-recovery__state--recovered > span{color:var(--code-green)!important}
.code-memory > header { margin-bottom:34px; }
.code-memory__split { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.code-memory__split article { padding:34px; border:1px solid rgba(69,209,220,.16); background:linear-gradient(135deg,rgba(69,209,220,.035),transparent); }
.code-memory__split small { color:var(--code); font:8.5px var(--f-mono); letter-spacing:.12em; }
.code-memory__split h3 { margin:27px 0 12px; font-size:27px; text-transform:uppercase; }
.code-memory__split p { min-height:68px; margin:0 0 23px; color:var(--text-3); font-size:15px; line-height:1.62; }
.code-memory__split strong { color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.11em; }
.code-boundary { margin-top:18px; padding:35px; display:grid; grid-template-columns:360px 1fr; gap:60px; border:1px solid rgba(164,141,255,.18); background:rgba(164,141,255,.025); }
.code-boundary > div > span,.code-current > span { color:var(--purple2); font:8.5px var(--f-mono); letter-spacing:.12em; }
.code-boundary h2 { font-size:31px; }
.code-boundary p,.code-current p { margin:0 0 1em; color:var(--text-2); font-size:15px; line-height:1.65; }
.code-boundary p:last-child,.code-current p:last-child { margin:0; }
.code-current { margin-top:18px; padding:30px 34px; display:grid; grid-template-columns:190px 1fr; gap:45px; border-left:2px solid var(--code); background:rgba(69,209,220,.03); }
.code-current > span { color:var(--code); }

/* ============================================================
   BUILDS
   ============================================================ */
.builds-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.build-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:linear-gradient(160deg,var(--panel-hover),var(--panel-b)); }
.build-card__visual { position:relative; display:block; height:310px; overflow:hidden; background:var(--panel-d); }
.build-card__visual img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.build-card__visual img.is-contain { object-fit:contain; padding:8%; }
.build-card:hover .build-card__visual img { transform:scale(1.035); }
.build-card__category { position:absolute; top:14px; left:14px; padding:5px 9px; color:var(--acc); background:rgba(8,10,14,.82);
  border:1px solid rgba(255,176,32,.35); font-family:var(--f-mono); font-size:10.5px; letter-spacing:.09em; }
.build-card__body { padding:24px 25px 26px; }
.build-card__meta { display:flex; justify-content:space-between; gap:18px; color:var(--muted); font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; }
.build-card h2 { margin:12px 0 10px; font-size:25px; text-transform:uppercase; }
.build-card h2 a:hover { color:var(--acc); }
.build-card p { min-height:66px; margin:0; color:var(--text-3); font-size:15px; line-height:1.6; }
.build-card__tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.build-card__tags span { padding:4px 8px; border:1px solid var(--line-2); color:var(--muted-2); font-family:var(--f-mono); font-size:10px; }
.builds-archive-callout { padding-top:38px; }
.callout-panel { display:flex; align-items:center; justify-content:space-between; gap:36px; padding:36px 38px;
  border:1px solid var(--line); border-radius:6px; background:linear-gradient(120deg,rgba(255,176,32,.07),var(--panel-c) 35%); }
.callout-panel h2 { margin:0 0 8px; font-size:27px; text-transform:uppercase; }
.callout-panel p { margin:0; color:var(--text-3); }

/* ============================================================
   NOW
   ============================================================ */
.now-page { --now-cyan:var(--cyan2); --now-violet:var(--purple2); --now-ember:var(--ember); background:var(--deep); }
.now-hero { position:relative; overflow:hidden; border-bottom:1px solid rgba(255,176,32,.16); background:radial-gradient(circle at 77% 34%,rgba(255,176,32,.09),transparent 30%),var(--deep); }
.now-hero__grid { position:absolute; inset:0; opacity:.55; background-image:linear-gradient(rgba(var(--fg-ch),.026) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.026) 1px,transparent 1px); background-size:44px 44px; mask-image:linear-gradient(110deg,transparent 6%,#000 55%,transparent 92%); }
.now-hero__glow { position:absolute; top:-280px; right:-180px; width:720px; height:720px; border:1px solid rgba(255,176,32,.08); border-radius:50%; box-shadow:0 0 120px rgba(255,176,32,.025),inset 0 0 120px rgba(255,176,32,.025); }
.now-hero__glow::before,.now-hero__glow::after { content:""; position:absolute; border:1px solid rgba(255,176,32,.055); border-radius:50%; }
.now-hero__glow::before { inset:90px; }.now-hero__glow::after { inset:190px; }
.now-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:1180px; margin:0 auto; padding:82px 0 0; }
.now-hero__meta { display:flex; justify-content:space-between; align-items:center; gap:30px; color:var(--muted-2); font:9.5px var(--f-mono); letter-spacing:.12em; }
.now-hero__meta > span { display:flex; align-items:center; gap:9px; color:var(--green-text); }
.now-hero__meta i { width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 11px rgba(40,200,64,.75); }
.now-hero__lockup { display:grid; grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); gap:88px; align-items:end; padding:70px 0 82px; }
.now-hero h1 { margin:0; font-size:clamp(105px,14vw,186px); line-height:.67; letter-spacing:-.065em; text-transform:uppercase; }
.now-hero h1 span { color:var(--acc); }
.now-hero__copy > p { max-width:680px; margin:0 0 36px; color:var(--text-2); font:500 clamp(20px,2.3vw,30px)/1.32 var(--f-display); }
.now-hero__overview { display:grid; grid-template-columns:145px minmax(0,1fr); gap:28px; padding-top:25px; border-top:1px solid rgba(255,176,32,.18); }
.now-hero__overview span { color:var(--acc); font:8.5px var(--f-mono); letter-spacing:.12em; }
.now-hero__overview p { margin:0; color:var(--text-3); font-size:15px; line-height:1.68; }
.now-hero__nav { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,176,32,.16); border-right:1px solid var(--line); }
.now-hero__nav a { display:flex; align-items:center; gap:15px; min-height:58px; padding:0 20px; border-left:1px solid var(--line); color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.11em; transition:color .2s,background .2s; }
.now-hero__nav a span { color:var(--acc); }
.now-hero__nav a:hover { color:var(--text-2); background:rgba(255,176,32,.035); }
.now-record { width:var(--rail); max-width:1180px; margin:0 auto; }
.now-section { padding:105px 0; scroll-margin-top:75px; }
.now-section + .now-section { border-top:1px solid rgba(255,176,32,.14); }
.now-section__head { display:grid; grid-template-columns:180px minmax(0,760px); gap:55px; align-items:start; margin-bottom:64px; }
.now-section__head > div:first-child { display:flex; flex-direction:column; gap:15px; padding-top:7px; }
.now-section__head > div:first-child span { color:var(--acc); font:8.5px var(--f-mono); letter-spacing:.12em; }
.now-section__head > div:first-child strong { color:var(--muted-2); font:8.5px var(--f-mono); font-weight:400; letter-spacing:.12em; }
.now-section__head h2 { margin:0 0 18px; font-size:clamp(46px,5vw,68px); line-height:.92; text-transform:uppercase; }
.now-section__head p { max-width:680px; margin:0; color:var(--text-3); font-size:16px; line-height:1.68; }
.now-thread-list { border-top:1px solid rgba(255,176,32,.17); }
.now-thread { --now-accent:var(--acc); position:relative; display:grid; grid-template-columns:72px minmax(250px,.72fr) minmax(0,1.28fr); gap:34px; min-height:290px; padding:42px 18px 42px 0; border-bottom:1px solid var(--line); }
.now-thread--ember { --now-accent:var(--now-ember); }.now-thread--cyan { --now-accent:var(--now-cyan); }.now-thread--violet { --now-accent:var(--now-violet); }.now-thread--amber { --now-accent:var(--acc); }
.now-thread::after { content:""; position:absolute; inset:0; opacity:0; pointer-events:none; background:linear-gradient(90deg,color-mix(in srgb,var(--now-accent) 4%,transparent),transparent 72%); transition:opacity .25s; }
.now-thread:hover::after { opacity:1; }
.now-thread__rail { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; }
.now-thread__rail span { display:grid; width:39px; height:39px; place-items:center; border:1px solid color-mix(in srgb,var(--now-accent) 38%,transparent); border-radius:50%; color:var(--now-accent); background:var(--deep); font:9.5px var(--f-mono); }
.now-thread__rail i { width:1px; flex:1; margin-top:15px; background:linear-gradient(var(--now-accent),transparent); opacity:.3; }
.now-thread__identity,.now-thread__detail { position:relative; z-index:1; min-width:0; }
.now-thread__identity > span { display:block; margin:5px 0 24px; color:var(--now-accent); font:8.5px var(--f-mono); letter-spacing:.12em; }
.now-thread h3 { margin:0 0 23px; font-size:clamp(29px,3.1vw,43px); line-height:.96; text-transform:uppercase; }
.now-thread__identity > strong { display:flex; width:max-content; max-width:100%; align-items:center; gap:8px; color:var(--muted-2); font:8.5px var(--f-mono); font-weight:400; letter-spacing:.1em; }
.now-thread__identity > strong i { flex:none; width:5px; height:5px; border-radius:50%; background:var(--now-accent); box-shadow:0 0 8px var(--now-accent); }
.now-thread__detail > p { margin:3px 0 28px; color:var(--text-2); font-size:16px; line-height:1.7; }
.now-thread__next { display:grid; grid-template-columns:90px minmax(0,1fr); gap:22px; padding:19px 0; border-top:1px solid color-mix(in srgb,var(--now-accent) 22%,transparent); border-bottom:1px solid var(--line); }
.now-thread__next span { color:var(--now-accent); font:8.5px var(--f-mono); letter-spacing:.11em; }
.now-thread__next p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.now-thread__links { display:flex; flex-wrap:wrap; gap:24px; margin-top:22px; }
.now-thread__links a { display:inline-flex; align-items:center; gap:7px; color:var(--now-accent); font:8.5px var(--f-mono); letter-spacing:.09em; text-transform:uppercase; }
.now-thread__links svg { width:13px; height:13px; }
.now-recent-list { border-top:1px solid rgba(255,176,32,.18); }
.now-recent-list > a { display:grid; grid-template-columns:118px 92px minmax(0,1fr) 18px; gap:25px; align-items:start; padding:27px 5px; border-bottom:1px solid var(--line); transition:background .2s; }
.now-recent-list > a:hover { background:linear-gradient(90deg,rgba(255,176,32,.035),transparent); }
.now-recent-list time,.now-recent-list > a > span { padding-top:4px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.09em; }
.now-recent-list > a > span { color:var(--acc); }
.now-recent-list h3 { margin:0 0 7px; font-size:21px; text-transform:uppercase; transition:color .2s; }
.now-recent-list a:hover h3 { color:var(--acc); }
.now-recent-list p { max-width:730px; margin:0; color:var(--text-3); font-size:14.5px; line-height:1.58; }
.now-recent-list > a > svg { width:16px; height:16px; color:var(--faint); transition:color .2s,transform .2s; }
.now-recent-list a:hover > svg { color:var(--acc); transform:translate(2px,-2px); }
.now-shelf { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(255,176,32,.17); border-left:1px solid var(--line); }
.now-shelf a { position:relative; min-height:145px; padding:28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .2s; }
.now-shelf a:hover { background:rgba(255,176,32,.035); }
.now-shelf span { display:block; margin-bottom:24px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.now-shelf strong { display:block; max-width:82%; font:600 23px/1.05 var(--f-display); text-transform:uppercase; }
.now-shelf svg { position:absolute; top:28px; right:28px; width:15px; height:15px; color:var(--faint); transition:color .2s,transform .2s; }
.now-shelf a:hover svg { color:var(--acc); transform:translate(2px,-2px); }
.now-archive-link { display:grid; grid-template-columns:180px minmax(0,1fr) 20px; gap:25px; align-items:center; margin-top:18px; padding:24px 20px; border-top:1px solid rgba(255,176,32,.18); border-bottom:1px solid var(--line); }
.now-archive-link span { color:var(--acc); font:8.5px var(--f-mono); letter-spacing:.11em; }
.now-archive-link strong { font:600 17px var(--f-display); text-transform:uppercase; }
.now-archive-link svg { width:17px; height:17px; color:var(--acc); transition:transform .2s; }
.now-archive-link:hover svg { transform:translateX(4px); }

/* ============================================================
   ARCHIVE + NOTEBOOK
   ============================================================ */
.archive-timeline { position:relative; max-width:980px; margin:0 auto; }
.archive-timeline::before { content:""; position:absolute; left:115px; top:0; bottom:0; width:1px; background:var(--line-2); }
.archive-era { --era-accent:var(--acc); display:grid; grid-template-columns:115px 1fr; position:relative; padding-bottom:52px; }
.archive-era--cyan { --era-accent:var(--cyan); } .archive-era--purple { --era-accent:var(--purple); }
.archive-era--pink { --era-accent:var(--acc2); } .archive-era--green { --era-accent:var(--green); }
.archive-era--ember { --era-accent:var(--ember); }
.archive-era::after { content:""; position:absolute; left:110px; top:8px; width:11px; height:11px; border-radius:50%;
  background:var(--era-accent); box-shadow:0 0 13px var(--era-accent); }
.archive-era__year { color:var(--era-accent); font-family:var(--f-display); font-size:25px; font-weight:600; }
.archive-era__content { margin-left:42px; padding:0 0 8px 28px; }
.archive-era h2 { margin:0 0 11px; font-size:28px; text-transform:uppercase; }
.archive-era p { max-width:700px; color:var(--text-3); line-height:1.65; }
.archive-era__content > div { display:flex; flex-wrap:wrap; gap:9px; }
.archive-era a { padding:5px 9px; color:var(--era-accent); border:1px solid color-mix(in srgb,var(--era-accent) 25%,transparent);
  font-family:var(--f-mono); font-size:11px; }
.archive-index-head { margin-top:70px; }
.archive-year { display:grid; grid-template-columns:120px 1fr; border-top:1px solid var(--line); padding:28px 0; }
.archive-year > h3 { margin:0; color:var(--acc); font-size:25px; }
.archive-year > div { display:flex; flex-direction:column; }
.archive-year a { display:grid; grid-template-columns:80px 1fr 70px; gap:18px; padding:10px 0; border-bottom:1px solid rgba(var(--fg-ch),.035); }
.archive-year a:hover span { color:var(--acc); }
.archive-year time,.archive-year em { color:var(--muted); font-family:var(--f-mono); font-size:10.5px; font-style:normal; text-transform:uppercase; }
.archive-year span { color:var(--text-2); transition:color .2s; }
.notebook { padding-top:56px; }
.notebook [hidden] { display:none !important; }
.notebook-controls { margin-bottom:64px; padding:24px; border:1px solid var(--line-2); border-radius:5px;
  background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.96),rgba(var(--tint-lo-ch),.96)); display:grid;
  grid-template-columns:minmax(260px,1.1fr) minmax(300px,1.45fr); gap:22px 34px; }
.notebook-search label,.notebook-filter-group > span { display:block; margin-bottom:9px; color:var(--muted);
  font-family:var(--f-mono); font-size:10px; letter-spacing:.11em; text-transform:uppercase; }
.notebook-search__field { height:43px; display:flex; align-items:center; gap:10px; padding:0 13px;
  border:1px solid var(--line-2); border-radius:3px; background:var(--panel-d); transition:border-color .2s; }
.notebook-search__field:focus-within { border-color:rgba(255,176,32,.65); }
.notebook-search__field .ic { width:16px; height:16px; color:var(--muted); flex:0 0 auto; }
.notebook-search__field input { width:100%; border:0; outline:0; background:transparent; color:var(--text);
  font:14px var(--f-body); }
.notebook-search__field input::placeholder { color:var(--muted-2); }
.notebook-filter-group > div { display:flex; flex-wrap:wrap; gap:7px; }
.notebook-filter-group button,.notebook-controls__status button { border:1px solid var(--line-2); border-radius:2px;
  background:rgba(var(--fg-ch),.015); color:var(--text-3); padding:7px 10px; cursor:pointer;
  font:11px var(--f-mono); letter-spacing:.03em; transition:border-color .2s,color .2s,background .2s; }
.notebook-filter-group button:hover,.notebook-filter-group button:focus-visible { border-color:rgba(255,176,32,.55); color:var(--text); }
.notebook-filter-group button.is-active { border-color:var(--acc); background:rgba(255,176,32,.1); color:var(--acc); }
.notebook-controls__status { grid-column:1 / -1; padding-top:17px; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:18px; color:var(--muted); font:11px var(--f-mono); }
.notebook-controls__status button { border:0; padding:0; color:var(--acc); background:none; }
.notebook-stream { max-width:1060px; margin:0 auto; }
.notebook-month { margin-bottom:62px; }
.notebook-month__header { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:20px;
  padding-bottom:13px; border-bottom:1px solid var(--line-2); }
.notebook-month__header h2 { margin:0; font-size:25px; text-transform:uppercase; letter-spacing:.01em; }
.notebook-month__header span { color:var(--muted); font:10px var(--f-mono); letter-spacing:.09em; text-transform:uppercase; }
.notebook-month__entries { position:relative; }
.notebook-month__entries::before { content:""; position:absolute; top:0; bottom:0; left:91px; width:1px; background:var(--line-2); }
.notebook-entry { --note-accent:var(--acc); display:grid; grid-template-columns:70px 43px minmax(0,1fr) 38px;
  min-height:164px; position:relative; padding:27px 0; border-bottom:1px solid rgba(var(--fg-ch),.045); }
.notebook-entry--purple { --note-accent:var(--purple); }
.notebook-entry--pink { --note-accent:var(--acc2); }
.notebook-entry--cyan { --note-accent:var(--cyan); }
.notebook-entry--green { --note-accent:var(--green); }
.notebook-entry--ember { --note-accent:var(--ember); }
.notebook-entry__date { padding-top:3px; color:var(--muted); font-family:var(--f-mono); text-align:left; }
.notebook-entry__date strong { display:block; color:var(--text-2); font-size:17px; font-weight:400; line-height:1; }
.notebook-entry__date span { display:block; margin-top:5px; font-size:9.5px; letter-spacing:.1em; }
.notebook-entry__marker { position:relative; }
.notebook-entry__marker span { position:absolute; top:5px; left:16px; width:9px; height:9px; border:2px solid var(--bg);
  border-radius:50%; background:var(--note-accent); box-shadow:0 0 10px color-mix(in srgb,var(--note-accent) 60%,transparent); }
.notebook-entry__meta { display:flex; flex-wrap:wrap; gap:7px 16px; margin-bottom:9px; color:var(--muted);
  font:10px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.notebook-entry__meta span:first-child { color:var(--note-accent); }
.notebook-entry__meta span + span::before { content:"/"; margin-right:16px; color:var(--faint); }
.notebook-entry h3 { margin:0 0 8px; font-size:22px; line-height:1.18; text-transform:uppercase; }
.notebook-entry h3 a { transition:color .2s; }
.notebook-entry h3 a:hover,.notebook-entry:focus-within h3 a { color:var(--note-accent); }
.notebook-entry__body > p { max-width:760px; margin:0; color:var(--text-3); font-size:14.5px; line-height:1.6; }
.notebook-entry__tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:15px; }
.notebook-entry__tags a { padding:3px 7px; border:1px solid var(--line); color:var(--muted-2);
  font:9.5px var(--f-mono); transition:border-color .2s,color .2s; }
.notebook-entry__tags a:hover { border-color:color-mix(in srgb,var(--note-accent) 45%,transparent); color:var(--note-accent); }
.notebook-entry__open { align-self:center; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
  border:1px solid var(--line); border-radius:50%; color:var(--muted); transition:border-color .2s,color .2s,transform .2s; }
.notebook-entry__open .ic { width:15px; height:15px; }
.notebook-entry__open:hover { border-color:var(--note-accent); color:var(--note-accent); transform:translate(2px,-2px); }
.notebook-empty { max-width:600px; margin:20px auto 70px; padding:55px 30px; border:1px dashed var(--line-2); text-align:center; }
.notebook-empty > .ic { width:30px; height:30px; color:var(--muted); }
.notebook-empty h2 { margin:15px 0 8px; text-transform:uppercase; }
.notebook-empty p { color:var(--muted); }
.notebook-empty .btn { margin-top:12px; }

/* Notebook entry */
.notebook-note-hero { --note-accent:var(--acc); position:relative; overflow:hidden; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-c),var(--bg)); }
.notebook-note-hero--purple { --note-accent:var(--purple); }
.notebook-note-hero--pink { --note-accent:var(--acc2); }
.notebook-note-hero--cyan { --note-accent:var(--cyan); }
.notebook-note-hero--green { --note-accent:var(--green); }
.notebook-note-hero--ember { --note-accent:var(--ember); }
.notebook-note-hero__grid { position:absolute; inset:0; opacity:.6;
  background-image:linear-gradient(rgba(var(--fg-ch),.035) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.035) 1px,transparent 1px);
  background-size:46px 46px; -webkit-mask-image:linear-gradient(90deg,#000,transparent 75%); mask-image:linear-gradient(90deg,#000,transparent 75%); }
.notebook-note-hero__inner { position:relative; width:var(--rail); max-width:1040px; margin:0 auto; padding:38px 0 64px; }
.notebook-note-hero__inner::before { content:""; position:absolute; left:-32px; top:104px; bottom:65px; width:2px; background:var(--note-accent); }
.notebook-note-hero__back { display:inline-block; margin-bottom:58px; color:var(--muted); font:11px var(--f-mono); }
.notebook-note-hero__back:hover { color:var(--note-accent); }
.notebook-note-hero__meta { display:flex; flex-wrap:wrap; gap:9px 20px; margin-bottom:18px; color:var(--muted);
  font:10.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.notebook-note-hero__meta a { color:var(--note-accent); }
.notebook-note-hero__meta span::before,.notebook-note-hero__meta time::before { content:"/"; margin-right:20px; color:var(--faint); }
.notebook-note-hero h1 { max-width:900px; margin:0; font-size:clamp(40px,6vw,72px); line-height:.98; text-transform:uppercase; }
.notebook-note-hero p { max-width:760px; margin:22px 0 0; color:var(--text-3); font-size:19px; line-height:1.6; }
.notebook-note-hero__amended { display:inline-block; margin-top:21px; padding:5px 8px; border:1px solid color-mix(in srgb,var(--note-accent) 35%,transparent);
  color:var(--note-accent); font:10px var(--f-mono); text-transform:uppercase; }
.notebook-note-layout { width:var(--rail); max-width:1040px; margin:0 auto; display:grid; grid-template-columns:minmax(0,740px) 240px;
  gap:60px; align-items:start; --note-accent:var(--acc); }
.notebook-note-layout--purple { --note-accent:var(--purple); }
.notebook-note-layout--pink { --note-accent:var(--acc2); }
.notebook-note-layout--cyan { --note-accent:var(--cyan); }
.notebook-note-layout--green { --note-accent:var(--green); }
.notebook-note-layout--ember { --note-accent:var(--ember); }
.note-prose { min-width:0; max-width:740px; width:100%; margin:0; padding:58px 0 46px; font-size:18px; line-height:1.78; }
.note-prose > p:first-child { font-size:19px; color:var(--text-3); }
.note-prose table { width:100%; max-width:none; margin:30px 0 34px;
  border:1px solid var(--line-2); border-radius:4px; border-collapse:separate; border-spacing:0;
  background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.94),rgba(var(--tint-lo-ch),.94));
  font-size:15px; line-height:1.45; }
.note-table-wrap { box-sizing:border-box; width:100%; max-width:100%; margin:30px 0 34px; overflow-x:auto;
  border:1px solid var(--line-2); border-radius:4px;
  background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.94),rgba(var(--tint-lo-ch),.94));
  scrollbar-color:var(--note-accent) var(--panel-hover); }
.note-table-wrap table { min-width:680px; margin:0; border:0; border-radius:0; background:transparent; }
.note-prose th,.note-prose td { min-width:112px; padding:13px 15px; border-bottom:1px solid var(--line);
  vertical-align:middle; }
.note-prose th { background:rgba(var(--fg-ch),.025); color:var(--text-2); font:600 10.5px var(--f-mono);
  letter-spacing:.055em; line-height:1.35; text-transform:uppercase; }
.note-prose th:first-child,.note-prose td:first-child { width:40%; min-width:245px; text-align:left; }
.note-prose td { color:var(--text-3); }
.note-prose td:not(:first-child) { color:var(--text-3); font-family:var(--f-mono); font-size:13.5px;
  font-variant-numeric:tabular-nums; white-space:nowrap; }
.note-prose tbody tr:last-child td { border-bottom:0; }
.note-prose tbody tr { transition:background .18s; }
.note-prose tbody tr:hover { background:color-mix(in srgb,var(--note-accent) 5%,transparent); }
.notebook-note-tags { margin-top:48px; padding-top:24px; border-top:1px solid var(--line); }
.notebook-note-tags > span,.notebook-note-context__block > span { display:block; margin-bottom:12px; color:var(--muted);
  font:10px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.notebook-note-tags > div { display:flex; flex-wrap:wrap; gap:8px; }
.notebook-note-tags a { padding:4px 9px; border:1px solid var(--line-2); color:var(--text-3); font:10.5px var(--f-mono); }
.notebook-note-tags a:hover { border-color:var(--note-accent); color:var(--note-accent); }
.notebook-note-context { position:sticky; top:98px; margin-top:58px; border-left:1px solid var(--line-2); }
.notebook-note-context__block { padding:0 0 24px 24px; }
.notebook-note-context__block + .notebook-note-context__block { padding-top:24px; border-top:1px solid var(--line); }
.notebook-note-context__project > a { color:var(--note-accent); font:16px var(--f-display); font-weight:600; }
.notebook-related { display:flex; flex-direction:column; gap:12px; }
.notebook-related a { color:var(--text-2); font-size:13.5px; line-height:1.45; }
.notebook-related a:hover { color:var(--note-accent); }
.notebook-note-nav { width:var(--rail); max-width:1040px; margin:15px auto 70px; padding-top:25px; border-top:1px solid var(--line-2);
  display:grid; grid-template-columns:1fr 1fr; gap:30px; --note-accent:var(--acc); }
.notebook-note-nav--purple { --note-accent:var(--purple); }
.notebook-note-nav--pink { --note-accent:var(--acc2); }
.notebook-note-nav--cyan { --note-accent:var(--cyan); }
.notebook-note-nav--green { --note-accent:var(--green); }
.notebook-note-nav--ember { --note-accent:var(--ember); }
.notebook-note-nav a { display:flex; flex-direction:column; gap:7px; }
.notebook-note-nav a > span { color:var(--muted); font:10px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.notebook-note-nav a strong { color:var(--text-2); font:600 16px var(--f-display); text-transform:uppercase; transition:color .2s; }
.notebook-note-nav a:hover strong { color:var(--note-accent); }
.notebook-note-nav__older { text-align:right; }

/* Compact Notebook feed on project dossiers */
.project-notebook-list { border-top:1px solid var(--line-2); }
.project-notebook-item { --note-accent:var(--acc); display:grid; grid-template-columns:115px 1fr auto; gap:24px; align-items:start;
  padding:23px 4px; border-bottom:1px solid var(--line); }
.project-notebook-item--purple { --note-accent:var(--purple); }
.project-notebook-item--pink { --note-accent:var(--acc2); }
.project-notebook-item--cyan { --note-accent:var(--cyan); }
.project-notebook-item--ember { --note-accent:var(--ember); }
.project-notebook-item__meta { color:var(--note-accent); font:10px var(--f-mono); letter-spacing:.07em; text-transform:uppercase; }
.project-notebook-item h3 { margin:0 0 6px; font-size:19px; text-transform:uppercase; transition:color .2s; }
.project-notebook-item p { margin:0; color:var(--text-3); font-size:14px; line-height:1.5; }
.project-notebook-item > span:last-child { color:var(--note-accent); }
.project-notebook-item:hover h3 { color:var(--note-accent); }

/* ============================================================
   EVENT IT RECORD
   ============================================================ */
.event-page-hero { position:relative; min-height:640px; overflow:hidden; display:flex; align-items:flex-end; border-bottom:1px solid var(--line); }
.event-page-hero__image,.event-page-hero__shade { position:absolute; inset:0; }
.event-page-hero__image img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.7) brightness(.62); }
.event-page-hero__shade { background:linear-gradient(90deg,rgba(8,10,14,.97) 0%,rgba(8,10,14,.76) 48%,rgba(8,10,14,.2)),linear-gradient(0deg,var(--bg),transparent 62%); }
.event-page-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:105px 0 104px; }
.event-page-hero__badge { display:inline-flex; align-items:center; gap:9px; padding:6px 10px; border:1px solid rgba(255,176,32,.4);
  color:var(--acc); background:rgba(var(--bg-ch),.65); font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; }
.event-page-hero__badge .dot { width:6px; height:6px; }
.event-page-hero h1 { max-width:700px; margin:20px 0 18px; font-size:clamp(54px,8vw,104px); line-height:.9; text-transform:uppercase; }
.event-page-hero p { max-width:650px; margin:0; color:var(--text-3); font-size:19px; line-height:1.6; }
.event-page-hero__credit { right:max(20px,calc((100vw - var(--maxw))/2)); bottom:20px; left:auto; z-index:2; }

.event-log-intro { width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:82px 0 66px;
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); gap:76px; align-items:start; }
.event-log-intro__copy h2,.event-log__head h2 { margin:8px 0 22px; font-size:clamp(36px,5vw,62px); line-height:.98; text-transform:uppercase; }
.event-log-intro__copy > p { max-width:700px; margin:0; color:var(--text-2); font-size:18px; line-height:1.75; }
.event-log-intro__note { display:grid; grid-template-columns:24px 1fr; gap:14px; margin-top:30px; padding:18px 20px;
  border-left:2px solid var(--acc); background:linear-gradient(90deg,rgba(255,176,32,.075),transparent); }
.event-log-intro__note .ic { width:20px; height:20px; color:var(--acc); }
.event-log-intro__note p { margin:0; color:var(--text-3); font:12px/1.7 var(--f-mono); }
.event-log-stats { display:grid; grid-template-columns:1fr 1fr; margin:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.event-log-stats div { min-height:135px; padding:24px 22px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(145deg,rgba(var(--fg-ch),.025),transparent); }
.event-log-stats dt { color:var(--muted-2); font:10px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.event-log-stats dd { margin:22px 0 0; color:var(--acc); font:600 clamp(20px,2.3vw,31px) var(--f-display); text-transform:uppercase; }

.event-year-nav { width:var(--rail); max-width:var(--maxw); margin:0 auto 72px; padding:17px 20px; border-top:1px solid rgba(255,176,32,.28);
  border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:20px;
  background:linear-gradient(90deg,rgba(255,176,32,.045),transparent 70%); }
.event-year-nav > span { color:var(--acc); font:9.5px var(--f-mono); letter-spacing:.12em; }
.event-year-nav > div { display:flex; flex-wrap:wrap; gap:6px; }
.event-year-nav a { min-width:62px; padding:7px 12px; border-left:1px solid var(--line); color:var(--text-3);
  font:10.5px var(--f-mono); letter-spacing:.08em; text-align:center; transition:color .2s,background .2s; }
.event-year-nav a:hover { color:var(--acc); background:rgba(255,176,32,.055); }

.event-log { position:relative; padding:78px 0 92px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-d),var(--deep)); overflow:hidden; }
.event-log::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.28;
  background-image:linear-gradient(rgba(var(--fg-ch),.025) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.025) 1px,transparent 1px);
  background-size:42px 42px; mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent); }
.event-log__head { position:relative; width:var(--rail); max-width:var(--maxw); margin:0 auto 70px;
  display:flex; justify-content:space-between; gap:50px; align-items:end; }
.event-log__head h2 { margin-bottom:0; }
.event-log__head > p { max-width:330px; margin:0 0 5px; color:var(--text-3); font:11.5px/1.65 var(--f-mono); text-align:right; }
.event-timeline { position:relative; width:var(--rail); max-width:var(--maxw); margin:0 auto; padding:0; list-style:none; }
.event-timeline::before { content:""; position:absolute; top:8px; bottom:8px; left:128px; width:1px;
  background:linear-gradient(var(--acc),rgba(255,176,32,.12) 80%,transparent); }
.event-timeline__item { position:relative; display:grid; grid-template-columns:164px minmax(0,1fr); padding-bottom:46px; scroll-margin-top:92px; }
.event-timeline__item:last-child { padding-bottom:0; }
.event-timeline__marker { position:relative; padding:23px 48px 0 0; text-align:right; }
.event-timeline__marker span { color:var(--muted-2); font:600 19px var(--f-display); letter-spacing:.08em; }
.event-timeline__marker i { position:absolute; top:29px; right:29px; width:11px; height:11px; border:2px solid var(--acc); border-radius:50%;
  background:var(--bg); box-shadow:0 0 0 6px rgba(255,176,32,.075),0 0 14px rgba(255,176,32,.2); }
.event-timeline__item.is-origin .event-timeline__marker i { border-color:var(--acc2); box-shadow:0 0 0 7px rgba(255,64,129,.09),0 0 18px rgba(255,64,129,.25); }
.event-record { --event-accent:var(--acc); position:relative; min-width:0; border:1px solid var(--line); border-radius:7px; overflow:hidden;
  background:linear-gradient(145deg,rgba(var(--tint-hi-ch),.98),rgba(var(--tint-lo-ch),.98)); box-shadow:0 24px 80px -60px rgba(0,0,0,.9); }
.event-record.has-photo { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr); }
.event-timeline__item.is-origin .event-record { --event-accent:var(--acc2); border-color:rgba(255,64,129,.28); }
.event-record__body { min-width:0; padding:30px 32px 32px; }
.event-record__topline { display:flex; justify-content:space-between; gap:20px; margin-bottom:22px; color:var(--event-accent);
  font:10px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.event-record__topline span:first-child { color:var(--muted-2); }
.event-record h3 { margin:0 0 15px; font-size:clamp(27px,3vw,41px); line-height:1; text-transform:uppercase; }
.event-record__facts { display:flex; flex-wrap:wrap; gap:10px 18px; margin-bottom:22px; color:var(--text-3); font:10.5px var(--f-mono); letter-spacing:.045em; text-transform:uppercase; }
.event-record__facts > span { display:inline-flex; align-items:center; gap:7px; }
.event-record__facts .ic { width:13px; height:13px; color:var(--event-accent); }
.event-record__note { color:var(--text-3); font-size:15px; line-height:1.7; }
.event-record__note p { margin:0 0 1em; }
.event-record__note p:last-child { margin-bottom:0; }
.event-record__origin { display:inline-block; margin-top:23px; padding:6px 9px; border:1px solid rgba(255,64,129,.3);
  color:var(--acc2); font:9.5px var(--f-mono); letter-spacing:.09em; }
.event-record__photo { min-height:320px; border:0; border-left:1px solid var(--line); border-radius:0; }
.event-record__photo img { transition:transform .5s,filter .4s; }
.event-record__photo:hover img { transform:scale(1.025); filter:saturate(1.08); }
.event-record__photo .frame__attribution { right:14px; }

.event-log-source { width:var(--rail); max-width:var(--maxw); margin:56px auto 84px; padding:24px 26px; display:grid;
  grid-template-columns:26px minmax(0,1fr) auto; gap:18px; align-items:center; border:1px solid var(--line); background:rgba(var(--fg-ch),.018); }
.event-log-source > .ic { width:22px; height:22px; color:var(--acc); }
.event-log-source strong { display:block; margin-bottom:5px; color:var(--text); font:11.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.event-log-source p { margin:0; color:var(--muted); font-size:13.5px; line-height:1.55; }
.event-log-source > a { display:inline-flex; align-items:center; gap:7px; color:var(--acc); font:10.5px var(--f-mono); text-transform:uppercase;
  border-bottom:1px solid rgba(255,176,32,.3); }
.event-log-source > a .ic { width:13px; height:13px; }
.esports__more { margin-top:28px; }

@media (max-width:980px) {
  .event-log-intro { grid-template-columns:1fr; gap:44px; }
  .event-log-stats { max-width:700px; }
  .event-record.has-photo { grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr); }
  .event-record__body { padding:27px 26px; }
  .event-record__photo { min-height:300px; }
  .event-log-source { grid-template-columns:26px 1fr; }
  .event-log-source > a { grid-column:2; justify-self:start; }
}

@media (max-width:640px) {
  .event-page-hero__inner { padding:82px 0 118px; }
  .event-page-hero h1 { font-size:58px; }
  .event-page-hero p { font-size:17px; }
  .event-page-hero__credit { right:20px; bottom:18px; left:20px; max-width:none; }
  .event-log-intro { padding:58px 0 48px; }
  .event-log-intro__copy h2,.event-log__head h2 { font-size:38px; }
  .event-log-intro__copy > p { font-size:16px; }
  .event-log-stats div { min-height:112px; padding:19px 17px; }
  .event-log-stats dd { margin-top:17px; font-size:20px; }
  .event-year-nav { margin-bottom:50px; align-items:flex-start; flex-direction:column; }
  .event-year-nav > div { width:100%; display:grid; grid-template-columns:repeat(5,1fr); }
  .event-year-nav a { min-width:0; padding:7px 5px; }
  .event-log { padding:58px 0 68px; }
  .event-log__head { margin-bottom:46px; display:block; }
  .event-log__head > p { margin-top:17px; text-align:left; }
  .event-timeline::before { left:5px; }
  .event-timeline__item { display:block; padding:0 0 34px 27px; }
  .event-timeline__marker { min-height:32px; padding:0 0 10px; text-align:left; }
  .event-timeline__marker span { font-size:16px; }
  .event-timeline__marker i { top:5px; right:auto; left:-27px; width:11px; height:11px; }
  .event-record.has-photo { display:flex; flex-direction:column; }
  .event-record__body { padding:24px 21px 26px; }
  .event-record h3 { font-size:29px; }
  .event-record__topline { align-items:flex-start; flex-direction:column; gap:7px; }
  .event-record__facts { align-items:flex-start; flex-direction:column; }
  .event-record__photo { min-height:0; aspect-ratio:16/10; border-left:0; border-top:1px solid var(--line); }
  .event-record__photo .frame__attribution { right:9px; bottom:9px; left:9px; max-width:none; font-size:8.5px; }
  .event-log-source { margin:38px auto 60px; padding:21px 20px; }
}

/* social */
.social { display:flex; gap:12px; justify-content:center; margin-top:8px; }
.social a { width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line-2); border-radius:3px; color:var(--text-3); transition:.2s; }
.social a:hover { border-color:var(--acc); color:var(--acc); }
.social .ic { width:18px; height:18px; }

/* ============================================================
   404
   ============================================================ */
.nf { max-width:760px; margin:0 auto; padding:120px 32px; text-align:center; }
.nf h1 { font-size:clamp(80px,16vw,180px); margin:0; color:var(--acc); line-height:1; }
.nf p { font-family:var(--f-mono); color:var(--text-3); margin:14px 0 32px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px) {
  .hero__inner { grid-template-columns:1fr; gap:42px; }
  .esports__inner, .skye__inner { grid-template-columns:1fr; gap:38px; }
  .pillars { grid-template-columns:1fr; }
  .current-work__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .skills { grid-template-columns:repeat(2,1fr); }
  .blog-layout, .stream-layout { grid-template-columns:1fr; }
  .jbl-footer__top { grid-template-columns:1fr 1fr; }
  .gallery-grid, .projects-grid { grid-template-columns:repeat(2,1fr); }
  .sidebar { position:static; order:-1; }
  .project-dossier__inner { grid-template-columns:1fr; gap:22px; }
  .project-dossier__mark { grid-row:1; min-height:160px; justify-content:flex-start; padding:0; }
  .project-dossier__logo { width:min(70%,400px); max-height:150px; }
  .project-facts { grid-template-columns:repeat(2,1fr); }
  .project-fact:nth-child(2) { border-right:0; }
  .project-fact:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .project-milestones__head { grid-template-columns:1fr; gap:22px; }
  .project-milestones__snapshot { width:max-content; }
  .project-milestones__stats { grid-template-columns:repeat(2,1fr); }
  .project-milestones__stats > div:nth-child(2) { border-right:0; }
  .project-milestones__stats > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .project-milestone { grid-template-columns:62px minmax(0,1fr); gap:18px; padding:24px 0; }
  .project-milestone__metric { grid-column:2; justify-self:start; max-width:none; text-align:left; }
  .project-story__head { grid-template-columns:1fr; gap:24px; }
  .project-story__head > p { max-width:760px; }
  .project-story__lead { grid-template-columns:1fr; }
  .project-story__lead > p + p { border-top:1px solid var(--line); border-left:0; }
  .project-chapter { grid-template-columns:155px minmax(0,1fr); gap:28px; }
  .now-hero__lockup { grid-template-columns:minmax(240px,.6fr) minmax(0,1.4fr); gap:45px; }
  .now-section__head { grid-template-columns:130px minmax(0,1fr); gap:34px; }
  .now-thread { grid-template-columns:60px minmax(190px,.62fr) minmax(0,1.38fr); gap:23px; padding-right:0; }
  .now-recent-list > a { grid-template-columns:105px 80px minmax(0,1fr) 18px; gap:18px; }
  .notebook-controls { grid-template-columns:1fr; }
  .notebook-controls__status { grid-column:auto; }
  .notebook-note-layout { grid-template-columns:1fr; gap:0; }
  .notebook-note-context { position:static; margin:0 0 38px; }
  .ip-disclaimer__head { grid-template-columns:46px minmax(0,1fr); }
  .ip-disclaimer__affiliation { grid-column:2; justify-self:start; }
  .ashes-intro { grid-template-columns:1fr; gap:30px; }
  .ashes-thesis { grid-template-columns:55px 1fr; }
  .ashes-thesis__copy { grid-column:2; }
  .ashes-feature,.ashes-feature--image-left { grid-template-columns:1fr; gap:34px; }
  .ashes-systems { grid-template-columns:1fr; gap:38px; }
  .ashes-proof > header { grid-template-columns:1fr; gap:20px; }
  .ashes-proof > header > span { grid-column:auto; }
  .ashes-proof__record { grid-template-columns:260px 1fr; }
  .ashes-current { grid-template-columns:300px 1fr; }
  .hubn-hero__inner { grid-template-columns:1fr; gap:45px; }
  .hubn-hero__control { width:min(100%,620px); }
  .hubn-topology > header,.hubn-services > header,.hubn-route > header { grid-template-columns:1fr; gap:28px; }
  .hubn-services__grid { grid-template-columns:1fr 1fr; }
  .hubn-route__flow { grid-template-columns:1fr 1fr; }
  .hubn-route__flow li:nth-child(3) { border-left:0; }
  .hubn-state { grid-template-columns:1fr; gap:36px; }
  .hubn-trust__grid { grid-template-columns:1fr; }
  .hubn-trust article { border-right:0; border-bottom:1px solid var(--line-2); }
  .hubn-trust article:last-child { border-bottom:0; }
  .skye-manual-intro,.skye-workbench > header,.skye-lineage > header,.skye-execution > header { grid-template-columns:1fr; gap:28px; }
  .skye-manual-hero__facts { grid-template-columns:1fr 1fr; }
  .skye-manual-hero__facts > div:nth-child(2) { border-right:0; }
  .skye-manual-hero__facts > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .skye-workbench__flow { grid-template-columns:repeat(4,1fr); gap:22px 0; }
  .skye-workbench__stage > i { display:none; }
  .skye-fabric-feature > header { grid-template-columns:1fr; gap:28px; }
  .skye-fabric-feature__stats { grid-template-columns:1fr 1fr; }
  .skye-fabric-feature__stats > div:nth-child(2) { border-right:0; }
  .skye-fabric-feature__stats > div:nth-child(-n+2) { border-bottom:1px solid rgba(99,213,220,.13); }
  .skye-fabric-feature__architecture { grid-template-columns:1fr; gap:42px; }
  .skye-fabric-feature__evidence { grid-template-columns:1fr; }
  .skye-fabric-feature__evidence figure:first-child { border-right:0; border-bottom:1px solid rgba(99,213,220,.17); }
  .skye-fabric-feature > footer { grid-template-columns:1fr; gap:25px; }
  .skye-fabric-feature > footer > div { justify-content:flex-start; }
  .skye-record { grid-template-columns:1fr; gap:35px; }
  .code-hero__inner { grid-template-columns:1fr; gap:42px; }
  .code-hero__copy { max-width:680px; }
  .code-origin,.code-workspace > header,.code-recovery > header { grid-template-columns:1fr; gap:30px; }
  .code-workspace__records { grid-template-columns:1fr 1fr; }
  .code-workspace__records article:nth-child(2) { border-right:1px solid var(--line-2); }
  .code-review { grid-template-columns:1fr; gap:38px; }
  .code-recovery__states { grid-template-columns:1fr 1fr; }
  .code-boundary { grid-template-columns:260px 1fr; }
}
@media (max-width: 640px) {
  :root { --rail: min(calc(100% - 40px), var(--maxw)); }
  .wrap, .section, .hero__inner, .esports__inner, .page-hero__inner,
  .blog-layout, .stream-layout, .cta { padding-left:0; padding-right:0; }
  .prose { padding-left:20px; padding-right:20px; }
  .jbl-header__inner { padding:12px 0; }
  .jbl-nav { position:fixed; inset:60px 0 auto 0; flex-direction:column; gap:0;
    background:rgba(var(--bg-ch),.97); border-bottom:1px solid var(--line); padding:10px 20px 18px;
    transform:translateY(-130%); transition:transform .3s; align-items:stretch; }
  .jbl-nav.open { transform:none; }
  .jbl-nav a { padding:12px 0; border-bottom:1px solid var(--line); }
  .jbl-nav a.btn-accent { justify-content:center; margin-top:10px; border-bottom:0; }
  .jbl-nav__toggle { display:inline-flex; }
  .skills { grid-template-columns:1fr 1fr; }
  .current-work__grid { grid-template-columns:1fr; }
  .current-project > p { min-height:0; }
  .skye__inner { padding:32px 24px; }
  .skye__dispatch-head { align-items:start; }
  .skye-story > a { gap:11px; padding:15px 14px; }
  .skye-story p { display:none; }
  .jbl-footer__top { grid-template-columns:1fr; }
  .esports__roles { grid-template-columns:1fr; }
  .consent-banner { right:12px; bottom:12px; left:12px; }
  .consent-banner__inner { grid-template-columns:1fr; gap:18px; padding:20px; }
  .consent-banner__actions { justify-content:stretch; }
  .consent-banner__actions .btn { flex:1; justify-content:center; }
  .external-content__placeholder { padding:18px; gap:10px; }
  .ip-disclaimer__head { grid-template-columns:40px minmax(0,1fr); gap:13px; padding:20px 19px 18px; }
  .ip-disclaimer__icon { width:38px; height:38px; padding:8px; }
  .ip-disclaimer strong { font-size:17px; }
  .ip-disclaimer__affiliation { grid-column:1 / -1; margin-top:2px; }
  .ip-disclaimer__body { grid-template-columns:1fr; }
  .ip-disclaimer__item { grid-template-columns:26px minmax(0,1fr); gap:12px; padding:20px 19px 22px; }
  .ip-disclaimer__item + .ip-disclaimer__item { border-top:1px solid var(--line); border-left:0; }
  .project-dossier__inner { padding:56px 0 48px; }
  .project-dossier__mark { width:calc(100vw - 40px); min-height:120px; }
  .project-dossier__logo { width:85vw; max-width:100%; max-height:115px; }
  .project-facts { grid-template-columns:1fr; }
  .project-fact,.project-fact:nth-child(2) { border-right:0; border-bottom:1px solid var(--line); }
  .project-fact:last-child { border-bottom:0; }
  .project-milestones { margin-top:48px; }
  .project-milestones__head { padding:34px 24px 30px; }
  .project-milestones__head h2 { font-size:34px; }
  .project-milestones__stats { grid-template-columns:1fr 1fr; }
  .project-milestones__stats > div { padding:19px 20px; }
  .project-milestones__stats strong { font-size:21px; }
  .project-milestones__list { padding:0 22px 10px; }
  .project-milestone { grid-template-columns:48px minmax(0,1fr); gap:13px; }
  .project-milestone__rail span { width:34px; height:34px; }
  .project-milestone__rail::before { left:16px; }
  .project-milestone h3 { font-size:19px; }
  .project-story { margin-top:48px; }
  .project-story__head { padding:34px 24px 30px; }
  .project-story__head h2 { font-size:34px; }
  .project-story__lead > p { padding:23px 24px 25px; font-size:16px; }
  .project-story__timeline { padding:5px 22px 12px; }
  .project-chapter { grid-template-columns:1fr; gap:14px; padding:30px 0 32px; }
  .project-chapter__rail { min-height:36px; padding:4px 0 0 48px; }
  .project-chapter__rail::before { left:16px; top:-30px; bottom:-32px; }
  .project-chapter:first-child .project-chapter__rail::before { top:17px; }
  .project-chapter:last-child .project-chapter__rail::before { bottom:calc(100% - 18px); }
  .project-chapter__rail > span { width:34px; height:34px; }
  .project-chapter__rail small { max-width:none; }
  .project-chapter__body { padding-left:48px; }
  .project-chapter__body h3 { font-size:23px; }
  .project-chapter__copy { font-size:16px; }
  .project-chapter__copy ul { grid-template-columns:1fr; }
  .ashes-hero { min-height:650px; }
  .ashes-hero__image { object-position:64% center; }
  .ashes-hero__shade { background:linear-gradient(90deg,rgba(4,5,7,.88),rgba(4,5,7,.38)),linear-gradient(0deg,rgba(4,5,7,.94),transparent 45%,rgba(4,5,7,.5)); }
  .ashes-hero__inner { min-height:650px; padding:38px 0 34px; }
  .ashes-hero__top { align-items:flex-start; flex-direction:column; gap:14px; }
  .ashes-hero__title { padding-top:60px; }
  .ashes-hero h1 { font-size:49px; }
  .ashes-hero__title p { font-size:17px; }
  .ashes-hero__foot { align-items:flex-start; flex-direction:column; }
  .ashes-hero__foot small { display:none; }
  .ashes-intro { padding-top:58px; }
  .ashes-intro h2,.ashes-thesis h2,.ashes-feature h2,.ashes-systems h2,.ashes-proof h2,.ashes-current h2 { font-size:35px; }
  .ashes-intro__copy { font-size:16px; }
  .ashes-intro__scale { grid-template-columns:1fr 1fr; }
  .ashes-intro__scale > div:nth-child(2) { border-right:0; }
  .ashes-intro__scale > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .ashes-thesis { margin-top:52px; padding:27px 23px; grid-template-columns:1fr; gap:20px; }
  .ashes-thesis__index { font-size:23px; }
  .ashes-thesis__copy { grid-column:auto; }
  .ashes-feature { margin-top:58px; }
  .ashes-feature h2 { margin-bottom:19px; }
  .ashes-feature figure img { aspect-ratio:4/3; }
  .ashes-systems { margin-top:58px; padding:28px 22px; }
  .ashes-systems__map { grid-template-columns:1fr; }
  .ashes-systems__core { grid-column:auto; }
  .ashes-proof { padding-top:60px; }
  .ashes-proof__grid { grid-template-columns:1fr; }
  .ashes-proof figure img { aspect-ratio:4/3; }
  .ashes-proof__record,.ashes-current { grid-template-columns:1fr; gap:21px; padding:25px 22px; }
  .hubn-hero__inner { padding:60px 0 54px; }
  .hubn-hero__identity img { margin:26px 0 24px; }
  .hubn-hero__identity > p { font-size:17px; }
  .hubn-control__facts { grid-template-columns:1fr; }
  .hubn-control__facts > div,.hubn-control__facts > div:nth-child(2n),.hubn-control__facts > div:nth-last-child(-n+2) { min-height:0; border-right:0; border-bottom:1px solid var(--line); }
  .hubn-control__facts > div:last-child { border-bottom:0; }
  .hubn-topology,.hubn-services,.hubn-route,.hubn-trust { padding-top:58px; }
  .hubn-topology h2,.hubn-services h2,.hubn-route h2,.hubn-state h2,.hubn-trust h2 { font-size:36px; }
  .hubn-topology__figure img { aspect-ratio:auto; min-height:260px; padding:10px; object-fit:contain; }
  .hubn-services__grid,.hubn-route__flow { grid-template-columns:1fr; }
  .hubn-services article { min-height:210px; }
  .hubn-route__flow li,.hubn-route__flow li:nth-child(3) { min-height:0; border-left:0; }
  .hubn-route__flow li:not(:last-child)::after { top:auto; right:25px; bottom:-5px; transform:rotate(135deg); }
  .hubn-state { margin-top:58px; padding:27px 22px; }
  .hubn-state__matrix-head { display:none!important; }
  .hubn-state__matrix > div { grid-template-columns:1fr 20px 1fr; padding:10px; }
  .hubn-publication { grid-template-columns:1fr; gap:18px; padding:24px; }
  .skye-manual-hero__inner { padding:45px 0 42px; }
  .skye-manual-hero__meta { align-items:flex-start; flex-direction:column; gap:14px; }
  .skye-manual-hero__inner > img { margin:54px 0 27px; }
  .skye-manual-hero__bottom { align-items:flex-start; flex-direction:column; gap:23px; }
  .skye-manual-hero__bottom p { font-size:17px; }
  .skye-manual-hero__facts { grid-template-columns:1fr; }
  .skye-manual-hero__facts > div,.skye-manual-hero__facts > div:nth-child(2) { border-right:0; border-bottom:1px solid var(--line); }
  .skye-manual-hero__facts > div:last-child { border-bottom:0; }
  .skye-manual-intro { padding-top:58px; gap:24px; }
  .skye-manual-intro h2,.skye-workbench h2,.skye-record h2,.skye-lineage h2,.skye-execution h2,.skye-components h2 { font-size:35px; }
  .skye-workbench,.skye-lineage,.skye-execution,.skye-components { padding-top:58px; }
  .skye-workbench__flow { grid-template-columns:1fr 1fr; padding:22px 10px; }
  .skye-fabric-feature { margin-top:58px; }
  .skye-fabric-feature__banner { min-height:100px; }
  .skye-fabric-feature__banner::after { display:none; }
  .skye-fabric-feature__banner img { width:90%; min-height:0; padding:24px 0; object-fit:contain; }
  .skye-fabric-feature > header { padding:34px 22px 28px; }
  .skye-fabric-feature > header h2 { font-size:36px; }
  .skye-fabric-feature__stats { grid-template-columns:1fr; margin:0 22px 36px; }
  .skye-fabric-feature__stats > div,.skye-fabric-feature__stats > div:nth-child(2) { border-right:0; border-bottom:1px solid rgba(99,213,220,.13); }
  .skye-fabric-feature__stats > div:last-child { border-bottom:0; }
  .skye-fabric-feature__topology { margin:0 22px!important; }
  .skye-fabric-feature__topology img,.skye-fabric-feature__evidence img { padding:8px; }
  .skye-fabric-feature__architecture { padding:42px 22px; }
  .skye-fabric-feature__planes article { grid-template-columns:1fr; min-height:0; }
  .skye-fabric-feature__planes article > span { grid-row:auto; }
  .skye-fabric-feature > footer { padding:30px 22px; }
  .skye-fabric-feature > footer > div { align-items:stretch; flex-direction:column; }
  .skye-fabric-feature > footer .btn { justify-content:center; }
  .skye-record { margin-top:58px; padding:26px 22px; }
  .skye-record__sample > div { grid-template-columns:1fr; }
  .skye-record__sample > div > span { grid-row:auto; }
  .skye-lineage__stack article { grid-template-columns:38px 1fr; gap:15px; padding:20px 17px; }
  .skye-lineage__stack small { display:none; }
  .skye-execution__grid,.skye-components__grid { grid-template-columns:1fr; }
  .skye-components__grid article { border-right:0; border-bottom:1px solid var(--line-2); }
  .skye-components__grid article:last-child { border-bottom:0; }
  .skye-migration { grid-template-columns:1fr; gap:20px; padding:25px 22px; }
  .code-hero__inner { padding:58px 0 36px; }
  .code-hero h1 { font-size:52px; }
  .code-window__bar { grid-template-columns:48px 1fr; }
  .code-window__bar small { display:none; }
  .code-hero__facts { grid-template-columns:1fr 1fr; margin-bottom:42px; }
  .code-hero__facts > div:nth-child(2) { border-right:0; }
  .code-hero__facts > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .code-origin { padding-top:58px; }
  .code-origin h2,.code-workspace h2,.code-review h2,.code-recovery h2,.code-memory h2 { font-size:36px; }
  .code-origin__body { font-size:16px; }
  .code-workspace,.code-review,.code-recovery,.code-memory { padding-top:58px; }
  .code-workspace__records,.code-recovery__states,.code-memory__split { grid-template-columns:1fr; }
  .code-workspace__records article,.code-workspace__records article:nth-child(2) { min-height:0; border-right:1px solid var(--line-2); }
  .code-review__roles > div { grid-template-columns:28px 90px 1fr; }
  .code-review__roles small { font-size:8.5px; }
  .code-recovery__states article { min-height:0; }
  .code-memory__split article { padding:27px 23px; }
  .code-memory__split p { min-height:0; }
  .code-boundary,.code-current { grid-template-columns:1fr; gap:20px; padding:26px 23px; }
  .dispatch-grid,.builds-grid { grid-template-columns:1fr; }
  .build-card__visual { height:auto; aspect-ratio:16/9; }
  .callout-panel { align-items:flex-start; flex-direction:column; padding:28px 24px; }
  .now-hero__inner { padding-top:50px; }
  .now-hero__meta { align-items:flex-start; flex-direction:column; gap:13px; }
  .now-hero__lockup { grid-template-columns:1fr; gap:42px; padding:58px 0 54px; }
  .now-hero h1 { font-size:clamp(90px,31vw,145px); }
  .now-hero__copy > p { font-size:21px; }
  .now-hero__overview { grid-template-columns:1fr; gap:14px; }
  .now-hero__nav { grid-template-columns:1fr; }
  .now-hero__nav a + a { border-top:1px solid var(--line); }
  .now-section { padding:68px 0; }
  .now-section__head { grid-template-columns:1fr; gap:25px; margin-bottom:42px; }
  .now-section__head > div:first-child { flex-direction:row; justify-content:space-between; }
  .now-section__head h2 { font-size:38px; }
  .now-thread { grid-template-columns:44px minmax(0,1fr); gap:19px; min-height:0; padding:32px 0; }
  .now-thread__rail { grid-row:1 / 3; }
  .now-thread__rail span { width:35px; height:35px; }
  .now-thread__identity { grid-column:2; }
  .now-thread__detail { grid-column:2; }
  .now-thread__identity > span { margin-bottom:17px; }
  .now-thread h3 { font-size:31px; }
  .now-thread__next { grid-template-columns:1fr; gap:10px; }
  .now-recent-list > a { grid-template-columns:minmax(0,1fr) 18px; gap:7px 18px; padding:25px 2px; }
  .now-recent-list time,.now-recent-list > a > span,.now-recent-list > a > div { grid-column:1; }
  .now-recent-list > a > svg { grid-column:2; grid-row:1 / 4; }
  .now-recent-list > a > span { margin-bottom:10px; }
  .now-shelf { grid-template-columns:1fr; }
  .now-shelf a { min-height:125px; padding:24px 21px; }
  .now-shelf svg { top:24px; right:21px; }
  .now-archive-link { grid-template-columns:minmax(0,1fr) 20px; gap:9px 18px; }
  .now-archive-link span { grid-column:1 / -1; }
  .archive-timeline::before { left:25px; }
  .archive-era { grid-template-columns:50px 1fr; }
  .archive-era::after { left:20px; }
  .archive-era__year { writing-mode:vertical-rl; font-size:20px; }
  .archive-era__content { margin-left:0; padding-left:18px; }
  .archive-year { grid-template-columns:1fr; gap:16px; }
  .archive-year a { grid-template-columns:62px 1fr; }
  .archive-year em { display:none; }
  .notebook { padding-top:38px; }
  .section-subscribe { justify-content:flex-start; }
  .notebook-controls { grid-template-columns:1fr; padding:19px; margin-bottom:45px; }
  .notebook-controls__status { grid-column:auto; }
  .notebook-month { margin-bottom:48px; }
  .notebook-month__entries::before { left:15px; }
  .notebook-entry { grid-template-columns:31px minmax(0,1fr) 32px; padding:25px 0; }
  .notebook-entry__date { grid-column:2; display:flex; gap:5px; align-items:baseline; margin-bottom:8px; }
  .notebook-entry__date strong { font-size:10.5px; color:var(--muted); }
  .notebook-entry__date span { margin:0; font-size:9.5px; }
  .notebook-entry__marker { grid-column:1; grid-row:1 / span 2; }
  .notebook-entry__marker span { left:11px; top:4px; }
  .notebook-entry__body { grid-column:2; }
  .notebook-entry__open { grid-column:3; grid-row:2; }
  .notebook-entry__meta span:nth-child(3) { display:none; }
  .notebook-entry h3 { font-size:19px; }
  .notebook-entry__body > p { font-size:14px; }
  .notebook-note-hero__inner { padding:30px 0 48px; }
  .notebook-note-hero__inner::before { display:none; }
  .notebook-note-hero__back { margin-bottom:42px; }
  .notebook-note-hero__meta { gap:8px 13px; }
  .notebook-note-hero__meta span::before,.notebook-note-hero__meta time::before { margin-right:13px; }
  .notebook-note-hero__meta span:last-child { display:none; }
  .notebook-note-hero p { font-size:17px; }
  .notebook-note-layout { grid-template-columns:1fr; gap:0; }
  .note-prose { padding:43px 0 30px; font-size:17px; }
  .note-prose > p:first-child { font-size:18px; }
  .notebook-note-context { position:static; margin:0 0 38px; }
  .notebook-note-nav { grid-template-columns:1fr; margin-bottom:55px; }
  .notebook-note-nav__older { text-align:left; }
  .project-notebook-item { grid-template-columns:1fr auto; gap:8px 18px; }
  .project-notebook-item__meta { grid-column:1 / -1; }
  .event-page-hero { min-height:520px; }
  .gallery-card__overlay { opacity:1; background:linear-gradient(180deg,transparent 45%,rgba(var(--bg-ch),.9)); }
  .projects-grid { grid-template-columns:1fr; gap:18px; }
  .project-card__body { min-height:0; }
  .project-section-nav { margin-top:20px; padding:16px 14px; }
  .project-section-nav > div { grid-template-columns:1fr 1fr; }
  .project-section-nav a { padding:7px 8px; }
}

@media (max-width: 900px) {
  .jbl-nav { position:fixed; inset:70px 0 auto 0; flex-direction:column; gap:0;
    background:rgba(var(--bg-ch),.98); border-bottom:1px solid var(--line); padding:10px 32px 18px;
    transform:translateY(-130%); transition:transform .3s; align-items:stretch; }
  .jbl-nav.open { transform:none; }
  .jbl-nav a { padding:12px 0; border-bottom:1px solid var(--line); }
  .jbl-nav a.btn-accent { justify-content:center; margin-top:10px; border-bottom:0; }
  .jbl-nav__toggle { display:inline-flex; }
}

/* Project flow pass: each page keeps one visual grammar from hero to close. */
.skye-manual-intro { padding-top:90px; }
.skye-record,.skye-workbench,.skye-lineage,.skye-execution,.skye-components { margin-top:86px; padding-top:86px; border-top:1px solid rgba(165,143,255,.14); }
.skye-record { padding-right:0; padding-bottom:0; padding-left:0; border-right:0; border-bottom:0; border-left:0; background:none; }
.skye-workbench,.skye-lineage,.skye-execution,.skye-components { padding-bottom:0; }
.skye-workbench__flow { border-right:0; border-left:0; background:none; }
.skye-lineage__stack { border-right:0; border-left:0; }
.skye-lineage__stack article { background:none; }
.skye-execution__grid { gap:0; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.skye-execution__grid article { border-top:0; border-bottom:0; border-left:0; background:none; }
.skye-execution__grid article:last-child { border-right:0; }
.skye-components__grid { border-right:0; border-left:0; }
.skye-fabric-feature { max-width:1180px; margin-top:94px; padding-top:94px; border-right:0; border-bottom:0; border-left:0; background:none; box-shadow:none; overflow:visible; }
.skye-fabric-feature::before { display:none; }
.skye-fabric-feature__banner { min-height:0; margin-bottom:62px; border:1px solid rgba(99,213,220,.16); background:var(--deep-2); }
.skye-fabric-feature__banner img { max-height:235px; }
.skye-fabric-feature > header { padding:0 0 48px; }
.skye-fabric-feature__stats { margin:0 0 64px; border-right:0; border-left:0; background:none; }
.skye-fabric-feature__topology { margin:0!important; }
.skye-fabric-feature__architecture { padding:68px 0; }
.skye-fabric-feature__planes { border-right:0; border-left:0; background:none; }
.skye-fabric-feature__evidence { gap:16px; border:0; background:none; }
.skye-fabric-feature__evidence figure { border:1px solid rgba(99,213,220,.15); }
.skye-fabric-feature__evidence figure:first-child { border-right:1px solid rgba(99,213,220,.15); }
.skye-fabric-feature > footer { margin-top:54px; padding:34px 0 0; border-top:1px solid rgba(99,213,220,.14); }
.skye-current { width:var(--rail); max-width:1180px; margin:0 auto 96px; }
.skye-migration { margin-top:36px; padding:32px 0 0; border-top:1px solid rgba(165,143,255,.14); border-left:0; background:none; }

.hubn-topology { padding-top:90px; }
.hubn-services,.hubn-route,.hubn-state,.hubn-trust { margin-top:88px; padding-top:88px; border-top:1px solid rgba(255,176,32,.13); }
.hubn-services,.hubn-route,.hubn-trust { padding-bottom:0; }
.hubn-topology__figure { box-shadow:none; }
.hubn-services__grid { border-right:0; border-left:0; }
.hubn-services article { border-bottom:1px solid var(--line-2); background:none; }
.hubn-services article:first-child { border-left:0; }
.hubn-services article:last-child { border-right:0; }
.hubn-state { padding-right:0; padding-bottom:0; padding-left:0; border-right:0; border-bottom:0; border-left:0; background:none; }
.hubn-trust__grid { border-right:0; border-left:0; }
.hubn-publication { margin-top:38px; padding:30px 0 0; border-right:0; border-bottom:0; border-left:0; background:none; }

.code-origin { padding-top:90px; }
.code-workspace,.code-review,.code-recovery,.code-memory,.code-boundary,.code-current { margin-top:86px; padding-top:86px; border-top:1px solid rgba(69,209,220,.13); }
.code-workspace__records { border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.code-workspace__records article { border-top:0; border-bottom:0; border-left:0; background:none; }
.code-workspace__records article:last-child { border-right:0; }
.code-review__roles { border-right:0; border-left:0; }
.code-workflow { margin-top:22px; box-shadow:none; }
.code-recovery__states { gap:0; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.code-recovery__states article,.code-recovery__state--denied,.code-recovery__state--paused,.code-recovery__state--recovered { border-top:0!important; border-bottom:0!important; border-left:0!important; border-right:1px solid var(--line-2)!important; background:none; }
.code-recovery__states article:last-child { border-right:0!important; }
.code-memory__split { gap:0; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.code-memory__split article { border-top:0; border-bottom:0; border-left:0; background:none; }
.code-memory__split article:last-child { border-right:0; }
.code-boundary { padding-right:0; padding-bottom:0; padding-left:0; border-right:0; border-bottom:0; border-left:0; background:none; }
.code-current { margin-bottom:96px; padding-right:0; padding-bottom:0; padding-left:0; border-right:0; border-bottom:0; border-left:0; background:none; }

@media (max-width: 980px) {
  .skye-record,.skye-workbench,.skye-lineage,.skye-execution,.skye-components,.skye-fabric-feature { margin-top:72px; padding-top:72px; }
  .skye-fabric-feature__banner { margin-bottom:48px; }
  .hubn-services,.hubn-route,.hubn-state,.hubn-trust,.code-workspace,.code-review,.code-recovery,.code-memory,.code-boundary,.code-current { margin-top:72px; padding-top:72px; }
}

@media (max-width: 640px) {
  .skye-manual-intro { padding-top:58px; }
  .skye-record,.skye-workbench,.skye-lineage,.skye-execution,.skye-components,.skye-fabric-feature { margin-top:58px; padding-top:58px; }
  .skye-record { padding-right:0; padding-left:0; }
  .skye-fabric-feature { overflow:hidden; }
  .skye-fabric-feature__banner { margin-bottom:38px; }
  .skye-fabric-feature > header { padding:0 0 30px; }
  .skye-fabric-feature__stats { margin:0 0 38px; }
  .skye-fabric-feature__topology { margin:0!important; }
  .skye-fabric-feature__architecture { padding:46px 0; }
  .skye-fabric-feature__evidence { gap:12px; }
  .skye-fabric-feature > footer { padding:30px 0 0; }
  .skye-migration { padding:28px 0 0; }
  .hubn-topology { padding-top:58px; }
  .hubn-services,.hubn-route,.hubn-state,.hubn-trust { margin-top:58px; padding-top:58px; }
  .hubn-state { padding-right:0; padding-left:0; }
  .hubn-publication { padding:25px 0 0; }
  .code-origin { padding-top:58px; }
  .code-workspace,.code-review,.code-recovery,.code-memory,.code-boundary,.code-current { margin-top:58px; padding-top:58px; }
  .code-workspace__records article,.code-workspace__records article:nth-child(2),.code-recovery__states article,.code-memory__split article { border-right:0!important; border-bottom:1px solid var(--line-2)!important; }
  .code-workspace__records article:last-child,.code-recovery__states article:last-child,.code-memory__split article:last-child { border-bottom:0!important; }
  .code-boundary,.code-current { padding-right:0; padding-left:0; }
}

/* Pick and place / one continuous workshop drawing. */
.pnp-page { --pnp:var(--acc); --pnp-green:var(--lime); background:var(--deep); }
.pnp-hero { position:relative; overflow:hidden; border-bottom:1px solid rgba(255,176,32,.18); background:radial-gradient(circle at 72% 42%,rgba(157,221,98,.08),transparent 28%),radial-gradient(circle at 77% 34%,rgba(255,176,32,.08),transparent 42%),var(--deep); }
.pnp-hero__grid { position:absolute; inset:0; opacity:.48; background-image:linear-gradient(rgba(var(--fg-ch),.026) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.026) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(90deg,transparent 28%,#000 66%,transparent); }
.pnp-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:1320px; min-height:680px; margin:0 auto; display:grid; grid-template-columns:minmax(360px,.72fr) minmax(540px,1.28fr); gap:70px; align-items:center; }
.pnp-hero__copy > span,.pnp-chapter header span { color:var(--pnp); font:9.5px var(--f-mono); letter-spacing:.15em; text-transform:uppercase; }
.pnp-hero__copy > strong { display:flex; width:max-content; align-items:center; gap:8px; margin:20px 0 38px; padding:6px 10px; border:1px solid rgba(157,221,98,.27); color:var(--green-text); font:400 8.5px var(--f-mono); letter-spacing:.1em; }
.pnp-hero__copy > strong i,.pnp-prototype__status span i { width:5px; height:5px; border-radius:50%; background:var(--pnp-green); box-shadow:0 0 9px var(--pnp-green); }
.pnp-hero h1 { max-width:620px; margin:0 0 25px; font-size:clamp(58px,7vw,102px); line-height:.82; letter-spacing:-.04em; text-transform:uppercase; }
.pnp-hero__copy > p { max-width:570px; margin:0 0 28px; color:var(--text-2); font-size:18px; line-height:1.68; }
.pnp-hero__machine { position:relative; min-width:0; min-height:610px; margin:0; display:grid; place-items:center; }
.pnp-hero__machine::before { content:""; position:absolute; width:72%; aspect-ratio:1; border:1px solid rgba(255,176,32,.12); border-radius:50%; box-shadow:0 0 90px rgba(157,221,98,.05),inset 0 0 90px rgba(255,176,32,.035); }
.pnp-hero__machine::after { content:"ASSEMBLY / PNP-HC-01"; position:absolute; top:62px; right:10px; color:rgba(255,176,32,.52); font:8.5px var(--f-mono); letter-spacing:.13em; }
.pnp-hero__machine > img { position:relative; z-index:2; width:min(100%,720px); max-height:610px; object-fit:contain; filter:drop-shadow(0 34px 30px rgba(0,0,0,.48)) drop-shadow(0 0 22px rgba(157,221,98,.08)); transform:translateY(-6px); }
.pnp-hero__orbit { position:absolute; width:84%; aspect-ratio:1; border:1px solid rgba(var(--fg-ch),.045); border-radius:50%; transform:rotate(-13deg) scaleY(.38); }
.pnp-hero__orbit::before,.pnp-hero__orbit::after { content:""; position:absolute; inset:50% 0 auto; height:1px; background:linear-gradient(90deg,transparent,rgba(255,176,32,.2),transparent); }
.pnp-hero__orbit::after { transform:rotate(90deg); }
.pnp-hero__orbit span { position:absolute; width:7px; height:7px; border:1px solid var(--pnp); border-radius:50%; background:var(--deep); }
.pnp-hero__orbit span:first-child { top:47%; left:-4px; }.pnp-hero__orbit span:last-child { top:47%; right:-4px; }
.pnp-hero__machine figcaption { position:absolute; z-index:3; right:10px; bottom:52px; display:flex; gap:18px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.09em; }
.pnp-hero__machine figcaption strong { color:var(--pnp-green); font-weight:400; }
.pnp-facts { position:relative; z-index:2; width:var(--rail); max-width:1320px; margin:0 auto 54px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,176,32,.18); border-bottom:1px solid var(--line-2); }
.pnp-facts > div { padding:20px 18px; border-right:1px solid var(--line); }
.pnp-facts > div:last-child { border-right:0; }
.pnp-facts span { display:block; margin-bottom:8px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.pnp-facts strong { color:var(--text); font:600 16px var(--f-display); }
.pnp-record { width:var(--rail); max-width:1180px; margin:0 auto; }
.pnp-chapter { padding:92px 0; }
.pnp-chapter + .pnp-chapter { border-top:1px solid rgba(255,176,32,.13); }
.pnp-chapter > header { display:grid; grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr); gap:78px; align-items:start; }
.pnp-chapter h2 { margin:13px 0 0; font-size:clamp(40px,4.7vw,64px); line-height:.96; text-transform:uppercase; }
.pnp-chapter header > div:last-child,.pnp-chapter header > p { margin:0; color:var(--text-2); font-size:16.5px; line-height:1.72; }
.pnp-chapter header p:first-child { margin-top:0; }
.pnp-chapter header p:last-child { margin-bottom:0; }
.pnp-sequence { display:grid; grid-template-columns:repeat(4,1fr); margin:55px 0 0; padding:0; border-top:1px solid rgba(255,176,32,.2); border-bottom:1px solid var(--line-2); list-style:none; }
.pnp-sequence li { position:relative; min-height:245px; padding:28px 25px; border-right:1px solid var(--line); }
.pnp-sequence li:last-child { border-right:0; }
.pnp-sequence li > span { color:var(--pnp); font:9.5px var(--f-mono); }
.pnp-sequence h3 { margin:35px 0 11px; font-size:20px; text-transform:uppercase; }
.pnp-sequence p { margin:0; color:var(--text-3); font-size:14px; line-height:1.58; }
.pnp-layers { margin-top:55px; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.pnp-layers article { display:grid; grid-template-columns:100px 240px 1fr; gap:30px; align-items:center; min-height:112px; padding:24px 20px; border-bottom:1px solid var(--line); }
.pnp-layers article:last-child { border-bottom:0; }
.pnp-layers article > span { color:var(--pnp-green); font:8.5px var(--f-mono); letter-spacing:.12em; }
.pnp-layers h3 { margin:0; font-size:21px; text-transform:uppercase; }
.pnp-layers p { margin:0; color:var(--text-3); font-size:14.5px; line-height:1.58; }
.pnp-gantry__gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:58px; }
.pnp-gantry__gallery figure { margin:0; overflow:hidden; border:1px solid var(--line-2); background:var(--panel-c); }
.pnp-gantry__gallery img { display:block; width:100%; aspect-ratio:1.25/1; padding:18px; object-fit:contain; }
.pnp-gantry__gallery figcaption { padding:12px 14px; border-top:1px solid var(--line); color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; }
.pnp-log-link { display:grid; grid-template-columns:180px 1fr 20px; gap:24px; align-items:center; margin-top:14px; padding:22px 18px; border-top:1px solid rgba(255,176,32,.18); border-bottom:1px solid var(--line-2); }
.pnp-log-link span { color:var(--pnp); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.pnp-log-link strong { font:600 16px var(--f-display); text-transform:uppercase; }
.pnp-log-link svg { width:17px; color:var(--pnp); }
.pnp-prototype__status { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:52px; padding:22px 18px; border-top:1px solid rgba(157,221,98,.2); border-bottom:1px solid var(--line-2); }
.pnp-prototype__status span { display:flex; align-items:center; gap:9px; color:var(--pnp-green); font:8.5px var(--f-mono); letter-spacing:.11em; }
.pnp-prototype__status strong { color:var(--muted-2); font:8.5px var(--f-mono); font-weight:400; letter-spacing:.1em; }

@media (max-width: 980px) {
  .pnp-hero__inner { grid-template-columns:1fr; gap:20px; padding-top:70px; }
  .pnp-hero__copy { max-width:680px; }
  .pnp-hero__machine { min-height:580px; }
  .pnp-chapter > header { grid-template-columns:1fr; gap:30px; }
  .pnp-sequence { grid-template-columns:1fr 1fr; }
  .pnp-sequence li:nth-child(2) { border-right:0; }
  .pnp-sequence li:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .pnp-layers article { grid-template-columns:80px 200px 1fr; }
}

@media (max-width: 640px) {
  .pnp-hero__inner { min-height:0; padding-top:48px; }
  .pnp-hero__copy > strong { margin:17px 0 28px; }
  .pnp-hero h1 { font-size:54px; }
  .pnp-hero__copy > p { font-size:16px; }
  .pnp-hero__machine { min-height:390px; }
  .pnp-hero__machine > img { max-height:390px; }
  .pnp-hero__machine::after { top:28px; }
  .pnp-hero__machine figcaption { right:0; bottom:18px; left:0; justify-content:space-between; gap:10px; font-size:7.5px; }
  .pnp-facts { grid-template-columns:1fr; margin-bottom:0; }
  .pnp-facts > div { border-right:0; border-bottom:1px solid var(--line); }
  .pnp-facts > div:last-child { border-bottom:0; }
  .pnp-chapter { padding:58px 0; }
  .pnp-chapter h2 { font-size:36px; }
  .pnp-chapter header > div:last-child,.pnp-chapter header > p { font-size:15.5px; }
  .pnp-sequence { grid-template-columns:1fr; margin-top:38px; }
  .pnp-sequence li,.pnp-sequence li:nth-child(2) { min-height:0; border-right:0; border-bottom:1px solid var(--line); }
  .pnp-sequence li:last-child { border-bottom:0; }
  .pnp-layers { margin-top:38px; }
  .pnp-layers article { grid-template-columns:1fr; gap:10px; padding:24px 0; }
  .pnp-layers h3 { margin:8px 0 3px; }
  .pnp-gantry__gallery { grid-template-columns:1fr; margin-top:38px; }
  .pnp-log-link { grid-template-columns:1fr 20px; gap:8px 18px; }
  .pnp-log-link span { grid-column:1 / -1; }
  .pnp-prototype__status { align-items:flex-start; flex-direction:column; }
}

/* OctoPrint / a community service map with the role boundary built in. */
.octo-page { --octo:var(--green2); --octo-soft:var(--green-text); --octo-line:rgba(32,201,92,.2); background:var(--deep); }
.octo-kicker { color:var(--octo); font:9.5px var(--f-mono); letter-spacing:.15em; text-transform:uppercase; }
.octo-hero { position:relative; overflow:hidden; border-bottom:1px solid var(--octo-line); background:var(--deep); }
.octo-hero__wash { position:absolute; inset:0; background:radial-gradient(circle at 77% 43%,rgba(32,201,92,.12),transparent 27%),linear-gradient(90deg,transparent 0 54%,rgba(32,201,92,.025) 54% 54.1%,transparent 54.1%); }
.octo-hero__wash::before { content:""; position:absolute; inset:0; opacity:.45; background-image:linear-gradient(rgba(var(--fg-ch),.025) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fg-ch),.025) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(90deg,transparent 20%,#000 70%,transparent); }
.octo-hero__inner { position:relative; z-index:1; width:var(--rail); max-width:1260px; min-height:630px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr); gap:100px; align-items:center; }
.octo-hero__copy h1 { margin:26px 0 25px; font-size:clamp(72px,9vw,134px); line-height:.76; letter-spacing:-.055em; text-transform:uppercase; }
.octo-hero__copy > p { max-width:700px; margin:0; color:var(--text-2); font-size:18px; line-height:1.72; }
.octo-hero__links { display:flex; flex-wrap:wrap; gap:22px; margin-top:34px; }
.octo-hero__links a,.octo-spaces__copy a,.octo-attribution a { display:inline-flex; align-items:center; gap:7px; color:var(--text-3); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.octo-hero__links a:hover,.octo-spaces__copy a:hover,.octo-attribution a:hover { color:var(--octo); }
.octo-hero__links svg,.octo-spaces__copy a svg,.octo-attribution a svg { width:14px; }
.octo-hero__identity { position:relative; min-height:430px; display:grid; place-items:center; }
.octo-hero__identity::before,.octo-hero__identity::after { content:""; position:absolute; border:1px solid rgba(32,201,92,.13); border-radius:50%; }
.octo-hero__identity::before { width:380px; height:380px; }
.octo-hero__identity::after { width:290px; height:290px; border-style:dashed; animation:octo-orbit 36s linear infinite; }
@keyframes octo-orbit { to { transform:rotate(360deg); } }
.octo-hero__logo { position:relative; z-index:1; width:250px; height:250px; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle,rgba(32,201,92,.1),transparent 68%); }
.octo-hero__logo img { width:190px; max-height:190px; object-fit:contain; filter:drop-shadow(0 15px 25px rgba(0,0,0,.38)); }
.octo-role { position:absolute; z-index:2; right:0; bottom:14px; width:290px; padding:18px 0 0 20px; border-top:1px solid var(--octo-line); border-left:1px solid var(--octo-line); background:linear-gradient(135deg,rgba(var(--tint-lo-ch),.96),rgba(var(--tint-lo-ch),.75)); }
.octo-role span { display:flex; align-items:center; gap:9px; margin-bottom:12px; color:var(--octo-soft); font:8.5px var(--f-mono); letter-spacing:.11em; }
.octo-role span i { width:5px; height:5px; border-radius:50%; background:var(--octo); box-shadow:0 0 10px var(--octo); }
.octo-role strong { color:var(--muted-2); font:400 9.5px/1.55 var(--f-mono); letter-spacing:.08em; }
.octo-facts { position:relative; z-index:2; width:var(--rail); max-width:1260px; margin:0 auto 52px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--octo-line); border-bottom:1px solid var(--line-2); }
.octo-facts > div { min-width:0; padding:20px; border-right:1px solid var(--line); }
.octo-facts > div:last-child { border-right:0; }
.octo-facts span { display:block; margin-bottom:8px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.11em; text-transform:uppercase; }
.octo-facts strong { color:var(--text); font:600 16px var(--f-display); }
.octo-record { width:var(--rail); max-width:1180px; margin:0 auto; }
.octo-record > section,.octo-record section > *,.octo-spaces__copy,.octo-boundary__copy,.octo-work__body { min-width:0; }
.octo-record h2,.octo-record h3,.octo-record p { overflow-wrap:break-word; }
.octo-section-id { display:flex; align-items:center; gap:14px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.11em; }
.octo-section-id span { display:grid; width:31px; height:31px; place-items:center; border:1px solid var(--octo-line); border-radius:50%; color:var(--octo); }
.octo-section-id strong { font-weight:400; }
.octo-boundary { display:grid; grid-template-columns:125px minmax(0,760px); gap:55px; padding:100px 0; align-items:start; }
.octo-boundary__copy h2,.octo-spaces h2,.octo-work h2 { margin:14px 0 25px; font-size:clamp(42px,5vw,68px); line-height:.94; text-transform:uppercase; }
.octo-boundary__copy > div,.octo-work__copy { color:var(--text-2); font-size:16.5px; line-height:1.72; }
.octo-boundary__copy p:first-child,.octo-work__copy p:first-child { margin-top:0; }
.octo-boundary__copy p:last-child,.octo-work__copy p:last-child { margin-bottom:0; }
.octo-spaces { padding:100px 0; border-top:1px solid var(--octo-line); }
.octo-spaces > header,.octo-work > header { display:grid; grid-template-columns:180px minmax(0,680px); gap:30px; align-items:start; }
.octo-spaces > header h2,.octo-work > header h2 { margin-bottom:18px; }
.octo-spaces > header p { max-width:650px; margin:0; color:var(--text-3); font-size:15px; line-height:1.65; }
.octo-spaces__route { position:relative; margin-top:65px; }
.octo-spaces__route::before { content:""; position:absolute; top:0; bottom:0; left:54px; width:1px; background:linear-gradient(var(--octo),rgba(32,201,92,.08)); }
.octo-spaces__route article { position:relative; display:grid; grid-template-columns:110px minmax(0,1fr); min-height:245px; }
.octo-spaces__node { position:relative; z-index:1; padding-top:3px; }
.octo-spaces__node span { display:grid; width:46px; height:46px; place-items:center; margin-left:31px; border:1px solid rgba(32,201,92,.32); border-radius:50%; background:var(--deep); color:var(--octo); font:9.5px var(--f-mono); }
.octo-spaces__node i { position:absolute; top:22px; right:0; width:25px; height:1px; background:var(--octo-line); }
.octo-spaces__copy { display:grid; grid-template-columns:150px 240px minmax(0,1fr); gap:28px; align-items:start; padding:0 0 58px 28px; border-top:1px solid var(--line-2); }
.octo-spaces__copy > span { padding-top:24px; color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; }
.octo-spaces__copy h3 { margin:20px 0 0; font-size:27px; text-transform:uppercase; }
.octo-spaces__copy p { margin:19px 0 17px; color:var(--text-3); font-size:14.5px; line-height:1.65; }
.octo-spaces__copy a { grid-column:3; }
.octo-work { padding:100px 0; border-top:1px solid var(--octo-line); }
.octo-work__body { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.85fr); gap:90px; margin:55px 0 0 180px; }
.octo-work__principles { margin:0; padding:0; border-top:1px solid var(--octo-line); list-style:none; }
.octo-work__principles li { display:grid; grid-template-columns:28px 1fr; gap:18px; padding:23px 0; border-bottom:1px solid var(--line); }
.octo-work__principles li > span { position:relative; width:7px; height:7px; margin-top:6px; border:1px solid var(--octo); border-radius:50%; }
.octo-work__principles li > span::after { content:""; position:absolute; inset:2px; border-radius:50%; background:var(--octo); }
.octo-work__principles h3 { margin:0 0 7px; font-size:18px; text-transform:uppercase; }
.octo-work__principles p { margin:0; color:var(--text-3); font-size:13.5px; line-height:1.58; }
.octo-attribution { display:grid; grid-template-columns:130px minmax(0,1fr) 145px; gap:28px; align-items:center; margin-top:12px; padding:24px 20px; border-top:1px solid var(--octo-line); border-bottom:1px solid var(--line-2); }
.octo-attribution > span { color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.11em; }
.octo-attribution p { margin:0; color:var(--text-3); font-size:13.5px; line-height:1.55; }
.octo-attribution a { justify-self:end; color:var(--octo-soft); }
.octo-related { display:grid; grid-template-columns:190px 1fr 1fr; gap:0; align-items:stretch; margin:70px 0 90px; border-top:1px solid var(--octo-line); border-bottom:1px solid var(--line-2); }
.octo-related > span,.octo-related a { padding:23px 20px; }
.octo-related > span { color:var(--muted-2); font:8.5px var(--f-mono); letter-spacing:.11em; }
.octo-related a { display:flex; justify-content:space-between; align-items:center; gap:14px; border-left:1px solid var(--line); color:var(--text-3); font:600 14px var(--f-display); text-transform:uppercase; }
.octo-related a:hover { color:var(--octo); }
.octo-related svg { width:15px; }

@media (prefers-reduced-motion: reduce) {
  .octo-hero__identity::after { animation:none; }
}

@media (max-width: 980px) {
  .octo-hero__inner { grid-template-columns:1fr; gap:30px; padding-top:80px; }
  .octo-hero__identity { min-height:430px; }
  .octo-facts { margin-top:20px; }
  .octo-boundary { grid-template-columns:100px minmax(0,1fr); }
  .octo-spaces__copy { grid-template-columns:130px 190px minmax(0,1fr); }
  .octo-work__body { margin-left:0; gap:55px; }
}

@media (max-width: 720px) {
  .octo-hero__inner { min-height:0; padding-top:55px; }
  .octo-hero__copy h1 { margin-top:21px; font-size:68px; }
  .octo-hero__copy > p { font-size:16px; }
  .octo-hero__links { gap:15px 20px; }
  .octo-hero__identity { min-height:360px; }
  .octo-hero__identity::before { width:300px; height:300px; }
  .octo-hero__identity::after { width:230px; height:230px; }
  .octo-hero__logo { width:205px; height:205px; }
  .octo-hero__logo img { width:150px; max-height:150px; }
  .octo-role { right:auto; bottom:0; left:0; width:100%; }
  .octo-facts { grid-template-columns:1fr 1fr; margin-bottom:0; }
  .octo-facts > div:nth-child(2) { border-right:0; }
  .octo-facts > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .octo-boundary { grid-template-columns:1fr; gap:28px; padding:65px 0; }
  .octo-boundary__copy h2,.octo-spaces h2,.octo-work h2 { font-size:38px; }
  .octo-boundary__copy > div,.octo-work__copy { font-size:15.5px; }
  .octo-spaces,.octo-work { padding:65px 0; }
  .octo-spaces > header,.octo-work > header { grid-template-columns:1fr; gap:28px; }
  .octo-spaces__route { margin-top:45px; }
  .octo-spaces__route::before { left:22px; }
  .octo-spaces__route article { grid-template-columns:46px 1fr; min-height:0; }
  .octo-spaces__node span { width:42px; height:42px; margin-left:1px; }
  .octo-spaces__node i { display:none; }
  .octo-spaces__copy { grid-template-columns:1fr; gap:0; padding:0 0 48px 22px; }
  .octo-spaces__copy > span { padding-top:18px; }
  .octo-spaces__copy h3 { margin-top:9px; }
  .octo-spaces__copy p { margin-top:14px; }
  .octo-spaces__copy a { grid-column:auto; }
  .octo-work__body { grid-template-columns:1fr; gap:40px; margin-top:38px; }
  .octo-attribution { grid-template-columns:1fr; gap:13px; padding:22px 0; }
  .octo-attribution a { justify-self:start; }
  .octo-related { grid-template-columns:1fr; margin:55px 0 70px; }
  .octo-related a { border-top:1px solid var(--line); border-left:0; }
}

@media (max-width: 520px) {
  .octo-hero__copy h1 { font-size:58px; }
  .octo-facts { grid-template-columns:1fr; }
  .octo-facts > div { border-right:0; border-bottom:1px solid var(--line); }
  .octo-facts > div:last-child { border-bottom:0; }
}

/* ============================================================
   THEME TOGGLE (navbar)
   ============================================================ */
.jbl-nav { margin-left:auto; }
.jbl-header__controls { display:flex; align-items:center; gap:14px; }
.theme-toggle { position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; padding:0; border:1px solid var(--line-2); border-radius:3px;
  background:rgba(var(--fg-ch),.02); color:var(--text-3); cursor:pointer;
  transition:border-color .2s, color .2s, background .2s; }
.theme-toggle:hover { border-color:var(--acc); color:var(--acc); }
.theme-toggle .ic { position:absolute; width:17px; height:17px;
  transition:opacity .25s, transform .4s cubic-bezier(.2,.7,.2,1); }
.theme-toggle__sun { opacity:0; transform:rotate(-90deg) scale(.5); }
.theme-toggle__moon { opacity:1; transform:none; }
:root[data-jbl-theme="light"] .theme-toggle__sun { opacity:1; transform:none; }
:root[data-jbl-theme="light"] .theme-toggle__moon { opacity:0; transform:rotate(90deg) scale(.5); }
@media (prefers-reduced-motion: reduce) { .theme-toggle .ic { transition:none; } }

/* ============================================================
   THEME: LIGHT
   Activated by data-jbl-theme="light" on <html>, set before first
   paint by the inline script in head.html. Follows the system
   preference until the visitor makes an explicit choice with the
   navbar toggle (persisted in localStorage). Without JS the site
   stays dark, as before.
   ============================================================ */
:root[data-jbl-theme="light"] {
  color-scheme: light;

  --fg-ch:      16,20,28;
  --tint-hi-ch: 255,255,255;
  --tint-lo-ch: 247,248,251;
  --bg-ch:      244,245,248;

  --bg:        #f4f5f8;
  --bg-2:      #eceef2;
  --panel-a:   #ffffff;
  --panel-b:   #f3f4f7;
  --panel-c:   #f8f9fb;
  --panel-d:   #f0f2f6;
  --panel-hover: #ffffff;
  --deep:      #eaecf1;
  --deep-2:    #e3e6ec;

  --acc:       #9a6700;
  --acc2:      #5f3dc4;
  --purple:    #6741d9;
  --purple2:   #7048e8;
  --indigo:    #4c56d8;
  --green:     #178a3e;
  --green2:    #12833f;
  --lime:      #4f7f14;
  --teal:      #0b7f57;
  --teal2:     #0c766b;
  --cyan:      #0b7c8a;
  --cyan2:     #087f8c;
  --ember:     #bc4c17;

  --text:      #0f141c;
  --text-2:    #1a2029;
  --text-3:    #2c343f;
  --muted:     #49525f;
  --muted-2:   #59626f;
  --faint:     #a6adb7;
  --purple-text:  #5b43c0;
  --purple-muted: #6c5da8;
  --amber-text:   #8a6215;
  --green-text:   #2c7a3f;
  --cyan-text:    #0a6e79;
  --pink-text:    #c2255c;
  --mix-ink:   #10141b;
  --w-body:    400;

  --line:      rgba(16,20,28,.12);
  --line-2:    rgba(16,20,28,.18);
}
:root[data-jbl-theme="light"] body { -webkit-font-smoothing: auto; }
:root[data-jbl-theme="light"] ::selection { background:rgba(154,103,0,.28); color:#10141b; }

/* Soften the heavy dark-theme drop shadows on a light page. */
:root[data-jbl-theme="light"] .consent-banner,
:root[data-jbl-theme="light"] .ip-disclaimer,
:root[data-jbl-theme="light"] .project-milestones,
:root[data-jbl-theme="light"] .project-story,
:root[data-jbl-theme="light"] .event-record,
:root[data-jbl-theme="light"] .hubn-hero__control,
:root[data-jbl-theme="light"] .hubn-topology__figure,
:root[data-jbl-theme="light"] .project-dossier__visual,
:root[data-jbl-theme="light"] .skye-fabric-feature,
:root[data-jbl-theme="light"] .ashes-feature figure,
:root[data-jbl-theme="light"] .code-hero__facts { box-shadow:0 18px 50px -22px rgba(24,32,46,.22); }
:root[data-jbl-theme="light"] .project-card:hover,
:root[data-jbl-theme="light"] .project-card:focus-visible { box-shadow:0 16px 40px -18px rgba(24,32,46,.28); }
:root[data-jbl-theme="light"] .hero__glow-a,
:root[data-jbl-theme="light"] .hero__glow-b,
:root[data-jbl-theme="light"] .page-hero__glow { opacity:.5; }
:root[data-jbl-theme="light"] .ashes-page { --ashes-cool:#2c7286; }

/* Surfaces that stay dark in both themes: real photo overlays, the
   terminal card, and code-window chrome around dark screenshots.
   Re-pinning the tokens restores the dark palette for the subtree. */
:root[data-jbl-theme="light"] .term,
:root[data-jbl-theme="light"] .code-window,
:root[data-jbl-theme="light"] .code-workflow,
:root[data-jbl-theme="light"] .prose pre,
:root[data-jbl-theme="light"] .gallery-card__overlay,
:root[data-jbl-theme="light"] .frame__attribution,
:root[data-jbl-theme="light"] .frame__live,
:root[data-jbl-theme="light"] .build-card__category,
:root[data-jbl-theme="light"] .skye-fabric-feature__banner,
:root[data-jbl-theme="light"] .event-page-hero,
:root[data-jbl-theme="light"] .ashes-hero {
  color-scheme: dark;
  color: var(--text);
  --fg-ch:255,255,255; --tint-hi-ch:17,19,27; --tint-lo-ch:10,12,16; --bg-ch:10,11,15;
  --bg:#0a0b0f; --bg-2:#0c0e13; --panel-a:#0f1218; --panel-b:#0c0e13; --panel-c:#0d0f15;
  --panel-d:#0b0d12; --panel-hover:#10141b; --deep:#090b0e; --deep-2:#080a0d;
  --acc:#ffb020; --acc2:#7c5cff; --purple:#9d86ff; --purple2:#a58fff; --indigo:#7e83ff;
  --green:#28c840; --green2:#20c95c; --lime:#9ddd62; --teal:#53d4a5; --teal2:#36c2b4;
  --cyan:#35c8d4; --cyan2:#45d1dc; --ember:#d97841;
  --text:#e7e9ee; --text-2:#d2d6df; --text-3:#bbc1cc; --muted:#9ea6b3; --muted-2:#8c95a3;
  --faint:#565d68; --purple-text:#c7bcf5; --purple-muted:#a89ed0; --amber-text:#d3ac60;
  --green-text:#9ac98b; --cyan-text:#7ee0e8; --pink-text:#ff85ae; --mix-ink:#fff;
  --w-body:300; -webkit-font-smoothing:antialiased;
  --line:rgba(255,255,255,.07); --line-2:rgba(255,255,255,.10);
}

/* Pure-white wordmark images become ink on light. */
:root[data-jbl-theme="light"] .skye-manual-hero__inner > img,
:root[data-jbl-theme="light"] .skye__logo,
:root[data-jbl-theme="light"] .project-card--skyeengine .project-card__media img,
:root[data-jbl-theme="light"] .project-card--fabric .project-card__media img,
:root[data-jbl-theme="light"] .project-card--character-model .project-card__media img,
:root[data-jbl-theme="light"] .project-dossier__logo:not(.project-dossier__logo--hubn) { filter:invert(.86); }
