:root{--paper:#efe9d3;--paper2:#e2dabd;--ink:#3f3d1d;--red:#b33a26;--line:#3f3d1d6b;--serif:"Yu Mincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", "Noto Serif KR", serif;--ui:"Malgun Gothic", "Yu Gothic UI", "Noto Sans KR", sans-serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--ui);color:var(--ink);background:#05060a;margin:0;overflow:hidden}#c{z-index:1;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;z-index:2;position:fixed;inset:0}#hud.hidden>*,#hud.joining>:not(.join):not(.credit),#hud.ingame>.times,#hud.ingame>.map,#hud.ingame>.spots,#hud.ingame>.keys,#hud.ingame>.title,#hud.ingame>.prompt{display:none}.hide,.hiddenish{display:none!important}button{font:inherit;color:inherit}kbd{font:700 12px var(--ui);border:1px solid var(--line);color:var(--ink);background:#f8f3df;padding:0 5px}.panel{pointer-events:auto;background:var(--paper);border:1px solid var(--ink);box-shadow:0 0 0 3px var(--paper), 0 0 0 4px var(--line), 0 8px 26px #00000059;position:absolute}.title{min-width:214px;padding:10px 16px 11px;top:20px;left:20px}.title h1{font:700 25px/1.15 var(--serif);letter-spacing:.08em;color:var(--red);margin:0}.title .sub{font:600 12px/1.3 var(--serif);letter-spacing:.18em;margin-top:3px}.title .where{border-top:1px solid var(--line);margin-top:9px;padding-top:8px;font-size:14px;font-weight:700}.title .net{margin-top:3px;font-size:13px}.title .net.bad{color:var(--red)}.title .sound{border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.title .sound button{all:unset;cursor:pointer;border:1px solid var(--ink);font:700 13px/20px var(--serif);padding:0 7px}.title .sound button:hover{background:var(--paper2)}.title .sound button:focus-visible{outline:2px solid var(--red)}.title .sound button.off{background:var(--ink);color:var(--paper);text-decoration:line-through}.title .sound input{min-width:0;height:16px;accent-color:var(--red);cursor:pointer;flex:1;margin:0}.solo{border-top:1px solid var(--line);width:182px;margin-top:8px;padding-top:8px}.solo .body{display:none}.solo.open .body{display:block}.solo button.cap{text-align:left;border:0;justify-content:space-between;align-items:center;width:100%;display:flex}.solo .cap b{font:700 13px/1.2 var(--serif);letter-spacing:.04em}.solo .cap i{border:5px solid #0000;border-left:7px solid;border-right:0;width:0;height:0;transition:transform .15s}.solo.open .cap i{transform:rotate(90deg)}.solo .body small{color:#6b6a45;margin-top:3px;font-size:11.5px;display:block}.solo.active .cap b{color:var(--red)}.solo .row{grid-template-columns:1fr 1fr;gap:4px;margin-top:6px;display:grid}.solo button{all:unset;cursor:pointer;text-align:center;border:1px solid var(--line)}.solo button:hover:not(.on){background:var(--paper2)}.solo button:focus-visible{outline:2px solid var(--red)}.solo .row button{padding:4px 2px}.solo .row button b{font:700 14px/1.1 var(--serif);display:block}.solo .row button span{margin-top:2px;font-size:11.5px;display:block}.solo .row button.on{background:var(--red);border-color:var(--red);color:#fbf6e4}.solo .show{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.solo .show .lab{font:700 12px var(--serif);letter-spacing:.1em;margin-right:2px}.solo .show button{padding:2px 6px;font-size:12px}.solo .show button.on{background:var(--ink);color:var(--paper)}.solo .show button.fw{border-color:var(--red);color:var(--red);font-weight:700}.solo .back{border-color:var(--red);color:var(--red);margin-top:6px;padding:5px 2px;font-size:12.5px;font-weight:700;display:block}.times{white-space:nowrap;display:flex;top:20px;left:50%;transform:translate(-50%)}.times button{all:unset;cursor:pointer;border-right:1px solid var(--line);text-align:center;padding:9px 13px 8px;position:relative}.times button:last-child{border-right:0}.times button b{font:700 17px/1 var(--serif);letter-spacing:.03em;display:block}.times button span{margin-top:4px;font-size:12px;display:block}.times button.on{background:var(--red);color:#fbf6e4}.times button:not(.on):hover{background:var(--paper2)}.times button:focus-visible{outline:2px solid var(--red);outline-offset:-3px}.times .live{text-align:left;min-width:190px;padding-left:26px}.times .live i{background:currentColor;border-radius:50%;width:9px;height:9px;position:absolute;top:13px;left:11px}.times .live.on i{animation:1.6s ease-in-out infinite pulse}.times .live em{font:700 11.5px var(--ui);color:var(--red);margin-top:4px;font-style:normal;display:none}.times .live:not(.on) em{display:block}@keyframes pulse{50%{opacity:.25}}.map{width:220px;padding:8px;top:20px;right:20px}.map canvas{cursor:pointer;width:100%;height:auto;display:block}.map .cap{font:700 13px var(--serif);letter-spacing:.1em;justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.map .cap small{font:400 11px var(--ui);letter-spacing:0}.spots{grid-template-columns:1fr 1fr;gap:4px;width:220px;padding:7px;display:grid;top:395px;right:20px}.spots button{all:unset;cursor:pointer;text-align:center;border:1px solid var(--line);padding:5px 4px;font-size:12.5px}.spots button:hover{background:var(--paper2)}.spots button:focus-visible{outline:2px solid var(--red)}.spots .book{color:var(--red);border-color:var(--red);grid-column:1/-1;font-weight:700}.chat{background:#efe9d3e6;flex-direction:column;width:340px;display:flex;bottom:30px;left:20px}.chat .log{overflow-wrap:anywhere;min-height:26px;max-height:176px;padding:7px 10px 4px;font-size:13.5px;line-height:1.45;overflow-y:auto}.chat .line b{color:var(--red)}.chat .line.sys{color:#6b6a45;font-size:12.5px}.chat input{border:0;border-top:1px solid var(--line);width:100%;font:14px var(--ui);color:var(--ink);background:#f8f3df;outline:none;padding:7px 10px}.chat input:focus{box-shadow:inset 0 0 0 2px var(--red);background:#fffdf2}.keys{white-space:nowrap;padding:7px 11px;font-size:12.5px;line-height:1.75;bottom:30px;right:20px}.prompt{color:#f4eed6;opacity:0;white-space:nowrap;background:#18160cdb;border-radius:3px;padding:7px 14px;font-size:15px;font-weight:600;transition:opacity .12s;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.prompt.on{opacity:1}.toast{background:var(--red);color:#fbf6e4;font:700 17px var(--serif);letter-spacing:.04em;opacity:0;white-space:nowrap;padding:9px 18px;transition:opacity .2s;position:absolute;top:150px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}.card{pointer-events:auto;background:#0a0a0659;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cardbox{width:min(520px,92vw);max-height:82vh;padding:20px 24px 16px;font-size:15px;line-height:1.6;position:static;overflow-y:auto}.cardbox h3{font:700 21px/1.3 var(--serif);color:var(--red);margin:0 0 8px}.cardbox h4{font:700 15px var(--serif);margin:12px 0 4px}.cardbox p{margin:6px 0}.cardbox .sm{color:#6b6a45;font-size:13px}.cardbox .close{all:unset;cursor:pointer;border:1px solid var(--ink);margin-top:10px;padding:5px 12px;font-size:14px;display:inline-block}.cardbox .close:hover,.cardbox .close:focus-visible{background:var(--paper2)}.menu{border-collapse:collapse;width:100%;font-size:14.5px}.menu td{border-bottom:1px solid var(--line);padding:4px 6px}.menu .pr{white-space:nowrap;font-variant-numeric:tabular-nums;width:1%}.book{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.book .slot{text-align:center;font-size:12px;line-height:1.3}.book .seal{aspect-ratio:1}.book .slot:not(.got){color:#6b6a45}.book .slot.got{font-weight:700}.gamebar{pointer-events:none;position:absolute;inset:0}.gbox{width:300px;padding:12px 14px;top:20px;left:20px}.gbox h3{font:700 16px/1.3 var(--serif);color:var(--red);margin:0 0 8px}.gbox .stats{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;display:grid}.gbox .stats span{font-size:12px;display:block}.gbox .stats b{font:700 21px var(--serif);font-variant-numeric:tabular-nums}.gbox .hint{margin:8px 0;font-size:13px;line-height:1.5}.gbox button{all:unset;cursor:pointer;border:1px solid var(--ink);padding:4px 10px;font-size:13px}.gbox button:hover,.gbox button:focus-visible{background:var(--paper2)}.gmsg{font:700 28px var(--serif);color:#fff8dc;text-shadow:0 2px 8px #000;white-space:nowrap;position:absolute;top:18%;left:50%;transform:translate(-50%)}.gres{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gres .panel{text-align:center;padding:18px 34px;font-size:15px;position:static}.gres h2{font:700 42px var(--serif);color:var(--red);letter-spacing:.1em;margin:0 0 4px}.gres p{margin:0 0 12px}.gres button{all:unset;cursor:pointer;background:var(--red);color:#fbf6e4;padding:7px 20px;font-weight:700}.gres button:hover,.gres button:focus-visible{background:#8f2c1c}.join{pointer-events:none;position:absolute;inset:0}.joinbox{width:400px;max-height:94vh;padding:24px 26px 18px;top:50%;left:7vw;overflow-y:auto;transform:translateY(-50%)}.joinbox h2{font:700 44px/1.1 var(--serif);letter-spacing:.1em;color:var(--red);margin:0}.joinbox .lead{font:600 15px var(--serif);letter-spacing:.08em;margin:6px 0 18px}.joinbox .f{margin:11px 0;display:block}.joinbox .f>span{margin-bottom:5px;font-size:13.5px;font-weight:700;display:block}.joinbox input{border:1px solid var(--ink);width:100%;font:16px var(--ui);color:var(--ink);background:#fbf8ea;padding:9px 11px}.joinbox input:focus{outline:2px solid var(--red);outline-offset:1px}.seg{display:flex}.seg button{all:unset;cursor:pointer;text-align:center;border:1px solid var(--ink);flex:1;margin-right:-1px;padding:7px 0;font-size:14px}.seg button.on{background:var(--ink);color:var(--paper)}.seg button:focus-visible{outline:2px solid var(--red);outline-offset:1px;position:relative}.sw{flex-wrap:wrap;gap:6px;display:flex}.sw button{all:unset;cursor:pointer;background:var(--c);border:1px solid var(--ink);width:30px;height:30px;box-shadow:inset 0 0 0 2px var(--paper)}.sw button.on{outline:3px solid var(--red);outline-offset:1px}.sw button:focus-visible{outline:3px solid var(--ink);outline-offset:1px}.joinbox .go{all:unset;cursor:pointer;text-align:center;background:var(--red);color:#fbf6e4;width:100%;font:700 22px var(--serif);letter-spacing:.3em;margin-top:16px;padding:11px 0;display:block}.joinbox .go:hover,.joinbox .go:focus-visible{background:#8f2c1c}.joinbox .note{color:#6b6a45;margin:11px 0 0;font-size:12.5px}.credit{color:#e8e4d0;text-shadow:0 1px 2px #000;white-space:nowrap;font-size:12px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.mv{z-index:0;transform-origin:0 0;pointer-events:none;visibility:hidden;will-change:transform;position:fixed;top:0;left:0}.mv.on{visibility:visible}.mv iframe{border:0;width:100%;height:100%;display:block}.mv.blocked{z-index:3;pointer-events:auto;top:350px;left:20px;width:358px!important;height:202px!important;transform:none!important}.fps{color:#e8e4d0;text-shadow:0 1px 2px #000;font:12px ui-monospace,Consolas,monospace;position:absolute;bottom:250px;left:20px}@media (max-width:1180px),(max-height:700px){.spots,.keys{display:none}.map{width:150px}.times button{padding:7px 9px}.times .live{min-width:150px}.chat .log{max-height:76px}}body.touch,body.touch #hud *,body.touch #c{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body.touch #hud input{-webkit-user-select:text;user-select:text}#c{touch-action:none}.touch .keys,.touch .fps{display:none}.touch .title{left:10px;top:calc(10px + env(safe-area-inset-top));align-items:baseline;gap:8px;min-width:0;padding:5px 10px;display:flex}.touch .title h1{font-size:17px}.touch .title .sub,.touch .title .where{display:none}.touch .title .net{margin:0;font-size:11.5px}.touch .tmenu{right:10px;top:calc(10px + env(safe-area-inset-top));font:700 13px var(--ui);cursor:pointer;padding:6px 13px;position:absolute}.touch .times{top:calc(52px + env(safe-area-inset-top));max-width:calc(100vw - 20px)}.touch .times .live{white-space:normal;min-width:0;padding:6px 11px 6px 22px}.touch .times .live i{width:7px;height:7px;top:11px;left:9px}.touch .times button b{margin-right:6px;font-size:15px;display:inline}.touch .times button span{font-size:11.5px;display:inline}.touch .times .live em{margin-top:2px}@media (orientation:landscape){.touch .times{max-width:46vw;top:10px}}.touch .chat{left:10px;bottom:calc(196px + env(safe-area-inset-bottom));width:min(300px,72vw);box-shadow:none;pointer-events:none;background:0 0;border:0}.touch .chat .log{color:#f4eed6;text-shadow:0 1px 2px #000,0 0 4px #000;max-height:84px;padding:0;font-size:12px}.touch .chat .line b{color:#ffb19f}.touch .chat .line.sys{color:#ddd6bd;font-size:11.5px}.touch .chat input{display:none}.touch .chat.typing{pointer-events:auto;border:1px solid var(--ink);background:#efe9d3f2}.touch .chat.typing .log{color:var(--ink);text-shadow:none;padding:5px 8px}.touch .chat.typing .line b{color:var(--red)}.touch .chat.typing .line.sys{color:#6b6a45}.touch .chat.typing input{font-size:16px;display:block}.touch .tchat{left:10px;bottom:calc(160px + env(safe-area-inset-bottom));font:700 12.5px var(--ui);cursor:pointer;padding:5px 12px;position:absolute}.touch .prompt{bottom:calc(250px + env(safe-area-inset-bottom));pointer-events:auto;cursor:pointer;padding:9px 16px;font-size:14px}.touch .prompt:not(.on){pointer-events:none}.touch .prompt kbd{display:none}.touch .toast{top:calc(150px + env(safe-area-inset-top));white-space:normal;text-align:center;max-width:90vw;font-size:15px}.touch .credit{white-space:normal;text-align:center;width:96vw;font-size:9.5px;bottom:2px}.touch .cardbox kbd,.touch .gbox kbd{display:none}.tstick{left:20px;bottom:calc(26px + env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:#efe9d31f;border:2px solid #efe9d3b3;border-radius:50%;width:124px;height:124px;position:absolute}.tstick i{border:1px solid var(--ink);background:#efe9d3d9;border-radius:50%;width:52px;height:52px;position:absolute;top:36px;left:36px}.tbtn{all:unset;border:1px solid var(--ink);color:var(--ink);font:700 12px var(--ui);pointer-events:auto;touch-action:none;cursor:pointer;background:#efe9d3db;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.tbtn.on{background:var(--red);border-color:var(--red);color:#fbf6e4}.tbtn.jump{right:20px;bottom:calc(30px + env(safe-area-inset-bottom));width:68px;height:68px;font-size:13.5px}.tbtn.wave{right:98px;bottom:calc(22px + env(safe-area-inset-bottom));width:64px;height:64px;color:var(--red);border-color:var(--red);font-size:13px}.tbtn.wave.on{color:#fbf6e4}.tbtn.view{right:30px;bottom:calc(110px + env(safe-area-inset-bottom));width:48px;height:48px;font-size:11.5px}.tbtn.fly{right:90px;bottom:calc(104px + env(safe-area-inset-bottom));width:48px;height:48px;font-size:11.5px}.tbtn.down{right:150px;bottom:calc(100px + env(safe-area-inset-bottom));width:48px;height:48px;font-size:11.5px}#hud.touch.ingame>.tstick,#hud.touch.ingame>.tbtn,#hud.touch.ingame>.tchat,#hud.touch.ingame>.tmenu{display:none}.sheet{max-height:82vh;padding:10px 14px calc(14px + env(safe-area-inset-bottom));z-index:5;-webkit-overflow-scrolling:touch;bottom:0;left:0;right:0;overflow-y:auto}@media (orientation:landscape){.sheet{width:min(420px,100vw);max-height:none;top:0;left:auto}}.sheet .shead{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sheet .shead b{font:700 17px var(--serif);color:var(--red);letter-spacing:.06em}.sheet .shead .close{all:unset;cursor:pointer;border:1px solid var(--ink);padding:4px 10px;font-size:13px}.sheet .sec{border-top:1px solid var(--line);padding:9px 0}.sheet .st{font:700 13px var(--serif);margin-bottom:6px}.sheet .sound{align-items:center;gap:10px;display:flex}.sheet .sound button{all:unset;cursor:pointer;border:1px solid var(--ink);font:700 13px/20px var(--serif);padding:2px 9px}.sheet .sound button.off{background:var(--ink);color:var(--paper);text-decoration:line-through}.sheet .sound input{height:24px;accent-color:var(--red);flex:1}.sheet .shown{grid-template-columns:1fr 1fr;gap:6px;display:grid}.sheet .shown button,.sheet .spots button{all:unset;cursor:pointer;text-align:center;border:1px solid var(--line);padding:8px 4px;font-size:13px}.sheet .shown button.on{border-color:var(--ink);font-weight:700}.sheet .shown .note{color:#6b6a45;align-self:center;font-size:11.5px;line-height:1.4}.sheet .shown button[data-low].on{background:var(--ink);color:var(--paper)}.sheet .solo{border:0;width:auto;margin:0;padding:0}.sheet .solo .row button{padding:7px 2px}.sheet .solo .show button{padding:5px 8px;font-size:13px}.sheet .panel.map,.sheet .panel.spots{width:auto;box-shadow:none;background:0 0;border:0;padding:0;position:static}.sheet .map canvas{width:auto;max-width:100%;max-height:44vh;margin:0 auto}.sheet .spots{grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:8px;display:grid}.sheet .spots .book{padding:9px 4px}.touch .joinbox{width:min(400px,92vw);padding:18px 18px 14px;left:50%;transform:translate(-50%,-50%)}.touch .joinbox h2{font-size:34px}.touch .cardbox{font-size:14px}.touch .gbox{width:min(300px,70vw);top:10px;left:10px}
