:root{--field-green:#2f4a34;--field-green-d:#253c2a;--ochre:#b9832b;--ochre-text:#8a5a12;--rust:#9c4a2e;--rust-d:#7a3620;--moss:#a9b49a;--paper:#f1e9d6;--card-paper:#faf5e9;--ink:#33291e;--ink-soft:#6a5d48;--ink-faint:#9a8a6a;--hairline:#33291e24;--oceanside:var(--field-green);--oceanside-deep:var(--ochre-text);--sunnyside:var(--ochre);--sunnyside-text:var(--ochre-text);--cloud:var(--paper);--bay:var(--ink);--sky:var(--moss);--morning:var(--moss);--beak:var(--rust);--font-heading:"IM Fell English", Georgia, serif;--font-body:"Work Sans", Arial, sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.6}*{box-sizing:border-box}body{background:var(--paper);margin:0}a{color:var(--ochre-text)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px}.app{flex-direction:column;max-width:1024px;min-height:100svh;margin:0 auto;padding:44px 24px 64px;display:flex}.header,.footer{width:100%;max-width:640px;margin-left:auto;margin-right:auto}.header{text-align:center;padding:1rem 0 2.5rem}.seal{background:var(--card-paper);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 22px;display:flex;box-shadow:inset 0 0 0 4px #f1e9d6,inset 0 0 0 5px #2f4a348c,0 0 0 2px #2f4a34}.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;color:var(--ochre-text);margin:0 0 12px;font-size:12px;font-weight:700}.header h1{font-family:var(--font-heading);color:var(--field-green);margin:0 0 1rem;font-size:52px;font-weight:400;line-height:1.02}.tagline{font-family:var(--font-heading);color:var(--ink-soft);max-width:44ch;margin:0 auto 2rem;font-size:19px;font-style:italic;line-height:1.5}.find-btn{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.12em;color:var(--paper);background:var(--field-green);cursor:pointer;border:none;border-radius:3px;padding:14px 28px;font-size:12px;font-weight:700;transition:background .15s}.find-btn:hover:not(:disabled){background:var(--field-green-d)}.find-btn:disabled{opacity:.4;cursor:progress}.coords{font-family:var(--font-body);color:#8a7550;margin-top:1rem;font-size:13px}.search-jump{font-family:var(--font-body);color:#355a4a;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin-top:1.5rem;font-size:13px;text-decoration:underline;display:inline-block}.search-jump:hover{color:var(--field-green)}.content{flex:1}.state-msg{text-align:center;font-family:var(--font-body);color:var(--field-green);padding:1.5rem 0;font-size:15px}.state-msg.error{color:var(--rust);font-size:.95rem}.spinner{vertical-align:-.25em;border:2.5px solid var(--moss);border-top-color:var(--field-green);border-radius:50%;width:18px;height:18px;margin-right:.5rem;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.retry-btn{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--rust);cursor:pointer;background:0 0;border:none;margin-top:1rem;padding:.25rem 0;font-size:11px;font-weight:700}.retry-btn:hover{color:var(--rust-d)}.msg-error{color:var(--rust);margin:0;font-size:.95rem}.zip-fallback{color:var(--ink);max-width:340px;margin:1.25rem auto 0}.zip-fallback label{margin-bottom:.4rem;font-size:.85rem;display:block}.zip-row{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.zip-row .search-input{max-width:10rem}.zip-fallback .msg-error{margin-top:.5rem}.results{grid-template-columns:1fr;align-items:start;gap:32px;display:grid}@media (width>=768px){.results{grid-template-columns:1fr 1fr}}.panel{min-width:0;padding:0}.panel-hotspots{background:var(--moss);border-radius:4px;padding:26px 28px}.panel h2{font-family:var(--font-heading);color:var(--field-green);margin:0 0 1.25rem;font-size:28px;font-weight:400}.panel-hotspots h2{color:#233019}.empty{color:var(--ink-soft);font-style:italic}ul{margin:0;padding:0;list-style:none}.bird-list .bird{border-bottom:1px solid var(--hairline);padding:15px 0}.bird-list .bird:last-child{border-bottom:none}.com-name{font-family:var(--font-heading);color:var(--field-green);font-size:20px;font-weight:400;display:block}.bird-detail{font-family:var(--font-body);color:var(--ink-soft);margin:.35rem 0 0;font-size:12.5px;line-height:1.5}.bird .distance{font-family:var(--font-body);color:var(--ink-faint);white-space:nowrap;font-size:12px;font-weight:500}.radius-toggle{border:1.5px solid var(--field-green);border-radius:3px;margin-top:1.5rem;display:inline-flex;overflow:hidden}.radius-toggle button{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--field-green);cursor:pointer;background:0 0;border:none;padding:10px 15px;font-size:10.5px;font-weight:700;transition:background .15s,color .15s}.radius-toggle button+button{border-left:1px solid #2f4a3459}.radius-toggle button.selected,.radius-toggle button[aria-pressed=true]{background:var(--field-green);color:var(--paper)}.empty-range{color:var(--ink-soft);font-family:var(--font-heading);margin:0;font-size:17px;font-style:italic}.empty-range p{margin:0}.empty-range .retry-btn{margin-top:.6rem}.pager{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.pager .pager-btn{margin-top:0}.pager .pager-btn:disabled{opacity:.4;cursor:default}.pager-status{font-family:var(--font-body);color:var(--ink-faint);font-size:12px}.panel-hotspots .pager .pager-btn{color:#33291e}.panel-hotspots .pager .pager-btn:hover:not(:disabled){color:var(--field-green-d)}.panel-hotspots .pager-status{color:#41502f}.hotspot-list .hotspot{padding:.9rem 0}.hotspot-list .hotspot+.hotspot{border-top:1px solid #232d192e}.hotspot-head,.bird-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.hotspot .loc{font-family:var(--font-heading);color:#233019;font-size:19px;font-weight:400}.hotspot .distance{font-family:var(--font-body);color:#41502f;white-space:nowrap;font-size:12px;font-weight:500}.hotspot-links{flex-wrap:wrap;gap:.25rem 18px;margin-top:10px;display:flex}.hotspot-links a,.hotspot-links .linklike{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--rust);white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;min-height:1.75rem;padding:.3rem 0;font-size:10.5px;font-weight:700;text-decoration:none;display:inline-flex}.hotspot-links a:hover,.hotspot-links .linklike:hover{color:var(--rust-d)}.panel-hotspots .hotspot-links a{color:#33291e}.panel-hotspots .hotspot-links a:hover{color:var(--field-green-d)}@media (pointer:coarse){.hotspot-links{gap:.25rem 1.5rem}.hotspot-links a{min-height:44px}}.bird-search{text-align:left;max-width:440px;margin:1.75rem auto 0;position:relative}.search-row{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.search-field{flex:12rem;min-width:0;position:relative}.search-input{width:100%;font-family:var(--font-body);color:var(--ink);background:var(--card-paper);border:1px solid #33291e4d;border-radius:3px;padding:11px 13px;font-size:.95rem}.search-input::placeholder{color:var(--ink-faint)}.search-input:focus{border-color:var(--field-green);outline:none}.find-nearest-btn{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--paper);background:var(--field-green);cursor:pointer;white-space:nowrap;border:none;border-radius:3px;padding:0 16px;font-size:11px;font-weight:700;transition:background .15s}.find-nearest-btn:hover:not(:disabled){background:var(--field-green-d)}.find-nearest-btn:disabled{opacity:.4;cursor:default}.clear-btn{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--field-green);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0 .5rem;font-size:11px;font-weight:700}.clear-btn:hover{color:var(--field-green-d);text-decoration:underline}.suggestions{z-index:10;background:var(--card-paper);border:1px solid #33291e29;border-radius:3px;max-height:18rem;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #33291e24}.suggestions li{color:var(--ink);cursor:pointer;padding:9px 13px;font-size:13.5px}.suggestions li.active,.suggestions li:hover{background:#ebe2cc}.search-note{font-family:var(--font-body);color:var(--ink-faint);text-align:center;margin:.6rem 0 0;font-size:12.5px}.bird-search-section{text-align:center;width:100%;max-width:640px;margin:3rem auto 0}.search-results-body{text-align:left;margin-top:1.5rem}.primary-sighting{background:var(--card-paper);border:1px solid var(--hairline);border-radius:4px;padding:18px 20px}.primary-sighting .com-name{font-size:23px}.footer{text-align:center;font-family:var(--font-body);color:var(--ink-faint);margin-top:3rem;font-size:12.5px}.footer a{color:#355a4a}.modal-backdrop{z-index:100;background:#23211a8c;justify-content:center;align-items:flex-start;padding:5vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal.species-modal{background:var(--card-paper);border:1px solid var(--hairline);border-radius:6px;width:100%;max-width:560px;padding:28px 30px 26px;position:relative;box-shadow:0 18px 50px #23211a59}@media (prefers-reduced-motion:no-preference){.modal.species-modal{animation:.18s ease-out modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}.modal-close{width:36px;height:36px;font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:22px;line-height:1;display:flex;position:absolute;top:10px;right:12px}.modal-close:hover{color:var(--field-green);background:#ebe2cc}.species-head{margin:0 2rem 1rem 0}.species-head .com-name{font-family:var(--font-heading);color:var(--field-green);margin:0;font-size:30px;font-weight:400}.species-sci{font-family:var(--font-heading);color:var(--ink-soft);margin:2px 0 0;font-size:15px;font-style:italic}.species-photo{margin:0 0 1.25rem}.species-photo img{object-fit:contain;background:var(--paper);border:1px solid var(--hairline);border-radius:4px;width:100%;height:auto;max-height:360px;display:block}.species-photo figcaption{font-family:var(--font-body);color:var(--ink-faint);margin-top:6px;font-size:11px}.species-photo figcaption a{color:#355a4a}.species-summary p{font-family:var(--font-body);color:var(--ink);margin:0 0 .6rem;font-size:14.5px;line-height:1.65}.species-summary .species-source{color:var(--ink-faint);font-size:12px}.species-summary .species-source a{color:#355a4a}.species-sightings{border-top:1px solid var(--hairline);margin-top:1.5rem;padding-top:1.25rem}.species-sightings h3{font-family:var(--font-heading);color:var(--field-green);margin:0 0 .75rem;font-size:20px;font-weight:400}.species-foot{border-top:1px solid var(--hairline);margin-top:1.5rem;padding-top:1rem}.species-foot a{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--rust);font-size:11px;font-weight:700;text-decoration:none}.species-foot a:hover{color:var(--rust-d)}
