:root{--serif:"Hiragino Mincho ProN", "YuMincho", "Yu Mincho", "Noto Serif JP", "Noto Serif CJK JP", serif;--ink:#ece6da;--dim-ink:#ece6da99;--faint:#ece6da47;--line:#ece6da52;--blood:#a3222a;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--frame-width:480px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:lang(zh-Hans){--serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", serif}:lang(zh-Hant){--serif:"Songti TC", "Noto Serif TC", "Source Han Serif TC", serif}:lang(ko){--serif:"AppleMyungjo", "Noto Serif KR", serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);font-family:var(--serif);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;background:#000;margin:0;overflow:hidden}#stage,#app,#overlay{width:min(100%, var(--frame-width));height:100%;margin:0 auto;position:fixed;inset:0}#stage{display:block}#overlay{pointer-events:none;z-index:10}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.vertical{writing-mode:vertical-rl;text-orientation:upright}:not(:lang(ja)) .vertical{writing-mode:horizontal-tb}:lang(ja) .title-subtitle{text-orientation:mixed}.screen{padding:calc(var(--safe-top) + 24px) calc(var(--safe-right) + 24px) calc(var(--safe-bottom) + 24px) calc(var(--safe-left) + 24px);opacity:0;flex-direction:column;align-items:center;transition:opacity .6s;display:flex;position:absolute;inset:0}.screen.shown{opacity:1}.screen.leaving{opacity:0;pointer-events:none}.btn{letter-spacing:.3em;min-width:200px;padding:12px 24px;font-size:15px}.btn.framed{border:1px solid var(--line);-webkit-backdrop-filter:blur(2px);background:#00000059}.btn.framed:active,.link:active,.episode-item:active{background:#ece6da14}.link{letter-spacing:.25em;color:var(--dim-ink);padding:10px 14px;font-size:13px}.back-link{left:calc(var(--safe-left) + 16px);top:calc(var(--safe-top) + 12px);letter-spacing:.2em;color:var(--dim-ink);padding:10px;font-size:13px;position:absolute}.title-accent{background:linear-gradient(var(--blood), transparent);width:1px;height:64px;margin:10px auto 0;display:block}.title{text-shadow:0 0 18px #000c;justify-content:space-between}.title-stack{flex-direction:column;align-items:center;margin-top:12vh;display:flex}.title-block{flex-direction:row-reverse;align-items:flex-start;gap:18px;display:flex}:not(:lang(ja)) .title-block{text-align:center;flex-direction:column;align-items:center}.title-subtitle{letter-spacing:.35em;color:var(--dim-ink);margin:8px 0 0;font-size:15px}.title-logo{letter-spacing:.22em;text-shadow:0 0 24px #b4d2ff59,0 0 4px #000000e6;margin:0;font-size:clamp(44px,13vw,64px);font-weight:500}:not(:lang(ja)) .title-logo{letter-spacing:.28em;order:-1;font-size:clamp(36px,11vw,56px)}.title-tagline{letter-spacing:.4em;color:var(--dim-ink);margin:8px 0 0;font-size:13px}.tap-to-start{letter-spacing:.45em;margin:0 0 8vh;font-size:13px;animation:3.2s ease-in-out infinite breathe}.title-footer{bottom:calc(var(--safe-bottom) + 12px);position:absolute}@keyframes breathe{0%,to{opacity:.25}50%{opacity:.85}}.home,.collection{background:linear-gradient(#0000008c,#000000bf)}.home-title{letter-spacing:.4em;margin:48px 0 28px;font-size:22px;font-weight:500}.episode-list{flex-direction:column;gap:10px;width:min(100%,360px);margin:0;padding:0;list-style:none;display:flex}.episode-item{border-top:1px solid var(--line);text-align:left;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:baseline;column-gap:16px;width:100%;padding:16px 18px;display:grid}.episode-item .episode-no{letter-spacing:.2em;color:var(--dim-ink);font-size:12px}.episode-name{letter-spacing:.3em;font-size:22px}.episode-item .episode-meta{grid-column:2}.episode-item.locked{color:var(--faint);cursor:default}.episode-meta{letter-spacing:.15em;color:var(--dim-ink);margin:2px 0;font-size:11px}.home-nav{gap:12px;margin-top:auto;display:flex}.episode{text-shadow:0 0 16px #000000e6;justify-content:space-between}.episode-head{flex-direction:column;align-items:center;margin-top:10vh;display:flex}.episode-head .episode-no{letter-spacing:.4em;color:var(--dim-ink);margin:0 0 14px;font-size:13px}.episode-title{letter-spacing:.2em;text-shadow:0 0 24px #b4d2ff66,0 0 4px #000000e6;margin:0;font-size:clamp(52px,16vw,76px);font-weight:500}.episode-actions{flex-direction:column;align-items:center;gap:12px;margin-bottom:4vh;display:flex}.episode-actions .episode-meta+.btn{margin-top:10px}.episode-chapter{letter-spacing:.25em;color:var(--dim-ink);margin:-4px 0 0;font-size:11px}.collection-list{-webkit-overflow-scrolling:touch;width:min(100%,360px);overflow-y:auto}.collection-episode h2{letter-spacing:.25em;margin:0 0 4px;font-size:16px;font-weight:500}.collection-episode ol{margin:16px 0 32px;padding:0;list-style:none}.collection-episode li{letter-spacing:.15em;border-top:1px solid #ece6da24;gap:18px;padding:12px 4px;display:flex}.collection-episode li.locked{color:var(--faint)}.collection-no{color:var(--dim-ink);white-space:nowrap;min-width:96px;font-size:12px}.kind-bad .collection-no,.kind-special-bad .collection-no{color:#c4555b}.collection .home-title{letter-spacing:.2em}.flow .home-title{margin-bottom:6px}.flow-list{-webkit-overflow-scrolling:touch;width:min(100%,360px);margin:20px 0 32px;padding:0 0 0 4px;list-style:none;overflow-y:auto}.flow-list>li{border-left:1px solid var(--line);letter-spacing:.15em;padding:8px 0 8px 22px;position:relative}.flow-chapter:before,.flow-last:before{content:"";background:var(--dim-ink);border-radius:50%;width:7px;height:7px;position:absolute;top:15px;left:-4px}.flow-chapter{font-size:14px}.flow-chapter.locked,.flow-choice li.locked,.flow-ending.locked{color:var(--faint)}.flow-chapter.locked:before,.flow-last.locked:before{border:1px solid var(--faint);background:0 0}.flow-choice ul{border-left:1px dashed var(--line);margin:2px 0;padding:6px 0 6px 14px;font-size:12px;list-style:none}.flow-choice li{flex-wrap:wrap;gap:4px 14px;padding:4px 0;display:flex}.flow-ending{gap:10px;display:inline-flex}.flow-ending .collection-no{min-width:0}.flow-last{font-size:14px}.game{touch-action:none;padding:0}.pages{pointer-events:none;--ink-blur:6px;--leave-blur:3px;position:absolute;inset:0;overflow:hidden}.pages.muted{visibility:hidden}.page{padding:calc(var(--safe-top) + 72px) calc(var(--safe-right) + 28px) calc(var(--safe-bottom) + 64px) calc(var(--safe-left) + 28px);will-change:transform;flex-direction:column;justify-content:flex-end;gap:14px;display:flex;position:absolute;inset:0}.page.leaving{opacity:0;filter:blur(var(--leave-blur));transition:opacity .6s,filter .6s}.page.leaving .page-text{letter-spacing:.14em;transition:letter-spacing .6s}.page-line{transition:opacity .8s;animation:.45s both line-in}.page-line:not(:last-child){opacity:.62}.page-name{letter-spacing:.3em;opacity:.7;text-shadow:0 0 8px #000000f2;margin-bottom:2px;font-size:11px;display:block}.page-text{letter-spacing:.1em;font-feature-settings:"palt";text-shadow:0 0 6px #000000f2,0 0 16px #000000d9,0 0 28px #0009;margin:0;font-size:16px;line-height:1.8}.page-line.inner .page-text{opacity:.72;font-size:15px}@keyframes line-in{0%{opacity:0}}.page-edge{display:none}@media (hover:hover) and (pointer:fine){.page-edge{top:calc(var(--safe-top) + 64px);bottom:calc(var(--safe-bottom) + 48px);opacity:0;cursor:pointer;justify-content:center;align-items:center;width:14%;font-size:30px;transition:opacity .3s;display:flex;position:absolute}.edge-prev{left:0}.edge-next{right:0}.edge-prev:after{content:"‹"}.edge-next:after{content:"›"}.page-edge:hover{opacity:.45}.game:not(.can-back) .edge-prev,.game:not(.can-forward) .edge-next{visibility:hidden}.wisp,.wisp-layer.armed .wisp-choice{cursor:pointer}}.game.locked .game-corner,.game.locked .menu-hint{opacity:0;pointer-events:none}.page-text .phrase{display:inline-block}:lang(en) .page-text .phrase+.phrase,:lang(ko) .page-text .phrase+.phrase{margin-left:.3em}.page-text .ink{animation:.5s both ink-in;display:inline-block}.page-text .ink.still{animation:none}.page-text .leader{letter-spacing:0;margin-right:.1em}@keyframes ink-in{0%{opacity:0;filter:blur(var(--ink-blur));transform:translateY(2px)}}@media (prefers-reduced-motion:reduce){.page-text .ink{animation:none}}.chapter-line{left:calc(var(--safe-left) + 28px);right:calc(var(--safe-right) + 28px);bottom:calc(var(--safe-bottom) + 18px);height:22px;position:absolute}.chapter-line-track{background:#ece6da24;height:1px;position:absolute;bottom:0;left:0;right:0}.chapter-line-fill{background:#ece6da8c;width:0;height:100%;transition:width .8s;display:block}.chapter-mark{cursor:pointer;background:0 0;border:0;width:24px;height:28px;padding:0;position:absolute;bottom:-6px;transform:translate(-50%)}.chapter-mark:before{content:"";background:#000;border:1px solid #ece6da4d;width:5px;height:5px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.chapter-mark:disabled{cursor:default}.chapter-mark.reached:before{background:#ece6da73;border-color:#ece6da99}.chapter-mark.current:before{border-color:var(--ink);background:var(--ink);box-shadow:0 0 6px #ece6da99}.chapter-peek{--peek-width:132px;left:clamp(calc(var(--peek-width) / 2), var(--at,0%), calc(100% - var(--peek-width) / 2));width:var(--peek-width);opacity:0;pointer-events:none;background:#000000d1;border:1px solid #ece6da38;flex-direction:column;align-items:center;gap:4px;padding:6px 6px 8px;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:30px;transform:translate(-50%,6px)}.chapter-peek.shown{opacity:1;transform:translate(-50%)}.chapter-peek-image{aspect-ratio:16/9;background-size:cover;width:100%;margin-bottom:2px;display:block}.chapter-peek-no{letter-spacing:.3em;color:var(--dim-ink);font-size:10px}.chapter-peek-title{letter-spacing:.2em;font-size:13px}.chapter-card{opacity:0;pointer-events:none;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:18px;transition:opacity 1s;display:flex;position:absolute;inset:0}.chapter-card.shown{opacity:1}.chapter-no{letter-spacing:.5em;color:var(--dim-ink);margin:0;font-size:12px}.chapter-title{letter-spacing:.35em;text-shadow:0 0 18px #ece6da40;margin:0;font-size:30px;font-weight:500}.game-corner{top:calc(var(--safe-top) + 10px);right:calc(var(--safe-right) + 10px);align-items:center;gap:6px;transition:opacity .6s;display:flex;position:absolute}.mode-badge{letter-spacing:.3em;color:var(--faint);border:1px solid #ece6da24;padding:5px 6px 5px 9px;font-size:10px;transition:color .2s,border-color .2s,background .2s}.mode-badge.on{color:#000;border-color:var(--ink);background:var(--ink)}.menu-button{opacity:.35;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;display:flex}.menu-button span{background:var(--ink);width:18px;height:1px;display:block}.menu-hint{top:calc(var(--safe-top) + 64px);right:calc(var(--safe-right) + 18px);letter-spacing:.2em;color:var(--dim-ink);pointer-events:none;margin:0;font-size:11px;animation:7s forwards hint;position:absolute}@keyframes hint{0%,10%{opacity:0}25%,75%{opacity:.8}to{opacity:0}}.wisp-layer{pointer-events:none;opacity:0;background:radial-gradient(#0a143200 25%,#0009 100%);transition:opacity .8s;position:absolute;inset:0}.wisp-layer.open{opacity:1;pointer-events:auto}.wisp-choice{letter-spacing:.16em;text-align:center;text-shadow:0 0 10px #000000f2;max-width:40vw;padding:10px;font-size:15px;line-height:1.7;transition:opacity .6s,color .3s,text-shadow .3s;animation:1.4s backwards choice-in;position:absolute}.slot-upper-left,.slot-upper-right{top:calc(var(--safe-top) + 20vh)}.slot-lower-left,.slot-lower-right,.slot-lower{bottom:calc(var(--safe-bottom) + 18vh)}.slot-upper-left,.slot-lower-left{left:calc(var(--safe-left) + 6vw)}.slot-upper-right,.slot-lower-right{right:calc(var(--safe-right) + 6vw);animation-delay:.2s}.slot-lower{animation-delay:.4s;left:50%;transform:translate(-50%)}.slot-lower-left{animation-delay:.4s}.slot-lower-right{animation-delay:.6s}.wisp-choice.struck{color:#f2f8ff;text-shadow:0 0 6px #a0cdfff2,0 0 22px #4682ffd9,0 0 48px #285aff99}.wisp-choice.dropped{opacity:0}@keyframes choice-in{0%{opacity:0}to{opacity:1}}.wisp{width:46px;height:46px;margin:-23px 0 0 -23px;transition:opacity .5s;position:absolute;top:50%;left:50%}.wisp-orb{background:radial-gradient(circle at 50% 58%,#f4fbff 0%,#a9d4ff 20%,#4a86ff 48%,#467dff8c 76%,#508cff66 100%);border-radius:50%;transition:transform .4s,box-shadow .4s;animation:3.4s ease-in-out infinite wisp-float,1.3s ease-in-out infinite alternate wisp-flicker;position:absolute;inset:0;box-shadow:0 0 22px 6px #508cff66,0 0 60px 18px #285aff33}.wisp-orb:before{content:"";filter:blur(3px);transform-origin:50% 100%;background:radial-gradient(at 50% 80%,#c8e4fff2 0%,#5a91ff99 40%,#285aff00 78%);border-radius:50% 50% 45% 45%/70% 70% 30% 30%;width:30px;height:46px;margin-left:-15px;animation:.9s ease-in-out infinite alternate wisp-tongue;position:absolute;bottom:40%;left:50%}.wisp.armed .wisp-orb{transform:scale(1.25);box-shadow:0 0 26px 10px #78aaff99,0 0 80px 28px #285aff59}.wisp.burst{opacity:0}.wisp.burst .wisp-orb{transform:scale(2.4)}@keyframes wisp-float{0%,to{translate:0}50%{translate:0 -7px}}@keyframes wisp-flicker{0%{opacity:.85}to{opacity:1}}@keyframes wisp-tongue{0%{transform:rotate(-6deg)scaleY(.9)}to{transform:rotate(6deg)scaleY(1.1)}}@media (prefers-reduced-motion:reduce){.wisp-orb,.wisp-orb:before{animation:none}}.ending{justify-content:center;gap:14px}.ending .ending-kind{letter-spacing:.5em;color:var(--dim-ink);margin:0;font-size:12px;animation:2s both choice-in}.ending.kind-bad .ending-kind,.ending.kind-special-bad .ending-kind{color:#c4555b}.ending .ending-no{letter-spacing:.4em;margin:0;font-size:13px;animation:2s .6s both choice-in}.ending-title{letter-spacing:.3em;margin:12px 0 0;font-size:26px;font-weight:500;animation:2.4s 1.2s both choice-in}.ending-new{letter-spacing:.4em;color:#d8c48a;margin:0;font-size:11px;animation:2s 2.2s both choice-in}.ending .btn.later{margin-top:48px;animation:1.5s 3.2s both choice-in}.sheet-backdrop{opacity:0;pointer-events:auto;background:#00000080;justify-content:center;align-items:flex-end;transition:opacity .3s;display:flex;position:absolute;inset:0}.sheet-backdrop.shown{opacity:1}.sheet{width:min(100%,440px);max-height:86vh;padding:22px calc(var(--safe-right) + 22px) calc(var(--safe-bottom) + 18px) calc(var(--safe-left) + 22px);border-top:1px solid var(--line);background:#0a0c12eb;flex-direction:column;transition:transform .3s;display:flex;transform:translateY(16px)}.sheet-backdrop.shown .sheet{transform:none}.sheet h2{letter-spacing:.4em;text-align:center;color:var(--dim-ink);margin:0 0 14px;font-size:14px;font-weight:500}.sheet>div{flex-direction:column;min-height:0;display:flex}.sheet button{letter-spacing:.25em;padding:14px}.game-menu button{border-bottom:1px solid #ece6da1a}.chapter-progress{border-bottom:1px solid #ece6da1a;flex-direction:column;align-items:center;gap:10px;padding:4px 0 16px;display:flex}.chapter-progress p{letter-spacing:.3em;color:var(--dim-ink);margin:0;font-size:13px}.chapter-marks{gap:10px;margin:0;padding:0;list-style:none;display:flex}.chapter-marks li{border:1px solid var(--faint);border-radius:50%;width:6px;height:6px}.chapter-marks li.done{background:var(--dim-ink);border-color:var(--dim-ink)}.chapter-marks li.current{background:var(--ink);border-color:var(--ink);box-shadow:0 0 8px #ece6da99}.game-menu .menu-toggle{justify-content:center;align-items:center;gap:14px;display:flex}.menu-state{min-width:4.2em;color:var(--faint);border:1px solid #ece6da2e;padding:3px 0 3px .25em;font-size:11px;transition:color .2s,border-color .2s,background .2s}.menu-state.active{color:#000;border-color:var(--ink);background:var(--ink)}.confirm p{letter-spacing:.08em;margin:8px 4px 18px;line-height:1.8}.confirm .row{gap:8px;display:flex}.confirm .row button{border:1px solid var(--line);flex:1}.log-list{-webkit-overflow-scrolling:touch;-webkit-user-select:text;user-select:text;min-height:0;max-height:64vh;padding:0 4px 12px;overflow-y:auto}.log-line{border-bottom:1px solid #ece6da12;padding:8px 0}.log-name{letter-spacing:.2em;color:var(--dim-ink);font-size:11px}.log-text{letter-spacing:.06em;margin:4px 0 0;line-height:1.7}.log-line.inner .log-text{opacity:.7}.log-empty{text-align:center;color:var(--dim-ink)}.setting{border-bottom:1px solid #ece6da14;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-label{letter-spacing:.2em;color:var(--dim-ink);white-space:nowrap;font-size:13px}.slider{flex:1;align-items:center;gap:8px;max-width:240px;display:flex}.slider small{color:var(--faint);font-size:10px}.slider input{accent-color:#c9d6ea;flex:1}.choices{gap:6px;display:flex}.sheet .toggle{color:var(--dim-ink);border:1px solid #ece6da2e;padding:6px 14px;font-size:12px}.sheet .toggle.active{color:var(--ink);border-color:var(--ink)}
