/* self-hosted fonts (CSP font-src 'self') */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono-latin-ext-400.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono-latin-ext-500.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono-latin-500.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/jetbrains-mono-latin-ext-700.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/jetbrains-mono-latin-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-ext-300.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-300.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-ext-400.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-ext-500.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-500.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-ext-600.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-600.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-ext-700.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-ext-800.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-800.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Syne';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/syne-latin-ext-700.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Syne';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/syne-latin-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Syne';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/syne-latin-ext-800.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Syne';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/syne-latin-800.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ==========================================================================
   Bitware Labs  -  site stylesheet
   Extracted from the original inline <style> block so every page shares one
   cached file. Cache-busted via ?v= (see ASSET_VER in _inc/config.php).
   ========================================================================== */

@font-face{
  font-family:'Inter';
  src:url('/fonts/inter-latin-normal.v2.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:swap;
}

:root{
  color-scheme:light dark;

  /* Sovereign Precision tokens */
  --paper:#ffffff;
  --bg:#f8fafc;
  --paper-2:#ffffff;
  --card:#ffffff;
  --band:#f1f5f9;
  --ink:#090d14;
  --ink-soft:#334155;
  --muted:var(--ink-soft);
  --ink-faint:#64748b;
  --accent:#0284c7;         /* high-precision technical cyan/blue */
  --accent-hover:#0369a1;
  --on-accent:#ffffff;
  --accent-2:#2563eb;       /* crisp secondary cobalt */
  --rule:#e2e8f0;
  --line:var(--rule);
  --rule-strong:#cbd5e1;
  --ordinal:#64748b;
  --grain:transparent;

  /* inverse / contact band */
  --inv-bg:#090d14;
  --inv-fg:#f8fafc;
  --inv-muted:#94a3b8;
  --inv-rule:#1e293b;
  --inv-accent:#38bdf8;
  --inv-placeholder:#64748b;
  --inv-err:#f87171;

  --ok:#10b981;
  --warn:#f59e0b;
  --bad:#ef4444;

  --shadow:0 8px 30px rgba(15,23,42,.06);
  --shadow-soft:0 1px 3px rgba(15,23,42,.05);
  --radius-card:6px;
  --radius-btn:4px;
  --radius-sm:3px;
  --radius-pill:999px;
  --wrap-max:1140px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#090d14;
    --bg:#090d14;
    --paper-2:#0f172a;
    --card:#0f172a;
    --band:#131d2e;
    --ink:#f8fafc;
    --ink-soft:#94a3b8;
    --muted:var(--ink-soft);
    --ink-faint:#64748b;
    --accent:#38bdf8;         /* vivid technical cyan on dark */
    --accent-hover:#7dd3fc;
    --on-accent:#090d14;
    --accent-2:#60a5fa;
    --rule:#1e293b;
    --line:var(--rule);
    --rule-strong:#334155;
    --ordinal:#64748b;
    --grain:transparent;

    --inv-bg:#05070a;
    --inv-fg:#f8fafc;
    --inv-muted:#94a3b8;
    --inv-rule:#1e293b;
    --inv-accent:#38bdf8;
    --inv-placeholder:#64748b;

    --ok:#34d399;
    --warn:#fbbf24;
    --bad:#f87171;

    --shadow:0 12px 40px rgba(0,0,0,.5);
    --shadow-soft:0 1px 3px rgba(0,0,0,.4);
  }
}

:root[data-theme="dark"]{
  --paper:#090d14;
  --bg:#090d14;
  --paper-2:#0f172a;
  --card:#0f172a;
  --band:#131d2e;
  --ink:#f8fafc;
  --ink-soft:#94a3b8;
  --muted:var(--ink-soft);
  --ink-faint:#64748b;
  --accent:#38bdf8;
  --accent-hover:#7dd3fc;
  --on-accent:#090d14;
  --accent-2:#60a5fa;
  --rule:#1e293b;
  --line:var(--rule);
  --rule-strong:#334155;
  --ordinal:#64748b;
  --grain:transparent;

  --inv-bg:#05070a;
  --inv-fg:#f8fafc;
  --inv-muted:#94a3b8;
  --inv-rule:#1e293b;
  --inv-accent:#38bdf8;
  --inv-placeholder:#64748b;

  --ok:#34d399;
  --warn:#fbbf24;
  --bad:#f87171;

  --shadow:0 12px 40px rgba(0,0,0,.5);
  --shadow-soft:0 1px 3px rgba(0,0,0,.4);
}

/* Technical diagrams and illustrations render crisp and un-dimmed */
.figure-frame img, .thumb img, .hero-art img{filter:none;}

*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:76px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none !important; transition:none !important}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  font-size:16px;
  line-height:1.65;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Paper grain eliminated for crisp engineered precision */
body::before{
  display:none;
}

h1,h2,h3,h4{font-family:'Inter', system-ui, -apple-system, sans-serif; font-weight:650; letter-spacing:-.02em;}
.serif{font-family:'Inter', system-ui, -apple-system, sans-serif; font-weight:600; letter-spacing:-.01em;}
.news{font-family:'Inter', system-ui, -apple-system, sans-serif;}

a{color:inherit}

.wrap{max-width:var(--wrap-max); margin:0 auto; padding:0 1.25rem; position:relative; z-index:1;}
.measure{max-width:680px;}

.kicker{
  font-family:'Inter',sans-serif;
  font-size:11.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:600;
}
.kicker--oxblood{color:var(--accent)} /* nordic: no oxblood */

.hr{border:0; border-top:1px solid var(--rule); margin:0;}
.hr-strong{border:0; border-top:1px solid var(--rule-strong); margin:0;}

/* ---------- skip link ---------- */
.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:var(--paper);
  padding:12px 20px; font-size:14px; text-decoration:none;
}
.skip:focus{left:12px; top:12px;}

/* ---------- masthead ---------- */
.masthead{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(160%) blur(8px);
  border-bottom:1px solid var(--rule);
}
@supports not (background: color-mix(in srgb, red 50%, transparent)){
  .masthead{background:var(--paper);}
}
.masthead-inner{display:flex; align-items:center; justify-content:space-between; height:60px; gap:16px;}
.wordmark{display:flex; align-items:baseline; gap:10px; text-decoration:none; flex:0 0 auto;}
.wordmark .name{font-family:'Inter',system-ui,sans-serif; font-size:21px; font-weight:700; letter-spacing:-.03em;}
.wordmark .est{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); font-weight:600;}
@media(max-width:400px){ .wordmark .est{display:none} }

.nav{display:none; gap:22px; font-size:13.5px; letter-spacing:.04em; align-items:center;}
.nav a{text-decoration:none; color:var(--ink-soft); position:relative; padding:4px 0; white-space:nowrap;}
.nav a::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--accent); transition:width .3s ease;}
.nav a:hover{color:var(--ink)} .nav a:hover::after{width:100%}
.nav a[aria-current]{color:var(--ink)} .nav a[aria-current]::after{width:100%}
@media(min-width:820px){ .nav{display:flex} }

