@font-face{font-family:"Noto Serif SC";src:url(/assets/story-serif.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;font-family:"Noto Serif SC",Songti SC,STSong,SimSun,serif;color:#ddd6c8;background:#0b141a;font-synthesis:none;--muted: #9c9f97;--warm: #c2b197}*{box-sizing:border-box}html,body{margin:0;min-width:280px;min-height:100%}body{min-height:100svh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,.story-card:focus-visible,.story-body:focus-visible{outline:1px solid #d9c8a9;outline-offset:5px}button:hover{filter:brightness(1.2)}[hidden]{display:none!important}#app{position:relative;isolation:isolate;min-height:100svh;height:100dvh;display:grid;grid-template-rows:64px minmax(0,1fr);padding:env(safe-area-inset-top) 0 max(24px,env(safe-area-inset-bottom));overflow:hidden}.scene,.mist,.vignette{position:fixed;inset:0;pointer-events:none;z-index:-3}.scene{background:#101d25 url(/assets/alley.png) center 55% / cover no-repeat}body:not(.is-playing) .scene{background-image:url(/assets/alley-woman.png)}.vignette{z-index:-1;background:radial-gradient(ellipse at 50% 44%,transparent 10%,#070f1652 55%,#050b13d9 100%),linear-gradient(#07101752,transparent 30%,#050b1270)}.mist{z-index:-2;opacity:.12;background:radial-gradient(ellipse at 40% 65%,#b3c0c466,transparent 48%);animation:mist 25s ease-in-out infinite alternate}.masthead{display:flex;align-items:center;gap:16px;padding:0 4.2vw}.textured-button{position:relative;isolation:isolate;border:0;border-radius:5px;color:#e0d2b8;background:#18272e4d;box-shadow:0 5px 18px #0005;text-shadow:0 1px 2px #000;transition:transform .2s,box-shadow .2s}.choice-label{font-size:15px;letter-spacing:.12em}.reset-button{width:40px;height:40px;padding:10px;border-radius:50%;display:grid;place-items:center}.reset-button svg{width:20px;height:20px}.sound-button{margin-left:auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center}.sound-button{margin-left:auto}.sound-button svg{width:18px;height:18px;opacity:.8}.sound-off{display:none}.is-muted .sound-off{display:block}.is-muted .sound-waves{display:none}main{position:relative;min-height:0}body:not(.is-playing) #app{grid-template-rows:minmax(0,1fr)}body:not(.is-playing) .masthead{display:none}.welcome{display:flex;align-items:flex-end;justify-content:center;height:100%;text-align:center;padding:24px 24px max(12svh,48px)}.enter-button{position:relative;isolation:isolate;display:grid;place-items:center;width:232px;min-height:66px;padding:20px 28px;border:0;border-radius:5px;color:#e0d2b8;background:#18272e4d;box-shadow:0 8px 25px #0007;text-shadow:0 1px 2px #000;font-size:17px;transition:transform .2s,box-shadow .2s}.enter-label{position:relative;letter-spacing:.3em;padding-left:.3em}.textured-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0008}.textured-button:active{transform:translateY(2px);box-shadow:inset 0 2px 8px #030b0f70,0 4px 12px #0006}.game{height:100%;max-width:1400px;margin:0 auto}.stage{position:relative;width:100%;height:100%;min-height:0;--story-panel-height: clamp(180px, 27svh, 290px);--panel-bottom: clamp(16px, 4svh, 36px)}.story-card{position:absolute;left:0;right:0;margin-inline:auto;bottom:clamp(16px,4svh,36px);transform:none;width:min(1120px,calc(100% - 48px));height:var(--story-panel-height);padding:clamp(18px,4vw,42px);border:0;border-radius:8px;background:#050b109e;box-shadow:none;transition:opacity .18s ease;touch-action:pan-y}.story-body{width:100%;height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#9d968455 transparent;overscroll-behavior:contain;touch-action:pan-y}.story-card:not(.has-choice):not(.is-ending){padding-top:54px}.story-text{position:relative;margin:0;font-size:clamp(18px,2.1vw,25px);line-height:1.8;letter-spacing:.035em;color:#e2dacb;overflow-wrap:anywhere;text-align:left;font-weight:400}.story-text.is-typing:after{content:"";display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-.12em;background:#d2b484;animation:caret-blink .8s steps(2,start) infinite}.first-letter{font-size:1.5em;line-height:1}.game-actions{position:absolute;left:0;right:0;bottom:calc(clamp(16px,4svh,36px) + var(--story-panel-height) + 16px);display:flex;justify-content:center;align-items:center;min-height:56px;pointer-events:none}.game-actions>*,.choices button{pointer-events:auto}.choices{width:min(760px,calc(100% - 48px));display:flex;justify-content:space-between;gap:24px}.choices[hidden],.continue-button[hidden],.ending-actions[hidden]{display:none!important}.choice{width:clamp(132px,19vw,190px);min-height:54px;padding:12px 18px;display:grid;place-items:center}.drag-a{box-shadow:-8px 0 28px #a58f5b50,0 18px 36px #0009}.drag-b{box-shadow:8px 0 28px #a58f5b50,0 18px 36px #0009}.restart-button{padding:13px 24px;min-width:164px;min-height:52px;font-size:14px;letter-spacing:.16em}.continue-button{position:absolute;z-index:2;left:50%;bottom:calc(var(--panel-bottom) + var(--story-panel-height) - 28px);transform:translate(-50%);width:94px;height:132px;padding:0;border:0;background:transparent;color:#e1d5ba;touch-action:manipulation}.continue-button svg{width:100%;height:100%;filter:drop-shadow(0 2px 5px #000);animation:forward-breathe 4s ease-in-out infinite}.continue-button:hover svg{color:#fff2d1}@keyframes forward-breathe{0%,to{opacity:.4;transform:translateY(2px) scale(.96)}50%{opacity:.95;transform:translateY(-5px) scale(1.02)}}.headlight-glare{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 48%,#fffef4,#fffdebeb 14%,#eee4c8b5 42%,#c3cbd569 75%,#e5e9e955);transition:opacity 1.3s ease-in}.headlight-glare.is-active{opacity:.96}.story-prop{position:absolute;z-index:4;left:50%;bottom:calc(var(--panel-bottom) + var(--story-panel-height) + 128px);transform:translate(-50%);width:min(430px,78vw,38svh);padding:0;background:transparent;opacity:1;transition:opacity .45s;animation:prop-appear .6s ease-out}.story-prop img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 14px 28px #000a)}.story-prop.is-fading{opacity:0;pointer-events:none}@keyframes prop-appear{0%{opacity:0}to{opacity:1}}.ending-actions{display:flex;align-items:center;gap:20px}.restart-button{color:#cba696}.loop-counter{font-size:11px;color:#e0d9cb;letter-spacing:.05em;white-space:nowrap}.loop-counter b{font:14px Georgia,serif;margin-left:4px}.reset-dialog{width:min(420px,calc(100% - 40px));padding:28px;color:#e2dacb;border:1px solid #aa9978aa;border-radius:8px;background:#0a1217f0;box-shadow:0 20px 80px #000b}.reset-dialog::backdrop{background:#0000009e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.reset-dialog h2,.reset-dialog p{text-align:center}.reset-dialog h2{margin:0 0 12px;font-size:19px;font-weight:500}.reset-dialog h2:focus{outline:none}.reset-dialog p{margin:0;color:#c5c2b8;font-size:14px;line-height:1.8}.dialog-actions{display:flex;justify-content:center;gap:12px;margin-top:26px}.dialog-actions button{min-width:92px;min-height:42px;padding:8px 14px;border:0;background:#18272e4d;text-align:center}.confirm-reset{color:#e3b5a3}.reset-dialog form{margin:0}.reset-dialog:not([open]){display:none}.reset-dialog[open]{margin:auto}@keyframes caret-blink{to{visibility:hidden}}.notice{position:fixed;z-index:10;bottom:26px;left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 32px);padding:12px 20px;border:1px solid #bdb39670;background:#13212af5;color:#ded7c8;font:13px/1.7 sans-serif;box-shadow:0 6px 25px #0008}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.leave-left{transform:translate(-60px) rotate(-7deg);opacity:0}.leave-right{transform:translate(60px) rotate(7deg);opacity:0}.leave-forward{transform:translateY(-10px) scale(.98);opacity:0}.arrive{animation:arrive .22s ease-out}@keyframes arrive{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@keyframes mist{0%{transform:translate(-7%) scale(1.1)}to{transform:translate(7%) scale(1.2)}}@media(max-width:1000px)and (min-width:761px){.choice{width:128px}.choice-a{right:calc(50% + var(--card-width) / 2 + 24px)}.choice-b{left:calc(50% + var(--card-width) / 2 + 24px)}}@media(max-width:760px){#app{grid-template-rows:54px minmax(0,1fr);padding-bottom:max(16px,env(safe-area-inset-bottom))}.masthead{padding:0 23px}.sound-button{width:36px;height:36px}.stage{--story-panel-height: clamp(196px, 30svh, 260px)}.story-card{width:calc(100% - 28px);padding:16px 18px}.story-text{font-size:17px;line-height:1.75}.game-actions{bottom:calc(clamp(16px,4svh,36px) + var(--story-panel-height) + 10px)}.choices{width:calc(100% - 24px);gap:12px}.choice{width:calc(50% - 6px);min-width:0;min-height:48px;padding:10px 8px}.choice-label{font-size:13px;letter-spacing:.08em}.restart-button{padding:10px 18px;min-width:150px;min-height:46px}.ending-actions{gap:12px}.loop-counter{font-size:10px}.continue-button{width:76px;height:112px}.story-prop{bottom:calc(var(--panel-bottom) + var(--story-panel-height) + 100px)}.reset-button{width:36px;height:36px;padding:8px}.enter-button{width:216px;min-height:62px;font-size:16px}}@media(max-height:640px){.welcome{padding-bottom:max(10svh,24px)}}@media(max-height:540px)and (orientation:landscape){body:not(.is-playing) .scene{background-position:center bottom}.welcome{padding-bottom:max(6svh,16px)}#app{grid-template-rows:42px minmax(0,1fr)}.stage{--story-panel-height: clamp(132px, 36svh, 180px)}.story-card{padding:12px 16px}.story-text{font-size:16px;line-height:1.55}.story-card:not(.has-choice):not(.is-ending){padding-top:44px}.continue-button{width:64px;height:88px;bottom:calc(var(--panel-bottom) + var(--story-panel-height) - 22px)}.story-prop{width:min(230px,48svh);bottom:calc(var(--panel-bottom) + var(--story-panel-height) + 66px)}.game-actions{bottom:calc(clamp(16px,4svh,36px) + var(--story-panel-height) + 8px)}.choice{min-height:42px;padding:8px}.enter-button{min-height:54px;padding:14px 24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
