:root{--ui-font-scale: 1;--font-title: "STKaiti", "KaiTi", "DFKai-SB", "Times New Roman", serif;--font-dialog: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;--font-name: "STKaiti", "KaiTi", serif;--font-ui: "IBM Plex Sans", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--ink-950: #04050A;--ink-900: #090A11;--ink-860: #0E0F18;--ink-820: #141621;--ink-780: #1C1E2C;--ink-700: #262939;--gold-050: #F8F4FF;--gold-100: #EEDEFE;--gold-200: #D9CFEC;--gold-300: #C0B8D0;--gold-400: #A79FBE;--gold-500: #8A82A0;--gold-600: #625B78;--gold-700: #3F3A52;--gold-rgb: 192, 184, 208;--gold-hi-rgb: 238, 222, 254;--ember: #C9614C;--ember-rgb: 201, 97, 76;--jade: #7FA68C;--jade-rgb: 127, 166, 140;--dusk: #7C8AAE;--dusk-rgb: 124, 138, 174;--rose: #C98A93;--rose-rgb: 201, 138, 147;--accent-sakura: #FE877F;--accent-sakura-rgb: 254, 135, 127;--accent-sakura2: #ca7cfa;--accent-warm-soft: rgba(254, 135, 127, .12);--accent-gold: #a08c60;--accent-ember: #944444;--bg-main: #000000;--bg-overlay: rgba(0, 0, 0, .82);--ink-main: #EEDEFE;--ink-silver: #c0b8d0;--ink-soft: #8a82a0;--ink-name: #FEFEFE;--tex-paper: url(/assets/kit/tex-paper.webp);--tex-grain: url(/assets/kit/tex-grain.webp);--tex-inkwash: url(/assets/kit/tex-inkwash.webp);--tex-weave: url(/assets/kit/tex-weave.webp);--tex-silk: url(/assets/kit/tex-silk.webp);--orn-nameplate: url(/assets/kit/frame-nameplate.webp);--orn-panel-edge: url(/assets/kit/frame-panel-edge.webp);--orn-corner: url(/assets/kit/frame-corner.webp);--orn-brush: url(/assets/kit/frame-divider-brush.webp);--orn-plaque: url(/assets/kit/frame-choice-plaque.webp);--orn-scroll: url(/assets/kit/frame-scroll.webp);--orn-bracket: url(/assets/kit/frame-hud-bracket.webp);--orn-drawer: url(/assets/kit/frame-drawer-header.webp);--orn-tab-rule: url(/assets/kit/frame-tab-rule.webp);--orn-medallion: url(/assets/kit/medallion-small.webp);--dialog-bg: rgba(0, 0, 0, .55);--dialog-border: transparent;--dialog-panel-bg: linear-gradient( 180deg, rgba(8, 6, 14, .3) 0px, rgba(8, 6, 14, .5) 12px, rgba(8, 6, 14, .5) 100% );--thinking-pill-bg: linear-gradient( 180deg, rgba(8, 6, 14, .72) 0%, rgba(8, 6, 14, .88) 100% );--divider-line: rgba(255, 255, 255, .1);--card-bg: rgba(10, 8, 18, .92);--card-border: rgba(140, 132, 148, .1);--card-accent: rgba(var(--gold-rgb), .34);--shadow-panel: 0 18px 48px -12px rgba(0, 0, 0, .78);--shadow-soft: 0 4px 14px rgba(0, 0, 0, .42);--shadow-lift: 0 10px 26px -8px rgba(0, 0, 0, .66);--glow-gold: 0 0 0 1px rgba(var(--gold-rgb), .3), 0 0 18px -4px rgba(var(--gold-rgb), .28);--text-shadow-dialog: -.5px -.5px .5px rgba(0,0,0,.9), .5px -.5px .5px rgba(0,0,0,.9), -.5px .5px .5px rgba(0,0,0,.9), .5px .5px .5px rgba(0,0,0,.9), 0 1px 2px rgba(0,0,0,.85), 0 2px 8px rgba(0,0,0,.55);--text-shadow-name: -1px -1px 1px #000, 1px -1px 1px #000, -1px 1px 1px #000, 1px 1px 1px #000, 2px 2px 3px #000;--progress-track: rgba(140, 130, 150, .1);--progress-fill: var(--accent-sakura);--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--radius-pill: 999px;--radius-card: 3px;--bevel: 10px;--bevel-sm: 6px;--chamfer-c: rgba(192, 184, 208, .34);--chamfer-tl: linear-gradient(315deg, transparent calc(50% - .7px) , var(--chamfer-c) calc(50% - .7px) , var(--chamfer-c) calc(50% + .7px) , transparent calc(50% + .7px) );--chamfer-br: linear-gradient(135deg, transparent calc(50% - .7px) , var(--chamfer-c) calc(50% - .7px) , var(--chamfer-c) calc(50% + .7px) , transparent calc(50% + .7px) );--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-soft: cubic-bezier(.33, 1, .68, 1);--dur-1: .14s;--dur-2: .24s;--dur-3: .42s;--dur-4: .72s;--transition-fast: .15s cubic-bezier(.16, 1, .3, 1);--transition-normal: .3s cubic-bezier(.16, 1, .3, 1);--measure-narration: clamp(1200px, 92vw, 1920px);--measure-ui: clamp(26rem, 38vw, 44rem)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden}body{color:var(--ink-main);font-family:var(--font-dialog);background:var(--bg-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;line-break:strict}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ca7cfa40;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ca7cfa70}::selection{background:#ca7cfa4d;color:var(--ink-name)}:focus-visible{outline:1px solid rgba(202,124,250,.75);outline-offset:2px}.galgame-shell{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:clip;-webkit-user-select:none;user-select:none;cursor:url(/assets/cursor/quill-32.png) 5 5,default;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}.galgame-shell:before,.galgame-shell:after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 8%,rgba(184,144,80,.58) 50%,transparent 92%);z-index:60;pointer-events:none}.galgame-shell:before{top:0}.galgame-shell:after{bottom:0}.opening-preload-bank{position:fixed;width:1px;height:1px;left:-10000px;top:-10000px;overflow:hidden;opacity:0;pointer-events:none}.opening-preload-bank video,.opening-preload-bank img{width:1px;height:1px}.opening-cinematic-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;overflow:hidden;background:#000;pointer-events:none;contain:strict}.opening-interaction-shield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;pointer-events:auto;touch-action:none}.opening-cinematic-video,.opening-cinematic-still{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}.opening-cinematic-still{z-index:0}.opening-cinematic-video{z-index:1}.opening-story-title{position:absolute;z-index:3;left:50%;top:50%;display:flex;align-items:flex-start;gap:10px;transform:translate(-50%,-50%);color:#efebdaf5;font-family:FZKai-Z03,STKaiti,KaiTi,DFKai-SB,serif;text-shadow:0 2px 2px rgba(0,0,0,.92),0 0 12px rgba(0,0,0,.82),0 0 34px rgba(0,0,0,.58);filter:drop-shadow(0 3px 1px rgba(0,0,0,.55));animation:opening-story-title-life 3s ease-in-out both}.opening-story-title strong{writing-mode:vertical-rl;text-orientation:upright;font-size:min(clamp(58px,7.2vw,104px),var(--opening-title-fit, 104px));font-weight:500;line-height:.96;letter-spacing:.08em;white-space:nowrap}.opening-story-maxim{writing-mode:vertical-rl;text-orientation:upright;margin-top:10px;font-size:min(clamp(20px,2vw,31px),var(--opening-maxim-fit, 31px));line-height:1.15;letter-spacing:.09em;font-weight:400;opacity:.88;white-space:nowrap}.opening-story-title-fixed{position:fixed;z-index:10004;pointer-events:none}.galgame-shell:has(>.opening-enter-overlay)>:not(.opening-preload-bank):not(.opening-interaction-shield):not(.opening-cinematic-overlay):not(.opening-story-title-fixed):not(.opening-ui-reveal-marker):not(.bg-layer):not(.app-vignette),.galgame-shell:has(>.opening-story-title-fixed)>:not(.opening-preload-bank):not(.opening-interaction-shield):not(.opening-cinematic-overlay):not(.opening-story-title-fixed):not(.opening-ui-reveal-marker):not(.bg-layer):not(.app-vignette){opacity:0!important;visibility:hidden!important;pointer-events:none!important}.opening-ui-reveal-marker{position:fixed;width:0;height:0;overflow:hidden;pointer-events:none}.galgame-shell:has(>.opening-ui-reveal-marker)>:not(.opening-preload-bank):not(.opening-interaction-shield):not(.opening-cinematic-overlay):not(.opening-story-title-fixed):not(.opening-ui-reveal-marker):not(.bg-layer):not(.app-vignette){animation:opening-game-ui-fade-in .7s ease-out both!important}@keyframes opening-game-ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes opening-story-title-life{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px)) scale(.98);filter:blur(3px)}16%,70%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}to{opacity:0;transform:translate(-50%,calc(-50% - 5px)) scale(1.01);filter:blur(1px)}}@media (max-width: 700px){.opening-story-title strong{font-size:min(clamp(48px,15vw,78px),var(--opening-title-fit, 78px))}.opening-story-maxim{font-size:min(clamp(18px,6vw,28px),var(--opening-maxim-fit, 28px))}}.bg-layer.opening-background-locked:before,.bg-layer.opening-background-locked:after{display:none}.bg-layer img.opening-background-still{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:none;transition:none;filter:none;z-index:5}.galgame-shell.opening-background-active .welcome-screen{background:transparent}.galgame-shell.opening-background-active .welcome-screen:before,.galgame-shell.opening-background-active .app-vignette{display:none}.bg-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--bg-main);overflow:hidden}.bg-layer img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.1);transition:opacity .3s ease,filter .5s ease}.bg-layer img.bg-fallback{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;opacity:1}.bg-layer .bg-placeholder{width:100%;height:100%;background:var(--bg-main);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-family:var(--font-ui);font-size:.8rem;letter-spacing:.15em;opacity:.3}.bg-layer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(to bottom,#00000059,#0000000d 18%,#0000 42%,#0000 58%,#00000059 78%,#000000c7 96%);pointer-events:none}.weather-layer{position:absolute;top:-14%;right:-14%;bottom:-14%;left:-14%;z-index:6;overflow:hidden;pointer-events:none;isolation:isolate;contain:layout paint style;animation:weather-layer-arrive .64s var(--ease-out) both}.weather-layer:before,.weather-layer:after{content:"";position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;background-repeat:repeat;background-position:center;pointer-events:none;will-change:background-position;mix-blend-mode:screen}.weather-rain{background:linear-gradient(180deg,rgba(46,71,96,.035),transparent 58%)}.weather-rain:before,.weather-rain:after{background-image:url(/assets/kit/vfx-rain.webp);filter:grayscale(1) sepia(.12) hue-rotate(156deg) saturate(.72) brightness(1.28)}.weather-rain:before{background-size:72vw auto;opacity:.16;animation:weather-rain-fall 1.25s linear infinite}.weather-rain:after{background-size:52vw auto;opacity:.075;animation:weather-rain-fall-far 1.85s linear infinite}.weather-snow:before,.weather-snow:after{background-image:url(/assets/kit/vfx-snow.webp);filter:grayscale(1) brightness(1.42) contrast(.88)}.weather-snow:before{background-size:74vw auto;opacity:.13;animation:weather-snow-drift 10.5s linear infinite}.weather-snow:after{background-size:48vw auto;opacity:.065;animation:weather-snow-drift-far 15s linear infinite}.weather-fog:before{top:2%;right:-12%;bottom:-2%;left:-12%;background-image:url(/assets/kit/vfx-mist.webp);background-repeat:repeat-x;background-position:center bottom;background-size:108vw auto;opacity:.11;filter:grayscale(1) brightness(1.34) blur(10px);animation:weather-fog-drift 22s ease-in-out infinite alternate}.weather-fog:after{top:22%;right:-18%;bottom:-10%;left:-18%;background:radial-gradient(ellipse at 20% 78%,rgba(202,213,222,.1),transparent 48%),radial-gradient(ellipse at 78% 72%,rgba(184,199,212,.08),transparent 50%);opacity:.8;animation:weather-fog-drift-far 30s ease-in-out infinite alternate}@keyframes weather-layer-arrive{0%{opacity:0}to{opacity:1}}@keyframes weather-rain-fall{0%{background-position:50% 50%}to{background-position:calc(50% - 72vw) calc(50% + 47.981vw)}}@keyframes weather-rain-fall-far{0%{background-position:50% 50%}to{background-position:calc(50% - 52vw) calc(50% + 34.653vw)}}@keyframes weather-snow-drift{0%{background-position:50% 50%}to{background-position:calc(50% + 74vw) calc(50% + 49.314vw)}}@keyframes weather-snow-drift-far{0%{background-position:50% 50%}to{background-position:calc(50% - 48vw) calc(50% + 31.988vw)}}@keyframes weather-fog-drift{0%{transform:translate3d(-3%,0,0) scale(1.02)}to{transform:translate3d(3%,-1%,0) scale(1.06)}}@keyframes weather-fog-drift-far{0%{transform:translate3d(2%,0,0)}to{transform:translate3d(-3%,-2%,0)}}@media (prefers-reduced-motion: reduce){.weather-layer,.weather-layer:before,.weather-layer:after{animation:none!important;will-change:auto}.weather-rain:before{opacity:.09}.weather-snow:before{opacity:.08}.weather-fog:before{opacity:.075}.weather-rain:after,.weather-snow:after{display:none}}.character-layer{position:absolute;top:14vh;bottom:auto;left:50%;transform:translate(-50%);z-index:10;width:min(58vw,70vh);min-width:0;height:88vh;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;clip-path:inset(0 0 2% 0);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 3.5%,#000 90%,rgba(0,0,0,.6) 97%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 3.5%,#000 90%,rgba(0,0,0,.6) 97%,transparent 100%)}.character-layer:after{content:"";position:absolute;bottom:20%;left:50%;transform:translate(-50%);width:60%;height:26px;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(0,0,0,.5) 0%,transparent 72%);pointer-events:none}.character-layer img{height:100%;max-width:92vw;object-fit:contain;object-position:bottom center;filter:url(#npc-portrait-edge-clean) drop-shadow(0 4px 24px rgba(0,0,0,.6));transition:opacity .3s ease;animation:char-enter .5s ease}.character-layer .portrait-image-toggle{width:100%;min-width:0;min-height:0}.character-layer .npc-portrait-media--stage{width:100%;min-width:0;min-height:0;overflow:hidden}.character-layer .npc-portrait-media--stage>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}.portrait-image-toggle{position:relative;height:100%;max-width:92vw;display:flex;align-items:flex-end;justify-content:center;padding:0;border:0;background:transparent;color:inherit;pointer-events:auto;cursor:pointer}.portrait-image-toggle:disabled{cursor:default}.portrait-image-toggle:focus-visible{outline:2px solid rgba(239,205,132,.9);outline-offset:-8px;border-radius:42% 42% 12% 12%}.portrait-upgrade-transition .portrait-image-toggle img{animation:portrait-upgrade-arrival .76s cubic-bezier(.18,.76,.24,1) both}.portrait-upgrade-texture{position:absolute;top:-2%;right:0;bottom:3%;left:0;pointer-events:none;background:url(/assets/effects/portrait-upgrade-texture.png) center / contain no-repeat;mix-blend-mode:screen;filter:saturate(.72) brightness(.92);animation:portrait-upgrade-texture .86s cubic-bezier(.2,.7,.25,1) both}@keyframes portrait-upgrade-arrival{0%{opacity:.18;transform:scale(.986);filter:url(#npc-portrait-edge-clean) brightness(1.16) saturate(.82)}38%{opacity:.92;transform:scale(1.006);filter:url(#npc-portrait-edge-clean) brightness(1.08) saturate(.96)}to{opacity:1;transform:scale(1);filter:url(#npc-portrait-edge-clean) drop-shadow(0 4px 24px rgba(0,0,0,.6))}}@keyframes portrait-upgrade-texture{0%{opacity:0;transform:scale(.91) rotate(-2deg)}24%{opacity:.42}62%{opacity:.26}to{opacity:0;transform:scale(1.035) rotate(1.2deg)}}@keyframes char-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.top-hud{position:absolute;top:0;left:0;right:0;z-index:15;display:flex;align-items:flex-start;justify-content:center;padding:2vh 0 0;pointer-events:none}.chapter-badge{pointer-events:auto;background:transparent;padding:6px 24px;font-family:var(--font-title);font-size:clamp(.86rem,1.7vh,1.05rem);font-weight:400;color:#eedcb0f0;letter-spacing:.22em;display:inline-flex;align-items:center;gap:14px;text-shadow:0 1px 4px rgba(0,0,0,.92),0 0 10px rgba(0,0,0,.45)}.chapter-badge:before,.chapter-badge:after{content:"";width:40px;height:1px}.chapter-badge:before{background:linear-gradient(90deg,transparent,rgba(184,144,80,.6))}.chapter-badge:after{background:linear-gradient(90deg,rgba(184,144,80,.6),transparent)}.chapter-badge .phase-dot{width:5px;height:5px;border-radius:50%;background:var(--accent-sakura);box-shadow:0 0 4px rgba(var(--gold-rgb),.6);flex-shrink:0}.hud-right{pointer-events:auto;position:absolute;top:1vh;right:2vw;display:flex;gap:8px;align-items:center;padding:10px 14px}.phase-advance-btn{border:1px solid rgba(var(--gold-rgb),.38);background:#08060eb8;color:#fefefe;border-radius:999px;padding:4px 12px;font-family:var(--font-ui);font-size:.72rem;letter-spacing:.04em;cursor:pointer;text-shadow:1px 1px 2px #000;transition:color .2s ease,border-color .2s ease,background .2s ease}.phase-advance-btn:hover:not(:disabled){color:var(--accent-sakura);border-color:rgba(var(--gold-rgb),.7);background:#0c0914d9}.phase-advance-btn:disabled{opacity:.45;cursor:not-allowed}.streaming-indicator{display:flex;align-items:center;gap:5px;background:#0000008c;border-radius:16px;padding:4px 10px 4px 7px;font-family:var(--font-ui);font-size:.66rem;color:var(--ink-silver);text-shadow:1px 1px 2px #000}.gen-status-list{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.gen-item{position:relative;cursor:default}.gen-item .gen-detail{display:none;position:absolute;top:calc(100% + 4px);right:0;flex-direction:column;gap:2px;background:#000000d1;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:6px 10px;font-size:.62rem;color:var(--ink-soft);white-space:nowrap;max-width:90vw;z-index:50}.gen-item .gen-detail:before{content:"";position:absolute;top:-4px;left:0;right:0;height:4px}.gen-item:hover .gen-detail{display:flex}.streaming-dots{display:flex;gap:2px;align-items:center}.streaming-dots span{width:3px;height:3px;border-radius:50%;background:var(--accent-sakura);animation:dot-pulse 1.4s ease infinite}.streaming-dots span:nth-child(2){animation-delay:.2s}.streaming-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,70%,to{opacity:.25}35%{opacity:1}}.juben-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(5vh,7vh,10vh) 24px calc(24vh + clamp(52px,7vh,76px));background:radial-gradient(120% 80% at 50% 24%,#06050cb8,#020205e0);backdrop-filter:blur(5px) saturate(.85);-webkit-backdrop-filter:blur(5px) saturate(.85);pointer-events:none;animation:fade-in var(--dur-3) var(--ease-out)}.juben-overlay-inner{position:relative;width:100%;max-width:min(520px,84vw);min-height:0;pointer-events:auto;background:radial-gradient(circle at 50% 24%,rgba(var(--gold-rgb),.12) 0%,transparent 26%),url(/assets/loading/weaving-story.png) center 14px / auto clamp(120px,20vh,178px) no-repeat,linear-gradient(180deg,#0d0c12e6,#07070cf0);border:1px solid rgba(var(--gold-rgb),.18);border-radius:var(--radius-lg);padding:clamp(140px,23vh,200px) clamp(26px,3vw,38px) clamp(22px,3vh,32px);box-shadow:var(--shadow-panel),0 0 90px -34px rgba(var(--gold-rgb),.3);overflow:hidden;text-align:center}.juben-overlay-inner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/ui/dark-texture-2048.png) repeat;opacity:.06;pointer-events:none;mix-blend-mode:overlay}.juben-overlay-inner>*{position:relative;z-index:1}.juben-phase-label{font-family:var(--font-title);font-size:clamp(1.05rem,1.9vh,1.55rem);color:var(--gold-100);letter-spacing:.24em;margin-bottom:10px;animation:juben-breathe 2.4s ease-in-out infinite}@keyframes juben-breathe{0%,to{opacity:.72}50%{opacity:1}}.juben-phase-step{font-family:var(--font-ui);font-size:clamp(.82rem,1.2vh,1rem);color:var(--ink-soft);margin-bottom:18px}.juben-progress-track{width:100%;height:clamp(4px,.7vh,7px);border-radius:999px;background:var(--progress-track);overflow:hidden;margin-bottom:10px;box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.08)}.juben-progress-fill{height:100%;background:var(--progress-fill);border-radius:999px;transition:width var(--dur-3) var(--ease-out);box-shadow:0 0 10px rgba(var(--gold-rgb),.55),0 0 3px rgba(var(--gold-rgb),.85)}.juben-progress-nums{display:flex;justify-content:space-between;font-family:var(--font-ui);font-size:clamp(.78rem,1.1vh,.92rem);color:var(--ink-soft);margin-bottom:12px}.dialog-box{position:absolute;bottom:0;left:0;right:0;z-index:30;max-height:min(86vh,calc(100vh - 148px));min-height:clamp(112px,15vh,180px);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:calc(clamp(52px,7vh,76px) + env(safe-area-inset-bottom,4px));background:transparent;animation:dialog-rise var(--dur-3) var(--ease-out)}.dialog-box.dialog-box-collapsed{height:0;min-height:0;max-height:0;padding:0;pointer-events:none;animation:none}.dialog-box.dialog-box-collapsed .dialog-inner{display:none}.dialog-reopen-handle{position:fixed;right:2vw;bottom:calc(clamp(52px,7vh,76px) + env(safe-area-inset-bottom,4px) + 8px);z-index:42;display:inline-flex;align-items:center;gap:6px;pointer-events:auto;border:1px solid rgba(var(--gold-rgb),.34);border-radius:var(--radius-sm);background:#08080edb;color:rgba(var(--gold-hi-rgb),.82);padding:6px 10px;font-family:var(--font-ui);font-size:.68rem;letter-spacing:.08em;cursor:pointer;box-shadow:0 4px 16px #0000006b}.dialog-reopen-handle:hover,.dialog-reopen-handle:focus-visible{color:var(--gold-050);border-color:rgba(var(--gold-hi-rgb),.72);outline:none}.dialog-phase-advance-btn{position:absolute;right:2.2vw;bottom:16vh;z-index:36;border:1px solid rgba(var(--gold-rgb),.45);background:#08060ebd;color:#fefefe;border-radius:999px;padding:6px 14px;font-family:var(--font-ui);font-size:.76rem;letter-spacing:.04em;cursor:pointer;text-shadow:1px 1px 2px #000;transition:color .2s ease,border-color .2s ease,background .2s ease}.dialog-phase-advance-btn:hover:not(:disabled){color:var(--accent-sakura);border-color:rgba(var(--gold-rgb),.75);background:#0c0914e0}.dialog-phase-advance-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes dialog-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.dialog-inner{position:relative;z-index:3;display:flex;flex-direction:column;width:min(var(--measure-narration),92vw);margin:0 auto;padding:clamp(16px,2.4vh,26px) clamp(18px,2vw,34px) clamp(28px,4vh,48px);max-height:calc(min(86vh,100vh - 148px) - clamp(52px,7vh,76px));overflow:visible;color:var(--ink-main);text-shadow:var(--text-shadow-dialog);background:var(--dialog-panel-bg);border:1px solid rgba(var(--gold-hi-rgb),.16);border-radius:clamp(8px,1vw,16px);box-shadow:0 -10px 34px -24px #000000e0,0 12px 30px -24px #000000b8}.dialog-inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12px);mask-image:linear-gradient(180deg,transparent 0,#000 12px);pointer-events:none}.dialog-inner:after{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;bottom:0;background:var(--tex-paper) repeat;background-size:512px 512px;opacity:.055;mix-blend-mode:overlay;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22%,#000 100%);mask-image:linear-gradient(180deg,transparent 0,#000 22%,#000 100%);pointer-events:none}.speaker-name-tag{display:inline-flex;align-items:center;justify-content:center;gap:0;background:none;border:none;border-radius:0;min-width:clamp(190px,16vw,268px);padding:.55vh clamp(30px,3.4vw,58px);margin-bottom:1.1vh;margin-left:0;font-family:var(--font-name);font-size:clamp(17px,2.9vh,30px);font-weight:500;color:var(--ink-name);letter-spacing:.16em;text-indent:.16em;text-shadow:var(--text-shadow-name);position:relative;align-self:flex-start;flex:0 0 auto}.speaker-name-tag:before{content:"";position:absolute;top:-.3vh;right:-.2vw;bottom:-.3vh;left:-.2vw;width:auto;height:auto;background:var(--orn-nameplate) center / 100% 100% no-repeat;opacity:1;filter:brightness(1.25) saturate(1.05);-webkit-mask-image:linear-gradient(90deg,#000 0,#000 30%,transparent 36%,transparent 64%,#000 70%,#000 100%);mask-image:linear-gradient(90deg,#000 0,#000 30%,transparent 36%,transparent 64%,#000 70%,#000 100%);pointer-events:none;flex-shrink:0}.speaker-name-tag:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;flex:none;height:auto;background:radial-gradient(ellipse 62% 130% at 50% 55%,rgba(var(--gold-rgb),.16) 0%,transparent 72%);pointer-events:none;z-index:-1}.speaker-name-tag .name-icon{display:none}.speaker-name-tag.narrator{background:none;border-color:transparent;color:#d5b9d8;font-style:italic;font-size:clamp(14px,2vh,19px);letter-spacing:.36em;text-indent:.36em;min-width:0;padding:.2vh 0;margin-bottom:.85vh;margin-left:34px;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 14px rgba(184,145,202,.18)}.speaker-name-tag.narrator:before{inset:auto auto auto -30px;width:22px;height:1px;top:50%;background:linear-gradient(90deg,transparent,rgba(var(--gold-rgb),.8));opacity:1}.speaker-name-tag.narrator:after{content:"";position:absolute;inset:auto auto auto calc(100% + 8px);top:50%;width:34px;height:1px;background:linear-gradient(90deg,rgba(var(--gold-rgb),.8),transparent)}.dialog-text{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;font-family:var(--font-dialog);font-size:clamp(calc(15px * var(--ui-font-scale, 1)),calc(2.6vh * var(--ui-font-scale, 1)),calc(27px * var(--ui-font-scale, 1)));line-height:1.78;color:var(--ink-main);letter-spacing:.04em;cursor:pointer;padding:0 1vw;text-shadow:var(--text-shadow-dialog);word-break:normal;overflow-wrap:break-word}.dialog-text .cursor{display:inline-block;width:2px;height:1em;background:#fff;margin-left:2px;vertical-align:middle;animation:blink 1s infinite}.md-root{display:inline}.md-root .md-p{display:block;margin:0;white-space:pre-wrap}.md-root .md-p+.md-p{margin-top:.5em}.md-root strong,.md-root b{color:var(--accent-sakura2, #ffd6ec);font-weight:700}.md-root em,.md-root i{font-style:italic;color:var(--accent-sakura2, #ffd6ec)}.md-root .md-ul,.md-root .md-ol{display:block;margin:.3em 0;padding-left:1.5em}.md-root .md-li{margin:.15em 0}.md-root .md-h{display:block;font-weight:700;margin:.4em 0 .2em}.md-root .md-h1{font-size:1.18em}.md-root .md-h2{font-size:1.1em}.md-root .md-h3{font-size:1.04em}.md-root .md-h4{font-size:1em}.md-root .md-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;padding:.05em .35em;border-radius:3px;background:#ffffff1a;color:var(--accent-sakura2, #ffd6ec)}.md-root .md-pre{display:block;margin:.4em 0;padding:.5em .7em;border-radius:4px;background:#00000040;white-space:pre-wrap;word-break:break-word}.md-root .md-pre .md-code{background:transparent;padding:0}.md-root .md-quote{display:block;margin:.3em 0;padding-left:.8em;border-left:2px solid rgba(255,255,255,.3);opacity:.92}.md-root .md-hr{border:0;border-top:1px solid rgba(255,255,255,.2);margin:.6em 0}.md-root .md-link{color:var(--accent-sakura2, #ffd6ec);text-decoration:underline}.history-item-body{white-space:pre-wrap;word-break:normal}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.phase-confirm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008f;display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease}.phase-confirm-modal{position:relative;width:min(620px,88vw);background:#0a0812f2;border:1px solid rgba(var(--gold-rgb),.24);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel),0 0 80px -30px rgba(var(--gold-rgb),.26);padding:clamp(20px,2.6vh,30px) clamp(18px,2.2vw,34px) clamp(16px,2.2vh,26px);transform-origin:center;animation:phase-confirm-rise var(--dur-3) var(--ease-out)}.phase-confirm-modal:before{content:"";position:absolute;top:0;left:16%;right:16%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-sakura),transparent);opacity:.7}@keyframes phase-confirm-rise{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.phase-confirm-title{font-family:var(--font-name);font-size:clamp(1rem,1.6vh,1.4rem);color:var(--ink-name);letter-spacing:.04em;margin-bottom:12px;text-shadow:var(--text-shadow-name)}.phase-confirm-desc{font-family:var(--font-dialog);font-size:clamp(.86rem,1.3vh,1.05rem);line-height:1.7;color:var(--ink-main);text-shadow:var(--text-shadow-dialog)}.phase-confirm-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:12px}.phase-confirm-cancel,.phase-confirm-ok{border-radius:var(--radius-md);padding:8px 18px;font-family:var(--font-ui);font-size:clamp(.78rem,1.1vh,.95rem);cursor:pointer;transition:var(--transition-fast)}.phase-confirm-cancel{border:1px solid rgba(255,255,255,.14);background:transparent;color:var(--ink-silver)}.phase-confirm-cancel:hover{color:var(--ink-name)}.phase-confirm-ok{border:1px solid rgba(var(--gold-rgb),.45);background:rgba(var(--gold-rgb),.14);color:var(--ink-name)}.phase-confirm-ok:hover:not(:disabled){color:var(--accent-sakura);border-color:rgba(var(--gold-rgb),.72);background:rgba(var(--gold-rgb),.2);box-shadow:0 0 0 1px rgba(var(--gold-rgb),.45),0 2px 10px rgba(var(--gold-rgb),.18)}.phase-confirm-ok:disabled{opacity:.45;cursor:not-allowed}@keyframes ctc-pulse{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:.9;transform:translateY(2px)}}.juben-guide-badge{display:inline-flex;align-items:center;align-self:flex-start;flex:0 0 auto;gap:5px;background:rgba(var(--gold-rgb),.1);border:1px solid rgba(var(--gold-rgb),.22);border-radius:var(--radius-sm);padding:2px 8px;font-family:var(--font-ui);font-size:.68rem;color:var(--gold-200);margin-bottom:6px;text-shadow:1px 1px 2px #000}.dialog-options{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;align-self:center;width:100%;max-inline-size:min(100%,68rem);gap:clamp(6px,.85vh,10px);margin-top:clamp(9px,1.5vh,16px);padding-top:clamp(11px,1.7vh,18px);position:relative;border-top:none;counter-reset:choice}.dialog-options:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%,-46%);width:100%;height:clamp(10px,1.4vh,16px);background:var(--orn-brush) center / 100% 100% no-repeat;opacity:.42;pointer-events:none}.dialog-options>*{flex:0 0 auto}.option-btn{position:relative;width:100%;text-align:left;background:linear-gradient(180deg,rgba(var(--gold-rgb),.105),rgba(var(--gold-rgb),.062) 46%,rgba(var(--gold-rgb),.03)),#12111a6b;border:1px solid rgba(var(--gold-rgb),.34);box-shadow:0 3px 12px -5px #000000b8,inset 0 1px rgba(var(--gold-hi-rgb),.13);border-radius:var(--radius-md);padding:clamp(11px,1.55vh,18px) clamp(98px,8vw,118px) clamp(11px,1.55vh,18px) clamp(44px,3.4vw,58px);font-family:var(--font-dialog);font-size:clamp(14px,2.25vh,23px);font-weight:500;line-height:1.6;color:rgba(var(--gold-hi-rgb),.94);cursor:pointer;letter-spacing:.035em;text-shadow:0 1px 3px rgba(0,0,0,.75);transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.option-btn:before{counter-increment:choice;content:counter(choice);position:absolute;left:clamp(14px,1.15vw,20px);top:50%;transform:translateY(-50%);width:clamp(21px,1.6vw,27px);height:clamp(21px,1.6vw,27px);display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:clamp(10px,1.2vh,13px);font-weight:600;letter-spacing:0;line-height:1;color:rgba(var(--gold-rgb),.9);border:1px solid rgba(var(--gold-rgb),.3);border-radius:50%;text-shadow:none;transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.option-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding-inline:clamp(14px,1.2vw,20px);color:rgba(var(--gold-hi-rgb),.82);font-family:var(--font-ui);font-size:clamp(10px,1.3vh,12px);letter-spacing:.08em;text-shadow:0 1px 2px rgba(0,0,0,.92);pointer-events:none;background:radial-gradient(120% 180% at 0% 50%,rgba(var(--gold-rgb),.13) 0%,transparent 58%);opacity:0;transition:opacity var(--transition-normal)}.option-btn:hover:not(:disabled){color:var(--gold-050);border-color:rgba(var(--gold-hi-rgb),.68);background-color:#201d2685;transform:translate(3px);box-shadow:0 0 0 1px rgba(var(--gold-rgb),.16),0 8px 22px -10px #000c,inset 0 1px rgba(var(--gold-hi-rgb),.2),inset 0 0 30px -12px rgba(var(--gold-rgb),.4)}.option-btn:hover:not(:disabled):before{border-color:rgba(var(--gold-rgb),.85);background-color:rgba(var(--gold-rgb),.16);color:var(--gold-050)}.option-btn:hover:not(:disabled):after{content:"点击即行动";opacity:1}.option-btn:active:not(:disabled){transform:translate(1px) scale(.996);background-color:rgba(var(--gold-rgb),.1)}.option-btn:disabled{opacity:.4;cursor:not-allowed}.option-advance-btn{width:100%;text-align:center;border:1px solid rgba(var(--gold-rgb),.52);background:linear-gradient(180deg,rgba(var(--gold-rgb),.18),rgba(var(--gold-rgb),.08)),#08060ed1;box-shadow:0 0 0 1px #ffffff08 inset,0 10px 24px #0000003d;border-radius:18px;padding:1.5vh 2.2vw;font-family:var(--font-dialog);font-size:2.05vh;font-weight:700;line-height:1.45;color:#fff6f4;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease;text-shadow:1px 1px 2px rgba(0,0,0,.7),0 0 10px rgba(var(--gold-rgb),.14)}.option-advance-btn:hover:not(:disabled){transform:translateY(-1px);border-color:rgba(var(--gold-rgb),.8);background:linear-gradient(180deg,rgba(var(--gold-rgb),.24),rgba(var(--gold-rgb),.11)),#0c0914e6;color:#fff}.option-advance-btn:disabled{opacity:.42;cursor:not-allowed;transform:none}.persona-direction-card{width:100%;text-align:left;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:1.4vh 1.8vw;font-family:var(--font-dialog);font-size:2.05vh;line-height:1.5;color:var(--ink-silver);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);text-shadow:var(--text-shadow-dialog);opacity:0;animation:persona-card-in var(--transition-normal) forwards}.persona-direction-card:hover:not(:disabled),.persona-direction-card:focus-visible{outline:none;border-color:var(--accent-sakura);color:var(--ink-main);transform:translateY(-1px)}.persona-direction-card:disabled{opacity:.4;cursor:not-allowed;transform:none}@keyframes persona-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.persona-direction-card{animation:none;opacity:1}.persona-direction-card:hover:not(:disabled){transform:none}}.option-custom-input{width:100%;display:flex;align-items:center;gap:8px;margin-top:1vh}.option-custom-input textarea{flex:1;resize:none;min-height:40px;max-height:40px;border-radius:0;border:1px solid rgba(var(--gold-rgb),.14);border-top-color:#00000080;background:#0000006b;box-shadow:inset 0 2px 6px -2px #000c;color:var(--ink-main);font-family:var(--font-dialog);font-size:clamp(13px,1.85vh,17px);line-height:1.55;padding:9px 14px;outline:none;text-shadow:0 1px 2px rgba(0,0,0,.8);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.option-custom-input textarea:focus{border-color:rgba(var(--gold-rgb),.48);background-color:#04040899;box-shadow:inset 0 2px 6px -2px #000c,0 0 0 1px rgba(var(--gold-rgb),.18)}.option-custom-input textarea::placeholder{color:rgba(var(--gold-hi-rgb),.34);letter-spacing:.04em}.option-custom-send{border:1px solid rgba(var(--gold-rgb),.34);border-radius:var(--radius-md);background:linear-gradient(180deg,rgba(var(--gold-rgb),.2),rgba(var(--gold-rgb),.08));color:rgba(var(--gold-hi-rgb),.88);font-family:var(--font-ui);font-size:.8rem;letter-spacing:.12em;min-height:40px;padding:8px 18px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap}.option-custom-send:hover:not(:disabled){color:var(--gold-050);border-color:rgba(var(--gold-rgb),.72);background:linear-gradient(180deg,rgba(var(--gold-rgb),.32),rgba(var(--gold-rgb),.14));box-shadow:0 0 16px -6px rgba(var(--gold-rgb),.6)}.option-custom-send:disabled{opacity:1;cursor:not-allowed;background:#1210168c;border-color:rgba(var(--gold-rgb),.22);color:rgba(var(--gold-hi-rgb),.5);box-shadow:none}.control-bar{position:absolute;bottom:0;left:0;right:0;z-index:40;height:clamp(40px,5.2vh,60px);background:linear-gradient(180deg,#04050a2e,#04050aad 42%,#030408f0);backdrop-filter:blur(4px) saturate(.86);-webkit-backdrop-filter:blur(4px) saturate(.86);display:flex;align-items:center;justify-content:center;padding:0 clamp(12px,3vw,56px);padding-bottom:env(safe-area-inset-bottom,4px);gap:clamp(1.2vw,2vw,30px);transform:translateY(0);opacity:.94;transition:transform var(--transition-normal),opacity var(--transition-normal)}.control-bar:before{content:"";position:absolute;top:0;left:6%;right:6%;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--gold-rgb),.3) 22%,rgba(var(--gold-rgb),.3) 78%,transparent);pointer-events:none}@media (hover: hover) and (pointer: fine){.control-bar{transform:translateY(0);opacity:.9}.control-bar:hover{opacity:1}}.ctrl-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:none;border-radius:var(--radius-sm);color:rgba(var(--gold-hi-rgb),.76);cursor:pointer;padding:clamp(4px,.6vh,8px) clamp(9px,1.1vw,16px);transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast);font-family:var(--font-ui);min-width:0;opacity:1}.ctrl-btn:after{content:"";position:absolute;left:50%;bottom:2px;width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-200),transparent);transform:translate(-50%);transition:width var(--transition-normal)}.ctrl-btn:hover{color:var(--gold-050);background:transparent;box-shadow:none}.ctrl-btn:focus-visible{outline:2px solid rgba(var(--gold-hi-rgb),.78);outline-offset:2px;color:var(--gold-050)}.ctrl-btn:hover:after{width:78%}.ctrl-btn:active:not(:disabled){transform:scale(.94);transition:transform .1s var(--ease-out)}.ctrl-btn:disabled{opacity:.3;cursor:not-allowed}.ctrl-btn.ctrl-slot-reserved{visibility:hidden;pointer-events:none}.ctrl-btn.active{color:var(--accent-sakura);opacity:1;background:radial-gradient(ellipse at 50% 92%,rgba(var(--accent-sakura-rgb),.18) 0%,rgba(var(--accent-sakura-rgb),.04) 54%,transparent 78%);text-shadow:0 0 10px rgba(var(--accent-sakura-rgb),.42)}.ctrl-btn.active:after{width:78%}.ctrl-btn svg{width:clamp(15px,1.75vh,23px);height:clamp(15px,1.75vh,23px);flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.85))}.ctrl-btn .ctrl-label{font-size:clamp(.64rem,.9vh,.78rem);line-height:1;letter-spacing:.14em;text-transform:uppercase;color:rgba(var(--gold-hi-rgb),.82);text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 6px rgba(0,0,0,.7);opacity:1}.ctrl-btn.active .ctrl-label{color:var(--gold-050)}.ctrl-btn.send-btn{color:var(--gold-200)}.ctrl-btn.send-btn:hover{color:var(--gold-050)}.input-panel{position:absolute;bottom:0;left:0;right:0;z-index:45;background:linear-gradient(180deg,#08060e00,#08060eb8 34px,#08060ee6 96px,#08060ef5);border-top:none;padding:clamp(16px,2.4vh,28px) clamp(14px,3vw,40px) calc(clamp(12px,2vh,22px) + env(safe-area-inset-bottom,4px));display:flex;flex-direction:column;align-items:center;gap:8px;animation:slide-up var(--dur-3) var(--ease-out)}.input-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-paper) repeat;background-size:512px 512px;opacity:.05;mix-blend-mode:overlay;pointer-events:none}.input-panel:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:128vw;height:clamp(14px,2vh,24px);background:var(--orn-panel-edge) center / 100% 100% no-repeat;opacity:.42;pointer-events:none}.input-panel>*{position:relative;z-index:1;width:min(var(--measure-narration),92vw)}.input-panel>.input-panel-blur{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:auto;pointer-events:none;backdrop-filter:blur(4px) saturate(.94);-webkit-backdrop-filter:blur(4px) saturate(.94);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 34px);mask-image:linear-gradient(180deg,transparent 0,#000 34px)}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.input-panel textarea{width:min(var(--measure-narration),92vw);background:#00000070;border:1px solid rgba(var(--gold-rgb),.2);border-top-color:#0000008c;box-shadow:inset 0 2px 8px -2px #000000d9;border-radius:0;color:var(--ink-main);font-family:var(--font-dialog);font-size:clamp(14px,1.9vh,18px);line-height:1.7;letter-spacing:.03em;padding:12px 14px;resize:none;field-sizing:content;min-height:2.9em;max-height:168px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.input-panel textarea:focus{border-color:rgba(var(--gold-rgb),.55);background-color:#00000094;box-shadow:inset 0 2px 8px -2px #000000d9,0 0 0 1px rgba(var(--gold-rgb),.2),0 0 24px -10px rgba(var(--gold-rgb),.55)}.input-panel textarea::placeholder{color:rgba(var(--gold-hi-rgb),.62);text-shadow:0 1px 2px rgba(0,0,0,.9)}.input-actions{display:flex;gap:6px;justify-content:flex-end}.input-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.input-footer .input-intent{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:-4px;margin-right:10px}.input-intent-label{font-family:var(--font-ui);font-size:.66rem;letter-spacing:.12em;color:rgba(var(--gold-hi-rgb),.34);padding-right:2px}.input-intent-chip{font-family:var(--font-ui);font-size:.7rem;letter-spacing:.08em;line-height:1;padding:5px 11px;border-radius:999px;cursor:pointer;color:rgba(var(--gold-hi-rgb),.56);background:#ffffff07;border:1px solid rgba(var(--gold-rgb),.2);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.input-intent-chip:hover:not(.active){color:rgba(var(--gold-hi-rgb),.82);border-color:rgba(var(--gold-rgb),.42);background:#ffffff0e}.input-intent-chip.active{color:var(--gold-100);border-color:rgba(var(--gold-rgb),.72);background:rgba(var(--gold-rgb),.14);box-shadow:inset 0 0 12px -6px rgba(var(--gold-rgb),.5)}.input-intent-chip:focus-visible{outline:1px solid rgba(var(--gold-rgb),.7);outline-offset:2px}@media (max-width: 560px){.input-intent-label{display:none}.input-intent-chip{font-size:.66rem;padding:4px 9px}}.input-hint{margin-top:0;flex:0 1 auto}.input-intent--inline{margin-top:.9vh;margin-right:0;margin-bottom:-.3vh}.input-footer .input-actions{margin-left:auto;flex:0 0 auto}.btn-send,.btn-cancel{min-height:38px;border-radius:var(--radius-md);font-family:var(--font-ui);font-size:.82rem;letter-spacing:.14em;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.btn-send{background:linear-gradient(180deg,var(--gold-100) 0%,var(--gold-300) 100%);border:1px solid var(--gold-200);color:var(--ink-950);font-weight:600;padding:8px 24px;box-shadow:inset 0 1px #ffffff47,0 8px 22px -12px rgba(var(--gold-rgb),.7)}.btn-send:hover:not(:disabled){background:linear-gradient(180deg,var(--gold-050) 0%,var(--gold-200) 100%);box-shadow:inset 0 1px #ffffff61,0 10px 26px -12px rgba(var(--gold-rgb),.9)}.btn-send:disabled{opacity:1;cursor:not-allowed;background:linear-gradient(180deg,#1e1b26e6,#0d0d15e6);border-color:rgba(var(--gold-hi-rgb),.44);color:rgba(var(--gold-hi-rgb),.7);text-shadow:0 1px 2px rgba(0,0,0,.92);box-shadow:none}.btn-cancel{background:transparent;border:1px solid rgba(var(--gold-rgb),.12);color:rgba(var(--gold-hi-rgb),.42);padding:8px 18px}.btn-cancel:hover{color:var(--gold-050);border-color:rgba(var(--gold-rgb),.5);background:rgba(var(--gold-rgb),.07)}.drawer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:49;background:radial-gradient(120% 90% at 50% 40%,#06050c57,#0202058f);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fade-in var(--dur-2) var(--ease-out)}.drawer{position:absolute;z-index:50;background:linear-gradient(180deg,#0f1019f9,#08090ffb);border:1px solid rgba(var(--gold-rgb),.16);box-shadow:var(--shadow-panel),0 0 90px -30px rgba(var(--gold-rgb),.16);overflow:hidden;display:flex;flex-direction:column}.drawer:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-paper) repeat;background-size:512px 512px;opacity:.05;mix-blend-mode:overlay;pointer-events:none;z-index:0}.drawer:after{content:"";position:absolute;top:0;bottom:0;width:22px;pointer-events:none;z-index:0}.drawer>*{position:relative;z-index:1}.drawer.drawer-left{top:0;bottom:0;left:0;width:min(430px,92vw);border-radius:0;border-left:none;animation:slide-from-left var(--dur-3) var(--ease-out)}.drawer.drawer-left:after{right:0;background:linear-gradient(270deg,rgba(var(--gold-rgb),.12),transparent)}@keyframes slide-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer.drawer-right{top:0;bottom:0;right:0;width:min(496px,92vw);border-radius:0;border-right:none;animation:slide-from-right var(--dur-3) var(--ease-out)}.drawer.drawer-right:after{left:0;background:linear-gradient(90deg,rgba(var(--gold-rgb),.12),transparent)}@keyframes slide-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 14px;border-bottom:none;flex-shrink:0;position:relative}.drawer-header:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:12px;background:var(--orn-drawer) left center / 100% 100% no-repeat;opacity:.55;pointer-events:none}.drawer-title{font-family:var(--font-title);font-size:1.02rem;color:var(--gold-100);letter-spacing:.2em;text-shadow:0 1px 3px rgba(0,0,0,.8)}.drawer-close{background:transparent;border:1px solid rgba(var(--gold-rgb),.22);border-radius:0;color:rgba(var(--gold-hi-rgb),.66);padding:4px 11px;cursor:pointer;font-family:var(--font-ui);font-size:.72rem;letter-spacing:.1em;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.drawer-close:hover{color:var(--gold-050);border-color:rgba(var(--gold-rgb),.6);background-color:rgba(var(--gold-rgb),.08)}.drawer-body-frame{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;--drawer-fade-size: 24px;--drawer-bottom-space: 68px}.drawer-body{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px 10px var(--drawer-bottom-space);display:flex;flex-direction:column;gap:8px;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - var(--drawer-fade-size)),transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - var(--drawer-fade-size)),transparent 100%)}.drawer-body-frame>.drawer-scroll-hint{position:absolute;right:clamp(12px,1.4vw,20px);bottom:calc(var(--drawer-fade-size) + 7px);z-index:4;display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 10px 5px 8px;border:1px solid rgba(var(--gold-hi-rgb),.52);border-radius:var(--radius-sm);background:linear-gradient(180deg,#100f18f5,#07080efa);color:rgba(var(--gold-hi-rgb),.9);font-family:var(--font-ui);font-size:.68rem;letter-spacing:.08em;line-height:1;white-space:nowrap;cursor:pointer;box-shadow:0 5px 16px #00000080,inset 0 0 12px rgba(var(--gold-rgb),.12);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast)}.drawer-body-frame>.drawer-scroll-hint>span:first-child{font-size:.96rem;line-height:.8;transform:translateY(-1px)}.drawer-body-frame>.drawer-scroll-hint:hover,.drawer-body-frame>.drawer-scroll-hint:focus-visible{color:var(--gold-050);border-color:rgba(var(--gold-hi-rgb),.82);background:linear-gradient(180deg,#261f22fa,#0c0a12fa);transform:translateY(-1px);outline:none}.drawer-body-frame>.drawer-scroll-hint:focus-visible{box-shadow:0 0 0 2px rgba(var(--gold-hi-rgb),.3),0 5px 16px #00000080}.drawer-body-frame>.drawer-scroll-hint.is-at-end{border-color:rgba(var(--accent-sakura-rgb),.48);color:rgba(var(--gold-hi-rgb),.92)}.drawer-body-frame>.drawer-scroll-hint.is-at-end>span:first-child{transform:translateY(1px)}.drawer-body::-webkit-scrollbar{width:6px}.drawer-body::-webkit-scrollbar-track{background:transparent}.drawer-body::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb),.35);border-radius:3px;transition:background .15s ease}.drawer-body::-webkit-scrollbar-thumb:hover{background:rgba(var(--gold-rgb),.65)}.settings-drawer .drawer-body{gap:20px;padding:16px 18px var(--drawer-bottom-space)}.settings-group{display:flex;flex-direction:column;gap:9px}.settings-group-title{font-family:var(--font-ui);font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(var(--gold-rgb),.72);padding-bottom:6px;border-bottom:1px solid rgba(var(--gold-rgb),.12)}.settings-row,.settings-switch{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:11px 13px;background:#ffffff06;border:1px solid rgba(var(--gold-rgb),.11);border-radius:var(--radius-pill);color:inherit;font:inherit;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.settings-switch{cursor:pointer}.settings-switch:hover:not(:disabled){border-color:rgba(var(--gold-rgb),.34);background-color:rgba(var(--gold-rgb),.05)}.settings-switch:disabled{cursor:wait;opacity:.6}.settings-row-copy{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.settings-row-copy strong{font-family:var(--font-ui);font-size:.84rem;font-weight:600;color:var(--ink-main);letter-spacing:.02em}.settings-row-copy small{font-family:var(--font-ui);font-size:.68rem;line-height:1.45;color:var(--ink-soft)}.settings-switch-track{flex:0 0 auto;width:40px;height:20px;padding:2px;border-radius:999px;background:#ffffff12;box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.16);transition:background-color var(--transition-normal),box-shadow var(--transition-normal)}.settings-switch-track>span{display:block;width:16px;height:16px;border-radius:50%;background:linear-gradient(180deg,#8d8d99,#63636e);box-shadow:0 1px 4px #0000008c;transition:transform var(--transition-normal),background var(--transition-normal)}.settings-switch.enabled .settings-switch-track{background-color:rgba(var(--accent-sakura-rgb),.34);box-shadow:inset 0 0 0 1px rgba(var(--accent-sakura-rgb),.55),0 0 12px -2px rgba(var(--accent-sakura-rgb),.4)}.settings-switch.enabled .settings-switch-track>span{transform:translate(20px);background:linear-gradient(180deg,var(--gold-050) 0%,var(--gold-300) 100%)}.settings-seg{display:flex;flex:0 0 auto;border:1px solid rgba(var(--gold-rgb),.18)}.settings-seg-btn{background:transparent;border:none;border-right:1px solid rgba(var(--gold-rgb),.14);color:rgba(var(--gold-hi-rgb),.6);font-family:var(--font-ui);font-size:.7rem;letter-spacing:.06em;padding:6px 10px;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.settings-seg-btn:last-child{border-right:none}.settings-seg-btn:hover{color:var(--gold-050);background-color:rgba(var(--gold-rgb),.07)}.settings-seg-btn.active{color:var(--ink-950);background-color:rgba(var(--accent-sakura-rgb),.86);font-weight:600}.settings-font-size-row{align-items:flex-start}.settings-range-wrap{display:flex;align-items:center;gap:8px;flex:0 0 clamp(132px,12vw,178px);padding-top:3px}.settings-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1 auto;min-width:0;height:4px;border-radius:999px;outline:none;cursor:pointer;background:linear-gradient(90deg,rgba(var(--accent-sakura-rgb),.78),rgba(var(--gold-rgb),.24));box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.18)}.settings-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:17px;height:17px;border:1px solid rgba(var(--gold-hi-rgb),.72);border-radius:50%;background:var(--accent-sakura);box-shadow:0 0 0 3px rgba(var(--accent-sakura-rgb),.14),0 2px 8px #0000008c}.settings-range::-moz-range-thumb{width:15px;height:15px;border:1px solid rgba(var(--gold-hi-rgb),.72);border-radius:50%;background:var(--accent-sakura);box-shadow:0 0 0 3px rgba(var(--accent-sakura-rgb),.14),0 2px 8px #0000008c}.settings-range:focus-visible{box-shadow:0 0 0 2px rgba(var(--accent-sakura-rgb),.35)}.settings-range-value{flex:0 0 3.4em;text-align:right;font-family:var(--font-ui);font-size:.7rem;color:var(--ink-main);font-variant-numeric:tabular-nums}.settings-link{align-self:flex-start;background:transparent;border:none;border-bottom:1px solid rgba(var(--gold-rgb),.28);color:rgba(var(--gold-hi-rgb),.78);font-family:var(--font-ui);font-size:.74rem;letter-spacing:.06em;padding:3px 1px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.settings-link:hover{color:var(--gold-050);border-bottom-color:rgba(var(--gold-rgb),.7)}.session-item{width:100%;text-align:left;background:#1210188c;border:1px solid var(--card-border);border-radius:var(--radius-md);padding:8px 10px;cursor:pointer;transition:border-color var(--transition-fast);display:flex;flex-direction:column;gap:2px}.session-item:hover{border-color:rgba(var(--gold-rgb),.2)}.session-item.active{border-color:rgba(var(--accent-sakura-rgb),.35);background:rgba(var(--accent-sakura-rgb),.04)}.session-name{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-silver)}.session-meta{font-family:var(--font-ui);font-size:.68rem;color:var(--ink-soft)}.session-create-btn{width:100%;background:transparent;border:1px dashed rgba(var(--gold-rgb),.22);border-radius:var(--radius-md);padding:8px 10px;color:var(--accent-sakura);font-family:var(--font-ui);font-size:.82rem;cursor:pointer;transition:border-color var(--transition-fast);text-align:center;letter-spacing:.03em}.session-create-btn:hover{border-color:rgba(var(--gold-rgb),.4)}.history-item{border:none;border-radius:0;background:transparent;padding:10px 12px;display:grid;grid-template-columns:74px minmax(0,1fr);column-gap:14px;row-gap:7px;align-items:start;transition:color .2s ease;cursor:default;border-bottom:1px solid rgba(var(--gold-rgb),.07);position:relative}.history-item-head{grid-column:1}.history-item-body,.history-item-thumb,.history-item-options{grid-column:2}.history-item-thumb{width:100%;max-width:260px;aspect-ratio:16 / 9;object-fit:cover;border:1px solid rgba(var(--gold-rgb),.2);border-radius:0;filter:saturate(.92) brightness(.92);transition:filter var(--transition-normal),border-color var(--transition-normal)}.history-item:hover .history-item-thumb{filter:saturate(1) brightness(1);border-color:rgba(var(--gold-rgb),.42)}.history-item:hover{background:rgba(var(--gold-rgb),.04)}.history-item:hover pre,.history-item:hover .kind-tag{color:var(--accent-sakura2)}.history-item-head{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 80px;gap:2px}.history-item-head .kind-tag{font-family:var(--font-ui);font-size:.78rem;font-weight:600;padding:0;border-radius:0;border:none;color:#fff;transition:color .2s ease;text-shadow:1px 1px 2px rgba(0,0,0,.5);text-align:right}.history-item-head .turn-num{font-family:var(--font-ui);font-size:.62rem;color:var(--ink-soft)}.history-item pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-dialog);font-size:.88rem;color:#fff;line-height:1.6;flex:1;text-shadow:1px 1px 2px rgba(0,0,0,.5);transition:color .2s ease}.history-item.user .kind-tag{color:var(--accent-sakura)}.history-item.narrator .kind-tag{color:var(--gold-200)}.history-item.npc .kind-tag{color:#90b8d8}.history-item.tool .kind-tag{color:#90b070}.history-item.image .kind-tag{color:var(--accent-gold)}.history-item.system .kind-tag{color:var(--ink-soft)}.history-item.error .kind-tag{color:#d08080}.npc-card{border:1px solid var(--card-border);border-radius:var(--radius-md);padding:8px;background:#0e0c148c;display:flex;gap:8px;align-items:flex-start}.npc-card.present{border-color:rgba(var(--gold-rgb),.2)}.npc-portrait-media{position:relative;display:grid;place-items:end center;flex-shrink:0;color:#bec0cc9e}.npc-portrait-filter-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.npc-portrait-media>img,.npc-portrait-media>.npc-portrait-placeholder{grid-area:1 / 1}.npc-portrait-media>img{opacity:0}.npc-portrait-media--avatar>img{filter:url(#npc-portrait-edge-clean)}.npc-portrait-media>img[data-portrait-ready=true]{opacity:1}.npc-portrait-media[data-portrait-has-visible=true]>.npc-portrait-placeholder{visibility:hidden}.npc-portrait-media>img[data-portrait-failed=true]{display:none}.npc-portrait-media>img.npc-portrait-preload{position:absolute;top:0;right:0;bottom:0;left:0;width:1px;height:1px;max-width:none;max-height:none;opacity:0;visibility:hidden;pointer-events:none}.npc-portrait-placeholder{display:flex;align-items:flex-end;justify-content:center;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 50% 28%,rgba(210,212,220,.08),transparent 36%),#1012187a;border:1px solid rgba(190,192,204,.18)}.npc-portrait-placeholder svg{display:block;width:100%;height:100%}.npc-portrait-silhouette-fill{fill:currentColor;opacity:.16}.npc-portrait-silhouette-line{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.52}.npc-portrait-media--avatar{width:52px;height:52px;flex-basis:52px}.npc-portrait-media--avatar>img,.npc-portrait-placeholder--avatar{width:100%;height:100%;border-radius:var(--radius-md)}.npc-portrait-media--avatar{min-width:0;min-height:0;align-self:flex-start;overflow:hidden}.npc-portrait-media--avatar>img:not(.npc-portrait-preload),.npc-portrait-media--avatar>.npc-portrait-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%}.npc-avatar{width:100%;height:100%;border-radius:var(--radius-md);object-fit:cover;object-position:top;background:#101218b8}.npc-portrait-media--stage{height:100%;max-width:92vw}.npc-portrait-media--stage>img{height:100%;max-width:92vw;object-fit:contain;object-position:bottom center}.npc-portrait-placeholder--stage{width:min(48vh,36vw);height:92%;align-self:end;color:#c6c9d2d6;border:0;background:radial-gradient(ellipse at 50% 42%,rgba(190,192,204,.12),transparent 66%);filter:drop-shadow(0 6px 24px rgba(0,0,0,.58));-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 78%,transparent 100%)}.npc-portrait-placeholder--stage .npc-portrait-silhouette-fill{opacity:.23}.npc-portrait-placeholder--stage .npc-portrait-silhouette-line{stroke-width:1.45;opacity:.72}.npc-portrait-media--cast{height:100%;max-width:46vw}.npc-portrait-placeholder--cast{width:min(38vh,26vw);height:100%;border:0;background:radial-gradient(ellipse at 50% 42%,rgba(190,192,204,.06),transparent 66%);filter:brightness(.68) saturate(.78) blur(.4px) drop-shadow(0 6px 22px rgba(0,0,0,.7));-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 4%,#000 88%,rgba(0,0,0,.55) 96%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 4%,#000 88%,rgba(0,0,0,.55) 96%,transparent 100%)}.npc-info{flex:1;min-width:0}.npc-name{font-family:var(--font-name);font-size:.85rem;color:var(--ink-silver);margin-bottom:2px;padding-right:24px}.npc-mood{font-family:var(--font-ui);font-size:.68rem;color:var(--ink-soft)}.npc-affinity-meter{display:flex;align-items:center;gap:6px;margin-top:5px}.npc-affinity-meter-label{flex:0 0 auto;font-family:var(--font-ui);font-size:.62rem;line-height:1;letter-spacing:.08em;color:rgba(var(--gold-hi-rgb),.72)}.npc-affinity-bar{height:3px;flex:1 1 auto;min-width:0;border-radius:0;background:var(--progress-track);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.1)}.npc-affinity-fill{height:100%;background:linear-gradient(90deg,#b2b5c038,#b2b5c094);border-radius:0}.npc-affinity-fill.tone-warm{background:linear-gradient(90deg,#fe877f59,#fe877fd9)}.npc-affinity-fill.tone-cold{background:linear-gradient(90deg,rgba(var(--ember-rgb),.3),rgba(var(--ember-rgb),.8))}.npc-affinity-fill.tone-neutral{background:linear-gradient(90deg,#b2b5c038,#b2b5c094)}.npc-panel{position:absolute;--npc-top: 26vh;top:var(--npc-top);right:1.4vw;z-index:16;width:clamp(158px,15.5vw,218px);--npc-cap: 56vh;--npc-avail: calc(100vh - var(--npc-top) - 12px);max-height:min(var(--npc-cap),var(--npc-avail));display:flex;flex-direction:column;gap:8px;padding:9px;border:1px solid rgba(var(--gold-rgb),.18);border-radius:0;clip-path:polygon(var(--bevel) 0,100% 0,100% calc(100% - var(--bevel)),calc(100% - var(--bevel)) 100%,0 100%,0 var(--bevel));background:linear-gradient(180deg,#0d0e16e6,#08090ff0);box-shadow:var(--shadow-panel);animation:fade-in var(--dur-3) var(--ease-out);opacity:.96;transition:opacity var(--transition-normal),filter var(--transition-normal);overflow:hidden}.npc-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-weave) repeat;background-size:340px 340px;opacity:.05;mix-blend-mode:overlay;pointer-events:none}.npc-panel>*{position:relative}.npc-panel:after{content:"";position:absolute;top:7%;bottom:7%;right:3px;width:10px;background:var(--orn-bracket) center / 100% 100% no-repeat;opacity:.3;transform:scaleX(-1);pointer-events:none}.npc-panel:hover{opacity:1}.npc-panel.gen-active{top:var(--npc-top)}.npc-panel.collapsed{position:fixed;top:12vh;width:auto;max-height:none;overflow:visible;padding:0;border:none;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;clip-path:none;z-index:42}.npc-panel.collapsed:before,.npc-panel.collapsed:after{display:none}.npc-panel-head{display:flex;align-items:center;justify-content:space-between;padding:1px 4px 6px;border-bottom:1px solid rgba(var(--gold-rgb),.16)}.npc-panel-title{font-family:var(--font-ui);font-size:.66rem;color:rgba(var(--gold-hi-rgb),.9);letter-spacing:.22em}.npc-panel-collapse{background:transparent;border:none;color:var(--ink-soft);font-size:1rem;line-height:1;cursor:pointer;padding:0 4px;transition:color .2s ease}.npc-panel-collapse:hover{color:var(--ink-name)}.play-hud[data-occluded="1"],.npc-panel[data-occluded="1"]{opacity:0;pointer-events:none}.npc-panel-list{display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-height:0;overflow-y:auto;max-height:var(--npc-visible-h, none);scrollbar-gutter:stable;overscroll-behavior:contain}.npc-panel-list::-webkit-scrollbar{width:5px}.npc-panel-list::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:3px}.npc-panel-handle{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-sm);border:1px solid rgba(var(--gold-rgb),.22);background:linear-gradient(180deg,#0d0e16db,#08090fe6);color:rgba(var(--gold-hi-rgb),.7);letter-spacing:.1em;cursor:pointer;opacity:.9;transition:opacity var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal)}.npc-panel-handle:hover{opacity:1;color:var(--ink-name)}.npc-panel-handle svg{width:16px;height:16px}.npc-panel-handle-label{font-family:var(--font-ui);font-size:.62rem;letter-spacing:.08em;color:rgba(var(--gold-hi-rgb),.82)}.npc-panel-handle-count{font-family:var(--font-ui);font-size:.7rem;letter-spacing:.02em}.npc-panel .npc-card{padding:6px;background:#0e0c1480}.npc-panel .npc-portrait-media--avatar{width:36px;height:36px;flex-basis:36px}@media (max-height: 760px){.npc-panel{padding-top:5px;padding-bottom:5px;gap:5px}.npc-panel-head{padding-bottom:4px}.npc-panel .npc-card{padding:4px 6px}.npc-panel .npc-portrait-media--avatar{width:30px;height:30px;flex-basis:30px}.npc-panel .npc-name{font-size:.82rem}.npc-panel .npc-mood{font-size:.72rem;color:var(--ink-silver)}.npc-panel .npc-affinity-meter-label{font-size:.62rem}.npc-panel-list{gap:4px}}.npc-panel .npc-name{font-size:.78rem}@media (max-width: 600px){.character-layer{clip-path:inset(0 0 36% 0)}.npc-panel{width:97.6vw;max-width:100%;top:auto;bottom:14vh;right:1.2vw;max-height:18vh;flex-direction:row;overflow-x:auto;overflow-y:hidden}.npc-panel-list{flex-direction:row;overflow-x:auto;overflow-y:hidden}.npc-panel.collapsed{top:10.5vh;bottom:auto;right:1.2vw;width:auto;max-height:none;overflow:visible}.stage-cast-slot.slot-left{left:-6vw}.stage-cast-slot.slot-right{right:-6vw}}@media (prefers-reduced-motion: reduce){.npc-panel{animation:none!important}.portrait-upgrade-transition .portrait-image-toggle img{animation:portrait-upgrade-reduced .12s linear both!important}.portrait-upgrade-texture{display:none}}@keyframes portrait-upgrade-reduced{0%{opacity:.72}to{opacity:1}}.error-toast{position:absolute;top:50px;left:12px;right:12px;z-index:60;background:#944444e0;border:1px solid rgba(180,80,80,.25);border-radius:var(--radius-md);padding:8px 12px;color:#f0d0d0;font-family:var(--font-ui);font-size:.8rem;display:flex;align-items:center;justify-content:space-between;gap:8px;animation:fade-in .2s ease}.error-toast-close{background:transparent;border:none;color:#f0d0d0;font-size:1rem;cursor:pointer;padding:0 2px;opacity:.6;flex-shrink:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.welcome-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:radial-gradient(ellipse 60% 30% at 50% 78%,rgba(254,200,120,.07) 0%,transparent 70%),linear-gradient(to bottom,#00000080,#0000001a 28%,#00000047 68%,#000000c7),radial-gradient(ellipse 70% 90% at 50% 50%,transparent 45%,rgba(0,0,0,.55) 100%),url(/assets/bg/welcome-hero.png) center/cover no-repeat,var(--bg-main);animation:fade-in .6s ease;text-align:center;padding:10vh 24px 14vh}.welcome-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/ui/dark-texture-2048.png) repeat;opacity:.1;pointer-events:none;mix-blend-mode:overlay}.welcome-screen>*{position:relative;z-index:1}.welcome-title{font-family:var(--font-title);font-size:clamp(2rem,7vh,5rem);color:var(--ink-name);letter-spacing:.22em;margin-bottom:2.4vh;text-shadow:var(--text-shadow-name);animation:welcome-title-in 1s ease}.welcome-title-logo{width:clamp(320px,42vw,640px);height:auto;margin:0 auto 1.2vh;filter:drop-shadow(0 6px 18px rgba(0,0,0,.65)) drop-shadow(0 0 28px rgba(254,200,120,.1));animation:welcome-title-in 1s ease;-webkit-user-select:none;user-select:none;pointer-events:none}.welcome-ornament{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto 1.8vh;width:clamp(220px,28vw,420px);color:#c8b284c7;font-family:var(--font-title);font-size:.78rem;letter-spacing:.42em;text-shadow:0 1px 4px rgba(0,0,0,.7);animation:fade-in 1.4s ease;-webkit-user-select:none;user-select:none}.welcome-ornament:before,.welcome-ornament:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(184,144,80,.55),transparent)}@keyframes welcome-title-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.welcome-subtitle{font-family:var(--font-dialog);font-size:clamp(.78rem,1.5vh,.95rem);color:#dcc8a0c7;line-height:1.85;letter-spacing:.1em;max-width:min(640px,60vw);margin:0 auto;text-shadow:1px 1px 3px rgba(0,0,0,.8);animation:fade-in 1.2s ease}.welcome-start-btn{margin-top:auto;border:1px solid rgba(184,144,80,.65);background:linear-gradient(180deg,#b8905038,#7858301a),#140e08c7;box-shadow:0 10px 32px #0000008c,0 0 0 1px #b890502e,inset 0 1px #ffdca02e;border-radius:var(--radius-pill);padding:clamp(14px,1.8vh,22px) clamp(48px,6vw,84px);font-family:var(--font-name);font-size:clamp(1.15rem,3vh,1.75rem);color:#f5e6c8f5;cursor:pointer;letter-spacing:.2em;text-shadow:1px 1px 2px rgba(0,0,0,.6);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;animation:welcome-btn-in 1.4s ease}@keyframes welcome-btn-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.welcome-start-btn:hover{transform:translateY(-2px) scale(1.02);border-color:#dcb46ee6;box-shadow:0 14px 40px #b890504d,0 0 0 1px #dcb46e59,inset 0 1px #ffe6b44d}.welcome-start-btn:active{transform:translateY(0) scale(1)}.welcome-start-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.welcome-or-divider{display:none}.welcome-sessions-btn{margin-top:1.2vh;border:none;background:transparent;padding:4px 10px;font-family:var(--font-ui);font-size:.82rem;color:#dcc8a08c;cursor:pointer;letter-spacing:.08em;transition:color .2s ease;animation:fade-in 1.8s ease}.welcome-sessions-btn:hover{color:#f0dcb4f2;text-decoration:underline dotted 1px;text-underline-offset:4px}.login-form{position:relative;display:flex;flex-direction:column;gap:clamp(13px,2vh,19px);width:min(384px,86vw);margin-top:clamp(18px,3.4vh,34px);padding:clamp(22px,3vh,32px) clamp(20px,2.4vw,30px) clamp(20px,2.6vh,28px);background:linear-gradient(180deg,#09090fb8,#05050adb);border:1px solid rgba(var(--gold-rgb),.2);backdrop-filter:blur(6px) saturate(.9);-webkit-backdrop-filter:blur(6px) saturate(.9);box-shadow:0 24px 60px -24px #000000e6,inset 0 1px rgba(var(--gold-hi-rgb),.07);animation:fade-in 1.4s ease}.login-form:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-paper) repeat;background-size:512px 512px;opacity:.05;mix-blend-mode:overlay;pointer-events:none}.login-field{display:flex;flex-direction:column;gap:7px;text-align:left}.login-label{font-family:var(--font-ui);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(var(--gold-rgb),.68)}.login-input{border:1px solid rgba(var(--gold-rgb),.2);border-top-color:#0000008c;background:#00000070;box-shadow:inset 0 2px 7px -2px #000000d9;border-radius:0;padding:12px 14px;font-family:var(--font-ui);font-size:1rem;letter-spacing:.04em;color:var(--ink-name);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.login-input:focus{outline:none;border-color:rgba(var(--gold-rgb),.62);background-color:#00000094;box-shadow:inset 0 2px 7px -2px #000000d9,0 0 0 1px rgba(var(--gold-rgb),.22),0 0 20px -8px rgba(var(--gold-rgb),.5)}.login-input:disabled{opacity:.6;cursor:not-allowed}.login-error{font-family:var(--font-ui);font-size:.82rem;color:var(--ember);letter-spacing:.04em;text-align:center;padding:6px 8px;border-left:2px solid rgba(var(--ember-rgb),.7);background:rgba(var(--ember-rgb),.08)}.login-view .welcome-start-btn{margin-top:clamp(8px,1.4vh,16px);width:100%;padding:clamp(12px,1.5vh,16px) 0;font-size:clamp(1rem,2.2vh,1.2rem);border-radius:var(--radius-pill)}.login-view .welcome-start-btn:disabled{opacity:1;cursor:not-allowed;color:rgba(var(--gold-hi-rgb),.58);border-color:rgba(var(--gold-rgb),.42);background:linear-gradient(180deg,rgba(var(--gold-rgb),.1),rgba(var(--gold-rgb),.04)),#100d0ad1;box-shadow:inset 0 1px #ffecc41a;filter:none}.auth-badge{display:inline-flex;align-items:center;gap:9px;padding:4px 6px 4px 12px;border-radius:var(--radius-pill);background:#06060b6b;border:none;opacity:.62;transition:opacity var(--transition-normal),border-color var(--transition-normal)}.auth-badge:hover{opacity:1;background:#06060b9e}.auth-username{font-family:var(--font-ui);font-size:.8rem;letter-spacing:.06em;color:#e6d6b4e6;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-logout-btn{border:1px solid rgba(var(--gold-rgb),.3);background:rgba(var(--gold-rgb),.07);border-radius:0;padding:3px 12px;font-family:var(--font-ui);font-size:.76rem;color:#f0dcb4e6;cursor:pointer;letter-spacing:.08em;transition:border-color .2s ease,color .2s ease}.auth-logout-btn:hover{border-color:rgba(var(--gold-rgb),.7);background:rgba(var(--gold-rgb),.16);color:var(--gold-050)}.welcome-screen .welcome-audio-status{position:absolute;bottom:3vh;left:3vw;right:auto;margin:0;font-family:var(--font-ui);font-size:11px;letter-spacing:.08em;color:rgba(var(--gold-hi-rgb),.55);text-shadow:0 1px 3px rgba(0,0,0,.9);opacity:.85;z-index:2;transition:opacity var(--transition-normal),color var(--transition-normal)}.welcome-screen .welcome-audio-status:hover{opacity:1;color:rgba(var(--gold-hi-rgb),.9)}.global-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000d9;animation:fade-in .2s ease}.loading-spinner{width:28px;height:28px;border:2px solid rgba(var(--gold-rgb),.15);border-top-color:var(--accent-sakura);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-family:var(--font-ui);font-size:.78rem;color:var(--ink-soft);text-shadow:1px 1px 2px #000}.stream-waiting-overlay{position:absolute;bottom:0;left:0;right:0;z-index:29;height:28vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,1.6vh,22px);animation:fade-in .4s ease}.stream-waiting-dots{display:flex;gap:clamp(8px,1vw,14px);align-items:center}.stream-waiting-dots span{width:clamp(7px,.9vh,11px);height:clamp(7px,.9vh,11px);border-radius:50%;background:var(--accent-sakura);animation:dot-pulse 1.4s ease infinite}.stream-waiting-dots span:nth-child(2){animation-delay:.25s}.stream-waiting-dots span:nth-child(3){animation-delay:.5s}.stream-waiting-text{font-family:var(--font-title);font-size:clamp(.95rem,2.2vh,1.35rem);color:var(--ink-soft);text-shadow:var(--text-shadow-dialog);letter-spacing:.16em}.thinking-inline{position:absolute;left:50%;transform:translate(-50%);bottom:calc(clamp(52px,7vh,76px) + env(safe-area-inset-bottom,4px) + clamp(10px,1.8vh,22px));z-index:31;width:min(1200px,92vw);display:inline-flex;align-items:center;gap:12px;padding:clamp(9px,1.5vh,15px) clamp(20px,3.2vw,48px);border-radius:var(--radius-lg);background:var(--thinking-pill-bg);box-shadow:var(--shadow-soft);pointer-events:none;animation:fade-in var(--transition-normal)}.thinking-inline-quill{width:3px;height:1.35em;border-radius:999px;background:var(--accent-sakura);opacity:.6;animation:thinking-quill-breathe 1.8s ease-in-out infinite}.thinking-inline-text{font-family:var(--font-title);font-size:clamp(1.1rem,2.7vh,1.55rem);color:var(--ink-silver);text-shadow:var(--text-shadow-dialog);letter-spacing:.12em}@keyframes thinking-quill-breathe{0%,to{opacity:.18}50%{opacity:.6}}@media (prefers-reduced-motion: reduce){.thinking-inline{animation:none}.thinking-inline-quill{animation:none;opacity:.4}}.thinking-inline.is-long .thinking-inline-text{color:var(--ink-main)}.thinking-inline.is-long .thinking-inline-quill{background:var(--accent-sakura);animation-duration:1.1s}@media (prefers-reduced-motion: reduce){.thinking-inline.is-long .thinking-inline-quill{animation:none;opacity:.55}}.thinking-inline-dots{display:inline-flex;align-items:center;gap:clamp(4px,.5vw,6px)}.thinking-inline-dots span{width:clamp(5px,.7vh,7px);height:clamp(5px,.7vh,7px);border-radius:50%;background:var(--accent-sakura);opacity:.85;animation:dot-pulse 1.4s ease infinite}.thinking-inline-dots span:nth-child(2){animation-delay:.2s}.thinking-inline-dots span:nth-child(3){animation-delay:.4s}.thinking-inline.is-long .thinking-inline-dots span{animation-duration:1.1s}@media (prefers-reduced-motion: reduce){.thinking-inline-dots span{animation:none;opacity:.55}}.turn-wrapup{position:absolute;top:clamp(64px,12vh,120px);left:50%;transform:translate(-50%);z-index:32;display:inline-flex;align-items:center;gap:clamp(8px,1vw,12px);padding:clamp(7px,1.2vh,12px) clamp(16px,2.6vw,34px);border-radius:var(--radius-lg);background:var(--thinking-pill-bg);box-shadow:var(--shadow-soft);pointer-events:none;animation:fade-in var(--transition-normal),turn-wrapup-breathe 2.6s ease-in-out infinite}.turn-wrapup-dots{display:inline-flex;align-items:center;gap:clamp(4px,.5vw,6px)}.turn-wrapup-dots span{width:clamp(5px,.7vh,7px);height:clamp(5px,.7vh,7px);border-radius:50%;background:var(--accent-sakura);opacity:.85;animation:dot-pulse 1.4s ease infinite}.turn-wrapup-dots span:nth-child(2){animation-delay:.2s}.turn-wrapup-dots span:nth-child(3){animation-delay:.4s}.turn-wrapup-text{font-family:var(--font-title);font-size:clamp(.92rem,2.1vh,1.2rem);color:var(--ink-silver);text-shadow:var(--text-shadow-dialog);letter-spacing:.1em}@keyframes turn-wrapup-breathe{0%,to{opacity:.72}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.turn-wrapup{animation:fade-in var(--transition-normal);opacity:.9}.turn-wrapup-dots span{animation:none;opacity:.55}}.dialog-writing-hint{position:absolute;right:3vw;bottom:1.5vh;display:flex;align-items:center;gap:4px;font-family:var(--font-ui);font-size:.68rem;color:var(--ink-soft);opacity:.75;animation:ctc-pulse 1s ease infinite;text-shadow:1px 1px 2px #000;pointer-events:none}@media (prefers-reduced-motion: reduce){.dialog-writing-hint{animation:none;opacity:.6}}.dialog-options-arriving{position:absolute;right:3vw;bottom:1.5vh;display:flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:.68rem;color:var(--accent-sakura);opacity:.9;text-shadow:1px 1px 2px #000;pointer-events:none}.options-arriving-dots{display:flex;gap:4px;align-items:center}.options-arriving-dots span{width:5px;height:5px;border-radius:50%;background:var(--accent-sakura);animation:dot-pulse 1.4s ease infinite}.options-arriving-dots span:nth-child(2){animation-delay:.2s}.options-arriving-dots span:nth-child(3){animation-delay:.4s}@media (prefers-reduced-motion: reduce){.options-arriving-dots span{animation:none;opacity:.7}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:8px}.empty-state-icon{font-size:1.8rem;opacity:.3;margin-bottom:4px}.empty-state-text{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-soft);text-align:center;line-height:1.6}@media (max-width: 600px){.dialog-options{gap:1.2vh}.option-btn{font-size:2vh;padding:1.5vh 4vw}.option-advance-btn{font-size:1.8vh;padding:1.2vh 4vw}.dialog-inner{padding-left:clamp(20px,5vw,40px);padding-right:clamp(20px,5vw,40px)}.control-bar{gap:3vw}.ctrl-btn svg{width:16px;height:16px}.ctrl-btn .ctrl-label{font-size:.48rem}.drawer.drawer-left{width:min(300px,88vw)}.drawer.drawer-right{width:min(380px,95vw)}.input-panel{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}@media (max-height: 760px){.dialog-options{gap:1vh;margin-top:1vh;padding-top:1vh}.option-btn{padding:1.1vh clamp(98px,8vw,118px) 1.1vh clamp(44px,3vw,58px);font-size:2.05vh}.option-advance-btn{padding:1vh 2.2vw;font-size:1.85vh}.option-custom-input{margin-top:.4vh}}.bg-layer img{animation:none;transition:opacity .6s ease}.input-hint{font-family:var(--font-ui);font-size:.68rem;letter-spacing:.1em;color:rgba(var(--gold-hi-rgb),.38);opacity:1;text-align:left;padding-right:2px;margin-top:-4px}.input-panel .input-hint{color:rgba(var(--gold-hi-rgb),.54);text-shadow:0 1px 2px rgba(0,0,0,.72)}.character-layer.dimmed,.stage-cast.dimmed{opacity:1;filter:brightness(.34) saturate(.8);transition:filter var(--transition-normal);pointer-events:none}.auto-pause-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:38;background:#000000b8;border:1px solid rgba(var(--gold-rgb),.3);border-radius:999px;padding:8px 22px;font-family:var(--font-ui);font-size:.78rem;color:var(--accent-sakura);letter-spacing:.06em;text-shadow:1px 1px 2px #000;animation:fade-in .4s ease;pointer-events:none}.auto-input-hint{align-self:center;padding:5px 16px;border-radius:999px;background:#00000080;border:1px solid rgba(var(--gold-rgb),.28);font-family:var(--font-ui);font-size:.74rem;color:var(--accent-sakura);letter-spacing:.05em;animation:fade-in .4s ease}.play-hud{position:absolute;--hud-top: 10.5vh;top:var(--hud-top);left:1.4vw;z-index:16;width:clamp(190px,17vw,250px);--hud-cap: 68vh;--hud-avail: calc(100vh - var(--hud-top) - 12px);max-height:min(var(--hud-cap),var(--hud-avail));display:flex;flex-direction:column;border:1px solid rgba(var(--gold-rgb),.18);border-radius:0;clip-path:polygon(var(--bevel) 0,100% 0,100% calc(100% - var(--bevel)),calc(100% - var(--bevel)) 100%,0 100%,0 var(--bevel));background:linear-gradient(180deg,#0d0e16e6,#08090ff0);box-shadow:var(--shadow-panel);animation:fade-in var(--dur-3) var(--ease-out);opacity:.96;transition:opacity var(--transition-normal),filter var(--transition-normal);overflow:hidden}.play-hud:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-weave) repeat;background-size:340px 340px;opacity:.05;mix-blend-mode:overlay;pointer-events:none;z-index:0}.play-hud:after{content:"";position:absolute;top:6%;bottom:6%;left:3px;width:10px;background:var(--orn-bracket) center / 100% 100% no-repeat;opacity:.34;pointer-events:none;z-index:0}.play-hud>*{position:relative;z-index:1}.play-hud-body-wrap{position:relative;display:flex;flex-direction:column;row-gap:4px;flex:1 1 auto;min-height:0;overflow:hidden}.play-hud-body-wrap.has-scroll-hint .play-hud-body{padding-bottom:calc(var(--hud-body-pad) + 8px)}.play-hud-scroll-hint{position:absolute;right:3px;bottom:5px;width:auto;min-width:76px;max-width:calc(100% - 10px);height:24px;align-items:center;justify-content:center;flex:0 0 auto;z-index:2;display:inline-flex;gap:4px;margin:0;padding:3px 7px 3px 6px;border:1px solid rgba(var(--gold-hi-rgb),.58);border-radius:var(--radius-sm);background:linear-gradient(180deg,#14121cf5,#090910f7);color:#fff4cffa;font-family:var(--font-ui);font-size:.62rem;letter-spacing:.06em;line-height:1.25;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;box-shadow:0 4px 14px #0000007a,inset 0 0 16px rgba(var(--gold-rgb),.12);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.play-hud-scroll-hint>span{font-size:.72rem;line-height:1}.play-hud-scroll-hint>span+span{font-size:.62rem;letter-spacing:.04em}.play-hud-scroll-hint.is-hidden{visibility:hidden;pointer-events:none;opacity:0}.play-hud-scroll-hint:hover,.play-hud-scroll-hint:focus-visible{color:var(--gold-050);border-color:rgba(var(--gold-hi-rgb),.78);background:linear-gradient(180deg,#261f22fa,#0c0a12fa);transform:translateY(-1px)}.play-hud-scroll-hint:focus-visible{outline:2px solid rgba(var(--gold-hi-rgb),.78);outline-offset:2px}.play-hud:hover{opacity:1}.play-hud-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding:8px 10px 7px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.play-hud-chapter{display:flex;flex-direction:column;gap:2px;min-width:0}.play-hud-chapter-index{font-family:var(--font-title);font-size:.9rem;letter-spacing:.14em;color:#dcc8a0eb;text-shadow:0 1px 3px rgba(0,0,0,.8)}.play-hud-chapter-title{font-family:var(--font-name);font-size:.76rem;color:var(--ink-silver);line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.play-hud-collapse{flex-shrink:0;background:transparent;border:none;color:var(--ink-soft);font-size:1.05rem;line-height:1;cursor:pointer;padding:0 2px;transition:color .2s ease}.play-hud-collapse:hover{color:var(--ink-name)}.play-hud-body{--hud-body-pad: 10px;display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0;padding:var(--hud-body-pad);overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain}.play-hud-body::-webkit-scrollbar{width:5px}.play-hud-body::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:3px}.play-hud-section{display:flex;flex-direction:column;gap:5px}.play-hud-label{display:flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:.68rem;letter-spacing:.16em;color:rgba(var(--gold-hi-rgb),.86);text-shadow:0 1px 2px rgba(0,0,0,.7)}.play-hud-count{font-size:.6rem;letter-spacing:normal;color:var(--ink-soft);background:#ffffff0f;border-radius:999px;padding:0 6px;line-height:1.5}.play-hud-objective-text{display:flex;align-items:flex-start;gap:8px;font-family:var(--font-dialog);font-size:.86rem;line-height:1.5;color:var(--ink-main);padding:7px 9px;border:1px solid var(--card-border);border-left:3px solid var(--accent-sakura);border-radius:var(--radius-md);background:#0e0c148c;text-shadow:0 1px 2px rgba(0,0,0,.6)}.play-hud-objective-dot,.play-hud-thread-dot{width:7px;height:7px;margin-top:.55em;border-radius:50%;flex:0 0 7px;background:var(--accent-sakura);box-shadow:0 0 6px rgba(var(--accent-sakura-rgb),.34)}.play-hud-objective-copy{flex:1 1 auto;min-width:0}.play-hud-objective-text.placeholder{color:var(--ink-silver);border-left-color:var(--ink-soft);font-style:normal;letter-spacing:.05em}.play-hud-empty{display:flex;align-items:baseline;gap:7px;font-family:var(--font-ui);font-size:.72rem;color:var(--ink-soft);opacity:.85;padding:2px 0}.play-hud-empty:before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--ink-soft);opacity:.72}.play-hud-section:has(>.play-hud-empty){display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:baseline;column-gap:7px}.play-hud-section:has(>.play-hud-empty)>.play-hud-empty{padding:0}.play-hud-thread-list,.play-hud-item-list,.play-hud-cond-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.play-hud-thread{display:grid;grid-template-columns:7px minmax(0,1fr);column-gap:7px;align-items:start;row-gap:3px;padding:6px 8px;border:1px solid var(--card-border);border-left:3px solid var(--ink-soft);border-radius:var(--radius-sm);background:#0e0c1480}.play-hud-thread-dot{grid-column:1;grid-row:1 / span 2;margin-top:.48em;background:var(--accent-gold);box-shadow:0 0 6px rgba(var(--gold-rgb),.3)}.play-hud-thread.urg-burning .play-hud-thread-dot{background:var(--ember);box-shadow:0 0 6px rgba(var(--ember-rgb),.42)}.play-hud-thread.urg-slow .play-hud-thread-dot{background:var(--gold-600);box-shadow:none}.play-hud-thread-badge{grid-column:2;align-self:flex-start;font-family:var(--font-ui);font-size:.58rem;letter-spacing:.06em;padding:0 6px;border-radius:999px;color:var(--ink-silver);background:#ffffff0f}.play-hud-thread-text{grid-column:2;font-family:var(--font-dialog);font-size:.8rem;line-height:1.45;color:var(--ink-main)}.play-hud-thread-text,.play-hud-cond-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.play-hud-objective-copy{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.play-hud-thread.urg-burning{border-left-color:var(--ember)}.play-hud-thread.urg-burning .play-hud-thread-badge{color:#e8a79c;background:rgba(var(--ember-rgb),.16)}.play-hud-thread.urg-medium{border-left-color:var(--accent-gold)}.play-hud-thread.urg-slow{border-left-color:var(--gold-600)}.play-hud-more{font-family:var(--font-ui);font-size:.68rem;color:var(--ink-soft);padding:1px 2px}.play-hud-item{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:var(--radius-sm);background:#0e0c146b}.play-hud-item-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--ink-soft)}.play-hud-item-dot.cat-treasure{background:var(--gold-050)}.play-hud-item-dot.cat-key{background:var(--gold-200)}.play-hud-item-dot.cat-keepsake{background:var(--gold-400)}.play-hud-item-dot.cat-weapon{background:var(--jade)}.play-hud-item-dot.cat-consumable{background:rgba(var(--jade-rgb),.62)}.play-hud-item-dot.cat-misc{background:var(--ink-soft)}.play-hud-item-name{flex:1;min-width:0;font-family:var(--font-name);font-size:.8rem;color:var(--ink-silver);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.play-hud-item-qty{flex-shrink:0;font-family:var(--font-ui);font-size:.7rem;color:var(--accent-gold)}.play-hud-coins{position:relative;margin-left:auto;display:inline-flex;align-items:center;gap:4px;letter-spacing:normal;font-family:var(--font-ui);font-size:.74rem;font-weight:600;color:#e9cd86;cursor:default;outline:none}.play-hud-coin-count{display:inline-block;overflow:hidden;max-width:6ch;opacity:1;transform:translate(0);font-variant-numeric:tabular-nums;transition:color var(--transition-normal),text-shadow var(--transition-normal)}.play-hud-coins:hover .play-hud-coin-count,.play-hud-coins:focus-visible .play-hud-coin-count,.play-hud-coins.pulsing .play-hud-coin-count{color:#f6e09a;text-shadow:0 0 10px rgba(233,205,134,.55)}.play-hud-coins:focus-visible{border-radius:6px;box-shadow:0 0 0 1px #d8b24e80}.play-hud-coin-icon{width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f6e09a,#d8b24e 48%,#9c7628);box-shadow:0 0 4px #d8b24e80,inset 0 0 0 1px #fff0be80}.play-hud-cond{display:flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid var(--card-border);border-left:3px solid var(--ink-soft);border-radius:var(--radius-sm);background:#0e0c1480}.play-hud-cond-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--ink-soft)}.play-hud-cond-text{flex:1;font-family:var(--font-dialog);font-size:.8rem;line-height:1.4;color:var(--ink-main)}.play-hud-cond.tone-good{border-left-color:#6fbf7a}.play-hud-cond.tone-good .play-hud-cond-dot{background:#6fbf7a;box-shadow:0 0 5px #6fbf7a80}.play-hud-cond.tone-bad{border-left-color:var(--ember)}.play-hud-cond.tone-bad .play-hud-cond-dot{background:var(--ember);box-shadow:0 0 5px #d9605a80}.play-hud-cond.tone-neutral{border-left-color:var(--ink-soft)}.play-hud-foot{flex-shrink:0;padding:7px 10px;border-top:1px solid rgba(255,255,255,.06)}.play-hud-journal-btn{width:100%;background:linear-gradient(180deg,rgba(var(--gold-rgb),.1),rgba(var(--gold-rgb),.03));border:1px solid rgba(var(--gold-rgb),.2);border-radius:var(--radius-md);color:rgba(var(--gold-hi-rgb),.84);font-family:var(--font-ui);font-size:.74rem;letter-spacing:.16em;padding:7px 0;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.play-hud-journal-btn:hover{color:var(--gold-050);border-color:rgba(var(--gold-rgb),.48);background:linear-gradient(180deg,rgba(var(--gold-rgb),.2),rgba(var(--gold-rgb),.07))}.play-hud-handle{position:absolute;top:12vh;left:1.2vw;z-index:16;z-index:42;display:inline-flex;align-items:center;gap:7px;padding:7px 11px 7px 13px;border-radius:var(--radius-sm);border:1px solid rgba(var(--gold-rgb),.22);background:linear-gradient(180deg,#0d0e16db,#08090fe6);color:rgba(var(--gold-hi-rgb),.7);letter-spacing:.1em;cursor:pointer;opacity:.9;transition:opacity var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal);animation:fade-in var(--dur-3) var(--ease-out)}.play-hud-handle:hover{opacity:1;color:var(--ink-name)}.play-hud-handle-chapter{font-family:var(--font-title);font-size:.76rem;letter-spacing:.1em;color:#dcc8a0e6}.play-hud-handle-label{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-ui);font-size:.62rem;letter-spacing:.08em;color:rgba(var(--gold-hi-rgb),.78)}.play-hud-handle-label:before{content:"·";color:rgba(var(--gold-rgb),.55)}.play-hud-handle svg{width:13px;height:13px;flex-shrink:0}@media (max-width: 600px){.play-hud{width:clamp(150px,46vw,200px);--hud-cap: 46vh;--hud-top: 9vh;opacity:.94}.play-hud-handle{top:9vh}}@media (prefers-reduced-motion: reduce){.play-hud,.play-hud-handle{animation:none!important}}.session-item{position:relative}.session-delete-btn{position:absolute;top:6px;right:6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#b43c3c40;border:1px solid rgba(180,80,80,.25);border-radius:50%;color:#f0b4b4b3;font-size:.72rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .2s ease,background .2s ease}.session-item:hover .session-delete-btn{opacity:1}.session-delete-btn:hover{background:#c83c3c8c;color:#fff}.input-panel textarea{animation:input-breathe 2s ease-in-out 1}@keyframes input-breathe{0%{border-color:#ffffff0f}50%{border-color:rgba(var(--gold-rgb),.45)}to{border-color:#ffffff0f}}.input-panel.awaiting-input textarea{animation:input-awaiting-breathe 2.4s ease-in-out infinite}@keyframes input-awaiting-breathe{0%,to{border-color:color-mix(in srgb,var(--accent-sakura) 22%,transparent);box-shadow:0 0 0 0 transparent}50%{border-color:color-mix(in srgb,var(--accent-sakura) 62%,transparent);box-shadow:0 0 12px 1px color-mix(in srgb,var(--accent-sakura) 26%,transparent)}}@media (prefers-reduced-motion: reduce){.input-panel.awaiting-input textarea{animation:none;border-color:color-mix(in srgb,var(--accent-sakura) 45%,transparent);box-shadow:0 0 8px color-mix(in srgb,var(--accent-sakura) 20%,transparent)}}.rewind-btn{position:absolute;top:4px;right:8px;background:rgba(var(--gold-rgb),.12);border:1px solid rgba(var(--gold-rgb),.45);color:rgba(var(--gold-hi-rgb),.92);font-family:var(--font-ui);font-size:.72rem;padding:2px 8px;border-radius:10px;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease,border-color .15s ease;z-index:1;white-space:nowrap;letter-spacing:.02em}.history-item:hover .rewind-btn{opacity:1}.rewind-btn:hover{background:rgba(var(--gold-rgb),.28);border-color:rgba(var(--gold-rgb),.75);color:#f0e4ff}.rewind-btn:disabled{opacity:.4!important;cursor:not-allowed}.branch-children{margin:4px 0 10px 18px;padding:6px 10px;border-left:2px solid rgba(var(--gold-rgb),.45);display:flex;flex-direction:column;gap:4px}.branch-children-title{font-family:var(--font-ui);font-size:.72rem;color:rgba(var(--gold-rgb),.75);letter-spacing:.03em;margin-bottom:2px}.branch-child-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:rgba(var(--gold-rgb),.05);border:1px solid rgba(var(--gold-rgb),.2);border-radius:6px;padding:6px 10px;cursor:pointer;font-family:var(--font-ui);transition:background .15s ease,border-color .15s ease}.branch-child-card:hover{background:rgba(var(--gold-rgb),.15);border-color:rgba(var(--gold-rgb),.55)}.branch-child-main{display:flex;align-items:baseline;gap:6px;color:rgba(var(--gold-hi-rgb),.92);font-size:.78rem}.branch-child-name{font-weight:600;letter-spacing:.02em}.branch-child-turn{color:var(--ink-soft);font-size:.72rem}.branch-child-preview{color:var(--ink-soft);font-size:.72rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.branch-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 12px 8px;border-bottom:1px solid rgba(255,255,255,.05);font-family:var(--font-ui);font-size:.72rem}.branch-crumb-row{display:inline-flex;align-items:center;gap:4px}.branch-crumb-sep{color:var(--ink-soft);font-size:.78rem;padding:0 2px}.branch-crumb{background:rgba(var(--gold-rgb),.08);border:1px solid rgba(var(--gold-rgb),.25);color:var(--gold-200);border-radius:10px;padding:2px 8px;cursor:pointer;font-family:var(--font-ui);font-size:.72rem;letter-spacing:.02em;transition:background .15s ease,color .15s ease}.branch-crumb:hover{background:rgba(var(--gold-rgb),.22);color:#f0e4ff}.branch-crumb.current{background:rgba(var(--accent-sakura-rgb),.3);border-color:rgba(var(--accent-sakura-rgb),.6);color:#f8eaff;font-weight:600;cursor:default}.app-vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12;box-shadow:inset 0 0 200px 26px #0000009e}.app-vignette:before{content:"";position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;background:url(/assets/kit/vfx-vignette-gold.webp) center / 112% 112% no-repeat;mix-blend-mode:screen;opacity:.085}.app-vignette:after{content:"";position:absolute;top:-520px;right:-520px;bottom:-520px;left:-520px;background:url(/assets/kit/tex-dust.webp) repeat;background-size:520px 520px;mix-blend-mode:screen;opacity:.11}.app-grain{display:none}.bg-fallback-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.92;transform:scale(1.05);filter:saturate(.92);animation:fade-in .5s ease}.chapter-sigil{width:clamp(13px,2.1vh,20px);height:clamp(13px,2.1vh,20px);flex-shrink:0;opacity:.8;content:url(/assets/kit/medallion-small.webp);filter:drop-shadow(0 1px 3px rgba(0,0,0,.8))}.dialog-corner{position:absolute;width:clamp(26px,4.2vh,52px);height:clamp(26px,4.2vh,52px);opacity:.36;pointer-events:none;-webkit-user-select:none;user-select:none;content:url(/assets/kit/frame-corner.webp);filter:brightness(1.15)}.dialog-corner-tl{top:-2px;left:0}.dialog-corner-tr{top:-2px;right:0;transform:scaleX(-1)}.loading-spinner{box-shadow:0 0 12px rgba(var(--gold-rgb),.35),0 0 32px rgba(var(--gold-rgb),.18)}@media (prefers-reduced-motion: reduce){.loading-spinner,.juben-progress-fill,.juben-phase-label,.streaming-dots span,.stream-waiting-dots span{animation:none!important;transition:none!important}.bg-fallback-img,.juben-overlay,.phase-confirm-modal{animation:none!important}.ctrl-btn:active:not(:disabled){transform:none!important}}.journal-drawer{width:min(468px,92vw);background:linear-gradient(180deg,#141520,#0c0d14)}.journal-drawer:before{opacity:.085}.journal-body{position:relative}.journal-body:after{content:"";position:absolute;left:50%;bottom:5%;transform:translate(-50%);width:min(252px,54%);height:min(252px,54%);background:var(--journal-mark) center bottom / contain no-repeat;opacity:.042;pointer-events:none;z-index:0}.journal-body>*{position:relative;z-index:1}.journal-body[data-tab=goals]{--journal-mark: url(/assets/kit/mark-goals.webp)}.journal-body[data-tab=threads]{--journal-mark: url(/assets/kit/mark-threads.webp)}.journal-body[data-tab=inventory]{--journal-mark: url(/assets/kit/mark-items.webp)}.journal-body[data-tab=conditions]{--journal-mark: url(/assets/kit/mark-conditions.webp)}.journal-tabs{display:flex;gap:0;padding:10px 16px 0;border-bottom:1px solid rgba(var(--gold-rgb),.12);flex-shrink:0}.journal-tab{position:relative;flex:1;background:transparent;border:none;border-bottom:none;color:rgba(var(--gold-hi-rgb),.48);font-family:var(--font-ui);font-size:.8rem;letter-spacing:.16em;padding:9px 4px 11px;cursor:pointer;transition:color var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:5px}.journal-tab:after{content:"";position:absolute;left:12%;right:12%;bottom:-1px;height:8px;background:var(--orn-tab-rule) center / 100% 100% no-repeat;opacity:0;transition:opacity var(--transition-normal)}.journal-tab:hover{color:rgba(var(--gold-hi-rgb),.8)}.journal-tab.active{color:var(--accent-sakura);border-bottom-color:var(--accent-sakura)}.journal-tab.active:after{opacity:1}.journal-tab-count{font-family:var(--font-ui);font-size:.6rem;font-weight:600;line-height:1;padding:3px 5px;border-radius:999px;background:rgba(var(--gold-rgb),.14);box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.24);color:rgba(var(--gold-hi-rgb),.9)}.journal-body{gap:9px;padding:14px 16px var(--drawer-bottom-space)}.journal-empty{color:var(--ink-soft);font-family:var(--font-ui);font-size:.82rem;text-align:center;padding:28px 12px;line-height:1.9}.journal-empty-subtle{opacity:.5;font-size:.78rem;padding:22px 12px}.journal-body[data-tab=goals]>.journal-empty{opacity:1;color:rgba(var(--gold-hi-rgb),.84);font-size:clamp(.9rem,1.2vw,1rem);letter-spacing:.04em;padding:18px 16px;border:1px dashed rgba(var(--gold-hi-rgb),.28);border-radius:var(--radius-md);background:rgba(var(--gold-rgb),.045)}.journal-body[data-tab=goals]>.journal-goal-empty{display:flex;flex-direction:column;align-items:center;gap:7px}.journal-goal-empty .journal-empty-title{color:rgba(var(--gold-hi-rgb),.9);font-size:.96em}.journal-goal-empty .journal-empty-context{color:rgba(var(--gold-hi-rgb),.78);font-size:.82em;line-height:1.65;text-align:center}.journal-subtle{color:var(--ink-soft);font-family:var(--font-ui);font-size:.72rem;opacity:.7;text-align:center;padding:4px 0}.journal-goal{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:#0e0c148c}.journal-goal-text{flex:1;font-family:var(--font-dialog);font-size:.86rem;color:var(--ink-main);line-height:1.5}.journal-goal-dot{width:7px;height:7px;border-radius:50%;margin-top:6px;flex-shrink:0;background:var(--accent-sakura);box-shadow:0 0 5px rgba(var(--gold-rgb),.55)}.journal-goal.done{background:#0e0c1452}.journal-goal.done .journal-goal-text{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:#a08c6080}.journal-goal-check{width:14px;height:14px;margin-top:3px;flex-shrink:0;border-radius:50%;border:1.5px solid rgba(120,190,120,.7);position:relative}.journal-goal-check:after{content:"";position:absolute;left:4px;top:1px;width:3px;height:7px;border:solid rgba(150,210,150,.95);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.journal-goal-tag{align-self:center;flex-shrink:0;font-family:var(--font-ui);font-size:.62rem;color:#96d296e6;border:1px solid rgba(120,190,120,.4);border-radius:var(--radius-sm);padding:1px 6px}.journal-goal.abandoned{background:#0e0c1447;opacity:.78}.journal-goal.abandoned .journal-goal-text{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:#8a827680}.journal-goal-cross{position:relative;width:14px;height:14px;margin-top:3px;flex-shrink:0;border-radius:50%;border:1.5px solid rgba(138,130,118,.6)}.journal-goal-cross:before,.journal-goal-cross:after{content:"";position:absolute;left:3px;top:5.5px;width:7px;height:1.5px;background:#948c80e6}.journal-goal-cross:before{transform:rotate(45deg)}.journal-goal-cross:after{transform:rotate(-45deg)}.journal-goal-tag.muted{color:var(--ink-soft);border-color:#8a827659}.journal-thread{border:1px solid var(--card-border);border-left:3px solid var(--ink-soft);border-radius:var(--radius-md);background:#0e0c148c;padding:8px 10px}.journal-thread-head{margin-bottom:4px}.journal-thread-badge{font-family:var(--font-ui);font-size:.62rem;letter-spacing:.06em;padding:1px 7px;border-radius:999px;color:var(--ink-silver);background:#ffffff0f}.journal-thread-text{font-family:var(--font-dialog);font-size:.85rem;color:var(--ink-main);line-height:1.55}.journal-thread.urg-burning{border-left-color:var(--ember)}.journal-thread.urg-burning .journal-thread-badge{color:#e8a79c;background:rgba(var(--ember-rgb),.16)}.journal-thread.urg-medium{border-left-color:var(--accent-gold)}.journal-thread.urg-medium .journal-thread-badge{color:var(--gold-200);background:rgba(var(--gold-rgb),.14)}.journal-thread.urg-slow{border-left-color:var(--gold-600)}.journal-thread.urg-slow .journal-thread-badge{color:#a9b6d0;background:#6f7fa029}.journal-resolved{margin-top:10px;border-top:1px solid var(--card-border);padding-top:8px}.journal-resolved-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:6px 4px;background:none;border:none;cursor:pointer;font-family:var(--font-ui);font-size:.8rem;color:var(--ink-soft);text-align:left}.journal-resolved-toggle:hover{color:var(--ink-silver)}.journal-resolved-title{flex:0 0 auto}.journal-resolved-count{min-width:18px;padding:0 6px;border-radius:9px;background:#8a827629;font-variant-numeric:tabular-nums;text-align:center}.journal-resolved-caret{margin-left:auto;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--ink-soft);transition:transform var(--transition-fast)}.journal-resolved-caret.open{transform:rotate(180deg)}.journal-resolved-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.journal-done-goals-list{max-height:240px;overflow-y:auto}.journal-thread.resolved{border-left:2px solid var(--card-border);padding:8px 10px;border-radius:var(--radius-md);background:#ffffff05}.journal-thread.resolved .journal-thread-text{opacity:.82}.journal-thread-resolution{margin-top:5px;font-family:var(--font-dialog);font-size:.8rem;line-height:1.55;color:var(--ink-soft)}.journal-thread-resolution:before{content:"揭晓 · ";color:var(--accent-gold);opacity:.85}.journal-item{border:1px solid var(--card-border);border-radius:var(--radius-md);background:#0e0c148c;padding:8px 10px}.journal-item-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.journal-item-name{font-family:var(--font-name);font-size:.88rem;color:var(--ink-silver)}.journal-item-qty{font-family:var(--font-ui);font-size:.72rem;color:var(--accent-gold)}.journal-cat{margin-left:auto;flex-shrink:0;font-family:var(--font-ui);font-size:.62rem;letter-spacing:.04em;padding:1px 7px;border-radius:var(--radius-sm);border:1px solid transparent;white-space:nowrap}.journal-item-desc{margin-top:5px;font-family:var(--font-ui);font-size:.74rem;color:var(--ink-soft);line-height:1.5}.journal-item-actionable{cursor:pointer;transition:border-color .15s ease,background .15s ease}.journal-item-actionable:hover{border-color:#e9cd8659;background:#18141ead}.journal-item-actionable:focus-visible{outline:none;border-color:var(--accent-gold);background:#18141ead}.journal-item-use{flex-shrink:0;font-family:var(--font-ui);font-size:.64rem;letter-spacing:.06em;color:var(--accent-gold);opacity:.72;padding:1px 6px;border:1px solid rgba(233,205,134,.28);border-radius:var(--radius-sm);transition:opacity .15s ease}.journal-item-actionable:hover .journal-item-use,.journal-item-actionable:focus-visible .journal-item-use{opacity:1}.journal-cat.cat-treasure{color:var(--gold-050);background:rgba(var(--gold-rgb),.2);border-color:rgba(var(--gold-rgb),.5)}.journal-cat.cat-key{color:var(--gold-100);background:rgba(var(--gold-rgb),.13);border-color:rgba(var(--gold-rgb),.36)}.journal-cat.cat-keepsake,.journal-cat.cat-weapon{color:var(--gold-200);background:rgba(var(--gold-rgb),.1);border-color:rgba(var(--gold-rgb),.26)}.journal-cat.cat-consumable{color:var(--gold-300);background:rgba(var(--gold-rgb),.06);border-color:rgba(var(--gold-rgb),.18)}.journal-cat.cat-key{color:#1a1509;background:var(--gold-300);border-color:var(--gold-200)}.journal-cat.cat-treasure{color:#1a1509;background:var(--gold-200);border-color:var(--gold-100)}.journal-cat.cat-misc{color:var(--ink-soft);background:#ffffff08;border-color:var(--card-border)}.journal-condition{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--card-border);border-left:3px solid var(--ink-soft);border-radius:var(--radius-md);background:#0e0c1480}.journal-condition-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--ink-soft)}.journal-condition-text{flex:1;font-family:var(--font-dialog);font-size:.85rem;color:var(--ink-main);line-height:1.5}.journal-condition.tone-good{border-left-color:#6fbf7a}.journal-condition.tone-good .journal-condition-dot{background:#6fbf7a;box-shadow:0 0 5px #6fbf7a80}.journal-condition.tone-bad{border-left-color:var(--ember)}.journal-condition.tone-bad .journal-condition-dot{background:var(--ember);box-shadow:0 0 5px #d9605a80}.journal-condition.tone-neutral{border-left-color:var(--ink-soft)}.journal-condition.tone-neutral .journal-condition-dot{background:var(--ink-soft)}.game-toasts{position:fixed;top:clamp(70px,8vh,100px);right:clamp(12px,2.2vw,34px);left:auto;transform:none;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none;width:max-content;max-width:min(88vw,460px)}@media (max-width: 600px){.game-toasts{top:max(58px,calc(env(safe-area-inset-top,0px) + 48px));right:10px;max-width:calc(100vw - 20px)}}.game-toast{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:9px;padding:9px 16px 9px 12px;border-radius:var(--radius-md);background:linear-gradient(180deg,#0e0e16eb,#08080ef2);border:1px solid rgba(var(--gold-rgb),.2);box-shadow:var(--shadow-panel);max-width:100%;opacity:1;animation:game-toast-life var(--toast-life, 5s) ease forwards}.game-toast:hover{animation-play-state:paused}.game-toast-bar{flex-shrink:0;width:3px;align-self:stretch;border-radius:999px;background:var(--ink-soft)}.game-toast-text{font-family:var(--font-dialog);font-size:.85rem;line-height:1.35;color:var(--ink-main);text-shadow:1px 1px 2px #000;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.game-toast-item-good .game-toast-bar{background:var(--accent-gold);box-shadow:0 0 6px #a08c6099}.game-toast-item-good .game-toast-text{color:#e9cd86}.game-toast-item-bad .game-toast-bar{background:var(--ink-soft)}.game-toast-item-bad .game-toast-text{color:var(--ink-silver)}.game-toast-cond-good .game-toast-bar{background:#6fbf7a;box-shadow:0 0 6px #6fbf7a8c}.game-toast-cond-good .game-toast-text{color:#a7e0ad}.game-toast-cond-bad .game-toast-bar{background:var(--ember);box-shadow:0 0 6px #d9605a99}.game-toast-cond-bad .game-toast-text{color:#f0a19c}.game-toast-cond-neutral .game-toast-bar{background:var(--ink-soft)}.game-toast-cond-neutral .game-toast-text{color:var(--ink-silver)}.game-toast-goal-done{border-color:#a08c6080}.game-toast-goal-done .game-toast-bar{background:var(--accent-gold);box-shadow:0 0 9px #c8ac60d9}.game-toast-goal-done .game-toast-text{color:#f0d99a;font-weight:600;letter-spacing:.02em}.game-toast-goal-new .game-toast-bar{background:var(--ink-silver)}.game-toast-goal-new .game-toast-text{color:var(--ink-silver)}.game-toast-thread{border-color:rgba(var(--gold-rgb),.55);animation:game-toast-life 2.5s ease forwards,sakura-flash .9s ease}.game-toast-thread .game-toast-bar{background:var(--accent-sakura);box-shadow:0 0 10px rgba(var(--gold-rgb),.9)}.game-toast-thread .game-toast-text{color:#ffc4bf;font-weight:600;letter-spacing:.03em}.game-toast-clue{border-color:#7c94d66b}.game-toast-clue .game-toast-bar{background:#7c94d6;box-shadow:0 0 7px #7c94d699}.game-toast-clue .game-toast-text{color:#b9c6ef;letter-spacing:.02em}.game-toast-affinity .game-toast-bar{background:var(--accent-sakura2);box-shadow:0 0 7px rgba(var(--gold-rgb),.65)}.game-toast-affinity .game-toast-text{color:var(--gold-100)}@keyframes game-toast-life{0%{opacity:0;transform:translateY(-9px) scale(.98)}7%{opacity:1;transform:translateY(0) scale(1)}86%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-5px) scale(.99)}}@keyframes sakura-flash{0%{box-shadow:0 0 rgba(var(--gold-rgb),0),var(--shadow-panel)}35%{box-shadow:0 0 22px 5px rgba(var(--gold-rgb),.55),var(--shadow-panel)}to{box-shadow:0 0 rgba(var(--gold-rgb),0),var(--shadow-panel)}}.chapter-milestone-layer{position:absolute;top:clamp(64px,12vh,120px);left:0;right:0;z-index:61;display:flex;flex-direction:column;align-items:center;gap:clamp(7px,1.1vh,11px);justify-content:center;pointer-events:none}.chapter-milestone-layer:before,.chapter-milestone-layer:after{content:"";position:fixed;top:0;bottom:0;width:46vw;pointer-events:none;background:url(/assets/kit/vfx-curtain-sweep.webp) center / 100% 100% no-repeat;mix-blend-mode:screen;opacity:0;animation:curtain-sweep 2.2s var(--ease-out) forwards}.chapter-milestone-layer:before{left:0}.chapter-milestone-layer:after{right:0;transform:scaleX(-1)}@keyframes curtain-sweep{0%{opacity:0;transform:translate(-14%)}22%{opacity:.3}to{opacity:0;transform:translate(0)}}.chapter-milestone-layer:after{animation-name:curtain-sweep-right}@keyframes curtain-sweep-right{0%{opacity:0;transform:scaleX(-1) translate(-14%)}22%{opacity:.3}to{opacity:0;transform:scaleX(-1) translate(0)}}@media (prefers-reduced-motion: reduce){.chapter-milestone-layer:before,.chapter-milestone-layer:after{display:none}}.chapter-milestone{position:relative;min-width:min(340px,78vw);max-width:min(520px,90vw);padding:clamp(14px,2vh,22px) clamp(26px,3.6vw,44px);text-align:center;background:linear-gradient(180deg,#100f16f0,#09090ef5);border:1px solid rgba(var(--gold-rgb),.24);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel),0 0 70px -26px rgba(var(--gold-rgb),.4);overflow:hidden;pointer-events:auto;cursor:pointer;animation:chapter-milestone-life 2.6s ease forwards}.chapter-milestone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-paper) repeat;background-size:512px 512px;opacity:.06;mix-blend-mode:overlay;pointer-events:none}.chapter-milestone>*{position:relative}.chapter-milestone-rule{width:clamp(28px,5vw,48px);height:2px;margin:0 auto clamp(7px,1.1vh,11px);background:var(--accent-sakura);border-radius:999px;box-shadow:0 0 8px rgba(var(--gold-rgb),.7)}.chapter-milestone-eyebrow{font-family:var(--font-ui);font-size:clamp(.62rem,1.4vh,.74rem);letter-spacing:.42em;text-indent:.42em;text-transform:none;color:var(--accent-sakura);margin-bottom:clamp(4px,.7vh,7px)}.chapter-milestone-title{font-family:var(--font-title);font-size:clamp(1.05rem,2.6vh,1.5rem);color:var(--ink-name);text-shadow:var(--text-shadow-dialog);letter-spacing:.06em;line-height:1.4}.narrative-accent{position:relative;min-width:min(300px,76vw);max-width:min(560px,90vw);padding:clamp(11px,1.7vh,17px) clamp(20px,3.2vw,38px);text-align:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:auto;cursor:pointer;opacity:1;animation:chapter-milestone-life var(--accent-life, 4.2s) ease forwards}.narrative-accent:hover{animation-play-state:paused}.narrative-accent-rule{width:clamp(26px,4.6vw,44px);height:2px;margin:0 auto clamp(6px,1vh,10px);border-radius:999px}.narrative-accent-eyebrow{font-family:var(--font-ui);font-size:clamp(.6rem,1.35vh,.72rem);letter-spacing:.42em;text-indent:.42em;margin-bottom:clamp(4px,.7vh,7px)}.narrative-accent-title{font-family:var(--font-title);font-size:clamp(.96rem,2.3vh,1.32rem);color:var(--ink-name);text-shadow:var(--text-shadow-dialog);letter-spacing:.05em;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.narrative-accent-goal{border-color:#a08c6080}.narrative-accent-goal .narrative-accent-rule{background:var(--accent-gold);box-shadow:0 0 9px #c8ac60d9}.narrative-accent-goal .narrative-accent-eyebrow{color:#e9cd86}.narrative-accent-thread{border-color:rgba(var(--gold-rgb),.42)}.narrative-accent-thread .narrative-accent-rule{background:var(--accent-sakura);box-shadow:0 0 10px rgba(var(--gold-rgb),.9)}.narrative-accent-thread .narrative-accent-eyebrow{color:var(--accent-sakura)}.narrative-accent-clue{border-color:#7c94d66b}.narrative-accent-clue .narrative-accent-rule{background:#7c94d6}.narrative-accent-clue .narrative-accent-eyebrow{color:#b9c6ef}.narrative-accent-goal-new .narrative-accent-rule{background:var(--ink-silver)}.narrative-accent-goal-new .narrative-accent-eyebrow{color:var(--ink-silver)}.narrative-accent-item-good .narrative-accent-rule{background:var(--accent-gold)}.narrative-accent-item-good .narrative-accent-eyebrow{color:#e9cd86}.narrative-accent-item-bad .narrative-accent-rule{background:var(--ink-soft)}.narrative-accent-item-bad .narrative-accent-eyebrow{color:var(--ink-silver)}.narrative-accent-cond-good .narrative-accent-rule{background:#6fbf7a}.narrative-accent-cond-good .narrative-accent-eyebrow{color:#a7e0ad}.narrative-accent-cond-bad{border-color:#d9605a6b}.narrative-accent-cond-bad .narrative-accent-rule{background:#d9605a}.narrative-accent-cond-bad .narrative-accent-eyebrow{color:#f0a19c}.narrative-accent-cond-neutral .narrative-accent-rule{background:var(--ink-soft)}.narrative-accent-cond-neutral .narrative-accent-eyebrow{color:var(--ink-silver)}.narrative-accent-affinity .narrative-accent-rule{background:var(--accent-sakura2)}.narrative-accent-affinity .narrative-accent-eyebrow{color:#e2c4fb}.narrative-accent-more{display:inline-block;margin-left:.7em;padding:0 .42em;font-size:.86em;letter-spacing:0;text-indent:0;border-radius:999px;color:var(--ink-silver);background:#ffffff17;vertical-align:.06em}@keyframes chapter-milestone-life{0%{opacity:0;transform:translateY(-10px)}12%{opacity:1;transform:translateY(0)}82%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.chapter-milestone{animation:chapter-milestone-fade 2.6s linear forwards}@keyframes chapter-milestone-fade{0%,90%{opacity:1}to{opacity:0}}}.coin-floater{position:absolute;left:calc(100% - 2px);top:3px;font-family:var(--font-ui);font-size:.82rem;font-weight:700;white-space:nowrap;text-shadow:1px 1px 2px #000;pointer-events:none;animation:coin-floater-rise 1.3s ease forwards}.coin-floater.gain{color:#6fbf7a}.coin-floater.loss{color:var(--ember)}.play-hud-coins.pulsing,.play-hud-coins.pulsing .play-hud-coin-icon{animation:coin-pop .5s ease}@keyframes coin-floater-rise{0%{opacity:0;transform:translateY(4px)}18%{opacity:1;transform:translateY(-2px)}to{opacity:0;transform:translateY(-16px)}}@keyframes coin-pop{0%{transform:scale(1)}40%{transform:scale(1.28);filter:brightness(1.35)}to{transform:scale(1)}}.npc-card{position:relative}.npc-affinity-fill{transition:width .55s ease}.npc-affinity-level{margin-left:6px;font-family:var(--font-ui);font-size:.6rem;font-weight:600;letter-spacing:.04em;vertical-align:middle;opacity:.92}.npc-affinity-level.tone-warm{color:var(--accent-sakura)}.npc-affinity-level.tone-neutral{color:var(--ink-soft)}.npc-affinity-level.tone-cold{color:#cf9a6a}.affinity-floater{position:absolute;top:2px;right:4px;font-family:var(--font-ui);font-size:.78rem;font-weight:700;white-space:nowrap;text-shadow:1px 1px 2px #000;pointer-events:none;animation:coin-floater-rise 1.4s ease forwards}.affinity-floater.gain{color:#6fbf7a}.affinity-floater.loss{color:var(--ember)}@media (prefers-reduced-motion: reduce){.narrative-accent{animation:none!important}.coin-floater,.affinity-floater,.play-hud-coins.pulsing,.play-hud-coins.pulsing .play-hud-coin-icon,.play-hud-coin-count,.npc-affinity-fill{animation-duration:.01ms!important;transition-duration:.01ms!important}}.recap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:clamp(12px,4vw,48px);--recap-accent: var(--ink-silver);--recap-seal: url(/assets/kit/seal-open.webp)}.recap-tone-triumph{--recap-accent: #e9cd86;--recap-seal: url(/assets/kit/seal-triumph.webp)}.recap-tone-bittersweet{--recap-accent: var(--accent-sakura2);--recap-seal: url(/assets/kit/seal-bittersweet.webp)}.recap-tone-tragic{--recap-accent: #9aa6bd;--recap-seal: url(/assets/kit/seal-tragic.webp)}.recap-tone-open{--recap-accent: #63c7d6;--recap-seal: url(/assets/kit/seal-open.webp)}.recap-tone-neutral{--recap-accent: var(--ink-silver);--recap-seal: url(/assets/kit/seal-open.webp)}.recap-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 50% 42%,#08060ed1,#020205f2);animation:recap-fade-in var(--transition-normal) both}.recap-backdrop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/kit/vfx-bloom.webp) center top / 130% auto no-repeat;mix-blend-mode:screen;opacity:.16;pointer-events:none}.recap-card{position:relative;width:min(760px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-lg);background:linear-gradient(180deg,#171410fb,#0c0b0afc);border:1px solid rgba(var(--gold-rgb),.3);border-top:none;box-shadow:var(--shadow-panel),0 0 120px -40px rgba(var(--gold-rgb),.35),inset 0 0 90px -40px rgba(var(--gold-rgb),.18);color:var(--ink-main);animation:recap-rise-in var(--dur-4) var(--ease-out) both}.recap-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tex-paper) repeat;background-size:512px 512px;opacity:.07;mix-blend-mode:overlay;pointer-events:none;z-index:0}.recap-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--recap-accent) 18%,var(--recap-accent) 82%,transparent);opacity:.9;pointer-events:none;z-index:2}.recap-card>*{position:relative;z-index:1}.recap-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:clamp(26px,4vw,46px) clamp(20px,4vw,44px) 0}.recap-scroll::-webkit-scrollbar{width:6px}.recap-scroll::-webkit-scrollbar-track{background:transparent}.recap-scroll::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb),.34);border-radius:3px}.recap-scroll::-webkit-scrollbar-thumb:hover{background:rgba(var(--gold-rgb),.58)}.recap-header{text-align:center;margin-bottom:clamp(16px,3vw,26px)}.recap-header:before{content:"";display:block;width:clamp(58px,8vw,84px);height:clamp(58px,8vw,84px);margin:0 auto clamp(10px,1.6vw,16px);background:var(--recap-seal) center / contain no-repeat;filter:drop-shadow(0 3px 10px rgba(0,0,0,.7));animation:recap-seal-stamp .9s var(--ease-out) .18s both}@keyframes recap-seal-stamp{0%{opacity:0;transform:scale(1.72) rotate(-11deg)}48%{opacity:1;transform:scale(.94) rotate(2deg)}72%{opacity:1;transform:scale(1.03) rotate(-.8deg)}to{opacity:1;transform:scale(1) rotate(0)}}.recap-eyebrow{font-family:var(--font-ui);font-size:11px;letter-spacing:.46em;text-transform:uppercase;color:rgba(var(--gold-rgb),.6);margin-bottom:12px}.recap-title{margin:0;font-family:var(--font-title);font-size:clamp(28px,6vw,46px);line-height:1.22;letter-spacing:.1em;color:var(--recap-accent);text-shadow:0 2px 14px rgba(0,0,0,.7),0 0 40px rgba(var(--gold-rgb),.2)}.recap-title-rule{width:min(300px,60%);height:16px;margin:18px auto 0;background:var(--orn-brush) center / 100% 100% no-repeat;opacity:.65}.recap-summary{margin:0 auto clamp(18px,4vw,28px);max-width:56ch;font-family:var(--font-dialog);font-size:clamp(15px,2.4vw,17px);line-height:1.9;color:var(--ink-silver);text-align:center;white-space:pre-wrap;animation:recap-fade-in .9s ease .2s both}.recap-sections{display:flex;flex-direction:column;gap:clamp(14px,3vw,20px)}.recap-section{padding-top:16px;border-top:1px solid rgba(var(--gold-rgb),.13)}.recap-section-title{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-family:var(--font-ui);font-size:11.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:rgba(var(--gold-rgb),.82)}.recap-section-count{min-width:20px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--recap-accent) 22%,transparent);color:var(--recap-accent);font-family:var(--font-ui);font-size:12px;text-align:center}.recap-subhead{margin:12px 0 6px;font-family:var(--font-ui);font-size:12px;letter-spacing:.12em;color:var(--ink-soft)}.recap-empty{font-family:var(--font-dialog);font-size:14px;color:var(--ink-soft);font-style:normal;letter-spacing:.05em}.recap-goal-list,.recap-thread-list,.recap-npc-list,.recap-mark-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.recap-goal{display:flex;align-items:flex-start;gap:9px;font-family:var(--font-dialog);font-size:14.5px;color:var(--ink-silver)}.recap-goal-check{flex:0 0 auto;width:14px;height:14px;margin-top:3px;border-radius:50%;border:1.5px solid var(--recap-accent);background:radial-gradient(circle at center,var(--recap-accent) 0 40%,transparent 45%)}.recap-goal-text{flex:1}.recap-goal.abandoned{color:var(--ink-soft);opacity:.82}.recap-goal.abandoned .recap-goal-text{text-decoration:line-through;text-decoration-color:#8a827680}.recap-goal-cross{position:relative;flex:0 0 auto;width:14px;height:14px;margin-top:3px;border-radius:50%;border:1.5px solid rgba(138,130,118,.55)}.recap-goal-cross:before,.recap-goal-cross:after{content:"";position:absolute;left:3px;top:5.5px;width:7px;height:1.5px;background:#948c80d9}.recap-goal-cross:before{transform:rotate(45deg)}.recap-goal-cross:after{transform:rotate(-45deg)}.recap-thread{padding:8px 12px;border-radius:var(--radius-md);background:#ffffff08;border-left:2px solid var(--card-border);font-family:var(--font-dialog);font-size:14px;line-height:1.6;color:var(--ink-silver)}.recap-thread.resolved{border-left-color:var(--recap-accent)}.recap-thread.open{color:var(--ink-soft);font-style:normal;letter-spacing:.05em;border-left-style:dashed}.recap-thread-text{display:block}.recap-thread-resolution{display:block;margin-top:5px;font-size:13px;color:var(--ink-soft)}.recap-thread-resolution:before{content:"揭晓 · ";color:var(--recap-accent)}.recap-npc-list{flex-direction:row;flex-wrap:wrap;gap:8px}.recap-npc{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:#ffffff0a;border:1px solid var(--card-border)}.recap-npc-name{font-family:var(--font-name);font-size:14px;color:var(--ink-name)}.recap-npc-tier{font-family:var(--font-ui);font-size:11.5px;padding:1px 8px;border-radius:999px}.recap-npc-tier.sign-pos{color:#8fc9a0;background:#8fc9a01f}.recap-npc-tier.sign-neg{color:var(--ember);background:#d9605a1f}.recap-npc-tier.sign-neutral{color:var(--ink-soft);background:#9c94861a}.recap-item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.recap-item{display:flex;flex-direction:column;gap:6px;padding:9px 11px;border-radius:var(--radius-md);background:#ffffff08;border:1px solid var(--card-border)}.recap-item-head{display:flex;align-items:baseline;gap:6px}.recap-item-name{font-family:var(--font-name);font-size:14px;color:var(--ink-main)}.recap-item-qty{font-family:var(--font-ui);font-size:12px;color:var(--ink-soft)}.recap-item .journal-cat{align-self:flex-start;padding:1px 8px;border-radius:999px;border:1px solid transparent;font-family:var(--font-ui);font-size:11px}.recap-mark{display:flex;align-items:center;gap:9px;padding:7px 12px;border-radius:var(--radius-md);border-left:2px solid var(--ink-soft);background:#ffffff08;font-family:var(--font-dialog);font-size:14px;color:var(--ink-silver)}.recap-mark-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--ink-soft)}.recap-mark.tone-good{border-left-color:#6fbf7a}.recap-mark.tone-good .recap-mark-dot{background:#6fbf7a;box-shadow:0 0 5px #6fbf7a80}.recap-mark.tone-bad{border-left-color:var(--ember)}.recap-mark.tone-bad .recap-mark-dot{background:var(--ember);box-shadow:0 0 5px #d9605a80}.recap-mark.tone-neutral{border-left-color:var(--ink-soft)}.recap-mark-text{flex:1}.recap-stats{display:flex;justify-content:center;gap:clamp(28px,8vw,56px);margin:clamp(18px,4vw,26px) 0 clamp(16px,3vw,22px)}.recap-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.recap-stat-num{font-family:var(--font-title);font-size:clamp(24px,5vw,32px);color:var(--recap-accent);line-height:1}.recap-stat-label{font-family:var(--font-ui);font-size:11px;letter-spacing:.2em;color:var(--ink-soft)}.recap-actions{flex:0 0 auto;box-shadow:0 -1px rgba(var(--gold-rgb),.26),0 -18px 26px -18px #000000e6;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;padding:clamp(20px,3vw,30px) clamp(20px,4vw,44px) clamp(18px,3vw,30px);background:linear-gradient(180deg,#0c0b0afb,#0a0909 34%,#0a0909)}.recap-action-item{display:flex;flex-direction:column;align-items:center;gap:6px}.recap-action-note{font-family:var(--font-ui);font-size:11px;color:var(--ink-soft);opacity:.85;text-align:center}.recap-btn{padding:12px 30px;border-radius:var(--radius-md);font-family:var(--font-ui);font-size:14px;letter-spacing:.1em;cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),color var(--transition-fast)}.recap-btn:hover{transform:translateY(-2px)}.recap-btn:active{transform:translateY(0)}.recap-btn-ghost{background-color:transparent;border:1px solid rgba(var(--gold-rgb),.24);color:var(--ink-silver)}.recap-btn-ghost:hover{border-color:rgba(var(--gold-rgb),.6);color:var(--gold-050);background-color:rgba(var(--gold-rgb),.06)}.recap-btn-primary{background:color-mix(in srgb,var(--recap-accent) 20%,transparent);border:1px solid var(--recap-accent);color:var(--recap-accent);font-weight:500;box-shadow:0 10px 28px -14px #000000b3}.recap-btn-primary:hover{background:linear-gradient(180deg,var(--gold-050) 0%,var(--gold-200) 52%,var(--gold-300) 100%);border-color:#fff6e2;box-shadow:inset 0 1px #fffcf499,inset 0 -1px #0000002e,0 14px 34px -12px rgba(var(--gold-rgb),.7)}@media (max-width: 560px){.recap-overlay{padding:0}.recap-card{width:100%;height:100%;max-height:100%;border-radius:var(--radius-lg);clip-path:none}.recap-actions{flex-direction:column;gap:8px;padding-top:20px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.recap-action-item{width:100%;gap:3px}.recap-btn{width:100%;min-height:48px}.recap-action-note{font-size:10px;opacity:.7}}@keyframes recap-fade-in{0%{opacity:0}to{opacity:1}}@keyframes recap-rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.recap-backdrop,.recap-card,.recap-summary{animation:none!important}.recap-btn{transition:none!important}}.genre-presets{display:flex;flex-direction:column;gap:8px;animation:genre-presets-in .24s ease}@keyframes genre-presets-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.genre-presets-hint{font-family:var(--font-ui);font-size:.76rem;letter-spacing:.14em;color:rgba(var(--gold-hi-rgb),.78);text-align:center;padding-bottom:2px}.genre-presets-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:44vh;overflow-y:auto;padding:6px 8px 16px}@media (min-width: 561px){.genre-presets-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.genre-preset-card{grid-column:span 2}.genre-preset-card:nth-child(10){grid-column:2 / span 2}.genre-preset-card:nth-child(11){grid-column:4 / span 2}}.genre-preset-card{position:relative;display:flex;flex-direction:column;justify-content:center;gap:5px;text-align:left;min-height:clamp(70px,11vh,96px);padding:12px 14px;background:linear-gradient(180deg,#ffffff09,#ffffff03),#0a0b1238;border:1px solid rgba(var(--gold-rgb),.18);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.genre-preset-card:hover:not(:disabled){transform:translateY(-2px);border-color:rgba(var(--gold-rgb),.6);background-color:#1815104d;box-shadow:0 10px 26px -12px #000000d9,inset 0 0 34px -14px rgba(var(--gold-rgb),.45)}.genre-preset-card:active:not(:disabled){transform:translateY(0)}.genre-preset-card:disabled{opacity:.4;cursor:not-allowed}.genre-preset-label{font-family:var(--font-title);font-size:1.02rem;letter-spacing:.1em;color:var(--gold-100);text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.6)}.genre-preset-blurb{font-family:var(--font-ui);font-size:clamp(12px,1.85vh,14px);line-height:1.34;color:rgba(var(--gold-hi-rgb),.78);text-shadow:0 1px 3px rgba(0,0,0,.84)}.genre-preset-random .genre-preset-label{color:rgba(var(--gold-hi-rgb),.72)}@media (max-width: 560px){.genre-presets-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));max-height:38vh}.genre-preset-label{font-size:.92rem}}@media (prefers-reduced-motion: reduce){.genre-presets{animation:none!important}.genre-preset-card{transition:border-color var(--transition-fast)!important}.genre-preset-card:hover:not(:disabled){transform:none!important}}.plot-guide{display:flex;flex-direction:column;gap:10px;padding:14px 2px 2px;background:transparent;border:none;border-top:1px solid rgba(var(--gold-rgb),.14);border-radius:0;animation:genre-presets-in var(--dur-2) var(--ease-out)}.plot-guide-hint{font-family:var(--font-ui);font-size:.8rem;line-height:1.5;color:var(--ink-silver);letter-spacing:.02em}.plot-guide-actions{display:flex;flex-wrap:wrap;gap:8px}.plot-guide-btn{flex:1 1 auto;min-height:40px;padding:9px 14px;font-family:var(--font-ui);font-size:.84rem;letter-spacing:.1em;border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.plot-guide-btn-primary{color:#ffb3ad;background:color-mix(in srgb,var(--accent-sakura) 18%,transparent);border:1px solid var(--accent-sakura);font-weight:600;letter-spacing:.12em;box-shadow:0 8px 22px -14px #fe877f80}.plot-guide-btn-primary:hover:not(:disabled){color:#ffd2ce;background:color-mix(in srgb,var(--accent-sakura) 30%,transparent);border-color:#ff9a93;box-shadow:0 10px 26px -14px #fe877fb3}.plot-guide-btn-ghost{color:var(--ink-silver);background:transparent;border:1px solid var(--card-border)}.plot-guide-btn-ghost:hover:not(:disabled){color:var(--accent-sakura);border-color:var(--accent-sakura)}.plot-guide-btn:disabled{opacity:.45;cursor:not-allowed}.plot-guide-input{width:100%;resize:vertical;padding:8px 10px;font-family:var(--font-dialog);font-size:.9rem;line-height:1.5;color:var(--ink-main);background:#00000070;border:1px solid rgba(var(--gold-rgb),.2);border-top-color:#0000008c;box-shadow:inset 0 2px 7px -2px #000000d9;border-radius:0;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.plot-guide-input:focus{border-color:var(--accent-sakura)}@media (prefers-reduced-motion: reduce){.plot-guide{animation:none!important}}.protagonist-name-block{margin:12px 0 4px;padding-top:12px;border-top:1px solid var(--card-border)}.protagonist-name-field{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#0a0b1299;border:1px solid var(--card-border);border-radius:var(--radius-md)}.protagonist-name-label{font-family:var(--font-ui);font-size:.98rem;font-weight:600;letter-spacing:.02em;color:var(--ink-main)}.protagonist-name-hint{font-family:var(--font-ui);font-size:.74rem;color:var(--ink-soft);opacity:.85}.protagonist-name-input{width:100%;padding:9px 12px;font-family:var(--font-name);font-size:1.08rem;color:var(--ink-name);background:#00000070;border:1px solid var(--card-border);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast)}.protagonist-name-input:focus{border-color:var(--accent-sakura)}.protagonist-name-input:disabled{opacity:.5;cursor:not-allowed}.protagonist-name-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-height:34px;padding:8px 14px;font-family:var(--font-ui);font-size:.86rem;color:var(--ink-main);background:#0a0b12a3;border:1px solid rgba(var(--gold-rgb),.34);border-radius:var(--radius-pill);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.protagonist-name-chip:hover:not(:disabled){border-color:var(--accent-sakura);background:#00000070}.protagonist-name-chip:focus-visible{outline:2px solid rgba(var(--accent-sakura-rgb),.78);outline-offset:2px;border-color:rgba(var(--accent-sakura-rgb),.8)}.protagonist-name-chip:disabled{opacity:.5;cursor:not-allowed}.pn-chip-key{font-size:.74rem;color:var(--ink-soft);letter-spacing:.04em}.pn-chip-name{font-family:var(--font-name);font-size:.98rem;color:var(--ink-name);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:12em}.pn-chip-name.placeholder{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-soft)}.pn-chip-edit{font-size:.74rem;color:var(--accent-sakura);margin-left:2px}.protagonist-name-row{display:flex;gap:8px;align-items:stretch}.protagonist-name-row .protagonist-name-input{flex:1 1 auto;width:auto}.protagonist-name-confirm{flex:0 0 auto;padding:0 16px;font-family:var(--font-ui);font-size:.88rem;color:var(--ink-name);background:#00000070;border:1px solid var(--accent-sakura);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.protagonist-name-confirm:hover{background:rgba(var(--gold-rgb),.2)}.history-item-options{display:flex;flex-direction:column;gap:5px;margin-top:2px}.history-item-option{font-family:var(--font-ui);font-size:.78rem;line-height:1.45;color:var(--ink-soft);padding:4px 8px;border-left:2px solid var(--card-border);background:#ffffff08;border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:default;word-break:normal}.feedback-fab{position:fixed;right:clamp(14px,2vw,28px);bottom:calc(clamp(40px,5.2vh,60px) + env(safe-area-inset-bottom,4px) + 10px);z-index:55;padding:7px 13px;font-family:var(--font-ui);font-size:clamp(.68rem,.95vh,.8rem);letter-spacing:.14em;color:rgba(var(--gold-hi-rgb),.8);background:#06060b80;border:1px solid rgba(var(--gold-rgb),.34);border-radius:var(--radius-pill);box-shadow:0 6px 20px -10px #000c;cursor:pointer;opacity:.66;transition:opacity var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal),background var(--transition-normal)}.feedback-fab:hover{opacity:1;color:var(--gold-050);border-color:rgba(var(--gold-rgb),.55);background:rgba(var(--gold-rgb),.13);box-shadow:0 8px 24px -10px #000000d9,0 0 16px -8px rgba(var(--gold-rgb),.5)}.feedback-fab.input-open{opacity:0;visibility:hidden;pointer-events:none}.feedback-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008f;display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease}.feedback-modal{position:relative;width:min(560px,88vw);max-height:86vh;overflow-y:auto;background:var(--card-bg);border:1px solid rgba(var(--gold-rgb),.24);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel),0 0 80px -30px rgba(var(--gold-rgb),.26);padding:clamp(20px,2.6vh,30px) clamp(18px,2.2vw,34px) clamp(16px,2.2vh,26px);transform-origin:center;animation:phase-confirm-rise var(--dur-3) var(--ease-out)}.feedback-modal:before{content:"";position:absolute;top:0;left:16%;right:16%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-sakura),transparent);opacity:.7}.feedback-title{font-family:var(--font-title);font-size:clamp(1.02rem,1.7vh,1.45rem);color:var(--gold-100);letter-spacing:.2em;margin-bottom:10px;text-shadow:0 1px 3px rgba(0,0,0,.8)}.feedback-desc{font-family:var(--font-ui);font-size:clamp(.78rem,1.15vh,.92rem);line-height:1.6;color:var(--ink-soft);margin-bottom:12px}.feedback-textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:96px;padding:10px 12px;font-family:var(--font-ui);font-size:clamp(.82rem,1.2vh,.98rem);line-height:1.6;color:var(--ink-main);background:#00000047;border:1px solid var(--card-border);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast)}.feedback-textarea:focus{border-color:rgba(var(--gold-rgb),.55)}.feedback-textarea::placeholder{color:var(--ink-soft)}.feedback-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.feedback-chip{padding:6px 14px;font-family:var(--font-ui);font-size:clamp(.72rem,1vh,.85rem);letter-spacing:.1em;color:rgba(var(--gold-hi-rgb),.62);background:transparent;border:1px solid rgba(var(--gold-rgb),.18);border-radius:0;cursor:pointer;transition:var(--transition-fast)}.feedback-chip:hover{color:var(--ink-name);border-color:rgba(var(--gold-rgb),.42)}.feedback-chip.active{color:var(--ink-name);background:rgba(var(--accent-sakura-rgb),.18);border-color:rgba(var(--accent-sakura-rgb),.62)}.feedback-shot{margin-top:12px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.feedback-shot-preview{max-width:100%;max-height:240px;border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:0 2px 12px #0006}.feedback-shot-remove{padding:4px 12px;font-family:var(--font-ui);font-size:clamp(.7rem,.95vh,.82rem);color:var(--ink-silver);background:transparent;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast)}.feedback-shot-remove:hover{color:var(--accent-sakura);border-color:rgba(var(--gold-rgb),.5)}.feedback-error{margin-top:12px;font-family:var(--font-ui);font-size:clamp(.76rem,1.1vh,.88rem);color:#ff8f8f}.feedback-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:12px}.feedback-cancel,.feedback-submit{border-radius:var(--radius-md);letter-spacing:.12em;min-height:38px;padding:8px 20px;font-family:var(--font-ui);font-size:clamp(.78rem,1.1vh,.95rem);cursor:pointer;transition:var(--transition-fast)}.feedback-cancel{border:1px solid rgba(255,255,255,.14);background:transparent;color:var(--ink-silver)}.feedback-cancel:hover:not(:disabled){color:var(--ink-name)}.feedback-submit{border:1px solid var(--gold-200);background:linear-gradient(180deg,var(--gold-100) 0%,var(--gold-300) 100%);color:var(--ink-950);font-weight:600;box-shadow:inset 0 1px #ffffff42,0 8px 22px -12px rgba(var(--gold-rgb),.7)}.feedback-submit:hover:not(:disabled){color:var(--accent-sakura);border-color:rgba(var(--gold-rgb),.72);background:rgba(var(--gold-rgb),.2);box-shadow:0 0 0 1px rgba(var(--gold-rgb),.45),0 2px 10px rgba(var(--gold-rgb),.18)}.feedback-cancel:disabled,.feedback-submit:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 900px){.play-hud,.npc-panel{z-index:12}.play-hud-handle,.npc-panel-handle,.npc-panel.collapsed{z-index:42}.top-hud{justify-content:flex-start;padding-top:1vh}.chapter-badge{max-width:calc(100vw - 132px);padding:6px 10px;font-size:.78rem;letter-spacing:.12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chapter-badge:before,.chapter-badge:after{width:14px}.hud-right{top:.6vh;right:1.6vw;padding:6px 8px}.auth-username{max-width:62px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dialog-inner{width:min(100%,94vw);padding-left:clamp(14px,4vw,22px);padding-right:clamp(14px,4vw,22px)}.speaker-name-tag{min-width:min(240px,72vw);font-size:clamp(16px,4.6vw,22px);padding:.5vh clamp(22px,7vw,40px)}.option-btn{min-height:48px;padding:12px 82px 12px 42px;font-size:clamp(14px,4vw,17px)}.option-btn:before{left:11px;width:20px;height:20px;font-size:10px}.option-btn:hover:not(:disabled){transform:none}.option-btn:active:not(:disabled){transform:scale(.985)}.feedback-fab{bottom:calc(clamp(40px,5.2vh,60px) + env(safe-area-inset-bottom,4px) + 8px)}}@media (max-width: 600px){.control-bar{gap:0;padding:0 6px;justify-content:space-around;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.control-bar::-webkit-scrollbar{display:none}.ctrl-btn{padding:6px 4px;min-width:40px;flex:0 0 auto}.ctrl-btn .ctrl-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ctrl-btn svg{width:22px;height:22px}.ctrl-btn:after{bottom:-1px}}@media (max-width: 900px){.feedback-fab{display:none}}.galgame-shell:has(.drawer) .feedback-fab,.galgame-shell:has(.recap-overlay) .feedback-fab,.galgame-shell:has(.feedback-overlay) .feedback-fab,.galgame-shell:has(.phase-confirm-overlay) .feedback-fab,.galgame-shell:has(.juben-overlay) .feedback-fab{opacity:0;pointer-events:none}.dialog-options .option-btn{animation:option-settle var(--dur-3) var(--ease-out) both}.dialog-options .option-btn:nth-child(1){animation-delay:0ms}.dialog-options .option-btn:nth-child(2){animation-delay:60ms}.dialog-options .option-btn:nth-child(3){animation-delay:.12s}.dialog-options .option-btn:nth-child(4){animation-delay:.18s}.dialog-options .option-btn:nth-child(n+5){animation-delay:.24s}@keyframes option-settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.dialog-options .option-btn{animation:none}}@keyframes scene-ink-reveal{0%{-webkit-mask-size:24% 24%;mask-size:24% 24%;opacity:.35}to{-webkit-mask-size:340% 340%;mask-size:340% 340%;opacity:1}}.bg-layer img:not(.bg-fallback):not(.bg-fallback-img){-webkit-mask-image:radial-gradient(circle at 50% 52%,#000 56%,transparent 78%);mask-image:radial-gradient(circle at 50% 52%,#000 56%,transparent 78%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;animation:scene-ink-reveal 1.15s var(--ease-out) both}@media (prefers-reduced-motion: reduce){.bg-layer img:not(.bg-fallback):not(.bg-fallback-img){animation:none;-webkit-mask-image:none;mask-image:none}}.game-toast-goal-done:after{content:"";position:absolute;left:-18px;top:50%;width:96px;height:96px;transform:translateY(-50%);background:url(/assets/kit/vfx-gold-burst.webp) center / contain no-repeat;mix-blend-mode:screen;pointer-events:none;animation:vfx-burst 1.1s var(--ease-out) both}.game-toast-affinity:after{content:"";position:absolute;left:-10px;top:50%;width:66px;height:66px;transform:translateY(-50%);background:url(/assets/kit/vfx-sparkle.webp) center / contain no-repeat;mix-blend-mode:screen;pointer-events:none;animation:vfx-burst 1.3s var(--ease-out) both}.game-toast-thread:after{content:"";position:absolute;right:-14px;top:50%;width:88px;height:88px;transform:translateY(-50%);background:url(/assets/kit/vfx-splash-ink.webp) center / contain no-repeat;mix-blend-mode:screen;opacity:.7;pointer-events:none;animation:vfx-burst 1.2s var(--ease-out) both}@keyframes vfx-burst{0%{opacity:0;transform:translateY(-50%) scale(.45)}22%{opacity:.95}to{opacity:0;transform:translateY(-50%) scale(1.5)}}.chapter-milestone:after{content:"";position:absolute;top:-60%;right:-30%;bottom:-60%;left:-30%;background:url(/assets/kit/vfx-bloom.webp) center / 100% 100% no-repeat;mix-blend-mode:screen;opacity:.5;pointer-events:none;z-index:0;animation:milestone-bloom 2.6s var(--ease-out) both}@keyframes milestone-bloom{0%{opacity:0}18%{opacity:.62}70%{opacity:.4}to{opacity:0}}@media (prefers-reduced-motion: reduce){.game-toast-goal-done:after,.game-toast-affinity:after,.game-toast-thread:after,.chapter-milestone:after{animation:none;opacity:0}}.stage-cast{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;pointer-events:none;transition:opacity var(--transition-normal)}.stage-cast-slot{position:absolute;top:25vh;bottom:auto;height:66vh;width:min(29vw,39vh);min-width:0;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;transform:translate(-50%);animation:stage-cast-in var(--dur-4) var(--ease-out) both}.stage-cast-count-1 .slot-right{left:74%}.stage-cast-count-2 .stage-cast-slot{top:25vh;height:66vh;width:min(29vw,39vh)}.stage-cast-count-2 .slot-left{left:28%}.stage-cast-count-2 .slot-right{left:72%}.stage-cast-count-3 .stage-cast-slot{top:30vh;height:60vh;width:min(24vw,33vh)}.stage-cast-count-3 .slot-left-outer{left:20%}.stage-cast-count-3 .slot-right{left:66%}.stage-cast-count-3 .slot-right-outer{left:82%}.stage-cast-count-4 .stage-cast-slot{top:34vh;height:54vh;width:min(21vw,29vh)}.stage-cast-count-4 .slot-left-outer{left:20%}.stage-cast-count-4 .slot-left{left:35%}.stage-cast-count-4 .slot-right{left:65%}.stage-cast-count-4 .slot-right-outer{left:80%}.stage-cast-slot .npc-portrait-media--cast{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;overflow:hidden}.stage-cast-slot img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:bottom center;filter:url(#npc-portrait-edge-clean) brightness(.68) saturate(.9) blur(.6px) drop-shadow(0 6px 22px rgba(0,0,0,.7));-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 4%,#000 88%,rgba(0,0,0,.55) 96%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 4%,#000 88%,rgba(0,0,0,.55) 96%,transparent 100%);transition:filter var(--transition-normal)}.weather-rain~.character-layer img{filter:url(#npc-portrait-edge-clean) brightness(.88) saturate(.82) contrast(1.03) drop-shadow(0 4px 24px rgba(0,0,0,.68))}.weather-rain~.stage-cast .stage-cast-slot img{filter:url(#npc-portrait-edge-clean) brightness(.6) saturate(.74) contrast(1.03) blur(.6px) drop-shadow(0 6px 22px rgba(0,0,0,.72))}@keyframes stage-cast-in{0%{opacity:0}to{opacity:1}}@media (max-width: 900px){.stage-cast{display:none}}@media (prefers-reduced-motion: reduce){.stage-cast-slot{animation:none}}@keyframes dialog-ink-in{0%{opacity:0;transform:translateY(7px) scaleY(.985)}60%{opacity:1}to{opacity:1;transform:translateY(0) scaleY(1)}}.dialog-text{animation:dialog-ink-in .32s var(--ease-out) both}@keyframes nameplate-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.speaker-name-tag{animation:nameplate-in .26s var(--ease-out) both}@media (prefers-reduced-motion: reduce){.dialog-text,.speaker-name-tag{animation:none}}.phase-play .bg-fallback-img{opacity:.52;filter:saturate(.62) brightness(.6) blur(3px);transform:scale(1.08)}.recap-backdrop{background-image:radial-gradient(120% 90% at 50% 42%,#08060ec7,#020205f5),url(/assets/kit/bg-ending.webp);background-size:cover,cover;background-position:center,center}.recap-overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:screen;opacity:0;background-position:center;background-repeat:no-repeat;background-size:cover;animation:recap-mood 2.6s var(--ease-out) .24s both;z-index:1}.recap-tone-triumph:after{background-image:url(/assets/kit/vfx-gold-burst.webp)}.recap-tone-bittersweet:after{background-image:url(/assets/kit/vfx-petals.webp)}.recap-tone-tragic:after{background-image:url(/assets/kit/vfx-ink-bleed.webp)}.recap-tone-open:after{background-image:url(/assets/kit/vfx-god-rays.webp)}.recap-tone-neutral:after{background-image:url(/assets/kit/vfx-dust-motes.webp)}.recap-tone-tragic:after{mix-blend-mode:multiply;filter:invert(1) saturate(0)}@keyframes recap-mood{0%{opacity:0;transform:scale(1.14)}26%{opacity:.5}70%{opacity:.22}to{opacity:0;transform:scale(1)}}.recap-card{z-index:2}@media (prefers-reduced-motion: reduce){.recap-overlay:after{animation:none;opacity:0}}.chapter-badge,.juben-phase-label,.speaker-name-tag,.phase-confirm-title,.drawer-title,.npc-name,.welcome-title,.welcome-ornament,.welcome-start-btn,.stream-waiting-text,.thinking-inline-text,.turn-wrapup-text,.play-hud-chapter-index,.play-hud-chapter-title,.play-hud-item-name,.play-hud-handle-chapter,.journal-item-name,.chapter-milestone-title,.recap-title,.recap-npc-name,.recap-item-name,.recap-stat-num,.genre-preset-label,.protagonist-name-input,.pn-chip-name,.feedback-title{font-weight:400;font-synthesis-weight:none;-webkit-font-synthesis:none}.dialog-text .md-p,.persona-direction-card,.option-btn,.history-item-body .md-p,.history-item-option,.play-hud-objective-text,.play-hud-thread-text,.play-hud-cond-text,.journal-goal-text,.journal-thread-text,.journal-thread-resolution,.journal-item-desc,.journal-condition-text{text-wrap:pretty}.option-btn:focus-visible{outline:none;color:var(--gold-050);border-color:rgba(var(--gold-rgb),.8);background-color:#181510b8;box-shadow:0 0 0 1px rgba(var(--gold-rgb),.55),0 0 18px -6px rgba(var(--gold-rgb),.6),inset 0 0 34px -12px rgba(var(--gold-rgb),.45)}.option-btn:focus-visible:before{border-color:rgba(var(--gold-rgb),.9);background-color:rgba(var(--gold-rgb),.2);color:var(--gold-050)}.dialog-options .option-btn:disabled{opacity:.3}.dialog-options .option-btn.chosen:disabled{opacity:1;color:var(--ink-name);border-color:rgba(var(--accent-sakura-rgb),.62);background-color:#2c20288c;box-shadow:0 0 0 1px rgba(var(--accent-sakura-rgb),.3),inset 0 1px #ffffff29,inset 0 0 40px -14px rgba(var(--accent-sakura-rgb),.42)}.dialog-options .option-btn.chosen:disabled:before{border-color:var(--accent-sakura);background:linear-gradient(180deg,#FFA39C 0%,var(--accent-sakura) 55%,#E4726B 100%);color:#2a0e0c;text-shadow:0 1px 0 rgba(255,255,255,.35)}.dialog-options .option-btn.chosen:disabled:after{content:"已选择";opacity:1;padding-right:clamp(46px,4vw,62px);color:var(--accent-sakura);background:radial-gradient(120% 180% at 0% 50%,rgba(var(--accent-sakura-rgb),.16) 0%,transparent 58%),url(/assets/kit/medallion-small.webp) right clamp(12px,1vw,18px) center / auto 46% no-repeat}.galgame-shell:has(.input-panel) .play-hud,.galgame-shell:has(.input-panel) .play-hud-handle,.galgame-shell:has(.input-panel) .npc-panel,.galgame-shell:has(.input-panel) .npc-panel-handle,.galgame-shell:has(.input-panel) .top-hud{filter:brightness(.52) saturate(.86);transition:filter var(--transition-normal)}.input-panel{padding-bottom:calc(clamp(52px,7vh,76px) + env(safe-area-inset-bottom,4px))}.journal-item{display:flex;align-items:flex-start;gap:12px}.journal-item-main{flex:1;min-width:0}.item-cat-icon{flex:0 0 auto;width:clamp(20px,1.5vw,24px);height:clamp(20px,1.5vw,24px);margin-top:1px;color:rgba(var(--gold-rgb),.62);transition:color var(--transition-fast)}.item-cat-icon.cat-key,.item-cat-icon.cat-treasure{color:var(--gold-200)}.item-cat-icon.cat-misc{color:rgba(var(--gold-hi-rgb),.34)}.journal-item-actionable:hover .item-cat-icon,.journal-item-actionable:focus-visible .item-cat-icon{color:var(--gold-050)}.recap-card:before{opacity:.14}.recap-card{background:linear-gradient(#1815100a,#1815100a),var(--tex-silk) repeat,linear-gradient(180deg,#171410fb,#0c0b0afc);background-size:auto,300px 300px,auto;background-blend-mode:normal,overlay,normal}.play-hud-body{overflow-y:auto;max-height:var(--hud-visible-h, none)}.play-hud-body::-webkit-scrollbar{width:6px}.play-hud-body::-webkit-scrollbar-track{background:#0000004d}.play-hud-body::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb),.5);box-shadow:inset 0 0 0 1px rgba(var(--gold-hi-rgb),.28)}@media (max-height: 820px){.play-hud{--hud-cap: 64vh}.play-hud-head{padding:3px 8px 2px}.play-hud-chapter-title{display:none}.play-hud-foot{padding:2px 8px 3px}.play-hud-journal-btn{padding:3px 0;font-size:.64rem}.play-hud-body{--hud-body-pad: 8px;gap:7px}.play-hud-section{gap:3px}.play-hud-objective-text{padding:5px 7px;font-size:.86rem;line-height:1.42}.play-hud-thread{padding:4px 7px}.play-hud-thread-text{font-size:.78rem;line-height:1.38}.play-hud-item{padding:2px 5px}.play-hud-item-name{font-size:.78rem}.play-hud-cond{padding:4px 7px}.play-hud-cond-text{font-size:.78rem;line-height:1.38}.play-hud-label{font-size:.64rem;color:rgba(var(--gold-hi-rgb),.92)}.play-hud-count{font-size:.62rem}.play-hud-scroll-hint{right:3px;bottom:5px;min-width:76px}}@media (max-height: 680px){.play-hud{--hud-cap: 64vh}.play-hud-body{--hud-body-pad: 7px;gap:5px}.play-hud-chapter-title{display:none}.play-hud-objective-text{font-size:.8rem}.play-hud-thread-text,.play-hud-cond-text,.play-hud-item-name{font-size:.74rem}}.play-hud-body{display:flex;flex-direction:column}.play-hud-body>.play-hud-objective{order:1}.play-hud-body>.play-hud-section:nth-child(2){order:3}.play-hud-body>.play-hud-section:nth-child(3){order:4}.play-hud-body>.play-hud-section:nth-child(4){order:2}.genre-preset-card{position:relative;overflow:hidden;isolation:isolate}.genre-preset-card[data-genre]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:var(--genre-banner);background-size:cover;background-position:center 62%;opacity:.88;filter:brightness(1.22) saturate(1.06);-webkit-mask-image:linear-gradient(90deg,transparent 0,transparent 8%,#000 44%,#000 100%);mask-image:linear-gradient(90deg,transparent 0,transparent 8%,#000 44%,#000 100%);transition:opacity var(--transition-normal),transform var(--transition-normal)}.genre-preset-card[data-genre]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(90deg,#0a090ef0,#0a090ecc 34%,#0a090e57 62%,#0a090e00);pointer-events:none}.genre-preset-card[data-genre]:hover:before,.genre-preset-card[data-genre]:focus-visible:before{opacity:1;transform:scale(1.04)}.genre-preset-card[data-genre=wuxia]{--genre-banner: url(/assets/genre/wuxia.webp)}.genre-preset-card[data-genre=cyberpunk]{--genre-banner: url(/assets/genre/cyberpunk.webp)}.genre-preset-card[data-genre=starfaring]{--genre-banner: url(/assets/genre/starfaring.webp)}.genre-preset-card[data-genre=fantasy]{--genre-banner: url(/assets/genre/fantasy.webp)}.genre-preset-card[data-genre=urban_esper]{--genre-banner: url(/assets/genre/urban_esper.webp)}.genre-preset-card[data-genre=mystery]{--genre-banner: url(/assets/genre/mystery.webp)}.genre-preset-card[data-genre=occult]{--genre-banner: url(/assets/genre/occult.webp)}.genre-preset-card[data-genre=wasteland]{--genre-banner: url(/assets/genre/wasteland.webp)}.genre-preset-card[data-genre=campus]{--genre-banner: url(/assets/genre/campus.webp)}.genre-preset-card[data-genre=court]{--genre-banner: url(/assets/genre/court.webp)}.genre-preset-card[data-genre=random]{--genre-banner: url(/assets/genre/random.webp)}@media (max-height: 960px){.genre-preset-card{min-height:clamp(56px,calc((44vh - 34px)/4),96px);padding:8px 12px;gap:3px}}.history-item.user{margin-left:18%;background:linear-gradient(180deg,rgba(var(--gold-rgb),.1),rgba(var(--gold-rgb),.04)),#14120e99;border-left:2px solid rgba(var(--gold-rgb),.55)}.history-item.user .history-item-head{justify-content:flex-end}.history-item.user .history-item-body,.history-item.user pre{text-align:right;color:rgba(var(--gold-hi-rgb),.94)}.history-item.narrator{margin-right:12%}.dialog-box{max-height:min(86vh,calc(100vh - 148px))}.dialog-inner{max-height:calc(min(86vh,100vh - 148px) - clamp(52px,7vh,76px))}.dialog-options:has(.option-btn:nth-child(5)) .option-btn{padding-top:clamp(9px,1.2vh,14px);padding-bottom:clamp(9px,1.2vh,14px);font-size:clamp(13px,2vh,20px)}.dialog-options:has(.option-btn:nth-child(5)){gap:clamp(5px,.7vh,8px)}.dialog-options:has(.option-btn:nth-child(7)) .option-btn{padding-top:clamp(7px,.95vh,11px);padding-bottom:clamp(7px,.95vh,11px);padding-left:clamp(38px,2.9vw,50px);font-size:clamp(12.5px,1.85vh,18px);line-height:1.5}.dialog-options:has(.option-btn:nth-child(7)){gap:clamp(4px,.55vh,7px);margin-top:clamp(6px,1vh,11px);padding-top:clamp(8px,1.2vh,13px)}.dialog-options:has(.option-btn:nth-child(7)) .option-btn:before{width:clamp(18px,1.35vw,23px);height:clamp(18px,1.35vw,23px);font-size:clamp(9px,1vh,11px)}.dialog-text{flex:0 0 auto;overflow:visible}.dialog-options{flex:0 0 auto}.dialog-inner{overflow-y:auto;overflow-x:hidden}.cocreate-dialog-inner>*{flex-shrink:0}.cocreate-dialog-inner>.dialog-text{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.cocreate-dialog-inner .dialog-options:has(>.persona-direction-card:nth-child(4)){gap:clamp(4px,.55vh,7px)}.cocreate-dialog-inner .dialog-options:has(>.persona-direction-card:nth-child(4))>.persona-direction-card{padding-top:clamp(6px,.85vh,10px);padding-bottom:clamp(6px,.85vh,10px)}.cocreate-dialog-inner>.dialog-text::-webkit-scrollbar{width:5px}.cocreate-dialog-inner>.dialog-text::-webkit-scrollbar-track{background:transparent}.cocreate-dialog-inner>.dialog-text::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb),.26);border-radius:3px}.dialog-inner::-webkit-scrollbar{width:6px}.dialog-inner::-webkit-scrollbar-track{background:transparent}.dialog-inner::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb),.3);border-radius:3px}.dialog-inner::-webkit-scrollbar-thumb:hover{background:rgba(var(--gold-rgb),.55)}.galgame-shell.reading-focus .play-hud,.galgame-shell.reading-focus .npc-panel:not(.collapsed){opacity:.93;filter:brightness(.96) saturate(.92)}.galgame-shell.reading-focus .play-hud:hover,.galgame-shell.reading-focus .play-hud:focus-within,.galgame-shell.reading-focus .npc-panel:not(.collapsed):hover,.galgame-shell.reading-focus .npc-panel:not(.collapsed):focus-within{opacity:1;filter:none}.dialog-text--long-narration{width:auto;max-inline-size:100%;align-self:stretch;padding-inline:0}.npc-revise-btn{position:absolute;top:5px;right:5px;width:22px;height:22px;padding:0;display:grid;place-items:center;border:1px solid rgba(var(--gold-rgb),.26);border-radius:50%;background:#0e0c1480;color:rgba(var(--gold-rgb),.9);opacity:.5;cursor:pointer;transition:opacity var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.npc-revise-btn>svg{width:13px;height:13px}.npc-card:hover .npc-revise-btn,.npc-revise-btn:hover,.npc-revise-btn:focus-visible{opacity:1;border-color:rgba(var(--gold-rgb),.5);background:rgba(var(--gold-rgb),.14)}.npc-revise-btn:focus-visible{outline:1px solid rgba(var(--gold-rgb),.55);outline-offset:2px}.npc-revise-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008f;display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease}.npc-revise-modal{position:relative;width:min(560px,88vw);max-height:86vh;overflow-y:auto;background:var(--card-bg);border:1px solid rgba(var(--gold-rgb),.24);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel),0 0 80px -30px rgba(var(--gold-rgb),.26);padding:clamp(18px,2.4vh,28px) clamp(18px,2.2vw,32px) clamp(14px,2vh,24px);animation:phase-confirm-rise var(--dur-3) var(--ease-out)}.npc-revise-modal:before{content:"";position:absolute;top:0;left:16%;right:16%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-sakura),transparent);opacity:.7}.npc-revise-title{font-family:var(--font-title);font-size:1.05rem;letter-spacing:.08em;color:var(--gold-100)}.npc-revise-desc{margin-top:6px;font-size:.78rem;line-height:1.7;color:var(--ink-soft)}.npc-revise-field{display:block;margin-top:14px}.npc-revise-label{display:block;margin-bottom:5px;font-size:.74rem;letter-spacing:.14em;color:rgba(var(--gold-rgb),.82)}.npc-revise-hint{margin-left:8px;letter-spacing:.04em;color:var(--ink-soft);opacity:.8}.npc-revise-input,.npc-revise-textarea{width:100%;box-sizing:border-box;padding:8px 10px;font-family:var(--font-ui);font-size:.86rem;line-height:1.7;color:var(--ink-main);background:#0e0c148c;border:1px solid var(--card-border);border-radius:var(--radius-md);transition:border-color var(--dur-2) var(--ease-out)}.npc-revise-textarea{resize:vertical}.npc-revise-input:focus,.npc-revise-textarea:focus{outline:none;border-color:rgba(var(--gold-rgb),.45)}.npc-revise-dims{margin-top:16px}.npc-revise-dim{display:flex;align-items:baseline;gap:10px;margin-top:8px}.npc-revise-dim-name{flex:0 0 2.6em;font-size:.76rem;color:var(--ink-soft)}.npc-revise-dim-opts{display:flex;flex-wrap:wrap;gap:6px}.npc-revise-chip{padding:3px 9px;font-family:var(--font-ui);font-size:.74rem;letter-spacing:.04em;color:var(--ink-soft);background:transparent;border:1px solid var(--card-border);border-radius:999px;cursor:pointer;transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.npc-revise-chip:hover{color:var(--ink-main);border-color:rgba(var(--gold-rgb),.34)}.npc-revise-chip.active{color:var(--ink-main);border-color:rgba(var(--gold-rgb),.55);background:rgba(var(--gold-rgb),.14)}.npc-revise-chip:focus-visible{outline:1px solid rgba(var(--gold-rgb),.55);outline-offset:2px}.npc-revise-disclosure{display:block;width:100%;margin-top:16px;padding:6px 0;text-align:left;font-family:var(--font-ui);font-size:.76rem;letter-spacing:.06em;color:var(--ink-soft);background:transparent;border:none;border-top:1px solid var(--card-border);cursor:pointer;transition:color var(--dur-2) var(--ease-out)}.npc-revise-disclosure:hover{color:var(--ink-main)}.npc-revise-disclosure:focus-visible{outline:1px solid rgba(var(--gold-rgb),.55);outline-offset:2px}.npc-revise-error{margin-top:12px;font-size:.78rem;color:#ff8f8f}.npc-revise-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.npc-revise-cancel,.npc-revise-submit{padding:6px 16px;font-family:var(--font-ui);font-size:.8rem;letter-spacing:.08em;border-radius:var(--radius-md);cursor:pointer;transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.npc-revise-cancel{color:var(--ink-soft);background:transparent;border:1px solid var(--card-border)}.npc-revise-cancel:hover:not(:disabled){color:var(--ink-main);border-color:rgba(var(--gold-rgb),.3)}.npc-revise-submit{color:var(--ink-main);background:rgba(var(--gold-rgb),.16);border:1px solid rgba(var(--gold-rgb),.5)}.npc-revise-submit:hover:not(:disabled){background:rgba(var(--gold-rgb),.26);border-color:rgba(var(--gold-rgb),.68)}.npc-revise-cancel:disabled,.npc-revise-submit:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 720px){.npc-revise-dim{display:block}.npc-revise-dim-name{display:block;margin-bottom:4px}.npc-revise-btn{opacity:.85}}.audio-settings{position:relative;display:inline-flex;align-items:center;gap:2px}@media (max-width: 600px){.control-bar>.ctrl-btn{flex:1 1 0;min-width:0}.control-bar>.audio-settings{flex:1 1 0;min-width:0}.audio-settings>.ctrl-btn{flex:1 1 0;min-width:0;padding-inline:2px}}.audio-toggle-btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,transform .15s ease,border-color .15s ease}.audio-toggle-btn:hover{background:var(--accent-warm-soft);border-color:var(--accent-sakura);transform:scale(1.05)}.audio-toggle-btn.silent{background:rgba(var(--gold-rgb),.18);border-color:var(--accent-sakura);color:var(--accent-sakura);animation:audio-silent-pulse 1.6s ease-in-out infinite}.audio-toggle-btn.silent:hover{animation:none;background:rgba(var(--gold-rgb),.3)}@keyframes audio-silent-pulse{0%,to{box-shadow:0 0 rgba(var(--gold-rgb),.6)}50%{box-shadow:0 0 0 8px rgba(var(--gold-rgb),0)}}.audio-panel{position:absolute;bottom:calc(100% + 8px);left:0;min-width:240px;padding:14px 16px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-card, 10px);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;font-family:var(--font-ui);color:var(--ink-main);display:flex;flex-direction:column;gap:10px;animation:audio-panel-fade .18s ease-out}@keyframes audio-panel-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.audio-row{display:grid;grid-template-columns:64px 1fr 28px;align-items:center;gap:8px}.audio-row label{font-size:12px;color:var(--ink-silver)}.audio-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--progress-track);border-radius:2px;outline:none;cursor:pointer}.audio-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-sakura);cursor:pointer;box-shadow:0 0 4px rgba(var(--gold-rgb),.5);transition:transform .1s ease}.audio-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.audio-row input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent-sakura);cursor:pointer;border:none;box-shadow:0 0 4px rgba(var(--gold-rgb),.5)}.audio-val{font-size:11px;color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums}.audio-row-mute{display:block;margin-top:4px;padding-top:10px;border-top:1px solid var(--card-border)}.audio-mute{width:100%;background:transparent;border:1px solid var(--card-border);color:var(--ink-main);padding:6px 10px;border-radius:6px;font-size:12px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.audio-mute:hover{background:var(--accent-warm-soft);border-color:var(--accent-sakura)}.audio-mute.on{background:var(--accent-warm-soft);border-color:var(--accent-sakura);color:var(--accent-sakura)}.audio-row-note{display:block;margin-top:4px;font-size:11px;line-height:1.5;color:var(--ink-soft);text-align:center}.audio-row-credits{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:2px;padding-top:8px;border-top:1px solid var(--line-soft, rgba(255, 255, 255, .08))}.audio-now-playing{font-size:11px;line-height:1.4;color:var(--ink-soft);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-load-failed{font-size:11px;line-height:1.4;color:var(--accent-sakura, #d98695)}.audio-credits-link{font-size:10px;line-height:1.4;color:var(--ink-soft);opacity:.75;text-decoration:none;border-bottom:1px dotted currentColor}.audio-credits-link:hover{opacity:1}.welcome-audio-status{display:inline-flex;align-items:center;justify-content:center;margin:12px auto 6px;padding:6px 14px;font-family:var(--font-ui);font-size:12px;border-radius:0;clip-path:polygon(var(--bevel-sm) 0,100% 0,100% calc(100% - var(--bevel-sm)),calc(100% - var(--bevel-sm)) 100%,0 100%,0 var(--bevel-sm));border:1px solid var(--card-border);background:#0000004d;color:var(--ink-silver);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.04em}.welcome-audio-status.playing{color:var(--accent-sakura);border-color:rgba(var(--gold-rgb),.3)}.welcome-audio-status.pending{color:var(--ink-silver);border-color:#a08c6066}.welcome-audio-status.muted{cursor:pointer;color:var(--accent-sakura);border-color:var(--accent-sakura);background:var(--accent-warm-soft);transition:background .15s ease,transform .1s ease}.welcome-audio-status.muted:hover{background:rgba(var(--gold-rgb),.18);transform:scale(1.02)}button.welcome-audio-status{cursor:pointer;transition:background .15s ease,transform .1s ease}button.welcome-audio-status:hover{background:rgba(var(--gold-rgb),.18);transform:scale(1.02)}.welcome-audio-test-result{margin-left:12px;font-size:11px;color:var(--ink-soft)}
