:root{--bg:#121212;--panel:#121316eb;--panel-solid:#17181c;--line:#ffffff1a;--text:#f2f2f2;--muted:#9a9a9a;--amber:#ffb000;--up:#ff3b3b;--down:#2f80ff;--radius:14px;color:var(--text);font-family:Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);overscroll-behavior:none;height:100%;margin:0;overflow:hidden}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input{font:inherit}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.entry{background:radial-gradient(#00000059,#000c);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.entry-card{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;width:min(560px,100%);padding:28px}.entry h1{letter-spacing:-.5px;margin:0;font-size:34px;font-weight:900}.entry h1 span{color:var(--amber)}.entry .sub{color:var(--muted);margin:6px 0 22px}.entry label.title{color:#ccc;margin:18px 0 8px;font-size:14px;font-weight:700;display:block}.login{margin:-8px 0 6px}.login-btns{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lbtn{white-space:nowrap;border-radius:12px;padding:11px 8px;font-size:14px;font-weight:800}.lbtn.kakao{color:#191919;background:#fee500}.lbtn.google{color:#1f1f1f;background:#fff;border:1px solid #dadce0}.login-hint{color:var(--muted);text-align:center;margin-top:6px;font-size:12px}.login-on{background:#50c8781a;border:1px solid #50c87859;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.linkbtn{color:var(--muted);font-size:13px;text-decoration:underline}.genders{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.gbtn{border:2px solid var(--line);color:#bbb;background:#0d0e10;border-radius:12px;padding:10px;font-size:15px;font-weight:900}.gbtn.sel{border-color:var(--amber);color:#fff;background:#ffb0001f}.charpick{grid-template-columns:1fr 170px;align-items:start;gap:10px;display:grid}.cgrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.cthumb{border:2px solid var(--line);background:#0d0e10;border-radius:10px;flex-direction:column;align-items:center;padding:3px 2px 4px;display:flex}.cthumb img{aspect-ratio:1;width:100%;display:block}.cthumb span{color:#bbb;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;overflow:hidden}.cthumb.sel{border-color:var(--amber);background:#ffb0001a}.cthumb.sel span{color:#fff;font-weight:700}.cthumb.locked img{filter:grayscale()brightness(.55)}.cthumb.locked span{color:#777}.lock-note{color:var(--amber);margin:-2px 0 8px;font-size:12px}.lock-note[hidden]{display:none}canvas.pv{aspect-ratio:1;border:1px solid var(--line);background:radial-gradient(circle at 50% 40%,#2a2c33,#0d0e10);border-radius:14px;width:100%;display:block}.char{border:2px solid var(--line);border-radius:var(--radius);text-align:center;background:#0d0e10;padding:8px;transition:border-color .15s,transform .15s}.char canvas{aspect-ratio:1;width:100%;display:block}.char.sel{border-color:var(--amber);transform:translateY(-2px)}.char b{margin-top:4px;display:block}.nick{border:1px solid var(--line);width:100%;color:var(--text);background:#0d0e10;border-radius:10px;padding:12px 14px;font-size:16px}.nick:focus{outline:2px solid var(--amber)}.err{color:#ff7070;min-height:18px;margin-top:6px;font-size:13px}.channels{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.ch{border:1px solid var(--line);text-align:center;background:#0d0e10;border-radius:10px;padding:8px 4px;font-size:13px}.ch b{font-size:15px;display:block}.ch.sel{border-color:var(--amber);background:#ffb0001a}.ch:disabled{opacity:.4;cursor:not-allowed}.ch .bar{background:#333;border-radius:2px;height:3px;margin-top:5px;overflow:hidden}.ch .bar i{background:var(--amber);height:100%;display:block}.enter{background:var(--amber);color:#111;border-radius:12px;width:100%;margin-top:22px;padding:14px;font-size:18px;font-weight:900}.enter:disabled{opacity:.5}.entry .foot{color:#777;text-align:center;margin-top:14px;font-size:12px;line-height:1.6}.topbar{pointer-events:none;background:linear-gradient(#000000b3,#0000);align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.brand{white-space:nowrap;font-size:18px;font-weight:900}.brand span{color:var(--amber)}.pill{border:1px solid var(--line);white-space:nowrap;background:#0000008c;border-radius:999px;padding:5px 10px;font-size:13px}.topbar .spacer{flex:1}.hud-left,.hud-right{bottom:calc(16px + env(safe-area-inset-bottom));align-items:flex-end;gap:8px;display:flex;position:fixed}.hud-left{left:calc(16px + env(safe-area-inset-left))}.hud-right{right:calc(16px + env(safe-area-inset-right));align-items:center}.menu{position:relative}.fab{background:var(--panel);border:1px solid var(--line);color:#ddd;-webkit-tap-highlight-color:transparent;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:64px;height:64px;font-size:12px;font-weight:700;display:flex}.fab span{font-size:24px;line-height:1.1}.fab.on{border-color:var(--amber);color:#fff;background:#ffb00026}.tray{background:var(--panel);border:1px solid var(--line);opacity:0;transform-origin:0 100%;pointer-events:none;border-radius:18px;grid-template-columns:repeat(3,64px);gap:6px;padding:8px;transition:opacity .15s,transform .15s;display:grid;position:absolute;bottom:calc(100% + 8px);left:0;transform:translateY(8px)scale(.96)}.tray.open{opacity:1;pointer-events:auto;transform:none}.rx{color:#ddd;-webkit-tap-highlight-color:transparent;background:#ffffff0a;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;width:64px;height:64px;font-size:12px;display:flex}.rx span{font-size:26px;line-height:1.15}.rx span.two{white-space:nowrap;letter-spacing:-2px;font-size:19px}.rx:hover,.rx:active{background:#ffffff1f}.rx:disabled{opacity:.4}.rx.face span{color:#fff;letter-spacing:-.5px;white-space:nowrap;font-size:17px;font-weight:900}.rx.face.sel{box-shadow:inset 0 0 0 2px var(--amber);background:#ffb0002e}.act{white-space:nowrap;border:1px solid var(--line);border-radius:999px;height:48px;padding:0 16px;font-size:15px;font-weight:700}.act.primary{background:var(--amber);color:#111;border-color:#0000}.act.ghost{background:var(--panel)}.act-stack{flex-direction:column;align-items:stretch;gap:8px;display:flex}.act.small{height:40px;font-size:14px}.toasts{pointer-events:none;z-index:50;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);background:#000000d9;border-radius:10px;padding:8px 14px;font-size:14px;animation:3s forwards fade}@keyframes fade{0%{opacity:0;transform:translateY(-6px)}8%,80%{opacity:1;transform:none}to{opacity:0}}.hint{color:#bbb;pointer-events:none;background:#00000080;border-radius:8px;padding:6px 10px;font-size:12px;position:fixed;bottom:96px;left:16px}.trade{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;width:360px;transition:transform .2s,opacity .2s;display:flex;position:fixed;top:60px;bottom:80px;right:16px;overflow:hidden}.trade.hidden{opacity:0;pointer-events:none;transform:translate(110%)}.trade header{border-bottom:1px solid var(--line);padding:16px}.trade header .row{justify-content:space-between;align-items:baseline;display:flex}.trade .eq{font-size:26px;font-weight:900}.trade .krw-field{margin-top:6px}.trade .krw-field input{font-size:15px}.trade .avail{justify-content:space-between;align-items:baseline;margin-top:12px;font-size:13px;display:flex}.trade .avail b{font-size:15px}.trade .warn{font-weight:700;color:#ff6b6b!important}.trade .eq-krw{color:#c9c9d6;margin-top:1px;font-size:14px;font-weight:700}.trade .body{flex:1;padding:14px 16px;overflow-y:auto}.trade h4{color:#bbb;margin:14px 0 8px;font-size:13px}.syms{flex-wrap:wrap;gap:6px;display:flex}.sym{background:#ffffff0f;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700}.sym.sel{background:var(--amber);color:#111}.field{border:1px solid var(--line);background:#0d0e10;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.field input{color:var(--text);text-align:right;background:0 0;border:0;flex:1;min-width:0;font-size:16px}.field input:focus{outline:none}.pcts{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px;display:grid}.pcts button{background:#ffffff0f;border-radius:8px;padding:6px;font-size:12px}.lev{width:100%;accent-color:var(--amber)}.sides{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.sides button{color:#fff;border-radius:12px;padding:13px;font-size:16px;font-weight:900}.sides .long{background:var(--up)}.sides .short{background:var(--down)}.pos{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;padding:10px 12px;font-size:13px}.pos .r1{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.pos .tag{color:#fff;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:900}.pos .tag.long{background:var(--up)}.pos .tag.short{background:var(--down)}.pos .pnl{font-size:15px;font-weight:900}.pos .r2{color:var(--muted);justify-content:space-between;display:flex}.pos button{background:#ffffff1a;border-radius:8px;padding:4px 10px;font-size:12px}.trade footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:10px 16px;font-size:12px;display:flex}.trade footer button{color:#ff8a8a;font-size:12px}.x{color:#aaa;padding:4px 8px;font-size:20px;line-height:1}.chartModal{background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.chartModal.hidden{display:none}.chartBox{background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;flex-direction:column;width:min(1100px,100%);height:min(680px,100%);display:flex;overflow:hidden}.chartBox header{border-bottom:1px solid var(--line);flex-wrap:nowrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.chartBox .tabs,.chartBox .ma-btn,.chartBox header .x{white-space:nowrap;flex-shrink:0}.chartBox .tabs{background:#ffffff0d;border-radius:10px;gap:4px;padding:3px;display:flex}.chartBox .tabs button{color:#aaa;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700}.chartBox .tabs button.sel{color:#111;background:#fff}.chartBox .price{text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;margin-left:auto;font-size:20px;font-weight:900;overflow:hidden}.chartBox .chart{flex:1;min-height:0;position:relative}.ma-legend{z-index:3;pointer-events:none;text-shadow:0 0 3px #000;gap:8px;font-size:11px;font-weight:700;display:flex;position:absolute;top:6px;left:8px}.chartBox .ma-btn{color:#ccc;background:#ffffff0d;border-radius:8px;padding:5px 9px;font-size:13px;font-weight:700;font-size:15px!important}.ma-panel{z-index:4;background:var(--panel-solid);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex;position:absolute;top:26px;left:8px;box-shadow:0 8px 24px #00000080}.ma-panel.hidden{display:none}.ma-head{justify-content:space-between;align-items:center;font-size:13px;display:flex}.ma-row{align-items:center;gap:8px;font-size:13px;display:flex}.ma-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--amber)}.ma-row input[type=number]{border:1px solid var(--line);width:58px;color:var(--text);text-align:right;background:#0d0e10;border-radius:8px;padding:4px 6px;font-size:14px}.ma-swatch{border:2px solid #ffffff40;border-radius:6px;width:30px;height:22px}.ma-swatch.sel{border-color:#fff}.ma-widths{gap:3px;display:flex}.ma-widths button{background:#ffffff0d;border:1px solid #0000;border-radius:6px;place-items:center;width:26px;height:22px;display:grid}.ma-widths button.sel{border-color:var(--amber);background:#ffb0001f}.ma-widths i{border-radius:2px;width:16px;display:block}.ma-palette{grid-template-columns:repeat(8,22px);gap:5px;padding:6px 0 4px 26px;display:grid}.ma-palette button{border:2px solid #0000;border-radius:50%;width:22px;height:22px}.ma-palette button.sel{border-color:#fff}.ma-reset{color:#ccc;background:#ffffff14;border-radius:8px;margin-top:2px;padding:6px;font-size:12px}.chartModal.docked{pointer-events:none;background:0 0;place-items:stretch stretch;padding:0;inset:60px 388px 80px 16px}.chartModal.docked .chartBox{pointer-events:auto;width:100%;height:100%}@media (max-width:720px){.brand{font-size:15px}.topbar{gap:6px;padding:8px 10px}.pill.hide-m{display:none}.trade{width:auto;height:58dvh;padding-bottom:env(safe-area-inset-bottom);z-index:5;border-radius:18px 18px 0 0;inset:auto 0 0}.chartModal.docked{inset:50px 6px calc(58dvh + 6px)}.trade{height:100dvh;padding-top:env(safe-area-inset-top);background:var(--panel-solid);border-radius:0;top:0}.trade.hidden{transform:translateY(100%)}body.trading .chartModal{z-index:10}body.trading .hud-left,body.trading .hud-right,body.trading .hint{display:none}.chartBox header{flex-wrap:wrap}.chartModal.docked .chartBox header{gap:6px;padding:6px 8px}.chartModal.docked .chartBox .tabs button{padding:4px 7px;font-size:12px}.chartModal.docked .chartBox .price{font-size:15px}.hud-left{left:calc(10px + env(safe-area-inset-left));bottom:calc(10px + env(safe-area-inset-bottom));gap:6px}.hud-right{right:calc(10px + env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));gap:6px}.fab{width:58px;height:58px}.act{height:46px;padding:0 13px;font-size:14px}.hide-m{display:none}.toasts{width:calc(100% - 20px);top:52px}.toast{text-align:center;font-size:13px}.hint{display:none}.entry-card{padding:20px}.channels{grid-template-columns:repeat(5,1fr)}.charpick{grid-template-columns:1fr}canvas.pv{order:-1;justify-self:center;width:150px}}.trade header .row-r{align-items:center;gap:4px;display:flex}.pnlModal{z-index:20;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.pnlModal.hidden{display:none}.pnlBox{background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:10px;width:min(460px,100%);max-height:100%;padding:14px 16px 12px;display:flex;overflow-y:auto}.pnlBox header{justify-content:space-between;align-items:center;gap:8px;display:flex}.pnl-nav{align-items:center;gap:6px;font-size:15px;display:flex}.pnl-nav button{background:#ffffff0f;border-radius:8px;width:30px;height:30px;font-size:18px;line-height:1}.pnl-summary{background:#ffffff0a;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;font-size:12px;display:flex}.pnl-summary>div:first-child{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.pnl-summary b{font-size:18px}.pnl-week,.pnl-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.pnl-week span{text-align:center;color:var(--muted);font-size:11px}.pnl-week .sun,.pnl-cell.sun .d{color:#ff8080}.pnl-week .sat,.pnl-cell.sat .d{color:#80aaff}.pnl-cell{aspect-ratio:1/.9;text-align:left;background:#ffffff08;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:space-between;min-width:0;padding:4px 5px;display:flex}.pnl-cell.empty{background:0 0}.pnl-cell .d{color:#bbb;font-size:11px}.pnl-cell .v{color:#ddd;white-space:nowrap;text-overflow:ellipsis;text-align:right;font-size:10.5px;font-weight:800;overflow:hidden}.pnl-cell.has{cursor:pointer}.pnl-cell .v.up{color:var(--up)}.pnl-cell .v.down{color:var(--down)}.pnl-cell.today{border-color:#ffffff73}.pnl-cell.sel{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber) inset}.pnl-detail:empty{display:none}.pnl-dtitle{margin-bottom:6px;font-size:13px;font-weight:700}.pnl-trade{border:1px solid var(--line);border-radius:10px;margin-bottom:6px;padding:8px 10px;font-size:13px}.pnl-trade .r1{justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.pnl-trade .r2{justify-content:space-between;gap:8px;font-size:11.5px;display:flex}.pnl-trade .tag{color:#fff;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:900}.pnl-trade .tag.long{background:var(--up)}.pnl-trade .tag.short{background:var(--down)}.pnl-trade .liq{color:#c89bff;border:1px solid #8a5cd6;border-radius:6px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:800}.pnl-foot{font-size:11px;line-height:1.5}.pill.chips{color:#ffd34d}.pill.move{flex:none;font-weight:700}.move-wrap{flex:none;position:relative}.ch-tray{max-height:60vh;left:0;right:auto;overflow-y:auto}.pill.go-room{flex:none;font-weight:700}.room-stack{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.bet-credits{color:#999;margin-top:18px;font-size:12px}.bet-credits summary{cursor:pointer;color:#aaa;list-style:none}.bet-credits summary::-webkit-details-marker{display:none}.bet-credits p{color:#bbb;margin:6px 0 0;line-height:1.6}.bet-credits a{color:#9fd0ff;text-decoration:none}.pill.ch-btn{cursor:pointer}@media (max-width:720px){.pill.go-room{padding:5px 8px;font-size:12px}.brand{font-size:14px}}.move-tray{background:var(--panel-solid);border:1px solid var(--line);opacity:0;pointer-events:none;z-index:30;border-radius:14px;flex-direction:column;gap:4px;min-width:150px;padding:6px;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-6px);box-shadow:0 8px 24px #00000073}.move-tray.open{opacity:1;pointer-events:auto;transform:none}.move-tray button{text-align:left;color:#eee;background:#ffffff0a;border-radius:10px;padding:10px 12px;font-size:15px;font-weight:700}.move-tray button:hover:not(:disabled){background:#ffb00026}.move-tray button.here{color:var(--amber);opacity:.8}.move-tray small{color:#999;font-weight:400}.act.ghost.on{border-color:var(--amber);color:#fff;background:#ffb00033}.bet .refill{color:#fff;background:#2e9e4f;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:800}.bet .refill.off{color:#aaa;background:#ffffff14}.bet-status{background:#ffffff0d;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:700}.bet-status.bet{color:#7ee2a0}.bet-status.race{color:#ffd34d}.bet-status.result{color:#9ecbff}.bet-horses{flex-direction:column;gap:6px;display:flex}.bet-horse{border:1px solid var(--line);text-align:left;background:#0d0e10;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.bet-horse:disabled{opacity:.75;cursor:default}.bet-horse.sel{border-color:var(--amber);background:#ffb0001f}.bet-horse.won{border-color:gold;box-shadow:inset 0 0 0 1px gold}.bet .no{border-radius:6px;flex:none;place-items:center;width:26px;height:26px;font-size:14px;font-weight:900;display:inline-grid}.bet-horse .nm{flex-direction:column;flex:1;min-width:0;font-size:14px;font-weight:700;display:flex}.bet-horse .nm small{color:#fc3;font-size:11px;font-weight:400}.bet-horse .nm .cond{border:1px solid;border-radius:8px;align-self:flex-start;margin-top:2px;padding:0 6px;font-weight:700;line-height:16px}.bet-horse .mine{color:#ffd34d;font-size:12px}.bet-horse .nm-t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bet-horse .pl{color:#7fe0ff;margin-left:6px;font-size:11px;font-style:normal;font-weight:700}.act.ghost.run.on{color:#bff1ff;background:#0e3b4d;border-color:#36c6f0}@media (max-width:720px){.hud-right{position:fixed}.act.run{height:40px;padding:0 12px;font-size:13px;position:absolute;bottom:56px;right:0}}.run-join{cursor:pointer;background:#7fe0ff14;border-radius:10px;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.run-join input{accent-color:#36c6f0;flex:none;width:18px;height:18px;margin-top:1px}.run-join span{flex-direction:column;gap:2px;display:flex}.run-join b{color:#9fe8ff;font-size:13px}.run-join small{color:#999;font-size:11px}.bet-horse .od{font-size:16px}.bet-go{background:var(--amber);color:#111;border-radius:12px;width:100%;margin-top:10px;padding:13px;font-size:15px;font-weight:900}.bet-go:disabled{color:#888;background:#ffffff14}.bet-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.bet-result{border-radius:10px;padding:10px 12px;font-size:14px;font-weight:800}.bet-result.win{color:#ff8080;background:#ff3b3b26}.bet-result.lose{color:#aaa;background:#ffffff0d}.race-count{z-index:20;pointer-events:none;color:#fff;text-shadow:0 0 6px #000,0 6px 24px #000000b3;font:900 140px/1 Noto Sans KR,sans-serif;position:fixed;top:14vh;left:50%;transform:translate(-50%)}.race-count.hidden{display:none}.race-count.hot{color:#ff4040}.race-count.go{color:#ffd60a;font-size:120px}.race-count.pop{animation:1s ease-out forwards race-pop}@keyframes race-pop{0%{opacity:0;transform:translate(-50%)scale(1.8)}15%{opacity:1;transform:translate(-50%)scale(1)}75%{opacity:1}to{opacity:.15;transform:translate(-50%)scale(.85)}}@media (max-width:720px){.race-count{font-size:96px;top:12vh}.race-count.go{font-size:80px}}
