html,body{overscroll-behavior:none;background:#111418;height:100%;margin:0;overflow:hidden}body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif}#frame{touch-action:none;width:min(100vw,56.25vh);height:100vh;margin:auto;position:absolute;inset:0;overflow:hidden}@supports (height:100dvh){#frame{width:min(100vw,56.25dvh);height:100dvh}}#frame canvas{width:100%;height:100%;display:block}.stick-base,.stick-knob{pointer-events:none;opacity:0;will-change:transform;border-radius:50%;transition:opacity 80ms;position:absolute;top:0;left:0}.stick-base{box-sizing:border-box;background:#14181e2e;border:3px solid #fff9}.stick-knob{background:#ffffffd9;box-shadow:0 2px 6px #00000040}.stick-base.on,.stick-knob.on{opacity:1}.action-btn{color:#fff;font:inherit;letter-spacing:.02em;touch-action:none;-webkit-user-select:none;user-select:none;border:3px solid #ffffffd9;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:17px;font-weight:800;transition:transform 60ms;display:flex;position:absolute;overflow:hidden;box-shadow:0 4px 10px #0000004d}.action-btn.pressed{transform:scale(.92)}.action-btn .label{z-index:1;pointer-events:none;text-shadow:0 1px 2px #00000059;position:relative}.action-btn.push{background:#ff6b4aeb}.action-btn.push:after{content:"";background:conic-gradient(#00000073 var(--cooldown,0deg), transparent 0);pointer-events:none;border-radius:50%;position:absolute;inset:0}.action-btn.special{background:#3aa8ffeb;font-size:14px}.action-btn.locked{color:#ffffffb3;background:#6e7480b3}.view-toggle{top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));color:#fff;font:inherit;touch-action:none;-webkit-user-select:none;user-select:none;background:#14181e8c;border:2px solid #ffffffb3;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;position:absolute}#frame:has(.stage-select:not([hidden])) .view-toggle{background:#14181e}.hud-top{top:calc(10px + env(safe-area-inset-top,0px));pointer-events:none;contain:layout style;flex-direction:column;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-timer{color:#fff;font-variant-numeric:tabular-nums;text-align:center;text-shadow:0 2px 3px #00000073;contain:layout paint style;font-size:34px;font-weight:800}.hud-digit{width:.62em;display:inline-block}.hud-timer.done{color:#2fd27a}.hud-timer.failed{color:#ff4d4d}.hud-timer.warn{color:#ff4d4d;animation:.5s step-end infinite hud-blink}@keyframes hud-blink{50%{opacity:.35}}.hud-best{color:#ffffffd9;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #00000080;min-height:1.2em;font-size:13px;font-weight:700}.hud-stamp{white-space:nowrap;text-shadow:0 3px #00000059;opacity:0;pointer-events:none;will-change:transform, opacity;border:6px solid;border-radius:16px;padding:4px 20px;font-size:60px;font-weight:900;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px #00000040}.hud-stamp.go{color:#fff;background:#14181e59}.hud-stamp.sit{color:#2fd27a;background:#14181e73}.hud-stamp.fail{color:#fff;background:#14181e8c;font-size:36px}.seat-arrow{filter:drop-shadow(0 1px 2px #0000008c);pointer-events:none;will-change:transform;border-top:14px solid #0000;border-bottom:14px solid #0000;border-left:24px solid #2fd27a;width:0;height:0;margin:-14px 0 0 -12px;position:absolute;top:50%;left:50%}.seat-arrow[hidden],.action-btn[hidden],.hud-top[hidden]{display:none}.result{padding-top:calc(82px + env(safe-area-inset-top,0px));pointer-events:none;justify-content:center;align-items:flex-start;display:flex;position:absolute;inset:0}.result[hidden]{display:none}.result-card{color:#fff;text-align:center;pointer-events:auto;touch-action:none;background:#0e1116b8;border-radius:20px;flex-direction:column;align-items:center;gap:6px;min-width:62%;padding:16px 24px 20px;display:flex}.result-title{text-shadow:0 3px #00000059;font-size:40px;font-weight:900}.result.seated .result-title{color:#2fd27a}.result-time{font-variant-numeric:tabular-nums;text-shadow:0 3px #00000059;font-size:52px;font-weight:900}.result-time[hidden]{display:none}.result-unit{margin-left:2px;font-size:.55em;font-weight:800}.result-stars{align-items:center;gap:10px;font-size:30px;line-height:1.1;display:flex}.result-stars[hidden]{display:none}.result-stars .star.on{animation:.36s cubic-bezier(.2,.9,.3,1.5) both result-star}.result-stars .star:nth-child(2){animation-delay:.12s}.result-stars .star:nth-child(3){animation-delay:.24s}@keyframes result-star{0%{opacity:0;transform:scale(2.2)rotate(-20deg)}}.result-new{color:#1d2129;background:#ffd23f;border-radius:8px;padding:3px 10px;font-size:18px;font-weight:900;animation:.5s cubic-bezier(.2,.9,.3,1.6) .36s both result-new;transform:rotate(-6deg)}@keyframes result-new{0%{opacity:0;transform:rotate(-6deg)scale(2)}}.result-stats{opacity:.9;font-size:18px;font-weight:700}.result-retry{color:#fff;min-width:180px;font:inherit;touch-action:none;-webkit-user-select:none;user-select:none;background:#ff6b4af2;border:3px solid #ffffffe6;border-radius:999px;margin-top:12px;padding:16px 40px;font-size:26px;font-weight:900;box-shadow:0 4px 10px #0000004d}.result-more{justify-content:center;gap:10px;margin-top:4px;display:flex}.result-next,.result-list{color:#fff;min-width:112px;min-height:48px;font:inherit;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffff1f;border:2px solid #ffffffbf;border-radius:999px;padding:10px 18px;font-size:16px;font-weight:800}.result-next[hidden]{display:none}.result-facts{left:calc(14px + env(safe-area-inset-left,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));box-sizing:border-box;max-width:calc(100% - 150px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));color:#fff;word-break:keep-all;overflow-wrap:anywhere;pointer-events:none;background:#0e11169e;border-radius:12px;padding:9px 11px;font-size:12px;font-weight:700;line-height:1.4;position:absolute}.result-facts[hidden]{display:none}.result-sources{opacity:.7;border-top:1px dashed #ffffff40;margin-top:6px;padding-top:6px;font-size:10.5px;font-weight:600}@media (height<=680px){.result{padding-top:calc(74px + env(safe-area-inset-top,0px))}.result-title{font-size:32px}.result-time{font-size:42px}.result-stars{font-size:24px}.result-retry{padding:12px 36px;font-size:22px}}.sit-fade{opacity:0;pointer-events:none;background:#0d1014;position:absolute;inset:0}.fps-meter{left:calc(12px + env(safe-area-inset-left,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));color:#9cf59c;pointer-events:none;white-space:pre;background:#0000008c;border-radius:6px;padding:3px 8px;font:12px ui-monospace,monospace;position:absolute}.fatal{color:#fff;text-align:center;justify-content:center;align-items:center;padding:24px;line-height:1.5;display:flex;position:absolute;inset:0}:root{--level-1:#c4e2ff;--level-2:#9dcdff;--level-3:#72b3fb;--level-4:#4f97f0;--level-5:#3a7de0}.stage-group[data-level="1"],.stage-card-level[data-level="1"]{--level-color:var(--level-1)}.stage-group[data-level="2"],.stage-card-level[data-level="2"]{--level-color:var(--level-2)}.stage-group[data-level="3"],.stage-card-level[data-level="3"]{--level-color:var(--level-3)}.stage-group[data-level="4"],.stage-card-level[data-level="4"]{--level-color:var(--level-4)}.stage-group[data-level="5"],.stage-card-level[data-level="5"]{--level-color:var(--level-5)}.level-beans{align-items:flex-end;gap:3px;display:inline-flex}.level-bean{background:var(--level-color,var(--level-2));border-radius:5px;flex:none;width:10px;height:15px;position:relative;box-shadow:inset 0 -2px #0000002e}.level-bean:after{content:"";background:#1d2129;border-radius:50%;width:2px;height:2px;position:absolute;top:4px;left:2px;box-shadow:4px 0 #1d2129}.stars{white-space:nowrap;gap:1px;display:inline-flex}.star{display:inline-block}.star.on{color:#ffd23f}.star.off{color:#ffffff47}.stage-select{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;color:#fff;background:linear-gradient(#1f2530 0%,#14171d 100%);position:absolute;inset:0;overflow:hidden auto}.stage-select[hidden]{display:none}.stage-select-inner{box-sizing:border-box;max-width:480px;min-height:100%;padding:calc(12px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) calc(14px + env(safe-area-inset-left,0px));flex-direction:column;margin:0 auto;display:flex}.stage-select-head{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.stage-select-total{box-sizing:border-box;font-variant-numeric:tabular-nums;background:#ffffff1a;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:6px 14px;font-size:16px;font-weight:800;display:inline-flex}.stage-select-title{text-shadow:0 3px #00000059;align-items:center;gap:10px;margin:4px 0 0;font-size:28px;font-weight:900;display:flex}.title-bean{background:#ff6b4a;border-radius:10px;flex:none;width:20px;height:30px;position:relative;box-shadow:inset 0 -3px #0000002e}.title-bean:after{content:"";background:#2b2b2b;border-radius:50%;width:3px;height:3px;position:absolute;top:8px;left:5px;box-shadow:7px 0 #2b2b2b}.stage-quick{box-sizing:border-box;color:#fff;width:100%;max-width:320px;min-height:64px;font:inherit;cursor:pointer;background:#ff6b4af2;border:3px solid #ffffffe6;border-radius:999px;flex-direction:column;align-items:center;gap:2px;margin-top:6px;padding:10px 20px;animation:1.4s ease-in-out infinite stage-quick-breathe;display:flex;box-shadow:0 4px 10px #0000004d}.stage-quick:active{filter:brightness(.9)}@keyframes stage-quick-breathe{50%{transform:scale(1.03)}}.stage-quick-main{text-shadow:0 2px #00000040;font-size:22px;font-weight:900}.stage-quick-sub{text-overflow:ellipsis;white-space:nowrap;opacity:.92;max-width:100%;font-size:13px;font-weight:700;overflow:hidden}.stage-select-hint{color:#2fd27a;font-size:14px;font-weight:800}.stage-group{margin-top:18px}.stage-group-head{align-items:center;gap:8px;margin:0 0 8px 2px;font-size:15px;font-weight:800;display:flex}.stage-row{box-sizing:border-box;border:0;border-left:4px solid var(--level-color,var(--level-2));width:100%;min-height:64px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#ffffff12;border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"num title stars""num when best""num place place";align-items:center;gap:2px 10px;margin:0 0 8px;padding:10px 12px 10px 6px;display:grid}.stage-row:active{background:#ffffff29}.stage-num{text-align:center;font-variant-numeric:tabular-nums;grid-area:num;font-size:22px;font-weight:900}.stage-num.long{font-size:12px}.stage-title,.stage-when,.stage-place{word-break:keep-all;overflow-wrap:anywhere;min-width:0}.stage-title{grid-area:title;font-size:16px;font-weight:800}.stage-when{grid-area:when}.stage-place{grid-area:place}.stage-when,.stage-place{opacity:.78;font-size:12.5px;font-weight:600}.stage-row .stars{grid-area:stars;justify-self:end;font-size:15px}.stage-best{font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.85;grid-area:best;justify-self:end;font-size:12px;font-weight:700}.stage-select-foot{text-align:center;word-break:keep-all;flex-direction:column;align-items:center;gap:8px;margin-top:auto;padding-top:22px;display:flex}.stage-select-note{opacity:.9;font-size:13px;font-weight:700}.stage-select-source{opacity:.62;font-size:11px;line-height:1.45}.stage-source-btn{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#ffffff14;border:2px solid #ffffff80;border-radius:999px;padding:8px 18px;font-size:14px;font-weight:800}.stage-card{box-sizing:border-box;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));touch-action:none;background:#0e11164d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stage-card[hidden]{display:none}.stage-card-box{box-sizing:border-box;color:#fff;word-break:keep-all;background:#0e1116db;border-radius:20px;width:100%;max-width:340px;padding:18px 20px 16px;animation:.28s cubic-bezier(.2,.9,.3,1.2) both stage-card-in;box-shadow:0 8px 24px #00000059}@keyframes stage-card-in{0%{opacity:0;transform:translateY(18px)scale(.94)}}.stage-card-head{align-items:baseline;gap:10px;display:flex}.stage-card-num{font-variant-numeric:tabular-nums;font-size:32px;font-weight:900}.stage-card-num.long{font-size:16px}.stage-card-title{font-size:22px;font-weight:900}.stage-card-when{margin-top:8px;font-size:16px;font-weight:700}.stage-card-place{opacity:.85;margin-top:2px;font-size:15px;font-weight:700}.stage-card-level{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:17px;font-weight:800;display:flex}.stage-card-target{font-variant-numeric:tabular-nums;margin-top:6px;font-size:17px;font-weight:800}.stage-card-stars{color:#ffd23f;letter-spacing:1px}.stage-card-best{opacity:.85}.stage-card-sources{opacity:.65;border-top:1px dashed #ffffff47;margin-top:12px;padding-top:10px;font-size:11px;line-height:1.45}.source-panel{z-index:5;box-sizing:border-box;padding:calc(16px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));touch-action:none;background:#0009;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.source-panel[hidden]{display:none}.source-panel-sheet{box-sizing:border-box;color:#fff;background:#1f242d;border-radius:18px;flex-direction:column;width:100%;max-width:420px;max-height:100%;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000073}.source-panel-title{margin:0;padding:18px 20px 10px;font-size:19px;font-weight:900}.source-panel-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;word-break:keep-all;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;flex:auto;min-height:0;padding:0 20px 6px;font-size:14px;line-height:1.6;overflow-y:auto}.source-panel-definition{background:#ffffff14;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-weight:700}.source-panel-paragraph{opacity:.9;margin:0 0 10px}.source-panel-close{color:#fff;min-height:48px;font:inherit;cursor:pointer;background:#ffffff1f;border:2px solid #fff9;border-radius:999px;flex:none;margin:8px 20px 18px;font-size:16px;font-weight:800}.speech-bubble{pointer-events:none;will-change:transform;padding-bottom:7px;position:absolute;top:0;left:0}.speech-bubble[hidden]{display:none}.speech-bubble-body{color:#1d2129;white-space:nowrap;transform-origin:50% 100%;background:#fff;border-radius:12px;padding:5px 10px;font-size:14px;font-weight:800;animation:.24s cubic-bezier(.2,.9,.3,1.4) both bubble-pop;display:block;position:relative;box-shadow:0 2px 5px #0000004d}.speech-bubble-body:after{content:"";border-top:7px solid #fff;border-left:6px solid #0000;border-right:6px solid #0000;margin-left:-6px;position:absolute;top:100%;left:50%}@keyframes bubble-pop{0%{opacity:0;transform:scale(.4)}}.back-button{top:calc(60px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));color:#fff;font:inherit;touch-action:none;-webkit-user-select:none;user-select:none;background:#14181e80;border:2px solid #ffffff8c;border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 10px;font-size:13px;font-weight:700;display:flex;position:absolute}.back-button[hidden]{display:none}.back-button:before{content:"";position:absolute;inset:-6px}.back-button:after{content:"";border-bottom:2px solid;border-left:2px solid;order:-1;width:6px;height:6px;transform:rotate(45deg)}
