@font-face{font-family:Pixelify;src:url(./PixelifySans-lrcDQVzA.ttf)format("truetype");font-display:swap}:root{color:#fff0d9;font-synthesis:none;--ink:#36263f;--cream:#fff1d9;--muted:#c5b0cb;--accent:#efc57f;--accent-soft:#ffe4b0;--hud:#2b1e37e8;--joystick-size:124px;background:#271b32;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html{touch-action:pan-y;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}body[data-stage=university],body[data-stage=university-return]{--accent:#c7a8f2;--accent-soft:#ebd9ff}body[data-stage=work]{--accent:#9bd3cd;--accent-soft:#d1efdf}body[data-stage=time],body[data-stage=time-final]{--accent:#eaa5ba;--accent-soft:#ffdae1}body[data-stage=complete]{--accent:#f4d18c;--accent-soft:#fff0c7}[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}p,h1,h2{margin:0}.shell{touch-action:none;width:100%;height:100dvh;margin:0;position:fixed;inset:0}.console,.viewport,#game{width:100%;height:100%;position:absolute;inset:0}.console{isolation:isolate;background:#271b32;overflow:hidden}.viewport{overflow:hidden}.viewport:after{content:"";pointer-events:none;background:linear-gradient(#24182d66,#0000 110px 70%,#24182d33);position:absolute;inset:0;box-shadow:inset 0 0 70px #24182d22}#game,#game canvas{image-rendering:pixelated;display:block;width:100%!important;height:100%!important}.loading{z-index:1;color:var(--cream);letter-spacing:.12em;background:#271b32;flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:17px;display:flex;position:absolute;inset:0}.loading-star{color:var(--accent);font-size:42px}.game-header{z-index:4;top:calc(env(safe-area-inset-top) + 16px);left:calc(env(safe-area-inset-left) + 22px);right:calc(env(safe-area-inset-right) + 22px);pointer-events:none;align-items:center;gap:16px;display:flex;position:absolute}.location{text-shadow:0 2px #271b32;flex:none;min-width:130px}.eyebrow{letter-spacing:.08em;font-size:14px;font-weight:600}.location .eyebrow{color:var(--accent-soft);margin-bottom:5px}.location h1{letter-spacing:.05em;font-size:20px;font-weight:650;line-height:1.35}.header-actions{gap:7px;margin-left:auto;display:flex}.hud-button{pointer-events:auto;width:44px;height:44px;color:var(--cream);background:var(--hud);border:1px solid #d5b4da77;flex:0 0 44px;place-items:center;padding:0;font-size:22px;display:grid;box-shadow:0 3px #20162966}.help-button{font:23px/1 Pixelify,ui-monospace,monospace}.hud-button:hover:not(:disabled){border-color:var(--accent);background:#51385f}.hud-button:disabled{opacity:.4}.timer-panel{z-index:4;top:calc(env(safe-area-inset-top) + 84px);color:var(--cream);background:var(--hud);border:1px solid var(--accent);pointer-events:none;align-items:center;gap:10px;padding:7px 13px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:3px 3px #20162966}.timer-icon{color:var(--accent);font-size:24px;line-height:1}#timer-label{font-size:16px}#timer-value{min-width:68px;color:var(--accent-soft);letter-spacing:.05em;font-variant-numeric:tabular-nums;font:28px/1 Pixelify,ui-monospace,monospace}.toast{z-index:6;top:calc(env(safe-area-inset-top) + 84px);max-width:min(520px,100% - 48px);color:var(--cream);text-align:center;pointer-events:none;background:#36263ff2;border:1px solid #d5b4da88;padding:10px 16px;font-size:16px;line-height:1.5;position:absolute;left:50%;transform:translate(-50%);box-shadow:3px 3px #20162966}body[data-stage=time] .toast,body[data-stage=time-final] .toast{top:calc(env(safe-area-inset-top) + 132px)}.controls{z-index:5;pointer-events:none;position:absolute;inset:0}.movement-block{left:calc(env(safe-area-inset-left) + 24px);bottom:calc(env(safe-area-inset-bottom) + 42px);position:absolute}.joystick{width:var(--joystick-size);height:var(--joystick-size);touch-action:none;-webkit-touch-callout:none;pointer-events:auto;cursor:grab;background:#3b294957;border:2px solid #eed9ee73;border-radius:50%;flex-shrink:0;padding:0;display:block;position:relative;box-shadow:inset 0 3px 10px #271b3244,0 3px #271b3259}.joystick-ring{pointer-events:none;border:1px solid #eed9ee40;border-radius:50%;position:absolute;inset:11px}.joystick-thumb{color:#543449;width:56px;height:56px;transform:translate(var(--stick-x,0px), var(--stick-y,0px));pointer-events:none;background:#e5c3a6ed;border:2px solid #fff1d9c7;border-radius:50%;place-items:center;margin:-28px;font-size:25px;transition:transform .11s ease-out;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 4px #72516c}.joystick.is-active{cursor:grabbing;border-color:var(--accent-soft)}.joystick.is-active .joystick-thumb{background:var(--accent-soft);transition:none}.joystick:disabled{opacity:.35;cursor:default}.movement-caption{color:#f1dfed;text-align:center;white-space:nowrap;pointer-events:none;font-size:14px;position:absolute;top:calc(100% + 10px);left:-30px;right:-30px}.context{left:50%;bottom:calc(env(safe-area-inset-bottom) + 31px);text-align:center;pointer-events:none;text-shadow:0 2px #271b32;width:min(370px,100% - 440px);position:absolute;transform:translate(-50%)}.context small{color:#e0cce6;font-size:14px;display:block}.action-block{right:calc(env(safe-area-inset-right) + 26px);bottom:calc(env(safe-area-inset-bottom) + 28px);align-items:flex-end;gap:13px;display:flex;position:absolute}.action-button{pointer-events:auto;border:2px solid #eed9ee99;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:76px;height:76px;padding:0;display:flex;box-shadow:0 4px #271b3280}.action-button>span{font-size:24px;line-height:1}.action-button strong{letter-spacing:.04em;font-size:16px;font-weight:650;line-height:1.1}.interact-button{color:#f5e8ff;background:#76558dcf;margin-bottom:7px}.fire-button{color:#543449;touch-action:none;-webkit-touch-callout:none;background:#f1cc94eb;border-color:#fff1d9cc;width:84px;height:84px}.fire-button small{font-size:14px;line-height:1.1}.companion-skill-button{color:#314b43;touch-action:none;-webkit-touch-callout:none;background:#b6d6bfe8;border-color:#f4dc9f;gap:2px;width:76px;height:76px;position:absolute;bottom:calc(100% + 12px);right:0}.companion-skill-button>span{font-size:19px}.companion-skill-button strong{font-size:16px}.companion-skill-button small{font-size:14px;line-height:1.1}.action-button:hover:not(:disabled){filter:brightness(1.12)}.action-button:active:not(:disabled),.fire-button.is-active{transform:translateY(3px);box-shadow:0 1px #271b3280}.action-button:disabled{opacity:.3;filter:saturate(.4)}.companion-skill-button:disabled{opacity:.5}.companion-skill-button.is-active{opacity:1;filter:none;color:#254c3d;background:#c5f1d1;border-color:#fff0b3;box-shadow:0 3px #3a6554,0 0 0 3px #d9f0ab40}.qte-active .controls,.qte-active .location{display:none}.qte-panel{z-index:7;left:50%;bottom:calc(env(safe-area-inset-bottom) + 25px);width:min(530px, calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right) - 40px));color:var(--cream);background:#2b1e37f2;border:2px solid #c7a8f2bf;padding:15px 20px 12px;position:absolute;transform:translate(-50%);box-shadow:5px 5px #1c1327a6}.qte-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.qte-heading h2{color:#dfcde5;letter-spacing:.08em;font-size:16px;font-weight:500}#qte-progress{color:var(--accent-soft);font:20px/1 Pixelify,ui-monospace,monospace}#qte-prompt{color:var(--accent-soft);text-align:center;margin:8px 0 11px;font-size:28px;font-weight:650;line-height:1.3}#qte-time{width:100%;height:5px;accent-color:var(--accent);background:#4b3558;border:0;display:block;overflow:hidden}#qte-time::-webkit-progress-bar{background:#4b3558}#qte-time::-webkit-progress-value{background:var(--accent)}#qte-time::-moz-progress-bar{background:var(--accent)}.qte-keys{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:13px;display:grid}.qte-keys button{min-width:0;min-height:54px;color:var(--cream);background:#735587;border:1px solid #d5b4da99;padding:0;font:28px/1 system-ui,sans-serif;box-shadow:0 3px #1c1327a6}.qte-keys button:hover{background:#8a669f}.qte-keys button:active{transform:translateY(2px);box-shadow:0 1px #1c1327a6}.qte-help{text-align:center;color:#dfcde5;margin-top:9px;font-size:16px;line-height:1.6}#chapter-transition{z-index:30;padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));color:var(--cream);opacity:0;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#000;place-items:center;display:grid;position:absolute;inset:0}#chapter-transition-title{letter-spacing:.15em;text-align:center;font-size:clamp(26px,5vw,44px);font-weight:600;line-height:1.4}dialog{touch-action:pan-y;width:min(760px, calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right) - 32px));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);overscroll-behavior:contain;color:var(--ink);background:var(--cream);text-align:left;border:2px solid #d5b4da;margin:auto;padding:22px 26px 20px;overflow:auto;box-shadow:6px 6px #140e1d80}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e132bb8}.modal-topline{min-height:17px;margin-bottom:11px;padding-right:36px}.modal-topline .eyebrow{color:#6a4d70;font-size:14px;line-height:1.65}.modal-close{color:#846b89;background:0 0;border:0;width:44px;height:44px;padding:0;font-size:28px;position:absolute;top:6px;right:7px}.modal-close:hover{color:var(--ink);background:#e6d5dc}.modal-emblem{float:right;image-rendering:pixelated;opacity:.65;filter:grayscale(.7);margin:0 0 10px 16px}dialog h2{letter-spacing:.03em;overflow-wrap:anywhere;margin-bottom:13px;font-size:25px;font-weight:700;line-height:1.3}#modal-body{white-space:pre-line;overflow-wrap:anywhere;font-size:18px;line-height:1.7}#ending-couple{justify-content:center;align-items:center;gap:20px;margin:16px 0;display:flex}#ending-couple img{width:48px;height:72px;image-rendering:pixelated}#ending-couple span{color:#d87591;font-size:32px;line-height:1}#modal-actions{clear:both;gap:8px;margin-top:17px;display:grid}#modal-actions button{min-height:56px;color:var(--ink);text-align:center;background:#ead7aa;border:1px solid #a48b73;padding:11px 15px;font-size:18px;font-weight:600;line-height:1.65;box-shadow:0 3px #cfb69b}#modal-actions button:hover{background:#f3dfb1;border-color:#876272}#modal-actions button:active{transform:translateY(2px);box-shadow:0 1px #cfb69b}#modal-actions .secondary{color:#654d6d;min-height:52px;box-shadow:none;background:0 0;border-color:#a88ba4;font-size:18px;font-weight:400}#modal-footnote{color:#6d546d;margin-top:14px;font-size:14px;line-height:1.65}dialog.question #modal-actions button{text-align:left;overflow-wrap:anywhere;min-width:0}dialog.question #modal-actions .secondary{text-align:center;grid-column:1/-1}dialog .retry{color:#a44761}#modal.dialogue{inset:auto calc(env(safe-area-inset-right) + 16px) calc(env(safe-area-inset-bottom) + 16px) calc(env(safe-area-inset-left) + 16px);width:auto;max-width:1100px;height:min(260px, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px));max-height:none;color:var(--cream);background:#57405e;border:3px solid #f4e6ed;margin:0 auto;padding:16px;position:fixed;overflow:hidden;box-shadow:0 0 0 3px #30263d,inset 0 0 0 2px #a386aa}#modal.dialogue[open]{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:128px minmax(0,1fr);column-gap:20px;display:grid}#modal.dialogue::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1e132b40}#modal.dialogue .modal-topline,#modal.dialogue #modal-footnote{display:none}#modal.dialogue .modal-emblem{float:none;object-fit:contain;opacity:1;filter:none;background:#28243e;border:2px solid #a386aa;grid-area:1/1/4;width:100%;min-width:0;height:100%;min-height:0;margin:0;padding:12px}#modal.dialogue #modal-title{color:#a1e9df;grid-area:1/2;margin:0;font-size:20px;line-height:1.4}#modal.dialogue #modal-body{overscroll-behavior:contain;grid-area:2/2;min-height:0;margin:8px 0;padding-right:8px;overflow-y:auto}#modal.dialogue #modal-actions{grid-area:3/2;justify-content:flex-end;margin:0;display:flex}#modal.dialogue #modal-actions button{min-width:120px;min-height:48px;color:var(--cream);background:#71547e;border:1px solid #c7a8d1;padding:7px 18px;box-shadow:0 3px #30263d}#modal.dialogue #modal-actions button:hover{background:#856393}#modal.game-title{width:100%;max-width:none;height:100dvh;max-height:none;padding:calc(32px + env(safe-area-inset-top)) calc(32px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(32px + env(safe-area-inset-left));color:var(--cream);box-shadow:none;text-align:center;background-color:#271b32;background-image:linear-gradient(#c7a8f208 1px,#0000 1px),linear-gradient(90deg,#c7a8f208 1px,#0000 1px);background-size:32px 32px;border:0;margin:0;position:fixed;inset:0}#modal.game-title[open]{flex-direction:column;align-items:center;display:flex}#modal.game-title::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#271b32}#modal.game-title>*{flex-shrink:0;max-width:100%}#modal.game-title .modal-topline{min-height:0;margin:auto 0 18px;padding:0}#modal.game-title .eyebrow{color:#d9c4f5;font-size:14px}#modal.game-title #modal-title{color:var(--cream);letter-spacing:.12em;text-shadow:4px 4px #754a70;margin-bottom:18px;font-size:clamp(40px,6vw,76px);line-height:1.2}#modal.game-title #modal-body{color:#e7d8ed;max-width:600px;font-size:18px;line-height:1.7}#modal.game-title #modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(380px,100%);margin-top:28px}#modal.game-title #modal-actions button{color:#36263f;overflow-wrap:anywhere;background:#efc57f;border:2px solid #ffe4b0;min-width:0;min-height:56px;font-size:18px;box-shadow:0 4px #795975}#modal.game-title #modal-actions button:first-child{grid-column:1/-1}#modal.game-title #modal-actions .secondary{color:#eadcf2;background:#463052;border:1px solid #9676a7;min-height:52px;font-size:18px;box-shadow:0 3px #1c1327}#modal.game-title #modal-actions button:hover{filter:brightness(1.12)}#modal.game-title #modal-footnote{color:#dfcde5;max-width:520px;margin:24px 0 auto;font-size:14px;line-height:1.65}#rotate-screen{width:100%;max-width:none;height:100%;height:100dvh;max-height:none;padding:calc(28px + env(safe-area-inset-top)) calc(28px + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) calc(28px + env(safe-area-inset-left));color:var(--cream);box-shadow:none;text-align:center;background:#271b32;border:0;margin:0;position:fixed;inset:0}#rotate-screen[open]{flex-direction:column;justify-content:center;align-items:center;display:flex}#rotate-screen::backdrop{background:#271b32}.rotate-icon{width:128px;height:80px;color:var(--accent);flex-shrink:0;margin-bottom:28px}#rotate-screen .eyebrow{color:#bfa7ca}#rotate-screen h2{max-width:340px;color:var(--cream);outline:none;margin:18px 0 14px;font-size:26px}#rotate-description{font-size:18px;line-height:1.65}#rotate-help{color:#dfcde5;max-width:320px;margin-top:24px;font-size:14px;line-height:1.8}@media (min-width:700px){dialog.question #modal-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:980px){.game-header{gap:13px}.location{min-width:120px}}@media (max-height:520px){:root{--joystick-size:112px}.game-header{top:calc(env(safe-area-inset-top) + 10px);left:calc(env(safe-area-inset-left) + 16px);right:calc(env(safe-area-inset-right) + 16px);gap:12px}.location{min-width:108px}.location .eyebrow{display:none}.header-actions{gap:6px}.movement-block{left:calc(env(safe-area-inset-left) + 19px);bottom:calc(env(safe-area-inset-bottom) + 17px)}.movement-caption,.context{display:none}.action-block{right:calc(env(safe-area-inset-right) + 20px);bottom:calc(env(safe-area-inset-bottom) + 19px);gap:11px}.action-button{width:72px;height:72px}.action-button>span{font-size:21px}.fire-button{width:80px;height:80px}.companion-skill-button{width:72px;height:72px;bottom:calc(100% + 10px)}.companion-skill-button>span{font-size:17px}.timer-panel,.toast{left:calc(50% + 20px + (env(safe-area-inset-left) - env(safe-area-inset-right)) / 2);max-width:calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right) - 224px)}.timer-panel{gap:8px;padding:5px 11px}.timer-icon{display:none}.qte-panel{bottom:calc(env(safe-area-inset-bottom) + 14px);padding:11px 16px 10px}#qte-prompt{margin:6px 0 8px}.qte-keys{gap:8px;margin-top:10px}.qte-help{margin-top:7px}dialog{padding:14px 20px 13px}.modal-topline{margin-bottom:7px}.modal-emblem{width:28px;height:28px;margin-left:12px}dialog h2{margin-bottom:9px}#ending-couple{margin:10px 0}#ending-couple img{width:40px;height:60px}#modal-actions{gap:8px;margin-top:12px}#modal-actions button{padding:10px 12px}#modal-footnote{margin-top:10px}#modal.game-title{padding:calc(12px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left))}#modal.game-title .modal-topline{margin-bottom:7px}#modal.game-title #modal-title{text-shadow:3px 3px #754a70;margin-bottom:8px;font-size:clamp(36px,6vw,52px)}#modal.game-title #modal-actions{gap:8px;margin-top:12px}#modal.game-title #modal-actions button{padding:8px 12px}#modal.game-title #modal-footnote{margin-top:8px}}@media (max-width:699px){#modal.dialogue{padding:12px}#modal.dialogue[open]{grid-template-columns:96px minmax(0,1fr);column-gap:12px}#modal.dialogue .modal-emblem{padding:8px}.game-header{left:calc(env(safe-area-inset-left) + 16px);right:calc(env(safe-area-inset-right) + 16px);grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.location{min-width:0}.context{display:none}.action-block{right:calc(env(safe-area-inset-right) + 16px);gap:9px}.movement-block{left:calc(env(safe-area-inset-left) + 16px)}:root{--joystick-size:112px}}@media (display-mode:standalone) and (orientation:landscape) and (max-height:520px){.shell,#modal.game-title{height:100vh;height:100lvh;bottom:auto}}@media (prefers-reduced-motion:reduce){dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.joystick-thumb{transition:none}}
