@import"https://fonts.googleapis.com/css2?family=Mochiy+Pop+One&family=Noto+Sans+SC:wght@400;700&family=Noto+Serif+SC:wght@400;700&family=LXGW+WenKai+TC:wght@300;400;700&display=swap";@keyframes background-fade-in{0%{opacity:0}to{opacity:1}}#game-background{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;z-index:1;transition:background-image .8s ease-in-out;animation:background-fade-in 1s ease-in-out forwards}.character-area{position:absolute;bottom:100px;height:85%;width:auto;max-width:45%;z-index:3;display:grid;grid-auto-flow:column;align-items:flex-end;pointer-events:none;transition:all .5s cubic-bezier(.25,.46,.45,.94)}#ai-characters-container{right:2%;justify-content:flex-end;gap:1rem}#player-character-area{left:2%;transform:none}.character-sprite{position:relative;display:block;height:100%;width:auto;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0px 5px 15px rgba(0,0,0,.35));transition:transform .5s cubic-bezier(.25,.46,.45,.94),opacity .5s ease,filter .4s ease;opacity:1;transform:scale(1)}.character-sprite.active{transform:scale(1.05) translateY(-10px);filter:drop-shadow(0px 10px 25px rgba(80,120,255,.5)) brightness(1.05)}.character-sprite.inactive{filter:brightness(.65) saturate(.8) drop-shadow(0px 5px 10px rgba(0,0,0,.4));transform:scale(.98)}.character-sprite.hidden{opacity:0;transform:translate(30px) scale(.95)}#player-character-sprite.hidden{transform:translate(-30px) scale(.95)}#galgame-container{position:relative;width:100%;aspect-ratio:16 / 9;max-height:calc(100vh - 120px);margin:20px auto;overflow:hidden;border-radius:12px;box-shadow:0 10px 30px #0006;background-color:#0c0a09}@keyframes dialogue-enter{0%{opacity:0;transform:translate(-50%,30px) scale(.98)}70%{opacity:1;transform:translate(-50%,-5px) scale(1.02)}to{opacity:1;transform:translate(-50%) scale(1)}}#dialogue-box{animation:dialogue-enter .6s cubic-bezier(.25,.46,.45,.94) forwards,var(--dialogue-animation, none);position:absolute;bottom:24px;left:50%;transform:translate(-50%);width:92%;max-width:1000px;min-height:150px;max-height:40%;padding:24px 32px 70px;z-index:4;overflow-y:auto;background-color:var(--dialogue-bg);background-image:var(--dialogue-bg-image, none);background-size:var(--dialogue-bg-size, auto);-webkit-backdrop-filter:var(--dialogue-backdrop-filter);backdrop-filter:var(--dialogue-backdrop-filter);border-radius:var(--dialogue-border-radius);border:var(--dialogue-border);-o-border-image:var(--dialogue-border-image);border-image:var(--dialogue-border-image);color:var(--dialogue-text-color);box-shadow:var(--dialogue-box-shadow);transition:background .5s ease,border .5s ease,box-shadow .5s ease,color .5s ease}.cg-active #dialogue-box{background-color:transparent!important;background-image:none!important;border:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}#dialogue-box:before{content:"";position:absolute;inset:0;background-image:var(--dialogue-pseudo-bg-image, none);background-size:var(--dialogue-bg-size, auto);pointer-events:none;z-index:-1}.cg-active #dialogue-box:before{background:linear-gradient(to top,#000000b3,#0000)}#dialogue-box::-webkit-scrollbar{width:8px}#dialogue-box::-webkit-scrollbar-track{background:var(--galgame-scrollbar-track-bg, rgba(0, 0, 0, .2));border-radius:4px}#dialogue-box::-webkit-scrollbar-thumb{background-color:var( --galgame-scrollbar-thumb-bg, rgba(255, 255, 255, .3) );border-radius:4px;border:1px solid rgba(0,0,0,.3)}#dialogue-box::-webkit-scrollbar-thumb:hover{background-color:var( --galgame-scrollbar-thumb-hover-bg, rgba(255, 255, 255, .5) )}#speaker-name{font-weight:700;margin-bottom:12px;color:var(--dialogue-speaker-color);font-size:var(--font-size-speaker);text-shadow:var(--dialogue-speaker-text-shadow, 1px 1px 3px rgba(0,0,0,.6));font-family:var(--font-family-display);transition:color .5s ease,text-shadow .5s ease}#dialogue-text{line-height:1.75;font-size:var(--font-size-dialogue);position:relative;font-family:var(--font-family-main);text-shadow:1px 1px 3px rgba(0,0,0,.6)}#dialogue-text p{margin-bottom:.8em}#dialogue-text h1,#dialogue-text h2,#dialogue-text h3{margin-top:.5em;margin-bottom:.3em;color:var(--galgame-config-link-color, #88aaff)}#dialogue-text strong{color:var(--galgame-speaker-name-color, #ffcc99)}#dialogue-text em{color:#90ee90}#dialogue-text ul,#dialogue-text ol{padding-left:25px;margin-bottom:.8em}#dialogue-text li{margin-bottom:.3em}#dialogue-text code{background-color:#ffffff1a;padding:2px 5px;border-radius:4px;font-family:Courier New,Courier,monospace;color:#f0f0f0}#dialogue-text pre{background-color:#0000004d;padding:10px;border-radius:5px;overflow-x:auto;margin-bottom:.8em}#dialogue-text pre code{background:none;padding:0}#dialogue-text blockquote{border-left:3px solid var(--galgame-control-btn-bg, #6495ed);padding-left:10px;margin:.8em 0;color:#ccc;font-style:italic}#dialogue-text a{color:var(--galgame-config-link-color, #88aaff);text-decoration:underline}#dialogue-text a:hover{filter:brightness(1.2)}@keyframes chapter-title-animation{0%{opacity:0;transform:scale(1.2) translateY(20px);filter:blur(10px)}50%{opacity:1;transform:scale(1.05) translateY(0);filter:blur(0)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.chapter-transition{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#000000b3;z-index:999;pointer-events:none;animation:chapter-title-animation 3s ease-in-out forwards}.chapter-transition h2{color:#fff;font-size:3em;text-shadow:0 0 15px rgba(255,255,255,.8);font-family:var(--font-family-display)}.chapter-line{height:1px;background:#ffffff4d;flex-grow:1}@keyframes tracking-in-expand{0%{letter-spacing:-.5em;opacity:0}40%{opacity:.6}to{opacity:1}}.chapter-title{font-weight:700;color:#fc9;font-size:1.1em;white-space:nowrap;text-shadow:0px 0px 3px rgba(0,0,0,.5);animation:tracking-in-expand .7s cubic-bezier(.215,.61,.355,1) both;animation-delay:.5s;flex-shrink:0}.choice-impact{position:absolute;top:15%;left:50%;transform:translate(-50%,-50%);background:#000000b3;padding:10px 20px;border-radius:20px;color:#fff;font-size:.9em;z-index:10;opacity:1;transition:opacity 1s ease}.choice-impact.fadeout{opacity:0}.choice-impact.relationship-up{background:#2ecc71cc}.choice-impact.relationship-down{background:#e74c3ccc}.choice-impact.story-branch{background:#3498dbcc}.choice-impact.progress-significant{background:#9b59b6cc}#game-controls{position:absolute;bottom:12px;right:20px;z-index:5;display:flex;gap:12px;align-items:center}.control-button{padding:0;width:48px;height:48px;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;line-height:1;transition:all .3s ease;border-radius:var(--control-btn-border-radius);background:var(--control-btn-bg);color:var(--control-btn-text-color);box-shadow:var(--control-btn-box-shadow)}.control-button svg{width:26px;height:26px;color:var(--control-btn-icon-color)}.control-button:hover:not(:disabled){background:var(--control-btn-bg-hover);box-shadow:var(--control-btn-box-shadow-hover);transform:translateY(-2px) scale(1.05);filter:brightness(1.1)}.control-button:disabled{background:var(--text-color-lighter, #999);cursor:not-allowed;box-shadow:none;opacity:.7}#choices-container{display:flex;flex-direction:column;gap:10px;margin-top:15px}#fullscreen-choices-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000001a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:10;padding:20px;gap:15px;opacity:0;pointer-events:none;transition:opacity .3s ease-in-out}#fullscreen-choices-overlay.visible{opacity:1;pointer-events:auto}#fullscreen-choices-overlay .choice-button{width:60%;max-width:500px;text-align:center;font-size:1.1em;padding:15px 25px;box-shadow:0 4px 15px #0003}.choice-button{display:block;width:100%;text-align:left;padding:12px 20px;cursor:pointer;transition:all .3s ease;font-size:1em;position:relative;overflow:hidden;font-family:var(--font-family-main);background:var(--choice-btn-bg);border:var(--choice-btn-border);border-radius:var(--choice-btn-border-radius);color:var(--choice-btn-text-color)}.choice-button:hover{background:var(--choice-btn-bg-hover);border:var(--choice-btn-border-hover);box-shadow:var(--choice-btn-box-shadow-hover);transform:translateY(-2px)}[data-theme=romance] .choice-button{position:relative}#fullscreen-choices-overlay [data-theme=romance] .choice-button:hover:after,[data-theme=romance] #choices-container .choice-button:hover:after{content:"";position:absolute;right:15px;top:50%;width:1.3em;height:1.3em;background-color:var(--dialogue-speaker-color);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e56a9a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12c0-4.4 3.6-8 8-8s8 3.6 8 8-3.6 8-8 8'/%3E%3Cpath d='M2 12a6 6 0 0 0 6 6s6-2.7 6-6-2.7-6-6-6'/%3E%3Cpath d='M12 2a4 4 0 0 0 4 4s-1.8 4-4 4-4-1.8-4-4'/%3E%3Cpath d='M12 2a4 4 0 0 1-4 4s1.8 4 4 4 4-1.8 4-4'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e56a9a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12c0-4.4 3.6-8 8-8s8 3.6 8 8-3.6 8-8 8'/%3E%3Cpath d='M2 12a6 6 0 0 0 6 6s6-2.7 6-6-2.7-6-6-6'/%3E%3Cpath d='M12 2a4 4 0 0 0 4 4s-1.8 4-4 4-4-1.8-4-4'/%3E%3Cpath d='M12 2a4 4 0 0 1-4 4s1.8 4 4 4 4-1.8 4-4'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E");transform:translateY(-50%) scale(0);animation:heartbeat .6s forwards}@keyframes heartbeat{0%{transform:translateY(-50%) scale(0);opacity:0}50%{transform:translateY(-50%) scale(1.2);opacity:1}to{transform:translateY(-50%) scale(1);opacity:1}}#game-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:none;justify-content:center;align-items:center;z-index:99;color:#fff;text-align:center;flex-direction:column;gap:20px;opacity:0;transition:opacity .3s ease-in-out}#game-loading-overlay.visible{display:flex;opacity:1}.loading-content span{font-size:1.2em;text-shadow:0 0 10px rgba(255,255,255,.5);animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.stop-loading-link{background:none;border:1px solid rgba(255,255,255,.5);color:#fffc;padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .3s ease;font-size:.9em}.stop-loading-link:hover{background:#ffffff1a;border-color:#fff;color:#fff}@keyframes scanline{0%{background-position:0 0}to{background-position:0 60px}}@keyframes border-flow{0%{border-image-source:linear-gradient(to bottom right,rgba(0,255,255,.8),rgba(247,37,133,.8))}25%{border-image-source:linear-gradient(to bottom right,rgba(247,37,133,.8),rgba(0,255,255,.8))}50%{border-image-source:linear-gradient(to top right,rgba(0,255,255,.8),rgba(247,37,133,.8))}75%{border-image-source:linear-gradient(to top left,rgba(0,255,255,.8),rgba(247,37,133,.8))}to{border-image-source:linear-gradient(to bottom right,rgba(0,255,255,.8),rgba(247,37,133,.8))}}:root{--theme-name: "Default";--font-family-main: "Noto Sans SC", sans-serif;--font-family-display: "Mochiy Pop One", sans-serif;--font-size-dialogue: 1.1em;--font-size-speaker: 1.25em;--dialogue-bg: rgba(15, 23, 42, .75);--dialogue-bg-image: none;--dialogue-bg-size: auto;--dialogue-animation: none;--dialogue-backdrop-filter: blur(12px);--dialogue-border: 1px solid rgba(255, 255, 255, .15);--dialogue-border-radius: 16px;--dialogue-box-shadow: 0 4px 25px rgba(0, 0, 0, .4), inset 0 1px 1px rgba(255,255,255,.1);--dialogue-text-color: #e2e8f0;--dialogue-speaker-color: #f87171;--dialogue-speaker-text-shadow: 1px 1px 3px rgba(0, 0, 0, .6);--choice-btn-bg: rgba(71, 85, 105, .5);--choice-btn-bg-hover: rgba(71, 85, 105, .75);--choice-btn-border: 1px solid rgba(148, 163, 184, .4);--choice-btn-border-hover: 1px solid rgba(148, 163, 184, .7);--choice-btn-text-color: #e2e8f0;--choice-btn-border-radius: 8px;--choice-btn-box-shadow-hover: 0 2px 10px rgba(0,0,0,.3);--control-btn-bg: rgba(51, 65, 85, .8);--control-btn-bg-hover: rgba(30, 41, 59, .9);--control-btn-text-color: #f1f5f9;--control-btn-icon-color: var(--control-btn-text-color);--control-btn-border-radius: 50%;--control-btn-box-shadow: 0 2px 5px rgba(0,0,0,.3);--control-btn-box-shadow-hover: 0 4px 12px rgba(0,0,0,.4);--panel-bg: rgba(15, 23, 42, .85);--panel-backdrop-filter: blur(16px);--panel-border: 1px solid rgba(255, 255, 255, .1);--panel-text-color: #cbd5e1;--panel-title-color: #88aaff;--panel-box-shadow: -10px 0 30px rgba(0,0,0,.3)}[data-theme=future-tech]{--theme-name: "Future Tech";--dialogue-bg: rgba(10, 20, 35, .8);--dialogue-bg-image: linear-gradient(rgba(0, 255, 255, .05) 1px, transparent 1px);--dialogue-bg-size: 100% 4px;--dialogue-animation: scanline 4s linear infinite;--dialogue-backdrop-filter: blur(10px) saturate(1.5);--dialogue-border: 2px solid transparent;--dialogue-border-image-slice: 1;--dialogue-border-image-source: linear-gradient(to bottom right, rgba(0, 255, 255, .8), rgba(247, 37, 133, .8));--dialogue-animation: scanline 4s linear infinite, border-flow 6s linear infinite;--dialogue-border-radius: 12px 0 12px 0;--dialogue-box-shadow: 0 0 30px rgba(0, 255, 255, .5), 0 0 15px rgba(247, 37, 133, .3), inset 0 0 10px rgba(0, 255, 255, .3);--dialogue-text-color: #e0f2fe;--dialogue-speaker-color: #f72585;--dialogue-speaker-text-shadow: 0 0 5px #f72585, 0 0 10px #f72585;--choice-btn-bg: rgba(72, 2, 106, .4);--choice-btn-bg-hover: rgba(72, 2, 106, .7);--choice-btn-border: 1px solid #b5179e;--choice-btn-border-hover: 1px solid #f72585;--choice-btn-text-color: #e0f2fe;--choice-btn-border-radius: 4px;--choice-btn-box-shadow-hover: 0 0 10px rgba(247, 37, 133, .5);--control-btn-bg: rgba(0, 255, 255, .2);--control-btn-bg-hover: rgba(0, 255, 255, .4);--control-btn-text-color: #00ffff;--control-btn-icon-color: var(--control-btn-text-color);--control-btn-border-radius: 50%;--control-btn-box-shadow: 0 0 8px rgba(0,255,255,.5);--control-btn-box-shadow-hover: 0 0 15px rgba(0,255,255,.8);--panel-bg: rgba(5, 10, 20, .9);--panel-backdrop-filter: blur(15px);--panel-border: 1px solid rgba(0, 255, 255, .3);--panel-text-color: #e0f2fe;--panel-title-color: #00ffff;--panel-box-shadow: -10px 0 30px rgba(0,0,0,.5)}[data-theme=romance]{--theme-name: "Sakura Romance";--font-family-main: "LXGW WenKai TC", "Noto Serif SC", serif;--font-family-display: "LXGW WenKai TC", "Mochiy Pop One", cursive;--dialogue-bg: #fff9fb;--dialogue-bg-image: url(/textures/romance-paper.jpg);--dialogue-bg-size: auto;--dialogue-animation: none;--dialogue-backdrop-filter: none;--dialogue-border: 1px solid #ffc2d1;--dialogue-border-image: none;--dialogue-border-radius: 16px;--dialogue-box-shadow: 0 4px 16px rgba(255, 194, 209, .4), inset 0 0 5px rgba(255, 255, 255, .8);--dialogue-text-color: #6d4b5a;--dialogue-speaker-color: #e56a9a;--dialogue-speaker-text-shadow: 1px 1px 2px rgba(255, 255, 255, .7);--choice-btn-bg: rgba(255, 231, 238, .6);--choice-btn-bg-hover: rgba(255, 221, 232, .9);--choice-btn-border: 1px solid #ffb3c6;--choice-btn-border-hover: 1px solid #ff8fab;--choice-btn-text-color: var(--dialogue-text-color);--choice-btn-border-radius: 12px;--choice-btn-box-shadow-hover: 0 2px 8px rgba(255, 143, 171, .3);--control-btn-bg: #ff8fab;--control-btn-bg-hover: #fb6f92;--control-btn-text-color: #fff;--control-btn-icon-color: #fff;--control-btn-border-radius: 50%;--control-btn-box-shadow: 0 2px 5px rgba(251, 111, 146, .4);--control-btn-box-shadow-hover: 0 4px 12px rgba(251, 111, 146, .5);--panel-bg: #fff9fb;--panel-backdrop-filter: none;--panel-border: 1px solid #ffc2d1;--panel-text-color: #6d4b5a;--panel-title-color: #e56a9a;--panel-box-shadow: -3px 0 15px rgba(255, 194, 209, .2);--panel-bg-overlay: rgba(255, 249, 251, .6)}[data-theme=tech]{--theme-name: "Tech Revolution";--font-family-main: "Noto Sans SC", sans-serif;--font-family-display: "Mochiy Pop One", sans-serif;--dialogue-bg: rgba(20, 30, 45, .85);--dialogue-bg-image: linear-gradient(rgba(60, 120, 180, .1) 1px, transparent 1px), linear-gradient(90deg, rgba(60, 120, 180, .1) 1px, transparent 1px);--dialogue-bg-size: 20px 20px;--dialogue-backdrop-filter: blur(8px);--dialogue-border: 1px solid rgba(100, 180, 255, .4);--dialogue-border-radius: 8px;--dialogue-box-shadow: 0 2px 15px rgba(0, 0, 0, .3);--dialogue-text-color: #d0e0f0;--dialogue-speaker-color: #64b5f6;--dialogue-speaker-text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);--choice-btn-bg: rgba(66, 100, 140, .5);--choice-btn-bg-hover: rgba(66, 100, 140, .8);--choice-btn-border: 1px solid rgba(100, 180, 255, .5);--choice-btn-text-color: #d0e0f0;--panel-bg: rgba(15, 25, 40, .9);--panel-border: 1px solid rgba(100, 180, 255, .3);--panel-text-color: #d0e0f0;--panel-title-color: #64b5f6}[data-theme=civ]{--theme-name: "Ancient Civilization";--font-family-main: "Noto Serif SC", serif;--font-family-display: "Noto Serif SC", serif;--dialogue-bg: rgba(245, 235, 218, .9);--dialogue-bg-image: url(/textures/parchment-paper.jpg);--dialogue-backdrop-filter: none;--dialogue-border: 2px solid #c8b08a;--dialogue-border-radius: 8px;--dialogue-box-shadow: 0 4px 15px rgba(0, 0, 0, .3);--dialogue-text-color: #5a3a1a;--dialogue-speaker-color: #8a0303;--choice-btn-bg: rgba(139, 105, 65, .7);--choice-btn-bg-hover: rgba(139, 105, 65, .9);--choice-btn-border: 1px solid #e0d1b6;--choice-btn-text-color: #f5ebda;--panel-bg: rgba(46, 34, 25, .95);--panel-border: 1px solid #8b6941;--panel-text-color: #f5ebda;--panel-title-color: #e0b468}[data-theme=discovery]{--theme-name: "Age of Discovery";--font-family-main: "Noto Serif SC", serif;--font-family-display: "Mochiy Pop One", cursive;--dialogue-bg: rgba(220, 210, 190, .9);--dialogue-bg-image: url(/textures/noir-paper.jpg);--dialogue-backdrop-filter: none;--dialogue-border: 1px solid #8a7e6a;--dialogue-border-radius: 4px;--dialogue-box-shadow: 0 2px 10px rgba(0, 0, 0, .5);--dialogue-text-color: #4a4137;--dialogue-speaker-color: #005f73;--choice-btn-bg: rgba(0, 95, 115, .7);--choice-btn-bg-hover: rgba(0, 95, 115, .9);--choice-btn-border: 1px solid #94d2bd;--choice-btn-text-color: #e9d8a6;--panel-bg: rgba(10, 45, 55, .95);--panel-border: 1px solid #005f73;--panel-text-color: #e9d8a6;--panel-title-color: #94d2bd}[data-theme=enlightenment]{--theme-name: "Enlightenment";--font-family-main: "Noto Serif SC", serif;--font-family-display: "Noto Serif SC", serif;--dialogue-bg: #fdfbf7;--dialogue-bg-image: none;--dialogue-backdrop-filter: none;--dialogue-border: 1px solid #dcd3c4;--dialogue-border-radius: 2px;--dialogue-box-shadow: 0 1px 5px rgba(0, 0, 0, .1);--dialogue-text-color: #3d3a35;--dialogue-speaker-color: #8c2d19;--choice-btn-bg: rgba(240, 235, 225, .8);--choice-btn-bg-hover: rgba(230, 225, 215, 1);--choice-btn-border: 1px solid #c9c0b2;--choice-btn-text-color: #594f43;--panel-bg: #f4f1eb;--panel-border: 1px solid #dcd3c4;--panel-text-color: #3d3a35;--panel-title-color: #8c2d19}[data-theme=record]{--theme-name: "Historical Record";--font-family-main: "Noto Sans SC", sans-serif;--font-family-display: "Noto Sans SC", sans-serif;--dialogue-bg: rgba(245, 245, 245, .9);--dialogue-bg-image: none;--dialogue-backdrop-filter: blur(5px);--dialogue-border: 1px solid #e0e0e0;--dialogue-border-radius: 6px;--dialogue-box-shadow: 0 2px 8px rgba(0, 0, 0, .08);--dialogue-text-color: #333;--dialogue-speaker-color: #0d47a1;--choice-btn-bg: rgba(255, 255, 255, .8);--choice-btn-bg-hover: rgba(255, 255, 255, 1);--choice-btn-border: 1px solid #0d47a1;--choice-btn-text-color: #0d47a1;--panel-bg: #f0f0f0;--panel-border: 1px solid #e0e0e0;--panel-text-color: #333;--panel-title-color: #0d47a1}.config-sidebar{position:fixed;top:50%;left:50%;height:90vh;width:90%;max-width:1200px;max-height:800px;z-index:120;opacity:0;pointer-events:none;display:flex;flex-direction:column;border-radius:15px;transform:translate(-50%,-50%) scale(.95);transition:opacity .3s ease,transform .3s ease;background-color:var(--panel-bg);background-image:var(--panel-bg-image, none);-webkit-backdrop-filter:var(--panel-backdrop-filter);backdrop-filter:var(--panel-backdrop-filter);border:var(--panel-border);box-shadow:var(--panel-box-shadow)}.config-sidebar.visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.config-sidebar h2{color:var(--panel-title-color)}#save-config-btn{background-color:var(--control-btn-bg);color:var(--control-btn-text-color)}#save-config-btn:hover{background-color:var(--control-btn-bg-hover)}#close-config-btn{position:absolute;top:1.5rem;right:1.5rem;width:2.75rem;height:2.75rem;background:#1e293bb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);color:#cbd5e1;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:130}#close-config-btn:hover{background:#334155e6;color:#fff;transform:scale(1.1) rotate(90deg)}.config-nav-link{width:100%;text-align:left;font-size:1.05em;font-weight:500;padding:.75rem 1rem;border-radius:.5rem .5rem 0 0;color:var(--panel-text-color);transition:background-color .2s ease-in-out,color .2s ease-in-out,opacity .2s ease-in-out;position:relative;opacity:.8}.config-nav-link:hover{background-color:var(--choice-btn-bg);color:var(--panel-text-color);opacity:1}.config-nav-link.active{background-color:var(--choice-btn-bg-hover);color:var(--panel-title-color);font-weight:700;opacity:1;border-bottom:2px solid var(--panel-title-color)}.config-content-panel{animation:panel-fade-in .5s ease-in-out}.config-content-panel h3{border-bottom-width:1px;padding-bottom:.5rem;font-size:1.5rem;line-height:2rem;font-weight:700;color:var(--panel-title-color);border-bottom-color:var(--panel-border)}@keyframes panel-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.config-main-content{overflow-y:auto;flex-grow:1;padding:0 1rem 1rem}.config-main-content::-webkit-scrollbar{width:.375rem}.config-main-content::-webkit-scrollbar-track{background-color:transparent}.config-main-content::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.advanced-options>summary{display:flex;cursor:pointer;align-items:center;justify-content:space-between;font-size:1.125rem;line-height:1.75rem;font-weight:600;color:var(--panel-text-color);list-style:none;opacity:.9;transition:opacity .2s}.advanced-options>summary:hover{opacity:1;color:var(--panel-title-color)}.advanced-options>summary::-webkit-details-marker{display:none}.advanced-options .arrow{transition:transform .2s ease-in-out}.advanced-options[open] .arrow{transform:rotate(90deg)}#provider-management-section{border-top:1px solid var(--panel-border)}#provider-management-section h4{margin-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:700;color:var(--panel-title-color)}#provider-management-section>div:last-child{background-color:var(--choice-btn-bg)}#provider-management-section h5{font-size:1.125rem;line-height:1.75rem;font-weight:600;color:var(--panel-text-color)}#key-status{font-size:.85em;margin-top:5px;display:inline-block;height:1.2em}#key-status.testing{color:#ffc107}#key-status.valid{color:#28a745}#key-status.invalid{color:#dc3545}#key-status.error{color:#ff8aae}#history-panel{position:absolute;top:10%;left:50%;transform:translate(-50%);width:70%;max-width:700px;height:70%;max-height:600px;border-radius:10px;padding:25px;z-index:12;display:none;flex-direction:column;transition:background .5s ease,border .5s ease,box-shadow .5s ease,color .5s ease;background-color:var(--panel-bg);background-image:var(--panel-bg-image, none);-webkit-backdrop-filter:var(--panel-backdrop-filter);backdrop-filter:var(--panel-backdrop-filter);border:var(--panel-border);color:var(--panel-text-color);box-shadow:var(--panel-box-shadow)}#history-panel.visible{display:flex}#history-panel h3{color:var(--panel-title-color);margin-top:0;margin-bottom:15px;text-align:center;flex-shrink:0}#history-content{flex-grow:1;overflow-y:auto;padding-right:10px;margin-bottom:15px;line-height:1.6;scrollbar-color:var( --galgame-history-scrollbar-thumb-bg, rgba(255, 255, 255, .3) ) var(--galgame-history-scrollbar-track-bg, rgba(0, 0, 0, .2))}#history-content::-webkit-scrollbar{width:8px}#history-content::-webkit-scrollbar-track{background:var( --galgame-history-scrollbar-track-bg, rgba(0, 0, 0, .2) );border-radius:4px}#history-content::-webkit-scrollbar-thumb{background-color:var( --galgame-history-scrollbar-thumb-bg, rgba(255, 255, 255, .3) );border-radius:4px;border:1px solid rgba(0,0,0,.5)}#history-content::-webkit-scrollbar-thumb:hover{background-color:var( --galgame-history-scrollbar-thumb-hover-bg, rgba(255, 255, 255, .5) )}#close-history-btn{background-color:var(--galgame-history-close-btn-bg, #6c757d);color:#fff;padding:8px 15px;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s;font-size:.9em;align-self:center;flex-shrink:0}#close-history-btn:hover{background-color:var(--galgame-history-close-btn-hover-bg, #5a6268)}.save-load-modal{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;overflow:auto;align-items:center;justify-content:center;transition:background-color .5s ease;background-color:#0009;background-color:var(--panel-bg-overlay, rgba(30, 41, 59, .6));-webkit-backdrop-filter:var(--panel-backdrop-filter);backdrop-filter:var(--panel-backdrop-filter)}.save-load-modal.visible{display:flex}.save-load-modal .modal-content{margin:auto;padding:25px;border-radius:10px;width:90%;max-width:500px;position:relative;transition:background .5s ease,border .5s ease,box-shadow .5s ease,color .5s ease;background-color:var(--panel-bg);background-image:var(--panel-bg-image, none);border:var(--panel-border);color:var(--panel-text-color);box-shadow:var(--panel-box-shadow)}.save-load-modal .close-modal-btn{color:#aaa;position:absolute;top:10px;right:15px;font-size:28px;font-weight:700;background:none;border:none;cursor:pointer}.save-load-modal .close-modal-btn:hover,.save-load-modal .close-modal-btn:focus{color:#fff;text-decoration:none}.save-load-modal h3{color:var(--panel-title-color);margin-top:0;text-align:center;margin-bottom:20px}#save-slots-container{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:15px;max-height:50vh;overflow-y:auto;padding-right:5px}.save-slot{display:flex;justify-content:space-between;align-items:center;padding:15px;border-radius:8px;cursor:pointer;transition:background-color .3s;background:var(--choice-btn-bg);border:var(--choice-btn-border);color:var(--choice-btn-text-color)}.save-slot:hover{background:var(--choice-btn-bg-hover);border:var(--choice-btn-border-hover)}.save-slot.empty{color:#888;font-style:italic}.save-slot .slot-info{flex-grow:1}.save-slot .slot-date{font-size:.8em;color:var(--panel-text-color);opacity:.8;margin-top:5px}.save-slot .slot-actions button{margin-left:10px;padding:6px 12px;border:1px solid var(--choice-btn-border);border-radius:8px;color:var(--choice-btn-text-color);background-color:var(--choice-btn-bg);cursor:pointer;font-size:.9em;font-weight:600;transition:all .2s ease-in-out;box-shadow:1px 1px 3px #0003,inset 0 1px 1px #ffffff1a}.save-slot .slot-actions button:hover{transform:translateY(-2px);box-shadow:2px 4px 6px #00000040,inset 0 1px 2px #fff3;filter:brightness(1.1)}.save-slot .slot-actions .save-btn{filter:hue-rotate(45deg) saturate(1.2)}.save-slot .slot-actions .load-btn{filter:hue-rotate(0deg)}.save-slot .slot-actions .delete-btn{filter:hue-rotate(-40deg) saturate(1.2)}.modal-info{font-size:.9em;color:var(--panel-text-color);opacity:.8;text-align:center;margin-top:10px;min-height:1.2em}.story-ending-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;max-width:600px;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:15px;padding:30px;z-index:20;color:#fff;box-shadow:0 0 30px #000000b3;border:1px solid rgba(255,255,255,.2);text-align:center;animation:fadeIn 1s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ending-header{margin-bottom:20px}.ending-header h2{font-size:1.8em;margin-bottom:10px;color:#fc9}.ending-type{display:inline-block;padding:5px 15px;border-radius:20px;font-size:.9em;font-weight:700}.ending-type.good{background:#2ecc71cc}.ending-type.neutral{background:#f1c40fcc}.ending-type.bad{background:#e74c3ccc}.ending-content{line-height:1.7;margin-bottom:30px;text-align:left;max-height:40vh;overflow-y:auto;padding:10px;border-radius:8px;background:#ffffff0d}.ending-buttons{display:flex;justify-content:center;gap:20px}.ending-buttons button{padding:10px 25px;border:none;border-radius:25px;background:#6495edb3;color:#fff;cursor:pointer;transition:all .3s ease;font-size:1em}.ending-buttons button:hover{background:#82a9f7d9;transform:translateY(-2px)}.restart-button{background:#4a8af4!important}.share-button{background:#9c59b6!important}#galgame-container.cg-active #dialogue-box{background-color:#00000080;border-color:#ffffff4d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#galgame-container.cg-active #speaker-name{background-color:transparent;color:#fffffff2}#galgame-container.cg-active .game-controls{background:#0000004d}#galgame-container.cg-active #toggle-history-btn{background-color:#00000080;border-color:#ffffff4d}.cg-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:1rem;max-height:70vh;overflow-y:auto}.cg-gallery-item{aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;box-shadow:0 4px 6px #0000001a}.cg-gallery-item:hover{transform:scale(1.05);box-shadow:0 8px 15px #0003}.cg-gallery-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.cg-lightbox-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:2000;padding:2rem;box-sizing:border-box}.cg-lightbox-content{display:flex;gap:2rem;max-width:90vw;max-height:90vh;position:relative}.cg-lightbox-content img{max-width:65vw;max-height:90vh;-o-object-fit:contain;object-fit:contain;border-radius:8px}.cg-lightbox-info{background-color:var(--panel-bg-color, #1a202c);padding:1.5rem;border-radius:8px;width:300px;display:flex;flex-direction:column;color:var(--text-color, #E2E8F0)}.cg-lightbox-info textarea{flex-grow:1;margin-top:.5rem;resize:none;background-color:var(--input-bg-color, #2D3748);color:var(--input-text-color, #CBD5E0)}.form-label{margin-bottom:.5rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;color:var(--panel-text-color);opacity:.9}.form-input,.form-textarea{width:100%;border-radius:1rem;padding:.625rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:var(--choice-btn-bg);border:1px solid var(--choice-btn-border);color:var(--panel-text-color)}.form-select{width:100%;border-radius:9999px;padding:.625rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:var(--choice-btn-bg);border:1px solid var(--choice-btn-border);color:var(--panel-text-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}#toggle-api-key-visibility{color:var(--panel-text-color);opacity:.6}#toggle-api-key-visibility:hover{opacity:1}input[type=password]{-webkit-text-security:disc;text-security:disc}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:var(--panel-text-color);opacity:.6}.form-input::placeholder,.form-textarea::placeholder{color:var(--panel-text-color);opacity:.6}.form-input:focus,.form-textarea:focus,.form-select:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(59 130 246 / .5);border-color:var(--choice-btn-border-hover);background-color:var(--choice-btn-bg-hover)}.form-textarea{min-height:80px}.form-checkbox{height:1rem;width:1rem;border-radius:.25rem;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.form-checkbox:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.form-checkbox:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1));--tw-ring-offset-color: #1f2937}.form-checkbox:focus:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity, 1))}.form-range{height:.5rem;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.form-range:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.form-button-sm,.form-button-adj{cursor:pointer;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:var(--choice-btn-bg);color:var(--choice-btn-text-color);border:1px solid var(--choice-btn-border)}.form-button-sm:hover,.form-button-adj:hover{background-color:var(--choice-btn-bg-hover);border-color:var(--choice-btn-border-hover)}.select-wrapper{position:relative}.select-wrapper:after{content:"";width:1.1em;height:1.1em;position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>');background-repeat:no-repeat;background-position:center;background-size:contain;color:var(--panel-text-color);opacity:.7;transition:opacity .2s ease}.select-wrapper:hover:after{opacity:1}#history-content .history-entry{margin-bottom:15px;padding-bottom:10px;border-bottom:1px dashed rgba(255,255,255,.15)}#history-content .history-entry:last-child{border-bottom:none}#history-content .history-role-user{font-weight:700;color:var(--galgame-history-role-user-color, #88cc88);margin-bottom:5px;font-size:1.1em;text-shadow:1px 1px 2px rgba(0,0,0,.5)}#history-content .history-role-model{font-weight:700;color:var(--galgame-history-role-model-color, #88aaff);margin-bottom:5px;font-size:1.1em;text-shadow:1px 1px 2px rgba(0,0,0,.5)}#history-content .history-dialogue-content{margin-top:8px;padding-left:10px;border-left:2px solid rgba(255,255,255,.1)}#history-content .history-dialogue-content p{margin-bottom:.8em}#history-content .history-dialogue-content p:last-child{margin-bottom:0}#history-content .history-dialogue-content h1,#history-content .history-dialogue-content h2,#history-content .history-dialogue-content h3{margin-top:1em;margin-bottom:.5em;color:var(--galgame-config-link-color, #88aaff);border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:.2em}#history-content .history-dialogue-content strong{color:var(--galgame-speaker-name-color, #ffcc99)}#history-content .history-dialogue-content em{color:#90ee90}#history-content .history-dialogue-content ul,#history-content .history-dialogue-content ol{padding-left:25px;margin-bottom:.8em}#history-content .history-dialogue-content li{margin-bottom:.4em}#history-content .history-dialogue-content code{background-color:#ffffff1a;padding:2px 5px;border-radius:4px;font-family:Courier New,Courier,monospace;color:#f0f0f0;font-size:.9em}#history-content .history-dialogue-content pre{background-color:#0000004d;padding:10px;border-radius:5px;overflow-x:auto;margin-bottom:.8em}#history-content .history-dialogue-content pre code{background:none;padding:0}#history-content .history-dialogue-content blockquote{border-left:3px solid var(--galgame-control-btn-bg, #6495ed);padding-left:10px;margin:.8em 0;color:#ccc;font-style:italic}#history-content .history-dialogue-content a{color:var(--galgame-config-link-color, #88aaff);text-decoration:underline}#history-content .history-dialogue-content a:hover{filter:brightness(1.2)}#history-content .history-dialogue-segment{margin-bottom:10px}.provider-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:.5rem;background-color:rgba(var(--gray-300-rgb),.1);border:1px solid rgba(var(--gray-400-rgb),.2)}.dark .provider-item{background-color:rgba(var(--gray-700-rgb),.2);border-color:rgba(var(--gray-600-rgb),.3)}.provider-item:hover{background-color:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.3)}.provider-item-info .name{font-weight:600;color:var(--panel-text-color)}.provider-item-info .type{font-size:.875rem;color:var(--panel-text-color);opacity:.7;margin-left:.75rem;background-color:#0000001a;padding:.125rem .5rem;border-radius:9999px}.provider-item-actions{display:flex;gap:.5rem}.provider-item-actions button{background:transparent;border:none;cursor:pointer;padding:.25rem;font-size:1.25rem;color:var(--panel-text-color);opacity:.6;transition:color .2s ease-in-out,transform .2s ease-in-out,opacity .2s ease-in-out}.provider-item-actions button:hover{color:var(--panel-title-color);opacity:1;transform:scale(1.1)}input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;height:6px;border-radius:3px;margin:10px 0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--galgame-control-btn-bg, rgba(100, 149, 237, .7));cursor:pointer}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--galgame-control-btn-bg, rgba(100, 149, 237, .7));cursor:pointer;border:none}.range-labels,.config-main-content small{display:block;font-size:.8em;color:var(--panel-text-color);opacity:.7;margin-top:.25rem}.range-labels{display:flex;justify-content:space-between}input[type=file]{color:transparent}input[type=file]::file-selector-button{cursor:pointer;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:var(--choice-btn-bg);color:var(--choice-btn-text-color);border:var(--choice-btn-border);margin-right:1rem}input[type=file]::file-selector-button:hover{background-color:var(--choice-btn-bg-hover);border-color:var(--choice-btn-border-hover)}#start-screen{position:relative;width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;background:transparent;color:var(--dialogue-text-color, #f9fafb);z-index:100;transition:opacity .5s ease-out;opacity:1}#start-screen.hidden{opacity:0;pointer-events:none}.start-menu-container{text-align:center;padding:2rem;border-radius:var(--dialogue-border-radius, 16px);background:var(--dialogue-bg, rgba(15, 23, 42, .75));border:var(--dialogue-border, 1px solid rgba(255, 255, 255, .15));box-shadow:var(--dialogue-box-shadow, 0 4px 25px rgba(0, 0, 0, .4));-webkit-backdrop-filter:var(--dialogue-backdrop-filter, blur(12px));backdrop-filter:var(--dialogue-backdrop-filter, blur(12px));animation:fadeIn 1s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.game-title{font-family:var(--font-family-display, "Mochiy Pop One", sans-serif);font-size:3rem;color:var(--dialogue-speaker-color, #f87171);text-shadow:var(--dialogue-speaker-text-shadow, 1px 1px 3px rgba(0, 0, 0, .6));margin-bottom:.5rem}.game-subtitle{font-family:var(--font-family-main, "Noto Sans SC", sans-serif);font-size:1.1rem;color:var(--dialogue-text-color, #e2e8f0);margin-bottom:2.5rem;opacity:.9}.start-menu-buttons{display:flex;flex-direction:column;gap:1rem;align-items:center}.game-button{font-family:var(--font-family-main, "Noto Sans SC", sans-serif);font-weight:700;font-size:1.1rem;color:var(--choice-btn-text-color, #e2e8f0);background-color:var(--choice-btn-bg, rgba(71, 85, 105, .5));border:var(--choice-btn-border, 1px solid rgba(148, 163, 184, .4));border-radius:var(--choice-btn-border-radius, 8px);padding:.75rem 1.5rem;min-width:250px;text-align:center;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 5px #0003}.game-button:hover{background-color:var(--choice-btn-bg-hover, rgba(71, 85, 105, .75));border-color:var(--choice-btn-border-hover, 1px solid rgba(148, 163, 184, .7));box-shadow:var(--choice-btn-box-shadow-hover, 0 2px 10px rgba(0,0,0,.3));transform:translateY(-2px)}.game-button.secondary{background-color:#47556933;border-color:#94a3b833}.game-button.secondary:hover{background-color:#47556966;border-color:#94a3b866}.game-button.danger{background-color:#dc26264d;border-color:#dc262666}.game-button.danger:hover{background-color:#dc262680;border-color:#dc262699}#story-writer-screen,#story-gallery-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172a;color:var(--panel-text-color, #cbd5e1);z-index:110;display:flex;align-items:center;justify-content:center;padding:2rem}.story-writer-container,.gallery-container{margin:auto;display:flex;flex-direction:column;width:100%;max-width:100%;height:100%;background:var(--panel-bg, rgba(15, 23, 42, .95));border:none;border-radius:0;box-shadow:none;overflow:hidden}.writer-header,.gallery-header{padding:1rem 1.5rem;border-bottom:var(--panel-border, 1px solid rgba(255, 255, 255, .1));text-align:center;position:relative;flex-shrink:0}.back-button{position:absolute;left:1.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--panel-text-color, #cbd5e1);cursor:pointer;font-size:.9rem;opacity:.8;transition:opacity .2s}.back-button:hover{opacity:1}.writer-header h2,.gallery-header h2{font-family:var(--font-family-display, "Mochiy Pop One", sans-serif);font-size:1.5rem;color:var(--panel-title-color, #88aaff);margin:0}.step-indicator{display:flex;justify-content:center;gap:1rem;margin-top:.75rem}.step-indicator .step{color:var(--panel-text-color, #cbd5e1);opacity:.5;font-size:.9rem;padding-bottom:.5rem;border-bottom:2px solid transparent;transition:all .3s ease}.step-indicator .step.active{opacity:1;font-weight:700;border-bottom-color:var(--panel-title-color, #88aaff)}.writer-content{flex-grow:1;overflow-y:auto;padding:2rem;min-height:0}.writer-step-content{border:none;padding:0;margin:0;animation:stepFadeIn .5s ease-out}@keyframes stepFadeIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.writer-navigation{padding:1rem 1.5rem;border-top:var(--panel-border, 1px solid rgba(255, 255, 255, .1));display:flex;justify-content:space-between;align-items:center;background:var(--panel-bg, rgba(15, 23, 42, .95))}.writer-navigation .game-button{min-width:120px}.writer-navigation .game-button.hidden,.writer-step-content.hidden{display:none}.gallery-layout{display:flex;flex-grow:1;min-height:0;position:relative}#gallery-sidebar{position:relative;width:320px;flex-shrink:0;background:#0003;border-right:1px solid var(--panel-border, rgba(255, 255, 255, .1));overflow-y:auto;padding:1rem 0;transition:width .3s ease,padding .3s ease}#gallery-sidebar::-webkit-scrollbar{width:8px}#gallery-sidebar::-webkit-scrollbar-track{background:#0000001a}#gallery-sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}#gallery-sidebar::-webkit-scrollbar-thumb:hover{background:#fff6}#gallery-sidebar.hidden{width:0;padding:0;overflow:hidden;border-right:none}.sidebar-toggle-btn{position:absolute;bottom:1rem;right:-1.25rem;z-index:10;width:2.5rem;height:2.5rem;background-color:var(--panel-bg, rgba(15, 23, 42, .95));border:1px solid var(--panel-border, rgba(255, 255, 255, .1));border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:var(--panel-text-color, #cbd5e1)}.sidebar-toggle-btn:hover{background-color:var(--panel-title-color, #88aaff);color:#fff;transform:scale(1.1)}#gallery-sidebar.hidden .sidebar-toggle-btn{right:-1.25rem}.sidebar-toggle-btn{position:absolute;top:50%;left:320px;transform:translate(-50%,-50%);z-index:150;width:2.5rem;height:2.5rem;background-color:var(--panel-bg, rgba(15, 23, 42, .95));border:1px solid var(--panel-border, rgba(255, 255, 255, .1));border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:var(--panel-text-color, #cbd5e1)}.sidebar-toggle-btn:hover{background-color:var(--panel-title-color, #88aaff);color:#fff;transform:translate(-50%,-50%) scale(1.1)}#gallery-sidebar.hidden+.sidebar-toggle-btn{left:0}.sidebar-toggle-btn .icon-expand{display:none}.sidebar-toggle-btn .icon-collapse{display:block}#gallery-sidebar.hidden+.sidebar-toggle-btn .icon-expand{display:block}#gallery-sidebar.hidden+.sidebar-toggle-btn .icon-collapse{display:none}.gallery-story-item{padding:1rem 1.5rem;cursor:pointer;border-left:4px solid transparent;transition:background-color .2s ease,border-color .2s ease}.gallery-story-item:hover{background-color:#ffffff0d}.gallery-story-item.active{background-color:#88aaff1a;border-left-color:var(--panel-title-color, #88aaff)}.gallery-story-item h4{margin:0 0 .25rem;font-size:1.1rem;font-weight:700;color:var(--panel-text-color, #cbd5e1)}.gallery-story-item p{margin:0;font-size:.85rem;opacity:.7;line-height:1.4}#gallery-main-content{flex-grow:1;position:relative}#gallery-story-details{width:100%;height:100%;display:flex;flex-direction:column}.story-cover-container{position:relative;width:100%;height:55%;flex-shrink:0}.story-cover-image{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;position:absolute;top:0;left:0}.story-cover-overlay{position:absolute;bottom:0;left:0;width:100%;height:50%;background:linear-gradient(to top,var(--panel-bg, rgba(15, 23, 42, .95)) 20%,transparent)}.story-info-panel{padding:2rem;flex-grow:1;overflow-y:auto}#story-title-detail{font-family:var(--font-family-display, "Mochiy Pop One", sans-serif);font-size:2.5rem;color:var(--dialogue-speaker-color, #f87171);margin:0 0 1rem;position:relative;z-index:1;text-shadow:2px 2px 5px rgba(0,0,0,.7)}#story-description-detail{font-size:1rem;line-height:1.6;opacity:.9;margin-bottom:2rem;max-width:80ch}.story-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-start}.story-actions .game-button{min-width:150px}#gallery-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#ffffff4d;font-size:1.2rem}#gallery-story-details.hidden,#gallery-save-slots.hidden,#gallery-chapter-tree-view.hidden{display:none}#gallery-save-slots{padding:2rem;overflow-y:auto;height:100%}#gallery-chapter-tree-view{height:100%;width:100%}.save-slot-item{background:#0003;border:1px solid var(--choice-btn-border, rgba(148, 163, 184, .4));border-radius:var(--choice-btn-border-radius, 8px);padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;transition:all .3s ease}.save-slot-item:hover{transform:translateY(-5px);box-shadow:var(--choice-btn-box-shadow-hover, 0 4px 15px rgba(0,0,0,.4));border-color:var(--choice-btn-border-hover, rgba(148, 163, 184, .7))}@media (max-width: 768px){#galgame-container{max-height:calc(100vh - 20px);border-radius:0;margin:10px auto}.character-area{height:55%;max-width:45%}#dialogue-box{width:95%;min-height:120px;max-height:45%;padding:15px 20px}#speaker-name{font-size:1.05em}#dialogue-text{font-size:.95em}#game-controls{bottom:15px;right:15px;gap:8px}.control-button{padding:8px 15px;font-size:.9em}#history-panel{width:90%;height:75%}#config-panel{width:90%;max-width:350px;right:50%;transform:translate(50%);top:5%}#toggle-config-btn{top:10px;right:10px;width:35px;height:35px;font-size:18px}.image-upload-section{flex-direction:column;align-items:stretch}.image-preview{max-width:60px;max-height:60px}.story-progress-bar{width:90%}#story-writer-screen,#story-gallery-screen{padding:0}.gallery-container{height:100%;width:100%;max-width:100%;border-radius:0;box-shadow:none}.gallery-layout{flex-direction:column;height:100%}#gallery-sidebar{width:100%;flex-shrink:0;border-right:none;border-bottom:none;padding-top:.5rem;box-shadow:0 2px 8px #0000004d;max-height:40vh;overflow-y:auto}.gallery-story-item{border-radius:8px;margin:0 .5rem .5rem;padding:.75rem 1rem}#gallery-placeholder{display:none!important}#gallery-main-content{flex-grow:1;min-height:0;display:flex;flex-direction:column}.story-cover-container{height:30%}.story-info-panel{padding:1rem;flex-grow:1;overflow-y:auto}#story-title-detail{font-size:1.5rem}#story-description-detail{font-size:.9rem;margin-bottom:1.5rem}.story-actions{flex-direction:column;gap:.75rem;align-items:stretch;margin-top:auto;padding-top:1rem}.story-actions .game-button{flex-grow:0;width:100%}.story-actions .game-button,.story-actions .game-button.secondary,.story-actions .game-button.danger{background-color:var(--choice-btn-bg, rgba(71, 85, 105, .5));border-color:var(--choice-btn-border, rgba(148, 163, 184, .4));color:var(--choice-btn-text-color, #e2e8f0)}.story-actions .game-button:hover{background-color:var(--choice-btn-bg-hover, rgba(71, 85, 105, .75));border-color:var(--choice-btn-border-hover, 1px solid rgba(148, 163, 184, .7))}.story-actions .game-button.danger{background-color:#dc26264d;border-color:#dc262666}.story-actions .game-button.danger:hover{background-color:#dc262680;border-color:#dc262699}}@media (max-width: 480px){.character-area{height:50%;max-width:55%}#ai-character-area{right:2%}#player-character-area{left:2%}#dialogue-box{max-height:50%;padding:10px 15px}#speaker-name{font-size:1em}#dialogue-text{font-size:.9em}.control-button{padding:6px 12px;font-size:.85em}#history-panel{width:95%;height:80%;padding:15px}#config-panel{padding:15px;width:95%}.image-preview{max-width:50px;max-height:50px}#game-controls{flex-direction:column;right:10px;bottom:auto;top:60px;gap:5px}.choice-button{padding:12px 15px;margin-bottom:8px}.story-ending-panel{width:95%;padding:20px}}.chapter-tree-container{display:flex;gap:2rem;padding:1rem;overflow-x:auto;height:100%}#chapter-tree-graph{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;min-width:-webkit-fill-available;min-width:-moz-fit-content;min-width:fit-content}.tree-level{display:flex;justify-content:flex-start;gap:2rem;position:relative;width:100%}.tree-node-wrapper{display:flex;flex-direction:column;align-items:center;gap:1rem}.tree-children-container{display:flex;gap:2rem;padding-left:1rem;position:relative}.tree-children-container.is-choice{padding:1rem;border:2px dashed var(--border-color, #555);border-radius:8px;margin-top:1rem}.tree-node{width:220px;padding:1rem;border:1px solid var(--border-color, #444);background:linear-gradient(145deg,var(--panel-bg-color-light, #3a3a40),var(--panel-bg-color, #2a2a2e));border-radius:10px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #0003,0 1px 3px #0000001a;position:relative;z-index:10}.tree-node:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 12px #0000004d,0 3px 6px #00000026;border-color:var(--accent-color, #aaffaa)}.tree-node.active{border-color:var(--accent-color-strong, #f0f0f0);box-shadow:0 0 20px -5px var(--accent-color, #aaffaa),0 4px 6px #0003;transform:scale(1.03)}.tree-node-title{font-weight:700;font-size:1rem;margin-bottom:.5rem;color:var(--panel-title-color, #ffffff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node-summary{font-size:.875rem;color:var(--text-color-secondary, #aaaaaa);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}#chapter-detail-content{flex-shrink:0;width:350px;height:-moz-fit-content;height:fit-content;position:sticky;top:1rem;background-color:var(--panel-bg-color, #2a2a2e);border:1px solid var(--border-color, #444);border-radius:8px;padding:1.5rem;box-shadow:0 4px 12px #00000080}#chapter-detail-placeholder{display:flex;justify-content:center;align-items:center;height:100%;color:var(--text-color-secondary, #aaaaaa)}.chapter-detail-card .chapter-cover-image{width:100%;height:200px;-o-object-fit:cover;object-fit:cover;border-radius:6px;margin-bottom:1rem;background-color:var(--border-color, #444)}.chapter-detail-card h4{font-size:1.25rem;font-weight:700;margin-bottom:.5rem;color:var(--panel-title-color, #ffffff)}.chapter-detail-card p{font-size:.9rem;line-height:1.6;color:var(--text-color, #dddddd);max-height:200px;overflow-y:auto}.leader-line{z-index:5}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;transition:opacity .3s ease;pointer-events:none}.modal-overlay:not(.hidden){opacity:1;pointer-events:auto}.modal-content-wrapper{position:relative;background-color:var(--panel-bg-color, #2a2a2e);border-radius:12px;padding:2rem;width:90%;max-width:500px;box-shadow:0 10px 30px #00000080;transform:scale(.95);transition:transform .3s ease}.modal-overlay:not(.hidden) .modal-content-wrapper{transform:scale(1)}#chapter-detail-modal-content .chapter-cover-image{height:250px}.gallery-character-view{display:flex;flex-direction:column;height:100%;width:100%;padding:1rem;box-sizing:border-box;background-color:var(--panel-bg, #f0f4f8);background-image:var(--dialogue-bg-image, none);background-size:var(--dialogue-bg-size, auto);font-family:var(--font-family-main, "Segoe UI", sans-serif);overflow:hidden;border-left:1px solid var(--panel-border, #e2e8f0);transition:background-color .5s ease}.character-selector-bar{display:flex;justify-content:center;gap:1rem;padding:.5rem;margin-bottom:1rem;background-color:transparent;border-radius:50px;flex-shrink:0;position:relative;z-index:10}.character-avatar{width:65px;height:65px;border-radius:50%;border:3px solid var(--panel-border, #e2e8f0);cursor:pointer;transition:all .4s cubic-bezier(.25,.8,.25,1);-o-object-fit:cover;object-fit:cover;background-color:#fff;box-shadow:0 2px 8px #0000000d}.character-avatar:hover{transform:scale(1.1) translateY(-3px);border-color:var(--dialogue-speaker-color, #f87171)}.character-avatar.active{border-color:var(--dialogue-speaker-color, #f87171);transform:scale(1.2) translateY(-5px);box-shadow:0 8px 25px var(--choice-btn-bg-hover, rgba(255, 121, 198, .5))}.character-display-area{display:flex;flex-grow:1;gap:1.5rem;height:calc(100% - 100px)}.character-portrait-container{flex:0 0 45%;display:flex;align-items:center;justify-content:center;position:relative;padding:1rem}.character-portrait-bg{position:absolute;width:80%;height:80%;background:radial-gradient(ellipse at center,var(--choice-btn-bg-hover, rgba(255, 255, 255, .8)) 0%,transparent 70%);border-radius:50%;z-index:0;filter:blur(15px)}.character-full-portrait{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(0,0,0,.15));position:relative;z-index:1}.character-quote{position:absolute;top:50%;left:0;transform:translateY(-50%) rotate(-90deg);transform-origin:top left;font-size:1.8rem;font-weight:300;font-family:Kaiti,STKaiti,serif;color:var(--panel-text-color, #a48fb8);white-space:nowrap;opacity:.7;z-index:2;letter-spacing:2px}.character-details-container{flex:1;padding:2rem 1rem 2rem 2rem;background:var(--dialogue-bg, rgba(255, 255, 255, .4));border-radius:var(--dialogue-border-radius, 16px);border:1px solid var(--dialogue-border, rgba(255, 255, 255, .6));box-shadow:var(--dialogue-box-shadow, 0 4px 30px rgba(0,0,0,.05));backdrop-filter:var(--dialogue-backdrop-filter, blur(5px));-webkit-backdrop-filter:var(--dialogue-backdrop-filter, blur(5px));display:flex;flex-direction:column;height:100%;overflow-y:auto}.character-details-container::-webkit-scrollbar{width:6px}.character-details-container::-webkit-scrollbar-track{background:transparent}.character-details-container::-webkit-scrollbar-thumb{background:var(--panel-border, #ccc);border-radius:3px}.character-details-container::-webkit-scrollbar-thumb:hover{background:var(--panel-title-color, #88aaff)}.character-title-group{text-align:left;margin-bottom:1rem}.character-title-group h2{font-size:3.5rem;font-weight:700;color:var(--panel-title-color, #8e44ad);margin:0;font-family:var(--font-family-display, "Noto Serif SC", serif)}.character-title-group p{font-size:1.1rem;color:var(--panel-text-color, #a48fb8);margin-top:.5rem;text-transform:uppercase;letter-spacing:1px}.decorative-line{height:1px;background:linear-gradient(to right,var(--dialogue-speaker-color, #ff79c6),var(--panel-title-color, #bd93f9));border:0;border-radius:1px;margin:2rem 0;width:100%;opacity:.6}.character-info-block{margin-bottom:2rem}.character-info-block h4{display:inline-block;font-size:.9rem;font-weight:600;color:var(--choice-btn-text-color, #8e44ad);background-color:var(--choice-btn-bg, #e8d8f9);padding:.4rem 1rem;margin-bottom:1rem;border-radius:20px;letter-spacing:1px;text-transform:uppercase}.character-info-block p,.character-info-block .value{font-size:1.05rem;line-height:1.7;color:var(--dialogue-text-color, #6a5a7a);padding-left:.5rem}.costume-selector,.voice-player{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem;padding-left:.5rem}.costume-thumbnail{width:75px;height:75px;border-radius:12px;border:2px solid var(--panel-border, #e2e8f0);cursor:pointer;transition:all .3s ease;-o-object-fit:cover;object-fit:cover;background-color:#fff}.costume-thumbnail:hover,.costume-thumbnail.active{border-color:var(--dialogue-speaker-color, #ff79c6);transform:scale(1.08);box-shadow:0 4px 15px var(--choice-btn-bg-hover, rgba(189, 147, 249, .3))}.costume-thumbnail.locked{filter:grayscale(1) brightness(.7);cursor:not-allowed;position:relative}.costume-thumbnail.locked:after{content:"🔒";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;color:#fff;text-shadow:0 0 5px black}.costume-thumb-wrapper{position:relative;display:inline-flex;animation:costume-fade-in .35s ease}@keyframes costume-fade-in{0%{opacity:0;transform:scale(.85)}70%{opacity:1;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}.costume-badge-new{position:absolute;top:-6px;right:-6px;background:linear-gradient(135deg,#ff7eb3,#ff758c);color:#fff;font-size:.55rem;font-weight:700;padding:2px 5px;border-radius:6px;box-shadow:0 2px 6px #00000040;letter-spacing:1px;animation:badge-pop .4s ease}@keyframes badge-pop{0%{transform:scale(.4) rotate(-10deg);opacity:0}70%{transform:scale(1.15) rotate(3deg);opacity:1}to{transform:scale(1) rotate(0)}}.costume-pending-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000008c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:12px}.costume-pending-overlay span{color:#fff;font-size:.7rem}.costume-retry-btn{background:var(--choice-btn-bg, #ffe0f1);border:1px solid var(--dialogue-speaker-color, #ff79c6);color:var(--dialogue-speaker-color, #ff79c6);font-size:.6rem;padding:2px 6px;border-radius:6px;cursor:pointer;transition:all .25s ease}.costume-retry-btn:hover:not(:disabled){background:var(--dialogue-speaker-color, #ff79c6);color:#fff}.costume-retry-btn:disabled{opacity:.6;cursor:default}.voice-button{width:60px;height:60px;background:var(--choice-btn-bg, rgba(255, 255, 255, .5));border:2px solid var(--panel-border, #e2e8f0);border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.voice-button:hover{border-color:var(--dialogue-speaker-color, #ff79c6);background:#fff;transform:scale(1.08)}.voice-button svg{width:50%;height:50%;fill:var(--dialogue-speaker-color, #ff79c6);transition:transform .3s ease}.voice-button:hover svg{transform:scale(1.1)}[data-theme=future-tech] .gallery-character-view{background:#0a1423}[data-theme=future-tech] .character-portrait-bg{background:radial-gradient(ellipse at center,rgba(0,255,255,.2) 0%,transparent 70%);filter:blur(20px)}[data-theme=future-tech] .character-details-container{-o-border-image:linear-gradient(to bottom right,rgba(0,255,255,.8),rgba(247,37,133,.8));border-image:linear-gradient(to bottom right,#0ffc,#f72585cc);border-image-slice:1;border-width:1px}[data-theme=romance] .gallery-character-view{background:linear-gradient(135deg,#fff0f5,#ffe4e1)}[data-theme=romance] .character-portrait-bg{background:radial-gradient(ellipse at center,rgba(255,194,209,.5) 0%,transparent 70%)}[data-theme=romance] .character-details-container{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff9fb99}[data-theme=mystery] .gallery-character-view{background:linear-gradient(to bottom,#2d2d2d,#1a1a1a)}[data-theme=mystery] .character-details-container{background:#141414b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=mystery] .character-portrait-bg{display:none}[data-theme=fantasy] .gallery-character-view{background:linear-gradient(180deg,#1d2b41,#0e1622)}[data-theme=fantasy] .character-details-container{background:#2e2219b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}[data-theme=fantasy] .character-portrait-bg{background:radial-gradient(ellipse at center,rgba(224,180,104,.4) 0%,transparent 70%)}[data-theme=school] .gallery-character-view{background:linear-gradient(to bottom,#e0f7fa,#b2ebf2)}[data-theme=school] .character-details-container{background:#ffffffb3}[data-theme=school] .character-portrait-bg{background:radial-gradient(ellipse at center,rgba(74,144,226,.3) 0%,transparent 70%)}
