.game-intro{position:relative;isolation:isolate;overflow:hidden;min-height:85dvh;padding:36px 24px 48px;color:#fff5da;background:radial-gradient(ellipse at 25% 35%,#15385a 0,transparent 55%),#061324;font-family:'Noto Sans Thai',sans-serif}
.intro-glow{position:absolute;inset:10% 15%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#c8953826,transparent 65%);filter:blur(40px);animation:intro-breathe 5s ease-in-out infinite alternate;pointer-events:none}
.intro-layout{max-width:980px;margin:auto;display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);align-items:center;gap:64px;perspective:1200px}
.intro-art{position:relative;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s ease-out;border:1px solid #f5d77a80;border-radius:26px;box-shadow:0 26px 70px #0008,0 0 35px #f5bd4320;overflow:hidden;animation:intro-arrive .8s ease-out both}
.intro-art img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover}
.intro-art-label{position:absolute;bottom:0;left:0;right:0;padding:32px 12px 14px;background:linear-gradient(transparent,#041426d9);text-align:center;font-size:10px;font-weight:700;letter-spacing:3px;color:#fff1bd}
.intro-sparkles{position:absolute;inset:0;pointer-events:none}.intro-sparkles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff9d5;box-shadow:0 0 10px 3px #ffd366;animation:intro-spark 3.8s ease-in-out infinite}
.intro-content{text-align:center;animation:intro-arrive .85s .1s ease-out both}.intro-eyebrow{font-size:13px;letter-spacing:1px;color:#eac879}.intro-content h2{margin:18px 0 12px;font-size:clamp(28px,3.4vw,44px);font-weight:800;line-height:1.5;color:#fff4d5;text-shadow:0 3px 20px #f4b02c30}.intro-description{color:#b8c6d8;font-size:17px;line-height:1.9;margin:0}.intro-divider{display:flex;align-items:center;gap:16px;color:#ecc872;margin:26px 0}.intro-divider:before,.intro-divider:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#e2be6766)}.intro-divider:after{transform:rotate(180deg)}
.intro-start{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:66px;padding:14px 26px;border:1px solid #fff1ac;border-radius:18px;background:linear-gradient(135deg,#ffecaa,#f6c454 60%,#eaa530);color:#241909;font-size:22px;font-weight:800;box-shadow:0 6px 0 #94621e,0 12px 32px #ffc44830;transition:transform .2s,box-shadow .2s;cursor:pointer}.intro-start:before{content:'';position:absolute;inset:-60% auto -60% -65%;width:35%;background:#ffffff70;transform:rotate(25deg);animation:intro-shine 4s infinite}.intro-start:hover{transform:translateY(-3px);box-shadow:0 9px 0 #94621e,0 18px 42px #ffc44850}.intro-start:active{transform:translateY(4px);box-shadow:0 2px 0 #94621e}.intro-start:disabled{cursor:wait}.intro-help{display:block;width:100%;min-height:50px;margin-top:22px;border:1px solid #a9c1de45;border-radius:16px;background:#ffffff08;color:#e2eaf5;font-size:16px;font-weight:600;cursor:pointer}.intro-help:hover{background:#ffffff13}.intro-back{display:inline-block;margin-top:20px;color:#d0dcec;font-size:14px}.intro-note{margin-top:22px;color:#a6b8cc;font-size:12px}.intro-instructions{margin-top:18px;padding:16px;border-radius:14px;background:#ffffff0d;line-height:1.9;color:#fff0c5}.intro-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.game-intro :is(button,a):focus-visible{outline:3px solid #fff1b3;outline-offset:5px}.game-intro--leaving .intro-layout{animation:intro-exit .52s ease-in both;pointer-events:none}
@keyframes intro-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes intro-exit{to{opacity:0;transform:scale(1.045);filter:blur(5px)}}@keyframes intro-spark{0%,100%{opacity:.15;transform:translateY(10px) scale(.5)}50%{opacity:1;transform:translateY(-12px) scale(1.2)}}@keyframes intro-shine{0%,65%{left:-65%}100%{left:145%}}@keyframes intro-breathe{to{transform:scale(1.2);opacity:.5}}
@media(max-width:700px){.game-intro{padding:18px 20px 32px}.intro-layout{max-width:420px;grid-template-columns:1fr;gap:24px}.intro-art{width:min(100%,310px);margin:auto;border-radius:20px}.intro-content h2{font-size:27px;margin:10px 0}.intro-eyebrow{font-size:12px}.intro-description{font-size:15px}.intro-divider{margin:16px 0}.intro-start{min-height:60px;font-size:20px}.intro-note{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.game-intro *,.game-intro *:before{animation:none!important;transition:none!important}.intro-art{transform:none!important}}
/* Keep every edge of portrait artwork visible, with controls below it. */
.game-intro{padding:0 0 32px;min-height:100dvh}.intro-layout{display:flex;flex-direction:column;gap:24px;max-width:780px;perspective:none}.intro-art{width:100%;max-width:680px;margin:0 auto;border:0;border-radius:0;overflow:visible;transform:none!important;box-shadow:0 20px 70px #0007}.intro-art img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:0}.intro-content{width:100%;max-width:460px;margin:auto;padding:0 20px;box-sizing:border-box}.detective-intro{margin:0 -16px}.detective-intro .intro-content{padding:24px 20px}.detective-intro .intro-content>p{margin:16px 0}.detective-intro .intro-content>button{margin-top:18px}.intro-start{animation:intro-button-glow 3s ease-in-out infinite alternate}@keyframes intro-button-glow{to{box-shadow:0 6px 0 #94621e,0 10px 40px #ffc44860}}@media(max-width:700px){.game-intro{padding:0 0 28px}.intro-layout{gap:20px}.intro-art{width:100%;max-width:none;border-radius:0}.intro-content{padding:0 20px}}@media(prefers-reduced-motion:reduce){.intro-start{animation:none}}
.game-placeholder-page:has(.game-intro){padding:0;background:#061324}.game-placeholder.game-intro{max-width:780px;width:100%;margin:auto;padding:0 0 36px;border:0;border-radius:0;background:#061324;color:#fff4d5}.game-placeholder.game-intro .placeholder-cover{width:100%;max-width:none;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:0;margin:0}.game-placeholder.game-intro>.intro-art{margin-bottom:28px}.game-placeholder.game-intro>p,.game-placeholder.game-intro>h1{padding:0 20px}.game-placeholder.game-intro .notice-box{margin:20px;color:#26364c}
/* Full-screen artwork with accessible controls layered over the image. */
body:has(.game-intro) [id$="-game-root"]>div,body:has(.game-intro) [id$="-game-root"]>main{padding:0!important;max-width:none!important}body:has(.game-intro) [id$="-game-root"] header{display:none}.game-intro{position:relative;isolation:isolate;width:100%;height:100svh;min-height:620px;margin:0;padding:0!important;overflow:hidden;background:radial-gradient(ellipse at center,#33485a,#071323 80%)}.game-intro .intro-layout{display:block;position:relative;width:100%;height:100%;max-width:none;margin:0}.game-intro .intro-art{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;overflow:hidden}.game-intro .intro-art img{width:100%;height:100%;max-width:none;object-fit:contain;aspect-ratio:auto}.game-intro .intro-art:after{content:'';position:absolute;inset:0;background:linear-gradient(#04142618,transparent 50%,#041426a6);pointer-events:none}.game-intro .intro-content{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:2;width:min(440px,calc(100% - 28px));max-height:53%;overflow-y:auto;padding:14px 20px;margin:0;border:1px solid #ffe6a044;border-radius:24px;background:linear-gradient(#071b309c,#071626e8);backdrop-filter:blur(10px);box-shadow:0 8px 30px #0004;box-sizing:border-box;color:#fff4da;animation:none}.game-intro .intro-eyebrow,.game-intro .intro-divider,.game-intro .intro-note{display:none}.game-intro .intro-content h2{font-size:22px;margin:0 0 4px;line-height:1.4}.game-intro .intro-description{font-size:13px;line-height:1.6;margin:0 0 10px;color:#e0e7ef}.game-intro .intro-start{min-height:52px;font-size:19px;border-radius:15px;padding:10px 20px}.game-intro .intro-help{display:inline-block;width:auto;min-height:40px;padding:6px 16px;margin:14px 8px 0 0;border-radius:22px;font-size:14px}.game-intro .intro-back{display:inline-block;min-height:40px;padding:10px 4px;margin:0;font-size:13px;color:#ffebbe}.game-intro .intro-instructions{font-size:14px;margin-top:10px;padding:10px}.game-intro.setup-intro .intro-content{max-height:65%;text-align:left}.game-intro.setup-intro .intro-content>p,.game-intro.detective-intro .intro-content>p{font-size:14px;margin:8px 0}.game-intro.setup-intro .intro-content>label{margin:8px 0;font-size:14px}.game-intro.setup-intro .intro-content select{color:#18334c;background:#fff;min-height:44px;font-size:15px}.game-intro.setup-intro .intro-content>button,.game-intro.detective-intro .intro-content>button{margin-top:12px}.game-intro.detective-intro .intro-content .bg-white,.game-intro.setup-intro .intro-content .bg-white{color:#20354b}.game-intro .intro-sparkles{z-index:1}.game-intro--leaving .intro-layout{animation:intro-exit .52s ease-in both}@media(max-height:650px){.game-intro{min-height:480px}.game-intro .intro-content{max-height:65%}.game-intro.setup-intro .intro-content{max-height:78%}}@media(prefers-reduced-motion:reduce){.game-intro--leaving .intro-layout{animation:none}}
