:root{--ink: #eaf1ff;--ink-dim: #9fb2d8;--glass: rgba(14, 22, 48, .62);--glass-line: rgba(160, 190, 255, .22);--gold: #ffd98a;--red: #e2685a;--radius: 16px;font-family:ui-rounded,SF Pro Rounded,Hiragino Maru Gothic ProN,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#05081c;color:var(--ink);overscroll-behavior:none;touch-action:none}#app,#app canvas{position:fixed;inset:0;display:block}button{font-family:inherit;color:inherit;cursor:pointer;border:none;background:none}#intro{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 110%,#1d3064,#0a1130 45%,#05081c);transition:opacity .9s ease}#intro.hide{opacity:0;pointer-events:none}.intro-flakes{position:absolute;inset:0;overflow:hidden;pointer-events:none}.intro-flakes i{position:absolute;top:-4vh;border-radius:50%;background:#fff;opacity:.75;filter:blur(.4px);animation:fall linear infinite}@keyframes fall{to{transform:translateY(110vh) translate(4vw)}}.intro-card{position:relative;text-align:center;padding:44px 40px;max-width:min(92vw,440px);border-radius:26px;background:#0a112a8c;border:1px solid var(--glass-line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px #00000073}.intro-logo{font-size:46px;line-height:1;animation:sway 4s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(150,200,255,.55))}@keyframes sway{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(4deg)}}.intro-card h1{margin:14px 0 6px;font-size:clamp(34px,8vw,46px);line-height:1.1;letter-spacing:.04em;font-weight:700;background:linear-gradient(180deg,#fff 20%,#bcd2ff 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.intro-tag{margin:0 0 26px;color:var(--ink-dim);font-size:14.5px;letter-spacing:.02em}.intro-status{min-height:20px;font-size:13px;color:var(--ink-dim);margin-bottom:10px}.intro-bar{height:5px;border-radius:99px;background:#ffffff1f;overflow:hidden;margin-bottom:22px}.intro-fill{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,#7fb0ff,#ffd98a);transition:width .35s ease}#enterBtn{font-size:17px;font-weight:650;letter-spacing:.03em;padding:15px 46px;border-radius:99px;color:#14204a;background:linear-gradient(180deg,#fff,#cfe0ff);box-shadow:0 10px 30px #82aaff59,inset 0 -2px #0000001f;transition:transform .16s ease,box-shadow .16s ease,opacity .3s ease}#enterBtn:not(:disabled):hover{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 36px #82aaff80}#enterBtn:disabled{opacity:.4;cursor:default}.intro-hint{margin:20px 0 0;font-size:12.5px;color:#9fb2d8bf}#hud{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;transition:opacity .8s ease}#hud.show{opacity:1}#hud .hud-top,#hud .hud-bottom,#hud #roomPanel,#hud #hint{pointer-events:auto}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(115% 85% at 50% 45%,transparent 55%,rgba(4,7,22,.55) 100%)}.hud-top{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;right:14px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hud-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.chip{font-size:13px;font-weight:600;letter-spacing:.02em;padding:9px 14px;border-radius:99px;color:var(--ink);background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .15s ease,background .15s ease}button.chip:hover{transform:translateY(-1px);background:#1e2c58bf}.icon-btn{width:38px;height:38px;border-radius:50%;font-size:16px;display:grid;place-items:center;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .15s ease,opacity .15s ease}.icon-btn:hover{transform:translateY(-1px)}.icon-btn.off{opacity:.45}.bus0{--lvl-color: #7ee0a8}.bus1{--lvl-color: #ffd166}.bus2{--lvl-color: #ff9f5a}.bus3{--lvl-color: #ff6b6b}.room-panel{position:absolute;top:62px;left:14px;width:min(86vw,300px);padding:14px;border-radius:18px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 22px 60px #00000073;animation:room-pop .16s ease}.room-panel[hidden]{display:none}@keyframes room-pop{0%{opacity:0;transform:translateY(-6px)}}.room-panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:0 2px;margin-bottom:10px}.room-panel-head b{font-size:13.5px;letter-spacing:.01em}.room-panel-head span{font-size:11px;color:var(--ink-dim)}.room-list{display:flex;flex-direction:column;gap:8px}.room-list[hidden]{display:none}.room-panel-note{margin:2px 2px 0;font-size:11.5px;line-height:1.6;color:var(--ink-dim)}.room-panel-note[hidden]{display:none}.room-row{display:block;width:100%;text-align:left;padding:10px 12px 11px;border-radius:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.09);transition:transform .13s ease,background .13s ease,border-color .13s ease}.room-row:hover{transform:translateY(-1px);background:#ffffff1f}.room-row.is-current{cursor:default;background:#ffd98a1a;border-color:#ffd98a80}.room-row.is-current:hover{transform:none}.room-top,.room-bot{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-name{font-size:13.5px;font-weight:700}.room-count{font-size:12px;font-weight:600;color:var(--ink-dim);font-variant-numeric:tabular-nums}.room-meter{display:block;height:5px;margin:8px 0 7px;border-radius:99px;background:#ffffff1f;overflow:hidden}.room-meter i{display:block;height:100%;border-radius:99px;background:var(--lvl-color);transition:width .3s ease}.room-busy{font-size:11.5px;font-weight:700;color:var(--lvl-color)}.room-go{font-size:11.5px;color:var(--ink-dim)}.room-row:not(.is-current):hover .room-go{color:var(--gold)}.room-dot{display:inline-block;width:7px;height:7px;margin-left:7px;border-radius:50%;background:var(--lvl-color);box-shadow:0 0 6px var(--lvl-color)}.room-frac{margin-left:6px;font-size:12px;font-weight:700;color:var(--ink-dim);font-variant-numeric:tabular-nums}#donateOverlay{position:fixed;inset:0;z-index:30;display:none;align-items:center;justify-content:center;padding:20px;background:#05081c9e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#donateOverlay.open{display:flex}.donate-card{position:relative;width:min(92vw,384px);max-height:calc(100vh - 40px);overflow-y:auto;padding:28px 24px 22px;border-radius:24px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 30px 80px #00000080;animation:donate-in .26s cubic-bezier(.2,.9,.3,1.25)}@keyframes donate-in{0%{opacity:0;transform:translateY(16px) scale(.95)}}.donate-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--ink-dim);background:#ffffff14;border:1px solid var(--glass-line);transition:background .15s ease,color .15s ease}.donate-close:hover{background:#ffffff2e;color:var(--ink)}.donate-head{text-align:center;margin-bottom:18px}.donate-ico{font-size:36px;line-height:1;filter:drop-shadow(0 6px 16px rgba(255,217,138,.4))}.donate-head h2{margin:10px 0 7px;font-size:19px;letter-spacing:-.01em}.donate-head p{margin:0;font-size:13px;line-height:1.65;color:var(--ink-dim)}.donate-account{padding:15px 16px;margin-bottom:14px;border-radius:16px;background:#ffffff12;border:1px solid rgba(255,255,255,.1)}.donate-bank{font-size:12px;letter-spacing:.02em;color:var(--ink-dim);margin-bottom:6px}.donate-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.donate-no{font-size:18px;font-weight:700;letter-spacing:.03em;font-variant-numeric:tabular-nums;color:var(--gold)}.donate-copy{padding:8px 13px;border-radius:10px;font-size:12px;white-space:nowrap;color:var(--ink);background:#ffffff1a;border:1px solid var(--glass-line);transition:background .15s ease}.donate-copy:hover{background:#fff3}.donate-coffee{display:flex;justify-content:center}.donate-coffee .bmc-btn-container,.donate-coffee .bmc-btn{max-width:100%}.donate-note{margin:16px 0 0;text-align:center;font-size:11.5px;line-height:1.65;color:#9fb2d8b8}#hint{position:absolute;left:50%;top:76px;transform:translate(-50%);font-size:13px;color:var(--ink-dim);background:var(--glass);border:1px solid var(--glass-line);padding:8px 16px;border-radius:99px;white-space:nowrap;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .8s ease}#hint.hide{opacity:0;pointer-events:none}.hud-bottom{position:absolute;left:50%;bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));transform:translate(-50%);display:flex;gap:10px;padding:10px;border-radius:22px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 18px 50px #0006;max-width:calc(100vw - 20px)}.act{position:relative;width:66px;height:64px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);transition:transform .14s ease,background .14s ease}.act:hover{background:#ffffff26;transform:translateY(-3px)}.act:active{transform:scale(.94)}.act .ico{font-size:24px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.act .lbl{font-size:10.5px;font-weight:650;letter-spacing:.04em;color:var(--ink-dim)}.act.busy{background:#ffd98a2e;border-color:#ffd98a73}.act .badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;font-size:11px;font-weight:700;display:grid;place-items:center;background:var(--red);color:#fff;box-shadow:0 3px 8px #00000059}.act .badge[hidden]{display:none}.act.ride{background:#ff946c38;border-color:#ff946c8c}.act.ride:hover{background:#ff946c57}.act.ride[hidden]{display:none}#toast{position:absolute;left:50%;bottom:118px;transform:translate(-50%) translateY(8px);font-size:13.5px;font-weight:600;padding:10px 18px;border-radius:99px;background:#0a112ad1;border:1px solid var(--glass-line);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease;white-space:nowrap;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:560px){.act{width:56px;height:58px}.act .ico{font-size:21px}.hud-bottom{gap:7px;padding:8px}#hint{top:68px;font-size:12px;padding:7px 12px}.intro-card{padding:34px 24px}.chip{font-size:12px;padding:8px 11px}#roomChip{min-width:0;flex:0 1 auto;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-right{flex-shrink:0}.icon-btn{width:34px;height:34px;font-size:14px}}
