@import url("motion.css");
:root {
  --bg:#0a0a0c; --bg-elevated:#121216; --bg-panel:#16161c;
  --gold:#c9a227; --gold-dim:#8a7019; --gold-bright:#e8c547;
  --text:#e8e6e0; --text-muted:#9a968c; --border:#2a2a32;
  --observable:#3d5a80; --attributed:#6b5b4f; --ours:#4a3f6b;
  --radius:6px;
  --font:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --font-ui:system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);line-height:1.55;min-height:100dvh}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-bright)}
.portal-shell{max-width:1100px;margin:0 auto;padding:0 1.25rem 3rem}
.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--border)}
.brand{font-family:var(--font);font-size:.95rem;letter-spacing:.12em;color:var(--gold);font-weight:600}
.nav{display:flex;gap:1.25rem;font-size:.875rem}
.nav a{color:var(--text-muted)}
.nav a:hover{color:var(--gold)}
.hero{padding:3.5rem 0 2.5rem}
.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dim);margin:0 0 1rem}
.hero h1{font-family:var(--font);font-weight:500;font-size:clamp(1.85rem,5vw,2.75rem);line-height:1.2;margin:0 0 1.25rem}
.lead{max-width:36rem;color:var(--text-muted);margin:0 0 2rem;font-size:1.05rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-block;padding:.65rem 1.35rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;border:1px solid transparent}
.btn.primary{background:var(--gold);color:#0a0a0c;border-color:var(--gold)}
.btn.ghost{background:transparent;color:var(--gold);border-color:var(--gold-dim)}
.doctrine{padding:2rem 0 3rem;border-top:1px solid var(--border)}
.doctrine h2{font-family:var(--font);font-size:1.15rem;font-weight:500;margin:0 0 1.25rem;color:var(--text-muted)}
.layer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.layer{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;border-top-width:3px}
.layer.observable{border-top-color:var(--observable)}
.layer.attributed{border-top-color:var(--attributed)}
.layer.ours{border-top-color:var(--ours)}
.layer h3{margin:0 0 .5rem;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.layer p{margin:0;font-size:.9rem;color:var(--text-muted)}
.site-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted)}
.page-title{font-family:var(--font);font-size:1.75rem;font-weight:500;margin:2rem 0 .5rem}
.page-sub{color:var(--text-muted);margin:0 0 2rem;max-width:40rem}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.chip{padding:.35rem .85rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:.8rem;cursor:pointer}
.chip.active,.chip:hover{border-color:var(--gold-dim);color:var(--gold)}
.node-list{display:grid;gap:1rem}
.node-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.node-card-header{padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;cursor:pointer}
.node-card-header h3{margin:0;font-family:var(--font);font-size:1.15rem;font-weight:500}
.node-type{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dim)}
.node-body{display:none;padding:0 1.25rem 1.25rem}
.node-card.open .node-body{display:block}
.layer-block{margin-top:1rem;padding:.85rem 1rem;border-radius:var(--radius);border-left:3px solid;background:var(--bg-panel)}
.layer-block.observable{border-left-color:var(--observable)}
.layer-block.attributed{border-left-color:var(--attributed)}
.layer-block.ours{border-left-color:var(--ours)}
.layer-block h4{margin:0 0 .4rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.layer-block pre,.layer-block p{margin:0;font-size:.875rem;white-space:pre-wrap;font-family:var(--font-ui)}
.source-tag{display:inline-block;margin-top:.4rem;font-size:.75rem;color:var(--gold-dim)}
.edges-block{margin-top:1rem;font-size:.85rem;color:var(--text-muted)}
.edges-block strong{color:var(--text)}
.engine-shell{margin:2rem 0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}
.engine-shell h2{font-family:var(--font);font-size:1.25rem;margin:0 0 .5rem}
.engine-note{font-size:.85rem;color:var(--text-muted);margin:0 0 1.25rem}
.pad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:320px}
.pad{aspect-ratio:1;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:.75rem;cursor:pointer}
.pad:hover,.pad.active{border-color:var(--gold-dim);background:rgba(201,162,39,.12);color:var(--gold)}
.engine-controls{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.engine-controls label{font-size:.8rem;color:var(--text-muted)}
.engine-controls input[type=range]{width:120px;accent-color:var(--gold)}
@media (max-width:480px){.pad-grid{max-width:100%}.nav{gap:.85rem;font-size:.8rem}}
