/* ═══════════════════════════════════════════════════════════════════
   TFIS · Shared Design System
   = 2 fonts · 2 weights · 1 accent · dark/light mode
   Edit tokens here — changes propagate to all pages.
   ═══════════════════════════════════════════════════════════════════ */

/* ─── SELF-HOSTED FONTS ─── */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/Atkinson-Regular.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/Atkinson-Bold.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  src: url('fonts/JetBrainsMono-Medium.woff2') format('woff2');
  font-display: swap;
}

/* ─── TYPOGRAPHY TOKENS ─── */
:root {
  /* fonts */
  --sans:  'Atkinson Hyperlegible', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono:  'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* weights — only 3 across both fonts */
  --w-body:  400;   /* Atkinson 400 — body text */
  --w-bold:  700;   /* Atkinson 700 — headings, titles, strong */
  --w-label: 500;   /* JB Mono 500 — labels, buttons, code */

  /* sizes */
  --fs-body:   18px;
  --fs-small:  .82rem;
  --fs-label:  .62rem;
  --fs-h2:     clamp(1.4rem, 3.5vw, 1.8rem);
  --fs-h1:     clamp(3rem, 10vw, 5.5rem);
  --fs-hero-sub: 1.05rem;

  /* spacing */
  --maxw:    760px;
  --maxw-wide: 860px;
  --pad-sec: 100px;
  --pad-sec-mobile: 64px;
  --nav-h:   52px;

  /* radii — unified system: 4px */
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 8px;

  /* colors */
  --accent:      #c8511e;
  --accent-light:#faf0eb;
  --g100: #f5f5f5;
  --g200: #e6e6e6;
  --g300: #d0d0d0;
  --g400: #999;
  --g500: #777;
  --g600: #555;
  --g700: #333;
  --g800: #222;
  --g900: #111;
  --black:#000;
  --white:#fff;

  /* line heights */
  --lh-body: 1.65;
  --lh-tight: 1.25;
}

/* ─── DARK THEME ─── */
[data-theme="dark"] {
  --accent-light:#2a1a10;
  --g100: #1a1a1a;
  --g200: #2a2a2a;
  --g300: #3a3a3a;
  --g400: #666;
  --g500: #888;
  --g600: #aaa;
  --g700: #ccc;
  --g800: #ddd;
  --g900: #eee;
  --black:#eee;
  --white:#111;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --accent-light:#2a1a10;
    --g100: #1a1a1a;
    --g200: #2a2a2a;
    --g300: #3a3a3a;
    --g400: #666;
    --g500: #888;
    --g600: #aaa;
    --g700: #ccc;
    --g800: #ddd;
    --g900: #eee;
    --black:#eee;
    --white:#111;
  }
}

/* ─── THEME TOGGLE ─── */
.theme-toggle{background:none;border:none;cursor:pointer;padding:6px;font-size:1rem;line-height:1;color:var(--g500);transition:color .2s;display:inline-flex;align-items:center}
.theme-toggle:hover{color:var(--accent)}
.theme-toggle .theme-icon{display:block;width:17px;height:17px}
@media(max-width:640px){.theme-toggle{display:block}}

/* ─── RESET ─── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:var(--w-body);color:var(--black);background:var(--white);line-height:1.7;min-height:100vh;overflow-x:hidden}
b,strong{font-weight:var(--w-bold)}
::selection{background:var(--accent);color:var(--white)}
::-moz-selection{background:var(--accent);color:var(--white)}

/* ─── SKIP LINK ─── */
.skip-link{position:absolute;top:-100%;left:0;z-index:1000;padding:8px 16px;background:var(--accent);color:var(--white);font-family:var(--mono);font-size:.7rem;text-decoration:none;transition:top .15s;border-radius:var(--r-sm)}
.skip-link:focus{top:0;outline:none}

