:root { color-scheme: dark; font-family: Arial, Helvetica, sans-serif; background: #02040d; color: #fffaf3; }
* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin: 0; }
body { overflow: hidden; isolation: isolate; }
.scene { position: relative; width: 100%; height: 100vh; height: 100svh; height: 100dvh; overflow: hidden; background: #02040d; }
.scene-picture, .scene-image, .scene-links { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.scene-image { object-fit: cover; object-position: center bottom; }
.scene-links { overflow: hidden; }
.scene-links.portrait { display: none; }
.portal { cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; }
.portal polygon { fill: transparent; stroke: transparent; stroke-width: 2; vector-effect: non-scaling-stroke; }
.portal:focus-visible polygon { stroke: #fffbe5; stroke-width: 3; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (orientation: portrait) {
  .scene-links.landscape { display: none; }
  .scene-links.portrait { display: block; }
}

.bridge-spectrum{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s;background:linear-gradient(120deg,#f18c9115,#f2ad7613,#ecdb8212,#91cba414,#86bee812,#a3a5ee14,#c19be715)}
.spectrum-on .bridge-spectrum{opacity:1}.bridge-wash-toggle{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));right:20px;min-height:44px;padding:10px 15px;color:#eee6f5;border:1px solid #cbb4e04d;border-radius:24px;background:#080712b8;font:11px Arial,sans-serif;cursor:pointer}.bridge-wash-toggle[hidden]{display:none}.bridge-wash-toggle:focus-visible{outline:2px solid #e1c8f2;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.bridge-spectrum{transition:none}}

.bridge-memory{position:absolute;left:24px;right:24px;bottom:max(24px,env(safe-area-inset-bottom));margin:0;color:#efe6ecd9;text-shadow:0 1px 10px #080612,0 1px 3px #080612;font-size:12px;line-height:1.6;letter-spacing:.035em;pointer-events:none}
.bridge-memory[hidden]{display:none}
.scene:has(.bridge-wash-toggle:not([hidden])) .bridge-memory{bottom:78px}
@media(prefers-reduced-motion:no-preference){.bridge-memory:not([hidden]){animation:remember 1.5s ease-out both}@keyframes remember{from{opacity:0}to{opacity:1}}}

@media(prefers-reduced-motion:no-preference){body.spectrum-first-return .bridge-spectrum{animation:remember-spectrum 4s ease-in-out both}@keyframes remember-spectrum{0%,100%{opacity:0}45%{opacity:1}}}
@media(prefers-reduced-motion:reduce){body.spectrum-first-return .bridge-spectrum{animation:none}}

.journey-invitation{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:5;width:min(94%,760px);padding:14px 20px;border:1px solid #e0b96780;border-radius:18px;background:#110c23e8;color:#fff4dc;text-align:center;backdrop-filter:blur(12px)}.journey-invitation p{margin:0 0 10px;font:16px Georgia,serif}.journey-invitation a{display:inline-block;color:inherit;padding:10px;font:14px system-ui}.journey-invitation a:first-of-type{background:#e5c386;color:#171020;border-radius:8px;text-decoration:none}.journey-invitation a:focus-visible{outline:3px solid white}@media(max-width:600px){.journey-invitation{padding:10px}.journey-invitation p{font-size:14px}.journey-invitation a{font-size:12px;padding:9px}}

.handoff-fallback{position:fixed;top:1rem;left:1rem;right:1rem;z-index:30;padding:1rem;background:#111522e8;color:#f7deab;text-align:center;border:1px solid #c6a467;border-radius:12px}.handoff-fallback a{color:inherit}
