*,:before,:after{box-sizing:border-box}html,body{background:#000;height:100%;margin:0}body{color:#f3e9d8;justify-content:center;min-height:100dvh;font-family:-apple-system,Sukhumvit Set,Thonburi,Noto Sans Thai,Leelawadee UI,Tahoma,system-ui,sans-serif;font-size:clamp(16px,4.2vw,20px);line-height:1.55;display:flex}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.stage{background:#000;flex-direction:column;width:min(100vw,75dvh);min-height:100dvh;display:flex;position:relative}.art{width:min(100vw, calc(100vh * 3 / 4), var(--art-max-w,100vw));width:min(100vw, calc(100dvh * 3 / 4), var(--art-max-w,100vw));aspect-ratio:3/4;background:#0a0a0a;flex-shrink:0;margin:0 auto;position:relative;overflow:hidden}.art-img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}.art-img.visible{opacity:1}.panel{min-height:0;padding:clamp(24px, 6vw, 36px) clamp(26px, 8vw, 44px) calc(clamp(24px, 6vw, 36px) + env(safe-area-inset-bottom));background:linear-gradient(#1d1528,#120d19);flex-direction:column;flex:auto;gap:1em;display:flex;overflow-y:auto}.panel>*{flex-shrink:0}.stage.at-result{--result-top:calc(62px + env(safe-area-inset-top));--result-bar:calc(80px + env(safe-area-inset-bottom))}.stage.at-result .panel{padding-top:var(--result-top);padding-inline:16px;background:linear-gradient(#0000,#0006 15%,#000000e6 45%);padding-bottom:0;position:absolute;inset:0}.stage.overlay .panel{text-shadow:0 1px 3px #000000d9;background:linear-gradient(#0000001f,#0006 15%,#0000009e 45%);max-height:88%;position:absolute;bottom:0;left:0;right:0}.flash{opacity:0;pointer-events:none;z-index:50;background:#fff;transition:opacity .6s;position:fixed;inset:0}.flash.flash-in{opacity:1}@media (prefers-reduced-motion:reduce){.art-img,.flash{transition:none}}.lines p{margin:0 0 .6em;line-height:1.6}.lines p,.question,.notice,.option-label,.result-fallback-title,.result-fallback-soul{text-wrap:balance}.lines,.question,.options{width:100%;max-width:28em;margin-inline:auto}.result-fallback-desc{text-wrap:pretty}.stage.at-cover .lines,.stage[data-screen=intro] .lines{text-align:center;color:#ffe9b8;text-shadow:0 0 12px #ffc86e73;font-size:1.12em;font-weight:600}.stage[data-screen=intro] .hint{text-align:center}.stage.overlay[data-screen=intro] .lines{text-shadow:0 1px 3px #000000e6,0 0 12px #ffc86e73}.after{margin-top:auto}.hint{color:#f3e9d8bf;margin:0;font-size:.85em}.cover-actions{flex-direction:column;align-items:center;gap:1em;display:flex}.notice{text-align:center;color:#f3e9d88c;max-width:34em;margin:.4em 0 0;font-size:.78em;line-height:1.5}.question{margin:0 0 .25em;font-weight:700;line-height:1.5}.options{grid-auto-rows:1fr;gap:.6em;display:grid}.btn{cursor:pointer;border:none;border-radius:9999px;min-height:44px;padding:.65em 1.2em}.btn-primary{color:#3b1a05;letter-spacing:.02em;text-shadow:0 1px #ffffff8c;background:linear-gradient(#ffe89a 0%,#f6c152 47%,#e39a2c 53%,#c97a17 100%);border:2px solid #fff1bf;border-radius:18px;padding:.75em 1.6em;font-weight:800;transition:transform 80ms,box-shadow 80ms;position:relative;overflow:hidden;box-shadow:0 5px #8d4f0f,0 10px 18px #00000073,inset 0 2px #ffffffbf}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffffa6,#0000);width:40%;animation:3.4s ease-in-out 1s infinite btn-shine;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-20deg)}@keyframes btn-shine{0%{left:-60%}30%,to{left:130%}}.btn-primary:active{transform:translateY(4px);box-shadow:0 1px #8d4f0f,0 4px 10px #0006,inset 0 2px #fff9}.btn-primary:disabled{opacity:.55;cursor:default}.btn-primary:disabled:after{animation:none}.btn-start{min-width:70%;padding:.8em 2em;font-size:1.18em}.rise>.btn-start{animation:.75s cubic-bezier(.2,.8,.2,1) backwards rise,2.2s ease-in-out 1.2s infinite start-glow}@keyframes start-glow{0%,to{box-shadow:0 5px #8d4f0f,0 10px 18px #00000073,inset 0 2px #ffffffbf,0 0 #ffd6788c}50%{box-shadow:0 5px #8d4f0f,0 10px 18px #00000073,inset 0 2px #ffffffbf,0 0 0 10px #ffd67800}}.btn-option{text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff8ec;text-shadow:0 1px 2px #0009;background:#140e1a8c;border:1.5px solid #e8b34cd9;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;display:flex;box-shadow:inset 0 1px #ffe9b840}.btn-option:active{transform:scale(.97)}.btn-option:focus-visible{outline-offset:2px;outline:2px solid #ffe9b8}.btn-option.is-chosen{color:#2a1600;text-shadow:none;background:#e8b34c;box-shadow:0 0 18px #e8b34cb3}.options.is-deciding .btn-option:not(.is-chosen){opacity:.45}.options.is-deciding{pointer-events:none}@media (prefers-reduced-motion:reduce){.btn-option:active{transform:none}}.untyped{visibility:hidden}.waiting>*{opacity:0;pointer-events:none;transform:translateY(100vh)}.rise>*{animation:.75s cubic-bezier(.2,.8,.2,1) backwards rise}.panel.measuring .waiting>*{transform:none!important}@keyframes rise{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:none}}.panel.revealing{overflow:hidden}@media (prefers-reduced-motion:reduce){.waiting>*{transform:translateY(24px)}.rise>*,.rise>.btn-start{animation:.4s ease-out backwards rise-soft}.btn-primary:after{animation:none}}@keyframes rise-soft{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.option-label{font-weight:600}.option-sub{color:#fff8ecc7;font-size:.86em}.result-card{aspect-ratio:9/16;width:100%;max-width:480px;width:min(100%, 480px, calc((100vh - var(--result-top) - var(--result-bar) - 12px) * 9 / 16));width:min(100%, 480px, calc((100dvh - var(--result-top) - var(--result-bar) - 12px) * 9 / 16));cursor:zoom-in;background:linear-gradient(#9b1c1c,#5b0b0b);border-radius:6.667%/3.75%;margin:0 auto;position:relative;overflow:hidden}.result-card.is-zoomed,.result-card.is-fallback{cursor:zoom-out;width:min(100%,480px)}.result-card.is-fallback{cursor:auto}.result-card.is-loading{animation:1.6s ease-in-out infinite result-card-pulse}@keyframes result-card-pulse{0%,to{opacity:.75}50%{opacity:1}}.result-card-img{object-fit:cover;opacity:0;width:100%;height:100%;display:block}.result-card.is-revealed{box-shadow:0 0 48px 8px var(--card-glow,#e8b34c8c)}.result-card.is-revealed .result-card-img{opacity:1;animation:.7s cubic-bezier(.2,.8,.2,1) result-card-in}@keyframes result-card-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}.result-card.is-revealed:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff8c,#0000);width:40%;animation:.9s ease-in-out .2s result-card-sweep;position:absolute;top:-20%;bottom:-20%;left:-60%;transform:skew(-20deg)}@keyframes result-card-sweep{0%{left:-60%}to{left:130%}}@media (prefers-reduced-motion:reduce){.result-card-img{transition:opacity .4s}.result-card.is-revealed .result-card-img{animation:none}.result-card.is-revealed:after{display:none}}.result-fallback{color:#2b1d3a;background:inherit;flex-direction:column;justify-content:center;gap:.6em;padding:1.4em;display:flex;position:absolute;inset:0}.result-fallback-title{margin:0;font-size:1.3em;font-weight:700}.result-fallback-desc,.result-fallback-soul{margin:0;font-size:.95em}.result-credits{background:#0a070ed9;border:1px solid #e8b34c59;border-radius:14px;justify-content:center;align-items:center;gap:clamp(.8em,4vw,1.4em);margin:.2em 0 .6em;padding:.9em .6em 1em;display:flex}.credit{border-radius:8px;align-items:center;gap:.5em;min-height:44px;text-decoration:none;display:flex}.credit:focus-visible{outline-offset:4px;outline:2px solid #ffe9b8}.credit img{width:auto;height:clamp(50px,17.5vw,80px);display:block}.credit-badge img{height:2.1em}.credit-name{color:#ff5fae;font-size:.9em;font-weight:600}.credit-divider{background:#e8b34c59;width:1px;height:2.6em}.result-actions{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#0a070ee6;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;display:grid;position:sticky;bottom:0}.result-actions .btn-primary{letter-spacing:0;text-wrap:balance;min-height:52px;padding:.5em .55em;font-size:.9em;line-height:1.25}.btn-text{color:#cbb98a;cursor:pointer;background:0 0;border:none;align-self:center;min-height:48px;padding:8px 16px;text-decoration:underline}.cover-fx{pointer-events:none;display:none;position:absolute;inset:0}.stage.at-cover .cover-fx{display:block}.stage.at-cover .art-img.visible{filter:brightness(1.08)saturate(1.12);animation:3.2s ease-in-out .2s both cover-light}@keyframes cover-light{0%{filter:brightness(.05)saturate(.3)}to{filter:brightness(1.08)saturate(1.12)}}.cover-glow{mix-blend-mode:screen;background:radial-gradient(#fff4d68c 0%,#ffd69638 42%,#0000 70%);height:50%;animation:1.2s ease-out 1.6s both glow-in,3.2s ease-in-out 2.8s infinite alternate glow;position:absolute;top:26%;left:0;right:0}@keyframes glow-in{0%{opacity:0}to{opacity:.6}}@keyframes glow{0%{opacity:.6}to{opacity:1}}.cover-logo{animation:1.1s cubic-bezier(.2,.8,.2,1) 1.7s both logo-in;position:absolute}.cover-logo img{filter:brightness(1.06)drop-shadow(0 0 6px #ffecbe8c)drop-shadow(0 0 18px #ffbe5a59);width:100%;height:auto;display:block}@keyframes logo-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.cover-logo-shine{-webkit-mask:var(--logo-mask) center / 100% 100% no-repeat;-webkit-mask:var(--logo-mask) center / 100% 100% no-repeat;mask:var(--logo-mask) center / 100% 100% no-repeat;position:absolute;inset:0;overflow:hidden}.cover-logo-shine:before{content:"";background:linear-gradient(100deg,#0000,#ffffffb3,#0000);width:30%;animation:5s ease-in-out 3.2s infinite cover-sweep;position:absolute;top:-10%;bottom:-10%;left:-45%;transform:skew(-18deg)}@keyframes cover-sweep{0%{left:-45%}35%,to{left:125%}}.spark{left:var(--x);top:var(--y);width:var(--s);aspect-ratio:1;filter:drop-shadow(0 0 3px #fffce6f2)drop-shadow(0 0 9px #ffcd6ebf);position:absolute;transform:translate(-50%,-50%)}.spark b{clip-path:polygon(50% 0%,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0% 50%,39% 39%);width:100%;height:100%;animation:twinkle 2.4s ease-in-out var(--d) infinite;background:#fffdf0;display:block;transform:scale(0)}@keyframes twinkle{0%,to{opacity:0;transform:scale(0)rotate(0)}45%{opacity:1;transform:scale(1)rotate(45deg)}60%{opacity:.9;transform:scale(.85)rotate(60deg)}}@media (prefers-reduced-motion:reduce){.spark b{animation:twinkle-soft 3s ease-in-out var(--d) infinite;transform:none}.cover-logo-shine{display:none}.cover-logo{animation-name:logo-in-soft}}@keyframes twinkle-soft{0%,to{opacity:0}50%{opacity:1}}@keyframes logo-in-soft{0%{opacity:0}to{opacity:1}}.sound-toggle{top:calc(10px + env(safe-area-inset-top));z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffe9b8;cursor:pointer;background:#140e1ab8;border:1.5px solid #e8b34cd9;border-radius:9999px;align-items:center;gap:6px;height:44px;padding:0 14px 0 10px;font-size:15px;font-weight:600;display:inline-flex;position:absolute;right:10px}.sound-toggle:active{transform:scale(.94)}.sound-toggle:focus-visible{outline-offset:2px;outline:2px solid #ffe9b8}.sound-icon{display:flex}.sound-label{white-space:nowrap}@media (width<=359px){.sound-label{display:none}}.sr-only-focusable:not(:focus-visible){clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rotate-hint{display:none}@media (orientation:landscape) and (height<=500px) and (hover:none) and (pointer:coarse){.rotate-hint{z-index:100;color:#ffe9b8;text-align:center;background:#120d19;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;font-size:1.1em;font-weight:600;display:flex;position:fixed;inset:0}.rotate-hint p{margin:0}}
