:root { color-scheme: dark; --bg:#070e0c; --panel:#0d1712; --ink:#d6efdc; --muted:#a0b8a7; --green:#72ff80; --rule:#28503b; --cyan:#39c7eb; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:13px/1.6 'Andale Mono','Lucida Console',monospace; letter-spacing:0; }
button,a,input { -webkit-tap-highlight-color:transparent; }
button { font:inherit; cursor:pointer; color:var(--ink); background:var(--panel); border:1px solid #47795a; border-radius:0; }
a { color:var(--cyan); text-decoration:none; overflow-wrap:anywhere; }
a:hover { text-decoration:underline; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
.masthead { display:flex; align-items:center; gap:28px; padding:18px 32px; border-bottom:1px solid var(--green); background:#09130f; }
.masthead img { width:180px; height:auto; }
.masthead span { font-size:11px; color:var(--muted); }
.masthead a { margin-left:auto; border:1px solid var(--green); padding:7px 14px; color:var(--green); white-space:nowrap; }
.chapters { display:grid; grid-template-columns:repeat(2,minmax(0,320px)); padding:0 32px; border-bottom:1px solid var(--rule); }
.chapters button { text-align:left; min-height:52px; padding:12px; border:0; border-right:1px solid var(--rule); background:transparent; color:var(--muted); font-size:12px; }
.chapters button[aria-selected="true"] { color:var(--green); background:#122419; box-shadow:inset 0 -3px var(--green); }
.scene-band { position:relative; width:100%; min-height:560px; height:clamp(540px,64vh,760px); overflow:hidden; border-bottom:1px solid var(--green); background:#070e0c; }
#scene { position:absolute; inset:0; }
#scene canvas { display:block; width:100%; height:100%; touch-action:none; }
#scene-status { position:absolute; top:46%; right:20%; color:var(--green); }
.scene-copy { position:absolute; top:34px; left:32px; width:min(35%,390px); pointer-events:none; }
.eyebrow { color:var(--green); font-size:10px; display:block; }
h1 { font-size:27px; line-height:1.25; margin:16px 0 12px; }
.scene-copy h2 { font-size:22px; line-height:1.35; color:var(--green); margin:0 0 18px; }
.scene-copy p { color:var(--muted); font-size:13px; max-width:36ch; }
.concept-mark { display:inline-block; font-size:9px; color:#82988a; border-left:2px solid var(--green); padding-left:10px; margin-top:12px; }
.scene-tools { position:absolute; top:20px; right:32px; display:flex; align-items:center; gap:10px; background:#070e0cdd; padding:8px; border:1px solid var(--rule); }
.scene-tools button { width:34px; height:34px; font-size:18px; color:var(--green); }
.scene-tools label { display:flex; align-items:center; gap:8px; font-size:11px; }
input { accent-color:var(--green); }
.scene-caption { position:absolute; bottom:16px; left:32px; right:32px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:10px; color:var(--muted); pointer-events:none; }
.scene-caption a { pointer-events:auto; }
.narrative { display:grid; grid-template-columns:1fr 1.6fr; gap:40px; padding:28px 32px; border-bottom:1px solid var(--rule); }
main[data-chapter="1"] .narrative { grid-template-columns:1fr; gap:24px; min-height:calc(100svh - 140px); align-content:start; padding:32px; }
main[data-chapter="1"] .scene-band, main[data-chapter="1"] .thesis p { display:none; }
.thesis .eyebrow { margin:0; font-weight:400; }
main[data-chapter="1"] .thesis .eyebrow { font-size:24px; line-height:1.35; }
main[data-chapter="1"] #chapter-points { grid-template-columns:1fr; gap:0; }
main[data-chapter="1"] #chapter-points li { display:grid; grid-template-columns:minmax(200px,25%) 1fr; gap:28px; padding:22px 0; border-top:1px solid #47795a; }
main[data-chapter="1"] #chapter-points strong { font-size:15px; }
main[data-chapter="1"] #chapter-points p { font-size:16px; line-height:1.65; overflow-wrap:anywhere; }
.thesis p { font-size:17px; line-height:1.55; margin:10px 0; max-width:45ch; }
#chapter-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0; padding:0; list-style:none; }
#chapter-points li { border-top:2px solid var(--green); padding:12px 0; }
#chapter-points strong { display:block; font-size:13px; color:var(--green); margin-bottom:7px; }
#chapter-points p { margin:0; color:var(--muted); font-size:12px; }
.stack-band { padding:28px 32px; }
.section-heading { display:flex; align-items:center; gap:20px; justify-content:space-between; }
.section-heading h2 { font-size:17px; color:var(--green); margin:0 0 18px; text-transform:uppercase; }
.section-heading span { color:var(--muted); font-size:10px; }
.layers { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.layers button { position:relative; padding:14px 12px; border-top:3px solid var(--accent); text-align:left; min-height:92px; outline:1px solid #47795a; outline-offset:3px; }
.layers button span { display:block; color:var(--accent); font-size:10px; margin-bottom:8px; }
.layers button strong { display:block; font-size:13px; overflow-wrap:anywhere; }
.layers button[aria-pressed="true"] { background:#193023; border-color:var(--accent); }
.layer-detail { display:flex; align-items:center; gap:24px; margin-top:24px; padding:20px 0; border-top:1px solid var(--rule); }
.layer-detail img { width:110px; height:52px; object-fit:contain; background:#f5faf6; padding:8px; }
.layer-detail h3 { font-size:16px; margin:0 0 8px; }
.layer-detail p { margin:0; color:var(--muted); max-width:75ch; }
.layer-detail a { margin-left:auto; white-space:nowrap; border:1px solid var(--green); padding:9px 14px; }
footer { display:flex; align-items:center; gap:24px; padding:20px 32px; border-top:1px solid var(--rule); }
footer p { margin:0; max-width:85ch; color:var(--muted); font-size:10px; }
footer a,footer button { font-size:11px; }
footer button { padding:8px 12px; white-space:nowrap; }
@media(max-width:1000px) { .masthead { flex-wrap:wrap; gap:12px; } .masthead span { display:none; } .scene-copy { width:30%; } h1 { font-size:23px; } .scene-copy h2 { font-size:19px; } .narrative { grid-template-columns:1fr; gap:16px; } .layers { grid-template-columns:repeat(3,minmax(0,1fr)); } footer { flex-wrap:wrap; } }
@media(max-width:600px) { .masthead { padding:16px; } .masthead img { width:150px; } .chapters { padding:0 12px; grid-template-columns:1fr; } .chapters button { font-size:10px; min-height:42px; } .scene-band { height:800px; } .scene-copy { top:20px; left:16px; width:calc(100% - 32px); } .scene-copy h2 { font-size:20px; margin-bottom:6px; } .scene-copy p { max-width:none; font-size:12px; } h1 { margin:10px 0; } .concept-mark { margin-top:3px; } .scene-tools { top:270px; right:16px; } .scene-caption { left:16px; right:16px; bottom:14px; flex-direction:column; align-items:flex-start; font-size:9px; } .narrative,.stack-band { padding:24px 16px; } #chapter-points { grid-template-columns:1fr; gap:6px; } .layers { grid-template-columns:repeat(2,minmax(0,1fr)); } .layer-detail { flex-wrap:wrap; gap:16px; } .layer-detail a { margin-left:0; } footer { padding:20px 16px; } }
@media(max-width:600px) { main[data-chapter="1"] .narrative { padding:24px 16px; min-height:0; } main[data-chapter="1"] #chapter-points li { grid-template-columns:1fr; gap:8px; padding:20px 0; } main[data-chapter="1"] #chapter-points p { font-size:14px; } }
@media print { :root { --bg:white; --ink:black; --muted:#333; --green:#17502b; --rule:#ccc; } .masthead,.chapters,.scene-band,.layers,.layer-detail a,footer a,footer button { display:none; } .narrative { display:block; } #chapter-points { display:block; } .print-chapter { break-inside:avoid; border-bottom:1px solid #aaa; padding:20px 0; } }