/* mobile disclosure nav */
.nav-toggle{
  display:inline-flex; align-items:center; gap:9px;
  background:transparent; border:1px solid var(--rule-strong); border-radius:var(--radius-btn);
  color:var(--ink); font-family:'Inter',sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; padding:8px 13px; cursor:pointer;
}
.nav-toggle .bars{display:block; width:15px; height:9px; position:relative;}
.nav-toggle .bars::before,
.nav-toggle .bars::after{
  content:""; position:absolute; left:0; right:0; height:1.5px; background:currentColor;
  transition:transform .25s ease, top .25s ease;
}
.nav-toggle .bars::before{top:0}
.nav-toggle .bars::after{top:7.5px}
.nav-toggle[aria-expanded="true"] .bars::before{top:4px; transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{top:4px; transform:rotate(-45deg)}
@media(min-width:820px){ .nav-toggle{display:none} }

.nav-panel{
  display:none;
  border-top:1px solid var(--rule);
  background:var(--paper);
}
.nav-panel.open{display:block}
@media(min-width:820px){ .nav-panel{display:none !important} }
.nav-panel ul{list-style:none; margin:0; padding:6px 0 14px;}
.nav-panel a{
  display:block; text-decoration:none; color:var(--ink-soft);
  font-size:16px; padding:13px 0; border-bottom:1px solid var(--rule);
}
.nav-panel li:last-child a{border-bottom:0}
.nav-panel a[aria-current]{color:var(--ink)}
.nav-panel .np-note{
  font-family:'Inter',sans-serif; font-size:13px; color:var(--ink-faint);
  padding-top:14px; margin:0;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Inter',sans-serif; font-size:.92rem; font-weight:600; letter-spacing:.01em;
  padding:.75rem 1.25rem; border-radius:var(--radius-btn); text-decoration:none; cursor:pointer;
  transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  border:1px solid transparent;
}
.btn-solid, .btn-primary{background:var(--accent); color:var(--on-accent);}
.btn-solid:hover, .btn-primary:hover{background:color-mix(in srgb, var(--accent) 88%, var(--ink)); color:var(--on-accent); transform:translateY(-1px);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--rule);}
.btn-ghost:hover{border-color:var(--ink); background:var(--card);}
.btn-send{border-radius:var(--radius-btn);}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:2px solid var(--accent); outline-offset:3px;
}

/* ---------- hero ---------- */
.hero{padding:2.5rem 0 3rem;}
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--accent); margin:0 0 .75rem;
}
.issue-line{display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:34px;}
.issue-line .dot{width:4px; height:4px; border-radius:50%; background:var(--rule-strong); flex:0 0 auto;}
.issue-line span{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint);}
@media(max-width:560px){
  .issue-line{gap:4px 16px;}
  .issue-line .dot{display:none;}
}

.hero h1{
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  font-size:clamp(2rem, 4vw, 2.85rem);
  line-height:1.12;
  letter-spacing:-.03em;
  margin:0 0 1rem;
  font-weight:700;
}
.hero h1 em{font-style:italic; color:var(--accent); font-weight:650;}
.standfirst, .lede{
  font-family:'Inter', system-ui, sans-serif;
  font-size:1.05rem;
  line-height:1.55;
  color:var(--ink-soft);
  max-width:34rem;
  margin:0 0 1.5rem;
}
.hero-actions, .actions{display:flex; flex-wrap:wrap; gap:.75rem; margin-top:0;}

/* hero figure / nordic art */
figure{margin:0;}
.figure-frame{
  border:1px solid var(--rule);
  background:var(--card);
  padding:0;
  border-radius:var(--radius-card);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.figure-frame img{display:block; width:100%; height:auto;}
.hero-art{
  border-radius:var(--radius-card); overflow:hidden;
  border:1px solid var(--rule);
  box-shadow:var(--shadow);
  background:var(--card);
}
.hero-art img{width:100%; display:block; height:auto;}
figcaption{
  font-family:'Inter',sans-serif;
  font-size:12px; line-height:1.5;
  color:var(--ink-faint);
  margin-top:10px;
  padding-left:14px;
  border-left:2px solid var(--accent);
}
figcaption b{color:var(--ink-soft); font-weight:600;}

.hero-grid{display:grid; grid-template-columns:1fr; gap:2rem; align-items:center;}
@media(min-width:860px){
  .hero-grid{grid-template-columns:1.05fr .95fr; gap:2rem; align-items:center;}
}

/* ---------- section frame ---------- */
section{padding:2.25rem 0; position:relative;}
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:8px; flex-wrap:wrap;}
.sec-head h2{font-family:'Inter',system-ui,sans-serif; font-size:clamp(26px,3.8vw,38px); font-weight:700; margin:0;}
.sec-num{font-family:'Inter',sans-serif; font-size:12px; font-weight:600; color:var(--ink-faint); letter-spacing:.08em; text-transform:uppercase;}
.sec-intro{color:var(--ink-faint); font-size:16px; margin:8px 0 12px; max-width:60ch;}

/* ---------- mission / dropcap essay ---------- */
.essay{columns:1; column-gap:48px;}
@media(min-width:760px){ .essay{columns:2;} }
.essay p{margin:0 0 18px; font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:1.7; color:var(--ink-soft);}
.essay p:first-child::first-letter{
  font-family:'Inter',sans-serif;
  float:left; font-size:62px; line-height:.78; font-weight:700;
  padding:6px 12px 0 0; color:var(--accent);
}

/* ---------- article lists (services + work) ---------- */
.articles{display:grid; grid-template-columns:1fr; gap:0;}
.article{
  display:grid; grid-template-columns:1fr; gap:24px;
  padding:38px 0; border-top:1px solid var(--rule);
  align-items:start;
}
.article:last-child{border-bottom:1px solid var(--rule);}
@media(min-width:720px){
  .article{grid-template-columns:230px 1fr; gap:40px;}
}
.article .thumb{
  border:1px solid var(--rule-strong); background:var(--paper-2); padding:10px;
}
.article .thumb img{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; background:var(--paper);}
.article .thumb figcaption{border-left:none; padding-left:0; margin-top:8px;}
.article h3{font-family:'Inter',system-ui,sans-serif; font-size:24px; font-weight:700; margin:0 0 6px; line-height:1.2;}
.byline{font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:14px;}
.byline .who{color:var(--ink-faint); text-transform:none; letter-spacing:.02em; font-style:normal; font-family:'Inter',sans-serif; font-size:13px;}
.abstract{font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:1.65; color:var(--ink-soft); margin:0 0 16px; max-width:60ch;}
.readmore{font-family:'Inter',sans-serif; font-size:13px; font-weight:600; letter-spacing:.04em; text-decoration:none; color:var(--ink); display:inline-flex; align-items:center; gap:7px; border-bottom:1px solid var(--ink); padding-bottom:2px; transition:gap .2s ease, color .2s ease, border-color .2s ease;}
.readmore:hover{gap:12px; color:var(--accent); border-color:var(--accent);}
.readmore + .readmore{margin-left:22px}

/* services variant: editorial ordinal instead of thumb */
.article--svc{grid-template-columns:1fr;}
@media(min-width:720px){
  .article--svc{grid-template-columns:110px 1fr; gap:40px;}
}
.svc-no{font-family:'Inter',sans-serif; font-weight:700; font-size:46px; line-height:1; color:var(--ordinal);}
.svc-no span{display:block; font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:6px;}

/* ---------- manifesto + stats ---------- */
.manifesto{background:var(--paper-2); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
.manifesto-grid{display:grid; grid-template-columns:1fr; gap:48px; align-items:center;}
@media(min-width:920px){ .manifesto-grid{grid-template-columns:1fr 1fr; gap:64px;} }
.lead{font-family:'Inter',sans-serif; font-size:clamp(22px,2.8vw,30px); line-height:1.35; font-weight:600; margin:0 0 30px;}
.lead em{font-style:italic; color:var(--accent);}
.tenets{list-style:none; padding:0; margin:0;}
.tenets li{padding:18px 0; border-top:1px solid var(--rule-strong); display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:baseline;}
.tenets li:last-child{border-bottom:1px solid var(--rule-strong);}
.tenets .mark{font-family:'Inter',sans-serif; font-style:normal; font-weight:700; color:var(--accent); font-size:18px;}
.tenets b{font-family:'Inter',sans-serif; font-weight:600; font-size:18px; display:block; margin-bottom:2px;}
.tenets span{font-family:'Inter',sans-serif; color:var(--ink-soft); font-size:15px;}

.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:6px; border-top:1px solid var(--rule);}
.stat{padding:26px 18px; text-align:center; border-right:1px solid var(--rule);}
.stat:last-child{border-right:none;}
.stat .n{font-family:'Inter',sans-serif; font-weight:700; font-size:clamp(30px,4.5vw,44px); line-height:1; color:var(--ink); display:block; margin-bottom:8px;}
.stat .l{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint);}

