@font-face{font-family:Fraunces;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/Fraunces-var.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:300 700;font-display:swap;src:url(/fonts/Fraunces-Italic-var.woff2)format("woff2")}:root{--water:#0a1622;--water-deep:#071019;--land:#1c2a26;--coast:#3b5450;--ink:#c8d4d0;--ink-dim:#7d8f8b;--ink-faint:#4b5a57;--accent-warm:#e8b872;--accent-orca:#f0e6d2;--panel:#0e1c2a;--panel-edge:#1a2c3d;--alert:#d9a05b;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:var(--water-deep);color:var(--ink);-webkit-font-smoothing:antialiased}.auth-screen{background:radial-gradient(circle at 50% 20%, #e8b8721f, transparent 32rem), linear-gradient(160deg, var(--water) 0%, var(--water-deep) 72%);place-items:center;min-height:100%;padding:1.5rem;display:grid}.auth-card{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid color-mix(in srgb, var(--accent-warm) 22%, var(--panel-edge));border-radius:24px;width:min(100%,26rem);padding:2rem;box-shadow:0 24px 80px #00000052}.auth-card__eyebrow{color:var(--accent-warm);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .35rem;font-size:.78rem;font-weight:700}.auth-card h1{color:var(--accent-orca);font-family:var(--font-display);margin:0;font-size:clamp(2rem,8vw,3rem);line-height:.95}.auth-card__copy{color:var(--ink-dim);margin:1rem 0 1.5rem;line-height:1.5}.auth-card__label{color:var(--ink);gap:.45rem;font-weight:700;display:grid}.auth-card input{width:100%;color:var(--ink);border:1px solid var(--panel-edge);font:inherit;background:#ffffff0f;border-radius:12px;padding:.85rem .95rem}.auth-card input:focus{outline:2px solid var(--accent-warm);outline-offset:2px}.auth-card__error{color:#f0b7a0;margin:1rem 0 0}.auth-card button{width:100%;color:var(--water-deep);background:var(--accent-warm);font:inherit;cursor:pointer;border:0;border-radius:999px;margin-top:1.25rem;padding:.9rem 1rem;font-weight:800}.auth-card button:disabled,.auth-card input:disabled{cursor:wait;opacity:.68}.app{flex-direction:column;height:100%;max-height:100dvh;display:flex;overflow:hidden}.app__main{flex:1;min-height:0;display:flex}.app__map{flex:1;min-width:0;animation:.24s ease-out both view-enter;position:relative}.map{position:absolute;inset:0}.map__svg{display:block}.map:focus{outline:none}.map:focus-visible{outline:2px solid var(--accent-warm);outline-offset:-2px}.map__zoom{z-index:3;flex-direction:column;gap:.3rem;display:flex;position:absolute;bottom:8.75rem;left:.75rem}.map__zoom-btn{width:2.75rem;height:2.75rem;font:inherit;color:var(--ink);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:12px;place-items:center;font-size:1.35rem;line-height:1;display:grid}.map__zoom-btn:hover:not(:disabled){color:var(--accent-warm);border-color:color-mix(in srgb, var(--accent-warm) 45%, var(--panel-edge))}.map__zoom-btn:focus-visible{outline:2px solid var(--accent-warm);outline-offset:2px}.map__zoom-btn:disabled{opacity:.35;cursor:default}.map__zoom-btn--reset{margin-top:.15rem;font-size:1.1rem}@media (width<=640px){.map__zoom{bottom:7.5rem}.map__zoom-btn{width:3rem;height:3rem}}.map__inner.is-animating{transition:transform .55s cubic-bezier(.22,.61,.36,1)}.map__land{fill:var(--land);stroke:var(--coast);stroke-width:1px;stroke-linejoin:round}.map__coast-halo{fill:none;stroke:var(--coast);stroke-width:5px;stroke-linejoin:round;opacity:.12}.map__coast-halo--mid{stroke-width:13px;opacity:.06}.map__coast-halo--far{stroke-width:26px;opacity:.035}.map__inner--chart .map__coast-halo{stroke:#d8c9a0;opacity:.1}.map__inner--chart .map__coast-halo--mid{opacity:.05}.map__inner--chart .map__coast-halo--far{opacity:.03}.map__graticule{fill:none;stroke:#d8c9a0;stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.06;pointer-events:none}.map__vignette{pointer-events:none}.map__compass{pointer-events:none;opacity:.35}.map__inner--chart .map__land{fill-opacity:.75;stroke:#d8c9a0;stroke-opacity:.65;stroke-width:1.25px;vector-effect:non-scaling-stroke}.species-sprite{width:0;height:0;position:absolute;overflow:hidden}.marker{cursor:pointer;fill:currentColor;--sp-patch:var(--water);transition:opacity 1.5s}.marker:focus{outline:none}.marker:focus-visible .marker__disc{stroke:var(--accent-warm);stroke-width:3px}.marker image,.marker use{filter:drop-shadow(0 2px 3px #0000008c)}.marker__scale{transition:transform 1.5s}.marker__breathe{transform-box:fill-box;transform-origin:50%}.marker--breathing .marker__breathe{animation:6s ease-in-out infinite alternate marker-breathe;animation-delay:calc(var(--i,0) * -1.3s)}.marker--new .marker__scale{animation:.9s cubic-bezier(.34,1.3,.64,1) both marker-arrive}.marker__ring{fill:none;stroke:var(--accent-warm);stroke-width:1.5px;opacity:.7}.marker__ring--outer{stroke-width:1px;opacity:.35}.sp-art{fill:currentColor;--sp-patch:var(--panel)}.marker--orca,.sp-art--orca{color:#d9d9d2}.marker--orca_srkw,.sp-art--orca_srkw{color:#f2ead6}.marker--orca_biggs,.sp-art--orca_biggs{color:#dce7ee}.marker--humpback,.sp-art--humpback{color:#a9c6d8}.marker--gray_whale,.sp-art--gray_whale{color:#c9b8a6}.marker--blue_whale,.sp-art--blue_whale{color:#9fc3e8}.marker--fin_whale,.sp-art--fin_whale{color:#b3aed2}.marker--minke,.sp-art--minke{color:#a8c8b8}.marker--harbor_porpoise,.sp-art--harbor_porpoise{color:#b7c4bf}.marker--dalls_porpoise,.sp-art--dalls_porpoise{color:#e2e2dd}.marker--pacific_white_sided_dolphin,.sp-art--pacific_white_sided_dolphin{color:#cdd6a3}.marker--unspecified,.sp-art--unspecified{color:#93aca4}.marker--unknown_cetacean,.sp-art--unknown_cetacean{color:#7d8f8b}.glow{transition:opacity 1.5s}.glow__ping{stroke:var(--accent-warm);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out 3 both glow-ping}.hydro{cursor:pointer;outline:none}.hydro__hit{fill:#0000}.hydro__dot{fill:currentColor}.hydro__arc{fill:none;stroke:currentColor;stroke-width:1.1px;stroke-linecap:round}.hydro--idle{color:var(--ink-faint)}.hydro--heard,.hydro--hot{color:var(--accent-warm)}.hydro.is-selected .hydro__dot,.hydro:focus-visible .hydro__dot{stroke:var(--ink);stroke-width:1px}.hydro__ring{fill:none;stroke:var(--accent-warm);stroke-width:1.2px;transform-box:fill-box;transform-origin:50%;animation:3.2s ease-out infinite hydro-sonar}.hydro__ring--b{animation-delay:1.6s}.popover__listen{color:var(--accent-warm);margin-top:.15rem;text-decoration:none}.popover__listen:hover{text-decoration:underline}.wordmark{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent-orca);opacity:.8;pointer-events:none;text-shadow:0 1px 6px #0009;margin:0;font-size:1.05rem;font-weight:500;position:absolute;top:.65rem;left:1rem}.statusbar{z-index:5;align-items:center;gap:.75rem;font-size:.78rem;display:flex;position:absolute;top:.75rem;right:.75rem}.statusbar__roll{width:2.4rem;height:2.4rem;font:inherit;color:var(--ink-dim);background:color-mix(in srgb, var(--panel) 82%, transparent);border:1px solid var(--panel-edge);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;font-size:1.15rem;line-height:1;display:none}.statusbar__roll:hover,.statusbar.is-rolled-out .statusbar__roll{color:var(--ink)}.statusbar__controls{background:color-mix(in srgb, var(--panel) 82%, transparent);border:1px solid var(--panel-edge);border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .45rem;display:flex}.statusbar__stale{color:var(--alert);background:color-mix(in srgb, var(--panel) 82%, transparent);border:1px solid var(--panel-edge);border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .8rem;display:flex}.statusbar__pulse{background:var(--alert);border-radius:50%;width:7px;height:7px;animation:2.4s ease-in-out infinite stale-pulse}.window-selector{gap:.15rem;display:flex}.window-selector__option,.statusbar__button{font:inherit;color:var(--ink-dim);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.25rem .6rem}.window-selector__option:hover,.statusbar__button:hover{color:var(--ink)}.window-selector__option.is-active{color:var(--ink);background:var(--panel-edge)}.statusbar__button.is-active{color:var(--accent-warm)}.today-panel{--today-drawer-width:min(300px, 78vw);z-index:4;width:var(--today-drawer-width);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;border-right:none;border-radius:14px 0 0 14px;flex-direction:column;transition:transform .28s;display:flex;position:absolute;top:.85rem;bottom:.5rem;right:0;transform:translate(100%)}.today-panel.is-open{pointer-events:auto;transform:translate(0)}.today-panel__tab{font:inherit;color:var(--ink-dim);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;pointer-events:auto;border-right:none;border-radius:10px 0 0 10px;flex-direction:column;align-items:center;gap:.5rem;margin:0;padding:.5rem 1rem .5rem .5rem;display:flex;position:absolute;top:5rem;right:100%}.today-panel__tab:hover{color:var(--ink)}.today-panel.is-open .today-panel__tab{color:var(--ink);padding-right:.5rem}.today-panel__tab-count{min-width:1.75rem;min-height:1.75rem;font-family:var(--font-display);color:var(--water-deep);background:var(--accent-warm);border-radius:9px;flex-direction:column;justify-content:center;align-items:center;padding:.12rem .32rem;font-size:1.2rem;font-weight:550;line-height:1;display:flex}.today-panel__tab-label{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);font-size:.72rem;font-weight:550}.today-panel__tab:hover .today-panel__tab-label,.today-panel.is-open .today-panel__tab-label{color:var(--ink)}.today-panel__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;min-height:0;padding:.45rem .6rem .65rem;display:flex;overflow:auto}.today-panel__header{flex-direction:column;gap:.35rem;margin-bottom:.35rem;display:flex}.today-panel__heading{width:100%;font:inherit;color:var(--ink-dim);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.15rem .1rem 0;display:flex}.today-panel__heading:hover{color:var(--ink)}.today-panel__title{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem}.today-panel__expand{font-size:.85rem}.today-panel__header .window-selector{background:color-mix(in srgb, var(--panel-edge) 40%, transparent);border-radius:999px;width:100%;padding:.1rem}.today-panel__header .window-selector__option{text-align:center;flex:1;padding:.3rem .35rem;font-size:.72rem}.today-panel__chips{flex-wrap:wrap;gap:.3rem;display:flex}.today-panel__chip{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;padding:.2rem;position:relative}.today-panel__chip:hover{background:color-mix(in srgb, var(--panel-edge) 55%, transparent);border-color:var(--panel-edge)}.chip__art{object-fit:contain;filter:drop-shadow(0 1px 4px #00000080);width:120px;display:block}.today-panel__count{text-align:center;min-width:1.05rem;color:var(--accent-warm);background:var(--panel);border:1px solid var(--panel-edge);border-radius:999px;padding:0 .22rem;font-size:.62rem;position:absolute;bottom:-1px;right:-1px}.today-panel__empty{color:var(--ink-faint);margin:0;padding:0 .1rem .1rem;font-size:.72rem}.app__today{flex:1;min-width:0;position:relative}.today-board{background:radial-gradient(120% 90% at 50% 0%, #0d1b29 0%, var(--water-deep) 70%);flex-direction:column;padding:1.8rem 2rem 2rem;animation:.24s ease-out both view-enter;display:flex;position:absolute;inset:0;overflow:hidden}.today-board__header{text-align:center;margin:0 0 .4rem}.today-board__kicker{font-family:var(--font-display);color:var(--ink-dim);margin:0 0 .25rem;font-size:.95rem;font-style:italic}.today-board__title{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-orca);margin:0;font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:550}.today-collage{flex:1;width:min(1200px,100%);min-height:0;margin:0 auto;position:relative}.today-collage__item{transform:translate(-50%, -50%) rotate(var(--rot,0deg));cursor:pointer;background:0 0;border:none;padding:0;transition:transform .25s;position:absolute}.today-collage__item:hover,.today-collage__item:focus-visible{transform:translate(-50%, -50%) rotate(var(--rot,0deg)) scale(1.08);z-index:100!important}.today-collage__item:focus-visible{outline:2px solid var(--accent-warm);outline-offset:6px;border-radius:12px}.today-collage-item__art{filter:drop-shadow(0 6px 16px #00000073);width:100%;height:auto;display:block}svg.today-collage-item__art{aspect-ratio:100/60}.today-collage__item.is-new .today-collage-item__art{animation:.9s cubic-bezier(.34,1.3,.64,1) both marker-arrive}.today-collage__count{text-align:center;min-width:1.3rem;color:var(--accent-warm);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--panel-edge);border-radius:999px;padding:.05rem .35rem;font-size:.72rem;position:absolute;bottom:14%;right:4%}.today-collage__name{white-space:nowrap;font-family:var(--font-display);color:var(--ink);background:color-mix(in srgb, var(--panel) 85%, transparent);border:1px solid var(--panel-edge);opacity:0;pointer-events:none;border-radius:999px;padding:.15rem .7rem;font-size:.85rem;font-style:italic;transition:opacity .2s;position:absolute;top:calc(100% + .35rem);left:50%;transform:translate(-50%)}.today-collage__item:hover .today-collage__name,.today-collage__item:focus-visible .today-collage__name{opacity:1}@media (width<=820px){.today-board{padding:1.1rem 1rem 1.5rem}}.popover{background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--panel-edge);border-top:2px solid color-mix(in srgb, var(--accent-warm) 45%, transparent);pointer-events:auto;z-index:5;border-radius:12px;width:250px;padding:.7rem .85rem .55rem;font-size:.78rem;animation:.18s ease-out both popover-in;position:absolute;transform:translate(-50%,calc(-100% - 18px));box-shadow:0 8px 28px #00000073}.popover--below{transform:translate(-50%,26px)}.popover__head{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.popover__title{flex-direction:column;gap:.05rem;min-width:0;display:flex}.popover__species{font-family:var(--font-display);font-size:1rem;font-weight:550;line-height:1.15}.popover__id{letter-spacing:.03em;color:var(--accent-warm);font-size:.72rem}.popover__age{white-space:nowrap;color:var(--accent-warm);background:color-mix(in srgb, var(--accent-warm) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent-warm) 32%, transparent);border-radius:999px;flex-shrink:0;padding:.12rem .45rem;font-size:.68rem}.popover__facts{flex-wrap:wrap;gap:.3rem .9rem;margin:0;display:flex}.popover__fact{flex-direction:column;gap:.04rem;min-width:0;display:flex}.popover__fact dt{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:.6rem}.popover__fact dd{color:var(--ink);margin:0;font-size:.8rem}.popover__meta{color:var(--ink);flex-wrap:wrap;gap:.25rem .7rem;margin-top:.3rem;display:flex}.popover__note{color:var(--ink);opacity:.85;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:.55rem 0 0;display:-webkit-box;overflow:hidden}.popover__foot{color:var(--ink-dim);flex-direction:column;gap:.1rem;margin-top:.55rem;font-size:.72rem;display:flex}.empty{text-align:center;pointer-events:none;color:var(--ink-dim);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty__waves{width:130px;stroke:var(--ink-faint);stroke-width:1.6px;fill:none;stroke-linecap:round;margin-bottom:.6rem}.empty__title{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink);opacity:.85;font-size:1.25rem;font-weight:500}.empty__sub{margin-top:.3rem;font-size:.85rem}body.cursor-hidden,body.cursor-hidden *{cursor:none!important}.app--kiosk .statusbar__controls{opacity:0;pointer-events:none;transition:opacity .4s}.app--kiosk:hover .statusbar__controls{opacity:1;pointer-events:auto}body.cursor-hidden .app--kiosk:hover .statusbar__controls{opacity:0;pointer-events:none}.app--kiosk .footer{opacity:.75;font-size:.66rem}.footer{z-index:2;color:var(--ink-dim);background:color-mix(in srgb, var(--water-deep) 82%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--panel-edge);pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;padding:.4rem 1rem;font-size:.72rem;display:flex;position:absolute;bottom:0;left:0;right:0}.footer__attribution{color:var(--ink-dim)}.footer__disclaimer{color:var(--ink-faint);white-space:nowrap}.footer__full{display:contents}.footer__compact{display:none}@keyframes marker-arrive{0%{opacity:0;transform:scale(.2)}55%{opacity:1;transform:scale(1.18)}75%{transform:scale(.96)}to{transform:scale(1)}}@keyframes glow-ping{0%{opacity:.9;transform:scale(.25)}to{opacity:0;transform:scale(2.4)}}@keyframes marker-breathe{0%{transform:scale(1)}to{transform:scale(1.04)}}@keyframes view-enter{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes popover-in{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0}}@keyframes stale-pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes hydro-sonar{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:scale(3)}}@media (prefers-reduced-motion:reduce){.marker--new .marker__scale,.today-collage__item.is-new .today-collage-item__art,.marker--breathing .marker__breathe,.today-board,.app__map,.popover{animation:none}.map__inner.is-animating{transition:none}.glow__ping,.hydro__ring{display:none}.statusbar__pulse{opacity:1;animation:none}}@media (width<=640px){.wordmark{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 4.5rem);font-size:.92rem;overflow:hidden}.statusbar{flex-direction:column;align-items:flex-end;gap:.4rem}.statusbar__roll{display:flex}.statusbar__controls{opacity:0;pointer-events:none;transform-origin:100% 0;border-width:0;max-width:0;max-height:0;padding:0;transition:opacity .2s,transform .22s,max-width .22s,max-height .22s,padding .22s,border-width .22s;overflow:hidden;transform:translateY(-.35rem)scale(.96)}.statusbar.is-rolled-out .statusbar__controls{opacity:1;pointer-events:auto;border-width:1px;max-width:min(100vw - 1.5rem,22rem);max-height:3.5rem;padding:.25rem .45rem;transform:translateY(0)scale(1)}.footer{left:auto;right:.5rem;bottom:calc(.4rem + env(safe-area-inset-bottom,0px));border:1px solid var(--panel-edge);background:color-mix(in srgb, var(--panel) 82%, transparent);border-radius:8px;flex-wrap:nowrap;justify-content:flex-end;gap:0;max-width:min(55%,14rem);padding:.25rem .55rem;font-size:.62rem}.footer__full{display:none}.footer__compact{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-faint);display:block;overflow:hidden}}
