@import"https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Noto+Sans+KR:wght@500;600;700;800;900&display=swap";:root{--red:#da291c;--red-dark:#b51f16;--yellow:#ffc72c;--yellow-deep:#f5a900;--cream:#fff8e8;--paper:#fffdf7;--ink:#2e2118;--muted:#78685c;--line:#eadfce;--charcoal:#242424;--green:#2f8b57;--ui-overhead:126px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{height:100dvh;min-height:0;display:flex;justify-content:center;align-items:flex-start;overflow:hidden;color:var(--ink);font-family:Noto Sans KR,sans-serif;background:radial-gradient(circle at 12% 12%,rgba(255,199,44,.34) 0 5%,transparent 5.2%),radial-gradient(circle at 88% 30%,rgba(218,41,28,.11) 0 8%,transparent 8.2%),linear-gradient(135deg,#fffdf6,#fff4d8 48%,#ffe5b5);padding:clamp(8px,2vh,18px) 0}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.24;background-image:radial-gradient(rgba(78,48,27,.28) .65px,transparent .7px);background-size:7px 7px}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}#wrap{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;max-width:min(94vw,920px);padding:0 14px}#rhythmMode{position:relative;display:flex;flex:1 1 auto;min-height:0;align-items:center;justify-content:center}.brandHeader{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:15px;margin:0 auto 22px;padding-top:clamp(14px,3vh,28px);color:var(--red)}.brandMark{width:52px;height:42px;object-fit:contain;filter:invert(15%) sepia(98%) saturate(4846%) hue-rotate(355deg) brightness(89%) contrast(89%)}.brandEyebrow{margin:0 0 1px;color:var(--muted);font-size:14px;font-weight:800;letter-spacing:.04em}h1{margin:0;font-family:Black Han Sans,sans-serif;font-size:clamp(27px,5vw,39px);line-height:1;letter-spacing:-.03em;font-weight:400}#rhythmSetup{position:relative;overflow:hidden;width:min(100%,680px);max-height:100%;margin:0 auto;padding:clamp(28px,6vw,54px);border:1px solid rgba(181,31,22,.12);border-radius:30px;background:var(--paper);box-shadow:0 22px 60px #743d1429,0 2px #ffffffe6 inset}#rhythmSetup:before{content:"";position:absolute;right:-72px;top:-90px;width:270px;height:270px;border-radius:50%;background:var(--yellow)}#rhythmSetup:after{content:"M";position:absolute;right:20px;top:-1px;color:var(--red);font-family:Black Han Sans,sans-serif;font-size:130px;line-height:1;transform:rotate(-7deg);opacity:.95}.setupCopy{position:relative;z-index:1;max-width:390px}.setupBadge,.menuBadge{display:inline-flex;padding:6px 11px;border-radius:999px;color:#fff;background:var(--red);font-size:14px;font-weight:900;letter-spacing:.12em}.setupCopy h2{margin:15px 0 12px;font-family:Black Han Sans,sans-serif;font-size:clamp(36px,7vw,58px);line-height:1.03;letter-spacing:-.045em;font-weight:400}.setupCopy p{max-width:370px;margin:0;color:var(--muted);font-size:14px;font-weight:600;line-height:1.7}#rhythmSetup .field{position:relative;z-index:1;margin-top:32px}#rhythmSetup .field>label{display:block;margin-bottom:10px;color:var(--ink);font-size:14px;font-weight:900}.segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.seg{min-height:46px;border:1.5px solid var(--line);border-radius:13px;color:var(--muted);background:#fff;font-size:14px;font-weight:800;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.seg:hover{transform:translateY(-2px);border-color:#d4b995}.seg.on{color:#fff;border-color:var(--red);background:var(--red);box-shadow:0 7px 16px #da291c38}button.main{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;margin-top:18px;padding:0 23px;border:0;border-radius:16px;color:#241708;background:var(--yellow);box-shadow:0 8px 0 var(--yellow-deep),0 15px 26px #cf890033;font-weight:900;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}button.main:hover{transform:translateY(-2px);background:#ffd454;box-shadow:0 10px 0 var(--yellow-deep),0 18px 30px #cf89003b}button.main:active{transform:translateY(6px);box-shadow:0 2px 0 var(--yellow-deep)}.controlHint{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin:20px 0 0;padding:13px 15px;border:2px solid #f0d6b4;border-radius:15px;color:var(--ink);background:linear-gradient(135deg,#fffaf0,#fff1d2);box-shadow:0 5px 14px #7e471917,0 1px #fff inset;font-size:16px;font-weight:800}.controlIcon{display:inline-grid;place-items:center;width:25px;height:25px;font-size:19px}.controlDivider{color:#9b7e66;font-size:14px;font-weight:700}.controlKeys{display:inline-flex;gap:4px}.controlKeys kbd{display:inline-grid;place-items:center;min-width:27px;height:27px;padding:0 6px;border:1px solid #d3b58f;border-bottom-width:3px;border-radius:7px;color:var(--red);background:#fff;font-family:Noto Sans KR,sans-serif;font-size:14px;font-weight:900;line-height:1}.laneBadge{padding:4px 8px;border-radius:999px;color:#fff;background:var(--red);font-size:14px;font-weight:900}.controlHint.touchHint{border-color:#f3c55d;background:linear-gradient(135deg,#fff9e7,#ffe9a9)}.controlHint.touchHint .tapIcon{animation:tap-nudge 1.5s ease-in-out infinite}.controlHint.touchHint strong{color:var(--red);font-weight:900}#stageRhythm{position:relative;width:min(100%,calc((100dvh - var(--ui-overhead)) * 600 / 760));max-width:760px;max-height:100%;aspect-ratio:600/760;margin:0 auto;overflow:hidden;border:6px solid var(--paper);border-radius:24px;background:var(--charcoal);box-shadow:0 24px 70px #3a1e0b40,0 0 0 1px #4126121f}#stageRhythm canvas{position:absolute;inset:0;display:block;width:100%;height:100%}#stageRhythm canvas#rc3d{pointer-events:none}#stageRhythm canvas#rc{cursor:pointer;touch-action:manipulation}#rhythmLogoBar{position:absolute;z-index:3;top:0;left:0;right:0;height:62px;display:flex;justify-content:center;align-items:center;background:var(--red);border-bottom:5px solid var(--yellow)}#rhythmLogoBar img{display:block;width:auto;height:38px}#rhythmHud{position:absolute;z-index:4;top:77px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.rPill{display:flex;align-items:center;gap:7px;min-height:40px;padding:7px 14px;border:2px solid rgba(255,255,255,.72);border-radius:14px;color:var(--ink);background:#fffdf7f0;box-shadow:0 5px 14px #140d0833;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-weight:900}.rLabel{color:var(--muted);font-size:14px;font-weight:800}#rScore{color:var(--red);font-size:18px}#rCombo{color:#b66c00;font-size:18px}button#rhythmPauseBtn{position:absolute;left:50%;top:0;transform:translate(-50%);justify-content:center;width:42px;padding:0;color:var(--red);font-size:17px;pointer-events:auto;cursor:pointer}#rhythmHpBar{position:absolute;z-index:4;top:125px;left:14px;right:14px;height:10px;overflow:hidden;border:2px solid rgba(255,255,255,.8);border-radius:999px;background:#37281c40}#rhythmHpFill{height:100%;width:100%;border-radius:999px;background:linear-gradient(90deg,#1f7d48,#76bb4d);transition:width .15s ease}#rhythmLaneLabels{position:absolute;z-index:5;left:0;right:0;bottom:11px;display:flex;pointer-events:none}#rhythmLaneLabels span{flex:1;display:flex;justify-content:center;align-items:center}#rhythmLaneLabels b{position:relative;display:grid;place-items:center;width:46px;height:46px;border:3px solid var(--yellow);border-radius:50%;color:#fff;background:#da291ce6;box-shadow:0 4px #7c150fe6,0 7px 15px #00000052,0 0 0 5px #ffc72c26;font-size:18px;font-weight:900;line-height:1;transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}#rhythmLaneLabels b:after{content:"";position:absolute;inset:-8px;border:2px solid rgba(255,199,44,.58);border-radius:50%;animation:lane-tap-pulse 1.8s ease-out infinite}#rhythmLaneLabels span.is-hovered b{color:var(--red);border-color:#fff3bd;background:var(--yellow);box-shadow:0 5px #c98b00,0 10px 20px #0000005c,0 0 0 7px #ffc72c40;transform:translateY(-5px) scale(1.08)}#rhythmLaneLabels span.is-hovered b:after{border-color:#ffffffc7}#rhythmLaneLabels span.is-active b{animation:lane-input-feedback .34s cubic-bezier(.2,.9,.28,1.35)}#rhythmLaneLabels span.is-active b:after{animation:lane-input-ring .34s ease-out}@keyframes lane-tap-pulse{0%,30%{opacity:.8;transform:scale(.82)}75%,to{opacity:0;transform:scale(1.18)}}@keyframes lane-input-feedback{0%{transform:translateY(0) scale(1);filter:brightness(1)}35%{transform:translateY(5px) scale(.86);filter:brightness(1.35)}72%{transform:translateY(-7px) scale(1.17);filter:brightness(1.12)}to{transform:translateY(0) scale(1);filter:brightness(1)}}@keyframes lane-input-ring{0%{opacity:1;transform:scale(.7);border-width:4px}to{opacity:0;transform:scale(1.5);border-width:1px}}@keyframes tap-nudge{0%,to{transform:translateY(0)}45%{transform:translateY(-3px)}65%{transform:translateY(1px)}}#rhythmPauseMenu,#rhythmOverlay{position:absolute;z-index:10;inset:0;display:none;align-items:center;justify-content:center;padding:28px;background:#2b1b11ad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#rhythmPauseMenu.show,#rhythmOverlay.show{display:flex}.menuCard{width:min(100%,330px);padding:27px;border-radius:25px;text-align:center;background:var(--paper);box-shadow:0 22px 60px #0000004d}.menuCard h2{margin:12px 0 4px;font-family:Black Han Sans,sans-serif;color:var(--ink);font-size:36px;font-weight:400}.menuCard>button.main{justify-content:center}.menuCard .secondary,.menuCard .textButton{width:100%;min-height:43px;margin-top:12px;border-radius:12px;font-weight:800;cursor:pointer}.menuCard .secondary{border:1.5px solid var(--line);color:var(--ink);background:#fff}.menuCard .textButton{border:0;color:var(--red);background:transparent}.gradeDisplay{margin:8px 0;color:var(--red);font-family:Black Han Sans,sans-serif;font-size:58px;line-height:1}#rOverSub{margin:7px 0 2px;color:var(--muted);font-weight:800}.comboPopup{position:absolute;z-index:6;left:50%;top:46%;opacity:0;transform:translate(-50%,-50%) scale(.82);pointer-events:none;color:var(--yellow);font-family:Black Han Sans,sans-serif;font-size:40px;text-shadow:0 3px 0 var(--red),0 5px 14px rgba(0,0,0,.35)}.comboPopup.show{animation:combo-pop .72s ease-out both}.comboPopup .comboLabel{display:block;margin-top:-5px;color:#fff;font-family:Noto Sans KR,sans-serif;font-size:14px;text-align:center;text-shadow:0 2px 5px rgba(0,0,0,.4)}@keyframes combo-pop{0%{opacity:0;transform:translate(-50%,-40%) scale(.72)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}68%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-62%) scale(.96)}}#rhythmMsg{position:absolute;left:0;right:0;bottom:2px;min-height:0;text-align:center;color:var(--muted);font-size:14px;pointer-events:none}@media(max-width:620px){:root{--ui-overhead:84px}body{padding:6px 0}#wrap{max-width:100%;padding:0 6px}.brandHeader{margin-bottom:13px;padding-top:10px}.brandMark{width:39px;height:32px}.brandEyebrow{display:none}h1{font-size:25px}#rhythmSetup{padding:25px 19px;border-radius:22px}#rhythmSetup:before{right:-105px;top:-100px}#rhythmSetup:after{right:-2px;top:2px;font-size:88px}.setupCopy h2{max-width:250px;font-size:39px}.setupCopy p{max-width:290px;font-size:14px}.segmented{grid-template-columns:repeat(2,1fr)}#stageRhythm{border-width:3px;border-radius:15px}.rPill{min-height:36px;padding:6px 10px}.rLabel{font-size:14px}#rScore,#rCombo{font-size:15px}#rhythmLogoBar{height:54px;border-bottom-width:4px}#rhythmLogoBar img{height:31px}#rhythmHud{top:66px}#rhythmHpBar{top:110px}#rhythmLaneLabels{bottom:8px}#rhythmLaneLabels b{width:40px;height:40px;font-size:16px;border-width:2px}}@media(max-height:640px){:root{--ui-overhead:54px}body{padding:5px 0}.brandHeader{gap:8px;margin-bottom:4px}.brandMark{width:34px;height:27px}.brandEyebrow{display:none}h1{font-size:22px}#rhythmSetup{padding:18px 22px;border-radius:20px}#rhythmSetup:before{width:180px;height:180px;right:-72px;top:-80px}#rhythmSetup:after{right:5px;top:0;font-size:72px}.setupCopy h2{margin:10px 0 7px;font-size:34px}.setupCopy p{font-size:14px;line-height:1.45}#rhythmSetup .field{margin-top:16px}#rhythmSetup .field>label{margin-bottom:6px}.seg{min-height:38px}button.main{min-height:45px;margin-top:11px;box-shadow:0 5px 0 var(--yellow-deep),0 10px 20px #cf890029}.controlHint{margin-top:9px;padding:9px 11px}}@media(max-height:480px){:root{--ui-overhead:10px}.brandHeader{display:none}#rhythmSetup{padding:12px 17px}.setupBadge,.setupCopy p{display:none}.setupCopy h2{margin:0;font-size:28px;line-height:1}#rhythmSetup .field{margin-top:11px}#rhythmSetup .field>label{display:none}.segmented{grid-template-columns:repeat(4,1fr)}.seg{min-height:34px;padding:4px;font-size:14px;border-radius:9px}button.main{min-height:39px;margin-top:8px;border-radius:10px}.controlHint{margin-top:7px;padding:6px 8px;gap:5px;font-size:16px;border-radius:10px}.controlHint .controlText:last-of-type,.controlHint .laneBadge{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