/* ─── LINKS ─── */
a{color:var(--accent);text-decoration:none;transition:opacity .2s}
a:hover{opacity:.7}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ─── NAV ─── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;justify-content:flex-end;padding:0 28px;background:var(--white);border-bottom:0 solid var(--g200);transition:border-color .3s}
nav.scrolled{border-bottom-width:1px}
nav .nav-right{display:flex;align-items:center;gap:20px}
nav .nav-right a{font-size:.72rem;color:var(--g500);border-bottom:none;transition:color .2s;text-decoration:none}
nav .nav-right a:hover{color:var(--accent)}
nav .nav-right a[aria-current="page"]{color:var(--accent);border-bottom:1px solid var(--accent)}
nav .nav-right .nav-btn,
nav .nav-right .nav-btn:link,
nav .nav-right .nav-btn:visited{font-family:var(--mono);font-weight:var(--w-label);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;background:var(--accent);color:var(--white);border:1px solid var(--accent);border-radius:var(--r-sm);transition:all .2s;text-decoration:none;cursor:pointer}
nav .nav-right .nav-btn:hover,
nav .nav-right .nav-btn:active{background:var(--black);border-color:var(--black);color:var(--white);opacity:1}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--g900);font-size:1.2rem;line-height:1}

@media(max-width:640px){
  nav .nav-right a:not(.nav-guaranteed){display:none}
  .nav-toggle{display:block}
}
.nav-overlay{display:none;position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;background:var(--white);z-index:99;padding:24px 28px;flex-direction:column;gap:16px}
.nav-overlay.open{display:flex}
.nav-overlay a{font-size:.85rem;color:var(--g900);border-bottom:none;padding:10px 0;border-top:1px solid var(--g200);text-decoration:none}
.nav-overlay a:first-child{border-top:none}

/* ─── CONTAINER ─── */
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.container--wide{max-width:var(--maxw-wide);margin:0 auto;padding:0 28px}

/* ─── SECTIONS ─── */
section{padding:var(--pad-sec) 0}
section h2{font-size:var(--fs-h2);font-weight:var(--w-bold);letter-spacing:-.025em;line-height:var(--lh-tight);margin-bottom:20px}
section h2 em{font-style:normal;color:var(--accent)}
section h3{font-size:1rem;font-weight:var(--w-bold);letter-spacing:-.01em;margin-bottom:12px;margin-top:32px}
section h3:first-of-type{margin-top:0}
section h4{font-size:.85rem;font-weight:var(--w-bold);margin-bottom:6px;margin-top:0}
section p{font-size:.92rem;color:var(--g700);margin-bottom:18px;max-width:62ch}
section p:last-child{margin-bottom:0}
.muted{color:var(--g500);font-size:var(--fs-small)}

/* ─── PHILOSOPHER HERO ─── */
.philosopher-hero{padding:120px 0 60px}
.philosopher-hero h1{font-size:var(--fs-h1);font-weight:var(--w-bold);letter-spacing:-.045em;line-height:.92;margin-bottom:12px}
.philosopher-hero h1 em{font-style:normal;color:var(--accent)}
.philosopher-era{font-family:var(--mono);font-size:.72rem;color:var(--g400);margin-bottom:16px}
.philosopher-summary{font-size:1.05rem;color:var(--g700);line-height:1.7;max-width:58ch;margin-bottom:0}

/* ─── MARKDOWN CONTENT (philosopher pages) ─── */
.philosopher-content h2{font-size:var(--fs-h2);font-weight:var(--w-bold);letter-spacing:-.025em;line-height:var(--lh-tight);margin-bottom:20px;margin-top:48px}
.philosopher-content h2:first-of-type{margin-top:0}
.philosopher-content h3{font-size:1rem;font-weight:var(--w-bold);letter-spacing:-.01em;margin-top:36px;margin-bottom:12px}
.philosopher-content h3:first-of-type{margin-top:0}
.philosopher-content h4{font-size:.85rem;font-weight:var(--w-bold);margin-bottom:6px;margin-top:24px}
.philosopher-content p{font-size:.92rem;color:var(--g700);line-height:1.8;margin-bottom:18px;max-width:62ch}
.philosopher-content p:last-child{margin-bottom:0}
.philosopher-content ul,
.philosopher-content ol{margin:16px 0;padding-left:24px}
.philosopher-content li{font-size:.92rem;color:var(--g700);line-height:1.7;margin-bottom:8px;max-width:58ch}
.philosopher-content li:last-child{margin-bottom:0}
.philosopher-content li strong{font-weight:var(--w-bold)}
.philosopher-content hr{margin:32px 0;border:none;border-top:1px solid var(--g200)}
.philosopher-content blockquote{margin:20px 0;padding:16px 20px;border-left:3px solid var(--accent);background:var(--accent-light);font-size:.9rem;color:var(--g700);line-height:1.7;border-radius:var(--r-sm)}
.philosopher-content blockquote p{margin-bottom:0;font-size:.9rem;color:var(--g700)}
.philosopher-content code{font-family:var(--mono);font-size:.78rem;color:var(--accent);background:var(--accent-light);padding:2px 5px;border-radius:var(--r-sm)}
.philosopher-content strong{font-weight:var(--w-bold)}
.philosopher-content em{font-style:italic}

