.site-header{background-image:linear-gradient(#0a1634b8,#0a1634d1),url(/photos/Rick.jpg);background-size:cover;background-position:55% 68%;border-bottom:1px solid #234e7c;padding:1.25rem 1.5rem;position:sticky;top:0;z-index:100}.header-inner{max-width:1600px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.header-brand{display:flex;align-items:center;gap:1rem}.header-brand svg{flex-shrink:0;filter:drop-shadow(0 0 6px rgba(13,115,119,.35))}.brand-text{display:flex;flex-direction:column}.brand-name{font-family:Playfair Display,Georgia,serif;font-size:1.45rem;font-weight:700;color:var(--white);letter-spacing:.02em;line-height:1.2}.brand-name__break{display:inline}.brand-tagline{font-size:.65rem;text-transform:uppercase;letter-spacing:.16em;color:var(--teal-light);margin-top:3px}.header-right{display:flex;align-items:center}.header-count{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.header-count__photos{color:var(--teal-light)}.header-brand--clickable{cursor:pointer;border-radius:8px;padding:4px 6px;margin:-4px -6px;transition:background var(--transition)}.header-brand--clickable:hover{background:#0d73771f}.header-breadcrumb{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.back-btn{font-size:.78rem;color:var(--teal-light);font-weight:500;padding:.3rem .7rem;border-radius:999px;border:1px solid rgba(13,115,119,.4);background:#0d737714;transition:all var(--transition);white-space:nowrap}.back-btn:hover{background:#0d737733;border-color:var(--teal-light);color:#fff}.breadcrumb-sep{color:var(--text-muted);font-size:.75rem}.breadcrumb-current{font-family:Playfair Display,serif;font-size:1rem;font-weight:700;color:var(--white)}.header-count--inline{font-size:.72rem;color:var(--text-muted);margin-left:.25rem}@media (max-width: 640px){.header-brand svg{height:44px}.brand-name{font-size:1.1rem}.brand-name__break{display:block}}@media (max-width: 480px){.header-brand svg{height:36px}.brand-name{font-size:.95rem}.brand-name__break{display:block}.brand-tagline,.header-count{display:none}}.filter-bar{background:var(--navy-mid);border-bottom:1px solid #1a3a5c;padding:1rem 1.5rem}.filter-bar-inner{max-width:1600px;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.4rem}.filter-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.pill-row{display:flex;flex-wrap:wrap;gap:.4rem}.pill{padding:.3rem .75rem;border-radius:999px;font-size:.78rem;font-weight:500;background:#153e68;color:var(--text-muted);border:1px solid #234e7c;transition:background var(--transition),color var(--transition),border-color var(--transition);white-space:nowrap}.pill:hover{background:#1c4871;color:var(--text);border-color:var(--teal)}.pill--active{background:var(--teal);color:var(--white);border-color:var(--teal-light)}.filter-group--search{flex:1;min-width:200px}.search-wrap{display:flex;align-items:center;background:#153e68;border:1px solid #234e7c;border-radius:var(--radius-sm);padding:0 .6rem;gap:.5rem;transition:border-color var(--transition)}.search-wrap:focus-within{border-color:var(--teal)}.search-icon{font-size:.85rem;opacity:.5;flex-shrink:0}.tag-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:.82rem;padding:.4rem 0;font-family:inherit}.tag-input::placeholder{color:var(--text-muted)}.search-clear{font-size:.75rem;color:var(--text-muted);line-height:1;padding:2px 4px;border-radius:3px;flex-shrink:0}.search-clear:hover{color:var(--text)}.clear-all{align-self:flex-end;padding:.38rem .9rem;border-radius:999px;font-size:.75rem;color:var(--sand-muted);border:1px solid #3a3020;background:transparent;transition:all var(--transition);white-space:nowrap}.clear-all:hover{background:#3a3020;color:var(--sand)}.loc-card{position:relative;cursor:pointer;border-radius:14px;overflow:hidden;background:var(--navy-mid);display:block;width:100%;height:100%}.loc-card__skeleton{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0e2040 25%,#143050,#0e2040 75%);background-size:200% 100%;animation:loc-shimmer 1.4s infinite}@keyframes loc-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.loc-card__img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s ease,transform .5s ease}.loc-card__img--loaded{opacity:1}.loc-card:hover .loc-card__img{transform:scale(1.04)}.loc-card__info{position:absolute;bottom:0;left:0;right:0;padding:1.4rem 1.2rem 1rem;background:linear-gradient(0deg,rgba(4,10,24,.92) 0%,rgba(4,10,24,.5) 60%,transparent 100%);display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;transition:opacity var(--transition)}.loc-card:hover .loc-card__info{opacity:0}.loc-card__top{display:flex;flex-direction:column;gap:2px}.loc-card__name{font-family:Playfair Display,Georgia,serif;font-size:1.35rem;font-weight:700;color:var(--white);line-height:1.1}.loc-card__region{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--teal-light)}.loc-card__count{font-size:.72rem;color:#c8dcf099;white-space:nowrap;flex-shrink:0}.loc-card__hover{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,#040a18f2,#0a1e3cb3);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:1.5rem 1.2rem;gap:.75rem;opacity:0;transition:opacity .25s ease}.loc-card:hover .loc-card__hover,.loc-card:focus-visible .loc-card__hover{opacity:1}.loc-card__desc{font-size:.85rem;line-height:1.55;color:#c8dcf0d9;max-width:30ch}.loc-card__cta{font-size:.8rem;font-weight:600;color:var(--teal-light);letter-spacing:.04em;border-bottom:1px solid var(--teal);padding-bottom:1px;transition:color var(--transition),border-color var(--transition)}.loc-card:hover .loc-card__cta{color:#fff;border-color:#fff}.loc-card__info-btn{position:absolute;top:.65rem;right:.65rem;z-index:10;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;background:#0e2040bf;color:#c8dcf0a6;border:1px solid rgba(26,58,92,.6);transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.8}.loc-card__info-btn:hover{background:var(--teal);border-color:var(--teal-light);color:#fff;opacity:1;transform:scale(1.08)}.loc-grid{columns:3 300px;column-gap:1rem;padding:2rem 1.5rem 4rem;max-width:1400px;margin:0 auto}.loc-grid__item{break-inside:avoid;margin-bottom:1rem;border-radius:14px;overflow:hidden;min-height:220px}@media (max-width: 900px){.loc-grid{columns:2 260px}}@media (max-width: 560px){.loc-grid{columns:1}}.photo-card{position:relative;cursor:pointer;border-radius:var(--radius-md);overflow:hidden;background:var(--navy-mid);display:block}.photo-card__skeleton{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#153161 25%,#1c4471,#153161 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.photo-card__img{width:100%;height:auto;display:block;opacity:0;transition:opacity .35s ease,transform .4s ease}.photo-card__img--loaded{opacity:1}.photo-card:hover .photo-card__img{transform:scale(1.03)}.photo-card__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,rgba(5,14,28,.82) 0%,rgba(5,14,28,.15) 42%,transparent 65%);display:flex;flex-direction:column;justify-content:flex-end;padding:.85rem;gap:.4rem;transition:background var(--transition)}.photo-card:hover .photo-card__overlay,.photo-card:focus-visible .photo-card__overlay{background:linear-gradient(0deg,rgba(5,14,28,.95) 0%,rgba(5,14,28,.5) 55%,transparent 80%)}.photo-card__species{display:flex;flex-direction:column;gap:.15rem}.photo-card__common-name{font-family:Playfair Display,serif;font-size:1rem;font-weight:700;color:var(--white);line-height:1.2;text-shadow:0 1px 4px rgba(0,0,0,.6)}.photo-card__scientific-name{font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:.72rem;color:#a8e6e8d9;line-height:1.2;letter-spacing:.01em}.photo-card__meta{display:flex;flex-wrap:wrap;gap:.3rem;opacity:0;transition:opacity var(--transition)}.photo-card:hover .photo-card__meta,.photo-card:focus-visible .photo-card__meta{opacity:1}.photo-card__badge{font-size:.62rem;padding:.15rem .45rem;border-radius:999px;font-weight:500;letter-spacing:.02em}.photo-card__badge--location{background:#0d7377a6;color:#a8e6e8;border:1px solid rgba(13,115,119,.45)}.photo-card__badge--animal{background:#1a4a6ea6;color:#a8c8e8;border:1px solid rgba(26,74,110,.45)}.photo-card__badge--clickable{cursor:pointer;font-family:inherit;transition:background .15s ease,color .15s ease,border-color .15s ease}.photo-card__badge--clickable:hover{background:#0d7377e6;color:#fff;border-color:var(--teal-light)}.masonry-grid{columns:4 280px;column-gap:1rem}.masonry-item{break-inside:avoid;margin-bottom:1rem;border-radius:var(--radius-md);overflow:hidden}.masonry-empty{text-align:center;padding:6rem 2rem}.masonry-empty__icon{font-size:3rem;margin-bottom:1rem}.masonry-empty__message{font-size:1.1rem;color:var(--text);margin-bottom:.5rem}.masonry-empty__hint{font-size:.85rem;color:var(--text-muted)}@media (max-width: 900px){.masonry-grid{columns:3 220px}}@media (max-width: 600px){.masonry-grid{columns:2 160px}}@media (max-width: 380px){.masonry-grid{columns:1}}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#040a16eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.lightbox-panel{position:relative;display:flex;flex-direction:column;max-width:min(900px,100%);max-height:90vh;width:100%;background:var(--navy-mid);border:1px solid #1a3a5c;border-radius:var(--radius-lg);overflow:hidden;animation:slide-up .25s ease}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.lightbox-image-wrap{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#050e1e}.lightbox-image{max-width:100%;max-height:54vh;object-fit:contain;display:block}.lightbox-info{padding:1rem 1.5rem 1.4rem;border-top:1px solid #1a3a5c;flex-shrink:0;overflow-y:auto;max-height:36vh;display:flex;flex-direction:column;gap:.6rem;scrollbar-width:thin;scrollbar-color:#1a3a5c transparent}.lightbox-info::-webkit-scrollbar{width:4px}.lightbox-info::-webkit-scrollbar-track{background:transparent}.lightbox-info::-webkit-scrollbar-thumb{background:#1a3a5c;border-radius:2px}.lightbox-species{display:flex;flex-direction:column;gap:.2rem}.lightbox-common-name{font-family:Playfair Display,serif;font-size:1.45rem;font-weight:700;color:var(--white);line-height:1.2;margin:0}.lightbox-scientific-name{font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:.92rem;color:#7de0e3;letter-spacing:.02em;line-height:1.3}.lightbox-meta{display:flex;flex-wrap:wrap;gap:.4rem}.lightbox-badge{font-size:.72rem;padding:.2rem .65rem;border-radius:999px;font-weight:500}.lightbox-badge--location{background:#0d737740;color:#7de0e3;border:1px solid rgba(13,115,119,.5)}.lightbox-badge--animal{background:#1a4a6e4d;color:#93c5e8;border:1px solid rgba(26,74,110,.6)}.lightbox-badge--clickable{cursor:pointer;font-family:inherit;transition:background .15s ease,color .15s ease,border-color .15s ease}.lightbox-badge--clickable:hover{background:#0d737773;color:#fff;border-color:var(--teal-light)}.lightbox-description{font-size:.85rem;line-height:1.6;color:var(--text-muted);margin:0}.lightbox-exif{display:flex;flex-direction:column;gap:.3rem;padding:.55rem .75rem;background:#050e1c8c;border:1px solid rgba(26,58,92,.6);border-radius:var(--radius-sm)}.lightbox-exif__gear{font-size:.72rem;color:var(--text-muted);line-height:1.4}.lightbox-exif__exposure{display:flex;flex-wrap:wrap;gap:.5rem}.lightbox-exif__exposure span{font-size:.75rem;font-family:SF Mono,Fira Code,Consolas,monospace;color:var(--teal-light);background:#0d73771f;border:1px solid rgba(13,115,119,.25);border-radius:4px;padding:.1rem .45rem;letter-spacing:.02em}.lightbox-share-row{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.lightbox-photo-id{font-size:.7rem;color:var(--text-muted);opacity:.4;font-family:monospace;letter-spacing:.03em}.lightbox-copy-link{font-size:.72rem;color:var(--text-muted);border:1px solid #1a3a5c;border-radius:999px;padding:.18rem .65rem;background:transparent;transition:all var(--transition);cursor:pointer;font-family:inherit}.lightbox-copy-link:hover{color:var(--teal-light);border-color:var(--teal);background:#0d73771a}.lightbox-hint{position:absolute;bottom:calc(100% - 280px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;padding:.3rem .9rem;border-radius:999px;background:#040a16bf;border:1px solid rgba(26,58,92,.55);font-size:.72rem;color:#c8dcf0b3;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;animation:hint-fade 2.8s ease forwards}.lightbox-hint--hidden{display:none}.lightbox-hint__sep{opacity:.4}@keyframes hint-fade{0%{opacity:0;transform:translate(-50%) translateY(4px)}15%{opacity:1;transform:translate(-50%) translateY(0)}70%{opacity:1}to{opacity:0}}.lightbox-btn{position:absolute;display:flex;align-items:center;justify-content:center;background:#0e2040cc;color:var(--text);border:1px solid #1a3a5c;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.4rem;line-height:1;transition:all var(--transition);z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox-btn:hover{background:var(--teal);border-color:var(--teal-light);color:var(--white)}.lightbox-btn--close{top:.75rem;right:.75rem}.lightbox-btn--expand{top:.75rem;right:3.75rem}.lightbox-btn--fullscreen{top:.75rem;right:6.75rem}.lightbox-btn--prev{top:50%;left:.75rem;transform:translateY(-50%)}.lightbox-btn--next{top:50%;right:.75rem;transform:translateY(-50%)}.lightbox-panel--expanded{max-width:100vw;max-height:100vh;height:100vh;border-radius:0;border-left:none;border-right:none;border-top:none}.lightbox-panel--expanded .lightbox-image-wrap{flex:1;min-height:0}.lightbox-panel--expanded .lightbox-image{max-height:100%;height:100%}.lightbox-panel--expanded .lightbox-info{max-height:28vh}:fullscreen .lightbox-backdrop,:-webkit-full-screen .lightbox-backdrop{padding:0}@media (max-width: 600px){.lightbox-image{max-height:42vh}.lightbox-info{max-height:48vh}.lightbox-common-name{font-size:1.15rem}.lightbox-scientific-name{font-size:.8rem}}.loc-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#040a16e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:loc-modal-fade .2s ease}@keyframes loc-modal-fade{0%{opacity:0}to{opacity:1}}.loc-modal{position:relative;display:grid;grid-template-rows:280px 1fr;max-width:700px;width:100%;max-height:90vh;background:var(--navy-mid);border:1px solid #1a3a5c;border-radius:var(--radius-lg);overflow:hidden;animation:loc-modal-up .25s ease}@keyframes loc-modal-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.loc-modal__map-wrap{position:relative;overflow:hidden}.loc-modal__map{width:100%;height:100%;border:none;display:block;filter:invert(.92) hue-rotate(180deg) saturate(.9) brightness(.95)}.loc-modal__map-fade{position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(0deg,var(--navy-mid) 0%,transparent 100%);pointer-events:none}.loc-modal__info{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem}.loc-modal__header{display:flex;flex-direction:column;gap:.2rem}.loc-modal__name{font-family:Playfair Display,Georgia,serif;font-size:1.6rem;font-weight:700;color:var(--white);line-height:1.1}.loc-modal__region{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--teal-light)}.loc-modal__notes{font-size:.84rem;line-height:1.65;color:var(--text-muted)}.loc-modal__section{display:flex;flex-direction:column;gap:.5rem}.loc-modal__section-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:var(--text-muted)}.loc-modal__tags{display:flex;flex-wrap:wrap;gap:.4rem}.loc-modal__tag{font-size:.75rem;padding:.2rem .65rem;border-radius:999px;background:#0d73772e;color:#7de0e3;border:1px solid rgba(13,115,119,.38);font-weight:500}.loc-modal__stats{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:.25rem;border-top:1px solid #1a3a5c}.loc-modal__stat{display:flex;align-items:center;gap:.6rem;flex:1;min-width:160px}.loc-modal__stat-icon{font-size:1.2rem;flex-shrink:0;opacity:.85}.loc-modal__stat>div{display:flex;flex-direction:column;gap:1px}.loc-modal__stat-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.loc-modal__stat-value{font-size:.82rem;color:var(--text);font-weight:500}.loc-modal__close{position:absolute;top:.75rem;right:.75rem;z-index:10;width:2.2rem;height:2.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;background:#0e2040d9;color:var(--text);border:1px solid #1a3a5c;transition:all var(--transition);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loc-modal__close:hover{background:var(--teal);border-color:var(--teal-light);color:var(--white)}@media (max-width: 600px){.loc-modal{grid-template-rows:220px 1fr;max-height:92vh}.loc-modal__name{font-size:1.25rem}.loc-modal__notes{font-size:.8rem}.loc-modal__info{padding:1rem 1.25rem 1.25rem}}.app{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;padding:2rem 1.5rem 4rem;max-width:1600px;margin:0 auto;width:100%}.app-main--landing{padding:0;max-width:100%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #122849;--navy-mid: #153161;--teal: #0d7377;--teal-light: #14a085;--ocean: #1a4a6e;--sand: #e8dcc8;--sand-muted: #c4b89a;--white: #ffffff;--text: #e2eaf4;--text-muted: #8aa4c2;--surface: #153161cc;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--transition: .2s ease}html{font-size:16px;scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;background:var(--navy);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}button{font-family:inherit;cursor:pointer;border:none;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--teal-light);outline-offset:3px}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 20% 10%,#0d4a6e22 0%,transparent 70%),radial-gradient(ellipse 60% 80% at 80% 90%,#0d737722 0%,transparent 70%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}
