:root{--paper: #f6ecd9;--paper-2: #eadbc2;--paper-3: #fbf5e9;--ink: #39271b;--ink-soft: #6d5540;--gold: #c39a5e;--gold-bright: #e0bd84;--wine: #7c4038;--sage: #6f7a5a;--panel-bg: rgba(28, 18, 12, .82);--panel-line: rgba(214, 178, 120, .32);--dialogue-h: clamp(230px, 33vh, 330px);--serif: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "SimSun", serif;--sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Hiragino Sans GB", sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:#0b0705;color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.hidden{display:none!important}.screen{position:fixed;top:0;right:0;bottom:0;left:0}.start-screen{display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#2a1a10,#0a0604 72%)}.start-cover{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.start-cover:before{content:"";position:absolute;top:-80px;right:-80px;bottom:-80px;left:-80px;background-image:var(--cover, none);background-size:cover;background-position:center;filter:blur(34px) brightness(.36) saturate(1.1);z-index:0;pointer-events:none}.cover-frame{position:relative;z-index:1;width:min(100vw,75vh);height:min(100vh,calc(100vw * 1448 / 1086));aspect-ratio:1086 / 1448;box-shadow:0 0 90px #000000a6}.cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.cover-hit{position:absolute;padding:0;border:0;background:transparent;cursor:pointer;outline:none}.cover-hit:after{content:"";position:absolute;top:5px;right:12px;bottom:5px;left:12px;border-radius:999px;border:1.5px solid transparent;background:transparent;transition:background .18s ease,border-color .18s ease}.cover-hit:hover:after,.cover-hit:focus-visible:after{background:#fff6dc38;border-color:#e4be7e99}.cover-hit:active:after{background:#fff6dc47}.start-foot{position:absolute;bottom:8px;left:0;right:0;z-index:2;margin:0;text-align:center;font-size:11px;letter-spacing:.14em;color:#e7d2b480;pointer-events:none}.game-screen{background:#0a0705}.stage{--dw: min(1180px, calc(100vw - 28px) , calc(var(--dialogue-h) * 3));position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene-layer,.scene-img{position:absolute;top:0;right:0;bottom:0;left:0}.scene-img{background-position:center;background-size:cover;opacity:0;transform:scale(1.04);transition:opacity .6s ease,transform 7s ease-out}.scene-img.is-active{opacity:1;transform:scale(1)}.time-tint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transition:background .8s ease;z-index:1}.time-morning{background:linear-gradient(180deg,#ffce9629,#ffebcd05 45%,#4226144d)}.time-forenoon{background:linear-gradient(180deg,#fff4d81a,#5a3c1e1f)}.time-afternoon{background:linear-gradient(180deg,#ffd8961f,#54281a38)}.time-night{background:linear-gradient(180deg,#12224859,#0a0f2294 70%,#04060ebd)}.stage-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 46% 38% at 50% 30%,rgba(255,205,140,.14),transparent 70%);pointer-events:none;z-index:2}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 44%,transparent 42%,rgba(8,5,3,.4) 78%,rgba(6,4,2,.8) 100%),linear-gradient(180deg,rgba(6,4,2,.45),transparent 18%,transparent 70%,rgba(6,4,2,.5));pointer-events:none;z-index:3}.char-layer{position:absolute;left:50%;bottom:79.3%;height:min(52vh,640px);aspect-ratio:1188 / 1324;transform:translate(-50%);z-index:0;pointer-events:none;transition:opacity .24s ease}.dialogue-wrap.dialogue-hidden .char-layer{opacity:0}.char-img{width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .24s ease;filter:drop-shadow(0 16px 30px rgba(0,0,0,.42))}.char-img.is-visible{opacity:1}.cg-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#070403f0;opacity:0;transition:opacity .4s ease}.cg-layer.is-visible{opacity:1}.cg-layer img{max-width:min(78%,960px);max-height:72%;object-fit:contain;border-radius:4px;box-shadow:0 30px 80px #000000bf;opacity:1;transition:opacity .3s ease}.cg-layer img.is-pending{opacity:0}.cg-caption{position:absolute;bottom:4%;left:0;right:0;text-align:center;font-family:var(--serif);letter-spacing:.2em;color:var(--gold-bright)}.topbar{position:absolute;top:0;left:0;right:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:linear-gradient(180deg,rgba(12,8,5,.78),rgba(12,8,5,.1) 80%,transparent)}.day-block{display:flex;align-items:baseline;gap:7px;font-family:var(--serif);text-shadow:0 2px 10px rgba(0,0,0,.6)}.day-num{font-size:clamp(19px,2.4vh,26px);letter-spacing:.04em;color:#f4e2c4}.day-total{font-size:12px;color:#e8cda4a6}.slot-chip,.scene-chip{margin-left:6px;padding:3px 10px;border-radius:999px;border:1px solid rgba(214,178,120,.36);background:#1e140e80;font-family:var(--sans);font-size:12px;letter-spacing:.08em;color:#eed9b4}.scene-chip{background:#3c26166b}.top-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.icon-btn{padding:6px 11px;border-radius:5px;border:1px solid rgba(214,178,120,.28);background:#18100b80;color:#ecd9b8;font-size:12px;letter-spacing:.06em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .16s ease,border-color .16s ease}.icon-btn:hover{background:#4a301cb3;border-color:#e0bd8499}.hud{position:absolute;left:16px;top:60px;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-height:calc(100vh - var(--dialogue-h) - 80px)}.hud-quick{display:flex;gap:6px}.hud-quick-btn{padding:7px 17px;border-radius:999px;border:1px solid rgba(214,178,120,.42);background:#18100b9e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f2e4cd;font-family:var(--serif);font-size:13px;letter-spacing:.14em;box-shadow:0 6px 18px #00000052;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.hud-quick-btn:hover{border-color:#e0bd84bf;background:#603e22b8}.hud-quick-btn.is-call{border-color:var(--gold-bright);box-shadow:0 0 0 1px #e0bd8466,0 0 16px #e0bd8459;animation:callPulse 1.6s ease-in-out infinite}.hud-panel{display:none;width:244px;max-height:calc(100vh - var(--dialogue-h) - 120px);overflow-y:auto;padding:14px;background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:10px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 44px #00000059;scrollbar-width:thin}.hud.is-open .hud-panel{display:block;animation:fadeDown .22s ease}.hud-head{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}.hud-day-label{font-size:11px;letter-spacing:.22em;color:var(--gold)}.hud-day-num{font-family:var(--serif);font-size:30px;line-height:1;color:#f4e2c4}.hud-slot{margin-left:auto;font-size:12px;letter-spacing:.1em;color:#eed9b4}.hud-hint{margin-bottom:10px;font-size:11px;line-height:1.5;color:#e8d2b2b8;letter-spacing:.04em}.hud-hint[data-tone=call]{color:var(--gold-bright)}.hud-group{margin-bottom:10px}.hud-group-title{margin:0 0 6px;font-size:11px;font-weight:500;letter-spacing:.18em;color:var(--gold)}.hud-stat{margin-bottom:7px}.hud-stat-top{display:flex;align-items:baseline;gap:6px;margin-bottom:3px}.hud-stat-name{font-size:11px;letter-spacing:.06em;color:#f4e4cae0}.hud-stat-val{margin-left:auto;font-family:var(--serif);font-size:12px;color:#f2ddba}.hud-stat-delta{width:34px;text-align:right;font-size:10px;color:transparent}.hud-stat-delta.up{color:#a9c98d;animation:deltaFloat 2.4s ease forwards}.hud-stat-delta.down{color:#e2a08c;animation:deltaFloat 2.4s ease forwards}.hud-stat-bar{height:4px;border-radius:999px;background:#f6ecd91f;overflow:hidden}.hud-stat-bar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#b78d52,#e3c390);transition:width .55s cubic-bezier(.2,.8,.3,1)}.hud-stat[data-tone=low] .hud-stat-bar span{background:linear-gradient(90deg,#7c6a58,#a99884)}.hud-stat[data-tone=warn] .hud-stat-bar span{background:linear-gradient(90deg,#c08a4e,#e0b878)}.hud-stat[data-tone=bad] .hud-stat-bar span{background:linear-gradient(90deg,#a24b3f,#d47a63)}.schedule-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#060402b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.schedule-panel{position:relative;width:min(910px,96vw);max-height:92vh;overflow-y:auto;background:radial-gradient(ellipse at 18% -8%,rgba(255,253,247,.95),transparent 55%),linear-gradient(168deg,#f8efdd,#ebdcc2);color:var(--ink);border:1px solid rgba(150,110,60,.45);border-radius:14px;box-shadow:0 34px 90px #000000a8,inset 0 0 0 1px #ffffff8c;padding:24px 26px 20px}.schedule-panel:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(160,118,64,.2);border-radius:9px;pointer-events:none}.schedule-panel>*{position:relative;z-index:1}.schedule-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}.schedule-eyebrow{margin:0 0 2px;font-size:11px;letter-spacing:.2em;color:#a1794c}.schedule-head h2{margin:0;font-family:var(--serif);font-size:22px;letter-spacing:.06em;color:#4a3220}.schedule-tip{font-size:11px;color:#947150}.schedule-slots{display:flex;flex-direction:column;gap:12px}.sched-row{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:stretch;padding:8px 10px;border-radius:10px;background:#fffcf680;border:1px solid rgba(154,112,62,.16);transition:background .18s ease,border-color .18s ease}.sched-row.is-filled{background:#fff8e9d9;border-color:#a8763a57}.sched-row-label{display:flex;flex-direction:column;justify-content:center;gap:3px;padding-left:3px}.sched-row-time{font-family:var(--serif);font-size:15px;letter-spacing:.1em;color:#5a3d24}.sched-row-picked{font-size:10px;letter-spacing:.04em;color:#a1794c}.sched-row.is-filled .sched-row-picked{color:#8a5f2f}.sched-row-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.sched-action{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:40px;padding:8px 6px;border-radius:7px;border:1px solid rgba(154,112,62,.3);background:linear-gradient(180deg,#fffcf6e6,#f7eee0b3);color:#4b3421;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.sched-action-name{font-family:var(--serif);font-size:13.5px;letter-spacing:.04em;line-height:1.2}.sched-action:hover{border-color:#a8763ab8;background:#fffaf0;transform:translateY(-1px);box-shadow:0 6px 14px #7850281f}.sched-action.is-chosen{border-color:#a8703c;background:linear-gradient(160deg,#f0d9ac,#ddb87f);color:#402913;box-shadow:inset 0 0 0 1px #8c603266,0 6px 16px #8c603238}.sched-action.is-chosen:after{content:"✓";position:absolute;top:3px;right:6px;font-size:9px;color:#6b4520}.schedule-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(150,110,60,.2)}.sched-status{display:flex;align-items:center;gap:10px}.sched-dots{display:inline-flex;gap:5px}.sched-dot{width:7px;height:7px;border-radius:999px;border:1px solid rgba(150,110,60,.5);background:transparent;transition:background .2s ease,border-color .2s ease}.sched-dot.is-on{background:#b98a4f;border-color:#8d5f30}.schedule-foot #schedule-note{font-size:12px;color:#8a6a48}.primary-btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:5px;border:1px solid rgba(120,82,40,.55);font-family:var(--serif);font-size:13px;letter-spacing:.1em;transition:transform .16s ease,filter .16s ease}.primary-btn,.btn.primary{background:linear-gradient(160deg,#b98a4f,#8d5f30);color:#fff7e8;box-shadow:0 6px 18px #5a371459}.primary-btn:hover:not(:disabled),.btn.primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.primary-btn:disabled,.btn:disabled{opacity:.4}.btn.ghost{background:#fffaf080;color:#5a3f28;border-color:#8c64386b}.btn.ghost:hover{background:#fffaf0d9}.btn.danger{background:#7c40381f;color:var(--wine);border-color:#7c403866}.btn.small{padding:5px 10px;font-size:11px}.dialogue-wrap{position:absolute;left:50%;bottom:10px;width:var(--dw);height:calc(var(--dw) / 3);transform:translate(-50%);z-index:14;transition:transform .34s cubic-bezier(.4,0,.2,1),opacity .34s ease}.dialogue-wrap.dialogue-hidden{transform:translate(-50%,118%);opacity:0;pointer-events:none}.dialogue-box{position:relative;z-index:1;width:100%;height:100%;background-size:100% 100%;background-repeat:no-repeat;border-radius:14px;filter:drop-shadow(0 20px 44px rgba(0,0,0,.5));cursor:pointer}.dialogue-box:not(.has-art){background:linear-gradient(160deg,#fbf3e4fa,#ecddc5fa);border:1px solid rgba(150,108,58,.55)}.dialogue-box:not(.has-art):before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(160,118,64,.3);border-radius:9px;pointer-events:none}.speaker-plate{position:absolute;left:16.4%;top:12%;width:12.4%;height:9.6%;display:flex;align-items:center;justify-content:center;padding:0;font-family:var(--serif);font-size:clamp(13px,1.7vh,17px);letter-spacing:.06em;line-height:1;color:#ffefcd;text-shadow:0 1px 2px rgba(38,20,8,.92),0 0 6px rgba(255,226,176,.28);pointer-events:none;z-index:2}.dialogue-box:not(.has-art) .speaker-plate{color:#5a3e26;text-shadow:none;background:#8c60321f;border-radius:6px}.dialogue-text{position:absolute;left:5.6%;right:8.5%;top:32.5%;bottom:18%;overflow-y:auto;padding:2px 10px 2px 0;color:#3a281b;font-size:clamp(16px,1.85vh,20px);line-height:1.95;letter-spacing:.025em;z-index:2;scrollbar-width:thin}.dialogue-box[data-speaker=narrator] .dialogue-text{color:#5a4632;font-style:italic}.dialogue-box:not(.has-art) .dialogue-text{color:#3c2a1c}.advance-hint{position:absolute;right:8.6%;bottom:5.4%;padding:2px 4px;border:0;background:transparent;color:#9b7448;font-size:11px;letter-spacing:.16em;opacity:0;transition:opacity .2s;z-index:4}.advance-hint.is-ready{opacity:.85;animation:bobHint 1.7s ease-in-out infinite}.dialogue-tools{position:absolute;left:49.4%;right:9.6%;top:4.2%;width:auto;height:10.2%;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4%;z-index:5}.d-tool{border:0;border-radius:999px;background:transparent;color:transparent;font-size:0;transition:background .16s ease,box-shadow .16s ease}.d-tool:hover{background:#96643029}.d-tool.is-on{box-shadow:inset 0 0 0 2px #8456268c}.dialogue-box:not(.has-art) .d-tool{color:#6b4a2a;font-size:11px}.choices{position:absolute;left:5.6%;right:7.4%;top:22%;bottom:4%;display:none;flex-direction:column;gap:6px;padding:9px 14px;overflow-y:auto;z-index:6;background:radial-gradient(130% 100% at 18% 0%,#fffcf3fa,#f6ebd6f5 58%,#ecddc3f2),repeating-linear-gradient(112deg,#b494660d 0,#b494660d 2px,#b4946600 2px,#b4946600 7px);border:1px solid rgba(150,108,58,.34);border-radius:7px;box-shadow:0 18px 44px #321c0a52,inset 0 1px #ffffffb8,inset 0 0 42px #b08e6024;scrollbar-width:thin;scrollbar-color:rgba(168,118,58,.5) transparent}.choices::-webkit-scrollbar{width:7px}.choices::-webkit-scrollbar-track{background:transparent}.choices::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#b88c4c9e,#966c3a6b);border-radius:4px}.choices.is-scrollable{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%)}.choices.is-visible{display:flex;animation:fadeUp .24s ease}.choices-prompt{display:flex;align-items:center;gap:12px;margin:0 0 2px;padding:0 2px;font-family:var(--serif);font-size:11.5px;color:#74522edb;letter-spacing:.26em}.choices-prompt:after{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,#a8763a73,#a8763a00)}.choice-btn{width:100%;padding:9px 14px;border-radius:4px;border:1px solid rgba(150,108,58,.22);background:linear-gradient(100deg,#fffdf799,#f2e5cf57);color:#402d1c;font-family:var(--serif);font-size:15px;line-height:1.55;letter-spacing:.03em;text-align:left;cursor:pointer;box-shadow:inset 0 1px #fff9;transition:border-color .18s ease,transform .18s ease,background .18s ease,box-shadow .18s ease}.choice-btn:hover,.choice-btn:focus-visible{transform:translateY(-2px);border-color:#a8763aad;background:linear-gradient(100deg,#fffcf5eb,#f4e8d3a8);box-shadow:inset 0 1px #ffffffbf,0 10px 22px #462a102e;outline:none}.choice-btn:active{transform:translateY(0)}.show-dialogue-btn{position:absolute;left:50%;bottom:18px;transform:translate(-50%) translateY(12px);padding:7px 18px;border-radius:999px;border:1px solid rgba(214,178,120,.5);background:#1e140ecc;color:#ecd9b8;font-size:12px;letter-spacing:.1em;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:16}.show-dialogue-btn.is-visible{opacity:1;transform:translate(-50%);pointer-events:auto}.toast-stack{position:absolute;left:50%;bottom:calc(var(--dialogue-h) + 22px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:25;pointer-events:none;width:min(90vw,640px)}.toast{padding:7px 16px;border-radius:999px;background:#1a110bdb;border:1px solid rgba(214,178,120,.32);color:#f0dcba;font-size:12px;letter-spacing:.04em;text-align:center;opacity:0;transform:translateY(8px);transition:opacity .24s ease,transform .24s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 24px #00000059}.toast.show{opacity:1;transform:none}.toast-stats{border-color:#e0bd848c}.toast-good{border-color:#96ba788c}.toast-warn{border-color:#ce8c5a99}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:22px;background:#080503b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s ease}.modal-backdrop.show{opacity:1}.modal-panel{width:min(720px,94vw);max-height:88vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 0%,rgba(255,252,244,.85),transparent 60%),linear-gradient(165deg,#f8efdd,#eddfc8);color:var(--ink);border:1px solid rgba(150,110,60,.45);border-radius:12px;box-shadow:0 30px 80px #0000009e,inset 0 0 0 1px #fff6;transform:translateY(14px) scale(.99);transition:transform .24s cubic-bezier(.2,.8,.3,1.1)}.modal-backdrop.show .modal-panel{transform:none}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px 10px;border-bottom:1px solid rgba(150,110,60,.2)}.modal-eyebrow{margin:0 0 3px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#a1794c}.modal-head h2{margin:0;font-family:var(--serif);font-size:21px;letter-spacing:.1em;color:#4a3220;font-weight:600}.modal-close{width:30px;height:30px;border-radius:50%;border:1px solid rgba(150,110,60,.3);background:#fffaf08c;color:#7a5634;font-size:17px;line-height:1}.modal-close:hover{background:#fffaf0}.modal-body{padding:16px 22px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 22px 18px}.modal-foot:empty{display:none}.confirm-text{margin:4px 0 8px;font-size:14px;line-height:1.8;color:#5a4028}.settings-panel{width:min(860px,95vw)}.settings-panel .modal-body{padding:12px}.settings-sheet{border-radius:8px;background-size:cover;background-position:center;overflow:hidden}.settings-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:14px 20px;padding:18px;background:#faf2e5e6;border-radius:8px}.settings-group{display:flex;flex-direction:column;gap:9px}.settings-group:last-child{grid-column:1 / -1}.settings-group h3{margin:0 0 2px;font-family:var(--serif);font-size:14px;letter-spacing:.12em;color:#7a4f28}.setting-row{display:grid;grid-template-columns:108px 1fr 68px;align-items:center;gap:10px;font-size:12px;color:#5a4028}.setting-row em{font-style:normal;font-size:10px;color:#8e6c48;text-align:right}.setting-row input[type=range]{width:100%;accent-color:#a8703c}.toggle-row{grid-template-columns:1fr auto;cursor:pointer}.toggle-row input{display:none}.toggle-ui{position:relative;width:40px;height:21px;border-radius:999px;background:#785a3c3d;transition:background .2s}.toggle-ui:after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#fffaf0;box-shadow:0 1px 4px #0000004d;transition:transform .2s}.toggle-row input:checked+.toggle-ui{background:#a8703c}.toggle-row input:checked+.toggle-ui:after{transform:translate(19px)}.settings-tip{margin:4px 0 0;font-size:11px;line-height:1.7;color:#8a6a48}.help-body{font-size:13px;line-height:1.9;color:#5a4028}.help-body ul{margin:8px 0 0;padding-left:18px}.help-body li{margin-bottom:4px}.save-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.save-card{padding:12px;border-radius:8px;border:1px solid rgba(150,110,60,.26);background:#fffbf38c}.save-card.is-empty{opacity:.75}.save-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.save-card-head h3{margin:0;font-family:var(--serif);font-size:14px;letter-spacing:.08em;color:#5a3d24}.save-card-head span{font-size:10px;color:#947150}.slot-meta{display:flex;flex-direction:column;gap:2px;margin:8px 0;font-size:11px;line-height:1.6;color:#6f5236}.slot-meta strong{font-size:12px;color:#4f3620}.slot-meta em{font-style:normal;color:var(--wine)}.slot-empty{margin:14px 0;font-size:12px;color:#a08060}.slot-error,.gift-error{margin:6px 0 0;font-size:11px;color:#a34b3d}.save-actions{display:flex;flex-wrap:wrap;gap:5px}.log-panel{width:min(780px,94vw)}.log-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.log-tab{padding:5px 12px;border-radius:999px;border:1px solid rgba(150,110,60,.3);background:transparent;color:#8a6a48;font-size:12px}.log-tab.is-active{background:#a8703c29;border-color:#a8703c99;color:#6b4524}.log-body{max-height:54vh;overflow-y:auto}.log-list,.dialogue-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.log-item{padding:9px 12px;border-left:2px solid rgba(168,112,60,.45);background:#fffbf380;border-radius:0 6px 6px 0}.log-title{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#5a3d24}.log-title span{font-size:10px;color:#987553}.log-choice,.log-detail{margin:3px 0 0;font-size:11px;line-height:1.6;color:#6f5236}.dialogue-log li{padding:7px 10px;border-radius:6px;background:#fffbf36b}.dl-speaker{font-family:var(--serif);font-size:11px;letter-spacing:.12em;color:#9a6f42}.dialogue-log p{margin:2px 0 0;font-size:12px;line-height:1.7;color:#5a4028}.empty-hint{margin:20px 0;text-align:center;font-size:12px;color:#9a7a58}.gallery-panel{width:min(920px,95vw)}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.gallery-card{padding:0;border:1px solid rgba(150,110,60,.3);border-radius:8px;background:#fffbf380;overflow:hidden;text-align:left;transition:transform .16s ease,border-color .16s ease}.gallery-card.is-open:hover{transform:translateY(-2px);border-color:#a8703cb3}.gallery-card.is-locked{background:#785a3c24;border-color:#966e3c6b}.gallery-thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;background:#5a3e2629;overflow:hidden}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.pending-mark{font-family:var(--serif);font-size:13px;letter-spacing:.08em;color:#78522ad1;border:1px dashed rgba(150,106,58,.55);border-radius:999px;padding:5px 12px}.gallery-card.is-pending-asset .gallery-thumb{background:repeating-linear-gradient(135deg,#d6bc9247,#d6bc9247 8px,#ecdbbc57 8px,#ecdbbc57 16px)}.lock-mark{font-family:var(--serif);font-size:34px;color:#5a3e26ad}.gallery-caption{display:flex;flex-direction:column;gap:1px;padding:8px 9px 9px}.gallery-caption strong{font-family:var(--serif);font-size:12px;color:#4f3620;letter-spacing:.04em}.gallery-caption em{font-style:normal;font-size:11px;color:#7a5c3c;line-height:1.5}.unlock-call{margin-top:12px;padding:12px 14px;border:1px dashed rgba(168,112,60,.5);border-radius:8px;background:#fffbf366;display:flex;align-items:center;justify-content:space-between;gap:12px}.unlock-call p{margin:0;font-size:13px;color:#6f5236}.bad-ending-row{margin-top:12px;font-size:11px;color:#947150;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.bad-ending-chip{padding:2px 8px;border-radius:999px;border:1px solid rgba(150,110,60,.3);background:#785a3c1f}.bad-ending-chip.seen{border-color:#7c403880;color:var(--wine)}.hint-toggle{display:flex;gap:6px;margin-bottom:10px}.hint-list{display:flex;flex-direction:column;gap:9px}.hint-item{padding:9px 12px;border-left:2px solid rgba(168,112,60,.45);background:#fffbf380;border-radius:0 6px 6px 0}.hint-item strong{font-family:var(--serif);font-size:13px;color:#4f3620}.hint-item p{margin:3px 0 0;font-size:12px;line-height:1.7;color:#6f5236}.cg-viewer{width:min(1000px,96vw)}.cg-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px}.cg-figure img{max-width:100%;max-height:62vh;object-fit:contain;border-radius:4px;box-shadow:0 14px 40px #3c230f59}.cg-figure figcaption{width:min(560px,100%);text-align:center}.cg-summary{margin:0;font-family:var(--serif);font-size:15px;line-height:1.9;color:#5a3d24;letter-spacing:.04em}.cg-epilogue p{margin:6px 0 0;font-size:12px;line-height:1.8;color:#7a5c3c}.gifts-panel{width:min(820px,95vw)}.gift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gift-card{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:10px;padding:9px 11px;border:1px solid rgba(150,110,60,.26);border-radius:8px;background:#fffbf38c;text-align:left;transition:border-color .16s ease,background .16s ease}.gift-pick:hover{border-color:#a8703cb3;background:#fffaf0}.gift-icon{width:62px;height:66px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#785a3c1a;overflow:hidden}.gift-icon img{width:100%;height:100%;object-fit:contain}.gift-card.is-collar{border-color:#b88c4c8c;background:linear-gradient(100deg,#fff9ebeb,#f6e8d0bf)}.gift-card.is-collar:hover:not(:disabled){border-color:#b88c4ce6}.gift-card.is-locked{opacity:.45}.gift-tag{margin-left:6px;padding:1px 6px;border-radius:999px;font-style:normal;font-size:9px;letter-spacing:.06em;color:#8a5f2f;background:#b88c4c2e;border:1px solid rgba(184,140,76,.35);vertical-align:middle}.gift-collar-desc{margin:3px 0 0;font-size:10px;line-height:1.5;color:#8a5f2f;letter-spacing:.02em}.gift-placeholder{font-size:10px;color:#9a7a58}.gift-info h3{margin:0;font-family:var(--serif);font-size:14px;color:#4f3620;letter-spacing:.06em}.gift-info p{margin:2px 0 0;font-size:10px;line-height:1.55;color:#6f5236}.status-panel{width:min(640px,94vw)}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.status-group h3{margin:0 0 8px;font-family:var(--serif);font-size:14px;letter-spacing:.12em;color:#7a4f28}.status-row{display:grid;grid-template-columns:72px 1fr 34px;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;color:#5a4028}.status-name{letter-spacing:.06em}.status-bar{height:7px;border-radius:999px;background:#785a3c29;overflow:hidden}.status-bar span{display:block;height:100%;background:linear-gradient(90deg,#b78d52,#e3c390);transition:width .4s ease}.status-val{text-align:right;font-family:var(--serif);color:#4f3620}.dayresult-panel{width:min(720px,94vw)}.dresult-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}.dresult-col h3{margin:0 0 8px;font-family:var(--serif);font-size:14px;letter-spacing:.12em;color:#7a4f28}.dresult-row{display:grid;grid-template-columns:62px 1fr 44px;align-items:center;gap:8px;margin-bottom:7px;font-size:12px;color:#5a4028}.dresult-name{letter-spacing:.06em}.dresult-nums{font-family:var(--serif);color:#6f5236}.dresult-delta{text-align:right;font-family:var(--serif);color:#8a6a48}.dresult-delta.up{color:#6f9a58}.dresult-delta.down{color:#b0553f}.dresult-notes{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(150,110,60,.25);font-size:12px;line-height:1.8;color:#6f5236}.dresult-notes p{margin:0 0 4px}.dresult-career{padding:8px 12px;border-radius:8px;margin-bottom:8px!important;font-family:var(--serif);letter-spacing:.02em}.dresult-career.is-good{background:#6f9a581f;color:#5f8846;border:1px solid rgba(111,154,88,.28)}.dresult-career.is-bad{background:#b0553f1f;color:#a04a36;border:1px solid rgba(176,85,63,.3)}.choice-panel{width:min(560px,94vw)}.choice-list{display:flex;flex-direction:column;gap:8px}.choice-card{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border-radius:9px;border:1px solid rgba(154,112,62,.3);background:linear-gradient(100deg,#fffcf6f2,#f6ecdccc);color:#46301e;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}.choice-card:hover{border-color:#a8763abf;background:#fffaf0;transform:translate(3px);box-shadow:0 8px 20px #78502824}.choice-card-index{font-family:var(--serif);font-size:12px;letter-spacing:.06em;color:#b08a58}.choice-card-text{font-family:var(--serif);font-size:15px;letter-spacing:.06em}.dresult-note-list{margin:4px 0 0;padding-left:18px}#ending-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:none}#ending-root.is-visible{display:block}.ending-screen{position:absolute;top:0;right:0;bottom:0;left:0;background:#080503;opacity:0;transition:opacity .6s ease;overflow:hidden}.ending-screen.show{opacity:1}.ending-backdrop{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background-size:cover;background-position:center;filter:blur(22px) brightness(.4);transform:scale(1.1)}.ending-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 38% 45%,transparent 20%,rgba(6,4,2,.55) 80%),linear-gradient(90deg,#06040259,#060402cc)}.ending-layout{position:relative;height:100%;display:flex;align-items:center;justify-content:center;gap:clamp(18px,4vw,60px);padding:4vh 4vw}.ending-figure{margin:0;flex:0 1 auto;max-width:62%;max-height:88vh}.ending-figure img{max-width:100%;max-height:88vh;object-fit:contain;border-radius:4px;box-shadow:0 30px 80px #000000b3}.ending-missing{padding:80px 120px;border:1px dashed rgba(214,178,120,.4);color:var(--gold)}.ending-card{width:min(390px,40vw);padding:26px 26px 22px;border-radius:10px;background:radial-gradient(ellipse at 20% 0%,rgba(255,252,244,.9),transparent 60%),linear-gradient(165deg,#f8efddf5,#eadbc2f0);border:1px solid rgba(180,140,88,.5);box-shadow:0 26px 70px #0000008c;color:#3c2a1b}.ending-eyebrow{margin:0 0 6px;font-size:10px;letter-spacing:.26em;color:#a1794c}.ending-card h1{margin:0 0 8px;font-family:var(--serif);font-size:clamp(24px,3.2vh,34px);letter-spacing:.1em;font-weight:600;color:#4a3018}.ending-summary{margin:0 0 12px;font-size:13px;line-height:1.8;color:#6a4d31}.ending-epilogue p{margin:0 0 6px;font-size:12px;line-height:1.8;color:#7a5c3c}.ending-unlock{margin:12px 0 16px;font-size:11px;letter-spacing:.08em;color:#8a6a3a}.ending-actions{display:flex;flex-wrap:wrap;gap:7px}.bad-end{display:flex;align-items:center;justify-content:center;background:#050303}.bad-end-inner{text-align:center;padding:20px;max-width:640px}.bad-end-eyebrow{margin:0 0 10px;font-size:12px;letter-spacing:.5em;color:#d33b2e}.bad-end-inner h1{margin:0 0 14px;font-family:var(--serif);font-size:clamp(34px,6vh,54px);letter-spacing:.16em;color:#e04333;text-shadow:0 0 30px rgba(224,67,51,.4)}.bad-end-summary{margin:0 0 12px;font-size:16px;line-height:1.9;color:#d8b4a8}.bad-end-epilogue p{margin:0 0 6px;font-size:13px;line-height:1.8;color:#a98a80}.bad-end .ending-actions{justify-content:center;margin-top:18px}.debug-panel .debug-actions,.debug-panel .debug-endings{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.debug-title{margin:10px 0 6px;font-family:var(--serif);font-size:13px;color:#7a4f28}.debug-btn{z-index:300}@keyframes deltaFloat{0%{opacity:0;transform:translateY(4px)}15%{opacity:1;transform:none}70%{opacity:1}to{opacity:0;transform:translateY(-6px)}}@keyframes bobHint{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes callPulse{0%,to{box-shadow:0 0 0 1px #e0bd8466,0 0 10px #e0bd8440}50%{box-shadow:0 0 0 1px #e0bd8499,0 0 22px #e0bd8480}}@media (max-width: 980px){:root{--dialogue-h: clamp(210px, 32vh, 300px)}.choices{left:3%;right:3%;top:auto;bottom:calc(100% + 10px);max-height:min(56vh,460px);padding:14px 16px;gap:10px}.choice-btn{font-size:16px;line-height:1.6;padding:13px 16px;min-height:48px}.choices-prompt{font-size:12px;letter-spacing:.2em}.hud{position:absolute;left:10px;top:66px;width:min(320px,88vw);max-height:calc(100vh - var(--dialogue-h) - 90px)}.char-layer{height:min(52vh,600px)}.sched-row-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dialogue-wrap{width:calc(100vw - 16px);bottom:6px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ending-layout{flex-direction:column;gap:14px;padding:18px;overflow-y:auto;justify-content:flex-start}.ending-figure{max-width:94%;max-height:48vh}.ending-figure img{max-height:48vh}.ending-card{width:min(560px,94vw);padding:18px 20px}}@media (max-width: 820px){.settings-inner{grid-template-columns:1fr}.settings-group:last-child{grid-column:auto}.save-list,.gift-grid,.status-grid,.dresult-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-panel{padding:16px}.sched-row{grid-template-columns:1fr;gap:4px}.sched-row-label{padding-top:0}.schedule-head{flex-direction:column;align-items:flex-start}}@media (max-width: 640px){:root{--dialogue-h: clamp(180px, 26vh, 240px)}.choices{left:2.5%;right:2.5%;bottom:calc(100% + 8px);max-height:min(58vh,480px);padding:12px 14px;gap:9px}.choice-btn{font-size:16.5px;padding:14px 15px;min-height:52px}.topbar{gap:6px;padding:8px 10px}.day-block{gap:4px;white-space:nowrap}.day-num{font-size:16px}.day-total,.scene-chip{display:none}.top-actions{gap:2px}.icon-btn{padding:4px 5px;font-size:10px;white-space:nowrap}.hud{width:210px;padding:10px}.hud-big{font-size:13px}.char-layer{height:min(48vh,480px)}.dialogue-text{font-size:clamp(14px,2.1vw,17px)}.ending-card h1{font-size:24px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