/* ---------- plate ---------- */
.plate-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center;}
@media(min-width:880px){ .plate-grid{grid-template-columns:.9fr 1.1fr; gap:60px;} }
.plate-grid p{font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:1.65; color:var(--ink-soft);}

/* ---------- contact ---------- */
.contact{background:var(--inv-bg); color:var(--inv-fg); border-top:1px solid var(--inv-rule);}
.contact .wrap{position:relative;}
.contact h2{color:var(--inv-fg);}
.contact .kicker{color:var(--inv-accent);}
.contact .standfirst{color:var(--inv-muted);}
.contact .news, .contact-grid .news{color:var(--inv-muted); font-family:'Inter',system-ui,sans-serif;}
.contact-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:start;}
@media(min-width:880px){ .contact-grid{grid-template-columns:.85fr 1.15fr; gap:60px;} }
form label{display:block; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--inv-muted); margin:0 0 7px;}
form .field{margin-bottom:20px;}
form input, form textarea, form select{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--inv-rule);
  color:var(--inv-fg); font-family:'Inter',sans-serif; font-size:16px; padding:8px 0;
  transition:border-color .2s ease;
}
form select{
  appearance:none; -webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--inv-muted) 50%),linear-gradient(135deg,var(--inv-muted) 50%,transparent 50%);
  background-position:calc(100% - 14px) calc(50% + 2px), calc(100% - 8px) calc(50% + 2px);
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat;
  padding-right:28px; border-radius:0; cursor:pointer;
}
form select option{color:var(--ink); background:var(--card);}
form input::placeholder, form textarea::placeholder{color:var(--inv-placeholder); opacity:1;}
form input:focus, form textarea:focus, form select:focus{outline:none; border-color:var(--inv-accent);}
form input[aria-invalid="true"], form textarea[aria-invalid="true"], form select[aria-invalid="true"]{border-color:var(--inv-err);}
form textarea{resize:vertical; min-height:96px;}
.field-row{display:grid; grid-template-columns:1fr; gap:0 24px;}
@media(min-width:640px){ .field-row{grid-template-columns:1fr 1fr;} }
.hero-sublink{margin:16px 0 0; font-size:15px; color:var(--ink-faint);}
.hero-sublink .readmore{font-size:14px;}
.btn-send{background:var(--inv-accent); color:var(--inv-bg); font-weight:600;}
.hp{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;}
.form-msg{font-family:'Inter',sans-serif; font-size:15px; margin-top:14px; min-height:22px;}
.form-msg.ok{color:var(--inv-accent);} .form-msg.err{color:var(--inv-err);}
.form-note{font-size:13px; color:var(--inv-muted); margin-top:16px; line-height:1.55;}
.form-note a{color:var(--inv-accent);}
.mailto{color:var(--inv-accent); text-decoration:none; border-bottom:1px solid var(--inv-rule);}
.mailto:hover{border-color:var(--inv-accent);}
.form-done{font-family:'Inter',sans-serif; font-size:20px; font-weight:600; color:var(--inv-accent); line-height:1.5;}

/* ---------- footer ---------- */
footer{padding:54px 0; background:var(--paper);}
.foot-grid{display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:flex-start;}
.footnotes{font-family:'Inter',sans-serif; font-size:13px; color:var(--ink-faint); max-width:560px; line-height:1.6;}
.footnotes sup{color:var(--accent); font-weight:600;}
.foot-meta{font-size:13px; color:var(--ink-soft); text-align:right;}
.foot-meta a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.foot-meta a:hover{border-color:var(--ink);}
.foot-name{font-family:'Inter',sans-serif; font-size:16px; font-weight:700; color:var(--ink); margin-bottom:6px;}
.foot-links{margin-top:10px; display:flex; gap:16px; justify-content:flex-end; flex-wrap:wrap;}
@media(max-width:640px){
  .foot-meta{text-align:left}
  .foot-links{justify-content:flex-start}
}

/* ---------- reveal (safe default: visible by default so content is NEVER hidden) ---------- */
.reveal { opacity: 1; transform: none; }
html.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.2,.6,.2,1), transform .6s cubic-bezier(.2,.6,.2,1); }
html.js .reveal.in { opacity: 1; transform: none; }
.d1 { transition-delay: .08s; } .d2 { transition-delay: .12s; } .d3 { transition-delay: .15s; }
@media (prefers-reduced-motion: reduce) { .reveal, html.js .reveal { opacity: 1; transform: none; transition: none; } }
.no-js .reveal { opacity: 1; transform: none; }

/* ==========================================================================
   Interior pages
   ========================================================================== */

/* page masthead block */
.page-head{padding:70px 0 0;}
.page-head h1{font-family:'Inter',system-ui,-apple-system,sans-serif; font-size:clamp(34px,5.4vw,62px); line-height:1.06; margin:0 0 22px; font-weight:700;}
.page-head h1 em{font-style:italic; color:var(--accent);}
.page-head .standfirst{margin:0;}
.crumbs{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:26px;}
.crumbs a{text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.crumbs a:hover{border-color:var(--ink)}
.crumbs .sep{padding:0 10px; color:var(--rule-strong)}

/* long-form prose */
.prose{max-width:68ch;}
.prose > *:first-child{margin-top:0}
.prose p, .prose li{font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:1.7; color:var(--ink-soft);}
.prose p{margin:0 0 22px}
.prose h2{font-size:clamp(24px,3.2vw,31px); margin:52px 0 6px; line-height:1.2;}
.prose h3{font-size:21px; margin:38px 0 4px; line-height:1.25;}
.prose h2 + p, .prose h3 + p{margin-top:12px}
.prose ul, .prose ol{margin:0 0 22px; padding-left:22px}
.prose li{margin-bottom:9px}
.prose li::marker{color:var(--accent)}
.prose a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.prose a:hover{color:var(--accent); border-color:var(--accent);}
.prose strong{color:var(--ink); font-weight:600}
.prose hr{border:0; border-top:1px solid var(--rule); margin:44px 0;}
.prose blockquote{
  margin:30px 0; padding:4px 0 4px 24px; border-left:3px solid var(--accent);
  font-family:'Inter',system-ui,sans-serif; font-size:17px; font-weight:500; line-height:1.55; color:var(--ink);
}
.prose blockquote p{font-family:inherit; font-size:inherit; color:inherit; margin:0}
.prose figure{margin:34px 0}
.prose img{display:block; width:100%; height:auto; border:1px solid var(--rule-strong); background:var(--paper-2);}

/* Data tables. The wrapper is what scrolls, never the page  -  a wide table on a
   narrow screen must not drag the whole document sideways. */
.tbl-wrap{overflow-x:auto; margin:16px 0 28px; border-top:1px solid var(--rule-strong); width:100%;}
.tbl-wrap--wide{max-width:100%; margin:24px 0 34px;}
.prose table{
  width:100%; border-collapse:collapse;
  font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink-soft);
}
.tbl-wrap--wide table{
  min-width:760px;
}
.prose thead th{
  font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint); text-align:left; padding:13px 18px 13px 0;
  border-bottom:1px solid var(--rule-strong); white-space:nowrap;
}
.prose tbody td{padding:14px 18px 14px 0; border-bottom:1px solid var(--rule); vertical-align:middle;}
.prose tbody tr:last-child td{border-bottom:0}
.prose th:last-child, .prose td:last-child{padding-right:0}
.prose tbody strong{color:var(--ink); font-weight:600}
/* Numeric columns read as measurements, tabular-nums with clean Inter */
.prose td.num, .prose th.num{font-family:'Inter',sans-serif; font-variant-numeric:tabular-nums; font-size:15px; text-align:right; white-space:nowrap;}
.prose tbody tr.is-ours td{background:var(--paper-2)}

