/* Global body-level display: actual viewport dimensions, independent of the
   Hub room's 1920px fitted canvas and its rewritten responsive breakpoints. */
.eden-optic { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; overflow:hidden; background:transparent; color:#e5f4f0; font-family:var(--font-body,system-ui,sans-serif); }
.eden-optic::backdrop { background:rgba(2,10,15,.32); backdrop-filter:blur(4px) saturate(.72); }
.optic-stage { position:relative; display:grid; place-items:center; width:100%; height:100%; overflow:hidden; isolation:isolate; }
.optic-glass,.optic-haze,.optic-acquisition { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.optic-glass { z-index:-3; animation:optic-acquire .58s cubic-bezier(.2,.75,.25,1) both; }
.optic-reflections { fill:none; stroke:#62dedb; stroke-width:1.2; stroke-opacity:.35; filter:drop-shadow(0 0 5px #53d9e580); }
.optic-haze { z-index:-2; background:radial-gradient(ellipse 42% 65% at center,rgba(3,13,18,.89) 8%,rgba(3,13,18,.65) 52%,transparent 100%); }
.optic-acquisition { z-index:-1; border-top:1px solid #94ffff60; background:linear-gradient(180deg,transparent,rgba(110,245,231,.035)); transform:translateY(-100%); animation:optic-sweep 1.2s ease-out .1s both; }
.optic-edge-code { position:absolute; top:50%; writing-mode:vertical-rl; font:500 10px/1.5 ui-monospace,monospace; letter-spacing:3px; color:#5c9eac; opacity:.65; display:flex; align-items:center; gap:20px; transform:translateY(-50%); }
.optic-edge-code i { width:1px; height:60px; background:linear-gradient(transparent,#6ec6d0,transparent); }
.optic-edge-left { left:30px; transform:translateY(-50%) rotate(180deg); }.optic-edge-right { right:30px; }
.optic-projection { width:min(730px,calc(100% - 80px)); max-height:calc(100dvh - 120px); display:flex; flex-direction:column; animation:optic-project .5s ease-out .15s both; text-shadow:0 1px 7px #000a; }
.optic-source { display:flex; align-items:center; gap:13px; color:#9ad9d9; text-transform:uppercase; font-size:14px; font-weight:600; letter-spacing:2.5px; padding-bottom:24px; border-bottom:1px solid #94dfdb26; }
.optic-signal { width:6px; height:6px; border-radius:50%; background:#a0fff0; box-shadow:0 0 10px #70fbe9a0; flex:none; }
.optic-address { margin-left:auto; color:#709caa; font:12px ui-monospace,monospace; letter-spacing:1.3px; }
.optic-heading { padding:26px 0 22px; flex:none; }
.optic-channel { color:#7599a7; font:500 11px/1.5 ui-monospace,monospace; letter-spacing:1.9px; text-transform:uppercase; margin-bottom:10px; }
.optic-heading h1 { font-family:var(--font-heading,system-ui,sans-serif); font-size:42px; line-height:1.12; font-weight:500; letter-spacing:.02em; margin:0; color:#effef4; text-shadow:0 0 24px #75f6dd2a; outline:none; }
.optic-copy-scroll { min-height:0; overflow:clip; flex:none; }
.optic-copy { min-height:190px; font-size:26px; line-height:1.55; letter-spacing:.005em; font-weight:400; color:#d5e6e5; white-space:pre-line; }
.optic-copy { display:block; min-height:0!important; overflow:clip; overflow-wrap:anywhere; }.optic-print { display:block; position:relative; min-width:0; }.optic-word { visibility:hidden; }.optic-word.is-received { visibility:visible; }
.optic-cursor { position:absolute; width:7px; height:1em; background:#afffe6; opacity:.7; pointer-events:none; animation:optic-cursor 1s step-end infinite; }
.optic-record { border-left:2px solid #d5b98290; padding:4px 0 4px 18px; margin-top:29px; opacity:0; transition:opacity .35s; }
.optic-record>span { display:block; color:#a29885; font:11px/1.4 ui-monospace,monospace; letter-spacing:1.4px; text-transform:uppercase; margin-bottom:6px; }
.optic-record strong { color:#e0d0ad; font-weight:400; font-size:17px; line-height:1.5; }
.optic-ready.optic-last-page .optic-record { opacity:1; }.optic-ready .optic-cursor { display:none; }
.optic-footer { display:flex; gap:16px; align-items:center; justify-content:space-between; flex:none; padding-top:32px; }
.optic-reception { color:#64868f; font:11px/1.4 ui-monospace,monospace; letter-spacing:1px; }
.optic-actions { display:flex; gap:10px; flex-wrap:wrap; }
.optic-button { border:1px solid #78cbc870; background:linear-gradient(120deg,#13343ccc,#12232bcc); color:#d8fff4; border-radius:3px 13px 3px 13px; padding:13px 21px; min-height:50px; min-width:176px; font:500 16px/1.4 system-ui,sans-serif; letter-spacing:.02em; cursor:pointer; transition:background .2s,box-shadow .2s,border-color .2s; display:flex; justify-content:space-between; align-items:center; gap:25px; }
.optic-button:hover,.optic-button:focus-visible { background:#20464e; border-color:#c6fff0; box-shadow:0 0 0 3px #8bede924,0 0 30px #6cdac914; outline:none; }.optic-button:active { background:#2d5e61; }
.optic-secondary { min-width:auto; border-color:#52727870; background:transparent; color:#91b5bd; }
.optic-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.optic-leaving .optic-projection { animation:optic-project-out .24s ease-in both; }.optic-leaving .optic-glass { animation:optic-close .28s ease-in both; }.optic-leaving::backdrop { background:transparent; backdrop-filter:blur(0); transition:all .28s; }
.eden-optic[data-aspect="portrait"] .optic-projection { width:calc(100% - 44px); max-height:calc(100dvh - 64px); }
.eden-optic[data-aspect="portrait"] .optic-source { font-size:11px; letter-spacing:1.5px; padding-bottom:17px; gap:9px; }.eden-optic[data-aspect="portrait"] .optic-address { font-size:10px; }
.eden-optic[data-aspect="portrait"] .optic-heading { padding:21px 0 18px; }.eden-optic[data-aspect="portrait"] .optic-channel { font-size:9px; letter-spacing:1px; }.eden-optic[data-aspect="portrait"] h1 { font-size:30px; }
.eden-optic[data-aspect="portrait"] .optic-copy { font-size:20px; line-height:1.52; min-height:220px; }.eden-optic[data-aspect="portrait"] .optic-record { margin-top:23px; }.eden-optic[data-aspect="portrait"] .optic-record strong { font-size:15px; }
.eden-optic[data-aspect="portrait"] .optic-footer { padding-top:24px; flex-wrap:wrap; gap:13px; }.eden-optic[data-aspect="portrait"] .optic-actions { width:100%; }.eden-optic[data-aspect="portrait"] .optic-primary { flex:1; }.eden-optic[data-aspect="portrait"] .optic-edge-code { display:none; }
.eden-optic[data-aspect="portrait"] .optic-haze { background:radial-gradient(ellipse 90% 70% at center,#031016e8 5%,#031016a8 65%,transparent); }
.eden-optic[data-aspect="short"] .optic-projection { width:min(740px,calc(100% - 92px)); max-height:calc(100dvh - 32px); }.eden-optic[data-aspect="short"] .optic-source { font-size:10px; padding-bottom:10px; }.eden-optic[data-aspect="short"] .optic-heading { padding:13px 0 11px; }.eden-optic[data-aspect="short"] .optic-channel { font-size:9px; margin-bottom:5px; }.eden-optic[data-aspect="short"] h1 { font-size:27px; }.eden-optic[data-aspect="short"] .optic-copy { min-height:0; font-size:18px; line-height:1.45; }.eden-optic[data-aspect="short"] .optic-record { margin-top:16px; }.eden-optic[data-aspect="short"] .optic-record strong { font-size:14px; }.eden-optic[data-aspect="short"] .optic-footer { padding-top:15px; }.eden-optic[data-aspect="short"] .optic-button { min-height:46px; padding:10px 16px; font-size:14px; }
.optic-static * { animation:none!important; transition:none!important; }.optic-static .optic-acquisition,.optic-static .optic-cursor { display:none; }.optic-static .optic-projection { opacity:1; transform:none; }
@keyframes optic-acquire { from { opacity:0; transform:scale(1.045); } to { opacity:1; transform:scale(1); } }
@keyframes optic-project { from { opacity:0; transform:translateY(7px); filter:blur(2px); } to { opacity:1; transform:none; filter:blur(0); } }
@keyframes optic-project-out { to { opacity:0; transform:translateY(-5px); filter:blur(2px); } }
@keyframes optic-close { to { opacity:0; transform:scale(1.02); } }
@keyframes optic-sweep { to { transform:translateY(105%); } }
@keyframes optic-cursor { 50% { opacity:0; } }

/* Pagination is manual; every page keeps its text, record and controls in the
   same reserved space during reception. No scrollbar is part of this display. */
.optic-source { flex:none; }
.optic-print { overflow:clip; }
.optic-footer { min-height:82px; box-sizing:border-box; }
.optic-actions { flex-wrap:nowrap; }
.optic-previous { min-width:44px; width:44px; min-height:44px; padding:8px; justify-content:center; font-size:24px; }
.optic-previous:disabled { opacity:.3; cursor:default; }
.optic-primary { width:190px; }
.optic-reception { min-width:120px; }
.eden-optic[data-aspect="portrait"] .optic-footer { min-height:101px; }
.eden-optic[data-aspect="portrait"] .optic-primary { min-width:0; width:auto; padding:12px; gap:10px; font-size:14px; white-space:nowrap; }
.eden-optic[data-aspect="portrait"] .optic-secondary { padding:12px; font-size:14px; }
.eden-optic[data-aspect="short"] .optic-footer { min-height:61px; }
.eden-optic[data-aspect="short"] .optic-edge-code { display:none; }
@media(max-height:540px) and (max-width:599px) {
  .eden-optic[data-aspect="portrait"] .optic-heading { padding:12px 0; }
  .eden-optic[data-aspect="portrait"] .optic-source { padding-bottom:10px; }
  .eden-optic[data-aspect="portrait"] .optic-copy { font-size:18px; line-height:1.45; }
  .eden-optic[data-aspect="portrait"] .optic-record { margin-top:12px; }
  .eden-optic[data-aspect="portrait"] .optic-footer { padding-top:12px; min-height:86px; gap:8px; }
  .eden-optic[data-aspect="portrait"] .optic-projection { max-height:calc(100dvh - 32px); }
}
