:root { color-scheme: dark; --ink:#edf3ec; --muted:#b7ccc8; --surface:#081a20; --gold:#efd18a; --line:#789a995c; --button-ink:#17241f; }
html[data-theme="light"] { color-scheme:light; --ink:#17312b; --muted:#355952; --surface:#f2f7f2; --gold:#dbbb63; --line:#4e797970; --button-ink:#19271e; }
* { box-sizing:border-box; }
body { margin:0; background:var(--surface); color:var(--ink); font:15px/1.55 Arial,sans-serif; }
[hidden] { display:none !important; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; color:inherit; cursor:pointer; }
button:focus-visible,a:focus-visible { outline:3px solid #7be5da; outline-offset:4px; }
a { color:inherit; }
button svg,a svg { width:19px; height:19px; flex:none; }
.arrival-threshold { min-height:100svh; position:relative; overflow:hidden; isolation:isolate; }
.arrival-atlas { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-4; }
.arrival-shade { position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,#020d149e,transparent 65%),linear-gradient(0deg,#020d14e0,transparent 65%); }
.threshold-bar { position:relative; z-index:8; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:max(14px,env(safe-area-inset-top)) 24px 12px; color:#edf3ec; }
.threshold-signal { display:flex; align-items:center; gap:8px; font-size:12px; }
.threshold-signal svg { color:var(--gold); width:21px; height:21px; }
.controls { display:flex; gap:5px; }
.icon-button { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; padding:0; background:var(--surface); border:1px solid var(--line); border-radius:5px; color:var(--ink); }
.icon-button:hover { border-color:var(--gold); }
.arrival-copy { position:relative; z-index:5; width:min(530px,48%); padding:24px 0 30px; margin:clamp(220px,40vh,430px) 0 0 6%; color:#edf3ec; }
.eyebrow { margin:0 0 10px; color:#85ddcf; font:700 10px/1.4 Arial,sans-serif; text-transform:uppercase; }
h1,h2 { font-family:Georgia,serif; font-weight:500; letter-spacing:0; }
h1 { margin:0; font-size:42px; line-height:1.05; max-width:450px; }
.thesis { color:#efd18a; font:18px/1.4 Georgia,serif; margin:14px 0 8px; }
.intro { max-width:400px; font-size:13px; color:#c4d5d3; margin:0 0 22px; }
.entry-actions { display:flex; flex-wrap:wrap; align-items:center; gap:15px; }
.primary,.secondary { min-height:46px; padding:12px 18px; display:inline-flex; justify-content:center; align-items:center; gap:9px; border:1px solid transparent; border-radius:5px; text-decoration:none; font:700 13px/1.4 Arial,sans-serif; }
.primary { background:var(--gold); color:var(--button-ink); }
.secondary { border-color:var(--line); background:var(--surface); color:var(--ink); }
.text-link { font-size:12px; text-decoration:none; display:inline-flex; gap:5px; align-items:center; }
.text-link:hover { text-decoration:underline; }
.veiled-destinations { display:flex; flex-wrap:wrap; gap:12px; border-top:1px solid #94afa74a; margin-top:25px; padding-top:15px; }
.veiled-destinations button { display:flex; align-items:center; gap:6px; min-height:44px; padding:6px 0; border:0; background:none; font-size:11px; color:#b0c6c3; }
.veiled-destinations svg { width:16px; height:16px; }
.arrival-cartographer { position:absolute; z-index:1; inset:9% 3% 4% auto; width:44%; height:auto; margin:0; pointer-events:none; }
.arrival-cartographer-media { position:absolute; inset:0; }
.arrival-cartographer figcaption { position:absolute; right:7%; bottom:3%; display:grid; color:#e6f1ee; font:12px/1.5 Georgia,serif; }
.arrival-cartographer figcaption span { font:9px/1.4 Arial,sans-serif; color:#a1c4c5; }
.key-orbit { position:absolute; z-index:0; inset:14% 36% auto 2%; height:28vh; pointer-events:none; }
.key-orbit img { position:absolute; width:90px; height:140px; object-fit:contain; left:50%; top:40%; filter:drop-shadow(0 0 7px #77c8e344); }
dialog { width:min(420px,calc(100% - 32px)); max-height:calc(100svh - 32px); overflow:auto; padding:38px 28px 28px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); text-align:center; }
dialog::backdrop { background:#02090dde; }
.dialog-close { position:absolute; top:7px; right:7px; border:0; background:none; }
dialog h2 { font-size:29px; line-height:1.2; margin:8px 0 12px; }
dialog p:not(.eyebrow) { color:var(--muted); font-size:13px; margin:0 0 22px; }
dialog .primary { width:100%; }
.claimed-key { width:135px; height:170px; object-fit:contain; filter:drop-shadow(0 0 18px #a0e2ee65); }
.veil-symbol { width:50px; height:50px; color:var(--gold); margin-bottom:20px; }
.chamber { position:fixed; inset:0; background:#020609; isolation:isolate; }
.room-image,#entry-film { width:100%; height:100%; position:absolute; inset:0; object-fit:contain; }
.room-image { object-fit:cover; }
.chamber-controls { position:absolute; z-index:5; top:max(10px,env(safe-area-inset-top)); left:max(12px,env(safe-area-inset-left)); right:max(12px,env(safe-area-inset-right)); display:flex; justify-content:space-between; gap:10px; }
.film-loading { position:absolute; left:50%; top:55%; transform:translate(-50%,-50%); color:#d3ded9; padding:12px 20px; background:#04111dd9; border-radius:4px; font-size:13px; text-align:center; }
.room-controls { position:absolute; inset:0; pointer-events:none; }
.room-controls button { position:absolute; pointer-events:auto; display:flex; align-items:center; justify-content:center; gap:8px; padding:10px 13px; min-height:44px; background:#061318df; color:#e0eee8; border:1px solid #809fa270; border-radius:5px; font-size:12px; }
.room-keyhole { top:52%; left:50%; transform:translate(-50%,-50%); flex-direction:column; }
.archive-button { bottom:max(16px,env(safe-area-inset-bottom)); right:max(16px,env(safe-area-inset-right)); }
.rotate-cover { position:absolute; inset:0; z-index:10; background:#061318f7; color:#edf3ec; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:24px; }
.rotate-cover>svg { width:54px; height:54px; color:#85ddcf; }
.rotate-cover h2 { max-width:320px; font-size:31px; line-height:1.15; }
.rotate-cover p { font-size:14px; color:#b7ccc8; }
.no-script { position:fixed; inset:auto 10px 10px; background:var(--surface); padding:16px; z-index:20; }
body.in-chamber { overflow:hidden; }
html[data-theme="light"] .arrival-shade { background:linear-gradient(0deg,#061318eb,transparent 70%); }
@media (min-width:1400px) { .arrival-copy { margin-left:8%; } }
@media (max-width:760px) and (orientation:portrait) {
  .threshold-bar { padding:12px; }
  .threshold-signal { font-size:10px; }
  .arrival-atlas { object-position:48% 25%; }
  .arrival-cartographer { top:65px; right:0; width:70%; height:390px; }
  .arrival-cartographer-media { overflow:hidden; height:270px; }
  .arrival-cartographer-r11-model { height:380px; }
  .arrival-cartographer figcaption { display:none; }
  .key-orbit { inset:155px 35% auto 0; height:150px; }
  .key-orbit img { width:60px; height:95px; }
  .arrival-copy { width:auto; margin:300px 22px 0; padding-top:18px; }
  h1 { font-size:35px; max-width:360px; }
  .intro { font-size:13px; }
  .entry-actions { gap:14px; }
  .veiled-destinations { justify-content:space-between; gap:8px; }
}
@media (max-height:560px) and (orientation:landscape) {
  .threshold-bar { padding:8px 16px; }
  .arrival-copy { margin:25px 0 0 4%; width:58%; padding-bottom:12px; }
  h1 { font-size:30px; max-width:none; }
  .thesis { font-size:15px; margin:8px 0 5px; }
  .intro { font-size:12px; margin-bottom:12px; max-width:430px; }
  .veiled-destinations { margin-top:12px; padding-top:5px; }
  .arrival-cartographer { top:40px; width:35%; right:2%; height:calc(100% - 45px); }
  .arrival-cartographer figcaption { display:none; }
  .key-orbit { inset:100px 1% auto 58%; height:150px; opacity:.5; }
  .key-orbit img { width:40px; height:65px; opacity:.6; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }

/* Copyright and creator credit: quiet, readable in both appearances. */
.threshold-footer { padding:16px max(20px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); color:var(--muted); background:var(--surface); border-top:1px solid var(--line); text-align:center; font-size:11px; line-height:1.6; }
.threshold-footer p { margin:3px 0; overflow-wrap:anywhere; }

/* Footer placement revision: September 30, 2026. */
.threshold-footer { display:flex; justify-content:space-between; align-items:flex-end; gap:12px 32px; text-align:left; }
.threshold-footer p { margin:0; overflow-wrap:anywhere; text-align:left; }
.threshold-footer p:last-child { text-align:right; }
@media (max-width:640px) {
  .threshold-footer { flex-direction:column; align-items:center; gap:6px; text-align:center; }
  .threshold-footer p, .threshold-footer p:last-child { width:100%; text-align:center; }
}
