:root{--ink: #211a13;--ink-soft: #4c4438;--muted: #7a6f5e;--paper: #fffdf8;--bg: #e9e2d0;--line: #d3c7ab;--line-dark: #b3a37f;--accent: #7a4a1e;--accent-2: #96622a;--header: #2a211a;--header-2: #3a2d20;--danger: #a12a2a;--danger-bg: #f9ecec;--ok: #1c6b3a;--ok-bg: #eaf5ee;--shadow: 0 1px 2px rgba(33, 26, 19, .07), 0 6px 18px rgba(33, 26, 19, .07);--shadow-lg: 0 2px 6px rgba(33, 26, 19, .1), 0 14px 34px rgba(33, 26, 19, .14);--radius: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:ui-sans-system,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:radial-gradient(1200px 500px at 20% -80px,#f4eedd 0%,transparent 60%),var(--bg);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Georgia,Iowan Old Style,Times New Roman,serif;letter-spacing:.01em}button,input,select,textarea{font:inherit}button{padding:7px 13px;background:var(--paper);color:var(--ink);border:1px solid var(--line-dark);border-radius:9px;cursor:pointer;box-shadow:0 1px 2px #211a1314;transition:border-color .12s ease,box-shadow .12s ease,transform .05s ease,background .12s ease}button:hover:not(:disabled){border-color:var(--accent);box-shadow:0 2px 6px #211a1321}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.primary{background:linear-gradient(180deg,var(--accent-2),var(--accent));border-color:#5f3a16;color:#fff8ec;font-weight:600}button.danger{border-color:var(--danger);color:var(--danger)}input,select,textarea{padding:7px 10px;border:1px solid var(--line-dark);border-radius:9px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 2px #211a130d}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}a{color:var(--accent)}label.field{display:flex;flex-direction:column;gap:4px;font-size:.85rem;font-weight:600}label.field>span.hint,.hint{font-weight:400;font-size:.78rem;color:var(--muted)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:10px}.error-banner{background:var(--danger-bg);border:1px solid #d9a3a3;color:var(--danger);border-radius:9px;padding:9px 12px;font-size:.88rem}.ok-banner{background:var(--ok-bg);border:1px solid #a3c9ae;color:var(--ok);border-radius:9px;padding:9px 12px;font-size:.88rem}.invite-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.05rem;font-weight:700;letter-spacing:.04em;background:#f3ecda;border:1px dashed var(--accent);border-radius:8px;padding:6px 10px;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere}.hex-cell{cursor:pointer}.hex-shape{stroke:#a8905e;stroke-width:.8;transition:stroke .1s ease}.hex-cell:hover .hex-shape{stroke:var(--accent);stroke-width:2.2}.counter-glyph{filter:drop-shadow(0 1px 1.5px rgba(20,14,8,.5))}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c3b28c;border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.map-layout{display:grid;grid-template-columns:minmax(0,1fr)}@media(min-width:1280px){.map-layout{grid-template-columns:minmax(0,1fr) 470px;align-items:start}.map-main{position:sticky;top:8px}}[data-testid=map-viewport]{cursor:grab}[data-testid=map-viewport]:active{cursor:grabbing}