code, kbd, samp{
  font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  font-size:.86em;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:2px;
  padding:.12em .38em;
}
pre{
  background:var(--paper-2);
  border:1px solid var(--rule-strong);
  padding:18px 20px;
  overflow-x:auto;
  font-size:13.5px;
  line-height:1.6;
  margin:0 0 24px;
}
pre code{background:none; border:0; padding:0; font-size:inherit;}

/* callout */
.note{
  border:1px solid var(--rule-strong);
  border-left:3px solid var(--accent);
  background:var(--paper-2);
  padding:18px 22px;
  margin:0 0 26px;
}
.note p:last-child{margin-bottom:0}
.note .note-t{
  display:block; font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:8px;
}

/* notebook index */
.entries{border-top:1px solid var(--rule);}
.entry{
  display:grid; grid-template-columns:1fr; gap:8px 40px;
  padding:32px 0; border-bottom:1px solid var(--rule);
}
@media(min-width:760px){ .entry{grid-template-columns:150px 1fr;} }
.entry-date{
  font-family:'Inter',sans-serif; font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-faint); padding-top:8px;
}
.entry h2{font-size:25px; margin:0 0 8px; line-height:1.2;}
.entry h2 a{text-decoration:none}
.entry h2 a:hover{color:var(--accent)}
.entry .abstract{margin-bottom:12px}
.entry-tags{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}

/* post meta + footer nav */
.post-meta{
  display:flex; flex-wrap:wrap; gap:8px 18px; align-items:baseline;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint);
  margin-bottom:26px;
}
.post-meta .tag{color:var(--accent)}
.post-nav{
  display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between;
  border-top:1px solid var(--rule-strong); margin-top:56px; padding-top:26px;
}

/* case studies */
.case{
  border-top:1px solid var(--rule);
  padding:44px 0;
}
.case:last-of-type{border-bottom:1px solid var(--rule)}
.case h3{font-size:27px; margin:0 0 6px; line-height:1.16;}
.case-grid{display:grid; grid-template-columns:1fr; gap:26px;}
@media(min-width:820px){ .case-grid{grid-template-columns:repeat(3,1fr); gap:38px;} }
.case-grid h4{
  font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent); margin:0 0 10px;
}
.case-grid p{font-family:'Inter',sans-serif; font-size:15px; line-height:1.62; color:var(--ink-soft); margin:0;}
.outcomes{list-style:none; padding:0; margin:26px 0 0; display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--rule);}
@media(min-width:700px){ .outcomes{grid-template-columns:repeat(3,1fr);} }
.outcomes li{padding:18px 20px 18px 0; border-right:1px solid var(--rule);}
.outcomes li:last-child{border-right:0}
@media(max-width:699px){ .outcomes li{border-right:0; border-bottom:1px solid var(--rule);} .outcomes li:last-child{border-bottom:0} }
.outcomes .n{display:block; font-family:'Inter',sans-serif; font-weight:700; font-size:28px; line-height:1; color:var(--ink); margin-bottom:7px;}
.outcomes .l{font-size:12.5px; color:var(--ink-faint); line-height:1.45;}

/* engagement / pricing table */
.tiers{display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--rule);}
@media(min-width:840px){ .tiers{grid-template-columns:repeat(3,1fr);} }
.tier{
  padding:1.15rem 1.2rem; border:1px solid var(--rule); background:var(--card);
  border-radius:var(--radius-card); box-shadow:var(--shadow-soft); margin-bottom:1rem;
}
@media(min-width:840px){
  .tiers{gap:1rem; border-top:0;}
  .tier{margin-bottom:0;}
}
.tier h3{font-family:'Inter',sans-serif; font-size:22px; font-weight:650; margin:0 0 4px;}
.tier .price{font-family:'Inter',sans-serif; font-weight:700; font-size:26px; color:var(--accent); margin:0 0 12px; line-height:1.2;}
.tier .price small{display:block; font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.06em; color:var(--ink-faint); text-transform:uppercase; margin-top:5px;}
.tier ul{list-style:none; padding:0; margin:0;}
.tier li{font-family:'Inter',sans-serif; font-size:14.5px; line-height:1.55; color:var(--ink-soft); padding-left:18px; position:relative; margin-bottom:9px;}
.tier li::before{content:" - "; position:absolute; left:0; color:var(--accent);}

/* status page */
.status-banner{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  border:1px solid var(--rule-strong); border-left:4px solid var(--st);
  background:var(--paper-2); padding:22px 26px; margin-bottom:8px;
  --st:var(--ok);
}
.status-banner.is-warn{--st:var(--warn)} .status-banner.is-bad{--st:var(--bad)}
.status-banner .big{font-family:'Inter',sans-serif; font-weight:650; font-size:clamp(20px,3vw,26px); line-height:1.2; margin:0;}
.status-banner .when{font-size:12.5px; color:var(--ink-faint); letter-spacing:.06em;}
.svc-list{border-top:1px solid var(--rule); margin-top:34px;}
.svc-row{
  display:grid; grid-template-columns:1fr auto; gap:6px 20px; align-items:center;
  padding:20px 0; border-bottom:1px solid var(--rule);
}
.svc-row .nm{font-family:'Inter',sans-serif; font-weight:600; font-size:18px;}
.svc-row .nm small{display:block; font-family:'Inter',sans-serif; font-size:12.5px; color:var(--ink-faint); letter-spacing:.03em; margin-top:3px; text-transform:none;}
.pill{
  display:inline-flex; align-items:center; gap:7px;
  font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--st); --st:var(--ok);
}
.pill::before{content:""; width:8px; height:8px; border-radius:50%; background:currentColor; flex:0 0 auto;}
.pill.is-warn{--st:var(--warn)} .pill.is-bad{--st:var(--bad)} .pill.is-unknown{--st:var(--ink-faint)}
.spark{grid-column:1/-1; display:flex; gap:2px; align-items:flex-end; height:26px; margin-top:4px;}
.spark i{flex:1 1 0; min-width:2px; height:100%; background:var(--ok); opacity:.55; border-radius:1px;}
.spark i.w{background:var(--warn); opacity:.9}
.spark i.b{background:var(--bad); opacity:1}
.spark i.n{background:var(--rule); opacity:.6}
.spark-legend{
  grid-column:1/-1; display:flex; justify-content:space-between;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-top:6px;
}

