:root{--paper:#0b2238;--sheet:#0e2a45;--sheet2:#12334f;--grid:rgba(170,210,240,.06);--ink:#e6f0f8;--muted:#9fb7cb;--line:#8ec3ea;--hair:rgba(200,225,245,.18);--hair2:rgba(200,225,245,.36);--accent:#f2b544;--accent-soft:rgba(242,181,68,.14);--held:#93a8ba;--held-bg:#1f3347;--bug:#ff6b6b;--bug-soft:rgba(255,107,107,.14);--contest:#f2c25c;--b5:#8ec3ea;--ai:#c6a7ff;--f-body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-draft:"Barlow Condensed","Arial Narrow","Roboto Condensed",system-ui,sans-serif;--f-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--paper);color:var(--ink);font:14px/1.5 var(--f-body)}a{color:var(--line)}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code{font-family:var(--f-mono);font-size:.9em;background:rgba(255,255,255,.06);padding:0 .3em;border-radius:3px}.draft{font-family:var(--f-draft);letter-spacing:.1em;text-transform:uppercase}.app{display:grid;grid-template-rows:auto 1fr;height:100dvh}.top{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--hair2);background:var(--sheet);flex-wrap:wrap}.top .brand{font-family:var(--f-draft);font-weight:700;font-size:20px;letter-spacing:.08em}.top .score{color:var(--muted);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.top .grow{flex:1 1}.tabs{display:flex;gap:4px}.chipbtn,.tabs button{background:none;border:1px solid var(--hair2);padding:4px 10px;border-radius:3px;cursor:pointer;font-family:var(--f-draft);letter-spacing:.08em;text-transform:uppercase;font-size:13px}.chipbtn[aria-pressed=true],.tabs button[aria-pressed=true]{background:var(--ink);color:var(--sheet)}.body{display:grid;grid-template-columns:1fr 400px;min-height:0}.body.nopanel{grid-template-columns:1fr}.mapwrap{position:relative;overflow:hidden;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:20px 20px;touch-action:none}.mapwrap svg{display:block;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.crumbs{position:absolute;top:10px;left:12px;display:flex;gap:6px;font-size:13px;background:rgba(14,42,69,.9);padding:4px 10px;border:1px solid var(--hair2);border-radius:3px}.crumbs button{background:none;border:0;cursor:pointer;color:var(--line);padding:0}.zoomctl{position:absolute;right:12px;bottom:12px;display:grid;grid-gap:4px;gap:4px}.zoomctl button{width:34px;height:34px;background:var(--sheet);cursor:pointer;font-size:16px}.legend,.zoomctl button{border:1px solid var(--hair2);border-radius:3px}.legend{position:absolute;left:12px;bottom:12px;font-size:12px;color:var(--muted);background:rgba(14,42,69,.9);padding:6px 10px;display:flex;gap:10px;flex-wrap:wrap;max-width:60%}.legend i{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:-1px;border:1px solid var(--hair2)}.m-area rect{fill:rgba(170,210,240,.04);stroke:var(--hair2);stroke-dasharray:6 5}.m-area .fillheld{fill:var(--held-bg);stroke:none;opacity:.9}.m-area text{fill:var(--muted);font-family:var(--f-draft);letter-spacing:.14em;text-transform:uppercase}.m-area.l0 text.big{fill:var(--ink);font-weight:700}.m-area.l0 text.cnt{fill:var(--muted)}.m-edge line{stroke:var(--hair2);stroke-width:1.3}.m-edge.hot line{stroke:var(--accent);stroke-width:3;stroke-dasharray:8 6;animation:dash .9s linear infinite}@keyframes dash{to{stroke-dashoffset:-28}}@media (prefers-reduced-motion:reduce){.m-edge.hot line{animation:none}}.m-comp{cursor:pointer}.m-comp:focus,.m-comp:focus:not(:focus-visible){outline:none}.mapwrap:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.m-comp rect.box{fill:var(--sheet);stroke:var(--hair2);stroke-width:1.2;rx:3}.m-comp rect.tick{fill:var(--line)}.m-comp text.t{fill:var(--ink);font-size:13px;font-weight:600}.m-comp text.s{fill:var(--muted);font-size:10px;font-family:var(--f-mono)}.m-comp rect.prog{fill:var(--line);opacity:.5}.m-comp.st-held rect.box{fill:var(--held-bg);stroke:var(--held)}.m-comp.st-held rect.prog,.m-comp.st-held rect.tick,.m-comp.st-held text.t{fill:var(--held)}.m-comp.st-bug rect.box{stroke:var(--bug);stroke-width:2;fill:var(--bug-soft)}.m-comp.contested rect.box{stroke:var(--contest);stroke-dasharray:5 3}.m-comp.sel rect.box{stroke:var(--accent);stroke-width:2.5}.m-comp.dim{opacity:.25}.m-comp .badge rect{fill:var(--ink)}.m-comp .badge text{fill:var(--sheet);font-size:10px;font-weight:700}.m-comp.st-bug .badge rect{fill:var(--bug)}.m-comp .layer-dot{stroke:var(--sheet);stroke-width:1.5}.avatars{display:flex;gap:4px;align-items:center}.avatars button{border:2px solid transparent;border-radius:50%;padding:0;width:28px;height:28px;overflow:hidden;cursor:pointer;background:var(--sheet2)}.avatars button[aria-pressed=true]{border-color:var(--accent)}.avatars img{width:100%;height:100%;display:block}.cursor{position:absolute;pointer-events:none;transform:translate(-2px,-2px);transition:left .08s linear,top .08s linear}.cursor .tag{margin-left:14px;margin-top:10px;font-size:11px;padding:1px 6px;border-radius:3px;color:#0b2238;white-space:nowrap;display:inline-block}.cursor .bubble{margin-left:14px;margin-top:4px;max-width:260px;font-size:13px;padding:6px 10px;border-radius:10px;background:var(--ink);color:var(--sheet);display:block;overflow-wrap:anywhere}.saybox{position:absolute;left:50%;bottom:60px;transform:translateX(-50%);width:min(420px,90%)}.saybox input{width:100%;padding:10px 12px;border-radius:20px;border:2px solid var(--accent);color:var(--ink);font-size:15px}.panel,.saybox input{background:var(--sheet)}.panel{border-left:1px solid var(--hair2);overflow:auto;padding:14px 16px 40px}.panel h2{margin:2px 0 4px;font-family:var(--f-draft);font-size:24px;letter-spacing:.04em;text-transform:uppercase}.panel .sub{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.panel section{margin-top:16px;border-top:1px solid var(--hair2);padding-top:10px}.panel h3{margin:0 0 8px;font-size:15px;letter-spacing:.12em;color:var(--muted)}.panel h3,.state{font-family:var(--f-draft);text-transform:uppercase}.state{display:inline-block;font-size:12px;letter-spacing:.1em;padding:1px 8px;border-radius:2px;border:1px solid var(--hair2)}.state.held{color:var(--held);border-color:var(--held)}.state.bug{color:var(--bug);border-color:var(--bug)}.state.progress{color:var(--line);border-color:var(--line)}.state.contested{color:var(--contest);border-color:var(--contest)}.why{border-left:3px solid var(--accent);padding-left:10px}.bar{height:8px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--line)}.card{border:1px solid var(--hair2);border-left:3px solid var(--line);padding:8px 10px;margin-bottom:8px;background:var(--sheet2)}.card.done{border-left-color:var(--held);opacity:.85}.card.claimed{border-left-color:var(--accent)}.card.suggested{border-style:dashed}.card .row{display:flex;gap:8px;align-items:baseline;justify-content:space-between}.card .title{font-weight:600}.card .size{font-family:var(--f-draft);font-size:12px;color:var(--muted)}.card .when{font-size:13px;color:var(--muted);margin:4px 0}.card .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.btn{border:1px solid var(--hair2);background:none;padding:4px 10px;border-radius:3px;cursor:pointer;font-size:13px}.btn.pri{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.btn.bad{color:var(--bug);border-color:var(--bug)}.btn:disabled{opacity:.45;cursor:default}.form{display:grid;grid-gap:6px;gap:6px;margin-top:6px}.form input,.form select,.form textarea{background:var(--paper);color:var(--ink);border:1px solid var(--hair2);border-radius:3px;padding:7px 9px;font:inherit}.form textarea{min-height:70px;resize:vertical}.msg{font-size:13px;color:var(--muted);min-height:1.2em}.msg.bad{color:var(--bug)}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:3px 10px;gap:3px 10px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.secret{border:1px solid var(--hair2);padding:8px 10px;margin-bottom:8px}.secret .store{font-size:12px;font-family:var(--f-draft);letter-spacing:.08em;text-transform:uppercase}.flowbar{position:absolute;top:10px;right:12px;left:auto;max-width:min(420px,60%);background:rgba(14,42,69,.95);border:1px solid var(--hair2);border-radius:3px;padding:8px 10px}.flowbar select{background:var(--paper);color:var(--ink);border:1px solid var(--hair2);padding:4px;max-width:100%}.flowbar .say{font-size:13px;margin:6px 0}.flowbar .acts{display:flex;gap:6px;align-items:center}.center{min-height:100dvh;display:grid;place-items:center;padding:16px}.signin{max-width:440px;background:var(--sheet);border:2px solid var(--ink);padding:24px}.signin h1{font-size:40px;margin:0;letter-spacing:.06em}.signin a.go,.signin h1{font-family:var(--f-draft)}.signin a.go{display:inline-block;margin-top:14px;background:var(--ink);color:var(--sheet);padding:10px 18px;text-decoration:none;letter-spacing:.1em;text-transform:uppercase}.board{max-width:1100px;margin:0 auto;padding:16px}.board table{width:100%;border-collapse:collapse;font-size:14px}.board td,.board th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--hair)}.board td{overflow-wrap:anywhere}.board .filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.mlist{overflow:auto;padding:12px}.mlist .area{border:1px dashed var(--hair2);padding:10px;margin-bottom:10px}.mlist .area h4{margin:0 0 8px;font-family:var(--f-draft);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.mlist .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.mlist .item{text-align:left;border:1px solid var(--hair2);border-left:3px solid var(--line);background:var(--sheet2);padding:8px;cursor:pointer;min-height:52px}.mlist .item.st-held{border-left-color:var(--held);background:var(--held-bg)}.mlist .item.st-bug{border-color:var(--bug)}.mlist .item b{display:block;font-size:14px}.mlist .item span{font-size:11px;color:var(--muted);font-family:var(--f-mono)}.findbox{display:flex;gap:6px;align-items:center}.findbox input{background:var(--paper);color:var(--ink);border:1px solid var(--hair2);border-radius:3px;padding:4px 8px;font:inherit;font-size:13px;width:220px}.findbox input[aria-invalid=true]{border-color:var(--bug)}.board select{background:var(--paper);color:var(--ink);border:1px solid var(--hair2);border-radius:3px;padding:4px 6px;font:inherit;font-size:13px}.board td .msg{font-size:12px}@media (max-width:760px){.body{grid-template-columns:1fr}.mlist{min-height:0}.flowbar,.saybox{display:none}.findbox{order:10;flex:1 1 100%}.findbox input{width:100%;font-size:16px}.board table{font-size:13px}.panel{position:fixed;inset:0;z-index:20;border:0;padding-top:56px}.panel .close{position:fixed;top:10px;right:12px;z-index:21}.top .score{display:none}}.legend.toast{top:50px;bottom:auto;color:var(--ink)}.ended{position:fixed;left:50%;top:56px;transform:translateX(-50%);z-index:50;margin:0;padding:8px 14px;border:1px solid var(--bug);background:var(--sheet);border-radius:3px;font-size:14px}.ended a{color:var(--accent)}