*{box-sizing:border-box}body{background:#e7ebe1;color:#283b35;margin:0;font:16px system-ui}main{max-width:1180px;padding:30px;margin:auto}header{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #9ba99b;padding-bottom:24px;font-size:28px;letter-spacing:.15em}header span{font-size:10px;align-self:center}h1{font:clamp(38px,5vw,62px) Georgia;margin:30px 0 16px}.intro{line-height:1.7;max-width:960px}.layout{display:grid;grid-template-columns:1.3fr 1fr;gap:26px;margin-top:28px}.map{position:relative;aspect-ratio:1;border:2px solid #6c8074;border-radius:10px;overflow:hidden}.map img,.map canvas,#grid{position:absolute;inset:0;width:100%;height:100%}.map img{object-fit:cover}#grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(7,1fr)}#grid button{min-height:0;min-width:0;border:1px solid #40594e66;border-radius:0;background:transparent;font:15px ui-monospace,monospace;padding:2px;color:#233c31;display:flex;flex-direction:column;align-items:center;justify-content:center;text-shadow:0 0 3px #fff}#grid button.wet{color:#16436b;background:#93c5db55}#grid button.neighbor{box-shadow:inset 0 0 0 3px #ffffffc0}#grid button strong{font:18px system-ui;padding:2px 6px;border-radius:4px;background:#ffd080;color:#412b12;text-shadow:none}#grid button strong.b{background:#70518e;color:white}.panel{background:#f8f7ec;border:1px solid #a5b09e;border-radius:12px;padding:25px}h2{font:30px Georgia}.panel small{font-size:11px;letter-spacing:.15em}.parties{display:flex;gap:12px}.parties button[aria-pressed=true]{outline:3px solid #997249}button{font:inherit;min-height:46px;padding:10px 14px;border:1px solid #6c8074;border-radius:6px;background:#e4e9da;color:#293e32;cursor:pointer}button:disabled{opacity:.5;cursor:default}dl{display:grid;grid-template-columns:1fr 1fr;gap:17px;font-size:14px;margin:25px 0}dd{text-align:right;font-family:ui-monospace,monospace;margin:0}#drain{width:100%;background:#345a50;color:#fff}.buttons{display:flex;flex-wrap:wrap;gap:8px}#feedback{border-left:3px solid #aa824a;padding-left:12px;min-height:90px;line-height:1.6}.panel p,.legend,details{line-height:1.7}.legend{font-size:13px}details{margin-top:25px}@media(max-width:650px){main{padding:16px}header span{max-width:120px}.layout{grid-template-columns:1fr;gap:15px}.panel{padding:20px}#grid button{font-size:12px}#grid button strong{font-size:14px;padding:1px 4px}}
