:root{color-scheme:dark;--lime:#c4f45b;--muted:#a2adb2}*{box-sizing:border-box}body{margin:0;background:#101517;color:#eef3ed;font:16px Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif}button,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:3px}header{height:80px;border-bottom:1px solid #2d3537;display:flex;align-items:center;padding:0 32px;gap:28px}.brand{font-size:23px;font-weight:900;letter-spacing:-1px;display:flex;align-items:center;color:#f6faed;text-decoration:none;gap:7px}.brandball{color:var(--lime);font-size:36px;margin-right:5px}.question{color:var(--lime)}.tag{color:var(--muted);font-size:14px}.iconbutton{margin-left:auto;background:#222b2d;border:1px solid #3b4547;border-radius:8px;color:#d7dfdc;padding:10px 14px;font-size:14px}main{display:grid;grid-template-columns:310px minmax(0,1fr);max-width:1800px;margin:auto;min-height:calc(100dvh - 80px)}.setup{padding:25px 24px 20px;border-right:1px solid #2e3739;background:#171f21}.sectiontitle{display:flex;align-items:center;gap:9px;margin-bottom:18px}.sectiontitle>span{font:12px monospace;color:#81918c}.sectiontitle h1,.sectiontitle h2{font-size:18px;margin:0;letter-spacing:-.4px}.labelrow{display:flex;justify-content:space-between;font-size:14px;margin-bottom:9px}.labelrow span{color:var(--lime)}textarea{resize:vertical;min-height:100px;max-height:260px;width:100%;background:#11191b;color:#e5ede3;border:1px solid #3a4746;border-radius:9px;padding:12px 14px;line-height:1.5;font-size:16px}.hint,.note{color:#90a09c;font-size:12px;line-height:1.6;margin:7px 0 15px}.settings{display:flex;justify-content:space-between;align-items:center;font-size:14px}select{padding:7px 14px;border:1px solid #44504d;border-radius:7px;background:#202a29;color:#e7f0e3}.second{margin-top:24px;margin-bottom:12px}.courses{display:flex;flex-direction:column;gap:7px}.course{display:flex;align-items:center;text-align:left;gap:11px;background:#20292b;border:1px solid #354044;border-radius:9px;color:#eef2ee;padding:10px 12px;width:100%;transition:background .15s}.course:hover{background:#2a3637}.course[aria-pressed=true]{border-color:var(--lime);background:#2d3829}.course .symbol{font-size:25px;width:30px;text-align:center}.course strong{font-size:14px;display:block;font-weight:600}.course small{display:block;color:#99aaa5;font-size:12px;margin-top:3px}.course .num{font:12px monospace;margin-left:auto;color:#9aaba2}#error{font-size:13px;color:#ffae9f;margin:8px 0;min-height:16px}.start{border:0;border-radius:9px;padding:16px;background:var(--lime);color:#213013;font-weight:800;width:100%;display:flex;justify-content:space-between}.start:hover{background:#dbff8e}.reset{border:0;background:transparent;color:#a9b6af;font-size:13px;width:100%;padding:12px}.note{text-align:center;margin:0}.game{position:relative;min-width:0;overflow:hidden;height:calc(100dvh - 80px);min-height:640px;max-height:1200px;background:#0d2024;isolation:isolate}canvas{width:100%;height:100%;display:block}.topHUD{position:absolute;top:28px;left:30px;right:30px;display:flex;justify-content:space-between;pointer-events:none}.topHUD h2{font-size:24px;margin:8px 0;text-shadow:0 2px 10px #0008}#courseCode{font:12px monospace;letter-spacing:2px;color:#b6d6cc}.clock{text-align:right}.clock strong{font:600 40px monospace;letter-spacing:-2px}.clock span{display:block;font:12px monospace;letter-spacing:1px;color:#c3d5ce}.raceMessage{position:absolute;top:112px;left:30px;padding:8px 12px;border-radius:5px;background:#102025d0;font-size:14px;color:#d4e9d7;max-width:65%}.leaderboard{position:absolute;top:174px;left:30px;width:165px;padding:13px;border:1px solid #ffffff19;border-radius:10px;background:#0d1721cf;backdrop-filter:blur(8px)}.ranktitle{font:12px monospace;letter-spacing:.5px;color:#b1c5c8;line-height:1.8}.ranktitle span{display:block;color:var(--lime);letter-spacing:0;font:12px Arial;margin-top:4px}.leaderboard ol{list-style:none;padding:0;margin:10px 0 0}.leaderboard li{display:flex;gap:9px;font-size:14px;align-items:center;padding:7px 0;white-space:nowrap}.leaderboard li b{color:#809897;width:12px}.leaderboard li:first-child b{color:var(--lime)}.leaderboard i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.leaderboard .rankname{overflow:hidden;text-overflow:ellipsis}.leaderboard em{font-style:normal;color:#c4f45b;font-size:12px;margin-left:auto}.depth{position:absolute;right:27px;top:170px;bottom:80px;width:45px;display:flex;align-items:center;flex-direction:column;gap:12px;font:12px monospace;color:#d0e2d7}.depthline{width:3px;background:#ffffff26;flex:1;position:relative}.depthline i{position:absolute;width:9px;height:16px;background:var(--lime);left:-3px;top:0;border-radius:4px}.startHint{position:absolute;top:43%;left:50%;transform:translate(-30%,-15%);pointer-events:none;width:330px}.startHint>span{font:12px monospace;letter-spacing:2px;color:var(--lime)}.startHint h2{font-size:38px;line-height:1.2;letter-spacing:-1.5px;margin:18px 0;text-shadow:0 3px 20px #000}.startHint p{font-size:14px;line-height:1.8;color:#c1d2ca;text-shadow:0 2px 4px #000}.bottomHUD{position:absolute;bottom:0;left:0;right:0;padding:16px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(transparent,#06141ddc);font-size:12px;color:#c5d4cf}.bottomHUD button{font-size:12px;border:1px solid #668178;background:#12262db8;padding:8px;color:#d2e5da;border-radius:5px}.countdown{position:absolute;inset:0;display:grid;place-items:center;background:#09111a33;font:bold 130px monospace;color:#d5fc96;text-shadow:0 0 45px #b6ff7770}.result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(460px,85%);padding:35px;text-align:center;border:1px solid #a8e970;border-radius:20px;background:#121e24ed;box-shadow:0 20px 100px #000b;max-height:85%;overflow:auto}.resulttag{font:12px monospace;letter-spacing:2px;color:var(--lime)}.result p{color:#b4c5b9;margin-top:25px}.result h2{font-size:40px;overflow-wrap:anywhere;line-height:1.3;margin:12px 0}.result #resultDetail{font-size:14px;color:#b3c6c2;line-height:1.8}.result button{margin-top:25px;background:var(--lime);color:#263b20;border:0;border-radius:9px;padding:15px 20px;font-weight:700}[hidden]{display:none!important}.game.expanded{position:fixed;inset:0;height:100dvh;min-height:0;max-height:none;z-index:100}.game:fullscreen{height:100dvh;max-height:none}.racing .startHint{display:none}@media(max-width:1050px){.leaderboard{width:140px;left:16px}.topHUD{left:20px;right:20px}.raceMessage{left:20px}.startHint{width:270px;transform:translate(-25%,-15%)}.startHint h2{font-size:32px}main{grid-template-columns:280px minmax(0,1fr)}.setup{padding:22px 18px}}@media(max-width:760px){header{height:65px;padding:0 16px;gap:10px}.brand{font-size:19px}.tag{display:none}.iconbutton{font-size:12px;padding:8px}main{display:flex;flex-direction:column}.game{order:0;height:68dvh;min-height:480px;max-height:780px}.setup{order:1;border-right:0;padding:24px}.courses{display:grid;grid-template-columns:1fr 1fr}.course:last-child{grid-column:1 / -1}.topHUD{top:20px}.topHUD h2{font-size:20px}.clock strong{font-size:32px}.raceMessage{top:93px;font-size:12px}.leaderboard{top:141px;left:12px;width:120px;padding:9px}.leaderboard li{font-size:12px;gap:6px}.ranktitle{font-size:12px;letter-spacing:-.5px}.depth{right:6px;top:145px;bottom:65px}.startHint{left:43%;top:46%;transform:none;width:51%}.startHint h2{font-size:25px}.startHint p{font-size:12px}.startHint>span{font-size:12px;letter-spacing:0}.bottomHUD{padding:13px;font-size:12px}.result{padding:25px}.result h2{font-size:32px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.depth{display:none}.minimap{position:absolute;right:12px;top:140px;width:130px;padding:9px;background:#081521df;border:1px solid #b9e9e333;border-radius:12px;color:#eef8ed;z-index:3}.minimap>strong{font-size:10px;letter-spacing:1.4px}.minimap canvas{display:block;width:100%;height:230px}.minimap summary{cursor:pointer;font-size:11px;padding-top:5px}.minimap ol{padding:0;margin:8px 0 0;list-style:none;max-height:150px;overflow:auto}.minimap li{font-size:10px;display:flex;gap:5px;align-items:center;margin:5px 0}.minimap li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.minimap li em{font-style:normal;color:#c4f45b}@media(max-width:760px){.minimap{width:92px;right:8px;top:137px;padding:6px}.minimap canvas{height:175px}.minimap>strong{font-size:9px;letter-spacing:.5px}.minimap ol{max-height:95px}}

header{height:96px;padding:12px 20px;gap:24px}header .start{width:250px;min-width:220px;height:68px;margin:0;padding:16px 24px;font-size:25px;font-weight:900;border-radius:12px;box-shadow:0 4px 20px #c4f45b26;flex-shrink:0}main{min-height:calc(100dvh - 96px)}@media(max-width:1100px){header .tag{display:none}}@media(max-width:760px){header{height:84px;padding:10px 12px;gap:12px}header .start{width:176px;min-width:160px;height:62px;padding:12px;font-size:22px}header .brand{font-size:15px;gap:3px}header .brandball{display:none}header .iconbutton{padding:8px;font-size:11px}main{min-height:calc(100dvh - 84px)}}@media(max-width:420px){header{gap:8px}header .start{width:158px;min-width:150px;font-size:20px}header .brand{font-size:12px;letter-spacing:-.6px}header .iconbutton{font-size:10px;padding:7px 5px}}
