:root{--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--pad:14px;--glass:#ffffff29;--glass-brd:#ffffff8c;--ink:#4a3b55;--cream:#fff8ee;--bubble:min(13.5vh, 64px);font-family:PingFang SC,Noto Sans SC,Noto Sans CJK SC,Microsoft YaHei,Hiragino Sans GB,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{color:#fff;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#2b2540;width:100%;height:100%;margin:0;padding:0;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#app{position:fixed;top:0;bottom:0;left:0;right:0}#gl{width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#touch-layer{touch-action:none;position:absolute;top:0;bottom:0;left:0;right:0}button{cursor:pointer;touch-action:manipulation;border:0;outline:none;font-family:inherit}.hidden{display:none!important}.glassy{border:1.5px solid var(--glass-brd);-webkit-backdrop-filter:blur(3px);background:radial-gradient(circle at 30% 25%,#ffffffbf 0 7%,#fff0 18%),radial-gradient(circle at 50% 55%,#ffffff14,#ffffff38 70%,#ffffff73 100%);box-shadow:0 4px 14px #28143c40,inset 0 -6px 14px #ffffff2e}#needs{top:calc(var(--pad) + var(--sat));left:calc(var(--pad) + var(--sal));pointer-events:none;gap:10px;display:flex;position:absolute}.need{width:var(--bubble);height:var(--bubble);border-radius:50%;position:relative;overflow:hidden}.need .fill{border-top:1.5px solid #ffffffb3;height:50%;transition:height .6s;position:absolute;bottom:0;left:0;right:0}.need .fill:after{content:"";background:inherit;filter:brightness(1.08);border-radius:50%;height:9px;position:absolute;top:-5px;left:-10%;right:-10%}.need .ico{filter:drop-shadow(0 2px 2px #3c1e3c40);position:absolute;top:15%;bottom:15%;left:15%;right:15%}.need .ico svg{width:100%;height:100%}.need .shine{background:radial-gradient(circle at 30% 22%,#ffffffd9 0 6%,#fff0 16%);border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 0 1.5px #fff9,inset 0 -8px 16px #ffffff1f}.need[data-k=hunger]{background:#ffd6c838;box-shadow:0 0 0 1.5px #ffdcc88c,0 4px 14px #28143c40}.need[data-k=hunger] .fill{background:linear-gradient(#fff3df,#f7cfae)}.need[data-k=sleep]{background:#aabeff38;box-shadow:0 0 0 1.5px #b4c8ff99,0 4px 14px #28143c40}.need[data-k=sleep] .fill{background:linear-gradient(#b9c6f5,#8e9de0)}.need[data-k=love]{background:#ffaac838;box-shadow:0 0 0 1.5px #ffb4d299,0 4px 14px #28143c40}.need[data-k=love] .fill{background:linear-gradient(#ffc4d6,#f592b0)}.need[data-k=curious]{background:#aaf0d238;box-shadow:0 0 0 1.5px #aaf0d299,0 4px 14px #28143c40}.need[data-k=curious] .fill{background:linear-gradient(#c8f3df,#8fd9bb)}.need.low{animation:1s ease-in-out infinite lowpulse}.need.bump{animation:.45s bump}@keyframes lowpulse{50%{box-shadow:0 0 0 2px #ff7878e6,0 0 18px #ff7878cc}}@keyframes bump{40%{transform:scale(1.14)}}#crosshair{pointer-events:none;width:30px;height:30px;transition:transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair i{background:#fff;border-radius:50%;width:5px;height:5px;position:absolute;box-shadow:0 0 4px #00000059}#crosshair i:first-child{top:0;left:12.5px}#crosshair i:nth-child(2){bottom:0;left:12.5px}#crosshair i:nth-child(3){top:12.5px;left:0}#crosshair i:nth-child(4){top:12.5px;right:0}#crosshair b{background:#ffffffe6;border-radius:50%;width:6px;height:6px;position:absolute;top:12px;left:12px}#crosshair.hot{transform:translate(-50%,-50%)scale(1.35)}#crosshair.hot i{background:#fff6c8;box-shadow:0 0 8px #fff3b0}#target-label{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;text-shadow:0 1px 2px #0000004d;background:#3c285061;border:1px solid #ffffff59;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600;transition:opacity .2s;position:absolute;top:calc(50% + 28px);left:50%;transform:translate(-50%)}#target-label.show{opacity:1}#hint{left:50%;bottom:calc(14px + var(--sab));max-width:min(46vw,440px);color:var(--ink);text-align:center;pointer-events:none;background:#fff8eee6;border-radius:16px;padding:7px 16px;font-size:13.5px;font-weight:600;line-height:1.35;transition:opacity .3s;position:absolute;transform:translate(-50%);box-shadow:0 4px 14px #28143c38}#hint:empty{opacity:0}#speech{left:50%;top:calc(19% + var(--sat));color:var(--ink);opacity:0;pointer-events:none;white-space:nowrap;background:#fff;border-radius:20px;padding:9px 18px;font-size:15px;font-weight:700;transition:opacity .25s,transform .25s;position:absolute;transform:translate(-50%,-6px);box-shadow:0 6px 18px #28143c40}#speech:after{content:"";border:8px solid #0000;border-top-color:#fff;border-bottom:0;margin-left:-8px;position:absolute;bottom:-7px;left:50%}#speech.show{opacity:1;transform:translate(-50%)}#speech b{color:#e57d97;margin-right:4px}#toasts{left:50%;top:calc(12px + var(--sat));pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;transform:translate(-50%)}.toast{color:var(--ink);white-space:nowrap;background:linear-gradient(135deg,#fffaf1,#ffeede);border-radius:999px;align-items:center;gap:8px;padding:7px 16px 7px 8px;font-size:14px;font-weight:700;animation:.45s cubic-bezier(.2,1.4,.4,1) both toastIn;display:flex;box-shadow:0 6px 18px #28143c47}.toast .tk{background:#7fd0a8;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:grid}.toast .tk svg{width:16px;height:16px}.toast.unlock .tk{background:#f5b14f}.toast.info .tk{background:#b7a5e0}.toast.out{animation:.35s forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translateY(-14px)scale(.9)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px)scale(.95)}}#board-btn{top:calc(var(--pad) + var(--sat));right:calc(var(--pad) + var(--sar));z-index:3;border-radius:50%;width:50px;height:50px;padding:0;position:absolute}#board-btn .ico{position:absolute;top:9px;bottom:9px;left:9px;right:9px}#board-btn .ico svg{width:100%;height:100%}#board-btn em{color:#fff;text-align:center;background:#ff8fa3;border-radius:10px;min-width:20px;height:20px;padding:0 5px;font-size:12px;font-style:normal;font-weight:800;line-height:20px;position:absolute;top:-3px;right:-3px;box-shadow:0 2px 6px #0003}#board-btn em:empty{display:none}#board-btn.pulse{animation:.5s 3 bump}#task-chip{top:calc(var(--pad) + var(--sat) + 8px);right:calc(var(--pad) + var(--sar) + 60px);white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 2px #00000040;pointer-events:none;background:#3c28506b;border:1px solid #fff6;border-radius:999px;max-width:min(34vw,300px);padding:7px 14px 7px 12px;font-size:13px;font-weight:700;transition:opacity .2s;position:absolute;overflow:hidden}#task-chip .n{color:#6a4520;background:#ffd27a;border-radius:50%;place-items:center;width:19px;height:19px;margin-right:7px;font-size:11.5px;display:inline-grid}#task-chip:empty,.board-open #task-chip{opacity:0}#board{top:calc(var(--pad) + var(--sat) + 58px);right:calc(var(--pad) + var(--sar));width:min(300px,44vw);max-height:calc(100% - var(--sat) - var(--sab) - 86px);color:var(--ink);transform-origin:100% 0;z-index:4;touch-action:pan-y;background:linear-gradient(160deg,#fffaf2 0%,#fff1e4 100%);border-radius:22px;padding:14px 14px 12px;transition:transform .28s cubic-bezier(.2,1.2,.4,1),opacity .2s;position:absolute;overflow-y:auto;box-shadow:0 12px 34px #28143c59,inset 0 0 0 2px #fffc}#board.closed{opacity:0;pointer-events:none;transform:scale(.6)}.board-head{justify-content:space-between;align-items:flex-end;display:flex}.board-title{letter-spacing:1px;font-size:18px;font-weight:800}.board-sub{color:#a08aa8;margin-top:1px;font-size:11.5px;font-weight:600}#board-progress{color:#e2879b;font-size:14px;font-weight:800}.board-bar{background:#f3e1d8;border-radius:4px;height:8px;margin:9px 0 8px;overflow:hidden}.board-bar i{background:linear-gradient(90deg,#ffb3c1,#ffd27a);border-radius:4px;width:0;height:100%;transition:width .5s;display:block}#board-list{margin:0;padding:0;list-style:none}#board-list li{border-radius:12px;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;font-weight:600;line-height:1.25;transition:background .3s;display:flex}#board-list li .c{color:#b9a0bb;border:2px solid #e2cfe0;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:800;display:grid}#board-list li .c svg{width:15px;height:15px}#board-list li.done{color:#a99bb0}#board-list li.done .t{-webkit-text-decoration:line-through #a08caa99;text-decoration:line-through #a08caa99}#board-list li.done .c{background:#7fd0a8;border-color:#7fd0a8}#board-list li.cur{background:#fff3c9;box-shadow:inset 0 0 0 1.5px #ffe08a}#board-list li.cur .c{color:#c98a1a;border-color:#f2b84f}#board-list li .p{color:#d48a9c;white-space:nowrap;margin-left:auto;font-size:11.5px;font-weight:800}#board-list li .tag{color:#7a4f10;white-space:nowrap;background:#ffd27a;border-radius:6px;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:800}.board-foot{color:#b49cb5;text-align:center;margin-top:8px;font-size:11.5px;font-weight:600}#joy{left:calc(36px + var(--sal));bottom:calc(26px + var(--sab));pointer-events:none;opacity:.75;background:radial-gradient(circle,#ffffff14,#fff3);border:1.5px solid #ffffff73;border-radius:50%;width:min(27vh,116px);height:min(27vh,116px);transition:opacity .2s;position:absolute}#joy.active{opacity:1;transition:none}#joy-knob{background:radial-gradient(circle at 35% 30%,#fff,#f3e9ff 60%,#d9cbef);border-radius:50%;width:46%;height:46%;margin:-23% 0 0 -23%;position:absolute;top:50%;left:50%;box-shadow:0 4px 10px #1e0a324d}#joy-label{color:#8a76a8;pointer-events:none;font-size:13px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#joy.locked #joy-label{color:#a08ab8}.no-touch #joy,.no-touch #actions{display:none}#actions{right:calc(18px + var(--sar));bottom:calc(16px + var(--sab));pointer-events:none;width:190px;height:190px;position:absolute}.act{color:#fff;pointer-events:auto;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:58px;height:58px;padding:0;transition:transform .12s;display:flex;position:absolute}.act .ico{width:54%;height:54%}.act .ico svg{filter:drop-shadow(0 1px 2px #00000040);width:100%;height:100%}.act .lbl{text-shadow:0 1px 2px #00000059;margin-top:-1px;font-size:10.5px;font-weight:800}.act:active,.act.pressed{transform:scale(.9)}.act.main{width:min(23vh,94px);height:min(23vh,94px);bottom:0;right:0}.act.main .ico{width:50%;height:50%}.act.main .lbl{font-size:12.5px}.act[data-act=mouth]{bottom:2px;right:min(26vh,108px)}.act[data-act=cry]{bottom:min(26vh,108px);right:4px}.act[data-act=laugh]{bottom:min(20vh,84px);right:min(20vh,84px)}.act.ready{box-shadow:0 0 0 2px #fff4bef2,0 0 22px #fff0aae6}.act.disabled{opacity:.45}#pc-help{right:calc(14px + var(--sar));bottom:calc(12px + var(--sab));color:#ffffffd9;pointer-events:none;background:#321e4659;border-radius:10px;padding:5px 10px;font-size:12px;position:absolute}.touch #pc-help{display:none}#start,#end{z-index:10;background:radial-gradient(#3c285a0d 0%,#28193c8c 100%);place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.start-card,.end-card{text-align:center;border-radius:30px;padding:22px 34px 20px}.start-badge{letter-spacing:2px;background:#ffffff38;border:1px solid #ffffff80;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:800;display:inline-block}#start h1{letter-spacing:4px;color:#fffaf0;text-shadow:0 3px #e79aae,0 6px 22px #50285a73;margin:10px 0 4px;font-size:clamp(28px,8.5vh,46px);font-weight:900}.start-sub{opacity:.95;text-shadow:0 1px 4px #00000059;margin:0 0 18px;font-size:15px;font-weight:600}#start-btn,.end-btns button{color:#7a4a5c;letter-spacing:2px;background:linear-gradient(#fffaf2,#ffe1d6);border-radius:999px;padding:13px 40px;font-size:18px;font-weight:800;animation:2s ease-in-out infinite breathe;box-shadow:0 6px #e9a7b5,0 12px 26px #3c143c59}@keyframes breathe{50%{transform:scale(1.05)}}.start-tip{opacity:.85;text-shadow:0 1px 3px #0006;margin:16px 0 0;font-size:12.5px;line-height:1.6}#start.leaving{animation:.6s forwards fadeOut}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.end-card{color:var(--ink);background:linear-gradient(160deg,#fffaf2,#ffece0);animation:.6s cubic-bezier(.2,1.4,.4,1) both toastIn;box-shadow:0 20px 50px #1e0a3273}.end-emoji{filter:drop-shadow(0 3px 6px #e6967880);width:64px;height:64px;margin:0 auto}.end-emoji svg{width:100%;height:100%}.end-emoji svg path:first-child{fill:#ffd27a}.end-card h2{letter-spacing:2px;margin:4px 0;font-size:28px;font-weight:900}.end-next{color:#e2879b;margin:0;font-size:18px;font-weight:800}.end-stats{color:#9a87a3;margin:8px 0 16px;font-size:13px;font-weight:600}.end-btns{justify-content:center;gap:12px;display:flex}.end-btns button{padding:11px 26px;font-size:16px;animation:none}.end-btns button.ghost{background:0 0;box-shadow:inset 0 0 0 2px #e9a7b5}#rotate{z-index:20;text-align:center;background:linear-gradient(160deg,#8f86b6,#f2b6a8);flex-direction:column;justify-content:center;align-items:center;display:none;position:absolute;top:0;bottom:0;left:0;right:0}#rotate p{letter-spacing:2px;margin:18px 0 6px;font-size:22px;font-weight:800}#rotate small{opacity:.85;font-size:13px}.rot-ico{width:84px;height:84px;animation:2s ease-in-out infinite rot}.rot-ico svg{width:100%;height:100%}@keyframes rot{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.portrait #rotate{display:flex}#fps{color:#fff9;pointer-events:none;font:11px monospace;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}@media (max-height:380px){:root{--pad:10px}.act{width:50px;height:50px}#hint{font-size:12.5px}#board-list li{padding:4px 8px;font-size:12.5px}}.cutscene #crosshair,.cutscene #target-label,.cutscene #hint,.cutscene #joy,.cutscene #actions{opacity:0;pointer-events:none;transition:opacity .3s}
