:root{
  --font-body:system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-display:system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,"Times New Roman",serif;
  --paper:#F2ECE2;--paper-soft:#FAF6EF;--ink:#101010;--ink-2:#3A342E;--muted:#666057;
  --line:#D0C4B7;--signal:#E34B3C;--white:#FFFDF8;--dark:#0D0D0D;
  --max:1120px;--measure:72ch;--r-lg:20px;--r-md:10px;--space-1:10px;--space-2:20px;--space-3:30px;--space-4:40px;--space-5:50px;--space-6:60px;--gap:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:68px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.68;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
img,svg{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.skip-link{position:fixed;left:12px;top:-90px;z-index:999;padding:10px 14px;background:var(--dark);color:var(--white);border-radius:10px}
.skip-link:focus{top:12px}

/* Navigation stays quiet so the text remains primary. */
.topbar{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.topbar{background:rgba(242,236,226,.96)}
.toprow{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;text-decoration:none}
.brand-symbol{width:39px;height:22px;display:inline-grid;place-items:center;font:900 38px/.65 var(--font-serif);letter-spacing:-.14em}
.brand-wordmark{display:inline-flex;align-items:baseline;letter-spacing:-.035em;font-size:15px;line-height:1}
.brand-theory{font-weight:900}.brand-slash{color:var(--signal);font-style:normal;font-weight:950;margin:0 .3em;transform:skew(-10deg)}.brand-group{font-weight:350}
.nav-main{display:flex;align-items:center;gap:17px;font-size:12px;font-weight:760}
.nav-main a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;border-bottom:2px solid transparent}
.nav-main a:hover,.nav-main a[aria-current="page"]{border-color:currentColor}
.site-menu{display:none;position:relative}
.site-menu summary{list-style:none;cursor:pointer;border:1px solid currentColor;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800}
.site-menu summary::-webkit-details-marker{display:none}
.site-menu nav{position:absolute;right:0;top:46px;width:min(292px,calc(100vw - 28px));padding:8px;background:var(--paper-soft);border:1px solid var(--ink);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.14);display:grid}
.site-menu nav a{padding:11px;border-radius:9px;font-weight:760;font-size:13px;text-decoration:none}
.site-menu nav a:hover{background:var(--ink);color:var(--white)}

.breadcrumb{padding:10px 0;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.breadcrumb a{text-decoration:underline}

/* Canonical 10px rhythm inside the restrained panel/grid system. */
.hero{padding:20px 0 10px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:var(--gap)}
.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:rgba(255,255,255,.26)}
.hero-main{padding:clamp(26px,4vw,46px);display:block}
.hero-main h1{font-family:var(--font-display);font-size:clamp(42px,6vw,72px);line-height:.98;letter-spacing:-.055em;margin:.22em 0 .32em;max-width:15ch;text-wrap:balance}
.hero-main h1.wide{max-width:18ch}
.heavy{font-weight:900}.light{font-weight:330}.infinity{font-family:var(--font-serif);font-weight:900;letter-spacing:-.1em}.signal{color:var(--signal)}
.eyebrow,.label,.section-no{font-size:10px;font-weight:850;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.lead{font-size:clamp(17px,1.7vw,20px);line-height:1.62;max-width:var(--measure);color:var(--ink-2);margin:0;text-wrap:pretty}
.hero-side{display:none}
.hero-actions,.network{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.btn,.network a,.cta{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:0 14px;border:1px solid var(--ink);border-radius:999px;font-size:12px;font-weight:820;text-decoration:none}
.btn.primary{background:var(--ink);color:var(--white)}
.btn:hover,.network a:hover,.cta:hover{background:var(--ink);color:var(--white)}

.section{padding:0}
.section-shell{padding:clamp(30px,4vw,40px) 0;border-top:1px solid var(--line)}
.section:first-of-type .section-shell{border-top:0}
.section-head{display:block;max-width:900px;margin-bottom:22px}
.section-head h2{font-size:clamp(30px,4vw,48px);line-height:1.05;letter-spacing:-.045em;margin:.28em 0 .35em;max-width:18ch;text-wrap:balance}
.section-head h2.wide{max-width:24ch}
.section-head p{font-size:16px;line-height:1.72;color:var(--muted);max-width:var(--measure);margin:0;text-wrap:pretty}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:var(--gap)}
.card{padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);display:flex;flex-direction:column;min-width:0}
.card .n{font-size:10px;font-weight:850;letter-spacing:.11em;color:var(--muted);text-transform:uppercase}
.card h3{font-size:clamp(21px,2vw,27px);line-height:1.12;letter-spacing:-.035em;margin:12px 0 9px;text-wrap:balance}
.card p{color:var(--muted);font-size:14px;line-height:1.62;flex:1;margin:0 0 13px}
.card a{font-size:13px;font-weight:820;text-decoration:underline}
.card-dark{background:var(--dark);border-color:var(--dark);color:var(--white)}.card-dark p,.card-dark .n{color:#C9C2B9}
.card-accent{background:var(--signal);border-color:var(--signal);color:var(--dark)}.card-accent p,.card-accent .n{color:var(--dark)}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--gap)}
.fact{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);padding:20px;line-height:1.6}
.fact b{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}