@media(max-width:640px){
  section{padding:var(--pad-sec-mobile) 0}
}

/* ─── NUM STAMP (section label) ─── */
.num-stamp{font-family:var(--mono);font-weight:var(--w-label);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--g400);margin-bottom:16px}

/* ─── HERO ─── */
.hero{min-height:100dvh;display:flex;align-items:center;padding-top:var(--nav-h);position:relative;overflow:hidden}
.hero .container--wide{padding-top:32px;padding-bottom:56px;position:relative;z-index:2}
.hero-stamp{font-family:var(--mono);font-weight:var(--w-label);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--g400);margin-bottom:28px;display:flex;align-items:center;gap:10px}
.hero-stamp .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.hero-stamp .cursor{display:inline-block;width:2px;height:1em;background:var(--accent);animation:cursorPulse 1.2s ease-in-out infinite;flex:none;opacity:.7}
@keyframes cursorPulse{0%,100%{opacity:.7}50%{opacity:0}}
.hero h1{font-size:var(--fs-h1);font-weight:var(--w-bold);letter-spacing:-.045em;line-height:.92;margin-bottom:24px;position:relative}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-sub{font-size:var(--fs-hero-sub);color:var(--g600);max-width:58ch;line-height:1.7;margin-bottom:36px}
.hero .btn-group{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.hero-cta-line{font-size:.78rem;color:var(--g400);max-width:50ch}
.hero-cta-line a{color:var(--g500);border-bottom:1px solid var(--g300);transition:border-color .2s}
.hero-cta-line a:hover{border-color:var(--accent);color:var(--accent)}

/* Hero visual — abstract wireframe / architecture motif */
.hero-visual{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-visual .hero-ocean{position:absolute;inset:0;width:100%;height:100%;border:none;z-index:0;opacity:.55;mix-blend-mode:screen}
[data-theme="dark"] .hero-visual .hero-ocean{opacity:.7;mix-blend-mode:screen}
@media(max-width:640px){.hero-visual .hero-ocean{opacity:.35}}
.hero-visual svg{position:absolute;right:-10%;top:50%;transform:translateY(-50%);width:clamp(300px,45vw,600px);height:auto;opacity:.08;mix-blend-mode:multiply;z-index:1}
[data-theme="dark"] .hero-visual svg{opacity:.12;mix-blend-mode:screen}
.hero-visual .grid-lines{position:absolute;inset:0;background-image:radial-gradient(circle,var(--g200) 1.5px,transparent 1.5px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 70% 50%,black 20%,transparent 60%);-webkit-mask-image:radial-gradient(ellipse at 70% 50%,black 20%,transparent 60%);opacity:.5;z-index:1}
[data-theme="dark"] .hero-visual .grid-lines{background-image:radial-gradient(circle,var(--g300) 1.5px,transparent 1.5px);opacity:.4}
@media(max-width:768px){.hero-visual .grid-lines{opacity:.25;background-size:48px 48px}}
@media(max-width:640px){.hero-visual{display:none}}

/* ─── BUTTONS ─── */
.btn{display:inline-flex;align-items:center;font-family:var(--mono);font-weight:var(--w-label);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:14px 24px;border:1px solid var(--black);color:var(--black);text-decoration:none;transition:all .2s;border-radius:var(--r-sm);gap:8px;background:none;cursor:pointer}
.btn:hover{background:var(--black);color:var(--white);opacity:1}
.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--white)}
.btn--accent:hover{background:var(--black);border-color:var(--black);color:var(--white)}
.btn--ghost{border-color:var(--g300);color:var(--g500)}
.btn--ghost:hover{border-color:var(--black);color:var(--black);background:transparent}
.btn--small{padding:10px 16px;font-size:.63rem}
.btn--icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--g200);border-radius:var(--r-sm);background:var(--white);color:var(--g500);cursor:pointer;transition:all .2s;font-size:.95rem}
.btn--icon:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}

