:root{--paper: #fbf7ef;--paper-2: #f3ecdd;--ink: #3b2a1a;--ink-2: #6d5a45;--ink-3: #a08d76;--sea: #dcecf3;--sea-line: #b9d5e2;--land: #fffdf7;--border: #b8a58a;--accent: #e57c5b;--accent-2: #2f80ed;--good: #2e7d32;--card: #ffffff;--shadow: 0 2px 0 rgba(59, 42, 26, .12), 0 8px 24px rgba(59, 42, 26, .08);--r-hokkaido: #d8ecf7;--r-tohoku: #dcefd9;--r-kanto: #fbe3d4;--r-chubu: #fdf1c7;--r-kinki: #ead9f1;--r-chugoku: #d7eee8;--r-shikoku: #f8dbe3;--r-kyushu: #e7e8cf;--font: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic", sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-weight:500;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;display:flex;flex-direction:column;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:var(--paper);border-bottom:2px dashed var(--border);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 60% 35%,var(--accent) 0 30%,transparent 31%),var(--sea);border:2px solid var(--ink)}.brand h1{margin:0;font-size:22px;font-weight:900;letter-spacing:.04em;line-height:1}.brand h1 small{display:block;font-size:11px;font-weight:700;color:var(--ink-2);margin-top:3px;letter-spacing:.2em}.modes{display:flex;gap:4px;background:var(--paper-2);padding:4px;border-radius:999px;border:2px solid var(--ink)}.modes button{border:0;background:transparent;padding:7px 14px;border-radius:999px;font-weight:700;font-size:14px}.modes button[aria-selected=true]{background:var(--ink);color:var(--paper)}.stage{flex:1;display:grid;grid-template-columns:1fr 380px;min-height:0}.map-area{display:flex;flex-direction:column;min-width:0;min-height:0}.toolbar{display:flex;gap:6px;padding:10px 12px;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--paper-2);flex-wrap:nowrap;min-height:54px;align-items:center}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 7px;border-radius:999px;border:2px solid var(--border);background:var(--card);font-size:13px;font-weight:700;white-space:nowrap;color:var(--ink-2)}.chip .ic{width:20px;height:20px}.chip[aria-pressed=true]{border-color:var(--ink);color:var(--ink);background:#fff3c4;box-shadow:0 2px 0 var(--ink)}.chip.sm{padding:4px 10px;font-size:12px}.toolbar .sep{flex:0 0 auto;width:2px;height:26px;background:var(--paper-2);margin:0 4px}.map-wrap{position:relative;flex:1;min-height:0;background:var(--sea);overflow:hidden;touch-action:none}#map{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none}.map-buttons{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px}.map-buttons button{width:40px;height:40px;border-radius:12px;border:2px solid var(--ink);background:var(--card);font-size:20px;font-weight:900;box-shadow:0 2px 0 var(--ink);line-height:1}.legend{position:absolute;left:12px;bottom:12px;background:#ffffffeb;border:2px solid var(--ink);border-radius:12px;padding:8px 10px;font-size:12px;max-width:70%}.legend .scale{display:flex;align-items:center;gap:2px;margin-top:4px}.legend .scale span{width:22px;height:12px;border:1px solid rgba(0,0,0,.15)}.legend .row{display:flex;align-items:center;gap:6px;margin:2px 0}.legend .sw{width:22px;height:0;border-top:3px solid;display:inline-block}.tooltip{position:absolute;pointer-events:none;background:var(--ink);color:var(--paper);font-size:13px;font-weight:700;padding:5px 9px;border-radius:8px;white-space:nowrap;transform:translate(-50%,calc(-100% - 12px))}.pref{stroke:var(--border);stroke-width:.8;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .25s}.pref:hover{stroke:var(--ink);stroke-width:1.6}.pref.selected{stroke:var(--accent);stroke-width:2.6}.pref.dim{opacity:.45}.inset-frame{fill:var(--sea);stroke:var(--ink-3);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.inset-label{font-size:11px;fill:var(--ink-2);font-weight:700}.pref-label{font-size:calc(13px / var(--k, 1));font-weight:700;fill:var(--ink);paint-order:stroke;stroke:var(--land);stroke-width:calc(3px / var(--k, 1));pointer-events:none;text-anchor:middle;dominant-baseline:central}.sea-label{font-size:calc(15px / var(--k, 1));fill:#7aa3b8;font-weight:900;letter-spacing:.3em;pointer-events:none;text-anchor:middle}.sea-label.small{font-size:calc(10px / var(--k, 1));letter-spacing:.1em}.feat-label{font-size:calc(11px / var(--k, 1));font-weight:700;paint-order:stroke;stroke:#ffffffe6;stroke-width:calc(3px / var(--k, 1));pointer-events:none}.range{fill:none;stroke:#8d6e63;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.55;cursor:pointer}.range-teeth{fill:none;stroke:#6d4c41;stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:none}.river{fill:none;stroke:#2f80ed;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer}.river-hit,.range-hit,.current-hit{fill:none;stroke:transparent;stroke-width:14;vector-effect:non-scaling-stroke;cursor:pointer}.current{fill:none;stroke-width:3;stroke-dasharray:8 6;vector-effect:non-scaling-stroke;stroke-linecap:round}.current.warm{stroke:#e53935}.current.cold{stroke:#1e63c6}.marker{cursor:pointer}.marker:hover use,.marker:focus use{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 1px 2px rgba(0,0,0,.4))}.lake-dot{fill:#64b5f6;stroke:#1e63c6;stroke-width:1.4;vector-effect:non-scaling-stroke}.plain-dot{fill:#c5e1a5;stroke:#558b2f;stroke-width:1.4;vector-effect:non-scaling-stroke}.pen-dot{fill:#fff;stroke:#6d5a45;stroke-width:1.4;vector-effect:non-scaling-stroke}.zone{fill:#ff98002e;stroke:#ef6c00;stroke-width:1.6;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;cursor:pointer}.rank-badge circle{stroke:var(--ink);stroke-width:1.4;vector-effect:non-scaling-stroke}.rank-badge text{font-weight:900;text-anchor:middle;dominant-baseline:central;font-size:11px;pointer-events:none}.hidden-label .pref-label{display:none}.panel{border-left:2px dashed var(--border);background:var(--paper);overflow:hidden;display:flex;flex-direction:column;min-height:0}.panel-grip{display:none}.panel-body{overflow-y:auto;padding:16px;flex:1}.card{background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:14px 14px 12px;box-shadow:var(--shadow);margin-bottom:14px}.card h2{margin:0 0 2px;font-size:22px;font-weight:900;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card h3{margin:14px 0 6px;font-size:14px;font-weight:900;color:var(--ink-2);display:flex;align-items:center;gap:6px}.card h3:first-child{margin-top:0}.card p{margin:6px 0;line-height:1.6;font-size:14px}.region-tag{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;border:1.5px solid var(--ink);background:var(--paper-2)}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px;margin-top:10px}.kv dt{color:var(--ink-2);font-weight:700}.kv dd{margin:0;font-weight:700}.note-diff{display:inline-block;font-size:11px;background:#fff3c4;border:1px solid #e0b400;border-radius:6px;padding:0 5px;margin-left:4px}.year{display:inline-flex;align-items:center;font-size:11px;font-weight:700;color:#1e63c6;background:#e3f0ff;border:1px solid #b3d1fb;border-radius:6px;padding:1px 6px;white-space:nowrap}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;gap:4px;background:var(--paper);border:1.5px solid var(--border);border-radius:10px;padding:3px 8px 3px 4px;font-size:13px;font-weight:700}button.tag:hover{border-color:var(--ink)}.tag .ic{width:22px;height:22px}.tag .r{font-size:11px;color:#fff;background:var(--accent);border-radius:6px;padding:0 5px}.tag .r.gold{background:#d4a017}.prod-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.empty{color:var(--ink-3);font-size:13px}.hint{font-size:13px;color:var(--ink-2);line-height:1.6}.hint b{color:var(--ink)}.rank-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.item-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;border-radius:12px;border:2px solid var(--border);background:var(--card);font-size:12px;font-weight:700;line-height:1.2;text-align:center}.item-btn .ic{width:34px;height:34px}.item-btn[aria-pressed=true]{border-color:var(--ink);background:#fff3c4;box-shadow:0 2px 0 var(--ink)}.rank-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}.rank-table td{padding:5px 4px;border-bottom:1px dashed var(--paper-2);vertical-align:middle}.rank-table tr{cursor:pointer}.rank-table tr:hover td{background:#fffbea}.rank-table .no{width:30px;text-align:center}.rank-no{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink);font-weight:900;font-size:12px}.rank-table .val{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.bar{height:8px;border-radius:4px;background:var(--accent);min-width:2px}.bar-wrap{width:72px}.src{font-size:12px;color:var(--ink-2);line-height:1.6;margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}.src a{color:var(--accent-2)}.big-ic{width:52px;height:52px}.pending{background:#fff8e1;border:2px dashed #e0b400;border-radius:12px;padding:10px;font-size:13px;line-height:1.6}.about-table{width:100%;border-collapse:collapse;font-size:13px}.about-table td,.about-table th{border-bottom:1px dashed var(--border);padding:6px 4px;text-align:left;vertical-align:top}.about-table th{color:var(--ink-2);font-weight:900}.seg{display:inline-flex;border:2px solid var(--ink);border-radius:999px;overflow:hidden;margin:4px 0 8px}.seg button{border:0;background:var(--card);padding:5px 12px;font-size:13px;font-weight:700}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}@media(max-width:860px){.stage{grid-template-columns:1fr;grid-template-rows:1fr auto}.brand h1{font-size:19px}.modes button{padding:6px 10px;font-size:13px}.panel{border-left:0;border-top:2px solid var(--ink);border-radius:18px 18px 0 0;margin-top:-14px;position:relative;z-index:2;max-height:46vh;transition:max-height .25s;box-shadow:0 -6px 20px #3b2a1a1f}.panel.collapsed{max-height:64px}.panel-grip{display:block;border:0;background:transparent;height:22px;width:100%;position:relative;flex:0 0 auto}.panel-grip:after{content:"";position:absolute;left:50%;top:8px;width:44px;height:5px;border-radius:3px;background:var(--border);transform:translate(-50%)}.panel-body{padding:4px 16px 16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.legend,.map-buttons{bottom:26px}}@media(max-width:420px){.top{padding:8px 12px}.brand-mark{width:28px;height:28px}}.ouchi-home{display:inline-flex;align-items:center;gap:4px;flex:none;align-self:center;padding:3px 10px 3px 8px;border:2px solid currentColor;border-radius:999px;font:700 12px/1.4 Zen Maru Gothic,sans-serif;letter-spacing:.04em;color:var(--muted,var(--ink-2,#5a687c));text-decoration:none;white-space:nowrap}.ouchi-home:hover{color:var(--ink,#1c2736)}.ouchi-home:focus-visible{outline:3px solid var(--accent,#2f6bd8);outline-offset:2px}.ouchi-home svg{width:15px;height:15px}
