:root{--font-scale:1;--box-alpha:.82;--midnight:#0b1030;--violet:#8f7cff;--silver:#d8dcf0;--cyan:#9ff3ff;--amber:#ffbe7a;--peach:#ffd0b8;--ink:#f4f2ff;--muted:#a8a6c4;--accent:#c9c2ff;--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);--serif:"Iowan Old Style", "Palatino Linotype", "Noto Serif KR", "Noto Serif JP", "Noto Serif SC", Georgia, serif;--sans:-apple-system, "Segoe UI", "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", "Hiragino Sans", "Noto Sans JP", "PingFang SC", "Noto Sans SC", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.dyslexia{--serif:"Atkinson Hyperlegible", Verdana, "Trebuchet MS", var(--sans)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);font-family:var(--sans);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%;background:#05060c;margin:0;overflow:hidden}#app{width:100%;height:100dvh;position:fixed;top:0;bottom:0;left:0;right:0}#stage{touch-action:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#ui{font-size:calc(16px * var(--font-scale));position:absolute;top:0;bottom:0;left:0;right:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit}html.reduce-motion *,html.reduce-motion :before,html.reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important}#boot{z-index:100;background:radial-gradient(at 50% 30%,#1a1f4d,#05060c 70%);place-content:center;gap:18px;transition:opacity .6s;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}#boot.hide{opacity:0;pointer-events:none}.boot-clock{font:300 56px/1 var(--serif);letter-spacing:.12em;color:var(--cyan);text-align:center;animation:2s infinite pulse}.boot-bar{background:#22284f;border-radius:2px;width:180px;height:2px;overflow:hidden}.boot-bar i{background:var(--cyan);width:40%;height:100%;animation:1.4s infinite slide;display:block}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.layer{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.layer>*{pointer-events:auto}.tap-catcher{pointer-events:auto;position:absolute;top:0;bottom:0;left:0;right:0}.hidden{display:none!important}.fade-in{animation:.35s ease-out both fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hud{top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);pointer-events:none;z-index:5;justify-content:space-between;align-items:flex-start;transition:opacity .3s;display:flex;position:absolute}.hud.hidden-ui{opacity:0}.clock{font:300 22px/1 var(--serif);letter-spacing:.12em;color:var(--silver);text-shadow:0 0 12px #9ff3ff80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;background:#080a1e59;border-radius:8px;min-width:70px;padding:6px 10px}.clock small{font:500 10px/1.4 var(--sans);letter-spacing:.2em;color:var(--muted);text-transform:uppercase;display:block}.autosave-flash{top:calc(var(--safe-top) + 14px);letter-spacing:.2em;color:var(--cyan);opacity:0;pointer-events:none;z-index:6;font-size:11px;transition:opacity .4s;position:absolute;left:50%;transform:translate(-50%)}.autosave-flash.on{opacity:.9}.quickbar{pointer-events:auto;gap:4px;display:flex}@media (max-width:420px){.qb{border-radius:8px;width:32px;height:32px;font-size:9px}.clock{min-width:60px;padding:5px 8px;font-size:18px}}.qb{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:36px;height:36px;color:var(--silver);letter-spacing:.06em;background:#080a1e73;border:1px solid #d8dcf01f;border-radius:10px;place-items:center;font-size:11px;font-weight:600;transition:background .2s,color .2s;display:grid}.qb.on{color:var(--cyan);background:#9ff3ff38;border-color:#9ff3ff80}.qb:active{transform:scale(.94)}.letterbox:before,.letterbox:after{content:"";height:var(--lb,0px);pointer-events:none;z-index:4;background:#000;transition:height .8s;position:absolute;left:0;right:0}.letterbox:before{top:0}.letterbox:after{bottom:0}.textbox-wrap{left:calc(var(--safe-left) + 10px);right:calc(var(--safe-right) + 10px);bottom:calc(var(--safe-bottom) + 14px);z-index:6;max-width:720px;margin:0 auto;transition:opacity .25s,transform .25s;position:absolute}.textbox-wrap.hidden-ui{opacity:0;pointer-events:none;transform:translateY(10px)}.nameplate{font:600 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;background:rgba(10, 12, 34, var(--box-alpha));color:var(--accent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #d8dcf024;border-bottom:0;border-radius:10px 10px 0 0;margin-left:14px;padding:5px 14px;transition:color .3s;display:inline-block}.textbox{background:rgba(10, 12, 34, var(--box-alpha));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-height:118px;font:400 calc(17px * var(--font-scale)) / 1.55 var(--serif);color:var(--ink);border:1px solid #d8dcf024;border-radius:16px;padding:16px 18px 20px;transition:background .5s,border-color .5s;position:relative;box-shadow:0 10px 40px #00000059}.textbox.narration{color:#e2e0f2;font-style:italic}.textbox em{color:var(--cyan);font-style:normal}.textbox.narration em{color:var(--peach)}.textbox .cursor{border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);vertical-align:middle;opacity:.8;width:8px;height:8px;margin-left:6px;animation:1.1s infinite bob;display:inline-block;transform:rotate(45deg)}@keyframes bob{0%,to{transform:translateY(0)rotate(45deg)}50%{transform:translateY(3px)rotate(45deg)}}.textbox-wrap.memory .textbox{background:rgba(20, 30, 70, var(--box-alpha));border-color:#9ff3ff59;box-shadow:0 0 40px #9ff3ff26,inset 0 0 40px #9ff3ff0d}.textbox-wrap.memory .nameplate{background:rgba(20, 30, 70, var(--box-alpha))}.textbox-wrap.echo .textbox{background:rgba(4, 10, 24, var(--box-alpha));font-family:SF Mono,Menlo,Consolas,Noto Sans Mono CJK KR,monospace;font-size:calc(14px * var(--font-scale));letter-spacing:.03em;color:#c9fbff;text-shadow:0 0 8px #9ff3ff66;border-color:#9ff3ff8c}.textbox-wrap.echo .nameplate{color:var(--cyan);font-family:SF Mono,Menlo,Consolas,monospace}.textbox-wrap.phone .textbox{color:#1b1b2a;font-family:var(--sans);font-size:calc(15px * var(--font-scale));background:#f0f0faf0;border-radius:18px;min-height:80px}.textbox-wrap.phone .textbox .cursor{border-color:#5b7cff}.textbox-wrap.phone .nameplate{color:#4a4a6a;background:#f0f0faf0}.textbox-wrap.you .nameplate{color:var(--peach)}.choices{left:calc(var(--safe-left) + 14px);right:calc(var(--safe-right) + 14px);bottom:calc(var(--safe-bottom) + 150px);z-index:7;flex-direction:column;gap:10px;max-width:560px;margin:0 auto;display:flex;position:absolute}@media (min-height:760px){.choices{bottom:calc(var(--safe-bottom) + 170px)}}.choice{color:var(--ink);font:500 calc(15px * var(--font-scale)) / 1.4 var(--sans);text-align:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e102ce0;border:1px solid #d8dcf033;border-radius:14px;align-items:center;gap:12px;padding:14px 18px;transition:background .2s,border-color .2s,transform .1s;animation:.35s ease-out both choiceIn;display:flex}.choice:nth-child(2){animation-delay:60ms}.choice:nth-child(3){animation-delay:.12s}.choice:nth-child(4){animation-delay:.18s}.choice:hover{background:#282e64eb;border-color:#9ff3ff80;outline:none}.choice:focus-visible{background:#282e64eb;border-color:#9ff3ff80;outline:none}.choice:active{transform:scale(.985)}.choice.seen{color:#c9c6e0}.choice .tone{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%;flex:none}.choice .tone.playful{background:#ffbe7a;box-shadow:0 0 10px #ffbe7a}.choice .tone.sincere{background:#9ff3ff;box-shadow:0 0 10px #9ff3ff}.choice .tone.quiet{background:#b7b3d9;box-shadow:0 0 10px #b7b3d9}.choice .tone.romantic{background:#ff9ec7;box-shadow:0 0 10px #ff9ec7}.choice .tone.careful{background:#8fd8cf;box-shadow:0 0 10px #8fd8cf}.choice .tone.curious{background:#c38bff;box-shadow:0 0 10px #c38bff}@keyframes choiceIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.overlay{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 12px) calc(var(--safe-bottom) + 12px) calc(var(--safe-left) + 12px);background:#050610db;flex-direction:column;animation:.25s ease-out both fadeIn;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.overlay.transparent{background:#0506108c}.panel-head{flex:none;justify-content:space-between;align-items:center;padding:6px 4px 12px;display:flex}.panel-head h2{font:300 22px/1.2 var(--serif);letter-spacing:.08em;color:var(--silver);margin:0}.panel-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;padding:4px 2px 20px;overflow-y:auto}.btn{color:var(--ink);font:500 15px/1 var(--sans);letter-spacing:.04em;background:#d8dcf01a;border:1px solid #d8dcf033;border-radius:12px;min-height:44px;padding:12px 18px;transition:background .2s}.btn:hover{background:#d8dcf033;outline:none}.btn:focus-visible{background:#d8dcf033;outline:none}.btn.danger{color:#ffb3c0;border-color:#ff788c80}.btn.small{min-height:36px;padding:8px 12px;font-size:13px}.btn:disabled{opacity:.4;cursor:default}.icon-btn{width:40px;height:40px;color:var(--silver);background:#d8dcf014;border-radius:50%;place-items:center;font-size:20px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grow{flex:1}.muted{color:var(--muted);font-size:13px}.small{font-size:12px}.toast{left:50%;bottom:calc(var(--safe-bottom) + 190px);color:var(--cyan);letter-spacing:.06em;z-index:60;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#14183ceb;border:1px solid #9ff3ff59;border-radius:999px;max-width:90vw;padding:10px 18px;font-size:13px;animation:.3s ease-out both toastIn;position:absolute;overflow:hidden;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.menu{z-index:10;padding:calc(var(--safe-top) + 20px) calc(var(--safe-right) + 22px) calc(var(--safe-bottom) + 26px) calc(var(--safe-left) + 22px);background:linear-gradient(#05061000 35%,#0506109e 80%);flex-direction:column;justify-content:flex-end;animation:.6s ease-out both fadeIn;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.title-block{text-align:left;margin:auto 0 26px}.menu.morning .title-time{color:#fff3e0;text-shadow:0 0 30px #ffdcb499}.title-name{font:300 26px/1.2 var(--serif);letter-spacing:.22em;text-transform:uppercase;color:var(--silver);margin-top:6px}.title-sub{letter-spacing:.25em;color:var(--muted);text-transform:uppercase;margin-top:10px;font-size:11px}.menu-list{flex-direction:column;gap:8px;max-width:420px;display:flex}.menu-item{color:var(--ink);font:500 15px/1 var(--sans);letter-spacing:.1em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;background:#0a0c228c;border:1px solid #d8dcf024;border-radius:12px;justify-content:space-between;align-items:center;padding:13px 16px;transition:background .2s,border-color .2s,transform .1s;display:flex}.menu-item:hover{background:#282e64b3;border-color:#9ff3ff80;outline:none}.menu-item:focus-visible{background:#282e64b3;border-color:#9ff3ff80;outline:none}.menu-item:active{transform:scale(.99)}.menu-item.primary{background:linear-gradient(135deg,#9ff3ff40,#8f7cff40);border-color:#9ff3ff99}.menu-item:disabled{opacity:.35}.menu-item .hint{letter-spacing:.05em;color:var(--muted);font-size:11px}.menu-item.new-memories{background:linear-gradient(135deg,#ffbe7a40,#ff96aa33);border-color:#ffbe7a99}.legal{color:var(--muted);max-width:460px;margin-top:16px;font-size:10px;line-height:1.5}.lang-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.lang-btn{color:var(--muted);background:#0a0c2280;border:1px solid #d8dcf033;border-radius:999px;padding:7px 12px;font-size:13px}.lang-btn.on{color:var(--cyan);border-color:#9ff3ff99}.first-launch{text-align:center;justify-content:center;align-items:center;gap:18px}.first-launch h1{font:200 44px/1.1 var(--serif);letter-spacing:.1em;color:var(--cyan);margin:0}.lang-grid{grid-template-columns:1fr 1fr;gap:10px;width:min(360px,90vw);display:grid}.lang-grid .btn{padding:18px;font-size:17px}.setting{border-bottom:1px solid #d8dcf014;justify-content:space-between;align-items:center;gap:12px;padding:12px 4px;display:flex}.setting label{flex:1;font-size:15px}.setting .desc{color:var(--muted);margin-top:2px;font-size:12px;display:block}.setting input[type=range]{width:140px;accent-color:var(--cyan)}.seg{border:1px solid #d8dcf033;border-radius:10px;display:flex;overflow:hidden}.seg button{color:var(--muted);background:#d8dcf00a;padding:8px 12px;font-size:13px}.seg button.on{color:var(--cyan);background:#9ff3ff2e}.toggle{background:#d8dcf026;border-radius:14px;flex:none;width:50px;height:28px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle.on{background:#9ff3ff99}.toggle.on:after{transform:translate(22px)}.section-title{letter-spacing:.25em;text-transform:uppercase;color:var(--cyan);margin:18px 4px 6px;font-size:11px}.slot{text-align:left;background:#d8dcf00f;border:1px solid #d8dcf01f;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:74px;margin-bottom:8px;padding:10px;display:flex}.slot:hover{background:#d8dcf01f;outline:none}.slot:focus-visible{background:#d8dcf01f;outline:none}.slot.empty{color:var(--muted)}.slot .thumb{background:#1a1c3a;border-radius:8px;flex:none;width:64px;height:64px;overflow:hidden}.slot .thumb canvas{object-fit:cover;width:100%;height:100%}.slot .info{flex:1;min-width:0}.slot .info b{letter-spacing:.08em;font-size:14px;display:block}.slot .info span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.slot .del{color:#ffb3c0;padding:8px;font-size:12px}.log-entry{font-family:var(--serif);border-bottom:1px solid #d8dcf014;padding:10px 6px;font-size:15px;line-height:1.5}.log-entry b{font:600 11px/1.6 var(--sans);letter-spacing:.15em;text-transform:uppercase;display:block}.log-entry.choice{color:var(--amber);font-style:italic}.log-entry.narration{color:#cfcde0;font-style:italic}.tabs{flex:none;gap:6px;margin-bottom:12px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;border:1px solid #d8dcf033;border-radius:999px;padding:8px 14px;font-size:13px}.tab.on{color:var(--cyan);background:#9ff3ff1f;border-color:#9ff3ff99}.grid2{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.card{text-align:left;background:#d8dcf00f;border:1px solid #d8dcf01f;border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.card .art{aspect-ratio:9/16;background:#14163a;place-items:center;font-size:34px;display:grid;position:relative;overflow:hidden}.card .art canvas,.card .art img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.card .art.locked{filter:grayscale()brightness(.5)}.card .cap{padding:8px 10px 10px;font-size:12px;line-height:1.35}.card .cap b{letter-spacing:.06em;font-size:13px;display:block}.card .cap span{color:var(--muted)}.card.wide{flex-direction:row;align-items:center;gap:10px;padding:10px}.card.wide .badge{background:#d8dcf014;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.progress{background:#d8dcf01f;border-radius:2px;height:4px;margin:8px 0 14px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--cyan), var(--violet));height:100%;display:block}.cg-view{z-index:40;background:#000;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.cg-view canvas,.cg-view img{object-fit:contain;max-width:100%;max-height:100%}.ending-symbols{flex-wrap:wrap;gap:8px;margin:6px 0 14px;display:flex}.ending-symbols span{filter:grayscale()opacity(.4);background:#d8dcf00f;border:1px solid #d8dcf024;border-radius:50%;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.ending-symbols span.on{filter:none;border-color:#9ff3ff99;box-shadow:0 0 14px #9ff3ff4d}.chapter-card{z-index:30;text-align:center;background:#050610d9;place-content:center;animation:.6s both fadeIn;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.chapter-card .kicker{letter-spacing:.35em;color:var(--cyan);text-transform:uppercase;margin-bottom:12px;font-size:11px}.chapter-card h1{font:200 34px/1.3 var(--serif);letter-spacing:.1em;color:var(--silver);margin:0;padding:0 24px}.name-entry{text-align:center;justify-content:center;align-items:center;gap:16px}.name-entry input{width:min(320px,85vw);color:var(--ink);font:400 22px/1.2 var(--serif);text-align:center;letter-spacing:.05em;background:#0a0c22cc;border:1px solid #9ff3ff80;border-radius:12px;outline:none;padding:14px 16px}.name-entry .phone-msg{color:#1b1b2a;background:#f0f0faf0;border-radius:16px;max-width:320px;padding:12px 18px;font-size:15px}.cinematic{z-index:35;background:#000;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.cinematic video{object-fit:cover;width:100%;height:100%}.cinematic .skip{right:calc(var(--safe-right) + 16px);bottom:calc(var(--safe-bottom) + 16px);color:var(--muted);letter-spacing:.2em;padding:10px;font-size:12px;position:absolute}.cinematic .caption{text-align:center;font:300 20px/1.4 var(--serif);letter-spacing:.08em;color:var(--silver);text-shadow:0 2px 20px #000;padding:0 24px;animation:1.2s both fadeIn;position:absolute;bottom:18%;left:0;right:0}.credits{z-index:8;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.credits .roll{text-align:center;animation:creditsRoll var(--credits-dur,60s) linear forwards;text-shadow:0 2px 16px #000;padding:0 24px;position:absolute;top:100%;left:0;right:0}.credits.done .roll{animation-play-state:paused}@keyframes creditsRoll{to{transform:translateY(calc(-100% - 100vh))}}.credits h1{font:200 30px/1.3 var(--serif);letter-spacing:.2em;color:var(--cyan);margin:0 0 30px}.credits h2{font:500 11px/1.4 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:34px 0 8px}.credits p{font:400 16px/1.5 var(--serif);color:var(--silver);margin:4px 0}.credits .legal-block{color:var(--muted);max-width:420px;font-size:11px;line-height:1.5;font-family:var(--sans);margin:26px auto 0}.credits.with-dialogue .roll{bottom:auto}.credits-skip{top:calc(var(--safe-top) + 14px);right:calc(var(--safe-right) + 14px);color:var(--muted);letter-spacing:.2em;pointer-events:auto;z-index:9;padding:10px;font-size:12px;position:absolute}.hub{z-index:5;touch-action:pan-y;position:absolute;top:0;bottom:0;left:0;right:0}.hub-spot{color:var(--ink);letter-spacing:.12em;text-transform:uppercase;pointer-events:auto;flex-direction:column;align-items:center;gap:6px;font-size:12px;transition:opacity .3s;display:flex;position:absolute;transform:translate(-50%,-100%)}.hub-spot .pin{background:#0a0c228c;border:1.5px solid #9ff3ffcc;border-radius:50%;place-items:center;width:34px;height:34px;font-size:15px;animation:2.4s infinite pinPulse;display:grid;box-shadow:0 0 16px #9ff3ff59}.hub-spot.done .pin{box-shadow:none;opacity:.8;border-color:#d8dcf059;animation:none}.hub-spot .tag{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#0a0c22b3;border-radius:999px;padding:4px 9px}@keyframes pinPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.hub-bubble{color:#1b1b2a;max-width:200px;font:400 13px/1.35 var(--sans);pointer-events:none;z-index:6;background:#f4f2fff2;border-radius:14px 14px 14px 3px;padding:8px 12px;animation:.3s ease-out both bubbleIn;position:absolute;transform:translate(-50%,-100%);box-shadow:0 6px 20px #00000059}.hub-bubble b{letter-spacing:.15em;text-transform:uppercase;margin-bottom:2px;font-size:10px;display:block}.hub-bubble.out{animation:.3s ease-in both bubbleOut}@keyframes bubbleIn{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes bubbleOut{to{opacity:0}}.hub-hint{left:50%;top:calc(var(--safe-top) + 64px);letter-spacing:.2em;color:var(--muted);text-transform:uppercase;pointer-events:none;white-space:nowrap;font-size:12px;position:absolute;transform:translate(-50%)}.hub-bar{left:calc(var(--safe-left) + 14px);right:calc(var(--safe-right) + 14px);bottom:calc(var(--safe-bottom) + 18px);z-index:7;justify-content:center;gap:8px;display:flex;position:absolute}.hub-bar .btn{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0c22bf;flex:1;max-width:220px}.hub-scroll{left:50%;bottom:calc(var(--safe-bottom) + 74px);gap:5px;display:flex;position:absolute;transform:translate(-50%)}.hub-scroll i{background:#d8dcf040;border-radius:2px;width:18px;height:3px}.hub-scroll i.on{background:var(--cyan)}.doors-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.door{text-align:center;color:var(--ink);background:#141846b3;border:1px solid #9ff3ff59;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;display:flex;box-shadow:0 0 24px #9ff3ff1f}.door .sym{font-size:30px}.door b{letter-spacing:.12em;text-transform:uppercase;font-size:13px}.door span{color:var(--muted);font-size:11px}.door.done{box-shadow:none;opacity:.55;border-color:#d8dcf026}.minigame{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0506108c;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.minigame .instr{font:300 18px/1.4 var(--serif);letter-spacing:.06em;color:var(--silver);text-align:center;max-width:420px;padding:0 30px}.minigame canvas{touch-action:none;border-radius:18px;max-width:92vw}.rhythm-pad{aspect-ratio:1;touch-action:manipulation;background:radial-gradient(circle,#ff4b5526,#0000 70%);border:2px solid #ff4b5599;border-radius:50%;place-items:center;width:min(300px,76vw);display:grid;position:relative}.rhythm-pad .ring{opacity:0;border:3px solid #fff;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0;transform:scale(2)}.rhythm-pad .core{background:#ff4b55bf;border-radius:50%;width:40%;height:40%;transition:transform 80ms;box-shadow:0 0 30px #ff4b5599}.rhythm-pad.hit .core{transform:scale(1.15)}.rhythm-feedback{letter-spacing:.3em;color:var(--cyan);text-transform:uppercase;height:18px;font-size:13px}.sketch-tools{gap:8px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:36px;height:36px}.swatch.on{border-color:#fff}@media (min-aspect-ratio:1){.textbox-wrap{max-width:760px}.choices{max-width:620px}.menu{padding-left:max(calc(var(--safe-left) + 22px), 8vw)}}@media (max-height:600px){.textbox{min-height:92px;font-size:calc(15px * var(--font-scale));padding:12px 14px 14px}.choices{bottom:calc(var(--safe-bottom) + 122px);gap:6px}.choice{padding:10px 14px}.title-time{font-size:48px}}html.high-contrast .textbox,html.high-contrast .nameplate,html.high-contrast .choice,html.high-contrast .menu-item{background:#000000f5;border-color:#fff}html.high-contrast .textbox{color:#fff}:root{--glass:#0e122c6b;--hair:#e2e8ff38;--display:"Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", "Noto Serif KR", "Noto Serif JP", "Noto Serif SC", Georgia, serif}.hud{top:calc(var(--safe-top) + 12px);left:calc(var(--safe-left) + 16px);right:calc(var(--safe-right) + 14px);align-items:center}.clock{-webkit-backdrop-filter:none;backdrop-filter:none;text-align:left;min-width:0;font:300 21px/1 var(--display);letter-spacing:.16em;color:#eef1ff;text-shadow:0 1px 10px #000000b3,0 0 18px #9ff3ff59;background:0 0;padding:0}.clock small{font:500 8.5px/1.9 var(--sans);letter-spacing:.34em;color:#e2e8ff9e}.quickbar{gap:8px}.qb{background:var(--glass);border:1px solid var(--hair);-webkit-backdrop-filter:blur(10px)saturate(1.2);backdrop-filter:blur(10px)saturate(1.2);color:#eef1ff;border-radius:50%;width:36px;height:36px;font-size:0;box-shadow:0 2px 14px #00000040}.qb:-webkit-any(*){background:var(--glass);border:1px solid var(--hair);-webkit-backdrop-filter:blur(10px)saturate(1.2);backdrop-filter:blur(10px)saturate(1.2);color:#eef1ff;border-radius:50%;width:36px;height:36px;font-size:0;box-shadow:0 2px 14px #00000040}.qb:is(*){background:var(--glass);border:1px solid var(--hair);-webkit-backdrop-filter:blur(10px)saturate(1.2);backdrop-filter:blur(10px)saturate(1.2);color:#eef1ff;border-radius:50%;width:36px;height:36px;font-size:0;box-shadow:0 2px 14px #00000040}.qb svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.qb.on{color:var(--cyan);background:#9ff3ff33;border-color:#9ff3ffbf;box-shadow:0 0 16px #9ff3ff59}.scrim{pointer-events:none;opacity:0;z-index:5;background:linear-gradient(#06081600 0%,#0608168c 38%,#060816e6 100%);height:46%;transition:opacity .5s;position:absolute;bottom:0;left:0;right:0}.scrim.on{opacity:1}.scrim.top{background:linear-gradient(#06081680 0%,#06081600 100%);height:16%;top:0;bottom:auto}.textbox-wrap{left:calc(var(--safe-left) + 22px);right:calc(var(--safe-right) + 22px);bottom:calc(var(--safe-bottom) + 30px);max-width:620px}.nameplate{-webkit-backdrop-filter:none;backdrop-filter:none;font:500 19px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;text-shadow:0 1px 12px #000c;border:0;border-radius:0;align-items:center;gap:10px;margin:0 0 10px;padding:0;display:flex;background:0 0!important}.nameplate:after{content:"";opacity:.55;background:linear-gradient(90deg,currentColor,#0000 85%);flex:1;height:1px}.textbox{-webkit-backdrop-filter:none;backdrop-filter:none;min-height:108px;font:400 calc(16.5px * var(--font-scale)) / 1.62 var(--sans);letter-spacing:.012em;color:#f4f5ff;text-shadow:0 1px 8px #000000d9;border-radius:0;padding:0;box-shadow:none!important;background:0 0!important;border:0!important}.textbox.narration{font:400 calc(17.5px * var(--font-scale)) / 1.6 var(--display);color:#e6e8fa;letter-spacing:.01em;font-style:italic}.textbox em{color:#bfeaff}.textbox .cursor{background:var(--cyan);width:7px;height:7px;box-shadow:0 0 10px var(--cyan);border:0;margin-left:10px;animation:1.4s infinite glint;transform:rotate(45deg)}@keyframes glint{0%,to{opacity:.25;transform:rotate(45deg)scale(.8)}50%{opacity:1;transform:rotate(45deg)scale(1.1)}}.textbox-wrap.memory .textbox{color:#d9f6ff;text-shadow:0 0 14px #9ff3ff73,0 1px 8px #000000d9}.textbox-wrap.echo .textbox{font:400 calc(13.5px * var(--font-scale)) / 1.7 "SF Mono", Menlo, Consolas, "Noto Sans Mono CJK KR", monospace;letter-spacing:.06em;color:#c9fbff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:4px;min-height:92px;padding:14px 16px;background:#040e1c8c!important;border:1px solid #9ff3ff66!important;box-shadow:0 0 30px #9ff3ff1f,inset 0 0 24px #9ff3ff0f!important}.textbox-wrap.echo .nameplate{letter-spacing:.4em;font:600 11px/1 SF Mono,Menlo,Consolas,monospace}.textbox-wrap.phone .textbox{color:#1b1b2a;text-shadow:none;min-height:0;font-size:calc(15.5px * var(--font-scale));border-radius:20px 20px 20px 6px;padding:14px 18px;background:#f4f5fcf5!important;box-shadow:0 10px 40px #0006!important}.textbox-wrap.phone .nameplate{font:600 11px/1 var(--sans);letter-spacing:.22em;color:#e2e8ffcc!important}.textbox-wrap.phone .nameplate:after{display:none}.textbox-wrap.phone .textbox .cursor{box-shadow:none;background:#5b7cff}.choices{left:calc(var(--safe-left) + 22px);right:calc(var(--safe-right) + 22px);gap:12px;max-width:520px;top:50%;bottom:auto;transform:translateY(-8%)}@media (min-height:760px){.choices{bottom:auto}}.choice{-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);font:400 calc(15.5px * var(--font-scale)) / 1.45 var(--sans);letter-spacing:.01em;color:#f6f7ff;background:linear-gradient(100deg,#101434c7,#10143480);border:0;border-left:2px solid #9ff3ffbf;border-radius:3px;gap:0;padding:15px 20px;box-shadow:0 8px 30px #00000059,inset 0 0 0 1px #e2e8ff1a}.choice .tone{display:none}.choice:hover,.choice:active{background:linear-gradient(100deg,#32468ccc,#1e285a8c);border-left-color:#fff}.choice:focus-visible{background:linear-gradient(100deg,#32468ccc,#1e285a8c);border-left-color:#fff}.choice.seen{color:#f6f7ffb8;border-left-color:#e2e8ff59}.menu{padding:calc(var(--safe-top) + 34px) calc(var(--safe-right) + 26px) calc(var(--safe-bottom) + 22px) calc(var(--safe-left) + 26px);background:linear-gradient(#06081673 0%,#06081600 22% 46%,#060816e0 86%);justify-content:space-between}.menu.morning{background:linear-gradient(#281e3c59 0%,#281e3c00 22% 46%,#1e1630d9 86%)}.menu-hero{z-index:-1;background:#070a1a;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.menu-hero img,.menu-hero video{object-fit:cover;object-position:50% 18%;opacity:0;width:100%;height:100%;transition:opacity 1.6s;position:absolute;top:0;bottom:0;left:0;right:0}.menu-hero .show{opacity:1}.title-block{margin:0}.title-time{font:300 64px/.95 var(--display);letter-spacing:.06em;color:#fff;text-shadow:0 0 34px #9ff3ff8c,0 2px 18px #00000080}.title-name{font:400 15px/1.4 var(--display);letter-spacing:.5em;color:#eef1ff;text-shadow:0 1px 12px #000000b3;margin-top:10px}.title-sub{letter-spacing:.42em;color:#e2e8ffb3;margin-top:8px;font-size:9px}.menu-list{gap:0;max-width:340px}.menu-item{-webkit-backdrop-filter:none;backdrop-filter:none;font:400 17px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:#f4f5ffdb;text-shadow:0 1px 10px #000000b3;background:0 0;border:0;border-bottom:1px solid #e2e8ff24;border-radius:0;padding:13px 2px}.menu-item:hover{color:#fff;background:0 0;border-bottom-color:#9ff3ffb3}.menu-item:focus-visible{color:#fff;background:0 0;border-bottom-color:#9ff3ffb3}.menu-item.primary{color:#fff;background:0 0;border-bottom-color:#9ff3ffcc;padding:16px 2px;font-size:21px}.menu-item.primary:before{content:"";background:var(--cyan);width:6px;height:6px;box-shadow:0 0 12px var(--cyan);flex:none;margin-right:14px;transform:rotate(45deg)}.menu-item.primary span:first-of-type{flex:1}.menu-item .hint{font:400 11px/1 var(--sans);letter-spacing:.2em;color:#e2e8ff99}.menu-item.new-memories{color:#ffe3c2;background:0 0;border-bottom-color:#ffbe7acc}.menu-hero-name{right:calc(var(--safe-right) + 22px);top:calc(var(--safe-top) + 40px);writing-mode:vertical-rl;font:400 11px/1 var(--display);letter-spacing:.5em;text-transform:uppercase;color:#f4f5ffb3;position:absolute}.legal{letter-spacing:.02em;color:#e2e8ff80;margin-top:14px;font-size:8.5px;line-height:1.55}.overlay{-webkit-backdrop-filter:blur(22px)saturate(1.2);backdrop-filter:blur(22px)saturate(1.2);padding:calc(var(--safe-top) + 18px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 20px);background:#070918e6}.panel-head h2{font:300 26px/1.2 var(--display);letter-spacing:.22em;text-transform:uppercase}.icon-btn{border:1px solid var(--hair);background:0 0;font-size:15px}.btn{border:1px solid var(--hair);font:500 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;background:#e2e8ff0f;border-radius:3px}.btn.primary{background:#9ff3ff29;border-color:#9ff3ffb3}.section-title{font:500 10px/1 var(--sans);letter-spacing:.4em;margin:26px 2px 8px}.chapter-card{background:radial-gradient(at 50% 45%,#141c46eb,#050610f7 70%)}.chapter-card .kicker{font:500 10px/1 var(--sans);letter-spacing:.6em}.chapter-card h1{font:300 40px/1.25 var(--display);letter-spacing:.14em}.chapter-card h1:after{content:"";background:var(--cyan);width:46px;height:1px;box-shadow:0 0 12px var(--cyan);margin:22px auto 0;display:block}.door{aspect-ratio:3/4;background:linear-gradient(160deg,#181e50b3,#0c0e28b3);border:1px solid #9ff3ff47;border-radius:3px;justify-content:flex-end;padding:0;position:relative;overflow:hidden}.door img{object-fit:cover;object-position:50% 12%;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.door:after{content:"";background:linear-gradient(#06081600 40%,#060816eb 100%);position:absolute;top:0;bottom:0;left:0;right:0}.door b,.door span,.door .sym{z-index:1;position:relative}.door .sym{font-size:16px;position:absolute;top:8px;right:10px}.door b{font:500 16px/1 var(--display);letter-spacing:.24em}.door span{letter-spacing:.06em;padding:0 8px 12px;font-size:10px}.door.done img{filter:grayscale(.8)brightness(.6)}.doors-grid{grid-template-columns:repeat(2,1fr);gap:12px}.hub-spot .pin{background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #9ff3ffcc;width:30px;height:30px;font-size:13px}.hub-spot .tag{-webkit-backdrop-filter:none;backdrop-filter:none;font:500 12px/1 var(--display);letter-spacing:.3em;text-shadow:0 1px 8px #000;background:0 0;padding:0}.hub-bubble{border-radius:3px 14px 14px;font-size:12.5px}.hub-hint{letter-spacing:.34em;color:#e2e8ffbf;text-shadow:0 1px 8px #000;font-size:9.5px}.hub-bar .btn{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:14px}.toast{letter-spacing:.2em;text-transform:uppercase;background:#0a0e24e6;border-radius:3px;font-size:11px}.menu{background:linear-gradient(#06081680 0%,#06081600 24% 40%,#060816d1 66%,#060816f5 100%)}.menu-bottom{flex-direction:column;display:flex}.hud.in-hub .quickbar .qb:not(:last-child){display:none}.slot-row{display:flex;position:relative}.slot-row .slot{flex:1;min-width:0}.slot-row .del{color:#ffffffb3;background:#0a0c1c99;border:1px solid #ffffff29;border-radius:50%;place-items:center;width:32px;height:32px;padding:0;font-size:18px;line-height:1;display:grid;position:absolute;top:8px;right:8px}.slot .thumb img{object-fit:cover;width:100%;height:100%;display:block}.slot .thumb{aspect-ratio:3/4;border-radius:8px;width:54px;height:auto;overflow:hidden}.hub-bar .btn{-webkit-backdrop-filter:blur(14px);letter-spacing:.22em;background:#0c0e226b;border:1px solid #ffffff38;border-radius:999px;font-family:Cormorant Garamond,serif;font-size:14px;font-weight:500}.menu-hero video,.menu-hero img{object-position:50% 18%}.menu-hero img,.menu-hero video{top:11%;-webkit-mask-image:linear-gradient(#0000 0,#000 16%);mask-image:linear-gradient(#0000 0,#000 16%)}.hub-bar .btn{letter-spacing:.14em;white-space:nowrap;font-size:13px}.ending-trio{flex-direction:column;gap:3px;margin-top:5px;display:flex}.ending-trio span{color:#ffffff61;padding-left:14px;font-size:12px;position:relative}.ending-trio span:before{content:"";border:1px solid #ffffff59;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:0;transform:rotate(45deg)}.ending-trio span.on{color:#ffffffeb}.ending-trio span.on:before{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 8px var(--cyan)}