.lineage,.timeline{display:grid;gap:8px;max-width:920px}
.lineage-row,.timeline-item{display:grid;grid-template-columns:minmax(135px,190px) 1fr;gap:20px;padding:20px;border-top:1px solid var(--line)}
.lineage-row:last-child,.timeline-item:last-child{border-bottom:1px solid var(--line)}
.lineage-row b,.timeline-item time{font-size:12px;font-weight:850}
.lineage-row span,.timeline-item p{font-size:15px;color:var(--ink-2);margin:0}

.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--gap)}
.kpi{padding:18px;border-top:2px solid var(--ink);background:transparent}
.kpi strong{display:block;font-size:32px;letter-spacing:-.045em}.kpi span{font-size:12px;color:var(--muted)}

.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft)}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.table th{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.table td{font-size:14px;line-height:1.58}
.table tr:last-child td{border-bottom:0}

.notice{max-width:var(--measure);padding:17px 18px;border-left:3px solid var(--signal);background:rgba(255,255,255,.32);font-size:14px;line-height:1.65}
.prose,.reading{max-width:var(--measure)}
.prose p,.prose li,.reading p,.reading li{font-family:var(--font-serif);font-size:clamp(17px,1.7vw,19px);line-height:1.82}
.prose h2,.reading h2{font-size:clamp(29px,3.4vw,42px);letter-spacing:-.035em;margin:1.7em 0 .5em}
.prose h3,.reading h3{font-size:24px;margin:1.5em 0 .45em}
.note{padding:18px 0;color:var(--muted);font-size:12px}
.case-list{display:grid;gap:8px}
.case-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px 0;border-top:1px solid var(--line)}
.case-row:last-child{border-bottom:1px solid var(--line)}
.case-row .case-no{font-size:10px;color:var(--muted);font-weight:850;letter-spacing:.1em}
.case-row h3{margin:0 0 4px;font-size:22px;letter-spacing:-.03em}
.case-row p{margin:0;color:var(--muted);font-size:13px}
.case-row a{font-size:13px;font-weight:850;text-decoration:underline}

