/* Pure vector entry scenes; no external textures, sound, network or GPU context. */
.module-entry{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 38%,#192935,#0d1118 67%);color:#e7ddcb;overflow:hidden;z-index:2}
.module-entry-scene{display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(100% - 48px,540px);padding:30px 0 max(80px,env(safe-area-inset-bottom));text-align:center;min-width:0}
.module-entry .entry-code{font:11px/1.7 var(--font-index);letter-spacing:.12em;color:#bba27b;margin-top:26px}.module-entry h2{font:500 clamp(21px,4.8vw,30px)/1.7 var(--font-title);letter-spacing:.06em;margin:14px 0 9px}.module-entry p{font:13px/1.8 var(--font-body);color:#a6b7c5;margin:0;min-height:2em;overflow-wrap:anywhere}
.entry-globe{width:240px;max-width:60vw;height:auto;overflow:visible;fill:none;stroke:#9ebcbd;stroke-width:.8}.entry-orbit{stroke:#bda57b;stroke-dasharray:2 12;opacity:.5;animation:entry-orbit var(--entry-duration,1800ms) linear both;transform-origin:120px 120px}.entry-sphere{stroke:#adcacb;stroke-width:1.2;fill:#27414d28}.entry-longitudes{stroke:#8eafb4;opacity:.65;transform-origin:120px 120px;animation:entry-turn var(--entry-duration,1800ms) ease-in-out both}.entry-land{fill:#8cafb72a;stroke:#abc2bc;stroke-width:.9}.entry-nodes circle{fill:#dbc38e;stroke:none;animation:entry-node 1s ease-in-out infinite alternate}.entry-nodes circle:nth-child(2n){animation-delay:200ms}.entry-nodes path{stroke:#c5ae7c88;stroke-dasharray:3 6}
.entry-scroll{width:230px;height:250px;max-width:65vw;position:relative;perspective:800px;animation:entry-scroll-reveal calc(var(--entry-duration,1800ms)*.7) cubic-bezier(.2,.7,.2,1) both;transform-origin:center}.entry-scroll-paper{position:absolute;inset:7px 10px;padding:28px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:repeating-linear-gradient(95deg,#a9956906 0 2px,transparent 3px 11px),linear-gradient(110deg,#282a2b,#35312a 50%,#262a2d);border:1px solid #a9916755;box-shadow:inset 5px 0 14px #080b1288,inset -5px 0 14px #080b1288,0 10px 35px #0006;color:#d1bd98}.entry-scroll-paper span{font:10px/1.5 var(--font-index);letter-spacing:.1em}.entry-scroll-paper b{font:500 30px/1.5 var(--font-title);letter-spacing:.18em;writing-mode:vertical-rl}.entry-scroll-paper small{font:10px var(--font-body);color:#aa9c86}.entry-scroll-seal{position:absolute;right:25px;bottom:40px;border:2px double #9b5a5266;width:34px;height:38px;rotate:-8deg}.entry-roller{position:absolute;left:0;right:0;height:12px;border:1px solid #a78c5b70;background:linear-gradient(#6f6453,#2c2c2d 55%,#5e5546);z-index:2;box-shadow:0 3px 8px #0008}.entry-roller.top{top:0}.entry-roller.bottom{bottom:0}
.entry-scroll+.entry-code{margin-top:22px}.entry-scroll~h2{font-size:25px}.entry-scroll~p{color:#b7ad9b}.entry-scroll .entry-scroll-paper>*{animation:entry-ink calc(var(--entry-duration,1800ms)*.85) ease-out both}
body[data-module-entry] .transition-layer{z-index:100}body[data-module-entry] .transition-control{z-index:102;bottom:calc(24px + env(safe-area-inset-bottom,0px));right:24px;left:auto;max-width:calc(100vw - 48px)}body[data-module-entry] .transition-control>span{font-size:11px}
@keyframes entry-turn{from{transform:rotateY(-65deg) rotate(-8deg)}to{transform:rotateY(295deg) rotate(-8deg)}}
@keyframes entry-orbit{from{transform:rotate(0)}to{transform:rotate(160deg)}}
@keyframes entry-node{from{opacity:.25}to{opacity:.95}}
@keyframes entry-scroll-reveal{0%{transform:scaleY(.06) rotateX(12deg);opacity:.1}30%{opacity:1}100%{transform:scaleY(1) rotateX(0);opacity:1}}
@keyframes entry-ink{0%,35%{opacity:0}100%{opacity:1}}
@media(max-width:360px){.module-entry-scene{width:calc(100% - 40px)}.module-entry h2{font-size:22px;letter-spacing:.025em}.entry-scroll{height:210px;width:200px}.module-entry .entry-code{font-size:10px}}
@media(orientation:landscape) and (max-height:500px){.module-entry-scene{padding-block:20px;display:grid;grid-template-columns:150px minmax(0,1fr);column-gap:24px;text-align:left;align-items:center}.module-entry .entry-globe,.module-entry .entry-scroll{grid-column:1;grid-row:1/4;width:150px;height:150px}.module-entry .entry-code,.module-entry h2,.module-entry p{grid-column:2;margin:0}.entry-scroll-paper{gap:8px;padding:12px}.entry-scroll-paper b{font-size:20px}}
@media(prefers-reduced-motion:reduce){.module-entry *{animation:none!important}}
.reduce-motion .module-entry *{animation:none!important}

/* Mobile navigation owns one surface. No reflowed copies of old page text. */
@media(max-width:1023px){
 body[data-mobile-transition] .transition-layer{z-index:1400;contain:layout paint;top:var(--visual-viewport-top,0px);height:var(--available-viewport-height,100dvh);bottom:auto}
 .mobile-route-veil{position:absolute;inset:0;background:linear-gradient(140deg,#111820f5,#11151cf0);pointer-events:none}
 body[data-mobile-transition] .transition-control{z-index:1402;left:20px;right:20px;bottom:calc(var(--visual-bottom-offset,0px) + var(--shell-bottom-height,72px) + 14px);max-width:none;transform:none;justify-content:space-between;gap:12px;font-size:12px;padding:12px 16px;letter-spacing:0}
 body[data-mobile-transition] .transition-control button{min-height:44px;min-width:88px;font:13px/1.5 var(--font-body);padding:8px 12px;border:1px solid #bba77e55}
 body[data-mobile-transition] .transition-control button:disabled{opacity:.65;cursor:wait}
 body[data-mobile-transition][data-module-entry] .transition-control{bottom:calc(var(--visual-bottom-offset,0px) + 16px + env(safe-area-inset-bottom,0px));align-items:center}
 body[data-mobile-transition][data-module-entry] .transition-control>span{font-size:10px;line-height:1.6;max-width:14em}
 body[data-mobile-transition] .module-entry{background:radial-gradient(ellipse at 50% 35%,#20303a,#10151c 68%)}
 body[data-mobile-transition] .module-entry-scene{box-sizing:border-box;width:min(calc(100% - 40px),540px);height:100%;padding:calc(24px + env(safe-area-inset-top,0px)) 0 calc(112px + env(safe-area-inset-bottom,0px));gap:0;justify-content:center}
 .entry-fiction{font:10px/1.7 var(--font-body);color:#acb4bc;letter-spacing:.02em;margin-bottom:22px}
 body[data-mobile-transition] .entry-globe{width:210px;max-width:58vw;flex-shrink:0}
 body[data-mobile-transition] .entry-code{margin-top:16px;font-size:10px}
 body[data-mobile-transition] .module-entry h2{font-size:clamp(21px,5vw,26px);line-height:1.6;min-height:2em;margin:12px 0}
 .entry-stages{list-style:none;margin:0;padding:0;display:grid;gap:10px;min-height:94px;width:100%;max-width:29em}
 .entry-stages li{font:12px/1.8 var(--font-body);color:#becbd3;opacity:0;transform:translateY(4px);transition:opacity 350ms,transform 350ms}
 .entry-stages li.is-shown{opacity:1;transform:none}
 body[data-mobile-transition] [data-entry-phase]{font-size:11px;line-height:1.8;min-height:3.6em;margin-top:14px;max-width:28em;color:#d0bf9f}
 body[data-mobile-transition] .entry-scroll{height:210px;width:200px;flex-shrink:0}
 .entry-folio,.entry-book{position:relative;flex-shrink:0;width:220px;height:180px;perspective:800px;margin-block:10px 25px;isolation:isolate}
 .entry-folio>i{position:absolute;inset:16px 0 0;background:linear-gradient(130deg,#424039,#282b31);border:1px solid #b9a37b66;transform-origin:bottom;animation:entry-folio-open 2s ease both;z-index:2}
 .entry-folio>div,.entry-book>div{position:absolute;inset:0 12px;padding:26px 18px;display:grid;align-content:center;gap:18px;background:#28323a;border:1px solid #bca98666;box-shadow:0 14px 24px #0005}
 .entry-folio span,.entry-folio small,.entry-book span{font:10px/1.7 var(--font-body);color:#bac2c5}.entry-folio b,.entry-book b{font:500 27px/1.5 var(--font-title);color:#dac8a6}
 .entry-book>i{position:absolute;inset:0;background:#262930;border:1px solid #bca98644;rotate:-4deg;box-shadow:0 12px 24px #0005}
 .entry-book>div{transform-origin:left;animation:entry-book-open 1600ms ease both}
 .entry-book em{height:1px;background:#b9a37b55;transform-origin:left;animation:entry-ink-line 1500ms ease both}.entry-book em:nth-of-type(2){width:80%;animation-delay:300ms}.entry-book em:nth-of-type(3){width:55%;animation-delay:600ms}
 .entry-relief-mark{position:relative;width:180px;height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #aa746044;box-shadow:inset 0 0 40px #903e2422;margin-bottom:24px;animation:entry-relief-lock 1000ms ease both}
 .entry-relief-mark>b{font:50px/1.8 var(--font-index);color:#ba9c80}.entry-relief-mark>span{font:11px/1.8 var(--font-body);color:#b9ac9c}.entry-relief-mark>i{position:absolute;inset:16px;border:1px dashed #ae8a6366}
 .module-entry--network:before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 7px,#9fb5c409 8px 9px);animation:entry-scan 4s linear both;opacity:.4}
 .module-entry.is-skipped *{animation-play-state:paused!important}.module-entry.is-skipped .entry-stages li{opacity:1;transform:none}
}
@keyframes entry-folio-open{0%,15%{transform:rotateX(0)}to{transform:rotateX(-115deg);opacity:.25}}
@keyframes entry-book-open{from{transform:rotateY(-70deg);opacity:0}to{transform:rotateY(0);opacity:1}}
@keyframes entry-ink-line{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes entry-relief-lock{0%{opacity:0;transform:scale(1.04)}65%{opacity:1;transform:scale(.99)}to{opacity:1;transform:scale(1)}}
@keyframes entry-scan{from{background-position:0 -30px}to{background-position:0 30px}}
@media(max-width:1023px) and (max-height:650px){
 body[data-mobile-transition] .module-entry-scene{gap:0;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:108px}.entry-fiction{margin-bottom:8px}
 body[data-mobile-transition] .entry-globe{width:120px}body[data-mobile-transition] .entry-scroll{height:130px;width:150px}
 .entry-folio,.entry-book{height:130px;width:180px;margin-bottom:15px}.entry-relief-mark{height:130px;margin-bottom:10px}
 .entry-stages{min-height:58px;gap:4px}.entry-stages li{font-size:11px;line-height:1.5}body[data-mobile-transition] .module-entry h2{margin-block:8px;font-size:21px;min-height:1.4em;line-height:1.4}
 body[data-mobile-transition] .entry-code{margin-top:8px}body[data-mobile-transition] [data-entry-phase]{font-size:10px;line-height:1.6;min-height:3.2em;margin-top:8px}
}
@media(max-width:1023px) and (orientation:landscape) and (max-height:500px){
 body[data-mobile-transition] .module-entry-scene{display:grid;grid-template-columns:140px minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;gap:6px 24px;text-align:left;padding:16px 0 100px}
 .entry-fiction{grid-column:1/-1;margin:0}body[data-mobile-transition] .entry-globe,body[data-mobile-transition] .entry-scroll,.entry-folio,.entry-book,.entry-relief-mark{grid-column:1;grid-row:2/6;width:130px;height:130px;margin:0}
 body[data-mobile-transition] :is(.entry-code,h2,.entry-stages,[data-entry-phase]){grid-column:2;margin:0;min-height:0}body[data-mobile-transition] .entry-stages{gap:4px}.entry-fiction{font-size:9px}
}