/* language switch */
.lang{display:flex; gap:10px; align-items:center; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);}
.lang a{text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.lang a[aria-current]{color:var(--ink); border-color:var(--ink);}

/* 404 */
.err-page{padding:110px 0 90px; text-align:center;}
.err-page .code{font-family:'Inter',sans-serif; font-weight:800; font-size:clamp(70px,14vw,140px); line-height:1; color:var(--ordinal); margin:0;}
.err-page h1{font-family:'Inter',sans-serif; font-weight:700; font-size:clamp(26px,4vw,38px); margin:14px 0 18px;}
.err-page .standfirst{margin:0 auto 32px; max-width:52ch;}
.err-page .hero-actions{justify-content:center}

/* language switcher */
.lang-switcher{
  display:inline-flex;
  align-items:center;
  gap:2px;
  font-family:'Inter',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  color:var(--ink-faint);
  border:1px solid var(--rule-strong);
  border-radius:var(--radius-pill);
  padding:2px 8px;
  margin-left:6px;
}
.lang-btn{
  background:none;
  border:none;
  color:var(--ink-soft);
  font-family:inherit;
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  text-decoration:none !important;
  cursor:pointer;
  padding:2px 4px;
  line-height:1;
  transition:color .15s ease;
}
.lang-btn::after{display:none !important;}
.lang-btn:hover{color:var(--ink);}
.lang-btn.active{color:var(--accent); font-weight:700;}
.lang-sep{color:var(--rule-strong); opacity:.7; font-size:10px;}
.np-lang{padding:10px 0 !important; border-bottom:1px solid var(--rule);}

/* cookie consent banner */
.cookie-banner{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:9999;
  background:var(--paper-2);
  border-top:1px solid var(--rule-strong);
  box-shadow:0 -4px 20px rgba(0,0,0,0.08);
  padding:16px 0;
  font-family:'Inter',sans-serif;
  transform:translateY(100%);
  transition:transform .3s ease;
}
.cookie-banner.in{
  transform:translateY(0);
}
.cb-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.cb-text{
  flex:1 1 320px;
  font-size:13px;
  color:var(--ink-soft);
  line-height:1.45;
}
.cb-text strong{
  display:block;
  color:var(--ink);
  font-size:13.5px;
  margin-bottom:2px;
}
.cb-text p{
  margin:0;
}
.cb-text code{
  background:var(--paper);
  padding:1px 4px;
  border-radius:2px;
  font-size:12px;
  border:1px solid var(--rule);
}
.cb-text a{
  color:var(--accent);
  text-decoration:underline;
}
.cb-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.btn-sm{
  padding:7px 14px;
  font-size:12.5px;
}


/* ---------- engagement path / intake ---------- */
.path-strip{
  list-style:none; margin:36px 0 0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:12px 18px;
}
@media(min-width:720px){ .path-strip{grid-template-columns:repeat(4,1fr); gap:18px;} }
.path-strip li{
  border:1px solid var(--rule); background:var(--card);
  border-radius:var(--radius-card); box-shadow:var(--shadow-soft);
  padding:14px 16px; display:flex; flex-direction:column; gap:6px;
}
.path-n{font-family:'Inter',sans-serif; font-size:20px; font-weight:700; color:var(--accent); line-height:1;}
.path-l{font-size:13px; letter-spacing:.04em; color:var(--ink-soft);}

.start-here{padding-top:28px; padding-bottom:28px;}
.start-card{
  display:grid; grid-template-columns:1fr; gap:28px;
  border:1px solid var(--rule); background:var(--card);
  border-radius:var(--radius-card); box-shadow:var(--shadow);
  padding:28px 26px;
}
@media(min-width:880px){ .start-card{grid-template-columns:1.4fr .8fr; gap:40px; align-items:center;} }
.start-card h2{font-family:'Inter',sans-serif; font-size:clamp(22px,3vw,30px); font-weight:700; margin:10px 0 14px; line-height:1.2;}
.start-card .news{font-family:'Inter',sans-serif; color:var(--ink-soft); margin:0 0 16px;}
.brief-list{list-style:none; margin:0; padding:0;}
.brief-list li{
  font-family:'Inter',sans-serif; font-size:15px; color:var(--ink-soft);
  padding:8px 0 8px 18px; position:relative; border-top:1px solid var(--rule);
}
.brief-list li:first-child{border-top:0}
.brief-list li::before{content:"·"; position:absolute; left:0; color:var(--accent); font-weight:700;}
.start-actions{display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
.start-mail{margin:4px 0 0; font-size:15px;}
.mailto-plain{color:var(--accent); text-decoration:none; border-bottom:1px solid var(--rule-strong);}
.mailto-plain:hover{border-color:var(--accent);}
.tier-blurb{font-family:'Inter',sans-serif; color:var(--ink-soft); font-size:15px; margin:0 0 16px;}
.tier-cta{display:inline-block; margin-top:16px;}
.rates-note{font-family:'Inter',sans-serif; color:var(--ink-faint); font-size:14px; margin-top:26px; max-width:62ch;}
.sec-intro{margin:0 0 8px;}
.manifesto .hr-strong{margin:18px 0 40px;}
section .hr{margin:18px 0 34px;}
.tiers{margin-top:26px;}

.delivery-grid{
  list-style:none; margin:28px 0 0; padding:0;
  display:grid; grid-template-columns:1fr; gap:0;
  border-top:1px solid var(--rule);
}
@media(min-width:760px){ .delivery-grid{grid-template-columns:1fr 1fr;} }
.delivery-grid li{
  padding:22px 20px 22px 0; border-bottom:1px solid var(--rule);
}
@media(min-width:760px){
  .delivery-grid li:nth-child(odd){padding-right:28px; border-right:1px solid var(--rule);}
  .delivery-grid li:nth-child(even){padding-left:28px;}
}
.delivery-grid b{display:block; font-family:'Inter',sans-serif; font-size:17px; font-weight:600; margin-bottom:6px;}
.delivery-grid span{font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink-soft); line-height:1.55;}

.tier-plate{margin:0 0 16px; padding-right:18px;}
.tier-plate img{display:block; width:100%; height:auto; border:1px solid var(--rule);}
.plate-iii{margin:28px 0 8px; max-width:820px;}


/* ==========================================================================
   Nordic home IA (Direction A) / Sovereign Precision
   ========================================================================== */
.band{background:var(--band); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
.section-intro{color:var(--muted); margin:0 0 1.5rem; max-width:36rem; font-size:1rem;}
.cards{display:grid; gap:1rem;}
@media(min-width:700px){ .cards{grid-template-columns:repeat(3,1fr);} }
@media(min-width:700px){ .cards.cards--4{grid-template-columns:repeat(2,1fr);} }
@media(min-width:900px){ .cards.cards--4{grid-template-columns:repeat(4,1fr);} }
.card{
  background:var(--card); border:1px solid var(--rule);
  border-radius:var(--radius-card); padding:1.15rem 1.2rem;
  box-shadow:var(--shadow-soft);
}
.card h3{margin:0 0 .4rem; font-size:1rem; font-family:'Inter',sans-serif; font-weight:650; letter-spacing:-.02em;}
.card p{margin:0; font-size:.9rem; color:var(--muted); line-height:1.5; font-family:'Inter',sans-serif;}
.card a.card-link{display:inline-block; margin-top:.75rem; font-size:.82rem; font-weight:600; color:var(--accent); text-decoration:none;}
.card a.card-link:hover{text-decoration:underline;}
/* Category label on practice cards. Distinct from status .pill (dot indicator). */
.card-pill{
  display:inline-block; font-size:.68rem; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:var(--accent); margin-bottom:.5rem;
}
.sec-head h2, section > .wrap > h2, .nordic-h2{
  font-family:'Inter',sans-serif; font-size:1.45rem; margin:0 0 .35rem;
  letter-spacing:-.02em; font-weight:650;
}
.sec-num{opacity:.7;} /* quieter journal chrome */
.founder-brief{padding:2rem 0 1rem;}
.founder-brief p{color:var(--muted); max-width:40rem; margin:0 0 .75rem; font-size:.98rem;}
.engage-home .actions{margin-top:.25rem;}
h1,h2,h3,h4{font-weight:650; font-family:'Inter',system-ui,-apple-system,sans-serif;}
.wordmark .name{font-weight:700; font-family:'Inter',system-ui,sans-serif;}
.nav-toggle{border-radius:var(--radius-btn);}

/* Technical cards, tables, lists, and metrics: clean modern Inter */
.card, .tier, .cards, table, .table, .brief-list, .brief-list li, .delivery-grid, .delivery-grid span, .tier li, .tier-blurb, .outcomes, .sec-intro, .start-card .news, .start-card .start-mail, .rates-note, .contact .news, .contact-grid .news, .form-note, .prose table, .prose td, .prose th, .prose td.num, .prose th.num, .tenets span, .tenets b, .path-strip li, .triage-table, .compare-table {
  font-family:'Inter', system-ui, -apple-system, sans-serif;
}
.card .news, .tier .news, table .news, .table .news, .brief-list .news, .prose table .news, .contact .news, .contact-grid .news {
  font-family:'Inter', system-ui, -apple-system, sans-serif;
}

/* ==========================================================================
   Boost: 10-Day Systems & Infrastructure Acceleration Sprint
   ========================================================================== */
.boost-hero{padding:2.5rem 0 2rem;}
.boost-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:4px 10px; border-radius:var(--radius-btn);
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);
  color:var(--accent); font-family:'Inter',sans-serif; font-size:11px;
  font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:14px;
}
.boost-badge::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--ok);
  box-shadow:0 0 8px var(--ok);
}
.telemetry-bar{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
  background:var(--rule); border:1px solid var(--rule);
  border-radius:var(--radius-card); overflow:hidden; margin:2rem 0;
  box-shadow:var(--shadow-soft);
}
@media(max-width:767px){ .telemetry-item:last-child:nth-child(odd){ grid-column:span 2; } }
@media(min-width:768px){ .telemetry-bar{grid-template-columns:repeat(5, 1fr);} }
.telemetry-item{
  background:var(--card); padding:1rem 1.15rem; display:flex; flex-direction:column; gap:4px;
}
.telemetry-val{
  font-family:'Inter',sans-serif; font-size:1.1rem; font-weight:700; color:var(--ink);
  letter-spacing:-.01em; display:flex; align-items:center; gap:6px;
}
.telemetry-lbl{
  font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); font-weight:600;
}
.telemetry-dot{
  width:7px; height:7px; border-radius:50%; background:var(--ok); display:inline-block;
}