/* ─── CARDS GRID ─── */
.card-grid{display:grid;gap:20px;margin:24px 0}
.card-grid-2{grid-template-columns:1fr 1fr}
.card-grid-3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:640px){.card-grid-2,.card-grid-3{grid-template-columns:1fr}}
.card{border:1px solid var(--g200);padding:24px;border-radius:var(--r-sm);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.06);background:var(--g100)}
[data-theme="dark"] .card:hover{box-shadow:0 4px 20px rgba(0,0,0,.25);background:var(--g200)}
.card p{font-size:.82rem;color:var(--g600);margin:0}
.card h4{font-size:.85rem;font-weight:var(--w-bold);margin-bottom:6px;margin-top:0}

/* ─── DRIFT ─── */
.drift-num{font-family:var(--mono);font-weight:var(--w-label);font-size:.62rem;color:var(--accent);margin-bottom:4px;display:block}

/* ─── SPECTRUM ─── */
.spectrum{margin:36px 0;padding:28px 24px;background:var(--g100);border-radius:var(--r-md)}
.spectrum-label{font-family:var(--mono);font-weight:var(--w-label);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--g500);margin-bottom:24px}
.spectrum-track{display:flex;align-items:flex-start;position:relative;height:auto;background:transparent;margin:0 4px 0 4px;padding-top:28px}
.spectrum-track::before{content:"";position:absolute;top:35px;left:4%;right:4%;height:6px;background:var(--g300);border-radius:3px;z-index:0}
.spectrum-track .seg{flex:1;position:relative;z-index:1;padding-top:0}
.spectrum-track .seg::before{content:"";display:block;margin:0 auto;width:22px;height:22px;border-radius:50%;background:var(--white);border:2.5px solid var(--g300);transition:all .3s;position:relative;z-index:2}
.spectrum-track .seg.pass::before{border-color:var(--g400);background:var(--g300)}
.spectrum-track .seg.driv::before{border-color:var(--g800);background:var(--white)}
.spectrum-track .seg.pilot::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-light)}
.spectrum-track .seg::after{content:attr(data-label);display:block;text-align:center;font-size:1.05rem;font-weight:600;color:var(--g900);letter-spacing:-.015em;margin-top:16px}
.spectrum-track .seg.pass::after{color:var(--g500)}
.spectrum-track .seg.pilot::after{color:var(--accent)}
.spectrum-track .seg .sub{display:block;font-weight:400;font-size:.8rem;color:var(--g500);margin-top:4px;text-align:center}
.spectrum-note{font-size:.85rem;color:var(--g600);margin-top:28px;padding:18px 0 0;border-top:1px solid var(--g200);text-align:center}

/* ─── SSA LADDER ─── */
.ladder{list-style:none;margin:28px 0}
.ladder li{display:flex;align-items:baseline;gap:16px;padding:18px 0;border-top:1px solid var(--g200);font-size:.88rem;cursor:pointer;transition:background .2s;position:relative}
.ladder li:last-child{border-bottom:1px solid var(--g200)}
.ladder li:hover{background:var(--g100);margin:0 -12px;padding:18px 12px;border-radius:var(--r-sm)}
.ladder li.active{background:var(--accent-light);margin:0 -12px;padding:18px 12px;border-radius:var(--r-sm);border-color:var(--accent)}
.ladder-lvl{font-family:var(--mono);font-weight:var(--w-label);font-size:.65rem;color:var(--g400);flex:none;width:28px}
.ladder li.active .ladder-lvl{color:var(--accent)}
.ladder-name{font-weight:var(--w-bold);flex:none;color:var(--g900);font-size:.85rem}
.ladder-note{color:var(--g500);font-size:.78rem;flex:1}
.ladder-flag{font-family:var(--mono);font-weight:var(--w-label);font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);flex:none;display:none}
.ladder li.active .ladder-flag{display:inline}

