:root{--bg:#e9edf0;--panel:#fff;--ink:#14202a;--muted:#56636e;--line:#d3dae0;--ocean:#d9e4ea;--land:#f6f7f4;--border:#b9c2c9;--accent:#0a6a85;--plate:#7b4f9a;--qf-hist:#d81e1e;--qf-latest:#e07b00;--qf-late:#2e9e3c;--qf-mid:#2a5bd7;--qf-undiff:#3a3a3a;--qf-other:#8a8f98;--shallow:#d2442a;--inter:#d99a00;--deep:#2b72b3;--tension:#fff;--sev-red:#c62828;--sev-orange:#e06a00;--sev-yellow:#c9a400;--sev-green:#2e8b57;--f-ui:"Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;--f-data:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c1216;--panel:#141c22;--ink:#e3e9ed;--muted:#8e9ba6;--line:#24313a;--ocean:#0e1920;--land:#1c262d;--border:#3a4852;--accent:#55b6d1;--plate:#b48ad6;--qf-hist:#ff6b6b;--qf-latest:#ffb455;--qf-late:#74dc80;--qf-mid:#86aaff;--qf-undiff:#d9d9d9;--qf-other:#8f949c;--shallow:#f0603f;--inter:#f2b632;--deep:#5aa2e6;--tension:#e9eef1;--sev-red:#ff5a4e;--sev-orange:#ff9a3c;--sev-yellow:#f2d03b;--sev-green:#4cc489;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0c1216;--panel:#141c22;--ink:#e3e9ed;--muted:#8e9ba6;--line:#24313a;--ocean:#0e1920;--land:#1c262d;--border:#3a4852;--accent:#55b6d1;--plate:#b48ad6;--qf-hist:#ff6b6b;--qf-latest:#ffb455;--qf-late:#74dc80;--qf-mid:#86aaff;--qf-undiff:#d9d9d9;--qf-other:#8f949c;--shallow:#f0603f;--inter:#f2b632;--deep:#5aa2e6;--tension:#e9eef1;--sev-red:#ff5a4e;--sev-orange:#ff9a3c;--sev-yellow:#f2d03b;--sev-green:#4cc489;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:15px;line-height:1.4}.wrap{flex-direction:column;gap:14px;max-width:1320px;margin:0 auto;padding-block:14px 40px;padding-inline:16px;display:flex}.num{font-family:var(--f-data);font-variant-numeric:tabular-nums}header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:10px 20px;display:flex}h1{letter-spacing:.01em;margin:0;font-size:28px;font-weight:700;line-height:1.05}h1 small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:13px;font-weight:500;display:block}.snap{font-family:var(--f-data);color:var(--muted);border:1px dashed var(--border);border-radius:4px;padding:4px 8px;font-size:11.5px}.tabs{background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:4px;padding:3px;display:flex}.tabs button{font:600 14px var(--f-ui);color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;padding:7px 12px;line-height:1.15}.tabs button small{font:400 11px var(--f-data);opacity:.85;display:block}.tabs button[aria-selected=true]{background:var(--ink);color:var(--panel)}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0;padding:10px 12px}.stat .k{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11.5px}.stat .v{font:500 26px var(--f-data);margin-top:2px;line-height:1.1}.stat .s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.major{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.mcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--sevc,var(--line));cursor:pointer;text-align:left;font:inherit;color:inherit;border-radius:6px;grid-template-columns:54px 1fr;align-items:center;gap:10px;width:100%;padding:9px 10px;display:grid}.mcard:hover{border-color:var(--accent)}.mcard img,.mcard .dot{width:50px;height:50px}.mcard .dot{font:600 13px var(--f-data);color:var(--muted);place-items:center;display:grid}.mcard .t{font-size:15px;font-weight:600;line-height:1.2}.mcard .m{font:500 12px var(--f-data);color:var(--muted);margin-top:3px}.pill{font:600 10.5px var(--f-ui);letter-spacing:.06em;text-transform:uppercase;vertical-align:1px;border:1px solid;border-radius:99px;margin-left:4px;padding:1px 6px;display:inline-block}.sectionlabel{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 -4px;font-size:12px;font-weight:600}.mapcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden}.maptools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 12px;font-size:13.5px;display:flex}.maptools label{cursor:pointer;align-items:center;gap:5px;display:flex}.maptools .sp{flex:1}.layerpick{align-items:center;gap:2px;display:flex;position:relative}.pickcount{color:var(--muted);margin-left:4px;font-size:12.5px}.pickopen{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 5px;line-height:1}.pickopen:hover,.pickopen[aria-expanded=true]{color:var(--ink);border-color:var(--line)}.pickmenu{z-index:4;background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:6px;min-width:270px;padding:8px 10px;display:grid;position:absolute;top:26px;left:0;box-shadow:0 6px 18px #0000002e}.pickrow{border-top:1px solid var(--line);gap:10px;padding-top:6px;display:flex}.pickrow button{font:500 12.5px var(--f-data);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:2px 4px}.zbtn{font:600 14px var(--f-data);border:1px solid var(--line);background:var(--panel);width:30px;height:28px;color:var(--ink);cursor:pointer;border-radius:5px}.map{background:var(--ocean);touch-action:none;cursor:grab;width:100%;height:auto;display:block}.legend{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 18px;padding:8px 12px;font-size:12.5px;display:flex}.legend .sw{align-items:center;gap:5px;display:inline-flex}.legend i{border-radius:50%;width:11px;height:11px;display:inline-block}.legend svg{vertical-align:middle}.grid2{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0;padding:12px}.panel h2{margin:0 0 8px;font-size:16px;font-weight:600}.panel h2 span{color:var(--muted);margin-left:6px;font-size:13px;font-weight:400}.tablewrap{border-top:1px solid var(--line);max-height:430px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{background:var(--panel);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;padding:6px;font-size:11.5px;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--line);vertical-align:top;padding:5px 6px}td.num{white-space:nowrap}tr.ev{cursor:pointer}tr.ev:hover td{background:color-mix(in srgb, var(--accent) 8%, transparent)}tr.ev.sel td{background:color-mix(in srgb, var(--accent) 16%, transparent)}.dchip{vertical-align:0;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.mt{color:var(--accent);font-size:11px;font-weight:600}.charts{flex-direction:column;gap:14px;display:flex}.chart svg{width:100%;height:auto;display:block}.chart .cap{color:var(--muted);margin-top:4px;font-size:12.5px}.axis text{fill:var(--muted);font:10.5px var(--f-data)}.axis path,.axis line{stroke:var(--border)}.gridl line{stroke:var(--line)}.detail{background:var(--panel);border-left:1px solid var(--line);z-index:20;width:min(420px,100%);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%);box-shadow:-8px 0 30px #0000002e}.detail.open{transform:none}.detail .hd{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:10px;padding:14px 16px 10px;display:flex}.detail .hd .mag{font:500 34px var(--f-data);line-height:1}.detail .hd .place{margin-top:4px;font-size:17px;font-weight:600}.detail .close{font:600 20px var(--f-ui);border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;flex:none;width:34px;height:34px}.detail .bd{flex-direction:column;gap:14px;padding:12px 16px 24px;display:flex;overflow:auto}dl.kv{grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:14px;display:grid}dl.kv dt{color:var(--muted)}dl.kv dd{font-family:var(--f-data);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0;margin:0;font-size:13px}.mechbox{grid-template-columns:150px 1fr;align-items:center;gap:14px;display:grid}.mechbox img{width:150px;height:150px}.mechbox .style{font-size:17px;font-weight:700}.mechbox p{color:var(--muted);margin:4px 0 0;font-size:13.5px}h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:12px}.note{color:var(--muted);font-size:12.5px}a{color:var(--accent)}.foot{color:var(--muted);max-width:90ch;font-size:12.5px}.foot p{margin:4px 0}.foot .byline{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}.foot a{color:inherit;text-underline-offset:2px;text-decoration:underline}.foot a:hover{color:var(--accent)}.tip{pointer-events:none;background:var(--ink);color:var(--panel);font:12px var(--f-ui);white-space:nowrap;z-index:5;border-radius:4px;padding:5px 8px;position:absolute;transform:translate(-50%,-130%)}@media (max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.detail{border-left:0;border-top:1px solid var(--line);border-radius:12px 12px 0 0;width:100%;height:78%;top:auto;left:0;transform:translateY(105%)}.mechbox{grid-template-columns:110px 1fr}.mechbox img{width:110px;height:110px}h1{font-size:24px}.tabs{width:100%}.tabs button{flex:1}.maptools{gap:6px 10px;font-size:13px}.mapcount{padding:2px 6px;font-size:11px}.legend{font-size:12px}}@media (prefers-reduced-motion:reduce){.detail{transition:none}}.hdr-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.status{font-family:var(--f-data);color:var(--muted);border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;gap:4px 14px;padding:4px 8px;font-size:11.5px;display:flex}.status.warn{border-color:var(--sev-yellow);color:var(--sev-yellow)}.status.bad{border-color:var(--sev-red);color:var(--sev-red)}.banner{background:var(--panel);border:1px solid var(--sev-yellow);border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:13.5px;display:flex}.banner.error{border-color:var(--sev-red)}.banner button{font:600 13px var(--f-ui);border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:5px;padding:4px 10px}.theme-btn{font:600 13px var(--f-ui);border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:6px;padding:6px 10px}.mcard .m{display:block}.magtype{color:var(--muted);margin-left:4px;font-size:11px}.hint{font-family:var(--f-ui);color:var(--muted)}.other-solutions{grid-template-columns:max-content 1fr;gap:4px 12px;font-size:13px;display:grid}.other-solutions .num{font-size:12px}.hint-sw{font-style:italic}.map.locked{touch-action:pan-x pan-y;cursor:default}.touchhint{z-index:3;background:color-mix(in srgb, var(--ink) 88%, transparent);max-width:88%;color:var(--panel);text-align:center;pointer-events:none;border-radius:999px;padding:7px 14px;font-size:13px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.legend .sw.touch-only{display:none}@media (pointer:coarse){.legend .sw.touch-only{display:flex}.maplock{width:44px;height:44px}.zbtn{min-width:36px;height:34px}.pickopen{padding:6px 9px}.maptools label{min-height:32px}}.mapwrap{position:relative}.maplock{z-index:2;border:1px solid var(--line);background:var(--panel);width:40px;height:40px;color:var(--ink);cursor:pointer;opacity:.92;border-radius:50%;place-items:center;padding:0;line-height:0;display:grid;position:absolute;top:10px;right:10px}.mapcount{z-index:2;background:color-mix(in srgb, var(--panel) 80%, transparent);color:var(--muted);pointer-events:none;border-radius:6px;padding:3px 8px;font-size:12.5px;position:absolute;top:10px;left:10px}.maplock svg{display:block}.maplock:hover{border-color:var(--accent)}.filters{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 12px;font-size:13.5px;display:flex}.filters .flabel{margin-left:6px;font-weight:600}.filters .flabel:first-child{margin-left:0}.filters .fto{color:var(--muted)}.filters input{width:68px;font:500 13px var(--f-data);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:4px 6px}.filters .fclear{font:600 13px var(--f-ui);border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:5px;margin-left:6px;padding:4px 10px}.filters .fclear:disabled{color:var(--muted);cursor:default}.filters input.fdate{width:140px}.theme-btn.fixed{text-align:center;min-width:7.2em}.filters .flabel.fdates{text-align:right;min-width:6.6em}.filters .ftitle{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:700}.filters .finfo{border:1px solid var(--muted);width:16px;height:16px;color:var(--muted);font:700 10px var(--f-ui);cursor:help;border-radius:50%;place-items:center;margin-right:10px;display:inline-grid}.animbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 12px;font-size:13.5px;display:flex}.animbar label{align-items:center;gap:6px;display:flex}.animbar input{width:64px;font:500 13px var(--f-data);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:3px 6px}.animbar .play{background:var(--ink);width:auto;color:var(--panel);padding:0 10px}.animbar .animclock{font-size:14px;font-weight:500}.animbar .animcount{color:var(--muted)}.zbtn,.theme-btn,.banner button,.detail .close,.filters .fclear,.maplock,.tabs button,.pickopen{transition:background-color .12s,border-color .12s,color .12s}@media (hover:hover){.zbtn:hover,.theme-btn:hover,.banner button:hover,.detail .close:hover,.filters .fclear:not(:disabled):hover,.maplock:hover{border-color:var(--accent);color:var(--ink);background:color-mix(in srgb, var(--accent) 10%, var(--panel))}.animbar .play:hover{border-color:var(--accent);background:var(--accent);color:var(--panel)}.tabs button:not([aria-selected=true]):hover{background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink)}.pickrow button:hover{text-decoration:underline}}
