/* One shared timeline remains above the physical screen and the reading fallback. */
:root { --timeline-space:142px; }
.epoch-timeline { position:fixed; top:0; left:0; right:0; z-index:50; padding:20px 40px 12px; color:#c9d3cf; background:linear-gradient(#070c13f5,#070c13db 70%,#070c1300); }
.epoch-heading,.epoch-heading>div,.epoch-controls { display:flex; align-items:center; gap:22px; }
.epoch-heading { justify-content:space-between; min-height:28px; }
.epoch-kicker { font:9px var(--mono); letter-spacing:1.8px; color:#839491; }
#epoch-title { font-size:14px; font-weight:500; letter-spacing:1px; }
#epoch-part { font:10px var(--mono); color:#aac592; }
.epoch-controls { font:10px var(--mono); }
.epoch-controls button,.epoch-controls select { border:1px solid #3a4d48; color:#c6dda9; background:#111e1f; border-radius:3px; font:10px var(--mono); padding:7px 10px; }
.epoch-quality-label,.epoch-speed-label { color:#91a39a; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.epoch-controls button:focus-visible,.epoch-controls select:focus-visible { outline:2px solid #c6e7a9; outline-offset:3px; }
#epoch-progress { min-width:44px; color:#839491; font-variant-numeric:tabular-nums; }
#epoch-range { display:block; width:100%; height:20px; margin:13px 0 0; padding:0; appearance:none; background:transparent; cursor:ew-resize; touch-action:pan-y; }
#epoch-range::-webkit-slider-runnable-track { height:2px; background:linear-gradient(to right,#b6d88d var(--epoch-progress,0%),#536666 var(--epoch-progress,0%)); }
#epoch-range::-moz-range-track { height:2px; background:#536666; }
#epoch-range::-moz-range-progress { height:2px; background:#b6d88d; }
#epoch-range::-webkit-slider-thumb { appearance:none; width:12px; height:12px; margin-top:-5px; border:2px solid #d8f4b3; background:#88a773; border-radius:50%; box-shadow:0 0 0 5px #bed9a414,0 0 14px #badf9c55; }
#epoch-range::-moz-range-thumb { width:9px; height:9px; border:2px solid #d8f4b3; background:#88a773; border-radius:50%; }
.epoch-nodes { display:flex; justify-content:space-between; }
.epoch-nodes button { position:relative; display:flex; align-items:center; gap:8px; color:#92a19e; background:none; font-size:10px; padding:6px 0; min-height:30px; }
.epoch-nodes button span:first-child { font:9px var(--mono); color:#70817f; }
.epoch-nodes button[aria-pressed="true"],.epoch-nodes button:hover { color:#d0edaf; }
.epoch-nodes button[aria-pressed="true"] span:first-child { color:#d0edaf; }
.epoch-caption { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:2px; font-size:10px; color:#80918f; }
.epoch-caption p { margin:0; }
#epoch-status { font:9px var(--mono); white-space:nowrap; }
.page-home .portal-coordinate { top:calc(var(--timeline-space) + 10px); }
.portal-footer a { pointer-events:auto; text-decoration:underline; text-underline-offset:3px; }
.page-home.comfort-reading .monitor-browser { top:var(--timeline-space); height:calc(100dvh - var(--timeline-space) - 12px); }
.page-home.comfort-reading #content-modal,.page-home.comfort-reading #search-modal { top:calc(var(--timeline-space) + 12px); max-height:calc(100dvh - var(--timeline-space) - 36px); }
.page-home[data-epoch="bigbang"] .scene-background { background:radial-gradient(ellipse at 63% 52%,#261919,transparent 65%),#070a11; }
.page-home[data-epoch="formation"] .scene-background { background:radial-gradient(ellipse at 60% 40%,#19182c,transparent 70%),#070a11; }
.page-home[data-epoch="milkyway"] .scene-background { background:radial-gradient(ellipse at 60% 50%,#151e30,transparent 70%),#060a12; }
.page-home[data-epoch="earth"] .scene-background { background:radial-gradient(ellipse at 60% 60%,#0c222d,transparent 70%),#060c14; }
.page-home[data-epoch="life"] .scene-background { background:radial-gradient(ellipse at 60% 60%,#082522,transparent 70%),#020b10; }
.page-home[data-epoch="digital"] .scene-background { background:radial-gradient(ellipse at 65% 50%,#0b251f,transparent 70%),#060e11; }
@media(max-width:1000px) {
 .epoch-timeline { padding:15px 24px 10px; }
 .epoch-kicker { display:none; }
 .epoch-heading,.epoch-heading>div,.epoch-controls { gap:12px; }
 .page-home .portal-copy--left { top:calc(var(--timeline-space) + 20px); }
}
@media(max-width:780px) {
 :root { --timeline-space:174px; }
 .epoch-heading { flex-wrap:wrap; row-gap:8px; }
 .epoch-heading>div:first-child { width:100%; min-width:0; justify-content:space-between; }
 .epoch-controls { width:100%; justify-content:flex-end; flex-wrap:wrap; }
 .epoch-heading>.epoch-controls { gap:6px; }
}
@media(max-width:640px) {
 :root { --timeline-space:180px; }
 .epoch-timeline { padding:12px 18px 10px; }
 .epoch-heading>div:first-child { flex-wrap:nowrap; gap:4px 12px; }
 #epoch-title { font-size:13px; }
 #epoch-part { flex-basis:auto; font-size:9px; }
 .epoch-quality-label { display:none; }
 .epoch-controls { gap:9px; flex-shrink:0; }
 #epoch-progress { font-size:9px; min-width:35px; }
 .epoch-controls button,.epoch-controls select { min-height:36px; padding:8px; }
 .epoch-speed-label { gap:5px; }
 .epoch-nodes button { flex-direction:column; gap:4px; min-height:42px; font-size:9px; }
 .epoch-nodes button span:first-child { font-size:8px; }
 .epoch-caption { font-size:9px; }
 .epoch-caption p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
 #epoch-status { display:none; }
 .page-home .portal-copy--left { top:calc(var(--timeline-space) + 14px); }
 .page-home .portal-copy h1 { font-size:28px; margin:12px 0 8px; }
 .page-home .portal-copy .experience-status { max-width:100%; font-size:8px; }
 .page-home.comfort-reading .monitor-browser { height:calc(100dvh - var(--timeline-space)); }
}
@media(max-height:650px) and (min-width:781px) {
 :root { --timeline-space:108px; }
 .epoch-timeline { padding-top:8px; }
 .epoch-caption { display:none; }
 .page-home .portal-copy--left { top:calc(var(--timeline-space) + 10px); }
 .page-home .portal-copy h1 { font-size:28px; margin:12px 0; }
}

/* The model camera fits this real grid cell. Text never shares its rectangle. */
@media(max-width:1000px) {
 .page-home .portal-stage { top:var(--timeline-space); bottom:auto; height:calc(100dvh - var(--timeline-space)); padding:16px 22px max(12px,env(safe-area-inset-bottom)); display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,auto) minmax(0,1fr) auto; gap:12px; }
 .page-home .portal-copy--left { position:static; transform:none; max-width:none; min-width:0; min-height:0; max-height:calc((100dvh - var(--timeline-space) - 52px) * .52); display:flex; flex-direction:column; }
 .portal-copy__intro { min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#667784 transparent; pointer-events:auto; touch-action:pan-y; }
 .page-home .portal-copy h1 { font-size:clamp(26px,5vw,36px); line-height:1.2; margin:10px 0 8px; letter-spacing:-1px; overflow-wrap:anywhere; }
 .page-home .portal-copy p { max-width:46ch; line-height:1.7; }
 .page-home .portal-actions { flex-shrink:0; margin-top:14px; gap:8px; }
 .page-home .portal-enter,.page-home .portal-read { min-height:42px; }
 .page-home .portal-copy .experience-status { flex-shrink:0; max-width:none; margin-top:8px; font-size:9px; line-height:1.5; }
 .portal-retry { flex-shrink:0; align-self:flex-start; }
 .portal-model-space { display:block; min-width:0; min-height:0; }
 .page-home .portal-coordinate { display:none; }
 .page-home .portal-footer { position:static; min-width:0; font-size:8px; letter-spacing:.5px; }
 .portal-footer span:last-child { display:none; }
}
@media(max-width:1000px) and (max-height:740px) {
 .page-home .portal-stage { padding-top:10px; gap:8px; }
 .page-home .portal-copy h1 { font-size:26px; margin:6px 0; }
 .page-home .portal-actions { margin-top:10px; }
 .page-home .portal-copy .experience-status { margin-top:6px; }
}
@media(max-width:1000px) and (orientation:landscape) {
 .page-home .portal-stage { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); grid-template-rows:minmax(0,1fr) auto; column-gap:20px; }
 .page-home .portal-copy--left { align-self:center; max-height:100%; }
 .portal-model-space { height:100%; }
 .page-home .portal-footer { grid-column:1 / -1; }
}
@media(max-width:1000px) and (max-height:540px) and (orientation:landscape) {
 .epoch-timeline { padding-top:8px; padding-bottom:6px; }
 .epoch-heading { flex-wrap:nowrap; }
 .epoch-heading>div:first-child { width:auto; flex:1; justify-content:flex-start; }
 .epoch-heading>.epoch-controls { width:auto; flex-wrap:nowrap; }
 .epoch-quality-label,#epoch-progress,.epoch-caption { display:none; }
 #epoch-range { margin-top:6px; }
 .epoch-nodes button { flex-direction:row; min-height:28px; }
 .page-home:not(.comfort-reading) .monitor-browser__chrome { min-height:30px; padding:4px 10px; }
 .page-home:not(.comfort-reading) .header .nav-wrap { min-height:38px; }
 .page-home:not(.comfort-reading) .header .contact-button { display:none; }
 .page-home:not(.comfort-reading) .monitor-browser>.footer { display:none; }
 .page-home:not(.comfort-reading) .monitor-browser main { padding:8px; }
}
