:root{--bg: #04060b;--ink: #e8eeff;--ink-dim: rgba(205, 220, 250, .5);--ink-faint: rgba(200, 215, 255, .34);--amber: #ffd9a0;--amber-dim: rgba(255, 217, 160, .75);--glass: rgba(10, 14, 24, .6);--glass-strong: rgba(9, 13, 22, .78);--stroke: rgba(160, 190, 255, .12);--stroke-warm: rgba(255, 217, 160, .28);--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font-family:var(--font);cursor:pointer;background:none;border:none;color:inherit}.app{position:fixed;inset:0;background:var(--bg)}.topBar{position:fixed;top:max(20px,env(safe-area-inset-top));left:0;right:0;text-align:center;pointer-events:none;z-index:10}.wordmark{font-size:10px;font-weight:500;letter-spacing:.34em;color:var(--ink-faint)}.counter{margin-top:8px;font-size:16px;font-weight:300;color:var(--ink);display:inline-flex;align-items:baseline;gap:7px}.counter b{font-weight:500;font-variant-numeric:tabular-nums}.counterLabel{color:var(--ink-dim);font-size:13px}.counterDot{width:5px;height:5px;border-radius:50%;background:var(--amber);align-self:center;animation:pulseDot 2.8s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}.hint{margin-top:10px;font-size:11.5px;letter-spacing:.04em;color:var(--ink-faint);transition:opacity 2.2s ease}.hint.hidden{opacity:0}.bottomArea{position:fixed;bottom:max(28px,env(safe-area-inset-bottom));left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;z-index:10}.bottomArea>*{pointer-events:auto}.awakeBtn{padding:15px 34px;border-radius:999px;border:1px solid var(--stroke-warm);background:#ffc8820f;color:var(--amber);font-size:12.5px;font-weight:500;letter-spacing:.22em;backdrop-filter:blur(14px);transition:all .35s ease;animation:breathe 5s ease-in-out infinite}.awakeBtn:hover{background:#ffc88221;box-shadow:0 0 34px #ffc88229;border-color:#ffd9a080}.awakeBtn.locating{color:var(--ink-dim);border-color:var(--stroke);animation:none}@keyframes breathe{0%,to{box-shadow:0 0 14px #ffc8820d}50%{box-shadow:0 0 30px #ffc88224}}.subtitle{font-size:12px;color:var(--ink-faint);letter-spacing:.03em}.sessionChip{display:flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;border:1px solid var(--stroke);background:var(--glass);backdrop-filter:blur(16px);font-size:12.5px;color:var(--ink)}.chipDot{width:6px;height:6px;border-radius:50%;background:var(--amber);animation:pulseDot 2.4s ease-in-out infinite}.chipRegion{font-weight:500}.chipSep,.chipTime{color:var(--ink-dim)}.chipSleep{margin-left:6px;font-size:11px;letter-spacing:.08em;color:var(--ink-faint);border-bottom:1px solid transparent;transition:color .25s ease}.chipSleep:hover{color:var(--ink-dim)}.toast{position:fixed;top:calc(max(20px,env(safe-area-inset-top)) + 80px);left:50%;pointer-events:none;transform:translate(-50%);padding:11px 20px;border-radius:12px;border:1px solid var(--stroke);background:var(--glass-strong);backdrop-filter:blur(18px);font-size:13px;color:var(--ink);z-index:40;animation:toastIn .45s cubic-bezier(.2,.9,.3,1)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.tooltip{position:fixed;top:0;left:0;pointer-events:none;padding:9px 13px;border-radius:10px;border:1px solid var(--stroke);background:var(--glass-strong);backdrop-filter:blur(14px);z-index:30}.tooltipName{font-size:10.5px;font-weight:600;letter-spacing:.18em;color:var(--ink)}.tooltipCount{margin-top:3px;font-size:11px;color:var(--ink-dim);font-variant-numeric:tabular-nums}.cardAnchor{position:fixed;top:0;left:0;z-index:25;will-change:transform;transition:opacity .25s ease}.userCard{position:relative;transform:translate(-50%,calc(-100% - 20px));width:216px;padding:18px 18px 16px;border-radius:15px;border:1px solid var(--stroke);background:var(--glass-strong);backdrop-filter:blur(20px) saturate(1.25);box-shadow:0 14px 46px #0000008c;animation:cardIn .3s cubic-bezier(.2,.9,.3,1)}@keyframes cardIn{0%{opacity:0;transform:translate(-50%,calc(-100% - 12px)) scale(.96)}to{opacity:1;transform:translate(-50%,calc(-100% - 20px)) scale(1)}}.cardAnchor.below .userCard{transform:translate(-50%,20px);animation:none}.userCard.sheet{position:fixed;transform:none;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:auto;z-index:25;animation:sheetIn .32s cubic-bezier(.2,.9,.3,1)}@keyframes sheetIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.cardClose{position:absolute;top:8px;right:11px;font-size:17px;color:var(--ink-faint);transition:color .2s ease}.cardClose:hover{color:var(--ink)}.cardStatus{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:600;letter-spacing:.22em;color:var(--amber-dim)}.cardDot{width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 8px #ffd9a0cc;animation:pulseDot 2.2s ease-in-out infinite}.cardDot.own{background:#ff9d84;box-shadow:0 0 8px #ff9d84cc}.cardLevel{margin-left:auto;font-size:9px;letter-spacing:.14em;color:var(--ink-faint)}.cardRegion{margin-top:10px;font-size:14.5px;font-weight:400;color:var(--ink);line-height:1.35}.cardTime{margin-top:4px;font-size:11.5px;color:var(--ink-dim)}.knockBtn{margin-top:14px;width:100%;padding:11px 0;border-radius:10px;border:1px solid var(--stroke-warm);background:#ffc88212;color:var(--amber);font-size:11px;font-weight:600;letter-spacing:.24em;transition:all .3s ease}.knockBtn:hover{background:#ffc88226;box-shadow:0 0 22px #ffc88224}.knockStatus{margin-top:14px;text-align:center;font-size:11.5px;letter-spacing:.14em;color:var(--amber-dim)}.knockStatus.accepted{color:var(--ink)}.dots i{font-style:normal;animation:dotBlink 1.2s infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes dotBlink{0%,60%,to{opacity:.25}30%{opacity:1}}.chatPanel{position:fixed;right:24px;bottom:24px;width:324px;max-height:62vh;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--stroke);background:var(--glass-strong);backdrop-filter:blur(22px) saturate(1.3);box-shadow:0 18px 60px #0000008c;z-index:26;overflow:hidden;animation:cardInPlain .35s cubic-bezier(.2,.9,.3,1)}@keyframes cardInPlain{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.chatHeader{display:flex;align-items:center;justify-content:space-between;padding:13px 14px 11px;border-bottom:1px solid rgba(160,190,255,.08);gap:10px}.chatRoute{font-size:10.5px;font-weight:600;letter-spacing:.14em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routeArrow{color:var(--amber-dim);margin:0 3px}.routeEmoji{margin-left:6px}.chatHeaderRight{display:flex;align-items:center;gap:10px;flex-shrink:0}.chatLevel{font-size:8.5px;letter-spacing:.16em;color:var(--ink-faint)}.timer{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);transition:color .3s ease}.timer.low{color:#ffb987}.timer.flash{animation:timerFlash 1s ease;color:var(--amber)}@keyframes timerFlash{0%{transform:scale(1)}30%{transform:scale(1.25)}to{transform:scale(1)}}.chatClose{font-size:16px;color:var(--ink-faint);transition:color .2s ease}.chatClose:hover{color:var(--ink)}.plusTime{position:absolute;top:44px;right:18px;font-size:10px;font-weight:600;letter-spacing:.2em;color:var(--amber);animation:floatUp 2.2s ease forwards;pointer-events:none}@keyframes floatUp{0%{opacity:0;transform:translateY(6px)}25%{opacity:1}to{opacity:0;transform:translateY(-18px)}}.chatMessages{flex:1;min-height:150px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:7px;padding:13px 14px;scrollbar-width:thin;scrollbar-color:rgba(160,190,255,.18) transparent}.chatEmpty{margin:auto;font-size:11.5px;color:var(--ink-faint)}.msg{max-width:78%;padding:8px 12px;font-size:13px;line-height:1.45;border-radius:13px;word-break:break-word}.msg.me{align-self:flex-end;background:#ffcd9621;color:#ffe9cd;border-bottom-right-radius:4px}.msg.them{align-self:flex-start;background:#8caaf01c;color:var(--ink);border-bottom-left-radius:4px}.msg.system{align-self:center;background:none;font-size:11px;color:var(--amber-dim);letter-spacing:.04em}.msg.typing{display:flex;gap:4px;padding:10px 13px}.msg.typing i{width:5px;height:5px;border-radius:50%;background:var(--ink-dim);animation:dotBlink 1.1s infinite}.msg.typing i:nth-child(2){animation-delay:.18s}.msg.typing i:nth-child(3){animation-delay:.36s}.chatInputRow{display:flex;gap:8px;padding:11px 12px;border-top:1px solid rgba(160,190,255,.08)}.chatInput{flex:1;background:#96b4ff0f;border:1px solid rgba(160,190,255,.1);border-radius:10px;padding:9px 13px;font-size:13px;font-family:var(--font);color:var(--ink);outline:none;transition:border-color .25s ease}.chatInput::placeholder{color:var(--ink-faint)}.chatInput:focus{border-color:#ffd9a04d}.chatSend{width:38px;border-radius:10px;border:1px solid var(--stroke-warm);background:#ffc88214;color:var(--amber);font-size:15px;transition:all .25s ease}.chatSend:disabled{opacity:.35;cursor:default}.chatSend:not(:disabled):hover{background:#ffc88229}.activityBar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid rgba(255,217,160,.12);background:#ffc88209}.activityBar.column{flex-direction:column;align-items:stretch;gap:8px}.activityAsk{font-size:11.5px;color:var(--ink-dim)}.activityBtn{margin-left:auto;padding:7px 13px;border-radius:8px;border:1px solid var(--stroke-warm);color:var(--amber);font-size:9.5px;font-weight:600;letter-spacing:.18em;transition:background .25s ease}.activityBtn:hover{background:#ffc8821a}.activityDismiss{color:var(--ink-faint);font-size:14px}.activityPrompt{font-size:12.5px;color:var(--ink);text-align:center}.activityOptions{display:flex;gap:8px}.activityOption{flex:1;padding:9px 6px;border-radius:9px;border:1px solid var(--stroke);color:var(--ink);font-size:9.5px;font-weight:600;letter-spacing:.12em;transition:all .25s ease}.activityOption:hover:not(:disabled){border-color:var(--stroke-warm);background:#ffc88212}.activityOption.chosen{border-color:var(--stroke-warm);background:#ffc88221;color:var(--amber)}.activityWaiting{text-align:center;font-size:10.5px;color:var(--ink-faint);animation:dotBlink 1.6s infinite}.activityResult{text-align:center;font-size:11.5px;color:var(--ink-dim)}.activityReward{text-align:center;font-size:11px;font-weight:600;letter-spacing:.22em;color:var(--amber)}.endState{display:flex;flex-direction:column;align-items:center;gap:18px;padding:34px 24px 30px;animation:cardInPlain .5s ease}.endTitle{font-size:14.5px;font-weight:300;color:var(--ink);letter-spacing:.02em}.endTitle.subtle{color:var(--ink-dim)}.endActions{display:flex;gap:10px}.primaryBtn{padding:10px 26px;border-radius:10px;border:1px solid var(--stroke-warm);background:#ffc8821a;color:var(--amber);font-size:10.5px;font-weight:600;letter-spacing:.22em;transition:all .25s ease}.primaryBtn:hover{background:#ffc8822e;box-shadow:0 0 22px #ffc88224}.ghostBtn{padding:10px 20px;border-radius:10px;border:1px solid var(--stroke);color:var(--ink-dim);font-size:10.5px;font-weight:500;letter-spacing:.18em;transition:all .25s ease}.ghostBtn:hover{color:var(--ink);border-color:#a0beff40}.loading{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:60;transition:opacity .8s ease}.loading.done{opacity:0;pointer-events:none}.loadingMark{font-size:13px;font-weight:500;letter-spacing:.42em;color:var(--ink);animation:breatheText 2.6s ease-in-out infinite}@keyframes breatheText{0%,to{opacity:.55}50%{opacity:1}}.loadingBar{width:130px;height:1px;background:#a0beff1f;overflow:hidden;border-radius:1px}.loadingFill{width:40%;height:100%;background:#ffd9a0b3;animation:slideBar 1.4s ease-in-out infinite}@keyframes slideBar{0%{transform:translate(-100%)}to{transform:translate(350%)}}.loadingSub{font-size:10.5px;letter-spacing:.12em;color:var(--ink-faint)}@media(max-width:640px){.chatPanel{right:0;left:0;bottom:0;width:auto;max-height:58vh;border-radius:18px 18px 0 0;border-bottom:none;padding-bottom:env(safe-area-inset-bottom)}.chatMessages{max-height:none}.toast{width:max-content;max-width:86vw;text-align:center}.awakeBtn{padding:16px 38px}}
