:root{--cinematic-copy-size:clamp(33px,5.2vw,70px)}
#earForeground,#arrivalEarth,#celestial{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}
#celestial{z-index:11}#arrivalEarth{z-index:13}#earForeground{z-index:40}
body.join-globe-hidden #protoAmbient,body.join-globe-hidden #protoStage,body.join-globe-hidden #protoJourneyProgress{visibility:hidden!important}
body.sky-owns #protoAmbient{visibility:hidden!important}
body.proto-loading #celestial,body.proto-loading #arrivalEarth,body.proto-loading #earForeground,body.proto-loading #headIndex{visibility:hidden}
#protoLabel,#protoHint,#protoBeatWelcome,#protoBeatArchive{display:none!important}
#protoStage{transition:none}
#divine{position:fixed;z-index:45;left:9%;top:48%;font-size:var(--cinematic-copy-size);font-weight:400;letter-spacing:-.05em;color:#e2dfd6;pointer-events:none;opacity:0}
/* Heading-free editorial targets. Camera/scroll never move this type. */
#headIndex{position:fixed;z-index:45;left:7.5vw;top:50%;width:min(33vw,460px);transform:translateY(-50%);display:grid;grid-template-columns:1fr;gap:2px 0;pointer-events:none;font:400 clamp(28px,3.2vw,49px)/1.12 Arial,sans-serif;color:#f2f2ef}
#headIndex a{position:relative;left:auto;top:auto;display:flex;align-items:center;justify-content:flex-start;min-width:48px;min-height:48px;height:clamp(48px,6.6vh,64px);padding:2px 0;box-sizing:border-box;pointer-events:auto;opacity:0;text-decoration:none;color:inherit;letter-spacing:-.045em;transform:none;text-shadow:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#headIndex[inert] a{pointer-events:none}
#headIndex a:hover,#headIndex a:focus-visible{color:#fff;text-shadow:none;cursor:pointer}
#headIndex a:focus-visible{outline:1px solid #fff;outline-offset:4px}
@media(min-aspect-ratio:11/10) and (max-height:650px){
 #headIndex{width:43vw;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:4px;font-size:clamp(24px,3.3vw,36px)}
 #headIndex a{height:48px}
}
@media(max-aspect-ratio:11/10){
 #headIndex{left:8vw;top:clamp(0px,54svh,calc(100svh - 216px - env(safe-area-inset-bottom,0px)));width:84vw;transform:none;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:4px;font-size:clamp(26px,7.2vw,35px)}
 #headIndex a{height:clamp(48px,6.2svh,56px);min-width:48px;padding:2px 0}
}

#destinationResult{position:fixed;z-index:350;inset:auto 8% 12%;padding:24px;background:#07090bea;border:1px solid #ffffff26;font:14px/1.5 system-ui;color:#dfd8ce}
#destinationResult a{color:inherit}#destinationResult button{padding:9px;color:inherit;background:#272728;border:1px solid #666}
#destinationResult[hidden]{display:none}
body.departing{overflow:hidden}body.departing #protoMenuBtn,body.departing #protoHeader a{pointer-events:none}
body.proto-menu-open #headIndex,body.proto-menu-open #divine{visibility:hidden}
/* The ear canvas sits outside the original menu stacking context. Keep the
   retained cinema layers from covering the menu; closing restores their state. */
body.proto-menu-open #earForeground,body.proto-menu-open #arrivalEarth,body.proto-menu-open .heart-copy{visibility:hidden!important}
#reviewToggle{position:fixed;bottom:14px;left:16px;z-index:300;background:#111c;border:1px solid #ffffff26;padding:8px 12px;font:11px system-ui;color:#e8d9c3;cursor:pointer}
#reviewPanel{position:fixed;left:16px;bottom:54px;width:min(430px,calc(100vw - 32px));max-height:76vh;overflow:auto;box-sizing:border-box;z-index:300;background:#0e0e0ef5;border:1px solid #ffffff26;padding:16px;color:#e8dfd2;font:12px/1.5 system-ui}
#reviewPanel[hidden]{display:none}#reviewPanel p{margin:0 0 12px}
#reviewPanel button,#reviewPanel input,#reviewPanel select{color:inherit;background:#282624;border:1px solid #ffffff30;padding:5px 8px;font:inherit}
#reviewPanel button{cursor:pointer;margin:3px 2px}#reviewPanel label{display:flex;gap:8px;align-items:center;margin:7px 0}
#reviewPanel input[type=number]{width:80px}#joinStatus{display:block;margin:9px 0}
#reviewPanel pre{font:10px/1.5 monospace;white-space:pre-wrap;max-height:180px;overflow:auto}
body.proto-menu-open #reviewToggle,body.proto-menu-open #reviewPanel,body.proto-loading #reviewToggle,body.proto-loading #reviewPanel{visibility:hidden}
@media(max-aspect-ratio:11/10){
 #divine{left:8%;top:53%;max-width:84vw}
 
 
 
 
 
 
}

