:root{color:#fff7ed;background:#0f1014;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow:hidden;background:#08090d}#root{width:100%;min-height:100vh;min-height:100dvh;display:grid;place-items:center}button,input,textarea{font:inherit}.game-shell,.app-shell{position:relative;width:min(100vw,56.25dvh);height:100vh;height:100dvh;min-height:0;overflow:hidden;background:#111219;box-shadow:0 0 48px #00000094}.game-shell:focus{outline:none}.game-shell.is-clickable{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auto-video-shell{cursor:default;touch-action:manipulation;-webkit-user-select:none;user-select:none}.auto-video-shell.is-accelerating{cursor:progress}.fast-forward-indicator{position:absolute;z-index:6;top:max(22px,env(safe-area-inset-top));left:50%;display:inline-flex;align-items:center;gap:7px;transform:translate(-50%);padding:8px 13px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#090c13c2;color:#fff7edf0;font-size:.78rem;letter-spacing:.04em;pointer-events:none;box-shadow:0 8px 24px #00000057;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.fast-forward-indicator strong{color:#ffd49a;font-size:1rem}.start-overlay{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,#070a1205,#070a1214 48%,#070a1280);pointer-events:none}.start-screen{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}.start-screen:focus-visible{outline:2px solid #ffcf8a;outline-offset:-4px}.start-cover-background{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.025);filter:saturate(.92) brightness(.92);will-change:opacity,transform,filter}.start-screen.is-cover-ready .start-cover-background{animation:start-cover-reveal .9s cubic-bezier(.22,1,.36,1) forwards}.start-title-block{position:absolute;left:max(18px,env(safe-area-inset-left));bottom:clamp(90px,13dvh,116px);width:clamp(202px,58vw,240px);isolation:isolate}.start-title-block:before{content:"";position:absolute;z-index:-1;inset:-20% -30%;border-radius:50%;background:radial-gradient(ellipse at center,#070b1f6b,#070b1f40 48%,#070b1f00 76%);filter:blur(8px)}.start-title-main-frame{width:76%;aspect-ratio:764 / 760;overflow:hidden;opacity:0;transform:translate3d(-8px,14px,0);filter:blur(5px);will-change:opacity,transform,filter}.start-screen.is-cover-ready .start-title-main-frame{animation:start-title-main-reveal .72s .9s cubic-bezier(.16,1,.3,1) forwards}.start-title-art{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 2px rgba(3,7,20,.78)) drop-shadow(0 10px 18px rgba(3,7,20,.48))}.start-title-meta{display:grid;gap:9px;margin-top:8px;opacity:0;transform:translateY(7px);filter:blur(3px);will-change:opacity,transform,filter}.start-screen.is-cover-ready .start-title-meta{animation:start-title-meta-reveal .65s 1.9s ease-out forwards}.start-title-divider{position:relative;display:block;width:100%;height:1px;background:linear-gradient(90deg,#fff4efd6,#dae5ff8f);box-shadow:0 1px 5px #020718b3;opacity:0;transform:scaleX(0);transform-origin:left center;will-change:opacity,transform}.start-title-divider:before{content:"";position:absolute;left:-1px;top:50%;width:5px;height:5px;background:#fff6f2e6;box-shadow:0 0 8px #b5cbffb8;transform:translate(-50%,-50%) rotate(45deg)}.start-screen.is-cover-ready .start-title-divider{animation:start-title-divider-reveal .65s 1.9s cubic-bezier(.22,1,.36,1) forwards}.start-title-subtitle{margin:0;color:#fff9f5eb;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(.75rem,3.2vw,.82rem);font-weight:450;line-height:1.62;letter-spacing:.025em;text-wrap:balance;text-shadow:0 1px 2px rgba(2,6,20,.96),0 4px 12px rgba(2,6,20,.74)}.start-prompt{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:8px;margin:0;color:#fff7edd1;font-size:clamp(.72rem,3.2vw,.82rem);font-weight:650;letter-spacing:.04em;text-shadow:0 1px 2px rgba(4,7,18,.96),0 5px 16px rgba(4,7,18,.78);opacity:0;transform:translateY(8px);will-change:opacity,transform}.start-screen.is-cover-ready .start-prompt{animation:start-prompt-reveal .52s 2.85s ease-out forwards}.start-prompt-cue{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid rgba(255,255,255,.76);filter:drop-shadow(0 2px 4px rgba(0,0,0,.42));animation:arrow-pulse 1.2s 3.37s ease-in-out infinite}@keyframes start-cover-reveal{0%{opacity:0;transform:scale(1.025);filter:saturate(.86) brightness(.78) blur(3px)}to{opacity:1;transform:scale(1);filter:saturate(.92) brightness(.92) blur(0)}}@keyframes start-title-main-reveal{0%{opacity:0;transform:translate3d(-8px,14px,0);filter:blur(5px)}72%{opacity:1;transform:translate3d(1px,-1px,0);filter:blur(0)}to{opacity:1;transform:translateZ(0);filter:blur(0)}}@keyframes start-title-meta-reveal{0%{opacity:0;transform:translateY(7px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes start-title-divider-reveal{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes start-prompt-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.playback-mode-segment{width:min(100%,312px);min-height:44px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid rgba(255,247,237,.16);border-radius:8px;background:#090c137a;box-shadow:0 14px 28px #0000003d,inset 0 1px #ffffff14;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mode-button{min-width:0;min-height:36px;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:#fff7edb8;font-size:.9rem;font-weight:800;letter-spacing:0;cursor:pointer}.mode-button.is-active{background:#fff7ed29;color:#fff7ed;box-shadow:0 8px 18px #0003,inset 0 1px #ffffff1f}.mode-button:hover{color:#fff7ed;background:#fff7ed1a}.stage-view{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 50% 30%,rgba(120,150,210,.18),transparent 30%),linear-gradient(130deg,#202438,#12131f 54%,#09090f)}.stage-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.04) saturate(.96) contrast(1.02)}.stage-loop-video{opacity:0;pointer-events:none;transition:opacity .12s ease-out}.stage-loop-video.is-active{opacity:1}.stage-fallback-loop-media{z-index:1}.stage-transition-out{z-index:1;pointer-events:none;animation:stage-transition-out .18s ease-out both}.stage-transition-hold{z-index:1;opacity:1;pointer-events:none}@keyframes stage-transition-out{0%{opacity:1}to{opacity:0}}.stage-light{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(7,10,18,.3),transparent 28%,transparent 72%,rgba(7,10,18,.36)),linear-gradient(180deg,rgba(12,18,30,.03),transparent 50%,rgba(7,10,18,.5)),linear-gradient(180deg,rgba(48,68,108,.06),transparent 42%)}.stage-characters{position:absolute;inset:0;z-index:3}.stage-character{position:absolute;bottom:clamp(112px,20vh,174px);width:min(82vw,620px);max-height:78vh;object-fit:contain;transform:translate(-50%);filter:drop-shadow(0 28px 28px rgba(0,0,0,.58))}.stage-character-center{left:50%}.stage-character-left{left:34%}.stage-character-right{left:66%}.stage-characters-2 .stage-character,.stage-characters-3 .stage-character{width:min(48vw,430px);max-height:72vh}.stage-characters-3 .stage-character-left{left:25%}.stage-characters-3 .stage-character-center{left:50%}.stage-characters-3 .stage-character-right{left:75%}.game-overlay{position:relative;z-index:2;min-height:100%;height:100%;padding:max(16px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:flex;flex-direction:column;justify-content:flex-end}.bottom-ui{width:min(100%,860px);display:grid;gap:10px;margin:0 auto clamp(30px,7vh,78px)}.choice-panel{width:min(100%,460px);justify-self:center;display:grid;gap:8px;margin:0;padding:0 2px}.choice-button,.primary-action,.secondary-action,.continue-button{min-height:42px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0e121c5c;color:#fff7ed;font-weight:700;letter-spacing:0;cursor:pointer;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.choice-button{width:100%;min-width:0;padding:10px 14px;text-align:center;color:#ffffffe6;font-size:.96rem;font-weight:650;box-shadow:0 12px 24px #0000002e,inset 0 1px #ffffff14}.interactive-input-panel{width:min(100%,760px);justify-self:center;display:grid;gap:8px;padding:0 2px}.interactive-prompt{display:grid;gap:6px;width:min(100%,640px);justify-self:center;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.92),0 0 18px rgba(0,0,0,.82)}.interactive-prompt p{margin:0;color:#fffffff0;font-size:1.02rem;line-height:1.45}.interactive-speaker{color:#fff7edbd!important;font-size:.78rem!important;font-weight:800}.inline-response{position:relative;display:grid;gap:2px;margin-top:8px;padding-top:10px}.inline-response:before{content:"";position:absolute;top:0;left:50%;width:min(58%,320px);height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent,rgba(255,247,237,.18),rgba(255,207,138,.34),rgba(255,247,237,.18),transparent);box-shadow:0 1px 8px #00000047}.inline-response-player{opacity:.84}.interactive-input-form{width:min(100%,640px);justify-self:center;display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0e121c5c;box-shadow:0 12px 24px #0000002e,inset 0 1px #ffffff14;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.interactive-input{width:100%;min-height:42px;max-height:96px;resize:vertical;padding:9px 10px;border:0;border-radius:6px;background:#04070d42;color:#fff7ed;line-height:1.42;outline:none}.interactive-input::placeholder{color:#fff7ed80}.interactive-input:disabled{cursor:wait;opacity:.68}.interactive-input:focus{box-shadow:0 0 0 2px #ffcf8a2e}.interactive-send{min-width:72px;margin:0}.ai-chat-log{max-height:min(36vh,270px);display:grid;gap:7px;overflow-y:auto;padding-right:4px;scrollbar-color:rgba(255,247,237,.2) transparent;scrollbar-width:thin}.ai-chat-log::-webkit-scrollbar{width:4px}.ai-chat-log::-webkit-scrollbar-track{background:transparent}.ai-chat-log::-webkit-scrollbar-thumb{border-radius:999px;background:#fff7ed33}.ai-chat-log::-webkit-scrollbar-thumb:hover{background:#fff7ed52}.decision-input-form{grid-template-columns:1fr}.decision-input-actions,.decision-confirmation,.decision-fallback-options{width:min(100%,640px);justify-self:center;display:flex;justify-content:flex-end;gap:8px}.decision-input-actions .primary-action,.decision-input-actions .secondary-action,.decision-confirmation .primary-action,.decision-confirmation .secondary-action,.decision-fallback-options .secondary-action{margin-top:0}.decision-ready-button{margin-right:auto!important}.decision-fallback-options{display:grid;grid-template-columns:1fr 1fr}.decision-fallback-options .secondary-action{min-height:46px}.chat-message{width:min(86%,560px);padding:9px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0a0e166b;box-shadow:0 12px 24px #0000002e;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.chat-message p{margin:0;color:#ffffffe6;font-size:.96rem;line-height:1.45}.chat-message-player{justify-self:end;background:#fff7ed24}.chat-speaker{margin-bottom:3px!important;color:#fff7edb8!important;font-size:.72rem!important;font-weight:800}.chat-pending{color:#fff7ed94!important}.ai-chat-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px}.ai-chat-input{width:100%;min-height:58px;max-height:110px;resize:vertical;padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0a0e1680;color:#fff7ed;line-height:1.42;outline:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ai-chat-input:focus{border-color:#ffcf8ab8;box-shadow:0 0 0 2px #ffcf8a24}.ai-chat-input::placeholder{color:#fff7ed73}.ai-chat-input:disabled{cursor:wait;opacity:.68}.name-input-field{min-height:44px;resize:none}.name-option-panel{width:min(100%,420px);justify-self:center;display:grid;gap:6px}.name-option-button{width:100%;min-width:0;min-height:42px;margin-top:0;padding:8px 12px;text-align:center;font-size:.96rem;font-weight:650;line-height:1.35}.ai-chat-send{min-width:72px;margin-top:0}.ai-chat-status,.ai-chat-error{margin:0;font-size:.78rem;line-height:1.35}.ai-chat-status{color:#fff7ed9e}.ai-chat-error{color:#ffb4a2}.choice-button:hover{background:#ffffff24;border-color:#ffffff29}.choice-button:focus-visible,.primary-action:focus-visible,.secondary-action:focus-visible,.icon-action:focus-visible,.chapter-button:focus-visible,.continue-button:focus-visible,.mode-button:focus-visible,.ai-chat-input:focus-visible,.interactive-input:focus-visible{outline:2px solid #ffcf8a;outline-offset:2px}.dialogue-stack{display:grid;gap:5px}.subtitle-stack{justify-items:center;text-align:center;pointer-events:none}.subtitle-box{position:relative;width:min(100%,720px);min-height:44px;margin:0;padding:0 34px;border:0;background:transparent;text-shadow:0 2px 8px rgba(0,0,0,.92),0 0 18px rgba(0,0,0,.86)}.subtitle-box.is-clickable{cursor:pointer;pointer-events:auto}.auto-subtitle-stack{animation:auto-subtitle-in .18s ease-out}.auto-subtitle-box{pointer-events:none}.speaker-name{margin:0;color:#fff7ede0;font-size:.86rem;font-weight:800}.speaker-name-outside{width:fit-content;max-width:min(70vw,360px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#fff7edbd;text-shadow:0 2px 8px rgba(0,0,0,.9),0 0 14px rgba(0,0,0,.82)}.dialogue-text{min-height:28px;margin:0;color:#fffffff0;font-size:1.02rem;line-height:1.5}.continue-button,.primary-action,.secondary-action{min-width:96px;margin-top:12px;padding:8px 14px}.secondary-action{background:#12141e52;color:#fff7edd1}.icon-action{width:36px;height:36px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:#12141e80;color:#fff7ed;cursor:pointer}.continue-button{display:block;margin-left:auto}.dialogue-arrow{position:absolute;right:16px;bottom:12px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid rgba(255,255,255,.72);filter:drop-shadow(0 2px 4px rgba(0,0,0,.42));animation:arrow-pulse 1.2s ease-in-out infinite}@keyframes arrow-pulse{0%,to{transform:translateY(0);opacity:.72}50%{transform:translateY(4px);opacity:1}}@keyframes auto-subtitle-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.start-screen.is-cover-ready .start-cover-background,.start-screen.is-cover-ready .start-title-main-frame,.start-screen.is-cover-ready .start-title-meta,.start-screen.is-cover-ready .start-title-divider,.start-screen.is-cover-ready .start-prompt{animation-duration:1ms;animation-delay:0ms}.start-prompt-cue{animation:none}}.ending-box{width:min(100%,620px);min-height:96px;padding:16px;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#0a0e168a;box-shadow:0 18px 38px #00000047,inset 0 1px #ffffff0f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-align:left}.ending-actions{display:flex;flex-wrap:wrap;gap:10px}.chapter-modal{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:18px;background:#04060c85;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chapter-panel{width:min(100%,420px);padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#0d0f18c7;box-shadow:0 24px 54px #00000075}.chapter-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chapter-list{display:grid;gap:10px;margin-top:10px}.chapter-button{min-height:46px;padding:10px 12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#12141e9e;color:#fff7ed;font-weight:700;text-align:left;cursor:pointer}.app-shell{display:grid;place-items:center;padding:24px}.error-panel{width:min(100%,720px);padding:18px;border:1px solid rgba(255,120,120,.42);border-radius:8px;background:#50000047;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.error-panel p{margin:6px 0;color:#ffd1d1}@media(min-width:768px){.game-overlay{padding:24px}.bottom-ui{margin-bottom:clamp(32px,6vh,72px)}.choice-panel{gap:7px}.subtitle-box{width:min(100%,760px)}}@media(max-width:430px){.stage-character{width:112vw;bottom:130px}.stage-characters-2 .stage-character,.stage-characters-3 .stage-character{width:72vw;max-height:66vh}.stage-character-left{left:28%}.stage-character-right{left:72%}.stage-characters-3 .stage-character-left{left:18%}.stage-characters-3 .stage-character-right{left:82%}.subtitle-box{min-height:42px;padding:0 24px}.dialogue-text{font-size:.96rem}.choice-panel{gap:5px}.choice-button{min-height:38px;padding:7px 10px}.choice-panel{width:min(100%,340px)}.ai-chat-log{max-height:31vh}.chat-message{width:min(94%,360px)}.ai-chat-form,.interactive-input-form{grid-template-columns:1fr}.name-option-panel{width:min(100%,340px)}.name-option-button{min-height:38px;padding:7px 10px}.ai-chat-send,.interactive-send{justify-self:end}.decision-input-actions,.decision-confirmation{display:grid;grid-template-columns:1fr auto}.decision-input-actions .secondary-action,.decision-confirmation .secondary-action{min-width:0}.decision-fallback-options{grid-template-columns:1fr;max-height:24vh;overflow-y:auto}}
