:root{--ink:#18141b;--paper:#fff3d5;--yellow:#ffd345;--orange:#ff8139;--pink:#ff5e9e;--cyan:#72d6d1;--line:#ffffff26}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:'Segoe UI','Malgun Gothic',sans-serif;font-size:13px;overflow:hidden}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}button,a{touch-action:manipulation}button:hover{filter:brightness(1.1)}.game-header{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #ffedc42b;background:#17141c;gap:20px;position:relative;z-index:30}.brand{display:flex;align-items:center;gap:10px;color:var(--yellow);text-decoration:none;line-height:1;font-family:Impact,'Arial Narrow',sans-serif;font-size:36px;letter-spacing:-.3px}.brand img{transform:rotate(-8deg);width:38px;height:38px;border:2px solid #100c14;border-radius:11px}.brand-bang{color:var(--orange)}.brand small{display:block;font-family:'Segoe UI',sans-serif;font-size:6px;letter-spacing:2.2px;margin-top:5px;color:#f4ecd3}.game-header nav{display:flex;align-items:center;gap:32px}.game-header nav button{font-family:Impact,'Arial Narrow',sans-serif;font-size:16px;letter-spacing:.8px;padding:12px 0}.game-header nav button>span{color:var(--yellow);margin-right:5px;font-family:Arial}.game-header nav small{font-family:'Malgun Gothic',sans-serif;font-size:8px;color:#988f9e;letter-spacing:0;margin-left:4px}.header-tools{display:flex;align-items:center;gap:9px}.currency{background:#2d2531;border:1px solid #625044;border-radius:3px;padding:8px 13px;min-width:70px;text-align:center;font-size:13px}.currency i{color:var(--yellow);font-style:normal;font-size:11px;margin-right:8px}.currency b{font-weight:700}.icon-button{position:relative;width:31px;height:31px;display:inline-grid;place-items:center;border:1px solid #ffffff48;background:#1b1623aa;color:#f8eace;border-radius:3px;font-weight:700;font-size:17px}.sound-slash{position:absolute;left:11px;top:4px;color:#f18d77}.game-panel{height:calc(100dvh - 72px);min-height:620px}.scene{width:100%;height:100%;position:relative;isolation:isolate;overflow:hidden;background:#b7a183}.scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,#100b16dd 0%,#100b16b3 24%,#100b1610 48%,#100b1600 66%,#100b1670 100%),linear-gradient(0deg,#100c17fa 0%,#100c1777 21%,#100c1700 44%);pointer-events:none;z-index:1}.grain{position:absolute;inset:0;background-image:radial-gradient(#fff5d3 0.55px,transparent .75px);background-size:5px 5px;opacity:.045;pointer-events:none;z-index:1}.scene-top{position:absolute;left:32px;right:27px;top:19px;display:flex;align-items:center;justify-content:space-between;z-index:6;gap:20px}.course-label{display:flex;gap:8px;align-items:center;font-family:Consolas,monospace;letter-spacing:1.3px;font-size:9px;color:#fff2d3;max-width:60%}.course-label i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--yellow);box-shadow:0 0 10px #ffe16caa}.scene-buttons{display:flex;align-items:center;gap:8px}.connection{font-size:8px;letter-spacing:1.4px;color:#fff1d5bb;margin-right:8px}.lobby-copy{position:absolute;z-index:5;left:42px;top:85px;width:340px}.tape-tag{display:inline-block;background:#f9efd9;color:#1e1723;font-family:Consolas,monospace;font-size:8px;font-weight:bold;letter-spacing:1.5px;transform:rotate(-3deg);padding:6px 10px;border:2px solid #1b1420;box-shadow:3px 3px 0 var(--pink)}h1{font-family:Impact,'Arial Narrow',sans-serif;font-size:102px;line-height:.91;letter-spacing:-1px;color:var(--yellow);margin:22px 0 0;font-weight:900;transform:rotate(-2deg);text-shadow:4px 4px 0 #1c1523,6px 6px 0 var(--pink),-1px -1px 0 #ffe67e}h1>span{color:var(--orange)}h1 em{display:block;font-size:36px;line-height:1.15;font-style:normal;letter-spacing:.6px;color:#fff3d7;text-shadow:2px 2px 0 #1b1523,4px 4px 0 #d34079}.hero-korean{font-size:21px;letter-spacing:-1px;margin:21px 0 8px;font-weight:400}.hero-korean strong{font-weight:900}.hero-description{font-size:10px;line-height:1.9;color:#d8cccf;margin:0}.race-selector{display:flex;gap:8px;margin:22px 0 13px}.race-selector>button{flex:1;display:flex;align-items:center;text-align:left;gap:8px;background:#211c25d9;border:2px solid #746775;padding:11px 9px;position:relative}.race-selector>button.active{border-color:var(--yellow);background:#423324e8;box-shadow:2px 2px 0 #110b18}.mode-icon{font-family:Arial;font-size:25px;color:#afa0a9;line-height:1}.race-selector>button.active .mode-icon{color:var(--yellow)}.race-selector strong{font-family:Impact,'Arial Narrow',sans-serif;font-size:21px;font-weight:400;letter-spacing:.6px;display:block}.race-selector small{display:block;font-size:7px;color:#bfb1bc;margin-top:3px;white-space:nowrap}.race-selector i{position:absolute;top:5px;right:5px;font-family:Consolas;font-style:normal;font-size:6px;color:#ab98a4}.play-button{position:relative;display:flex;align-items:center;width:100%;padding:16px 19px;text-align:left;background:var(--orange);color:#17121a;border:3px solid #1c1420;box-shadow:5px 5px 0 var(--pink);transition:transform .15s,box-shadow .15s;gap:8px;font-weight:900}.play-button:hover{transform:translate(-1px,-1px);box-shadow:7px 7px 0 var(--pink);filter:none}.play-button>span{font-family:Impact,'Arial Narrow',sans-serif;font-size:30px;font-weight:400;letter-spacing:1px}.play-button>small{font-size:8px;font-weight:800;margin-top:7px}.play-button>i{font-style:normal;font-size:30px;line-height:1;margin-left:auto}.play-button kbd{margin-left:auto;background:#f9c175;border-color:#a3502b;box-shadow:none;color:#57301f;font-size:7px}.start-hint{display:flex;align-items:center;gap:4px;font-family:Consolas;font-size:7px;margin-top:16px;color:#b5a8b5;letter-spacing:.5px}.start-hint>span{margin-inline:5px}.start-hint>i{font-family:'Malgun Gothic';font-style:normal;font-size:7px;letter-spacing:0;margin-left:5px;color:#988a98}kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;background:#332c38;border:1px solid #8d7e91;color:#eee1d8;font:10px Consolas,monospace;padding:0 4px;box-shadow:0 2px 0 #171019}.track-info{position:absolute;right:32px;top:85px;width:247px;border:2px solid #ffeaca66;background:#201923e6;backdrop-filter:blur(14px);box-shadow:5px 5px 0 #0d0a1399;transform:rotate(1deg);z-index:5}.player-ticket{display:flex;gap:9px;align-items:center;padding:13px;border-bottom:1px dashed #8a778a;background:#2b2231}.avatar{background:var(--yellow);color:#211925;font-family:Arial;font-size:25px;line-height:1;padding:4px;border:2px solid #17121d;box-shadow:2px 2px 0 #a35074;transform:rotate(-7deg)}.player-ticket small{display:block;font-size:6px;font-family:Consolas;letter-spacing:1px;color:#b9abb8;margin-bottom:4px}.player-ticket strong{font-size:11px}.level{margin-left:auto;font-family:Consolas;font-size:8px;color:#baa9bb}.level b{color:var(--yellow);font-size:18px;margin-left:2px}.track-heading{padding:17px 17px 0}.track-heading>small{font-family:Consolas;font-size:7px;letter-spacing:1.3px;color:#bcaebe;display:flex;justify-content:space-between;align-items:center}.track-heading>small b{font-size:20px;color:var(--yellow);font-weight:400;line-height:.8}.track-heading h2{font-size:21px;letter-spacing:-1.2px;margin:12px 0 9px;font-weight:900}.track-tag{display:inline-block;border:1px solid #aa9371;color:#dcc589;font-size:7px;padding:3px 6px}.track-minimap{margin:12px 16px 10px;background:#130f1baa;border:1px solid #ffffff16;color:#f1e9d9;overflow:hidden}.track-minimap svg{display:block;width:100%;height:72px}.track-spec{display:flex;gap:10px;padding:0 16px}.track-spec>span{flex:1;min-width:0}.track-spec small{font-family:Consolas;font-size:6px;color:#a597a7;letter-spacing:.7px;display:block}.track-spec strong{font-family:Consolas;font-size:17px;display:block;white-space:nowrap;margin-top:4px;font-weight:400}.track-spec>span:nth-child(2)>strong{font-family:'Malgun Gothic';font-size:10px;font-weight:700;line-height:22px}.track-spec em,.track-spec strong>small{font-size:7px;font-style:normal;display:inline;margin-left:3px;color:#a89ba8;font-family:Consolas}.track-info>p{font-size:8px;line-height:1.9;color:#b6a8b8;margin:13px 16px;min-height:29px}.difficulty{margin:0 16px 12px;display:flex;align-items:center;justify-content:space-between;gap:7px}.difficulty label{font-family:Consolas;font-size:7px;color:#b6a6b9;letter-spacing:1px;white-space:nowrap}.difficulty select{background:#140f1c;color:#f5e7d5;border:1px solid #6d596e;padding:6px 5px;font-size:8px;max-width:145px}.garage-link{background:#f0e4cd;color:#27202b;border-top:2px solid #1c1322;padding:11px 16px;width:100%;text-align:left;font-size:9px;font-weight:bold}.garage-link>span{float:right;font-size:15px;line-height:12px}.racer-sticker{position:absolute;left:51%;bottom:calc(210px + 15%);z-index:3;transform:rotate(-9deg);font-family:Impact,'Arial Narrow';background:var(--yellow);color:#201727;font-size:11px;padding:7px 10px;border:2px solid #211528;box-shadow:3px 3px 0 #df6095}.racer-sticker span{display:block;font-size:25px;line-height:.6;text-align:center;position:absolute;top:35px;left:8px;color:var(--yellow);text-shadow:1px 1px #1c1722}.track-picker{position:absolute;left:32px;right:32px;bottom:0;z-index:8}.picker-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:10px}.picker-heading b{font-family:Impact,'Arial Narrow',sans-serif;font-size:20px;font-weight:400;letter-spacing:.8px}.picker-heading small{display:inline-block;font-size:8px;margin-left:13px;color:#c8b7c7}.track-count{font-family:Consolas;font-size:10px;color:#a99aad;display:flex;gap:6px;align-items:center}.track-count>b{font-family:Consolas;font-size:12px;color:var(--yellow)}.track-count i{font-family:Arial;font-style:normal;font-size:20px;color:var(--yellow);margin-left:5px}.track-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}.track-card{position:relative;min-width:0;padding:0;text-align:left;display:block;color:var(--paper);background:#241c2be6;border:2px solid #756276;transition:transform .15s,border-color .15s;overflow:hidden}.track-card:hover{transform:translateY(-4px);filter:none;border-color:#e5cfac}.track-card.selected{border-color:var(--yellow);box-shadow:3px 3px 0 var(--pink)}.track-card.selected:after{position:absolute;right:0;top:0;background:var(--yellow);content:'SELECTED';font:6px Consolas;font-weight:bold;letter-spacing:.6px;color:#211625;padding:4px 5px}.track-card-visual{height:58px;position:relative;overflow:hidden;background:linear-gradient(120deg,#ffffff10,#ffffff00)}.track-card-visual>svg{width:100%;height:100%;display:block}.track-card-visual>span{position:absolute;left:9px;top:6px;font-family:Impact;font-size:17px;color:#fff7dfbd}.track-card-title{border-top:1px solid #ffffff1f;padding:8px 10px}.track-card-title strong{font-size:10px;display:block;margin-bottom:5px;letter-spacing:-.4px}.track-card-title small{font:6px Consolas;color:#c2abc3;letter-spacing:.4px;display:flex;justify-content:space-between}.track-card-title i{color:var(--track-color);font-style:normal}.lobby-bottom{display:flex;justify-content:space-between;align-items:center;font-size:7px;color:#9d8fa2;height:30px}.lobby-bottom>span:last-child{font-family:Consolas;letter-spacing:1px}.lobby-bottom button{font-family:Consolas;font-size:7px;color:#c6b9c9}.lobby-bottom i{font-size:15px;font-style:normal;color:var(--yellow);vertical-align:middle;margin-left:6px}.scene-bottom{position:absolute;left:32px;right:32px;bottom:190px;display:flex;justify-content:space-between;gap:10px;z-index:3;font-size:8px;color:#e7d9c9;text-shadow:0 1px 5px #0f0a13;pointer-events:none}.scene-bottom .scene-coordinate{font-family:Consolas;font-size:6px;letter-spacing:1px;color:#dac5db88}.race-hud{position:absolute;left:38px;right:38px;top:68px;display:flex;justify-content:space-between;pointer-events:none;z-index:4}.place{display:flex;align-items:center;gap:8px;text-shadow:3px 3px 0 #211626}.place>strong{font-family:Impact;font-size:82px;color:var(--yellow);font-weight:400;line-height:1}.place>span{font-family:Impact;font-size:26px;color:#e5d6d5}.place small{font-family:Consolas;font-size:7px;display:block;margin-top:5px;letter-spacing:1.4px}.race-clock{text-align:right;font-family:Consolas;text-shadow:2px 2px 3px #181020}.race-clock>strong{display:block;font-size:34px;letter-spacing:-2px}.race-clock>small{font-size:7px;letter-spacing:2px;color:#eadcd1}.race-progress{position:absolute;top:84px;left:28%;right:28%;height:32px;z-index:5;pointer-events:none}.progress-line{height:4px;background:#1810209c;border:1px solid #ffefd877}.racer-dot{position:absolute;top:-3px;width:10px;height:10px;transform:translateX(-50%);border-radius:50%;border:1px solid #f2d7e0}.racer-dot.you{width:15px;height:15px;top:-6px;border:2px solid #fff0d3;box-shadow:0 0 0 2px #9a7421;z-index:2}.race-progress>span{position:absolute;font:6px Consolas;letter-spacing:1px;top:16px;color:#fff2d6}.race-progress>span:last-child{right:0}.countdown{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%) rotate(-6deg);font-family:Impact;font-size:160px;color:var(--yellow);text-shadow:5px 5px 0 #211527,10px 10px 0 var(--pink);z-index:10;pointer-events:none}.race-feedback{position:absolute;top:34%;left:50%;transform:translateX(-50%) rotate(-4deg) scale(.8);font:40px Impact,'Malgun Gothic';font-weight:900;color:#fff2c9;text-shadow:3px 3px #261b2d,5px 5px #d3437d;white-space:nowrap;z-index:10;pointer-events:none;opacity:0;transition:opacity .1s,transform .15s}.race-feedback.show{opacity:1;transform:translateX(-50%) rotate(-4deg) scale(1)}.race-feedback.miss{font-size:24px;color:#ffab87;text-shadow:2px 2px #392334}.driving-ui{position:absolute;z-index:7;left:50%;bottom:19px;width:min(680px,calc(100% - 60px));transform:translateX(-50%)}.rhythm-panel{display:flex;align-items:center;gap:15px;background:#1d1528e8;border:2px solid #5c435e;padding:10px 13px;margin-bottom:9px}.rhythm-caption{width:150px;flex-shrink:0}.rhythm-caption>span{font-family:Consolas;font-size:6px;color:#c6b3cc;letter-spacing:1.2px}.rhythm-caption>strong{font-size:8px;font-weight:400;line-height:1.6;display:block;margin-top:5px;color:#d8c5d5}.rhythm-track{position:relative;flex:1;height:38px;border:1px solid #77647e;background:#2c2135;overflow:hidden}.rhythm-track:before{content:'';position:absolute;top:50%;left:0;right:0;border-top:1px solid #6c576e}.rhythm-window{position:absolute;left:calc(50% - 14px);width:28px;top:0;bottom:0;background:#ffe27e26;border-inline:1px solid #d2b66866}.hit-line{position:absolute;top:0;bottom:0;left:50%;border-left:2px solid var(--yellow);z-index:3}.hit-label{font-size:6px;position:absolute;left:50%;bottom:0;transform:translateX(-50%);color:var(--yellow);z-index:4;background:#2b2332;padding:1px 3px}.beat-note{position:absolute;top:4px;transform:translateX(-50%);width:25px;height:25px;background:var(--yellow);color:#281f2d;font:bold 11px Consolas;display:grid;place-items:center;border:2px solid #16101f;box-shadow:1px 1px 0 #c28f4f}.beat-note.right{background:var(--pink);box-shadow:1px 1px 0 #ad3c6d}.beat-note.hit{opacity:.2}.combo{min-width:43px;text-align:center}.combo>strong{font-family:Impact;font-size:30px;color:var(--yellow);font-weight:400;line-height:1;display:block}.combo>small{font:6px Consolas;letter-spacing:1.1px;color:#bba8c3}.foot-dock{display:flex;align-items:center;gap:17px}.foot-button{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 20px;background:var(--yellow);border:3px solid #201225;box-shadow:4px 4px 0 #9d7a36;color:#1d1624;min-height:66px;user-select:none;-webkit-user-select:none;touch-action:none;transition:transform .06s}.foot-button>span b{font:28px Impact;letter-spacing:1px;display:block}.foot-button>span small{font-size:8px;font-weight:bold;display:block}.foot-button>kbd{background:#fff0ae;color:#594528;border:1px solid #b68a38;min-width:29px;height:30px;font-weight:bold}.foot-button>i{font-size:30px;font-style:normal}.right-foot{background:var(--pink);box-shadow:4px 4px 0 #a43c6d}.right-foot>kbd{background:#ffacd0;border-color:#b24071;color:#6d2948}.foot-button.pressed{transform:translate(3px,3px);box-shadow:none;filter:brightness(1.1)}.speed-meter{text-align:center;min-width:91px;background:#1b1325bf;padding:8px 10px}.speed-meter>strong{font:29px Impact;color:#fff1d3;display:block;font-weight:400}.speed-meter small{font:7px Consolas;color:#c4abc5;display:block;margin-top:3px}.speed-meter>div{height:3px;background:#55425b;margin-block:7px}.speed-meter i{display:block;height:100%;background:var(--cyan);width:0}.speed-meter>span{font-size:7px;color:#e2d0da}.control-strip{display:flex;justify-content:space-between;margin-top:10px;font-size:7px;color:#c7b3cd;align-items:center}.control-strip>span{display:flex;align-items:center;gap:4px}.control-strip i{font-style:normal;margin:0 4px}.control-strip kbd{height:14px;min-width:16px;font-size:7px}.control-strip button{font-family:Consolas;font-size:7px;color:#e4ccdf}.game-overlay{position:absolute;inset:0;background:#110b1bc9;backdrop-filter:blur(8px);z-index:20;display:grid;place-items:center;padding:20px}.result-card{background:#f7edda;border:3px solid #1d1423;box-shadow:9px 9px 0 var(--pink);width:min(380px,100%);padding:27px;color:#2b2030;text-align:center;transform:rotate(-1deg)}.eyebrow{font:7px Consolas;letter-spacing:2px;color:#ba7843;font-weight:bold}.result-duck{font-size:50px;margin:15px 0 10px}.result-card h2{font-size:24px;letter-spacing:-1.4px;margin:12px 0;font-weight:900}.result-card>p{font-size:10px;line-height:1.9;white-space:pre-line;color:#856f7e}.result-stats{display:flex;justify-content:space-between;border-block:1px dashed #b5a291;padding:15px 0;margin:19px 0}.result-stats small{font-size:8px;color:#9f8797;display:block}.result-stats strong{font-family:Impact;font-size:28px;font-weight:400;display:block;margin-top:4px}.result-stats strong small{display:inline;margin-left:2px;font-family:Consolas}.result-card .play-button{display:block;text-align:center;font-size:14px;padding:14px 10px;box-shadow:4px 4px 0 var(--pink)}.result-card .play-button>span{font-family:Arial;font-size:20px;float:right;line-height:16px}.text-button{font-size:9px;margin-top:19px;color:#7e637a}.webgl-error{position:absolute;inset:0;background:#22162e;z-index:25;display:grid;place-items:center;text-align:center;padding:30px;line-height:2}.toast-outside{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--yellow);border:2px solid #201725;box-shadow:4px 4px 0 var(--pink);color:#201425;font-size:12px;font-weight:700;padding:13px 20px;z-index:100;max-width:90%;white-space:nowrap}dialog{background:#f7efdf;color:#241c2a;width:min(600px,calc(100% - 30px));border:3px solid #23182d;box-shadow:8px 8px 0 var(--pink);padding:25px;max-height:85dvh}dialog::backdrop{background:#130c20c4;backdrop-filter:blur(7px)}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head .eyebrow{color:#9c695c}.modal-head>.icon-button{background:#2b2031;border-color:#140c1e;color:#fff0d1}.modal-head+.modal-content h2,#modal-content>h2{font-size:26px;letter-spacing:-1px;font-weight:900;margin:20px 0 10px}#modal-content>p{font-size:11px;line-height:1.9;color:#887284}.quest-row{display:flex;align-items:center;gap:13px;padding:16px 12px;border:1px solid #c7b8b8;box-shadow:2px 2px 0 #d6c7c1;margin-top:12px;background:#fff9eb}.quest-row>span{font-size:24px}.quest-row>div{flex:1}.quest-row h3{font-size:12px;margin:0 0 6px}.quest-row p{font-size:9px;margin:3px 0;color:#9a8094}.quest-row button{font-size:9px;background:var(--orange);border:1px solid #8d5535;color:#34202c;padding:8px 9px;font-weight:800}.quest-row button:disabled{background:#e0d5ca;border-color:#c1adaf;color:#9f879a}.skins{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.skin-card{padding:18px 10px 12px;border:2px solid #cdbbc6;text-align:center;background:#fff6e6}.skin-card.selected{border-color:#342239;background:#fbe9b7;box-shadow:3px 3px 0 var(--pink)}.skin-preview{width:74px;height:68px;margin:auto;border-radius:8px}.skin-card h3{font-size:12px;margin:10px 0 5px}.skin-card p{font-size:9px;color:#8f7487}.skin-card button{border:1px solid #9f8495;width:100%;padding:8px 2px;font-size:9px;background:#eddddb;color:#755772}.skin-card button.buy-skin{background:var(--orange);font-weight:bold;color:#42293e;border-color:#b57958}.modal-stats{display:flex;gap:10px;margin-top:20px}.modal-stats>div{flex:1;border:1px solid #c7b5bf;padding:12px;text-align:center;background:#fff4e0}.modal-stats small{font-size:9px;color:#a08397;display:block}.modal-stats strong{font:28px Impact;display:block;margin-top:6px}.records-table{border-collapse:collapse;width:100%;font-size:10px;margin-top:15px}.records-table td,.records-table th{border-bottom:1px solid #ccb9c5;padding:12px 4px;text-align:left}.records-table th{font-size:8px;font-weight:400;color:#a0859a}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.help-grid>div{padding:15px;border:1px solid #c4b5bd;background:#fff8e9;font-size:12px}.help-grid p{font-size:10px;line-height:1.9;color:#92788c}.game-panel:fullscreen{height:100dvh;min-height:0}.is-racing .scene-shade{background:linear-gradient(0deg,#110c1bd9,#100b1600 40%),linear-gradient(180deg,#130b2380,#130b2300 30%)}.is-racing .scene-bottom{bottom:190px}.is-racing .scene-coordinate{display:none}.track-change .scene canvas{animation:scene-in .35s ease-out}@keyframes scene-in{from{opacity:.35;filter:blur(4px)}to{opacity:1;filter:none}}@media(min-height:850px) and (min-width:1000px){.lobby-copy{top:108px}.lobby-copy h1{font-size:123px}.lobby-copy h1 em{font-size:43px}.hero-korean{margin-top:24px;font-size:24px}.hero-description{font-size:11px}.race-selector{margin-top:28px}.track-info{top:120px;width:260px}.track-card-visual{height:75px}.track-card-title{padding-block:10px}.track-picker{bottom:7px}.track-heading h2{font-size:23px}.track-minimap svg{height:85px}.track-info>p{font-size:9px}.scene-bottom{bottom:220px}}@media(max-width:1100px){.lobby-copy{width:300px;left:30px;top:78px}h1{font-size:90px}h1 em{font-size:32px}.hero-korean{font-size:19px;margin-top:18px}.hero-description{font-size:9px}.race-selector{gap:7px;margin-top:19px}.race-selector button{padding:10px 7px}.race-selector strong{font-size:19px}.race-selector small{font-size:6px}.track-info{right:25px;width:218px;top:78px}.track-heading h2{font-size:19px}.track-heading{padding-inline:14px}.track-info>p{font-size:7px;margin:11px 14px}.track-spec{padding-inline:14px}.track-spec strong{font-size:15px}.track-spec>span:nth-child(2)>strong{font-size:8px}.track-minimap{margin:10px 13px}.track-minimap svg{height:60px}.track-info .difficulty{margin-inline:13px}.player-ticket{padding:11px}.track-info .player-ticket strong{font-size:10px}.track-card-title strong{font-size:9px}.track-card-title small{font-size:5.5px}.track-cards{gap:9px}.game-header nav{gap:25px}.game-header nav small{display:none}.racer-sticker{left:49%}.track-picker{left:25px;right:25px}.play-button{padding:15px}.play-button>span{font-size:26px}.play-button>small{font-size:7px}.start-hint>i{font-size:6px}.track-card-visual{height:56px}.picker-heading b{font-size:18px}}@media(max-width:800px){.game-header{height:62px;padding-inline:18px;gap:10px}.brand{font-size:30px;gap:8px}.brand img{width:31px;height:31px}.brand small{font-size:5px;letter-spacing:1.5px}.game-header nav{gap:17px}.game-header nav button{font-size:13px}.header-tools{gap:5px}.currency{min-width:50px;padding:7px 9px;font-size:11px}.currency i{font-size:9px;margin-right:4px}.icon-button{width:28px;height:28px;font-size:15px}.game-panel{height:calc(100dvh - 62px);min-height:730px}.lobby-copy{left:25px;top:85px;width:280px}.lobby-copy h1{font-size:86px}.lobby-copy h1 em{font-size:29px}.track-info{width:200px;right:23px;top:90px}.track-heading h2{font-size:18px}.track-heading>small{font-size:6px}.track-heading>small b{font-size:17px}.player-ticket small{font-size:5px}.player-ticket strong{font-size:9px}.avatar{font-size:20px}.track-minimap svg{height:55px}.track-spec{gap:5px}.track-spec strong{font-size:14px}.track-spec small{font-size:5px}.track-card-visual{height:58px}.track-cards{display:flex;gap:10px;overflow-x:auto;overflow-y:visible;padding:0 4px 6px 0;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#b75a86 #31233a}.track-card{flex:0 0 155px;scroll-snap-align:start}.track-card-title strong{font-size:11px}.track-card-title small{font-size:6px}.track-picker{left:23px;right:23px;bottom:6px}.track-card-visual{height:62px}.scene-bottom{bottom:192px;left:25px;right:25px}.scene-top{left:25px;right:23px}.scene-coordinate{display:none}.lobby-bottom>span:first-child{font-size:6px}.lobby-bottom button{font-size:6px}.lobby-bottom>span:last-child{font-size:6px}.racer-sticker{left:47%;bottom:270px}.race-feedback{font-size:34px}.race-hud{left:25px;right:25px}.place>strong{font-size:72px}.race-progress{left:28%;right:28%}.driving-ui{width:calc(100% - 40px);bottom:20px}.scene-shade{background:linear-gradient(90deg,#100b16e6 0%,#100b16b3 30%,#100b1625 60%,#100b1633 100%),linear-gradient(0deg,#100c17fa 0%,#100c1788 28%,#100c1700 55%)}}@media(max-width:600px){body{overflow:auto}.game-header{padding-inline:14px;height:60px}.brand{font-size:27px}.brand small{font-size:4px;letter-spacing:1.4px}.brand img{width:29px;height:29px}.game-header nav{gap:11px}.game-header nav button{font-size:0}.game-header nav button>span{font-size:19px;margin:0}.game-header nav button:nth-child(1):after{content:'선수';display:block;font-size:6px;font-family:'Malgun Gothic';letter-spacing:0;margin-top:3px;color:#ad9cae}.game-header nav button:nth-child(2):after{content:'도전';display:block;font-size:6px;font-family:'Malgun Gothic';letter-spacing:0;margin-top:3px;color:#ad9cae}.game-header nav button:nth-child(3){display:none}.header-tools .currency{font-size:10px;padding:6px 7px;min-width:42px}.header-tools .icon-button{width:25px;height:25px;font-size:13px}.header-tools{gap:5px}.connection{display:none}.game-panel{height:max(800px,calc(100dvh - 60px));min-height:800px}.scene-top{left:18px;right:15px;top:14px}.course-label{font-size:7px;max-width:75%;letter-spacing:.7px}.scene-buttons .icon-button{width:26px;height:26px}.lobby-copy{left:22px;top:64px;width:245px}.tape-tag{font-size:6px;letter-spacing:1.1px;padding:5px 7px}.lobby-copy h1{font-size:81px;margin-top:18px}.lobby-copy h1 em{font-size:28px}.hero-korean{font-size:19px;margin-top:18px}.hero-description{font-size:8px}.race-selector{margin-top:19px;gap:6px}.race-selector>button{padding:9px 6px;gap:6px}.race-selector strong{font-size:18px}.race-selector small{font-size:5.5px}.mode-icon{font-size:20px}.play-button{padding:12px}.play-button>span{font-size:26px}.play-button>small{font-size:6px}.play-button kbd{font-size:6px;min-width:24px;padding-inline:2px}.play-button>i{font-size:25px}.start-hint{font-size:6px;gap:3px;margin-top:13px}.start-hint>i{display:none}.start-hint kbd{font-size:8px;min-width:16px;height:16px}.track-info{top:auto;bottom:207px;left:22px;right:22px;width:auto;display:grid;grid-template-columns:1fr 110px;transform:rotate(-1deg);background:#211728ec}.player-ticket{grid-column:1;grid-row:1;padding:9px 11px;border-bottom:1px dashed #78687c}.player-ticket .avatar{font-size:18px;padding:3px}.player-ticket>div small{font-size:4px}.player-ticket strong{font-size:9px}.level{font-size:6px}.level b{font-size:14px}.track-heading{padding:10px 11px 7px;grid-row:2;grid-column:1}.track-heading>small{font-size:5px;letter-spacing:1px}.track-heading>small b{display:none}.track-heading h2{font-size:18px;margin:7px 0 0}.track-tag{display:none}.track-minimap{grid-column:2;grid-row:1/3;margin:9px 9px 8px 0;align-self:center}.track-minimap svg{height:53px}.track-spec{grid-column:1;grid-row:3;padding:0 11px 9px;gap:8px;max-width:210px}.track-spec small{font-size:5px}.track-spec strong{font-size:12px;margin-top:3px}.track-spec>span:nth-child(2)>strong{font-size:8px;line-height:16px}.track-spec em,.track-spec strong>small{font-size:6px}.track-info>p{display:none}.difficulty{grid-column:2;grid-row:3;margin:0 9px 8px 0;display:block}.difficulty label{font-size:4px;display:block;letter-spacing:.7px;margin-bottom:4px}.difficulty select{font-size:6px;padding:4px 2px;max-width:100%;width:100%}.garage-link{display:none}.track-picker{left:19px;right:19px;bottom:6px}.picker-heading{margin-bottom:9px}.picker-heading b{font-size:16px;letter-spacing:.5px}.picker-heading small{display:none}.track-count{font-size:8px}.track-count b{font-size:10px}.track-card{flex-basis:145px}.track-card-visual{height:57px}.track-card-title{padding:8px}.track-card-title strong{font-size:10px}.track-card-title small{font-size:6px}.track-cards{gap:9px}.lobby-bottom{font-size:5px;height:26px}.lobby-bottom>span:first-child{display:none}.lobby-bottom button,.lobby-bottom>span:last-child{font-size:6px}.scene-bottom{bottom:183px;font-size:6px;left:22px;right:22px}.racer-sticker{left:auto;right:22px;bottom:430px;font-size:8px;padding:6px;transform:rotate(7deg)}.scene-shade{background:linear-gradient(90deg,#120c19d9 0%,#120c19b8 35%,#120c1922 80%),linear-gradient(0deg,#100b17fc 0%,#100b1744 58%,#100b1722 100%)}.race-hud{left:21px;right:21px;top:64px}.place>strong{font-size:65px}.place>span{font-size:22px}.race-clock>strong{font-size:27px;letter-spacing:-1.5px}.race-progress{left:29%;right:26%;top:80px}.race-progress>span{font-size:5px;letter-spacing:0}.race-feedback{top:34%;font-size:28px}.race-feedback.miss{font-size:18px}.countdown{font-size:130px;top:38%}.driving-ui{width:calc(100% - 28px);bottom:24px}.rhythm-panel{gap:8px;padding:9px}.rhythm-caption{width:90px}.rhythm-caption>span{font-size:4.5px;letter-spacing:.5px}.rhythm-caption>strong{font-size:6px}.combo{min-width:30px}.combo>strong{font-size:26px}.combo small{font-size:5px}.rhythm-track{height:34px}.beat-note{width:23px;height:23px;font-size:10px}.foot-dock{gap:9px}.foot-button{padding:9px 10px;gap:7px;min-height:63px}.foot-button>span b{font-size:22px}.foot-button>span small{font-size:7px}.foot-button>kbd{min-width:23px;height:26px;font-size:10px}.foot-button>i{display:none}.speed-meter{min-width:64px;padding:6px}.speed-meter>strong{font-size:25px}.speed-meter small{font-size:5px}.speed-meter>span{font-size:6px}.control-strip{font-size:6px;gap:4px}.control-strip>span:nth-child(2){display:none}.control-strip button{font-size:6px}.is-racing .game-panel{height:calc(100dvh - 60px);min-height:590px}.is-racing .scene-bottom{bottom:205px;font-size:6px}.is-racing .scene-shade{background:linear-gradient(0deg,#130c23e6 0%,#100b1600 45%),linear-gradient(180deg,#130c2366,#100b1600 25%)}.help-grid{grid-template-columns:1fr}.skins{gap:7px}.skin-card{padding:13px 5px 9px}.skin-card h3{font-size:10px}.skin-card button{font-size:8px}.skin-preview{width:65px;height:62px}.result-card{padding:22px}.result-card h2{font-size:22px}}@media(max-height:740px) and (min-width:801px){.game-panel{min-height:620px}.lobby-copy{top:65px}.tape-tag{font-size:6px;padding:4px 7px}.lobby-copy h1{font-size:79px;margin-top:16px}.lobby-copy h1 em{font-size:28px}.hero-korean{font-size:19px;margin-top:17px}.hero-description{font-size:8px;line-height:1.7}.race-selector{margin-top:16px}.race-selector button{padding:9px 8px}.play-button{padding:12px 14px}.play-button>span{font-size:26px}.start-hint{margin-top:12px}.track-info{top:65px}.track-minimap svg{height:50px}.track-info>p{margin-block:9px}.track-heading{padding-top:13px}.track-heading h2{margin-top:9px}.track-picker{bottom:1px}.track-card-visual{height:48px}.picker-heading b{font-size:17px}.track-card-title{padding-block:7px}.lobby-bottom{height:26px}.scene-bottom{bottom:169px}.racer-sticker{bottom:290px}.track-heading h2{font-size:19px}.player-ticket{padding-block:9px}.difficulty{margin-bottom:9px}.garage-link{padding-block:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:600px){.lobby-copy>.play-button>span{white-space:nowrap;font-size:26px}.lobby-copy>.play-button>small,.lobby-copy>.play-button>kbd{display:none}.lobby-copy{top:58px}.lobby-copy>.play-button{min-height:57px}}

/* Anchor the label and arrow to the rendered player, at every viewport size. */
.racer-sticker{left:0;top:0;right:auto;bottom:auto;transform:translate(-50%,calc(-100% - 16px));visibility:hidden;pointer-events:none;white-space:nowrap}
.racer-sticker span{top:100%;left:50%;width:0;height:0;margin-top:2px;transform:translateX(-50%);font-size:0;line-height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:14px solid var(--yellow);filter:drop-shadow(1px 1px 0 #211528);text-shadow:none}