/* ─── SELF-ASSESSMENT ─── */
.assess-intro{margin:28px 0 24px;padding:24px 28px;background:var(--g100);border-left:3px solid var(--accent);border-radius:var(--r-sm)}
.assess-intro p{font-size:.85rem;color:var(--g700);margin:0}
.assess-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-weight:var(--w-label);font-size:.63rem;letter-spacing:.06em;text-transform:uppercase;padding:12px 20px;background:var(--accent);color:var(--white);border:none;cursor:pointer;border-radius:var(--r-sm);transition:background .2s;margin-top:14px}
.assess-btn:hover{background:var(--black)}
.assess-q{display:none;margin:24px 0}
.assess-q.active{display:block}
.assess-q-inner{padding:24px 0}
.assess-q-text{font-size:.92rem;font-weight:var(--w-bold);color:var(--g700);margin-bottom:20px}
.assess-opts{display:flex;flex-direction:column;gap:10px}
.assess-opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--g200);border-radius:var(--r-sm);cursor:pointer;transition:all .2s;font-size:.82rem;color:var(--g700);background:none;text-align:left;width:100%}
.assess-opt:hover{border-color:var(--g900)}
.assess-opt.selected{border-color:var(--accent);background:var(--accent-light)}
.assess-opt .ring{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--g300);flex:none;transition:all .2s}
.assess-opt.selected .ring{border-color:var(--accent);background:var(--accent)}
.assess-nav{display:flex;justify-content:space-between;margin-top:20px}
.assess-nav button{font-family:var(--mono);font-weight:var(--w-label);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;padding:8px 16px;border:1px solid var(--g300);background:none;cursor:pointer;border-radius:var(--r-sm);transition:all .2s;color:var(--g600)}
.assess-nav button:hover{border-color:var(--black);color:var(--black)}
.assess-nav button.primary{background:var(--accent);border-color:var(--accent);color:var(--white)}
.assess-nav button.primary:hover{background:var(--black);border-color:var(--black)}
.assess-result{display:none;margin:28px 0;padding:32px;background:var(--g100);border-left:3px solid var(--accent);border-radius:var(--r-sm)}
.assess-result.show{display:block}
.assess-level{font-family:var(--mono);font-weight:var(--w-label);font-size:2rem;color:var(--accent)}
.assess-level-name{font-size:1rem;font-weight:var(--w-bold);color:var(--g900);margin:6px 0 10px}
.assess-desc{font-size:.82rem;color:var(--g700);margin-bottom:24px}
.assess-retake{font-size:.75rem;color:var(--g400);margin-top:16px;display:inline-block;cursor:pointer;border-bottom:1px solid var(--g300);transition:all .2s}
.assess-retake:hover{border-color:var(--accent);color:var(--accent)}
.assess-greeting{font-family:var(--mono);font-size:.72rem;color:var(--g500);margin:16px 0 -16px;padding:0 4px}

/* ─── CTA CARDS ─── */
.cta-cards{display:none;gap:20px;margin:28px 0}
.cta-cards.show{display:grid}
.cta-cards.grid-2{grid-template-columns:1fr 1fr}
@media(max-width:640px){.cta-cards.grid-2{grid-template-columns:1fr}}
.cta-card{border:2px solid var(--g900);padding:28px;border-radius:var(--r-sm);display:flex;flex-direction:column}
.cta-card .phase{font-family:var(--mono);font-weight:var(--w-label);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--g400);margin-bottom:6px}
.cta-card h4{font-size:1rem;font-weight:var(--w-bold);letter-spacing:-.015em;margin-bottom:8px}
.cta-card p{font-size:.8rem;color:var(--g700);margin-bottom:20px;line-height:1.6;flex:1}
.cta-card .btn{margin-top:auto;align-self:flex-start}
.cta-card.highlight{border-color:var(--accent);background:var(--accent-light)}

