/* Astra edition: a quiet workspace for inspecting the original research. */
:root { --font-display: 'Fraunces', Georgia, serif; --accent: #7257c4; --accent-soft: #f0ecfa; --radius: 14px; }
:root[data-theme="dark"] { --bg:#101014; --bg-elev:#18181f; --ink:#eeeef3; --ink-2:#adaeba; --ink-3:#9697a8; --line:#2a2934; --line-2:#3b3949; --accent:#b7a1fc; --accent-strong:#cec0ff; --accent-soft:#262033; --good:#95cdb4; }
body { background-image:radial-gradient(ellipse at 75% 0,rgba(123,97,255,.065),transparent 55%); }
button, a, input, select { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--accent)!important; outline-offset:4px; }
[hidden] { display:none!important; }
.skip-link { position:fixed; top:-70px; left:20px; z-index:100; padding:12px 22px; background:var(--bg-elev); border:1px solid var(--accent); border-radius:8px; }
.skip-link:focus { top:12px; }
.app-sidebar { position:fixed; inset:0 auto 0 0; width:236px; padding:30px 20px 22px; background:color-mix(in srgb,var(--bg-elev) 60%,transparent); backdrop-filter:blur(16px); border-right:1px solid var(--line); z-index:30; display:flex; flex-direction:column; }
.app-brand { display:flex; align-items:center; gap:9px; font-size:27px; font-weight:600; letter-spacing:-1px; color:var(--ink); padding:0 8px 38px; }
.app-brand:hover { text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:30px; height:34px; font-family:Georgia,serif; font-size:28px; color:var(--accent); border:1px solid var(--line-2); border-radius:9px; }
.brand-point { color:var(--accent); font-weight:400; }
.edition { font:9px var(--font-mono); letter-spacing:.13em; color:var(--ink-3); padding:0 12px 16px; }
.app-nav { display:grid; gap:6px; }
.app-nav a { display:flex; gap:12px; align-items:center; padding:12px; border-radius:8px; font-size:13px; color:var(--ink-2); border:1px solid transparent; }
.app-nav a:hover { background:var(--accent-soft); text-decoration:none; }
.app-nav a[aria-current="page"] { color:var(--accent); border-color:color-mix(in srgb,var(--accent) 20%,transparent); background:var(--accent-soft); }
.app-nav a>span:first-child { width:15px; font-size:17px; }
.nav-key { margin-left:auto; font:10px var(--font-mono); opacity:.55; }
.sidebar-bottom { margin-top:auto; padding-top:40px; }
.sidebar-bottom>a { display:block; font-size:11px; padding:6px 12px; color:var(--ink-2); }
.astra-edition { margin-top:26px; border-top:1px solid var(--line); padding-top:22px; font-size:8px; display:flex; justify-content:space-between; }
.astra-edition span { opacity:.6; }
.masthead { margin-left:236px; background:color-mix(in srgb,var(--bg) 85%,transparent); backdrop-filter:blur(16px); z-index:20; }
.masthead-inner { height:70px; max-width:none; padding:0 42px; }
.masthead .brand { font:12px var(--font-body); letter-spacing:0; color:var(--ink-3); text-transform:none; }
.masthead .brand span { margin:0 14px; color:var(--line-2); }
.masthead .brand b { color:var(--ink-2); font-weight:400; }
.mast-nav { display:none; }
.theme-btn { margin-left:auto; background:transparent; font-size:11px; min-height:36px; }
.app-content { margin-left:236px; max-width:1500px; padding:0 clamp(24px,4vw,64px) 36px; outline:none; }
.hero { display:grid; grid-template-columns:1.3fr 1fr; column-gap:32px; padding:54px 0 32px; }
.hero-copy { align-self:center; }
.hero .eyebrow { font:9px var(--font-mono); letter-spacing:.16em; color:var(--accent); display:flex; gap:9px; align-items:center; margin:0 0 25px; }
.live-dot { width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px #ae8dff77; }
.hero h1 { font-size:clamp(36px,4.2vw,66px); line-height:1.12; letter-spacing:-2px; font-weight:400; margin:0 0 23px; }
.hero h1 em { color:var(--accent); font-weight:400; }
.hero .subtitle { font-size:14px; line-height:1.9; max-width:490px; color:var(--ink-2); margin:0; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:30px; }
.primary-action,.secondary-action { padding:12px 16px; font-size:12px; border-radius:7px; display:inline-flex; gap:22px; align-items:center; }
.primary-action { color:#fff; background:#7855c9; border:1px solid #a88bea; box-shadow:0 4px 18px #7855c921; }
.primary-action:hover { background:#8965d7; text-decoration:none; }
.secondary-action { color:var(--ink-2); padding-left:0; }
.hero-footnote { font-size:9px; letter-spacing:.015em; color:var(--ink-3); margin-top:19px; }
.phase-lab { color:var(--accent); min-width:0; align-self:center; }
.diagram-label { display:flex; justify-content:space-between; font:8px var(--font-mono); letter-spacing:.14em; color:var(--ink-3); padding:0 26px; }
.diagram-label span { color:var(--accent); }
.phase-lab svg { width:100%; max-height:310px; display:block; }
.phase-buttons { display:flex; justify-content:center; gap:9px; }
.phase-buttons button { width:32px; height:32px; font:11px var(--font-mono); color:var(--ink-2); border:1px solid var(--line); background:var(--bg-elev); border-radius:6px; cursor:pointer; }
.phase-buttons button[aria-pressed="true"] { color:var(--accent); border-color:var(--accent); background:var(--accent-soft); }
#phase-caption { text-align:center; font-size:10px; color:var(--ink-3); min-height:30px; margin-bottom:0; }
.hero .meta-line { grid-column:1/-1; font-size:9px; padding-top:24px; margin-top:30px; border-top:1px solid var(--line); gap:14px; }
.hero .claim-strip { grid-column:1/-1; margin-top:18px; gap:8px; }
.claim { border:0; background:transparent; min-width:0; padding:6px 10px; font-size:11px; flex:0 1 auto; }
.claim.hint { padding-left:0; }
.claim-icon { width:20px; height:20px; font-size:11px; }
.panel { box-shadow:none; background:color-mix(in srgb,var(--bg-elev) 84%,transparent); backdrop-filter:blur(10px); border-color:var(--line); margin-bottom:24px; }
.panel-head { padding:22px 24px; }
.panel-head h2 { font-family:var(--font-body); font-size:17px; letter-spacing:-.3px; font-weight:500; }
.panel-note { font-size:11px; }
.summary { padding:0 24px 24px; }
.summary-line { font-size:12px; }
.tiles { gap:9px; }
.tile { min-width:100px; border:0; background:var(--bg); padding:18px 14px; border-radius:8px; }
.tile.total { background:var(--accent-soft); }
.tile .num { font-size:28px; font-weight:400; }
.grade-legend { margin-top:20px; }
.grade { font-size:9px; letter-spacing:.025em; padding:3px 7px; }
.evidence-note { margin:18px 0 0; padding:14px 16px; border-left:2px solid var(--accent); background:var(--bg); color:var(--ink-2); font-size:12px; line-height:1.8; }
.starter-head { display:flex; align-items:baseline; justify-content:space-between; margin:34px 0 15px; }
.starter-head h2 { font:500 17px var(--font-body); }
.starter-head span { font:9px var(--font-mono); color:var(--ink-3); }
.starter-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.starter-card { display:flex; flex-direction:column; padding:22px; border:1px solid var(--line); background:var(--bg-elev); border-radius:12px; color:var(--ink); min-height:180px; transition:border-color .2s,transform .2s; }
.starter-card:hover { text-decoration:none; border-color:var(--accent); transform:translateY(-2px); }
.starter-card .card-number { font:10px var(--font-mono); color:var(--accent); margin-bottom:23px; }
.starter-card strong { font-size:14px; font-weight:500; }
.starter-card p { font-size:12px; color:var(--ink-2); line-height:1.75; margin:8px 0 22px; }
.starter-card .card-link { margin-top:auto; color:var(--accent); font-size:11px; }
.app-ready .panel.reveal { opacity:1; transform:none; }
.app-ready .app-content:not(:has(.hero:not([hidden]))) { padding-top:32px; }
.results-controls { gap:9px; }
.results-controls input[type="search"] { flex-basis:100%; }
.results-controls button,.graph-tools button { background:var(--bg); border:1px solid var(--line-2); border-radius:6px; color:var(--ink-2); padding:8px 11px; cursor:pointer; font:12px var(--font-body); }
.results-controls button:hover,.graph-tools button:hover { border-color:var(--accent); color:var(--accent); }
.results-controls select { font-size:12px; }
#share-status { font-size:11px; color:var(--accent); align-self:center; }
.section-toggle { padding:18px 24px; flex-wrap:wrap; gap:9px; }
.section-toggle .sec-title { font-size:13px; flex:1; }
.section-toggle .sec-count { font-size:10px; }
.section-note { margin:0; padding:12px 24px; font-size:12px; color:var(--ink-2); background:var(--bg); border-top:1px solid var(--line); }
.row { grid-template-columns:minmax(140px,1fr) 86px minmax(220px,2fr); padding:20px 24px; }
.row-name { font-size:11px; overflow-wrap:anywhere; }
.row-doc { grid-column:1/-1; font-size:12px; }
.row-statement { font-size:11px; }
.row .proof { margin-top:8px; }
.row .proof summary { cursor:pointer; color:var(--accent); }
.row .proof code { display:block; padding:10px; margin-top:8px; background:var(--bg); line-height:1.8; }
.row-actions { display:flex; gap:12px; margin-top:8px; font:10px var(--font-body); }
.row:target { outline:1px solid var(--accent); background:var(--accent-soft); }
.empty-note { text-align:center; padding:50px 24px; }
.graph-tools { display:flex; gap:10px; padding:0 24px 18px; align-items:center; font-size:11px; color:var(--ink-3); }
.graph-tools select { background:var(--bg); color:var(--ink); border:1px solid var(--line-2); padding:8px; border-radius:6px; min-width:0; max-width:65%; }
.sim-grid { gap:18px; }
.sim-card { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--bg); }
.sim-card h3 { font-family:var(--font-body); font-size:15px; }
.sim-card p { font-size:12px; }
.implications { max-width:860px; line-height:1.9; }
.implications h3 { font-family:var(--font-body); font-weight:500; font-size:18px; margin-top:32px; }
.implications p,.implications li { font-size:14px; }
.app-footer { margin-left:236px; border-top:1px solid var(--line); }
footer { margin-left:236px; font-size:10px; }
@media(min-width:1740px) { .app-content { margin-right:auto; } }
@media(max-width:1100px) { .app-sidebar { width:205px; padding-left:12px; padding-right:12px; } .masthead,.app-content,footer { margin-left:205px; } .hero { gap:12px; } .hero h1 { font-size:43px; } .hero-actions { gap:9px; } .secondary-action { font-size:11px; } .tile { min-width:80px; } }
@media(max-width:850px) { .app-sidebar { position:sticky; top:0; width:auto; padding:10px 18px; height:auto; border-right:0; border-bottom:1px solid var(--line); background:var(--bg); } .app-brand { font-size:20px; padding:0 0 9px; } .brand-mark { height:25px; width:25px; font-size:21px; } .app-sidebar>.edition,.sidebar-bottom,.nav-key { display:none; } .app-nav { display:flex; overflow-x:auto; gap:5px; padding-bottom:4px; } .app-nav a { white-space:nowrap; padding:8px 12px; font-size:11px; } .app-nav a>span:first-child { display:none; } .masthead,.app-content,footer { margin-left:0; } .masthead { position:relative; } .masthead-inner { height:54px; padding:0 22px; } .hero { padding-top:28px; } .app-content { padding-left:22px; padding-right:22px; } .hero h1 { font-size:42px; } .hero .subtitle { font-size:13px; } .hero-footnote { font-size:8px; } }
@media(max-width:590px) { .hero { grid-template-columns:1fr; padding-top:23px; } .hero h1 { font-size:44px; } .hero .eyebrow { font-size:8px; } .hero .subtitle { font-size:14px; } .phase-lab { margin-top:27px; border:1px solid var(--line); border-radius:12px; padding:19px 12px 5px; background:var(--bg-elev); } .phase-lab svg { max-height:265px; } .phase-buttons button { width:36px; height:36px; } .hero .meta-line { margin-top:10px; font-size:8px; overflow-wrap:anywhere; } .hero .claim-strip { margin-top:10px; } .claim { font-size:9px; padding:4px; } .claim.hint { flex-basis:100%; } .starter-grid { grid-template-columns:1fr; } .starter-card { min-height:0; } .starter-card .card-number { margin-bottom:12px; } .panel-head { display:block; padding:19px; } .panel-note { margin-top:8px; } .summary { padding:0 18px 18px; } .tile { min-width:78px; } .results-controls { padding:15px; } .results-controls select { flex:1; min-width:120px; } .section-toggle { padding:17px 15px; } .section-toggle .sec-title { flex-basis:70%; } .section-toggle .grade { margin-left:25px; } .section-toggle .sec-count { margin-left:auto; } .row { grid-template-columns:1fr 90px; padding:18px; gap:12px; } .row-statement,.row-doc { grid-column:1/-1; } .row-name { font-size:12px; } .section-note { padding:14px 18px; } .graph-tools { padding:0 18px 16px; flex-wrap:wrap; } #graph-container { height:380px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
@media print { .app-sidebar,.masthead,.hero-actions,.results-controls,.phase-lab,.skip-link { display:none!important; } .app-content,footer { margin:0; } .app-ready [hidden] { display:block!important; } .panel { break-inside:avoid; } }
