:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Sans",sans-serif;color:#e8eae5;background:#050c0e}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}#world-frame{position:fixed;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .65s ease}body.ready #world-frame{opacity:1}#distance{height:720vh}header,footer{position:fixed;left:2.4vw;right:2.4vw;display:flex;align-items:center;justify-content:space-between;z-index:4;pointer-events:none}header{top:max(28px,env(safe-area-inset-top))}header a{pointer-events:auto;padding:8px 0;font-size:11px;letter-spacing:.08em}.brand{font-weight:650;letter-spacing:.17em}#skip span{margin-left:13px}header a:focus-visible{outline:1px solid #dac89f;outline-offset:8px}footer{bottom:max(23px,env(safe-area-inset-bottom));font-size:9px;letter-spacing:.10em;color:#a5aaa6}#scroll-cue{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center;white-space:nowrap;font-size:10px;letter-spacing:.06em}#scroll-cue i{width:30px;height:1px;background:#b7a780;transform-origin:left}#menu-heading{position:fixed;top:15%;left:0;right:0;text-align:center;z-index:2;pointer-events:none;opacity:0;transform:translateY(12px)}#menu-heading>span{font-size:10px;letter-spacing:.28em;color:#ad9d7b}#menu-heading p{font-size:17px;font-weight:400;letter-spacing:.2em;margin:15px 0}#services{position:fixed;inset:0;z-index:3;pointer-events:none}.service-hit{position:absolute;inset:0;pointer-events:auto;touch-action:pan-y;cursor:pointer;outline:0}.service-hit[hidden]{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#loading{position:fixed;inset:0;display:grid;place-content:center;gap:25px;background:#050c0e;z-index:7;transition:opacity .5s;pointer-events:none}#loading span{font-size:13px;font-weight:600;letter-spacing:.2em}#loading i{height:1px;background:linear-gradient(90deg,transparent,#93846b,transparent);animation:breathe 1.8s ease-in-out infinite}body.ready #loading{opacity:0}#loading[hidden]{display:none}@keyframes breathe{50%{opacity:.25}}#fallback{position:fixed;inset:0;z-index:8;background:radial-gradient(at 70% 30%,#2b2317,#050c0e 65%);display:flex;flex-direction:column;gap:25px;justify-content:center;align-items:center}#fallback[hidden]{display:none}#fallback p{letter-spacing:.15em;margin-bottom:20px}#fallback a{min-width:240px;padding:25px;border-bottom:1px solid #827154}
@media(max-width:700px),(max-aspect-ratio:19/20){header,footer{left:20px;right:20px}header{top:max(17px,env(safe-area-inset-top))}header a{font-size:10px}footer{font-size:8px;bottom:max(19px,env(safe-area-inset-bottom))}footer>span:last-child{display:none}#scroll-cue{left:auto;right:0;transform:none;font-size:9px;gap:9px}#scroll-cue i{width:16px}#menu-heading{top:10%}#menu-heading>span{font-size:8px}#menu-heading p{font-size:13px;letter-spacing:.15em;margin:9px 0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* The two worlds carry the composition; keep the space above them quiet. */
#menu-heading{display:none}

/* The forthcoming world remains part of the scene, without a navigation target. */
.service-hit[aria-disabled="true"]{pointer-events:none;cursor:default}
#fallback .service-unavailable{min-width:240px;padding:25px;border-bottom:1px solid #827154;color:#c1c5c2}
#fallback .service-unavailable span{font-size:11px;letter-spacing:.12em;margin-left:16px;color:#a5aaa6}

/* Touch gestures hit a real parent-document layer above the iframe, rather
   than depending on native gesture pass-through of a composited subframe. */
#touch-scroll-surface{display:none;position:fixed;inset:0;z-index:2;background:transparent;pointer-events:auto;touch-action:pan-y pinch-zoom}
/* Catch an early gesture even before the iframe can announce controlReady. */
body.intro-waiting #touch-scroll-surface{display:block}
@media (hover:none) and (pointer:coarse){
 html{touch-action:pan-y pinch-zoom}
 #world-frame{pointer-events:none}
 #touch-scroll-surface{display:block}
 #distance{height:360vh;height:calc(var(--touch-viewport-height,100vh) + var(--touch-scroll-distance,260vh))}
 .service-hit{touch-action:pan-y pinch-zoom}
}

/* The selected optical world owns the final transition. */
body.service-entering footer{opacity:0;transition:opacity .28s ease}

/* One finger strokes the settled mineral surface; outside it remains native
   scroll. Allow pinch zoom and keep the header above this clipped hit plane. */
#itoman-play-surface{position:fixed;inset:0;z-index:3;background:transparent;touch-action:pinch-zoom;pointer-events:auto;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
#itoman-play-surface[hidden]{display:none}

/* Compact navigation supplements native vertical scrolling and swipe. */
#service-orbit-nav{position:fixed;right:max(24px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;gap:10px}
#service-orbit-nav[hidden]{display:none}
#service-orbit-nav button{width:44px;height:44px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:#a7b4b8;font:400 12px/1 -apple-system,BlinkMacSystemFont,sans-serif;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
#service-orbit-nav button[aria-current="true"]{color:#f2f4f2;border-color:#99b7c05c;background:#18272f80}
#service-orbit-nav button:hover{background:#24384180;color:white}
#service-orbit-nav button:focus-visible{outline:2px solid #9cd7df;outline-offset:3px}
@media(max-width:700px),(max-aspect-ratio:19/20){#service-orbit-nav{top:auto;bottom:max(80px,calc(env(safe-area-inset-bottom) + 60px));right:50%;transform:translateX(50%);flex-direction:row;gap:8px}}