/* ─── PILLAR ─── */
.pillar{border-top:1px solid var(--g200);padding:24px 0;display:flex;gap:20px}
.pillar:last-child{border-bottom:1px solid var(--g200)}
.pillar-num{font-family:var(--mono);font-weight:var(--w-label);font-size:.72rem;color:var(--g400);flex:none;width:24px}
.pillar-body{flex:1}
.pillar-body h3{font-size:.88rem;font-weight:var(--w-bold);margin-top:0;margin-bottom:2px}
.pillar-axiom{font-size:.8rem;color:var(--g700);margin-bottom:6px;max-width:52ch}
.pillar-ssa{font-size:.76rem;font-family:var(--mono);color:var(--g400)}

/* ─── OS CARD ─── */
.os-tagline{font-family:var(--mono);font-weight:var(--w-label);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:8px}
.os-code{display:block;font-family:var(--mono);font-size:.68rem;color:var(--g400);margin-top:12px;padding-top:10px;border-top:1px solid var(--g100)}

/* ─── ARCHITECTURE (collapsible) ─── */
.arch-reveal{display:none;margin:24px 0}
.arch-reveal.open{display:block}
.arch-core{padding:20px 24px;border:2px solid var(--g900);border-radius:var(--r-sm);text-align:center}
.arch-core-label{font-family:var(--mono);font-weight:var(--w-label);font-size:.55rem;text-transform:uppercase;letter-spacing:.12em;color:var(--g400);display:block;margin-bottom:4px}
.arch-core-name{font-size:1rem;font-weight:var(--w-bold);display:block;margin-bottom:2px}
.arch-core-note{font-family:var(--mono);font-size:.6rem;color:var(--g400)}
.arch-harnesses{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.arch-card{border:1px solid var(--g200);padding:14px;text-align:center;border-radius:var(--r-sm)}
.arch-card h4{font-size:.76rem;font-weight:var(--w-bold);margin:0 0 4px}
.arch-card p{font-size:.7rem;color:var(--g700);margin:0}

/* ─── REVEAL TRIGGER ─── */
.reveal-trigger{font-family:var(--mono);font-weight:var(--w-label);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);cursor:pointer;border:none;background:none;padding:6px 0;display:inline-flex;align-items:center;gap:4px;transition:opacity .2s}
.reveal-trigger:hover{opacity:.7}

/* ─── AXIOMS ─── */
.axioms{list-style:none;counter-reset:ax;margin:20px 0}
.axioms li{counter-increment:ax;padding:18px 0 18px 44px;border-top:1px solid var(--g200);position:relative}
.axioms li:last-child{border-bottom:1px solid var(--g200)}
.axioms li::before{content:counter(ax,decimal-leading-zero);position:absolute;left:0;top:19px;font-family:var(--mono);font-weight:var(--w-label);font-size:.62rem;color:var(--accent)}
.axioms li b{font-weight:var(--w-bold)}
.axioms .gloss{display:block;font-size:.8rem;color:var(--g700);margin-top:4px;max-width:56ch}

/* ─── PAIRS (mapping) ─── */
.pair{border-top:1px solid var(--g200);padding:18px 0}
.pair:last-child{border-bottom:1px solid var(--g200)}
.pair dt{font-family:var(--mono);font-weight:var(--w-label);font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--g900);margin-bottom:2px}
.pair dt span{color:var(--accent);font-weight:var(--w-body)}
.pair dd{font-size:.82rem;color:var(--g700);line-height:1.6}

/* ─── PLATE ─── */
.plate{margin:24px 0;padding:22px 26px;background:var(--g100);border-left:3px solid var(--accent);font-size:.88rem;color:var(--g900);border-radius:var(--r-sm)}
.plate em{font-style:italic;color:var(--accent)}

/* ─── CONTRA ─── */
.contra{margin:24px 0;border-left:3px solid var(--accent);padding-left:20px}
.contra-label{font-family:var(--mono);font-weight:var(--w-label);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.contra p{font-size:.82rem;color:var(--g700);margin-bottom:12px}

/* ─── PHILOSOPHER APPENDIX ─── */
.phil-top{margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.phil-top{grid-template-columns:1fr}}
.phil-item{font-size:.76rem;color:var(--g700);padding:7px 0;border-bottom:1px solid var(--g100);display:flex;gap:8px;cursor:pointer;transition:background .15s}
.phil-item:hover{background:var(--g100);margin:0 -8px;padding:7px 8px;border-radius:var(--r-sm)}
.phil-item .name{font-weight:var(--w-bold);color:var(--g800);flex:none}
.phil-item .summary{color:var(--g700)}
.phil-toggle{font-family:var(--mono);font-weight:var(--w-label);font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);cursor:pointer;border:none;background:none;padding:10px 0;display:inline-block;transition:opacity .2s}
.phil-toggle:hover{opacity:.7}
.phil-all{display:none;margin:8px 0}
.phil-all.show{display:block}

