/* Cinematic presentation; orientation policy remains owned by portrait-only.js. */
body.is-loading{overflow:hidden}
.loading-screen{--loading-space:clamp(24px,4vw,64px);position:fixed;inset:0;z-index:1000;background:#121212;color:#fff7e7;isolation:isolate;overflow:clip}
.loading-screen[hidden]{display:none}
.loading-screen.is-returning:not([hidden]){display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:var(--sand,#eee6d9);color:var(--ink,#22211d);font-size:14px}
.loading-screen.is-leaving{background-color:var(--sand,#eee6d9);background-image:var(--grain,none);background-blend-mode:soft-light;pointer-events:none}
.loading-slides,.loading-top,.loading-bottom{transition:opacity .45s ease}
.loading-screen.has-artwork.is-leaving .loading-slides,.loading-screen.is-leaving .loading-top,.loading-screen.is-leaving .loading-bottom{opacity:0}
.loading-slides,.loading-slide{position:absolute;inset:0}
.loading-slides{opacity:0}
.loading-screen.has-artwork .loading-slides{opacity:1}
.loading-slide{opacity:0;transition:opacity 1.4s ease;will-change:opacity;pointer-events:none;background:#121212}
.loading-slide.is-current,.loading-slide.is-previous{opacity:1}
.loading-art{--art-x:0%;--art-y:0%;--art-start:1.015;--art-end:1.045;position:relative;width:100%;height:100%;display:block;object-fit:cover;object-position:center;transform:translate(var(--art-x),var(--art-y)) scale(var(--art-start));transform-origin:center}
.loading-art>img,.loading-feature-backdrop>img{display:block;width:100%;height:100%;object-fit:inherit;object-position:inherit}
.has-started>.loading-art{animation:loading-pan 5.5s linear both;will-change:transform}
.loading-feature-backdrop{display:none;position:absolute;inset:0;object-fit:cover;object-position:center;filter:blur(12px);opacity:.55;transform:scale(1.06)}
.loading-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#06141590 0%,transparent 28%,transparent 53%,#0610118a 78%,#061011ee 100%);opacity:0}
.loading-screen.has-artwork .loading-slide::after{opacity:1}
.loading-slide--platforms::after{background:linear-gradient(180deg,#06141565,transparent 24%,transparent 70%,#061011d9)}
.loading-top{position:absolute;inset:0 0 auto;display:flex;align-items:center;padding:var(--loading-space);padding-top:max(var(--loading-space),env(safe-area-inset-top));padding-left:max(var(--loading-space),env(safe-area-inset-left));padding-right:max(var(--loading-space),env(safe-area-inset-right))}
.loading-group-mark{width:84px;height:104px;object-fit:contain;filter:brightness(0) invert(1);transform-origin:center;animation:loading-breathe 4.8s cubic-bezier(.45,0,.55,1) infinite;will-change:transform;opacity:.95}
.loading-sound{position:absolute;top:max(clamp(20px,3.2vw,62px),env(safe-area-inset-top));right:max(clamp(20px,3.2vw,62px),env(safe-area-inset-right));flex:none;cursor:pointer}
.loading-sound-hint{position:absolute;top:calc(max(clamp(20px,3.2vw,62px),env(safe-area-inset-top)) + 53px);right:max(clamp(20px,3.2vw,62px),env(safe-area-inset-right));font-size:12px;line-height:1.4;text-shadow:0 1px 8px #000;white-space:nowrap}
.loading-sound:active{transform:scale(.94)}
.loading-sound,.loading-skip{touch-action:manipulation}
.loading-bottom{position:absolute;inset:auto 0 0;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:var(--loading-space);padding-bottom:max(var(--loading-space),env(safe-area-inset-bottom));padding-left:max(var(--loading-space),env(safe-area-inset-left));padding-right:max(var(--loading-space),env(safe-area-inset-right))}
.loading-caption{min-width:0;overflow-wrap:anywhere;text-wrap:balance;font-size:clamp(28px,4vw,56px);font-weight:800;letter-spacing:-.045em;line-height:1.12;text-shadow:0 2px 18px #0005}
.loading-screen:not(.has-artwork) .loading-caption,.loading-screen:not(.has-artwork) .loading-progress,.loading-screen:not(.has-artwork) .loading-sound{visibility:hidden}
.loading-entry{display:flex;flex-direction:column;align-items:flex-end;gap:16px;flex:none;width:clamp(208px,18vw,280px)}
.loading-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
.loading-status{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.4;text-align:right}
.loading-status-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.is-error .loading-status-text{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal}
.loading-progress{display:flex;gap:7px;width:100%;height:3px}
.loading-progress-segment{flex:1;height:100%;overflow:hidden;border-radius:2px;background:#fff7e738}
.loading-progress-fill{display:block;width:100%;height:100%;background:#f5cc87;transform:scaleX(0);transform-origin:left center}
.has-artwork .loading-progress-fill{animation:loading-progress 5.5s linear var(--progress-delay,0ms) forwards;will-change:transform}
.loading-screen[data-presentation-skipped] .loading-progress-fill{animation-play-state:paused}
.loading-skip{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:9px 14px;border:1px solid #fff7e742;border-radius:999px;background:#06101155;color:#fff7e7;backdrop-filter:blur(10px);font:inherit;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.loading-skip:hover{background:#061011aa;border-color:#f5cc87}
.loading-skip:active{transform:scale(.97)}
.loading-skip:disabled{opacity:.6;cursor:default}
.loading-skip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.is-error .loading-skip{display:none}
.loading-spinner{display:inline-block;width:15px;height:15px;border:2px solid #ffffff40;border-top-color:#f5cc87;border-radius:50%;animation:loading-spin 1s linear infinite;flex:none;transition:border-color .25s ease,background-color .25s ease}
.is-complete .loading-spinner{border-color:#f5cc87;animation:none}
.is-error .loading-spinner{display:none}
.loading-retry{min-width:154px;min-height:48px;padding:12px 28px;border:1px solid #f5cc87;border-radius:3px;color:#142427;background:#f5cc87;font-size:16px;font-weight:700}
.loading-retry[hidden]{display:none}
.loading-screen button:focus-visible{outline:3px solid #fff7e7;outline-offset:4px}
.loading-screen .loading-sound:focus-visible{outline:2px solid #f5cc87;outline-offset:4px}
.orientation-blocked .loading-screen *{animation-play-state:paused}
@keyframes loading-spin{to{transform:rotate(360deg)}}
@keyframes loading-breathe{0%,100%{transform:scale(1);opacity:.94}50%{transform:scale(1.055);opacity:1}}
@keyframes loading-pan{from{transform:translate(var(--art-x),var(--art-y)) scale(var(--art-start))}to{transform:translate(var(--art-x),var(--art-y)) scale(var(--art-end))}}
@keyframes loading-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:600px){
 .loading-bottom{display:block}
 .loading-entry{align-items:flex-start;width:100%;margin-top:20px;gap:14px}
 .loading-status{justify-content:flex-start;text-align:left}
 .loading-caption{font-size:clamp(24px,8vw,32px)}
 .loading-skip{min-height:40px;padding:8px 12px;gap:7px;font-size:12px}
}
@media(max-aspect-ratio:4/5){
 .loading-slide>.loading-feature-backdrop{display:block;filter:blur(8px);opacity:.7}
 .loading-slide>.loading-art{--art-x:-50%;--art-y:-50%;--art-start:1;--art-end:1.025;position:absolute;left:50%;top:50%;width:min(100vw,57.143svh);height:auto;aspect-ratio:4/7;object-fit:contain;mask-image:linear-gradient(transparent,#000 7%,#000 91%,transparent)}
 .loading-slide::after{background:linear-gradient(180deg,#06141565,transparent 27%,transparent 66%,#06101165 82%,#061011ed)}
}
@media(max-height:500px){.loading-screen{--loading-space:18px}.loading-group-mark{width:67px;height:83px}.loading-caption{font-size:clamp(22px,4vw,30px)}.loading-entry{margin-top:8px}}
@media(max-height:360px){.loading-screen{--loading-space:12px}.loading-group-mark{width:50px;height:62px}.loading-bottom{display:flex;gap:12px}.loading-entry{margin-top:0}.loading-status{font-size:12px}.loading-caption{font-size:22px}}
@media(prefers-reduced-motion:reduce){.loading-slide,.loading-screen,.loading-slides,.loading-top,.loading-bottom{transition:none}.loading-screen .loading-art,.loading-spinner,.loading-group-mark{animation:none}.loading-group-mark{opacity:.95;will-change:auto}}