/* Triage Matrix */
.triage-table-wrap{
  overflow-x:auto; margin:1.5rem 0 2.5rem; border:1px solid var(--rule);
  border-radius:var(--radius-card); background:var(--card); box-shadow:var(--shadow-soft);
  -webkit-overflow-scrolling:touch;
}
.triage-table{
  width:100%; border-collapse:collapse; text-align:left; font-size:14px; font-family:'Inter',sans-serif;
  min-width:740px;
}
.triage-table th{
  background:var(--band); padding:12px 16px; font-size:11.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft);
  border-bottom:1px solid var(--rule);
}
.triage-table td{
  padding:14px 16px; border-bottom:1px solid var(--rule); vertical-align:top; color:var(--ink-soft);
}
.triage-table tr:last-child td{border-bottom:none;}
.triage-table tr:hover td{background:color-mix(in srgb, var(--accent) 4%, transparent);}
.triage-table td strong{color:var(--ink); font-weight:600; display:block; margin-bottom:2px;}
.track-tag{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; padding:2px 8px; border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--accent) 10%, transparent); color:var(--accent);
}

/* 4-Track Bento Grid */
.bento-grid{
  display:grid; grid-template-columns:1fr; gap:1.25rem; margin:2rem 0;
}
@media(min-width:768px){ .bento-grid{grid-template-columns:repeat(2, 1fr);} }
.bento-card{
  background:var(--card); border:1px solid var(--rule); border-radius:var(--radius-card);
  padding:1.5rem; box-shadow:var(--shadow-soft); display:flex; flex-direction:column;
  transition:border-color .2s ease, transform .2s ease;
}
.bento-card:hover{
  border-color:var(--rule-strong); transform:translateY(-2px);
}
.bento-header{
  display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1rem;
}
.bento-card h3{
  margin:0 0 .5rem; font-size:1.25rem; font-weight:700; color:var(--ink);
}
.bento-card p{
  margin:0 0 1.25rem; font-size:.92rem; color:var(--ink-soft); line-height:1.6;
}
.bento-list{
  list-style:none; padding:0; margin:0 0 1.25rem; display:flex; flex-direction:column; gap:.5rem;
}
.bento-list li{
  font-size:.88rem; color:var(--ink-soft); display:flex; align-items:flex-start; gap:8px;
}
.bento-list li svg{
  flex-shrink:0; margin-top:3px; color:var(--accent);
}
.bento-metric{
  margin-top:auto; padding-top:1rem; border-top:1px solid var(--rule);
  display:flex; align-items:baseline; justify-content:space-between;
}
.bento-metric-val{
  font-size:1.15rem; font-weight:700; color:var(--accent);
}
.bento-metric-lbl{
  font-size:.78rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em;
}

/* 10-Day Stepper */
.stepper{
  display:grid; grid-template-columns:1fr; gap:1rem; margin:2rem 0;
}
@media(min-width:600px){ .stepper{grid-template-columns:repeat(2, 1fr);} }
@media(min-width:600px) and (max-width:959px){ .step-card:last-child{ grid-column:span 2; } }
@media(min-width:960px){ .stepper{grid-template-columns:repeat(5, 1fr);} }
.step-card{
  background:var(--card); border:1px solid var(--rule); border-radius:var(--radius-card);
  padding:1.2rem; display:flex; flex-direction:column; box-shadow:var(--shadow-soft);
  position:relative;
}
.step-top{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:.75rem;
}
.step-day{
  font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent);
}
.step-num{
  font-size:.72rem; color:var(--ink-faint); font-weight:700;
}
.step-card h4{
  font-size:.98rem; font-weight:700; margin:0 0 .5rem; line-height:1.3;
}
.step-card p{
  font-size:.82rem; color:var(--ink-soft); line-height:1.5; margin:0 0 .75rem;
}
.step-output{
  margin-top:auto; padding-top:.6rem; border-top:1px dashed var(--rule);
  font-size:.78rem; font-weight:600; color:var(--ink);
}
.step-output span{
  color:var(--ink-faint); font-weight:400; display:block; font-size:.72rem;
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:2px;
}

/* Comparison Table */
.compare-wrap{
  overflow-x:auto; margin:2rem 0; border:1px solid var(--rule);
  border-radius:var(--radius-card); background:var(--card); box-shadow:var(--shadow-soft);
}
.compare-table{
  width:100%; border-collapse:collapse; text-align:left; font-size:14px; font-family:'Inter',sans-serif;
  min-width:760px;
}
.compare-table th{
  padding:14px 16px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  border-bottom:1px solid var(--rule); background:var(--band);
}
.compare-table th.col-bwl{
  background:color-mix(in srgb, var(--accent) 12%, var(--band)); color:var(--ink);
  border-left:2px solid var(--accent); border-right:2px solid var(--accent);
}
.compare-table td{
  padding:14px 16px; border-bottom:1px solid var(--rule); vertical-align:middle; color:var(--ink-soft);
}
.compare-table tr:last-child td{border-bottom:none;}
.compare-table td.col-bwl{
  background:color-mix(in srgb, var(--accent) 5%, var(--card));
  font-weight:600; color:var(--ink); border-left:2px solid var(--accent); border-right:2px solid var(--accent);
}
.compare-table tr:last-child td.col-bwl{border-bottom:2px solid var(--accent);}

/* ==========================================================================
   BitwareTunes house style layer (dark, gold accent, Syne / Plus Jakarta /
   JetBrains Mono). Overrides the tokens above; always dark.
   ========================================================================== */
