:root{font-family:Noto Sans JP,Hiragino Sans,Yu Gothic,system-ui,sans-serif;color:#f4fbff;background:#07121c;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--panel: rgba(5, 18, 29, .78);--panel-strong: rgba(4, 13, 23, .92);--line: rgba(178, 226, 255, .34);--accent: #83d5ff;--accent-strong: #e6f7ff}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{min-height:42px;border:1px solid var(--line);border-radius:8px;color:#f6fbff;background:#061b2bd1;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}@media (hover: hover) and (pointer: fine){button:hover:not(:disabled),button:focus-visible{border-color:var(--accent);background:#164b6ddb}}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.45}.title-screen,.novel-stage{position:relative;width:100vw;height:100dvh;overflow:hidden;background:#07121c;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}img,.background-image,.character-sprite,.gallery-image-button,.gallery-preview-panel{-webkit-touch-callout:none;-webkit-user-drag:none}.novel-stage input,.title-screen input,.modal-panel input{user-select:text;-webkit-user-select:text}.title-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.22) saturate(1.06)}.bgm-toggle-button{position:absolute;z-index:30;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:inline-flex;width:44px;min-width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#f8fcff;background:#202020b8;box-shadow:0 8px 24px #00000057;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bgm-toggle-button svg{display:block;width:24px;height:24px;fill:currentColor}.bgm-toggle-button.is-off{color:#f5fbffad;background:#141414a3}@media (hover: hover) and (pointer: fine){.bgm-toggle-button:hover,.bgm-toggle-button:focus-visible{border-color:#83d5ffc7;background:#164b6ddb}}.title-character{position:absolute;z-index:1;left:42.5%;bottom:0;width:auto;max-width:none;height:100%;max-height:100%;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 18px 32px rgba(0,0,0,.42));transform:translate(-50%);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.title-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(3,11,18,.16),rgba(3,11,18,.03) 48%,transparent 76%),linear-gradient(0deg,rgba(3,11,18,.1),transparent 46%)}.title-logo-image{position:absolute;z-index:2;top:44%;left:66%;width:auto;height:min(420px,30vw);transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.title-age-notice{position:absolute;z-index:3;left:50%;bottom:calc(clamp(32px,6vh,72px) + 236px);width:min(560px,calc(100vw - 36px));margin:0;color:#fff;font-size:clamp(.78rem,1vw,.98rem);font-weight:700;line-height:1.4;text-align:center;white-space:nowrap;text-shadow:0 2px 5px rgba(0,0,0,.78);transform:translate(-50%);pointer-events:none}.title-about-button{position:absolute;z-index:4;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:inline-flex;width:44px;min-width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:2px solid rgba(232,244,255,.72);border-radius:999px;color:#f8fcff;background:#07151f8f;font-family:Arial,Helvetica,sans-serif;font-size:1.46rem;font-weight:800;line-height:1;text-shadow:0 2px 5px rgba(0,0,0,.72);box-shadow:0 10px 24px #00000052,inset 0 0 0 1px #ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.title-actions{position:absolute;z-index:3;left:50%;bottom:clamp(32px,6vh,72px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(560px,calc(100vw - 36px));gap:4px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transform:translate(-50%);-webkit-backdrop-filter:none;backdrop-filter:none}.title-kicker{margin:0;color:var(--accent);font-size:.82rem;letter-spacing:0;text-transform:uppercase}.title-actions button,.title-menu-button{display:inline-flex;min-height:64px;align-items:center;justify-content:center;border:1px solid rgba(11,11,11,.9);border-radius:2px;color:#f2f2f2;background:#565654e6;font-size:1.36rem;font-weight:800;line-height:1.2;text-align:center;text-decoration:none;text-shadow:0 2px 4px rgba(0,0,0,.72);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.title-comic-button{grid-column:1 / -1}@media (hover: hover) and (pointer: fine){.title-actions button:hover:not(:disabled),.title-actions button:focus-visible,.title-menu-button:hover,.title-menu-button:focus-visible{border-color:#ffffff57;background:#60605eeb}}.title-credit{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#f2f8fcd6;font-size:.84rem;font-weight:700;line-height:1.35;text-align:center;text-decoration:none;text-shadow:0 2px 4px rgba(0,0,0,.72)}.title-credit-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:18px;height:18px;border:1px solid rgba(232,244,255,.74);border-radius:999px;background:#07151f57;box-shadow:inset 0 0 0 1px #ffffff14}.title-credit-icon svg{display:block;width:14px;height:14px;fill:currentColor}@media (hover: hover) and (pointer: fine){.title-credit:hover,.title-credit:focus-visible,.title-about-button:hover,.title-about-button:focus-visible{color:#fff}.title-credit:hover,.title-credit:focus-visible{text-decoration:underline}.title-about-button:hover,.title-about-button:focus-visible{border-color:#ffffffe6;background:#164b6dc2}}@media (min-width: 721px) and (max-width: 1320px){.title-character{bottom:0;width:auto;height:100%}.title-logo-image{top:44%;left:62%;height:min(380px,29vw)}.title-age-notice{bottom:calc(clamp(32px,6vh,72px) + 236px)}}.background-layer,.character-layer{position:absolute;top:0;right:0;bottom:0;left:0}.background-layer{overflow:hidden;transition:filter .35s ease}.background-layer.is-blurred{filter:blur(4px)}.background-fallback{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0a2134eb,#040b13fa),radial-gradient(circle at 50% 28%,rgba(127,210,255,.22),transparent 44%)}.background-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-user-select:none;user-select:none;animation:fade-in .26s ease both}.main-bg{object-fit:cover}.cg-bg{object-fit:contain;background:#050b12}.has-ripple .background-image:last-child{animation:fade-in .26s ease both,ripple-wash 1.8s ease-in-out 1}.has-radial .background-image:last-child{animation:fade-in .4s ease both,radial-flash 2.4s ease-out 1}.sun-shafts{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,238,.34),transparent 22%,transparent 36%,rgba(255,248,204,.22),transparent 58%);mix-blend-mode:screen;opacity:.85}.character-layer{z-index:2;pointer-events:none}.character-sprite{position:absolute;bottom:0;height:min(102dvh,1180px);max-width:86vw;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 18px 28px rgba(0,0,0,.42));animation:fade-in .24s ease both}.character-center{left:50%;transform:translate(-50%)}.character-left{left:22%;transform:translate(-50%)}.character-right{right:22%;transform:translate(50%)}.text-visibility-toggle{position:absolute;z-index:9;top:max(12px,env(safe-area-inset-top));right:calc(max(12px,env(safe-area-inset-right)) + 104px);min-height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:4px;color:#f1f1f1;background:#202020b8;font-size:.94rem;font-weight:800;box-shadow:0 8px 24px #00000057;text-shadow:0 2px 4px rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.text-visibility-toggle.is-active{color:#9feeff;background:#54545480}.game-menu-shell{position:absolute;z-index:9;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:grid;justify-items:end;gap:8px}.game-menu-toggle{min-width:88px;min-height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:4px;color:#f1f1f1;background:#202020b8;font-size:.94rem;font-weight:800;box-shadow:0 8px 24px #00000057;text-shadow:0 2px 4px rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-menu{display:grid;width:min(142px,calc(100vw - 24px));overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:4px;background:#202020c2;box-shadow:0 14px 34px #00000061;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.game-menu button{width:100%;min-height:38px;padding:0 12px;border:0;border-bottom:1px solid rgba(255,255,255,.14);border-radius:0;color:#f1f1f1;background:transparent;font-size:.94rem;font-weight:800;text-align:left;text-shadow:0 2px 4px rgba(0,0,0,.72);-webkit-backdrop-filter:none;backdrop-filter:none}.game-menu button:last-child{border-bottom:0}.game-menu button.is-active{color:#9feeff;background:#54545480}.mobile-only-menu-item{display:none}.text-visibility-toggle:active:not(:disabled),.game-menu-toggle:active:not(:disabled),.game-menu button:active:not(:disabled){transform:none}.message-window{position:absolute;z-index:5;right:0;bottom:0;left:0;width:100%;min-height:clamp(156px,22dvh,232px);padding:34px clamp(28px,13vw,300px) calc(env(safe-area-inset-bottom) + 28px) clamp(28px,22vw,430px);border:0;border-radius:0;background:linear-gradient(0deg,rgba(0,0,0,.66),rgba(0,0,0,.38) 64%,transparent);box-shadow:none;transform:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}.message-window.is-hidden{display:none}.name-plate{position:static;min-width:0;max-width:min(340px,calc(100% + 22px));width:max-content;margin-left:-22px;padding:0;overflow:hidden;border:0;border-radius:0;color:#43d9e7;background:transparent;font-size:clamp(1.26rem,2.1vw,1.72rem);font-weight:700;line-height:1.15;text-shadow:0 2px 4px rgba(0,0,0,.72);text-overflow:ellipsis;white-space:nowrap}.name-plate.is-luna{color:#ff68bd}.message-text{min-height:0;margin:0;color:#f8fcff;font-size:clamp(1.24rem,2.15vw,1.68rem);font-weight:700;line-height:1.52;letter-spacing:0;white-space:pre-line;overflow-wrap:anywhere;text-shadow:0 2px 3px rgba(0,0,0,.72),0 0 6px rgba(0,0,0,.32);user-select:none;-webkit-user-select:none}.message-text.has-speaker{margin-top:5px}.message-text.is-italic{color:#f8fcff;font-style:normal}.proceed-mark{display:inline-block;margin-left:10px;color:#ffffffc2;font-size:.76em;animation:pulse .9s ease-in-out infinite}.choice-list{position:absolute;z-index:8;top:50%;left:50%;display:grid;width:min(560px,calc(100vw - 32px));gap:12px;transform:translate(-50%,-50%)}.choice-button{min-height:58px;padding:12px 18px;color:#f8fcff;font-weight:700;background:#082234f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;background:#01060b9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-panel{position:relative;width:min(680px,100%);max-height:min(760px,calc(100dvh - 36px));padding:18px;overflow:visible;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);box-shadow:0 26px 70px #00000073}.input-backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.input-modal{width:min(530px,calc(100vw - 34px));padding:20px;border-color:#3c3c3ce6;border-radius:4px;background:#2b2b29c2;box-shadow:0 18px 42px #00000052,inset 0 0 0 1px #ffffff1a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.modal-header h2{margin:0;font-size:1.12rem;letter-spacing:0}.modal-header button{min-height:38px;padding:0 14px}.modal-footer{display:grid;margin-top:14px}.modal-back-button{width:100%;min-width:0;min-height:54px;border-color:#beecff6b;color:#f5fbff;background:#061b2bbd;font-size:1.08rem;font-weight:800}.icon-close-button{position:absolute;top:-18px;right:-18px;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;min-height:38px;padding:0;border-radius:999px;font-family:Arial,Helvetica,sans-serif;font-size:1.68rem;font-weight:700;line-height:1;text-align:center}.about-modal{display:flex;max-height:min(760px,calc(100dvh - 36px));width:min(620px,100%);flex-direction:column}.about-modal .icon-close-button{right:0;translate:18px 0}.about-modal .modal-header,.about-modal .modal-footer{flex:0 0 auto}.icon-close-mark{display:block;line-height:1;translate:0 2px}.about-content{display:grid;flex:1 1 auto;gap:14px;min-height:0;overflow-y:auto;padding-right:4px;color:#e6f5fb;font-size:.98rem;line-height:1.75;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.about-content p{margin:0}.about-highlight{color:#ff8fca;font-weight:800}.about-content a{color:#ff8fca;font-weight:800;overflow-wrap:anywhere;text-decoration-thickness:1px;text-underline-offset:3px}@media (hover: hover) and (pointer: fine){.about-content a:hover,.about-content a:focus-visible{color:#ffc0e2}}.setting-row,.text-input-row{display:grid;grid-template-columns:110px minmax(0,1fr) 96px;align-items:center;gap:14px;padding:12px 0}.setting-row input[type=range]{width:100%}.setting-group{margin:0;padding:0 0 16px;overflow:visible;border:0;border-bottom:1px solid rgba(178,226,255,.18);border-radius:0;background:transparent}.setting-group+.setting-group{margin-top:18px}.setting-group-header{display:flex;min-height:0;align-items:center;justify-content:space-between;gap:14px;padding:0;border-bottom:0;color:#f8fcff;font-weight:900}.setting-checkbox{position:absolute;opacity:0;pointer-events:none}.setting-checkbox-box{position:relative;display:grid;width:22px;height:22px;place-items:center;border-radius:4px;background:#83d5ffeb;box-shadow:0 0 0 1px #b2e2ff57}.setting-checkbox-box:after{content:"";width:11px;height:7px;border-bottom:4px solid #041929;border-left:4px solid #041929;transform:translateY(-1px) rotate(-45deg)}.setting-checkbox:not(:checked)+.setting-checkbox-box{background:#040f19d1}.setting-checkbox:not(:checked)+.setting-checkbox-box:after{opacity:0}.setting-checkbox:focus-visible+.setting-checkbox-box{outline:2px solid rgba(131,213,255,.82);outline-offset:2px}.setting-group .setting-row{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:14px 0 0}.setting-group .setting-row-value{grid-template-columns:minmax(0,1fr) 112px}.setting-note{margin:8px 0 0;color:#a9cfdf;font-size:.76rem;line-height:1.45}.setting-row span small,.setting-group-header small{display:block;margin-top:3px;color:#a9cfdf;font-size:.74rem;font-weight:500;line-height:1.35}.settings-reset-button{width:auto;min-width:100px;min-height:38px;margin:0;padding:0 14px;font-weight:800}.settings-confirm-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;min-height:42px;margin-top:12px;color:#f8fcff;font-size:.86rem}.settings-confirm-row button{min-height:34px;padding:0 14px}.setting-number{width:100%;min-height:38px;padding:0 50px 0 8px;border:1px solid rgba(178,226,255,.28);border-radius:8px;color:#f8fcff;background:#040f19db;text-align:right}.setting-number-field{position:relative;display:block}.setting-number-field small{position:absolute;top:50%;right:10px;color:#a9cfdf;font-size:.7rem;font-weight:800;line-height:1;transform:translateY(-50%);pointer-events:none}.text-input-row{grid-template-columns:1fr}.text-input-row span{font-size:1.18rem;font-weight:900;text-shadow:0 2px 4px rgba(0,0,0,.72)}.text-input-row input{min-height:50px;padding:0 14px;border:1px solid rgba(0,0,0,.62);border-radius:3px;color:#111;background:#ffffffeb;font-size:1.16rem}.text-input-row input:focus,.text-input-row input:focus-visible{outline:none;border-color:#83d5ffeb;box-shadow:0 0 0 2px #83d5ff7a}.input-modal button[type=submit]{width:100%;margin-top:12px;border-color:#000000d1;border-radius:3px;background:#282827d1;font-size:1.18rem;font-weight:900}.confirm-modal{width:min(420px,calc(100vw - 34px));padding:20px;text-align:center}.confirm-modal h2{margin:0;font-size:1.04rem;line-height:1.55}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.confirm-actions button{min-height:42px;font-weight:800}.slot-list,.backlog-list{display:grid;gap:12px;max-height:min(600px,calc(100dvh - 150px));overflow:auto;padding-right:4px}.backlog-modal{display:flex;flex-direction:column}.backlog-modal .backlog-list{flex:1 1 auto;gap:0;min-height:0;max-height:none}.backlog-modal .modal-footer{flex:0 0 auto}.save-load-modal{font-size:.92rem}.save-load-modal .modal-header{margin-bottom:12px}.save-load-modal .modal-header h2{font-size:1rem}.save-load-modal .modal-header button{min-height:34px;padding:0 12px;font-size:1.46rem}.save-load-modal .modal-header .icon-close-button{width:34px;min-width:34px;padding:0}.save-slot{display:grid;grid-template-columns:124px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(178,226,255,.2);border-radius:8px;background:#ffffff0a}.slot-thumbnail{position:relative;aspect-ratio:1 / 1;overflow:hidden;border:1px solid rgba(178,226,255,.22);border-radius:6px;background:linear-gradient(135deg,#1c567833,#020a12c7),#07121c}.slot-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.slot-thumbnail.is-empty{display:grid;place-items:center;color:#dbeef78f;font-size:.72rem;font-weight:800}.slot-summary{min-width:0}.slot-heading{display:flex;align-items:baseline;min-width:0}.save-slot strong{font-size:.98rem}.save-complete{display:block;width:fit-content;margin-bottom:3px;color:#ff68bd;font-size:.82rem;font-weight:900;text-shadow:0 2px 5px rgba(0,0,0,.58)}.save-slot strong,.save-slot time{display:block}.save-slot time{margin-top:4px;color:#a9cfdf;font-size:.78rem}.save-slot p,.backlog-entry p,.empty-state{margin:7px 0 0;color:#dbeef7;font-size:.86rem;line-height:1.48;white-space:pre-line;overflow-wrap:anywhere}.backlog-entry>p:first-child{margin-top:0}.slot-actions{display:grid;align-content:center;gap:7px;min-width:90px}.slot-actions button{min-height:36px;font-size:.86rem}.backlog-entry{padding:14px;border-bottom:1px solid rgba(178,226,255,.18)}.backlog-entry strong{color:var(--accent)}.backlog-entry strong.is-luna{color:#ff68bd}.gallery-backdrop{z-index:40;align-items:stretch;padding:clamp(12px,2vw,22px)}.gallery-panel{display:flex;width:min(1280px,100%);max-height:calc(100dvh - clamp(24px,4vw,44px));flex-direction:column;gap:12px}.gallery-header{align-items:flex-end;margin-bottom:0}.gallery-header h2{font-size:clamp(1.45rem,2.1vw,2rem);font-weight:900}.gallery-kicker{display:block;margin-bottom:4px;color:var(--accent);font-size:.76rem;font-weight:800;letter-spacing:0}.gallery-header-actions{display:flex;align-items:center;gap:10px}.gallery-counter{display:inline-flex;min-width:76px;min-height:38px;align-items:center;justify-content:center;border:1px solid rgba(190,236,255,.4);border-radius:8px;color:#f8fcff;background:#0c3e5eb8;font-weight:800}.gallery-tools{display:block}.gallery-note{margin:0;padding:2px 0;color:#dbeef7;font-size:.8rem;line-height:1.45}.danger-button{border-color:#ffa99694;background:#952c2beb}.cg-gallery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;min-height:0;overflow:auto;padding:0;scrollbar-color:rgba(131,213,255,.72) rgba(6,27,43,.48);scrollbar-width:thin}.cg-gallery-grid::-webkit-scrollbar{width:10px;height:10px}.cg-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#061b2b7a}.cg-gallery-grid::-webkit-scrollbar-thumb{border:2px solid rgba(6,27,43,.48);border-radius:999px;background:linear-gradient(180deg,#83d5ffeb,#50a2d6c2)}.cg-gallery-grid::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#a2e4fffa,#65bceedb)}.cg-gallery-card{display:grid;min-width:0;padding:0;border:1px solid rgba(178,226,255,.18);border-radius:0;background:#ffffff0b;content-visibility:auto;contain-intrinsic-size:190px 190px}.cg-gallery-card.is-locked{opacity:.74}.gallery-image-button{display:block;width:100%;aspect-ratio:1 / 1;min-height:0;padding:0;overflow:hidden;border:0;border-radius:0;background:#020a12b8;box-shadow:none;cursor:zoom-in}.gallery-image-button img,.gallery-image-missing{display:grid;width:100%;height:100%;place-items:center;border-radius:0;object-fit:cover;background:linear-gradient(135deg,#1c567838,#020a12bd),#07121c;color:#cdefff}.locked-gallery-image{display:grid;width:100%;aspect-ratio:1 / 1;place-items:center;border-radius:0;background:linear-gradient(135deg,#1c567838,#020a12bd),#07121c;color:#cdefff}.gallery-image-button:active img{transform:scale(.99)}.gallery-image-missing{font-size:.8rem}.locked-gallery-image{border:1px dashed rgba(178,226,255,.24)}.locked-gallery-image span{display:grid;width:48px;height:48px;place-items:center;border-radius:999px;color:#f8fcffad;background:#05121d99;font-weight:800}.gallery-preview-backdrop{position:fixed;z-index:44;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(28px,env(safe-area-inset-top)) max(40px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(40px,env(safe-area-inset-left));background:#01060bc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:zoom-out}.gallery-preview-panel{position:relative;display:grid;place-items:center;width:fit-content;max-width:min(96vw,1680px);max-height:min(96dvh,1180px);overflow:visible;padding:0;border:0;border-radius:0;background:#040d17f0;box-shadow:0 28px 80px #00000080;cursor:default;touch-action:none}.gallery-preview-viewport{display:grid;place-items:center;max-width:min(96vw,1680px);max-height:min(96dvh,1180px);overflow:hidden;background:#050b12;touch-action:none}.gallery-preview-image-frame{display:grid;place-items:center;transform-origin:center;touch-action:none;will-change:transform}.gallery-preview-panel img,.gallery-preview-panel .gallery-image-missing{display:block;max-width:min(96vw,1680px);max-height:min(96dvh,1180px);width:auto;height:auto;border-radius:0;object-fit:contain;background:#050b12;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.gallery-preview-image-frame>img,.gallery-preview-image-frame>.gallery-image-missing{overflow:hidden;border:0}.gallery-preview-nav,.gallery-preview-close{position:absolute;z-index:2;display:grid;place-items:center;padding:0;border-color:#beecff8f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gallery-preview-close{top:-16px;right:-16px;width:40px;min-height:40px;border-radius:999px;font-size:1.8rem;font-weight:700;line-height:1;background:#061b2be6}.gallery-preview-nav{top:50%;width:48px;min-height:48px;border-radius:999px;color:#f8fcff;background:#061b2bad;font-size:0;line-height:1;transform:translateY(-50%)}.gallery-preview-nav:before{content:"";position:relative;top:8px;width:10px;height:10px;border-top:4px solid currentColor;border-right:4px solid currentColor}.gallery-preview-nav:active:not(:disabled){transform:translateY(-50%)}.gallery-preview-nav.previous{left:-32px}.gallery-preview-nav.previous:before{left:2px;transform:rotate(-135deg)}.gallery-preview-nav.next{right:-32px}.gallery-preview-nav.next:before{left:-2px;transform:rotate(45deg)}.gallery-preview-count{position:absolute;right:14px;bottom:14px;min-width:58px;padding:6px 10px;border:1px solid rgba(190,236,255,.42);border-radius:8px;color:#f8fcff;background:#040d17b8;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.audio-hint{position:absolute;z-index:7;top:calc(env(safe-area-inset-top) + 14px);left:50%;padding:8px 14px;border:1px solid rgba(190,236,255,.32);border-radius:8px;color:#e8f8ff;background:#05121dc7;transform:translate(-50%);pointer-events:none}.admin-screen{min-height:100dvh;padding:24px;overflow:auto;color:#edf8ff;background:linear-gradient(180deg,#05121df5,#01060bfa),#07121c}.admin-login-panel,.admin-topbar,.admin-editor-panel,.admin-step-list{border:1px solid rgba(178,226,255,.22);border-radius:8px;background:#ffffff0b;box-shadow:0 18px 48px #00000047}.admin-login-panel{display:grid;gap:16px;width:min(460px,100%);margin:12dvh auto 0;padding:22px}.admin-login-panel h1,.admin-topbar h1,.admin-editor-panel h2,.admin-json-editor h2{margin:0}.admin-login-panel label,.admin-fields label{display:grid;gap:8px;color:#a9cfdf;font-size:.86rem;font-weight:700}.admin-login-panel input,.admin-fields input,.admin-fields textarea,.admin-json-editor textarea{width:100%;border:1px solid rgba(178,226,255,.28);border-radius:8px;color:#f8fcff;background:#040f19db}.admin-login-panel input,.admin-fields input{min-height:42px;padding:0 12px}.admin-fields textarea,.admin-json-editor textarea{padding:12px;line-height:1.55;resize:vertical}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px}.admin-topbar span{color:var(--accent);font-size:.74rem;font-weight:900}.admin-topbar nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.admin-topbar a{display:inline-grid;min-height:42px;align-items:center;padding:0 14px;border:1px solid var(--line);border-radius:8px;color:#f6fbff;background:#061b2bd1;text-decoration:none}.admin-status{margin:14px 0;color:#cdefff}.admin-layout{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:16px}.admin-step-list{display:grid;align-content:start;max-height:calc(100dvh - 142px);overflow:auto;padding:8px}.admin-step-list button{display:grid;gap:5px;min-height:52px;align-content:center;padding:9px 10px;border:0;border-bottom:1px solid rgba(178,226,255,.14);border-radius:0;background:transparent;text-align:left;line-height:1.25}.admin-step-list strong{display:block;line-height:1.2}.admin-step-list button.is-active{color:#fff;background:#164b6ddb}.admin-step-list span{display:block;overflow:hidden;color:#a9cfdf;font-size:.78rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.admin-editor-panel{display:grid;gap:18px;min-width:0;padding:18px}.admin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-wide-field{grid-column:1 / -1}.admin-json-editor{display:grid;gap:10px}.admin-json-editor>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-json-editor textarea{min-height:420px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.is-shaking .background-layer,.is-shaking .character-layer{animation:camera-shake .72s ease-in-out infinite;will-change:transform}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}@keyframes camera-shake{0%,to{transform:translateY(0)}25%{transform:translateY(-7px)}50%{transform:translateY(5px)}75%{transform:translateY(-3px)}}@keyframes ripple-wash{0%{filter:contrast(1) saturate(1);transform:scale(1.02)}50%{filter:contrast(1.12) saturate(1.08);transform:scale(1.04)}to{filter:contrast(1) saturate(1);transform:scale(1)}}@keyframes radial-flash{0%{filter:blur(7px) brightness(1.2)}to{filter:blur(0) brightness(1)}}@media (max-width: 720px){.bgm-toggle-button{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));width:38px;min-width:38px;height:38px;min-height:38px}.bgm-toggle-button svg{width:22px;height:22px}.text-visibility-toggle{display:none}.game-menu-shell{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right))}.game-menu{width:min(168px,calc(100vw - 24px))}.game-menu-toggle,.game-menu button{min-height:44px;padding:0 14px;font-size:.86rem}.icon-close-button{top:-14px;right:-14px}.about-modal{max-height:calc(100dvh - 76px - env(safe-area-inset-bottom));overflow:visible}.about-modal .icon-close-button{translate:14px 0}.about-content{gap:12px;font-size:.9rem;line-height:1.68}.save-load-modal{display:flex;max-height:calc(100dvh - 76px);flex-direction:column;overflow:visible}.save-load-modal .slot-list{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto}.save-load-modal .modal-footer{flex:0 0 auto;margin-top:10px}.mobile-only-menu-item{display:block}.message-window{min-height:clamp(126px,18dvh,156px);padding:20px 18px calc(env(safe-area-inset-bottom) + 22px)}.message-text{font-size:.94rem;line-height:1.42}.message-text.has-speaker{margin-top:4px}.name-plate{max-width:100%;margin-left:0;font-size:1rem}.character-sprite{height:min(74dvh,820px);max-width:88vw}.setting-row{grid-template-columns:minmax(0,1fr) 104px;gap:8px 10px;align-items:center;padding:10px 0 14px}.setting-row>span:first-child{grid-column:1 / -1}.setting-group .setting-row>span:first-child{grid-column:auto}.setting-row input[type=range]{min-width:0}.setting-number{min-height:34px;padding-right:48px}.save-slot{grid-template-columns:118px minmax(0,1fr);align-items:start;gap:10px}.save-slot .slot-thumbnail{grid-row:span 2}.save-slot .slot-summary{align-self:center}.slot-actions{grid-template-columns:1fr 1fr;grid-column:2;min-width:0}.gallery-backdrop{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.gallery-panel{max-height:calc(100dvh - 20px);padding:14px}.gallery-header{align-items:stretch}.gallery-kicker{font-size:.62rem}.gallery-header-actions{justify-content:space-between}.settings-confirm-row{grid-template-columns:1fr}.cg-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.gallery-preview-backdrop{padding:max(54px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(72px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.gallery-preview-panel,.gallery-preview-viewport,.gallery-preview-panel img,.gallery-preview-panel .gallery-image-missing{max-width:calc(100vw - 20px);max-height:calc(100dvh - 126px)}.gallery-preview-nav{top:calc(100% + 12px);width:38px;min-height:38px;background:#061b2b85;font-size:0;transform:none}.gallery-preview-nav:active:not(:disabled){transform:none}.gallery-preview-nav:before{top:6px;width:6px;height:6px;border-width:3px}.gallery-preview-nav.previous{left:0}.gallery-preview-nav.previous:before{left:2px;transform:rotate(-135deg)}.gallery-preview-nav.next{right:0;left:auto}.gallery-preview-nav.next:before{left:-2px;transform:rotate(45deg)}.gallery-preview-close{top:-36px;right:-2px;width:38px;min-height:38px}.gallery-preview-count{top:calc(100% + 14px);right:auto;bottom:auto;left:50%;min-width:44px;padding:4px 8px;border-radius:6px;font-size:.82rem;transform:translate(-50%)}.admin-screen{padding:12px}.admin-topbar,.admin-layout{grid-template-columns:1fr}.admin-topbar{display:grid}.admin-topbar nav{justify-content:stretch}.admin-topbar nav>*{flex:1 1 140px}.admin-step-list{max-height:260px}.admin-fields{grid-template-columns:1fr}}@media (orientation: portrait) and (max-width: 720px){.novel-stage{--mobile-dialog-height: clamp(126px, 18dvh, 156px)}.novel-stage .background-layer,.novel-stage .character-layer{top:0;right:0;bottom:0;left:0}.novel-stage .background-image{object-position:center center}.novel-stage .cg-bg{object-fit:contain}.novel-stage .character-sprite{bottom:0;height:min(97dvh,940px);max-width:164vw}.novel-stage .game-menu-shell{top:max(8px,env(safe-area-inset-top))}.novel-stage .message-window{min-height:var(--mobile-dialog-height);max-height:none;overflow:visible}.novel-stage .message-text{min-height:0;max-height:calc(var(--mobile-dialog-height) - 36px);overflow-y:hidden}.novel-stage .choice-list{top:48%}.title-actions{left:50%;right:auto;bottom:max(18px,env(safe-area-inset-bottom));grid-template-columns:repeat(2,minmax(0,1fr));width:min(380px,calc(100vw - 18px));padding:0;transform:translate(-50%)}.title-about-button{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));width:38px;min-width:38px;height:38px;min-height:38px;font-size:1.22rem}.title-actions button,.title-menu-button{min-height:42px;padding:0 8px;font-size:clamp(.86rem,3.2vw,1rem)}.title-actions button:hover:not(:disabled),.title-menu-button:hover{border-color:#0b0b0be6}.title-actions button:hover:not(:disabled),.title-menu-button:hover{background:#565654e6}.title-about-button:hover{border-color:#e8f4ffb8;background:#07151f8f}.title-actions button:active:not(:disabled),.title-menu-button:active,.title-about-button:active{transform:none}.title-character{left:50%;bottom:0;width:auto;height:100%;max-width:none;max-height:100%;transform:translate(-50%)}.title-screen .title-background{object-position:center center;filter:brightness(1.1) saturate(1.04)}.title-screen .title-vignette{background:radial-gradient(circle at 50% 42%,transparent 0 30%,rgba(0,0,0,.16) 62%,rgba(0,0,0,.42) 100%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 32%),linear-gradient(180deg,rgba(0,0,0,.28),transparent 28%)}.title-logo-image{top:51%;left:50%;width:min(290px,calc(100vw - 28px));height:auto}.title-age-notice{left:50%;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 168px);width:calc(100vw - 18px);font-size:clamp(.56rem,1.7vw,.68rem)}}@media (hover: none),(pointer: coarse){button,.title-menu-button,.title-credit,.gallery-preview-nav{transition:none}button:active:not(:disabled),.title-menu-button:active,.gallery-preview-nav:active:not(:disabled){transform:none}.gallery-image-button:active img{transform:none}}
