.time-travel-law{margin:16px 0;padding:12px 14px;border-left:2px solid #e2c687;background:#d9b8660b;text-align:left;color:#cbd4df;font-size:11px;line-height:1.7}.time-travel-law strong{display:block;margin-bottom:5px;color:#f0dba7;font-size:12px}.time-travel-law span{display:block}
body.game-shell .merlin-intro .intro-controls{display:flex!important}
body.game-shell .merlin-intro .intro-playback span{display:inline}
.intro-cinematic{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.has-cinematic .intro-cinematic{opacity:1}
.has-cinematic .intro-backdrop{z-index:1;inset:0;filter:none;animation:none;background:linear-gradient(90deg,transparent 43%,#07101b55 56%,#07101bc9 100%)}
.has-cinematic .intro-stage{display:block;inset:80px 5% 120px;max-width:none;z-index:2}
.has-cinematic .intro-portrait{visibility:hidden}
.has-cinematic .intro-story{position:absolute;left:58%;right:0;top:50%;translate:0 -50%;max-width:650px}
.has-cinematic::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,#06101ce6,transparent 24%)}
dialog.merlin-intro{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#080f1a;color:#eee6d7;box-shadow:none;font-family:var(--font)}.merlin-intro::backdrop{background:#02050a}
.intro-backdrop{position:absolute;inset:-3%;background:linear-gradient(90deg,#06101c40,#07101bd9 72%),linear-gradient(#07101b77,#080e1bee),url('assets/castle-hall.png') center/cover;filter:blur(2px);animation:introBackdrop 35s ease-in-out infinite alternate}
.intro-header{position:absolute;top:28px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:center;z-index:3}.intro-header>span{color:#c0a875;font-size:10px;letter-spacing:2.8px}.intro-skip{border:1px solid #a78e5744;padding:8px 12px;color:#a7b6ca;background:#0a1525a6;border-radius:3px;font-size:11px}.intro-skip:hover{color:#f2dfb5;border-color:#d2b677}.intro-header kbd,.intro-controls kbd{height:18px;font-size:8px;background:transparent}
.intro-stage{position:absolute;inset:80px 7% 120px;display:grid;grid-template-columns:minmax(260px,.95fr) minmax(330px,1fr);gap:5vw;align-items:center;max-width:1400px;margin:auto}.intro-portrait{position:relative;min-height:280px;aspect-ratio:1;max-height:68vh;width:100%;--speech:0;animation:introFloat 6s ease-in-out infinite;transform-origin:50% 60%}.intro-aura{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(#e6bb4e29,#3e678b15 48%,transparent 70%);box-shadow:0 0 70px #d8b76510;animation:introAura 5s ease-in-out infinite alternate}.intro-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 30px #000b);transform:translateY(calc(var(--speech)*-2px)) scaleY(calc(1 + var(--speech)*.012));transform-origin:50% 40%;transition:opacity .09s linear}.intro-neutral{opacity:calc(1 - var(--speech)*.82)}.intro-speaking{opacity:calc(var(--speech)*.82)}.intro-blink{opacity:0;transition:opacity .05s}.is-blinking .intro-neutral,.is-blinking .intro-speaking{opacity:0}.is-blinking .intro-blink{opacity:1}.intro-portrait.is-paused,.intro-portrait.is-paused .intro-aura{animation-play-state:paused}.intro-portrait-caption{position:absolute;left:0;right:0;bottom:-10px;color:#e1cc9a;font:italic 24px var(--serif);text-align:center;text-shadow:0 2px 10px #000}
.intro-story{position:relative;max-width:620px;padding:22px 0}.intro-chapter{display:block;color:#a28f67;font-size:9px;font-weight:600;letter-spacing:3px;margin-bottom:18px}.intro-story h2{font:500 clamp(32px,3.5vw,57px)/1.06 var(--serif);letter-spacing:-.5px;color:#f3e8d1;margin:0 0 24px;text-wrap:balance}.intro-headline{border-left:2px solid #d8b974;padding-left:17px;color:#dfc994;font-size:clamp(12px,1.25vw,17px);line-height:1.6;margin-bottom:21px}.intro-subtitle{font-size:clamp(14px,1.3vw,18px);line-height:1.9;color:#bec9d7;margin:0;text-wrap:pretty}
.merlin-intro[data-cue="paradox"] .intro-story h2{color:#f3d399}.merlin-intro[data-cue="paradox"] .intro-headline{border-color:#d9987f;color:#f0c6a9}.merlin-intro[data-cue="paradox"] .intro-aura{background:radial-gradient(#e1b45230,#b5795f16 50%,transparent 70%)}
.intro-controls{position:absolute;bottom:33px;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;gap:25px;z-index:3;margin:0;padding:0;border:0}.intro-controls button{font-size:11px;color:#d9c695;background:#172335a3;border:1px solid #ad925477;border-radius:3px;padding:10px 15px;min-width:120px}.intro-controls button:hover{background:#273249;border-color:#e6ce96}.intro-playback{display:flex;align-items:center;gap:13px;flex:1;max-width:620px;color:#8194ae;font-size:10px;font-variant-numeric:tabular-nums}.intro-playback progress{display:block;width:100%;height:3px;border:0;accent-color:#ddc28b;background:#374051}.intro-playback progress::-webkit-progress-bar{background:#374051}.intro-playback progress::-webkit-progress-value{background:#ddc28b}.intro-audio-notice{position:absolute;bottom:92px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:10px 14px;max-width:85%;background:#0e1b2cf5;border:1px solid #b69a5f80;border-radius:4px;color:#b9c8db;font-size:11px;z-index:4}.intro-audio-notice button{padding:7px 10px;border:1px solid #cdb67e;background:#d0b67f;color:#162237;border-radius:3px;white-space:nowrap}
.intro-dust{position:absolute;inset:0;overflow:hidden;pointer-events:none}.intro-dust i{position:absolute;width:3px;height:3px;background:#d9bd77;border-radius:50%;box-shadow:0 0 10px #ddbc65;opacity:.4;left:15%;top:83%;animation:introDust 12s linear infinite}.intro-dust i:nth-child(2){left:37%;animation-delay:-3s}.intro-dust i:nth-child(3){left:21%;animation-delay:-7s}.intro-dust i:nth-child(4){left:59%;animation-delay:-4s}.intro-dust i:nth-child(5){left:76%;animation-delay:-9s}.intro-dust i:nth-child(6){left:87%;animation-delay:-2s}
@keyframes introFloat{0%,100%{translate:0 4px;rotate:-.6deg}50%{translate:0 -7px;rotate:.8deg}}@keyframes introAura{to{opacity:.6;scale:1.07}}@keyframes introBackdrop{to{transform:scale(1.05) translateX(1%)}}@keyframes introDust{0%{transform:translate(0,0);opacity:0}15%{opacity:.5}85%{opacity:.3}100%{transform:translate(25px,-70vh);opacity:0}}
@media(max-width:900px){.intro-stage{inset:72px 5% 100px;grid-template-columns:minmax(190px,.75fr) minmax(300px,1.2fr);gap:2vw}.intro-story h2{font-size:34px}.intro-subtitle{font-size:14px;line-height:1.75}.intro-headline{font-size:13px}.intro-portrait-caption{font-size:20px}.intro-header{left:24px;right:24px;top:22px}.intro-header>span{font-size:8px;letter-spacing:2px}}
@media(max-width:650px){.intro-stage{inset:70px 22px 105px;display:flex;flex-direction:column;justify-content:center;gap:0}.intro-portrait{min-height:0;height:27vh;max-width:260px;flex:0 0 auto}.intro-portrait-caption{font-size:18px;bottom:-2px}.intro-story{padding:18px 0 0;max-width:500px}.intro-chapter{font-size:8px;letter-spacing:2px;margin-bottom:9px}.intro-story h2{font-size:30px;margin-bottom:12px}.intro-headline{font-size:12px;margin-bottom:10px;padding-left:10px}.intro-subtitle{font-size:12px;line-height:1.7}.intro-controls{left:20px;right:20px;bottom:22px;gap:9px}.intro-controls button{min-width:0;padding:9px 10px;font-size:10px}.intro-controls kbd{display:none}.intro-playback{gap:6px;font-size:9px}.intro-header{left:20px;right:20px;top:18px}.intro-header>span{font-size:6px;letter-spacing:1.2px}.intro-skip{font-size:9px;padding:7px}.intro-audio-notice{bottom:75px;font-size:10px;max-width:95%;width:85%;gap:8px}.intro-audio-notice button{font-size:10px}}
@media(max-height:650px) and (min-width:651px){.intro-stage{inset:65px 6% 85px}.intro-story h2{font-size:31px;margin-bottom:14px}.intro-subtitle{font-size:12px;line-height:1.7}.intro-headline{font-size:12px;margin-bottom:12px}.intro-controls{bottom:22px}}
@media(prefers-reduced-motion:reduce){.intro-portrait,.intro-aura,.intro-backdrop,.intro-dust i{animation:none}.intro-pose{transform:none;transition:none}}
