.racing-game-page{--bg: #0e1827;--bg-soft: #142238;--panel: #132033;--panel-2: #1a2b43;--line: #2d476d;--text: #e7efff;--muted: #8fa8cc;--brand: #2fb37d;--brand-2: #1fa06c;--danger: #d25555;--warn: #f2aa48;min-height:100vh;padding:20px;color:var(--text);font-family:Noto Sans KR,Pretendard,sans-serif;background:radial-gradient(1000px 400px at 15% -10%,#2a4d86 0%,transparent 60%),radial-gradient(900px 420px at 100% 0%,#225450 0%,transparent 58%),var(--bg)}.racing-game-page *{box-sizing:border-box}.racing-shell-card{width:min(1240px,100%);margin:0 auto;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#18263beb,#131f30f2);box-shadow:0 16px 35px #0000003d;padding:16px}.racing-card{--race-text-glow-soft: 0 0 7px rgba(6, 16, 30, .85), 0 0 14px rgba(20, 68, 117, .62), 0 0 22px rgba(49, 139, 230, .42);--race-text-glow-strong: 0 0 8px rgba(7, 19, 35, .9), 0 0 16px rgba(23, 80, 136, .72), 0 0 28px rgba(67, 162, 255, .52);display:grid;gap:12px;background-image:linear-gradient(180deg,var(--racing-bg-overlay-top, rgba(8, 18, 33, .38)),var(--racing-bg-overlay-bottom, rgba(8, 17, 30, .5))),var(--racing-bg-image);background-size:cover;background-position:center;background-repeat:no-repeat}.racing-top-toggle{display:flex;justify-content:flex-end}.racing-collapse-btn{min-width:86px}.racing-head-wrap.collapsed{display:none}.racing-card :is(.racing-title,.racing-subtitle,.pet-name-input-wrap label,.race-config-field label,.racing-meta,.race-state,.race-auto-scroll-toggle,.race-empty-state,.race-roster-head,.race-roster-head strong,.race-roster-head span,.race-roster-stats,.pet-type-text,.race-status,.race-cooldown-text,.race-unified-index,.race-lane-finish,.race-event,.race-ranking h3,.race-ranking li,.race-ranking li strong,.race-log-card h3,.race-log-item,.race-log-time,.race-log-empty,.race-result-list li,.race-result-list li strong,.race-skill-table th,.race-skill-table td){text-shadow:var(--race-text-glow-soft)}.racing-card :is(.racing-title,.race-state,.race-status,.race-unified-index,.race-lane-finish,.race-event,.race-ranking li strong,.race-result-list li strong){text-shadow:var(--race-text-glow-strong)}.racing-head{display:grid;grid-template-columns:minmax(340px,500px) 1fr;align-items:stretch;gap:12px}.racing-config-panel{border:1px solid rgba(94,136,191,.52);border-radius:13px;background:linear-gradient(180deg,#0d1d2f4d,#0a162466);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);padding:12px;display:grid;gap:8px}.racing-actions-panel{border:1px solid rgba(94,136,191,.52);border-radius:13px;background:linear-gradient(180deg,#0c1b2c42,#0914215c);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);padding:10px;display:grid;gap:10px;align-content:start}.racing-title{margin:0;color:#cfe6ff;font-size:1.45rem}.racing-subtitle{margin:2px 0 0;color:var(--muted)}.pet-name-input-wrap{display:grid;gap:8px;max-width:100%}.pet-name-input-wrap label{font-size:.8rem;color:#9ec2eb;font-weight:700}.pet-name-input{padding:8px 10px;font-size:.88rem}.pet-name-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.pet-name-shuffle-btn{white-space:nowrap;min-width:92px;padding-left:12px;padding-right:12px}.skill-info-btn{margin-top:2px;width:100%}.racing-track-options{border:1px solid rgba(91,132,188,.42);border-radius:11px;background:linear-gradient(180deg,#0a182859,#08121f70);padding:10px;display:grid;gap:8px}.racing-track-options-title{font-size:.78rem;color:#9fc6f1;font-weight:700;letter-spacing:.02em}.race-config-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.race-config-field{display:grid;gap:5px}.racing-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start}.racing-actions-panel .skill-info-btn{margin-top:0}.racing-meta{display:flex;gap:8px;flex-wrap:wrap;color:#b9d0f0;font-size:.86rem}.race-auto-scroll-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(101,145,196,.48);border-radius:999px;padding:4px 10px;background:#111e2e57;color:#cde3ff;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.race-auto-scroll-toggle input{width:14px;height:14px;accent-color:#4fd7a1}.race-state{border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:#111e2e5c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.race-state.running{border-color:#5be7acb3;background:#20574299;color:#c8ffe3}.race-state.finished{border-color:#ffd774cc;background:#53411394;color:#ffeab6}.race-track-wrap{display:grid;gap:10px}.race-empty-state{border:1px dashed rgba(104,145,198,.5);border-radius:10px;padding:14px 12px;color:#9ab5d8;text-align:center;background:#0a142138;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.race-unified-layout{--race-row-height: 73px;display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:12px;align-items:stretch}.race-unified-layout.is-running{align-items:start}.race-roster{display:grid;gap:8px}.race-unified-layout.is-running .race-roster{padding-top:8px;padding-bottom:8px}.race-roster-item{border:1px solid rgba(82,124,179,.48);border-radius:11px;background:linear-gradient(180deg,#0e1b2b42,#0a152357);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:6px 8px;min-height:var(--race-row-height);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.race-unified-layout.is-running .race-roster-item{min-height:var(--race-row-height);height:var(--race-row-height);padding:6px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.race-roster-head{display:flex;align-items:center;gap:6px;color:#c8dcfa;font-size:.85rem;flex:1 1 100%;min-width:0}.race-unified-layout.is-running .race-roster-head{flex:1 1 auto}.race-roster-head strong{color:#8fc1ff}.race-roster-head span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.race-unified-layout.is-running .race-roster-head span{max-width:140px}.race-roster-stats{margin-left:auto;min-width:0;display:flex;align-items:center;gap:7px;color:#d7e9ff;font-size:.76rem;font-variant-numeric:tabular-nums;white-space:nowrap}.race-unified-layout.is-running .race-roster-stats{gap:8px}.pet-type-text{color:#9fc6ef;font-size:.72rem;font-weight:700}.race-unified-layout.is-running .pet-type-text{display:none}.pet-picker{display:flex;gap:6px;margin-top:0}.pet-option{border:1px solid rgba(77,120,176,.58);border-radius:9px;padding:2px 4px;background:#0d1a2b57;color:#d6e8ff;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:.67rem;font-weight:700}.pet-option.active{border-color:#6bc2ff;background:#1b3f6061;color:#f0f8ff;box-shadow:0 0 0 1px #6bc2ff29}.pet-option:hover{border-color:#82bef9d6}.race-unified-track-scroll{min-width:0;width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:rgba(110,162,225,.55) rgba(8,20,34,.34)}.race-unified-track-scroll::-webkit-scrollbar{height:9px}.race-unified-track-scroll::-webkit-scrollbar-track{background:#08142257;border-radius:999px}.race-unified-track-scroll::-webkit-scrollbar-thumb{background:#6ea2e18c;border-radius:999px}.race-unified-track{position:relative;border:1px solid var(--track-border-color, rgba(80, 120, 172, .52));border-radius:12px;background:linear-gradient(180deg,var(--track-shell-top, rgba(17, 31, 50, .54)),var(--track-shell-bottom, rgba(11, 20, 33, .62)));overflow:hidden;padding:8px 10px;display:grid;gap:8px;height:100%;width:var(--track-world-width, 100%);min-width:100%}.race-unified-layout:not(.is-running) .race-unified-track{grid-template-rows:repeat(var(--lane-count, 1),minmax(0,1fr))}.race-unified-lane{position:relative;height:var(--race-row-height);border:1px solid var(--lane-border-color, rgba(72, 109, 159, .35));border-radius:10px;background-image:linear-gradient(180deg,var(--lane-scene-overlay-top, rgba(20, 38, 27, .16)),var(--lane-scene-overlay-bottom, rgba(16, 31, 22, .28))),var(--lane-track-pattern-image),var(--racing-bg-image),linear-gradient(180deg,var(--lane-base-top, rgba(10, 26, 43, .82)),var(--lane-base-bottom, rgba(8, 18, 31, .86)));background-repeat:no-repeat,repeat-x,no-repeat,no-repeat;background-size:100% 100%,220px 56px,cover,100% 100%;background-position:left top,calc(-1 * var(--lane-pattern-shift, 0px)) center,calc(50% + var(--lane-scene-x-shift, 0px)) calc(50% + var(--lane-scene-y-shift, 0px)),left top;box-shadow:inset 0 0 0 1px var(--lane-inner-line-color, rgba(111, 160, 217, .24));overflow:hidden;z-index:0}.race-lane-scenery{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;overflow:hidden;opacity:var(--lane-scenery-opacity, .58)}.race-lane-scenery:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--lane-scenery-strip-image);background-repeat:repeat-x;background-size:220px 56px;background-position:left center;opacity:var(--lane-scenery-strip-opacity, .3)}.race-lane-scenery-item{position:absolute;top:50%;width:56px;height:40px;transform:translate(-50%,calc(-50% + var(--scene-y, 0px))) scale(var(--scene-scale, 1));opacity:var(--scene-opacity, .56);z-index:1}.race-lane-scenery-item:nth-child(2n){top:54%}.race-lane-scenery-item:nth-child(3n){top:46%}.race-lane-scenery-mark{width:100%;height:100%;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.race-lane-scenery-item.is-back{filter:saturate(.9)}.race-lane-scenery-item.is-mid{filter:saturate(.95)}.race-lane-scenery-item.is-front{filter:saturate(1.02)}.race-unified-layout:not(.is-running) .race-unified-lane{height:var(--race-row-height);min-height:var(--race-row-height)}.race-unified-lane:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--lane-center-line-color, rgba(146, 181, 227, .34));z-index:2}.race-unified-index{position:absolute;left:8px;top:6px;font-size:.68rem;color:var(--lane-index-color, #8eb6df);font-weight:700;z-index:2}.race-lane-finish{position:absolute;right:0;top:0;bottom:0;border-left:3px solid #ffd470;color:#ffd470;font-size:.62rem;font-weight:800;letter-spacing:.08em;display:flex;align-items:flex-start;justify-content:flex-end;padding:4px 4px 0 0;z-index:0;pointer-events:none}.race-unified-finish{z-index:0}.race-unified-runner{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:3;transition:left .13s linear;will-change:left}.race-runner-name{position:absolute;left:50%;bottom:calc(100% - 14px);transform:translate(-50%);display:block;max-width:128px;color:#0b0f14;font-size:.83rem;font-weight:900;line-height:1.15;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;text-shadow:0 0 2px rgba(255,255,255,1),0 0 4px rgba(255,255,255,.98),0 0 7px rgba(255,255,255,.9),0 0 11px rgba(255,255,255,.78),0 0 16px rgba(255,255,255,.62),0 1px 0 rgba(255,255,255,.9);pointer-events:none;z-index:5}.race-pet-visual{--race-pet-anim-speed: 1;width:62px;height:52px;display:grid;place-items:center;position:relative}.race-pet-visual.boosted{--race-pet-anim-speed: 2}.race-pet-visual.running{--race-pet-anim-speed: 1.3}.race-pet-visual.running.boosted{--race-pet-anim-speed: 2}.race-cooldown-wrap{position:absolute;left:50%;top:100%;transform:translate(-50%,-2px);width:56px;height:9px;border:1px solid rgba(111,154,210,.66);border-radius:999px;background:#081423d6;overflow:hidden;pointer-events:none;z-index:5}.race-cooldown-fill{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#3ad698db,#50acffe0);transition:width .12s linear}.race-cooldown-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.46rem;font-weight:700;color:#e9f6ff;letter-spacing:.01em;line-height:1}.race-pet-visual.shielded:after{content:"";position:absolute;width:54px;height:54px;border-radius:999px;border:2px solid rgba(97,189,255,.95);box-shadow:0 0 10px #61bdffcc,inset 0 0 10px #61bdff66;background:radial-gradient(circle,rgba(92,179,255,.1),rgba(92,179,255,.02) 62%,transparent 72%);animation:shield-ring .95s ease-in-out infinite;pointer-events:none}.rabbit-racer{width:58px;height:44px;display:grid;place-items:center;transform-origin:50% 90%;animation:rabbit-hop calc(.65s / var(--race-pet-anim-speed, 1)) ease-in-out infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.rabbit-racer-svg{width:100%;height:100%}.rabbit-racer.compact{width:30px;height:22px;animation:none;filter:none}.horse-racer{width:58px;height:44px;display:grid;place-items:center;transform-origin:50% 90%;animation:horse-trot calc(.56s / var(--race-pet-anim-speed, 1)) ease-in-out infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.race-pet-visual.stunned .rabbit-racer,.race-pet-visual.stunned .horse-racer{animation-play-state:paused}.horse-racer-svg{width:100%;height:100%}.horse-racer.compact{width:30px;height:22px;animation:none;filter:none}.race-event{border:1px solid rgba(111,150,199,.65);border-radius:999px;padding:2px 7px;font-size:.7rem;line-height:1.2;font-weight:700;color:#d9ebff;background:#152941e6;white-space:nowrap}.race-unified-runner>.race-event{position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%) scale(1);transform-origin:100% 50%;z-index:4;pointer-events:none;animation:race-event-pop 1.04s cubic-bezier(.2,1.25,.32,1) both}.race-event.is-attack{border-color:#ffa078d9;background:#68321adb;color:#ffe3c9}.race-event.is-shield{border-color:#7cc4ffdb;background:#1d476fdb;color:#deefff}.race-event.is-boost{border-color:#60d395cc;background:#235b41d9;color:#d8ffe7}.race-event.is-run{border-color:#70d4ffd6;background:#184566db;color:#def4ff}.race-event.is-stun{border-color:#ff9696d9;background:#612828d9;color:#ffdcdc}.race-event.is-finished{border-color:#ffdd7bdb;background:#5f471edb;color:#fff0be}.race-event.is-slow{border-color:#bc98ffd9;background:#463270d6;color:#efe2ff}.race-event.is-evade{border-color:#ffc678e6;background:#724a1cdb;color:#ffefcf}.race-status{font-size:.75rem;color:#9bd0ff;font-weight:700}.carrot-shot{position:absolute;left:0;top:0;width:18px;height:18px;transform:translate(-50%,-50%) rotate(var(--shot-rotate, -30deg));z-index:8;pointer-events:none;transition:left .12s linear,top .12s linear,transform .12s linear;filter:drop-shadow(0 0 5px rgba(255,174,73,.7))}.carrot-shot-svg{width:100%;height:100%;display:block}.map-hazard{position:absolute;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:2;transition:left .13s linear;will-change:left}.map-hazard-boulder{width:25px;height:25px;transform:translate(-50%,-50%) rotate(var(--boulder-angle, 0deg))}.map-hazard-boulder-spin{display:block;width:100%;height:100%;animation:boulder-roll .6s linear infinite;filter:drop-shadow(0 0 6px rgba(166,180,210,.42))}.map-hazard-mud{width:48px;height:18px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.map-hazard-svg{width:100%;height:100%;display:block}.race-ranking{margin-top:4px;border:1px solid rgba(94,142,201,.55);border-radius:12px;background:#0d182647;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12px}.race-ranking h3{margin:0 0 8px;color:#a7d7ff}.race-ranking ol{margin:0;padding-left:20px;display:grid;gap:6px}.race-ranking li{display:flex;justify-content:space-between;gap:12px;color:#e9f2ff}.race-ranking li strong{color:#ffe5a5;font-variant-numeric:tabular-nums}.race-log-card{border:1px solid rgba(92,136,193,.55);border-radius:12px;background:linear-gradient(180deg,#0c182847,#0b131f5c);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12px;display:grid;gap:8px}.race-log-card h3{margin:0;color:#9ccfff}.race-log-list{border:1px solid rgba(79,114,165,.4);border-radius:10px;background:#080f1933;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);max-height:190px;overflow:auto;padding:8px;display:grid;gap:6px;font-size:.83rem}.race-log-item{display:flex;gap:8px;line-height:1.4;color:#e7f1ff}.race-log-time{color:#96b4dc;font-variant-numeric:tabular-nums;min-width:50px}.race-log-empty{color:#7f9cc0}.race-result-dialog{width:min(460px,100%)}.race-result-list{margin:0;padding-left:20px;display:grid;gap:7px}.race-result-list li{display:flex;justify-content:space-between;gap:12px;color:#e7f1ff}.race-result-list li strong{color:#ffe6a2;font-variant-numeric:tabular-nums}.rg-dialog.race-skill-dialog{width:min(980px,calc(100% - 24px));max-width:980px}.race-skill-table{width:100%;border-collapse:collapse;border:1px solid rgba(88,126,180,.45);border-radius:10px;overflow:hidden;background:#08101bb8;font-size:.86rem}.race-skill-table th,.race-skill-table td{border-bottom:1px solid rgba(84,120,170,.34);border-right:1px solid rgba(74,106,151,.3);padding:8px 9px;text-align:left;line-height:1.45}.race-skill-table th:last-child,.race-skill-table td:last-child{border-right:none}.race-skill-table tbody tr:last-child td{border-bottom:none}.race-skill-table th{background:linear-gradient(180deg,#1f3e62d1,#152d4ad1);color:#cce7ff;font-size:.82rem;letter-spacing:.02em}.race-skill-table td{color:#e5f1ff}.race-skill-prob-wrap{display:inline-flex;align-items:center;gap:6px}.race-skill-range-grid{display:grid;gap:6px}.race-skill-range-wrap{gap:5px}.race-skill-prob-input{width:82px;text-align:right}.rg-input{width:100%;border:1px solid var(--line);border-radius:10px;background:#0c1622d9;color:var(--text);padding:10px 12px}.rg-input.is-compact{padding:7px 8px;font-size:.82rem}.rg-input.is-textarea{resize:vertical;min-height:92px;line-height:1.45}.rg-input.is-large{font-size:1rem;padding:13px 14px}.rg-btn{border:1px solid transparent;border-radius:10px;padding:9px 12px;color:var(--text);background:var(--panel-2);cursor:pointer;font-weight:700}.rg-btn:hover{transform:translateY(-1px)}.rg-btn.is-primary{background:var(--brand);color:#062013}.rg-btn.is-primary:hover{background:var(--brand-2)}.rg-btn.is-success{background:#2398b7;color:#eafaff}.rg-btn.is-danger{background:var(--danger);color:#ffecec}.rg-btn.is-ghost{background:#1a2b43b3;border-color:var(--line)}.rg-btn.is-muted{background:#2b3d58;color:#9eb1cb}.rg-btn.is-block{width:100%}.rg-btn.is-tiny{padding:5px 8px;font-size:.76rem}.rg-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.rg-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a10b8;display:grid;place-items:center;z-index:1000;padding:16px}.rg-dialog{width:min(420px,100%);border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#192940fa,#101b2bfa);padding:16px}.rg-dialog h4{margin:0 0 6px}.rg-dialog p{margin:0 0 12px;color:var(--muted);font-size:.9rem}.rg-dialog-actions{margin-top:12px;display:flex;justify-content:flex-end;gap:8px}@keyframes pulse{50%{opacity:.42}}@keyframes rabbit-hop{0%{transform:translateY(0) rotate(0)}40%{transform:translateY(-2px) rotate(-2deg)}70%{transform:translateY(1px) rotate(1deg)}to{transform:translateY(0) rotate(0)}}@keyframes horse-trot{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-1px) rotate(-1deg)}60%{transform:translateY(1px) rotate(1deg)}to{transform:translateY(0) rotate(0)}}@keyframes shield-ring{0%{transform:scale(.96);opacity:.82}50%{transform:scale(1.03);opacity:1}to{transform:scale(.96);opacity:.82}}@keyframes carrot-fly{0%{transform:translateZ(0) rotate(-40deg)}to{transform:translate3d(var(--shot-dx),var(--shot-dy),0) rotate(320deg)}}@keyframes boulder-roll{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes race-event-pop{0%{transform:translateY(-50%) scale(.62);opacity:0}58%{transform:translateY(-50%) scale(1.16);opacity:1}to{transform:translateY(-50%) scale(1);opacity:1}}@media(max-width:1080px){.racing-head{grid-template-columns:1fr}.racing-actions-panel,.racing-actions{justify-content:flex-start}.racing-track-options{padding:9px}.pet-name-input-wrap{max-width:100%}.pet-name-input-row{grid-template-columns:1fr}.pet-name-shuffle-btn{width:100%}.race-config-row,.race-unified-layout{grid-template-columns:1fr}.race-roster-stats{grid-template-columns:auto auto auto}.pet-picker{flex-wrap:wrap}}@media(max-width:640px){.racing-game-page{padding:12px}.racing-shell-card{padding-left:10px;padding-right:10px}.racing-title{font-size:1.2rem}.race-unified-layout{--race-row-height: 65px}.race-unified-lane{height:var(--race-row-height)}.race-lane-finish{right:0;font-size:.56rem}.race-unified-runner{gap:4px}.rabbit-racer{width:46px;height:36px}.race-event{font-size:.62rem;padding:1px 6px}.race-pet-visual{width:52px;height:44px}.race-pet-visual.shielded:after{width:46px;height:46px}.race-cooldown-wrap{width:48px;height:8px;transform:translate(-50%,-1px)}.race-cooldown-text{font-size:.42rem}.pet-option{padding:2px 4px;font-size:.66rem}.rabbit-racer.compact,.horse-racer.compact{width:24px;height:18px}.race-status{font-size:.68rem}.race-runner-name{max-width:108px;font-size:.75rem;bottom:calc(100% - 12px)}.carrot-shot{width:15px;height:15px}.map-hazard-boulder{width:22px;height:22px}.map-hazard-mud{width:40px;height:15px}.race-log-list{max-height:160px}}html,body,#root{margin:0;min-height:100%}body{font-family:Noto Sans KR,Pretendard,sans-serif;background:#0f1726;color:#e7efff}.app-shell{min-height:100vh}.app-back-wrap{position:sticky;top:0;z-index:20;padding:12px 16px 0;display:flex;justify-content:flex-end;pointer-events:none}.app-back-btn{pointer-events:auto;border:1px solid rgba(112,155,217,.5);border-radius:999px;padding:7px 14px;font-size:.85rem;font-weight:700;color:#d9eaff;background:#0c1624c2;cursor:pointer}.app-back-btn:hover{background:#14253ae6}.game-hub-page{min-height:100vh;padding:28px 16px;display:flex;flex-direction:column;background:radial-gradient(900px 420px at 12% -15%,rgba(61,91,143,.42),transparent 58%),radial-gradient(900px 480px at 100% 0%,rgba(35,91,86,.36),transparent 62%),#0f1726}.game-hub-container{width:min(1100px,100%);margin:0 auto;display:grid;gap:18px;flex:1}.game-hub-header{display:grid;gap:6px}.game-hub-title{margin:0;font-size:clamp(1.45rem,3vw,2rem)}.game-hub-subtitle{margin:0;color:#a9c1e5;font-size:.9rem}.game-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-card{min-height:220px;border:1px solid rgba(96,133,186,.45);border-radius:16px;background:linear-gradient(180deg,#152338f2,#0f1a2af5);box-shadow:inset 0 1px #a5c0e914,0 14px 28px #00000047;padding:18px;display:grid;justify-items:center;align-content:center;gap:14px;text-align:center}.game-card-playable{font:inherit;color:inherit;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.game-card-playable:hover{transform:translateY(-3px);border-color:#7ab7ffd1;box-shadow:inset 0 1px #b2d0fa26,0 18px 34px #06122370}.game-card-empty{opacity:.62;border-style:dashed;border-color:#6c87ad85;background:linear-gradient(180deg,#111d2fcc,#0e1927d6)}.game-card-icon{width:72px;height:72px;border-radius:18px;border:1px solid rgba(120,161,221,.5);background:radial-gradient(circle at 35% 30%,#82aef16b,#26477abd);display:grid;place-items:center;font-size:2rem}.game-card-icon-empty{color:#89a8d1;font-size:1.6rem;background:#1b2a4199}.game-card-icon-image{width:56px;height:56px;object-fit:contain;display:block}.game-card-title{font-size:1.08rem;font-weight:800}.game-card-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.game-card-tag{border:1px solid rgba(111,165,221,.56);border-radius:999px;background:#1d3554a8;color:#d5e9ff;font-size:.75rem;font-weight:700;padding:3px 8px}.game-hub-footer{width:min(1100px,100%);margin:22px auto 0;color:#86a0c5;font-size:.78rem;text-align:center}@media(max-width:760px){.game-hub-page{padding-top:18px}.game-card{min-height:180px}}
