/* Epicentre sketch map on /projects-map (owner 2026-11-07). Paper, ink, one red. Scoped to .ep */
.ep{--pp:#F5F1E8;--ink:#161616;--ink2:#55524C;--red:#D7261E;--line:#D9D1C1;position:relative;background:var(--pp);color:var(--ink);
  background-image:radial-gradient(var(--line) .7px,transparent .7px);background-size:14px 14px;
  max-width:none;padding:24px 16px 12px;display:grid;gap:8px}
@media(min-width:900px){.ep{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:40px;padding:36px max(24px,calc((100vw - 1180px)/2)) 20px}}
.ep-kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin:0 0 10px;font-weight:600}
.ep h2{font-size:clamp(2rem,4.6vw,3.4rem)!important;line-height:1.04!important;letter-spacing:-.04em!important;margin:0 0 12px!important;color:var(--ink)!important}
.ep h3{font-size:1.4rem!important;margin:0 0 6px!important}
.ep-red{color:var(--red)}
.ep-lede{color:var(--ink2);font-size:1rem;margin:0 0 16px;max-width:36ch}
.ep-skip{display:inline-block;margin-top:14px;color:var(--ink);font-weight:600;text-decoration:none;font-size:.9rem}
.ep-skip:hover{color:var(--red)}
.ep-btn{display:inline-block;background:var(--ink);color:#fff!important;text-decoration:none;font-weight:600;padding:11px 16px;border-radius:10px}
.ep-btn:hover{background:var(--red)}
.ep-search{display:flex;border:2px solid var(--ink);border-radius:10px;background:#fff;overflow:hidden;max-width:460px;box-shadow:4px 4px 0 var(--ink)}
.ep-search input{flex:1;border:0!important;padding:14px 14px!important;font-size:1rem;background:transparent;outline:0;min-width:0}
.ep-search button{border:0;background:var(--ink);color:#fff;font-weight:600;padding:0 20px;cursor:pointer}
.ep-search button:hover{background:var(--red)}
.ep-map{margin:0;position:relative}
.ep-map svg{width:100%;height:auto;max-height:62vh;display:block;margin:0 auto;overflow:visible}
.ep-map figcaption{text-align:center;font-size:.72rem;color:var(--ink2);margin-top:4px}
.ep-sea{font-size:11px;letter-spacing:.4em;fill:#9C9483}
.ep-coast{fill:none;stroke:#8FB3C9;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 7}
.ep-creek{fill:none;stroke:#8FB3C9;stroke-width:2;stroke-linecap:round;stroke-dasharray:1 6}
.ep-line{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;animation:ep-draw 1.6s ease-out forwards;animation-delay:var(--d)}
.ep-line-2{stroke:var(--red)}
.ep-line-3{stroke:#6B7280;stroke-dasharray:6 5;stroke-dashoffset:0;animation:ep-fade .8s ease-out both;animation-delay:var(--d)}
.ep-zone{cursor:pointer;opacity:0;transform-box:fill-box;transform-origin:center;animation:ep-pop .5s cubic-bezier(.3,1.5,.5,1) forwards;animation-delay:var(--d);outline:0}
.ep-zone circle{fill:#fff;stroke:var(--ink);stroke-width:2;transition:fill .2s}
.ep-zone .ep-n{font-size:11px;font-weight:700;text-anchor:middle;fill:var(--ink);pointer-events:none}
.ep-zone .ep-l{font-size:11px;font-weight:600;fill:var(--ink);paint-order:stroke;stroke:var(--pp);stroke-width:4px}
.ep-zone:hover circle,.ep-zone:focus circle,.ep-zone.on circle{fill:var(--red);stroke:var(--red)}
.ep-zone:hover .ep-n,.ep-zone:focus .ep-n,.ep-zone.on .ep-n{fill:#fff}
@keyframes ep-draw{to{stroke-dashoffset:0}}
@keyframes ep-pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes ep-fade{from{opacity:0}to{opacity:1}}
.ep-card{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:18px 18px 16px;box-shadow:6px 6px 0 var(--ink);animation:ep-up .25s ease-out}
@media(min-width:900px){.ep-card{position:absolute;left:auto;right:24px;bottom:auto;top:60px;width:300px}}
#main .ep-card h2{font-size:1.5rem!important;margin:0 0 6px}
.ep-big{margin:0 0 8px;color:var(--ink2)}.ep-big b{color:var(--ink)}
.ep-locs{font-size:.85rem;color:var(--ink2);margin:0 0 14px}
.ep-x{position:absolute;right:10px;top:6px;border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--ink)}
@keyframes ep-up{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.ep-btn{display:inline-block;background:var(--ink);color:#fff!important;text-decoration:none;font-weight:600;padding:12px 18px;border-radius:10px}
.ep-btn:hover{background:var(--red)}
@media(prefers-reduced-motion:reduce){.ep-line,.ep-zone,.ep-card{animation:none;opacity:1;stroke-dashoffset:0}}
.ep-ring{fill:none;stroke:#C9BFAB;stroke-width:1;stroke-dasharray:3 4;opacity:0;animation:ep-fade .6s ease-out forwards;animation-delay:var(--d)}
.ep-ringl{font-size:10px;fill:#9C9483;letter-spacing:.04em}
.ep-centre .ep-dot{fill:var(--red)}
.ep-centre .ep-pulse{fill:none;stroke:var(--red);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ep-pulse 2s ease-out infinite}
.ep-centre text{font-size:13px;font-weight:700;fill:var(--red);paint-order:stroke;stroke:var(--pp);stroke-width:4px}
@keyframes ep-pulse{from{transform:scale(.4);opacity:1}to{transform:scale(2.2);opacity:0}}
@media(prefers-reduced-motion:reduce){.ep-ring{animation:none;opacity:1}.ep-centre .ep-pulse{animation:none}}
.ep-centre{transition:transform .6s cubic-bezier(.4,1.3,.5,1)}
.ep-from{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px;font-size:.78rem}
.ep-from span{color:var(--ink2);margin-right:4px}
.ep-from button{border:1.5px solid var(--ink);background:#fff;border-radius:99px;padding:5px 11px;font-weight:600;font-size:.78rem;cursor:pointer;color:var(--ink)}
.ep-from button.on{background:var(--red);border-color:var(--red);color:#fff}
.ep-card{z-index:900}
@media(min-width:900px){.ep-card{top:40px}}