.heart-copy{position:fixed;z-index:45;pointer-events:none;letter-spacing:-.055em;opacity:0;font-weight:400;color:#e2dfd6}
.heart-copy h1,.heart-copy p{margin:0;font-weight:400}.welcome{left:8%;top:35%}.welcome h1{font-size:clamp(38px,4.7vw,76px);line-height:1.06}.welcome p{font-size:clamp(14px,1.25vw,18px);letter-spacing:-.015em;margin-top:30px;color:#b7b8b3}.love{left:10%;top:46%;font-size:clamp(30px,3.6vw,54px);max-width:38vw;line-height:1.12}.passage{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:90%;font-size:var(--cinematic-copy-size);line-height:1.06;color:#f2f0e8;text-shadow:0 0 5px #fff7,0 0 24px #eee3,0 2px 32px #000}.cue{bottom:6%;left:8%;font-size:12px;letter-spacing:0}
@media(max-aspect-ratio:11/10){:root{--cinematic-copy-size:clamp(33px,9vw,49px)}.welcome{top:16%;left:8%;right:8%}.welcome h1{font-size:clamp(30px,8.9vw,45px)}.welcome p{font-size:14px;margin-top:18px}.love{left:8%;right:8%;top:16%;max-width:none;font-size:clamp(32px,10.25vw,40px)}}

.heart-copy,#divine,#headIndex{font-family:Arial,sans-serif}
#earthCopy{top:44%}
#assetStatus{position:fixed;z-index:250;bottom:55px;left:16px;right:16px;padding:12px;background:#101216eb;color:#ddd;font:13px/1.5 Arial,sans-serif}#assetStatus[hidden]{display:none}#assetStatus button,#assetStatus a{font:inherit;color:inherit;margin-left:12px}

body.spatial-chrome #protoHeader{visibility:hidden!important;pointer-events:none!important}
#headIndex a.selected{color:#fff;font-weight:400;text-shadow:none}
#skipArchive{position:fixed;z-index:220;left:18px;top:-100px;color:#eee;background:#14181c;padding:12px;font:14px Arial,sans-serif}#skipArchive:focus-visible{top:18px}
#protoBeatBegin{top:79%!important}#protoBeatBegin span{font-family:Arial,sans-serif;font-size:clamp(27px,3.2vw,44px)!important;font-weight:400;letter-spacing:-.04em;color:#e8e4da;text-shadow:0 1px 12px #0009}
@media (max-aspect-ratio: 82/100){#protoSphere{top:46%!important}#protoBeatBegin{top:73%!important}}

#startupError{position:fixed;z-index:1000;inset:auto 8% 12%;padding:24px;background:#101216;color:#eee;font:16px/1.5 Arial,sans-serif}#startupError[hidden]{display:none}#startupError a,#startupError button{font:inherit;color:inherit}
body.review-clean #reviewToggle{display:none}
/* The inherited globe stylesheet defines a crosshair production cursor. */
body.proto-active{cursor:auto!important}
#protoToTop,#protoExitFade{display:none!important}
#archiveDestination{position:fixed;z-index:55;bottom:6%;left:0;right:0;text-align:center;font:18px Arial,sans-serif}
#archiveDestination[hidden],#galleryLatency[hidden]{display:none}
#archiveDestination a,#galleryLatency a{color:#e6e3dc;text-decoration:none}
#galleryLatency{position:fixed;z-index:170;bottom:9%;left:8%;right:8%;color:#e8e3db;font:16px Arial,sans-serif;text-shadow:0 1px 15px #000}
#galleryLatency a{margin-left:18px}
body.proto-reduced #protoStage,body.proto-reduced #protoCinematicSpacer{display:block!important}
body.proto-reduced #protoStage{opacity:1!important}
body.proto-reduced #protoJourneyProgress{display:none!important}

/* Editorial chrome overrides the inherited amber/glass presentation only.
   Retained menu nodes still own open/close, scroll lock and keyboard trapping. */
body.stride-nav #protoHeader{padding:calc(20px + env(safe-area-inset-top,0px)) 7.5vw 0;opacity:0;visibility:hidden!important;pointer-events:none;transition:opacity .25s ease;transform:none;filter:none}
body.stride-nav.nav-chrome-visible #protoHeader{opacity:1;visibility:visible!important}
body.stride-nav.proto-menu-open #protoHeader{visibility:hidden!important}
body.stride-nav #protoHeader a,body.stride-nav .proto-menu-brand,body.stride-nav .proto-menu-email{font-family:Arial,sans-serif;color:#f3f3f0!important;text-shadow:none!important;letter-spacing:-.04em;box-shadow:none;border:0;border-radius:0;background:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;text-decoration:none;transform:none!important;filter:none!important}
body.stride-nav #protoHeader .proto-header-brand{padding:0;min-height:48px;font-size:clamp(27px,2.4vw,38px);line-height:1;opacity:1!important;letter-spacing:-.055em}
body.stride-nav .proto-header-controls{opacity:1!important}
body.stride-nav #protoMenuBtn,body.stride-nav #protoMenuClose{width:auto;min-width:94px;height:48px;min-height:48px;padding:0;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;font:400 19px/1 Arial,sans-serif;letter-spacing:-.025em;color:#f3f3f0;background:none!important;border:0;border-radius:0;box-shadow:none;text-shadow:none;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transform:none!important;filter:none!important;transition:opacity .2s ease;touch-action:manipulation}
body.stride-nav .nav-index-sign{font-size:27px;line-height:1;min-width:18px;text-align:center;font-weight:300}
body.stride-nav.nav-index-secondary #protoMenuBtn{opacity:.48}
body.stride-nav.nav-index-secondary #protoMenuBtn:hover,body.stride-nav.nav-index-secondary #protoMenuBtn:focus-visible{opacity:1}
body.stride-nav #protoHeader a:focus-visible,body.stride-nav #protoMenuBtn:focus-visible,body.stride-nav #protoMenuClose:focus-visible,body.stride-nav #protoMenu a:focus-visible{outline:1px solid #fff;outline-offset:4px}
body.stride-nav #protoMenu{padding:calc(110px + env(safe-area-inset-top,0px)) 7.5vw calc(90px + env(safe-area-inset-bottom,0px));align-items:center;justify-content:flex-start;background:#07090bf5;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none;transition:opacity .22s ease,visibility .22s ease}
body.stride-nav #protoMenu::before{display:none;content:none}
body.stride-nav .proto-menu-brand{top:calc(20px + env(safe-area-inset-top,0px));left:7.5vw;display:flex;align-items:center;min-height:48px;font-size:clamp(27px,2.4vw,38px);line-height:1;letter-spacing:-.055em}
body.stride-nav #protoMenuClose{top:calc(20px + env(safe-area-inset-top,0px));right:7.5vw}
body.stride-nav .proto-menu-panel{width:min(700px,100%);margin:0}
body.stride-nav .proto-menu-nav{text-align:left;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;row-gap:0}
body.stride-nav .proto-menu-nav li+li{margin:0}
body.stride-nav .proto-menu-nav a{display:flex;align-items:center;min-height:52px;padding:5px 0;font:400 clamp(30px,3.5vw,52px)/1.2 Arial,sans-serif;letter-spacing:-.045em;text-align:left;color:#f3f3f0!important;text-shadow:none!important;transform:none!important;transition:opacity .18s ease,color .18s ease;transition-delay:0s!important}
body.stride-nav .proto-menu-nav a:hover,body.stride-nav .proto-menu-nav a:focus-visible{color:#fff!important;letter-spacing:-.045em;text-shadow:none!important}
body.stride-nav .proto-menu-email{left:7.5vw;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:none!important;font:400 15px/1.4 Arial,sans-serif;letter-spacing:-.015em}
/* Fine feedback stays inside the original link boxes; mailto stays native. */
body.stride-nav .proto-menu-email{padding:12px 0;min-height:44px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px;text-decoration-thickness:1px;transition:text-decoration-color .18s ease,text-shadow .18s ease,color .18s ease;touch-action:manipulation}
body.stride-nav .proto-menu-email:hover,body.stride-nav .proto-menu-email:focus-visible,body.stride-nav .proto-menu-email:active{color:#fff!important;text-decoration-color:rgba(239,247,255,.85);text-shadow:0 0 13px rgba(205,226,255,.42)!important}
body.stride-nav .proto-menu-email:focus-visible{outline:1px solid rgba(225,236,255,.65);outline-offset:5px}
body.stride-nav .proto-menu-nav a{ text-decoration:underline;text-decoration-color:transparent;text-underline-offset:8px;text-decoration-thickness:1px;transition:opacity .18s ease,color .18s ease,text-decoration-color .18s ease,text-shadow .18s ease}
body.stride-nav .proto-menu-nav a:hover,body.stride-nav .proto-menu-nav a:focus-visible,body.stride-nav .proto-menu-nav a:active{text-decoration-color:rgba(239,247,255,.75);text-shadow:0 0 16px rgba(205,226,255,.22)!important}

/* Photo study: one local perspective, preserving the retained DOM photographs.
   Live composition sets card/radius/label positions from the current viewport. */
body.photo-orbit-study #protoStage{perspective:none}
body.photo-orbit-study #protoSphereField{transform:none!important}
body.photo-orbit-study .proto-fragment{border-radius:5px;background:#090b10;box-shadow:0 9px 24px rgba(0,0,0,.22)}
body.photo-orbit-study .proto-fragment::after{background:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(227,239,255,.70),inset 0 1px 4px rgba(212,232,255,.22);opacity:var(--photo-glint,.16);will-change:opacity;transition:opacity .25s linear}
body.photo-orbit-study.proto-reduced .proto-fragment::after{will-change:auto;transition:none}
@media(prefers-reduced-motion:reduce){body.photo-orbit-study .proto-fragment::after{will-change:auto;transition:none}}
body.photo-orbit-study #protoSphere{top:var(--photo-center-y)!important}
body.photo-orbit-study #protoBeatBegin{top:var(--photo-label-y)!important}
@media(max-aspect-ratio:11/10){
 body.stride-nav #protoHeader{padding:calc(16px + env(safe-area-inset-top,0px)) 8vw 0}
 body.stride-nav #protoHeader .proto-header-brand,body.stride-nav .proto-menu-brand{font-size:28px}
 body.stride-nav #protoMenuBtn,body.stride-nav #protoMenuClose{font-size:17px;gap:16px;min-width:85px}
 body.stride-nav #protoMenu{padding:calc(100px + env(safe-area-inset-top,0px)) 8vw calc(80px + env(safe-area-inset-bottom,0px))}
 body.stride-nav .proto-menu-brand{left:8vw;top:calc(16px + env(safe-area-inset-top,0px))}
 body.stride-nav #protoMenuClose{right:8vw;top:calc(16px + env(safe-area-inset-top,0px))}
 body.stride-nav .proto-menu-nav{column-gap:24px}
 body.stride-nav .proto-menu-nav a{min-height:52px;font-size:clamp(27px,7.2vw,35px)}
 body.stride-nav .proto-menu-email{left:8vw}
}
@media(prefers-reduced-motion:reduce){
 body.stride-nav #protoHeader,body.stride-nav #protoMenu,body.stride-nav .proto-menu-nav a{transition:none}
}
body.stride-nav.nav-reduced #protoHeader,body.stride-nav.nav-reduced #protoMenu,body.stride-nav.nav-reduced .proto-menu-nav a{transition:none}

/* One retained field, promoted above sculpture/photos only while travelling.
   Screen blending removes its black canvas backing; coloured streaks cover the
   outgoing object. At rest it returns behind the photographic globe. */
body.warp-foreground #celestial{z-index:42;mix-blend-mode:screen}
#protoGallery,#protoCinematicSpacer,#protoJourneyProgress{display:none!important}
#protoBeatBegin span{color:#f5f5f1!important}

html{scrollbar-width:none}html::-webkit-scrollbar{display:none}

/* Input is anchored by the host during authored travel; retained layers reverse. */
html,body{scroll-behavior:auto;overscroll-behavior-y:none}

/* Feedback lives inside the fixed target rectangle, preserving hit areas and
   selected-label warp focus. Hover, keyboard focus and first-tap activation. */
#headIndex .index-label{position:relative;display:inline-block;transition:transform 180ms ease-out,opacity 120ms ease-out}
#headIndex .index-label::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;opacity:.8;transition:transform 220ms cubic-bezier(.2,.65,.3,1)}
#headIndex a:hover .index-label,#headIndex a:focus-visible .index-label{transform:translateX(4px)}
#headIndex a:hover .index-label::after,#headIndex a:focus-visible .index-label::after,#headIndex a.selected .index-label::after{transform:scaleX(1)}
#headIndex a:active .index-label{transform:translateX(1px);opacity:.72}
#headIndex a.selected .index-label{transform:none;opacity:1}
@media(prefers-reduced-motion:reduce){#headIndex .index-label,#headIndex .index-label::after{transition:none}}

body.head-hover{cursor:grab}body.head-grabbing{cursor:grabbing!important;user-select:none}#earForeground:focus-visible{outline:1px solid #f2f2ef;outline-offset:-5px}

body.photo-spherical-study .proto-fragment{background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;border-radius:4px}
body.photo-spherical-study .proto-fragment::after{content:none!important;box-shadow:none!important;background:none!important}
body.photo-spherical-study .proto-fragment img{border:0!important;box-shadow:none!important;object-fit:cover}
#photoSphereHit{position:fixed;border-radius:50%;pointer-events:none;touch-action:pan-y pinch-zoom;cursor:grab;z-index:10000;outline:none}
#photoSphereHit:focus-visible{outline:1px solid rgba(230,240,255,.55);outline-offset:8px}
body.globe-grabbing,body.globe-grabbing #photoSphereHit{cursor:grabbing}
