@charset "UTF-8";
:root{--cream:#f5f3ee;--ink:#202b31;--mint:#37bfa8;--violet:#7357e8;--danger:#e5484d;--line:#d8dcd4;font-family:Arial,"Malgun Gothic",sans-serif;color:var(--ink);background:#dedfd7;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a,[role=slider]{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,[role=slider]:focus-visible{outline:4px solid var(--violet);outline-offset:5px}button{border:0}button:disabled{cursor:default}button:active{transform:translateY(2px)}[hidden]{display:none!important}
#GamePanel{position:relative;width:min(100%,760px);height:100svh;min-height:620px;margin:0 auto;overflow:hidden;background:var(--cream);display:flex;flex-direction:column;isolation:isolate;user-select:none;-webkit-user-select:none}
.header-section{height:84px;min-height:70px;display:flex;align-items:center;justify-content:space-between;margin:0 36px;border-bottom:1px solid var(--line);z-index:4}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:13px;letter-spacing:1.5px;font-weight:900}.brand-mark{font-size:37px;line-height:1;letter-spacing:-7px;margin-right:6px}.brand-mark span{color:var(--mint)}.utilities{display:flex;gap:7px}.icon-button{min-width:46px;height:46px;background:transparent;font-size:24px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px}.sound-state{font-size:8px;font-weight:800}.eyebrow{font-size:11px;letter-spacing:2.6px;font-weight:800;margin:0}.title-section{text-align:center;padding:28px 20px 0;z-index:2;pointer-events:none}h1{font-size:clamp(66px,12.8vh,128px);font-weight:950;letter-spacing:-7px;line-height:.81;margin:24px 0 20px}h1>span{display:block}.fest-word{color:var(--mint);position:relative;width:max-content;margin:0 auto}.title-star{position:absolute;right:-54px;top:3px;font-size:46px;line-height:1;color:var(--violet);transform:rotate(12deg)}.tagline{font-size:17px;font-weight:700;margin:0}
.stage-section{position:relative;flex:1;min-height:120px;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none}.stage-sticker{position:absolute;z-index:2;font-weight:900;pointer-events:none}.sticker-left{left:11%;top:28%;font-size:17px;line-height:1.05;transform:rotate(-12deg);background:#f4cf5d;padding:15px 14px;border-radius:50%;width:77px;height:77px;display:grid;place-content:center}.sticker-right{right:12%;top:55%;width:70px;height:70px;border:1px solid var(--ink);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(12deg);font-size:27px}.sticker-right small{font-size:7px;letter-spacing:1px}.stage-caption{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:2px;font-weight:700;color:#65716b}.start-section{padding:16px 48px 12px;z-index:3}.instructions{display:flex;justify-content:center;gap:25px;font-size:13px;font-weight:600;margin-bottom:16px}.instructions>span{display:flex;align-items:center;gap:7px}.instructions b{font-size:24px}.danger-swatch{display:inline-block;width:15px;height:15px;background:repeating-linear-gradient(45deg,var(--danger),var(--danger) 4px,#a62336 4px,#a62336 6px);border-radius:3px}.primary-button{background:var(--ink);color:white;width:100%;min-height:70px;border-radius:18px;padding:14px 25px;font-weight:800;font-size:21px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 5px 0 #0f191e}.primary-button span{font-size:32px;color:#79dec9}.start-note{text-align:center;font-size:10px;color:#626d67;margin:14px 0 0}.footer-section{display:flex;justify-content:space-between;margin:0 36px;padding:16px 0 17px;font-size:8px;letter-spacing:1px;z-index:3;gap:10px}.footer-section b{font-weight:900}
.hud-section{padding:24px 40px 0;display:flex;justify-content:space-between;z-index:3}.hud-label{display:block;font-size:11px;letter-spacing:2px;font-weight:800;margin-bottom:4px}.hud-section strong{font-size:55px;letter-spacing:-2px;line-height:1}.timer{text-align:right;min-width:120px}.timer strong{color:var(--violet)}.timer small{font-size:22px;margin-left:3px}.timer-track{height:5px;width:116px;background:#dfdadc;border-radius:5px;margin-top:12px;overflow:hidden}.timer-track i{display:block;height:100%;background:var(--violet);transform-origin:left center}.timer.urgent strong{color:var(--danger)}.timer.urgent i{background:var(--danger)}.control-section{padding:0 36px 8px;z-index:4}.combo-line{display:flex;justify-content:space-between;font-weight:800;font-size:11px;letter-spacing:1px;padding:10px 4px 16px}.combo-line span:first-child{color:var(--violet)}.drag-pad{height:103px;border:2px dashed #a1b7a9;background:#e6eee5;border-radius:23px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;touch-action:none;cursor:grab}.drag-pad:active{cursor:grabbing;background:#dcebe1}.drag-pad>span{font-size:31px;color:#548273}.drag-pad div{text-align:center}.drag-pad b{font-size:16px;display:block}.drag-pad small{display:block;margin-top:9px;font-size:11px;color:#5e6b65}.feedback{position:absolute;top:9%;left:0;right:0;text-align:center;font-weight:900;font-size:32px;letter-spacing:-1px;color:var(--violet);opacity:0;transform:translateY(8px);transition:opacity .12s,transform .12s;pointer-events:none;text-shadow:0 2px var(--cream)}.feedback.show{opacity:1;transform:translateY(0)}.feedback.hit{color:var(--danger)}
#GamePanel:not([data-phase=attract]) .stage-sticker{display:none}#GamePanel[data-phase=result] .stage-section{position:absolute;inset:0;opacity:.22;z-index:-1}#GamePanel[data-phase=result] .stage-caption{display:none}.result-section{position:relative;flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px 48px;text-align:center}.result-star{font-size:85px;line-height:1;color:var(--mint);margin-bottom:20px}.result-section h2{font-size:34px;margin:14px 0 30px;letter-spacing:-1.7px}.result-label{font-size:11px;font-weight:800;letter-spacing:2px}.result-section>strong{font-size:104px;line-height:1.15;letter-spacing:-6px;color:var(--violet)}.result-details{display:flex;gap:40px;justify-content:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;padding:22px;margin:24px 0 0}.result-details div{display:flex;flex-direction:column;gap:7px}.result-details b{font-size:28px}.result-details span{font-size:12px;color:#626d67}.result-section>p:not(.eyebrow){font-size:14px;margin:23px 0}.text-button{background:transparent;color:#626d67;min-height:48px;font-size:13px;margin-top:13px}.pause-section{position:absolute;inset:0;z-index:10;background:#f5f3eef2;display:grid;place-items:center;text-align:center;padding:40px}.pause-section>div{width:100%;max-width:380px}.pause-section h2{font-size:30px;letter-spacing:-1px}.pause-section p:not(.eyebrow){margin-bottom:34px}
@media(min-aspect-ratio:1/1){body{background:radial-gradient(ellipse at 50% 50%,#eef0e7,#d3d8cf)}#GamePanel{width:min(100%,580px);box-shadow:0 0 80px #3a473215}.header-section{height:65px;min-height:65px}.title-section{padding-top:21px}h1{font-size:clamp(66px,12vh,116px);margin:20px 0 15px}.tagline{font-size:15px}.start-section{padding-top:10px}.primary-button{min-height:60px}.footer-section{padding:12px 0}.result-star{font-size:64px;margin-bottom:10px}.result-section h2{margin:12px 0 18px}.result-section>strong{font-size:85px}.result-details{padding:15px;margin-top:18px}.result-section>p:not(.eyebrow){margin:18px 0}}
@media(max-width:440px){.header-section{margin:0 22px;height:66px;min-height:66px}.brand{font-size:11px}.icon-button{min-width:39px;height:39px}.title-section{padding-top:25px}h1{letter-spacing:-5px;font-size:82px;margin:20px 0 18px}.eyebrow{font-size:8px;letter-spacing:1.8px}.title-star{right:-40px;font-size:35px}.tagline{font-size:14px}.start-section{padding:12px 25px}.instructions{font-size:11px;gap:20px;margin-bottom:12px}.primary-button{min-height:62px;font-size:18px}.footer-section{margin:0 22px;font-size:6px;padding:12px 0}.sticker-left{left:6%;font-size:14px;width:62px;height:62px}.sticker-right{right:6%;width:57px;height:57px;font-size:24px}.stage-caption{font-size:7px}.hud-section{padding:25px 25px 0}.hud-section strong{font-size:47px}.control-section{padding:0 22px 8px}.drag-pad{height:100px;padding:0 14px}.drag-pad b{font-size:13px}.drag-pad small{font-size:10px}.drag-pad>span{font-size:24px}.result-section{padding:16px 27px}.result-star{font-size:65px;margin-bottom:10px}.result-section h2{font-size:29px;margin:13px 0 20px}.result-section>strong{font-size:85px}.result-details{padding:15px;margin-top:20px}}
@media(prefers-reduced-motion:reduce){.feedback{transition:none}}
@media(min-width:760px) and (max-aspect-ratio:4/5){#GamePanel{width:min(100%,1080px)}.header-section{height:120px;min-height:120px;margin:0 52px}.brand{font-size:19px}.brand-mark{font-size:48px}.icon-button{min-width:60px;height:60px;font-size:30px}.sound-state{font-size:10px}.title-section{padding-top:36px}.eyebrow{font-size:15px}h1{font-size:176px;letter-spacing:-10px;margin:30px 0 26px}.title-star{font-size:60px;right:-73px}.tagline{font-size:24px}.start-section{padding:20px 64px}.instructions{font-size:19px;gap:38px;margin-bottom:22px}.primary-button{min-height:98px;font-size:28px;border-radius:22px;padding:20px 35px}.primary-button span{font-size:40px}.start-note{font-size:14px;margin-top:20px}.footer-section{margin:0 52px;padding:20px 0 26px;font-size:11px}.stage-caption{font-size:12px}.sticker-left{width:100px;height:100px;font-size:22px}.sticker-right{width:94px;height:94px;font-size:35px}.sticker-right small{font-size:10px}.hud-section{padding:36px 60px 0}.hud-label{font-size:17px}.hud-section strong{font-size:80px}.timer-track{width:165px;height:7px}.control-section{padding:0 52px 15px}.combo-line{font-size:17px;padding-bottom:23px}.drag-pad{height:150px;padding:0 30px}.drag-pad b{font-size:23px}.drag-pad small{font-size:16px}.drag-pad>span{font-size:42px}.feedback{font-size:45px}.result-section{padding:35px 100px}.result-star{font-size:145px;margin-bottom:40px}.result-section h2{font-size:52px;margin:24px 0 40px}.result-label{font-size:18px}.result-section>strong{font-size:155px}.result-details{padding:35px;gap:80px;margin-top:40px}.result-details b{font-size:42px}.result-details span{font-size:20px}.result-section>p:not(.eyebrow){font-size:22px;margin:35px 0}.text-button{font-size:19px;margin-top:20px}.pause-section>div{max-width:560px}.pause-section h2{font-size:40px}}