/* ─── CTA BLOCK (generic callout) ─── */
.cta-block{margin:28px 0;padding:24px 28px;background:var(--accent-light);border-left:3px solid var(--accent);border-radius:var(--r-sm)}
.cta-block p{font-size:.85rem;color:var(--g800);margin:0 0 14px}
.cta-block .btn{margin-top:0}

/* ─── SECTION TRACKER ─── */
.section-tracker{position:fixed;right:16px;left:auto;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:10px;padding:0;opacity:0;transition:opacity .4s}
.section-tracker.visible{opacity:1}
.section-tracker a{display:block;width:8px;height:8px;border-radius:50%;background:var(--g300);border:1px solid transparent;transition:all .2s;text-decoration:none}
.section-tracker a.active{background:var(--accent);border-color:var(--accent);transform:scale(1.3)}
.section-tracker a:hover{background:var(--accent);border-color:var(--accent)}
@media(max-width:640px){.section-tracker{display:none}}

/* ─── FOOTER ─── */
footer{padding:48px 0;border-top:1px solid var(--g200)}
footer .footer-logo{display:inline-block;margin-bottom:24px;text-decoration:none;border:none;opacity:.8;transition:opacity .25s}
footer .footer-logo:hover{opacity:1}
footer .footer-logo .footer-logo-img{display:block;width:200px;height:200px;object-fit:contain;border:none}
@media(max-width:640px){footer .footer-logo .footer-logo-img{width:120px;height:120px}}
footer .f-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer .f-copy{font-size:.7rem;color:var(--g400)}
footer .f-links{display:flex;gap:20px;flex-wrap:wrap}
footer .f-links a{font-size:.7rem;color:var(--g500);border-bottom:none;text-decoration:none}
footer .f-links a:hover{color:var(--accent)}
footer .f-cta{font-size:.7rem;color:var(--g400);margin-top:8px;width:100%;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
footer .f-cta a{color:var(--g500);text-decoration:none}
footer .f-cta a:hover{color:var(--accent)}
footer .f-cta .sep{color:var(--g300);font-size:.55rem;user-select:none}

/* ─── FADE-IN ─── */
.fade-in{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion: reduce) {
  .fade-in{opacity:1;transform:none;transition:none}
  .hero-stamp .cursor{animation:none;opacity:.7}
  .card:hover{transform:none;box-shadow:none}
}

/* ─── PHILOSOPHER SEARCH ─── */
.phil-search{margin:20px 0 24px}
.phil-search input{width:100%;padding:10px 14px;font-family:var(--sans);font-size:.85rem;border:1px solid var(--g200);border-radius:var(--r-sm);outline:none;transition:border-color .2s;color:var(--g900)}
.phil-search input:focus{border-color:var(--accent)}
.phil-search input::placeholder{color:var(--g400)}

/* ─── PRINT ─── */
@media print {
  nav, footer, .skip-link, .section-tracker, .cta-block, .cta-cards { display:none!important }
  body { padding-top:0!important; font-size:12pt; color:#000; background:#fff }
  .container { max-width:100%; padding:0 }
  a { color:#000; text-decoration:underline }
  h2, h3 { page-break-after:avoid }
  p, li { orphans:3; widows:3 }
}

/* ─── SUBSCRIBE FORM ─── */
.subscribe-form{margin:20px 0}
.subscribe-label{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);display:block;margin-bottom:6px}
.subscribe-row{display:flex;gap:8px;max-width:340px}
.subscribe-input{flex:1;padding:10px 14px;font-family:var(--sans);font-size:.82rem;border:1px solid var(--g200);border-radius:var(--r-sm);outline:none;color:var(--g900);background:var(--white)}
.subscribe-input:focus{border-color:var(--accent)}
