:root{--ink: #1d2733;--ink-soft: rgba(29, 39, 51, .62);--accent: #19a7b8;--glass-bg: rgba(255, 255, 255, .55);--glass-border: rgba(255, 255, 255, .7);--glass-shadow: 0 10px 30px rgba(20, 40, 60, .18), 0 1px 0 rgba(255, 255, 255, .6) inset;--dock-bg: rgba(255, 255, 255, .6)}body.night{--ink: #f1f4ff;--ink-soft: rgba(241, 244, 255, .65);--accent: #6fe3f0;--glass-bg: rgba(22, 30, 58, .5);--glass-border: rgba(255, 255, 255, .16);--glass-shadow: 0 10px 30px rgba(0, 0, 0, .35), 0 1px 0 rgba(255, 255, 255, .12) inset;--dock-bg: rgba(22, 30, 58, .55)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input{-webkit-touch-callout:none}html,body{margin:0;height:100%;overflow:hidden;background:#8ccdf2;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,system-ui,sans-serif;color:var(--ink);overscroll-behavior:none;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}svg{width:22px;height:22px;display:block}.hidden{display:none!important}.glass{position:relative;background:linear-gradient(160deg,#ffffff57,#ffffff1f 60%,#fff3);-webkit-backdrop-filter:blur(18px) saturate(190%) brightness(1.06);backdrop-filter:blur(18px) saturate(190%) brightness(1.06);border:1px solid rgba(255,255,255,.45);box-shadow:0 8px 28px #14283c29,inset 0 1px #ffffffbf,inset 0 -1px #ffffff2e,inset 1px 0 #ffffff40;color:var(--ink)}body.night .glass{background:linear-gradient(160deg,#ffffff29,#ffffff0d 60%,#ffffff1a);border-color:#ffffff38;box-shadow:0 8px 28px #0000004d,inset 0 1px #ffffff59,inset 0 -1px #ffffff14}.hud-top{position:fixed;top:max(12px,env(safe-area-inset-top));left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}.hud-top>*{pointer-events:auto}.chip{border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;letter-spacing:-.2px;white-space:nowrap}.chip.title{display:flex;align-items:center;gap:7px}.chip.title .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.chip.distance{position:fixed;left:50%;transform:translate(-50%);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 84px);font-weight:600;font-size:13px;padding:7px 14px}.chip.distance{transition:opacity .4s ease;pointer-events:none;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 110px)}.chip.distance.hide{opacity:0}.hud-right{display:flex;gap:8px}.circle{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;padding:0}.circle svg{width:20px;height:20px}.circle.off .wave{opacity:.2}.dock{position:fixed;left:50%;transform:translate(-50%);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 6px);display:flex;gap:2px;padding:5px;border-radius:999px;max-width:calc(100vw - 24px)}.dock-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:58px;height:48px;padding:0 10px;border:none;border-radius:999px;cursor:pointer;background:transparent;color:var(--ink);font:inherit;font-size:10.5px;font-weight:600;letter-spacing:-.3px;white-space:nowrap;transition:background .2s ease,transform .12s ease,opacity .2s ease}.dock-btn:active{transform:scale(.94);background:#ffffff40}.dock-btn[aria-pressed=true]{background:linear-gradient(160deg,#ffffff9e,#ffffff4d);box-shadow:inset 0 1px #fffffff2,inset 0 -1px 2px #ffffff59,0 4px 14px #14283c1f}body.night .dock-btn[aria-pressed=true]{background:linear-gradient(160deg,#ffffff4d,#ffffff1a);box-shadow:inset 0 1px #ffffff80,0 4px 14px #00000040}.dock-btn:disabled{opacity:.38;cursor:default}.dock-btn svg{width:20px;height:20px}.toast{position:fixed;left:50%;top:22%;transform:translate(-50%);padding:10px 18px;border-radius:18px;font-size:14px;font-weight:500;white-space:nowrap;transition:opacity .6s ease;pointer-events:none}.toast.hide{opacity:0}#loading{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(#8ccdf2,#fde7d6);z-index:10;transition:opacity .6s ease}#loading.done{opacity:0;pointer-events:none}.loading-card{text-align:center;color:#1d2733}.loading-shark{font-size:56px;animation:bob 1.6s ease-in-out infinite}.loading-title{font-family:Jua,sans-serif;font-size:30px;margin:6px 0 14px}.loading-bar{width:200px;height:8px;background:#fff9;border-radius:99px;overflow:hidden;margin:0 auto}.loading-bar span{display:block;height:100%;width:0%;background:#19a7b8;border-radius:99px;transition:width .2s}.loading-sub{margin-top:10px;font-size:13px;opacity:.75;transition:opacity .25s;min-height:1.4em}@keyframes bob{50%{transform:translateY(-8px) rotate(-6deg)}}dialog{border:1px solid var(--glass-border);border-radius:26px;padding:22px;max-width:min(360px,calc(100vw - 32px));background:#ffffffd1;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);color:#1d2733;font:inherit;box-shadow:0 20px 60px #00000040}dialog::backdrop{background:#141e2d40}dialog h2{margin:0 0 10px;font-size:20px}dialog p{line-height:1.55;font-size:14px;margin:0 0 10px}dialog .small{font-size:12px;opacity:.7}dialog form{text-align:center;margin-top:14px}.sheet-btn{font:inherit;font-weight:600;font-size:15px;border:none;border-radius:14px;padding:11px 28px;background:#19a7b8;color:#fff;cursor:pointer}.time-panel{position:fixed;right:16px;top:calc(max(12px,env(safe-area-inset-top)) + 50px);display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:999px;width:min(300px,calc(100vw - 32px))}.time-play{width:32px;height:32px;border-radius:50%;border:none;display:grid;place-items:center;cursor:pointer;background:#ffffff73;color:var(--ink);box-shadow:inset 0 1px #ffffffe6;flex:none;padding:0}body.night .time-play{background:#ffffff26;box-shadow:inset 0 1px #ffffff4d}.time-play svg{width:14px;height:14px}#time-range{flex:1;min-width:0;accent-color:#ffffff;height:4px}#time-label{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:62px;text-align:right}.act-pop{position:fixed;left:50%;transform:translate(-50%);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 118px);display:flex;gap:2px;padding:5px;border-radius:999px;z-index:4}.bite{position:fixed;left:50%;top:40%;transform:translate(-50%,-100%);width:92px;height:92px;border:none;padding:0;background:none;cursor:pointer;z-index:5;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;--fill: 0;--c: #ffffff}.bite-core{position:absolute;inset:6px;border-radius:50%;display:grid;place-items:center;color:#fff;background:radial-gradient(circle at 34% 28%,#ffffff8c,#fff0 42%),linear-gradient(160deg,#2fd0e0,#1690c9);box-shadow:0 10px 26px #0a3c5a59,0 0 calc(var(--fill) * 34px) rgba(255,255,255,calc(var(--fill) * .95)),inset 0 -5px #003c6e47,inset 0 2px #ffffffbf;scale:calc(1 + var(--fill) * .14);overflow:hidden;animation:biteBreathe .9s ease-in-out infinite;transition:transform .28s cubic-bezier(.34,1.9,.5,1)}.bite-core:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.6) 50%,transparent 62%);background-size:260% 100%;animation:biteShine 1.5s linear infinite}.bite b{position:relative;z-index:1}.bite b{font-size:17px;font-weight:900;letter-spacing:.5px;text-shadow:0 2px 6px rgba(0,40,80,.35)}.bite.press .bite-core{transform:scale(.84,.78);transition-duration:.05s;animation:none}.bite.hot .bite-core{animation:biteBreathe .42s ease-in-out infinite;background:radial-gradient(circle at 34% 28%,#ffffffb3,#fff0 46%),linear-gradient(160deg,#5fe6f2,#22a6dc)}.bite-ring{position:absolute;inset:-4px;border-radius:50%;pointer-events:none;transition:filter .2s;background:conic-gradient(var(--c) calc(var(--fill) * 360deg),rgba(8,50,80,.32) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 8px),#000 calc(100% - 7px));mask:radial-gradient(farthest-side,transparent calc(100% - 8px),#000 calc(100% - 7px))}.bite.hot .bite-ring{filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 3px #bff6ff)}.bite-wave{position:absolute;inset:6px;border-radius:50%;border:3px solid rgba(255,255,255,.85);pointer-events:none;animation:biteWave 1.3s ease-out infinite}.bite-wave.w2{animation-delay:.65s}.bite-burst{position:absolute;left:50%;top:50%;width:80px;height:80px;margin:-40px 0 0 -40px;border-radius:50%;border:4px solid var(--c);pointer-events:none;animation:biteBurst .45s ease-out forwards}.bite-drop{position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50% 50% 50% 0;background:#bff3ff;box-shadow:0 0 4px #ffffffe6;pointer-events:none;animation:biteDrop .5s ease-out forwards}.bite.pop .bite-core{animation:bitePop .38s ease-out forwards}.bite.pop .bite-ring,.bite.pop .bite-wave{opacity:0;transition:opacity .2s}@keyframes biteBreathe{50%{transform:scale(1.07)}}@keyframes biteShine{0%{background-position:130% 0}to{background-position:-130% 0}}@keyframes biteWave{0%{transform:scale(1);opacity:.9}to{transform:scale(1.75);opacity:0}}@keyframes biteBurst{0%{transform:scale(.6);opacity:1}to{transform:scale(1.9);opacity:0}}@keyframes biteDrop{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.4);opacity:0}}@keyframes bitePop{0%{transform:scale(1)}40%{transform:scale(1.45);opacity:1}to{transform:scale(1.8);opacity:0}}.catch-ui{position:fixed;left:50%;transform:translate(-50%);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 150px);display:flex;gap:8px;z-index:4}.chip-btn{border-radius:999px;padding:10px 16px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.dex-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;width:min(340px,calc(100vw - 32px));border-radius:26px;padding:14px 14px 16px}body:not(.night) .dex-panel{background:#ffffffb8}body.night .dex-panel{background:#161e3ac7}.dex-head{display:flex;align-items:center;gap:8px;margin:2px 4px 10px;font-size:15px}.dex-head span{font-size:12px;opacity:.7;flex:1}.dex-close{border:none;background:transparent;color:inherit;font-size:16px;cursor:pointer;padding:4px 8px}.dex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dex-item{border-radius:16px;padding:10px 6px;text-align:center;font-size:12px;font-weight:600;background:#ffffff59}body.night .dex-item{background:#ffffff14}.dex-item .pic{display:block;width:80px;height:56px;margin:0 auto 4px;object-fit:contain}.dex-item.unknown{opacity:.6}.dex-item small{display:block;font-weight:500;opacity:.7;margin-top:2px}.seat-btn{position:fixed;left:0;top:0;z-index:3;border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;will-change:transform}.run-btn.docked{left:50%;top:auto;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 74px);transform:translate(-50%);padding:9px 18px}.chip.people{position:fixed;left:16px;top:calc(max(12px,env(safe-area-inset-top)) + 82px);font-size:11px;padding:5px 10px}#gate{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse at 50% 45%,#0b2236,#050c16 70%);color:#eaf6ff;transition:background 1.4s ease,opacity .8s ease,-webkit-backdrop-filter 1.4s ease,backdrop-filter 1.4s ease}#gate.ready{background:radial-gradient(ellipse at 50% 50%,#050f1e0d,#050f1e61);-webkit-backdrop-filter:blur(1.2px);backdrop-filter:blur(1.2px)}#gate.leave{opacity:0;pointer-events:none}.gate-btn{position:relative;width:148px;height:148px;border-radius:50%;border:none;padding:0;background:transparent;cursor:default;color:inherit}.gate-ring{position:absolute;inset:0;width:100%!important;height:100%!important;transform:rotate(-90deg)}.gate-ring circle{fill:none;stroke-width:3}.gate-ring .track{stroke:#ffffff1f}.gate-ring .prog{stroke:#6fe3f0;stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;filter:drop-shadow(0 0 6px rgba(111,227,240,.9));transition:stroke-dashoffset .25s linear}.gate-core{position:absolute;inset:14px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#50c8e659,#0a284699 70%);box-shadow:inset 0 0 24px #6fe3f040,0 0 30px #6fe3f026}.gate-shark{font-size:54px;display:inline-block;animation:swim 2.4s ease-in-out infinite}@keyframes swim{0%,to{transform:translate(-4px) rotate(-4deg)}50%{transform:translate(4px) rotate(4deg)}}.gate-pct{font-family:Georgia,Times New Roman,serif;font-size:34px;letter-spacing:2px;color:#bff4ff;text-shadow:0 0 14px rgba(111,227,240,.5);transition:opacity .5s}.gate-pct small{font-size:14px;vertical-align:super;margin-left:2px}.gate-label{font-size:13px;letter-spacing:3px;color:#dcf5ffbf;display:flex;align-items:center;gap:10px;transition:all .5s}.gate-label:before,.gate-label:after{content:"";width:22px;height:1px;background:#dcf5ff66}.gate-sound{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;cursor:pointer;bottom:calc(max(20px,env(safe-area-inset-bottom)) + 16px);display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-size:12.5px;color:#e6f6ffe6;background:#0a1e3273;border:1px solid rgba(160,230,255,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gate-sound svg{width:16px;height:16px}.gate-sound .on-t{display:none}.gate-sound.on .on-t{display:inline}.gate-sound.on .off-t{display:none}.gate-sound.on{opacity:.75}#gate.ready .gate-pct{opacity:0;height:0;margin:-10px 0 0}#gate.ready .gate-btn{cursor:pointer;animation:breathe 2.4s ease-in-out infinite}#gate.ready .gate-core{background:radial-gradient(circle at 50% 35%,#82ebfabf,#1978bed9 75%);box-shadow:inset 0 2px #ffffff8c,0 0 40px #6fe3f08c,0 12px 30px #00285066}#gate.ready .gate-ring .prog{stroke:#fff}#gate.ready .gate-label{font-size:17px;letter-spacing:1px;font-weight:800;color:#fff;text-shadow:0 2px 10px rgba(0,30,60,.6)}#gate.ready .gate-label:before,#gate.ready .gate-label:after{background:#ffffffb3}.gate-wave{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(111,227,240,.6);opacity:0;pointer-events:none}#gate.ready .gate-wave{animation:wave 2.4s ease-out infinite}#gate.ready .gate-wave.w2{animation-delay:1.2s}@keyframes wave{0%{transform:scale(.95);opacity:.8}to{transform:scale(1.6);opacity:0}}@keyframes breathe{50%{transform:scale(1.05)}}#gate.ready .gate-btn:active{transform:scale(.95)}.people-chip{gap:6px!important;font-variant-numeric:tabular-nums}.people-chip svg{width:18px;height:18px}body.intro .hud-top,body.intro .people-panel,body.intro .dock,body.intro .chip.people,body.intro #hint,body.intro .chip.distance,body.intro #labels{visibility:hidden}#labels{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.name-tag{position:absolute;left:0;top:0;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;color:#1d2733;background:#ffffff73;box-shadow:0 1px 4px #00000014;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);will-change:transform}.name-tag.me{background:#ffffff8c}.name-tag.catch-bubble{font-size:13px;padding:4px 11px;color:#3a2a00;background:#ffe278eb;box-shadow:0 3px 10px #50320040;animation:bubbleIn .35s cubic-bezier(.34,1.6,.5,1)}@keyframes bubbleIn{0%{scale:.4}to{scale:1}}#night-btn{position:relative}.time-panel{z-index:8;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:6px;border-radius:22px;width:auto;right:16px;transform-origin:top right;animation:panelIn .18s ease-out}.time-chip{border:none;background:transparent;color:var(--ink);font:inherit;font-size:14px;font-weight:700;padding:10px 14px;border-radius:16px;cursor:pointer;white-space:nowrap;text-align:left}@keyframes panelIn{0%{opacity:0;transform:scale(.9) translateY(-4px)}to{opacity:1;transform:none}}.time-chip:active{background:#ffffff59}.gate-title{font-family:Jua,sans-serif;font-size:26px;color:#fff;text-shadow:0 2px 14px rgba(0,30,60,.6);opacity:0;transform:translateY(6px);transition:opacity .8s ease,transform .8s ease;margin-bottom:6px}#gate.ready .gate-title{opacity:1;transform:none}#gate.ready .gate-label{font-size:13px;letter-spacing:3px;font-weight:600;color:#ffffffe6;animation:blink 1.8s ease-in-out infinite}@keyframes blink{50%{opacity:.45}}#gate{display:block}#gate .gate-btn{position:absolute;left:50%;top:50%;margin:-74px 0 0 -74px}#gate .gate-title{position:absolute;left:0;right:0;text-align:center;top:calc(50% - 132px);margin:0}#gate .gate-pct,#gate .gate-label{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap}#gate .gate-pct{top:calc(50% + 90px);height:auto;margin:0}#gate .gate-label{top:calc(50% + 138px)}#gate.ready .gate-pct{opacity:0;height:auto;margin:0}#gate.ready .gate-label{transition:opacity .6s ease,color .6s ease}#gate.ready .gate-btn{animation:breathe 2.6s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}#gate.ready{cursor:pointer}.show-banner{position:fixed;left:50%;top:calc(max(12px,env(safe-area-inset-top)) + 96px);z-index:7;pointer-events:none;display:flex;align-items:center;gap:6px;transform:translate(-50%);white-space:nowrap}.show-banner.hidden{display:none}.show-banner .sb-main{font-family:Jua,sans-serif;font-size:34px;color:#fff;letter-spacing:1px;-webkit-text-stroke:6px #1d8fd1;paint-order:stroke fill;text-shadow:0 6px 18px rgba(10,60,110,.45)}.show-banner .sb-emoji{font-size:32px;display:inline-block;animation:sbEmoji .6s ease-in-out infinite alternate}.show-banner.on{animation:sbIn .7s cubic-bezier(.34,1.8,.5,1) both,sbWiggle 1.2s ease-in-out .7s 3,sbOut .5s ease-in 4.2s forwards}@keyframes sbIn{0%{transform:translate(-50%) scale(.2) rotate(-12deg);opacity:0}to{transform:translate(-50%) scale(1) rotate(0);opacity:1}}@keyframes sbWiggle{25%{transform:translate(-50%) rotate(-3deg) scale(1.04)}75%{transform:translate(-50%) rotate(3deg) scale(1.04)}}@keyframes sbOut{to{transform:translate(-50%) translateY(-20px) scale(.9);opacity:0}}@keyframes sbEmoji{0%{transform:rotate(-15deg) scale(1)}to{transform:rotate(15deg) scale(1.2)}}button.people-chip{font:inherit;font-size:14px;font-weight:600;cursor:pointer}.people-panel{position:fixed;left:16px;top:calc(max(12px,env(safe-area-inset-top)) + 50px);z-index:8;padding:6px;border-radius:22px;min-width:150px;max-width:min(240px,calc(100vw - 32px));transform-origin:top left;animation:panelIn .18s ease-out}.pp-list{list-style:none;margin:0;padding:0;max-height:min(320px,50vh);overflow-y:auto}.pp-list li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;padding:9px 12px;border-radius:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-list li .pp-me{flex:none;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #ffd23f}.pp-list li .pp-dot{flex:none;width:10px;display:grid;place-items:center}.pp-list li .pp-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.45}.pp-list li span.pp-name{overflow:hidden;text-overflow:ellipsis}
