.lobby-page{flex-direction:column;align-items:center;min-height:100vh;padding:24px 16px;font-size:15px;line-height:1.5;display:flex}.lobby-brand{color:var(--tea);letter-spacing:.04em;align-items:center;gap:10px;margin:28px 0 4px;font-size:22px;font-weight:800;display:flex}.lobby-brand svg{width:30px;height:30px}.lobby-tagline{color:var(--ink-2);margin-bottom:28px;font-size:14px}.lobby-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-modal);width:min(520px,100%);padding:22px}.lobby-card h2{margin:0 0 4px;font-size:18px}.lobby-lead{color:var(--ink-2);margin:0 0 18px;font-size:13.5px}.lobby-steps{gap:6px;margin-bottom:14px;display:flex}.lobby-steps span{background:var(--line);border-radius:2px;flex:1;height:4px}.lobby-steps span.on{background:var(--tea)}.lobby-big{border:1px solid var(--line);background:var(--white);text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:10px;padding:16px 18px;display:flex}.lobby-big b{font-size:16px}.lobby-big small{color:var(--ink-2);font-size:12.5px}.lobby-big.primary{background:var(--tea);border-color:var(--tea);color:var(--white)}.lobby-big.primary small{color:#ffffffd9}.lobby-card label{color:var(--ink-2);margin:14px 0 6px;font-size:12.5px;display:block}.lobby-card input[type=text]{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--white);width:100%;height:46px;padding:0 14px;font-family:inherit;font-size:16px}.lobby-card input.code{letter-spacing:.35em;text-transform:uppercase;text-align:center;font-size:22px;font-weight:800}.lobby-colors{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.lobby-color{background:var(--paper);border:2px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:64px;font-size:12px;font-weight:700;display:flex}.lobby-color i{border:3px solid var(--white);width:26px;height:26px;box-shadow:0 0 0 1px var(--line);border-radius:50%;display:block}.lobby-color.on{border-color:var(--ink);background:var(--white)}.lobby-color:disabled{opacity:.35;cursor:not-allowed}.lobby-color small{color:var(--ink-2);font-size:11px;font-weight:500}.lobby-row{gap:10px;margin-top:18px;display:flex}.lobby-row button{border-radius:var(--radius-card);border:1px solid var(--line);background:var(--white);flex:1;height:46px;font-weight:700}.lobby-row .go{background:var(--tea);color:var(--white);border-color:var(--tea);flex:1.6}.lobby-row .go:disabled{opacity:.45;cursor:not-allowed}.lobby-codebox{background:var(--tea-2);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:12px 16px;display:flex}.lobby-codebox b{letter-spacing:.3em;font-size:28px;font-weight:900}.lobby-codebox span{color:var(--ink-2);font-size:12.5px;display:block}.lobby-codebox button{border-radius:var(--radius-button);border:1px solid var(--line);background:var(--white);height:36px;padding:0 12px;font-size:13px;font-weight:700}.lobby-slots{flex-direction:column;gap:8px;display:flex}.lobby-slot{border:1px solid var(--line);background:var(--white);border-radius:12px;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.lobby-slot i{border:3px solid var(--white);width:26px;height:26px;box-shadow:0 0 0 1px var(--line);border-radius:50%;display:block}.lobby-slot b{font-size:15px}.lobby-slot small{color:var(--ink-2);font-size:12px;display:block}.lobby-slot .badge{background:var(--paper);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.lobby-slot.empty{color:var(--ink-2);border-style:dashed}.lobby-slot.empty i{border-color:var(--line);box-shadow:none;background:0 0}.lobby-slot.me{background:var(--tea-2)}.lobby-slot .cpu-tag{color:var(--ink-2);margin-left:6px;font-size:11px;font-weight:700}.lobby-slot .cpu-ctl{align-items:center;gap:6px;display:flex}.lobby-slot .cpu-ctl select{border:1px solid var(--line);border-radius:var(--radius-button);background:var(--white);height:30px;padding:0 6px;font-family:inherit;font-size:12px}.lobby-slot .cpu-ctl button{border:1px solid var(--line);border-radius:var(--radius-button);background:var(--white);min-width:30px;height:30px;padding:0 8px;font-size:12px;font-weight:700}.lobby-slot .cpu-ctl button:hover:not(:disabled){background:var(--paper)}.lobby-slot .cpu-ctl button:disabled{opacity:.5}.lobby-slot .cpu-ctl .add-cpu{border-color:var(--tea);color:var(--tea);white-space:nowrap}.lobby-note{color:var(--ink-2);margin:14px 0 0;font-size:12.5px}.lobby-error{border-radius:var(--radius-card);background:color-mix(in srgb, var(--p-red) 12%, var(--white));border:1px solid var(--p-red);color:var(--ink);margin:14px 0 0;padding:10px 12px;font-size:13px}.lobby-foot{color:var(--ink-2);margin-top:auto;padding-top:20px;font-size:12px}.lobby-page button:focus-visible,.lobby-page input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}:root{--paper:#f1efe6;--ink:#1f2a24;--ink-2:#5b665f;--line:#d9d5c7;--white:#fff;--tea:#3f7a45;--tea-2:#dce9d2;--gold:#d8a93a;--p-red:#d9534f;--p-blue:#3b7dd8;--p-green:#3e9b5a;--p-yellow:#e8862e;--p-purple:#8e5bb8;--c-area:#4e9a51;--c-spot:#e2703a;--c-station:#3b7dd8;--d-1:#8c4a3f;--d-2:#5c6b3f;--d-3:#3f7a45;--d-4:#7a4e8c;--d-5:#2f6f8f;--d-6:#a8762c;--tile-neutral-bg:#fffdf7;--tile-neutral-border:#9a9c8e;--tile-width:176px;--tile-height:64px;--radius-card:10px;--radius-tile:14px;--radius-modal:16px;--radius-button:8px;--font-sans:"Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", system-ui, sans-serif;--topbar-h:56px;--topbar-h-mobile:48px;--topbar-h-landscape:44px;--sidebar-w:296px;--sidebar-w-landscape:250px}.rulebook{background:var(--paper);border-radius:var(--radius-modal);grid-template:"head head"56px"nav body"1fr/220px 1fr;width:min(900px,100%);height:min(760px,100%);display:grid;overflow:hidden;box-shadow:0 24px 60px #0000004d}.rulebook header{background:var(--white);border-bottom:1px solid var(--line);grid-area:head;align-items:center;gap:14px;padding:0 20px;display:flex}.rulebook header h2{margin:0;font-size:16px;font-weight:800}.rulebook header .sub{color:var(--ink-2);font-size:12px}.rulebook header .x{border:1px solid var(--line);background:var(--white);border-radius:var(--radius-button);height:34px;margin-left:auto;padding:0 12px}.rulebook nav{border-right:1px solid var(--line);background:var(--white);flex-direction:column;grid-area:nav;gap:2px;padding:8px;display:flex;overflow:auto}.rulebook nav button{border-radius:var(--radius-button);text-align:left;background:0 0;border:0;align-items:baseline;gap:8px;width:100%;padding:8px 10px;font-size:13px;line-height:1.3;display:flex}.rulebook nav button b{color:var(--ink-2);font-variant-numeric:tabular-nums;flex:none;width:16px;font-size:11px}.rulebook nav button:hover{background:var(--paper)}.rulebook nav button.on{background:var(--tea-2);font-weight:700}.rulebook nav button.on b{color:var(--tea)}.rulebook .body{grid-area:body;padding:18px 24px 28px;overflow:auto}.prose{max-width:62ch;font-size:14px;line-height:1.8}.prose h3{margin:0 0 12px;font-size:18px;font-weight:800}.prose h2{color:var(--tea);margin:24px 0 8px;font-size:15px;font-weight:800}.prose h3+h2{margin-top:8px}.prose p{margin:0 0 12px}.prose ul,.prose ol{margin:0 0 12px;padding-left:1.3em}.prose li{margin:2px 0}.prose strong{font-weight:800}.prose small{color:var(--ink-2)}.prose table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:13px}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}.prose th{background:var(--white);color:var(--ink-2);white-space:nowrap;font-size:12px;font-weight:700}@media (width<=760px){.overlay{padding:0}.rulebook{border-radius:0;grid-template:"head"48px"nav""body"1fr/1fr;width:100%;height:100%}.rulebook nav{border-right:0;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch;flex-direction:row;padding:6px 8px;overflow:auto hidden}.rulebook nav button{white-space:nowrap;border:1px solid var(--line);width:auto}.rulebook .body{padding:14px 16px 24px}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit;border-radius:var(--radius-button);cursor:pointer}.overlay{z-index:50;background:#1f2a248c;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