/* Hub may keep one compact visual counterweight. */
body[data-surface="hub"] .hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr)}
body[data-surface="hub"] .hero-side{display:flex;min-height:0;padding:28px;background:var(--dark);color:var(--white);border-color:var(--dark);flex-direction:column;justify-content:space-between}
body[data-surface="hub"] .hero-side .hero-mark{width:96px;height:48px;margin-left:auto;color:var(--white)}
body[data-surface="hub"] .hero-side h2{font-size:clamp(24px,3vw,36px);line-height:1.07;letter-spacing:-.04em;margin:20px 0 0}
body[data-surface="hub"] .hero-side p{font-size:14px;color:#C8C0B7}
.statement-band{background:var(--dark);color:var(--white);padding:30px;border-radius:var(--r-lg)}
.statement-band h2{font-size:clamp(34px,5vw,60px);line-height:1;letter-spacing:-.05em;margin:0;max-width:16ch}
.statement-band .slash-large{display:none}

/* Case modifiers: canonical component markup remains unchanged. */
body[data-surface="case"]{
  --case-paper:#F7F5F1;--case-ink:#171717;--case-muted:#65615C;--case-line:#D8D2C9;--case-accent:#171717;
  background:var(--case-paper);color:var(--case-ink)
}
body[data-brand="vivian"]{--case-paper:#FFF8F7;--case-ink:#231F20;--case-muted:#6D5E5C;--case-line:#E9C8C4;--case-accent:#E12018}
body[data-brand="neva-maison"]{--case-paper:#FFF9EC;--case-ink:#4D0903;--case-muted:#75534C;--case-line:#E8D9B5;--case-accent:#700800}
body[data-surface="case"] .topbar{background:color-mix(in srgb,var(--case-paper) 95%,transparent);border-color:var(--case-line)}
body[data-surface="case"] .breadcrumb{border-color:var(--case-line)}
body[data-surface="case"] .panel,body[data-surface="case"] .card,body[data-surface="case"] .fact{border-color:var(--case-line)}
body[data-surface="case"] .hero-main{background:color-mix(in srgb,var(--case-paper) 88%,white);border-top:4px solid var(--case-accent)}
body[data-surface="case"] .hero-main h1{color:var(--case-ink)}
body[data-surface="case"] .hero-main .lead,body[data-surface="case"] .card p{color:var(--case-muted)}
body[data-surface="case"] .brand-hero-logo{max-width:min(440px,78vw);max-height:150px;object-fit:contain;object-position:left;margin:0 0 20px}
body[data-surface="case"] .section-shell{border-color:var(--case-line)}
body[data-surface="case"] .notice{border-color:var(--case-accent)}
body[data-surface="case"] .footer{border-color:var(--case-line)}
body[data-surface="case"] .lineage-credit{font-size:12px;line-height:1.6;max-width:72ch;margin:0;color:var(--case-muted)}

/* Lineage page. */
.lineage-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.lineage-branch{padding:22px;border-top:4px solid var(--ink);background:var(--paper-soft)}
.lineage-branch[data-branch="theory-group"]{border-color:var(--signal)}
.lineage-branch h3{font-size:28px;margin:.3em 0}.lineage-branch p{color:var(--muted)}
.lineage-status{display:inline-flex;min-height:30px;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.lineage-table td:first-child{font-weight:820}
.footer{margin-top:0;border-top:1px solid var(--line);padding:28px 0 34px}
.footer-in{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}
.footer p{margin:0;max-width:680px;color:var(--muted);font-size:11px;line-height:1.6}

@supports ((mask:url("./infinity.svg")) or (-webkit-mask:url("./infinity.svg"))){
  .brand-symbol,body[data-surface="hub"] .hero-side .hero-mark{
    font-size:0;background:currentColor;-webkit-mask:url("./infinity.svg") center/contain no-repeat;mask:url("./infinity.svg") center/contain no-repeat
  }
}
@media(max-width:900px){
  .nav-main{display:none}.site-menu{display:block}
  body[data-surface="hub"] .hero-grid{grid-template-columns:1fr}
  body[data-surface="hub"] .hero-side{display:none}
  .lineage-branches{grid-template-columns:1fr}
}
@media(max-width:680px){
  .wrap{width:min(100% - 22px,var(--max))}
  .toprow{min-height:54px}
  .brand-symbol{width:34px;height:20px}.brand-wordmark{font-size:14px}
  .hero{padding-top:10px}.hero-main{padding:24px 18px}
  .hero-main h1{font-size:clamp(38px,12.5vw,58px)}
  .section-shell{padding:25px 0}
  .grid,.facts{grid-template-columns:1fr}
  .lineage-row,.timeline-item{grid-template-columns:1fr;gap:5px;padding:15px 0}
  .case-row{grid-template-columns:1fr;gap:5px}
  .case-row>a{margin-top:5px}
  .footer-in{display:grid}
  .table{min-width:600px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

html,body{max-width:100%;overflow-x:hidden}
.btn:hover,.network a:hover,.cta:hover{background:var(--signal);border-color:var(--signal);color:var(--dark)}
@media(max-width:620px){.table{min-width:560px}}