:root, :root[data-theme="dark"], :root[data-theme="light"]{
  color-scheme:dark;
  --paper:#07090e; --bg:#07090e; --paper-2:#0c0f17; --card:rgba(14,18,27,.85); --band:#0c0f17;
  --ink:#f4f6fc; --ink-soft:#9aa2ba; --ink-faint:#5e667e; --muted:#9aa2ba;
  --accent:#e5b369; --accent-hover:#f7d59b; --on-accent:#07090e; --accent-2:#f7d59b;
  --rule:rgba(255,255,255,.08); --line:rgba(255,255,255,.08); --rule-strong:rgba(255,255,255,.14);
  --ordinal:rgba(229,179,105,.55);
  --inv-bg:#0c0f17; --inv-fg:#f4f6fc; --inv-muted:#9aa2ba; --inv-rule:rgba(255,255,255,.1);
  --inv-accent:#e5b369; --inv-placeholder:#5e667e;
  --shadow:0 12px 40px rgba(0,0,0,.55); --shadow-soft:0 1px 3px rgba(0,0,0,.5);
  --radius-card:2px; --radius-btn:2px; --radius-sm:2px;
  --wrap-max:1440px;
  --gold:#e5b369; --gold-bright:#f7d59b; --line-gold:rgba(229,179,105,.35);
  --f-sans:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --f-display:'Syne',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
}
.wrap{padding:0 40px}
@media(max-width:760px){.wrap{padding:0 20px}}
body{font-family:var(--f-sans); background:var(--bg); color:var(--ink); line-height:1.6;}
body, .news, .serif, .btn, .abstract, .essay p, .prose p, .prose li, .plate-grid p,
.tenets b, .tenets span, .lead, .byline .who, .footnotes, .foot-name, .form-msg, .form-done{font-family:var(--f-sans);}
::selection{background:#4a5bff; color:#fff}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
.grain{position:fixed; inset:0; z-index:300; pointer-events:none; background:url('/assets/noise.png'); background-size:128px; opacity:.045; mix-blend-mode:overlay}

/* display type: Syne, uppercase, tight */
h1,h2,h3,h4,.hero h1,.page-head h1,.sec-head h2,.article h3,.svc-no,.stat .n,.wordmark .name{
  font-family:var(--f-display); font-weight:800; text-transform:uppercase; letter-spacing:-.01em;
}
.hero h1,.page-head h1{line-height:.98; color:#fff; text-wrap:balance}
.hero h1 em,.page-head h1 em{
  font-style:normal; background:linear-gradient(135deg,#f7d59b 0%,#e5b369 60%,#b8863b 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:var(--gold);
}
.sec-head h2{font-size:clamp(26px,3.8vw,44px)}
.prose h2{font-size:clamp(22px,3vw,30px)}
.stat .n,.svc-no{color:#fff}
.svc-no{color:var(--ordinal)}

/* mono micro-labels */
.kicker,.eyebrow,.sec-num,.crumbs,.issue-line span,.byline,.stat .l,.svc-no span,.wordmark .est,
.nav a,.nav-toggle,.readmore,form label,.telemetry-lbl{
  font-family:var(--f-mono); text-transform:uppercase; letter-spacing:.18em; font-weight:500;
}
.kicker,.eyebrow,.byline{color:var(--gold-bright); font-size:11px}
.eyebrow{letter-spacing:.24em}
.sec-num,.crumbs,.stat .l,.telemetry-lbl{font-size:10px; color:var(--gold-bright); letter-spacing:.22em}

/* masthead */
.masthead{background:rgba(7,9,14,.82); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--line)}
.masthead-inner{height:68px}
.wordmark{align-items:center; gap:12px}
.wordmark::before{content:""; width:30px; height:30px; flex:none; border-radius:4px;
  background:linear-gradient(135deg,var(--gold) 0%,#b8863b 100%); box-shadow:0 2px 10px rgba(229,179,105,.3)}
.wordmark .name{font-size:16px; letter-spacing:.18em; color:#fff}
.wordmark .est{font-size:9px; color:var(--ink-faint); border-left:1px solid var(--rule-strong); padding-left:12px}
.nav{gap:22px}
.nav a{font-size:10.5px; color:var(--ink-soft)}
.nav a:hover,.nav a[aria-current]{color:#fff}
.nav a::after{background:var(--gold)}
.nav-toggle{font-size:10px; border-color:var(--line-gold); color:var(--gold-bright)}
.nav-panel{background:#07090e}

/* buttons */
.btn{font-family:var(--f-mono); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; padding:15px 28px; border-radius:2px}
.btn-solid,.btn-primary{background:var(--gold); color:#07090e; font-weight:800; box-shadow:0 4px 20px rgba(229,179,105,.35)}
.btn-solid:hover,.btn-primary:hover{background:var(--gold); color:#07090e; filter:brightness(1.15); transform:translateY(-2px); box-shadow:0 6px 26px rgba(229,179,105,.45)}
.btn-ghost{background:rgba(14,18,27,.4); color:#d0d7ea; border-color:var(--rule-strong)}
.btn-ghost:hover{border-color:var(--line-gold); color:#fff; background:rgba(229,179,105,.08)}
.readmore{color:var(--gold-bright); border-bottom-color:var(--line-gold); font-size:11px}
.readmore:hover{color:#fff; border-color:#fff}

/* surfaces */
.card,.article,.stat,.telemetry-item,.plate{background:var(--card); border-color:var(--line); border-radius:2px}
.stat,.telemetry-item{border-left:1px solid var(--line-gold)}
.telemetry-val{font-family:var(--f-display); color:#fff}
.hero-art img,figure img{border:1px solid var(--line-gold); border-radius:2px}
a:hover{color:var(--gold-bright)}
.contact{background:var(--bg-surface,#0c0f17); border-top:1px solid var(--line)}
input,textarea,select{border-radius:2px}
hr,.hr{border-color:var(--line)}


/* ==========================================================================
   Luna v7 Extensions (Daybook, Dev Notes, Media)
   ========================================================================== */

/* Active link indicator */
.nav a.on { color: #fff; font-weight: 700; }
.nav a.on::after { content: ""; display: block; height: 2px; background: var(--gold); margin-top: 4px; border-radius: 1px; }

/* Daybook single entry styling */
.entry-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 2px solid var(--line-gold);
  border-radius: 2px;
  padding: 32px 36px;
  margin-bottom: 32px;
}
@media (max-width: 640px) {
  .entry-card { padding: 20px; }
}
.entry-card h1, .entry-card h2.entry-title {
  font-family: var(--f-display);
  font-size: clamp(24px, 4vw, 36px);
  line-height: 1.1;
  color: #fff;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.entry-date {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin-bottom: 24px;
  display: block;
}
.entry-body {
  font-family: var(--f-sans);
  font-size: 16.5px;
  line-height: 1.75;
  color: #cbd5e1;
}
.entry-body p { margin: 18px 0; }
.entry-body h2 {
  font-family: var(--f-display);
  font-size: 22px;
  color: #fff;
  margin: 36px 0 12px;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}
.entry-body h3 {
  font-family: var(--f-display);
  font-size: 18px;
  color: #fff;
  margin: 28px 0 10px;
  text-transform: uppercase;
}
.entry-body blockquote {
  border-left: 2px solid var(--gold);
  background: rgba(14, 18, 27, 0.6);
  padding: 14px 22px;
  margin: 24px 0;
  color: #f4f6fc;
  font-style: italic;
  border-radius: 2px;
}
.entry-body ul { padding-left: 24px; margin: 18px 0; }
.entry-body li { margin: 8px 0; }

.back-link {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  display: inline-block;
  margin-bottom: 24px;
}
.back-link:hover { color: #fff; }

/* Dev Notes Specific Layout */
.assembly {
  margin: 34px 0 8px;
  padding: 24px 26px;
  border: 1px solid var(--line);
  border-left: 2px solid var(--line-gold);
  border-radius: 2px;
  background: var(--card);
}
.assembly .cap {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin: 0 0 16px;
}
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}
.chip {
  font-family: var(--f-mono);
  font-size: 11.5px;
  letter-spacing: .06em;
  color: #d0d7ea;
  background: rgba(14, 18, 27, 0.9);
  border: 1px solid var(--rule-strong);
  border-radius: 2px;
  padding: 6px 14px;
}
.chip.pinned {
  border-color: var(--line-gold);
  background: rgba(229, 179, 105, 0.12);
  color: var(--gold-bright);
  font-weight: 700;
}
.flow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 22px 0 0;
  color: var(--ink-soft);
  font-family: var(--f-mono);
  font-size: 11.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.flow .arrow {
  flex: 1;
  height: 0;
  border-top: 1.5px dashed var(--gold);
  position: relative;
}
.flow .arrow::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -4px;
  border-left: 7px solid var(--gold);
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}
.flow .out {
  font-family: var(--f-display);
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  text-transform: uppercase;
  white-space: nowrap;
}

.versus {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 34px 0 8px;
}
@media (max-width: 640px) {
  .versus { grid-template-columns: 1fr; }
}
.col {
  border-radius: 2px;
  padding: 24px;
  border: 1px solid var(--line);
  background: var(--card);
}
.col.bot {
  border-color: rgba(255, 255, 255, 0.08);
}
.col.luna {
  border-left: 2px solid var(--line-gold);
}
.col h4 {
  margin: 0;
  font-family: var(--f-display);
  font-size: 15px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
}
.col.bot h4 { color: var(--ink-soft); }
.col.luna h4 { color: var(--gold-bright); }
.col ul { list-style: none; margin: 16px 0 0; padding: 0; }
.col li {
  position: relative;
  padding: 10px 0 10px 22px;
  font-size: 14.5px;
  line-height: 1.5;
  border-top: 1px solid var(--line);
  color: #cbd5e1;
}
.col li:first-child { border-top: none; }
.col li::before {
  position: absolute;
  left: 0;
  top: 10px;
  font-family: var(--f-mono);
}
.col.bot li::before { content: "–"; color: #5e667e; }
.col.luna li::before { content: "→"; color: var(--gold); font-weight: 700; }
.col li b { font-weight: 600; color: #fff; }

.pull {
  font-family: var(--f-display);
  font-size: 20px;
  line-height: 1.4;
  color: #fff;
  border-left: 2px solid var(--gold);
  padding: 6px 0 6px 24px;
  margin: 32px 0;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  background: rgba(14, 18, 27, 0.6);
  border-radius: 2px;
}

.uth {
  font-family: var(--f-mono);
  font-size: 12.5px;
  line-height: 1.65;
  color: #9aa2ba;
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 2px solid var(--line-gold);
  padding: 16px 20px;
  margin: 24px 0 0;
  border-radius: 2px;
}
.uth b { color: #fff; font-weight: 600; }
.uth .tag {
  display: inline-block;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin-right: 8px;
  font-weight: 700;
}

.voice {
  border-left: 2px solid var(--line-gold);
  background: rgba(14, 18, 27, 0.4);
  padding: 16px 24px;
  margin: 28px 0 0;
  border-radius: 2px;
}
.voice p { margin: 18px 0 0; color: #cbd5e1; font-size: 16px; line-height: 1.7; }
.voice p:first-child { margin-top: 0; }
.voice .sig {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin-top: 26px;
}

.ledger {
  margin: 34px 0 8px;
  border: 1px solid var(--line);
  border-left: 2px solid var(--line-gold);
  border-radius: 2px;
  background: var(--card);
  padding: 8px 26px 22px;
}
.ledger .cap {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin: 20px 0 6px;
}
.ledger .row {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.ledger .cap + .row { border-top: none; }
.ledger .fig {
  font-family: var(--f-display);
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
  min-width: 5.5em;
}
.ledger .lab {
  font-size: 15px;
  line-height: 1.45;
  color: #e2e8f0;
}
.ledger .lab small {
  display: block;
  color: var(--ink-soft);
  font-size: 12.5px;
  line-height: 1.5;
  margin-top: 3px;
}

/* Media Gallery */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
}
.tile {
  display: block;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 12px;
  text-decoration: none;
  transition: all .15s ease;
}
.tile:hover {
  border-color: var(--line-gold);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0,0,0,.5);
}
.tile img {
  width: 100%;
  height: auto;
  border-radius: 2px;
  display: block;
  background: #05070a;
}
.tile .cap {
  font-size: 12.5px;
  color: var(--ink-soft);
  margin-top: 10px;
  line-height: 1.45;
}

/* Daybook & Archive Helpers (Bitware house style) */
.back {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  display: inline-block;
  margin-bottom: 24px;
  text-decoration: none;
}
.back:hover {
  color: #fff;
  text-decoration: underline;
}
.muted {
  color: var(--ink-soft);
  font-size: 13.5px;
}
article.entry-view, article:not(.card) {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 2px solid var(--line-gold);
  border-radius: 2px;
  padding: 32px 36px;
  margin-bottom: 32px;
}
@media (max-width: 640px) {
  article.entry-view, article:not(.card) { padding: 20px; }
}
article:not(.card) h2 {
  font-family: var(--f-display);
  font-size: clamp(22px, 3.5vw, 32px);
  line-height: 1.15;
  color: #fff;
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: -.01em;
}
article:not(.card) h2 a {
  color: inherit;
  text-decoration: none;
}
article:not(.card) h2 a:hover {
  color: var(--gold-bright);
}
article:not(.card) .muted {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin-bottom: 20px;
}
hr.sep {
  border: none;
  border-top: 1px solid var(--line);
  margin: 36px 0;
}

/* Dev Notes Specific Utilities (Bitware house style) */
.sec-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 600;
  margin: 0 0 10px;
  display: block;
}
.sec-label.other { color: var(--gold); }
.term { font-style: normal; color: var(--gold-bright); font-weight: 600; }
.dek {
  font-family: var(--f-mono);
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--gold-bright);
  margin: 12px 0 20px;
}
.rule {
  border: none;
  border-top: 1px solid var(--line);
  margin: 48px 0;
}
section h3 {
  font-family: var(--f-display);
  font-size: clamp(17px, 2.2vw, 21px);
  text-transform: uppercase;
  color: #fff;
  margin: 32px 0 12px;
}
section p {
  color: #cbd5e1;
  font-size: 16px;
  line-height: 1.7;
  margin: 16px 0;
}
section p b, section p strong { color: #fff; }
section p em { color: var(--gold-bright); font-style: normal; }
section p code, .uth code {
  font-family: var(--f-mono);
  font-size: 13px;
  color: var(--gold-bright);
  background: rgba(229,179,105,0.08);
  padding: 2px 6px;
  border-radius: 2px;
  border: 1px solid rgba(229,179,105,0.2);
}

/* Card media thumbnails & plates */
.card-thumb {
  margin: -1.15rem -1.2rem 14px -1.2rem;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  aspect-ratio: 16 / 10;
  background: rgba(0,0,0,0.5);
  position: relative;
}
.card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.card:hover .card-thumb img {
  transform: scale(1.04);
}
.card-thumb.cover-fit img {
  object-fit: contain;
  padding: 8px;
}
.card-thumb .badge {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(7, 9, 14, 0.85);
  border: 1px solid var(--line-gold);
  color: var(--gold-bright);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 2px;
}

/* Image gallery grid & tiles */
.media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 28px;
}
.media-tile {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 2px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.media-tile:hover {
  border-color: var(--line-gold);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
.media-tile .media-frame {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #000;
}
.media-tile .media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.media-tile:hover .media-frame img {
  transform: scale(1.04);
}
.media-tile .media-caption {
  padding: 14px 16px;
  font-size: 13.5px;
  line-height: 1.55;
  color: #cbd5e1;
  flex: 1;
}
.media-tile .media-meta {
  padding: 8px 16px 12px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-bright);
  border-top: 1px solid rgba(255,255,255,0.05);
}

/* Technical figures & blueprints */
.tech-figure {
  margin: 32px 0 16px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: var(--card);
  overflow: hidden;
}
.tech-figure-frame {
  width: 100%;
  background: #000;
  border-bottom: 1px solid var(--line);
}
.tech-figure-frame img {
  width: 100%;
  height: auto;
  display: block;
}
.tech-figure figcaption {
  padding: 12px 18px;
  margin: 0;
  border-left: 2px solid var(--gold);
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--ink-soft);
  background: rgba(14, 18, 27, 0.6);
}
.tech-figure figcaption b {
  color: var(--gold-bright);
}

