:root{--paper:#f6f6ef;--ink:#273329;--muted:#747c6e;--green:#526c49;--line:#d8ddcf;--serif:Georgia,'Times New Roman',serif;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:14px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:4px}[hidden]{display:none!important}.wrap{width:calc(100% - 96px);max-width:1180px;margin-inline:auto}
.header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.header p{margin:0;font-size:12px;color:var(--muted)}.languages{display:flex;align-items:center;gap:7px;font-size:11px}.languages button{padding:8px 0;color:var(--muted)}.languages button[aria-pressed=true]{color:var(--ink);font-weight:700}.languages span{color:#aaa}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:42px 0 30px}h1{font:46px/1.1 var(--serif);font-weight:400;letter-spacing:-1.5px;margin:0}.text-link{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid #989e8f;padding-bottom:5px;font-size:12px}.text-link:hover{color:var(--green)}
.toolbar{display:flex;gap:24px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filters button{font-size:12px;padding:7px 14px;border-radius:2px;color:var(--muted)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.filters button:hover:not([aria-pressed=true]){background:#eceee6}.search{display:flex;align-items:center;gap:10px;width:230px;flex-shrink:0}.search svg{width:17px;height:17px;fill:none;stroke:var(--muted);stroke-width:1.2;flex-shrink:0}.search input{background:transparent;border:0;padding:8px 0;font-size:12px;width:100%;min-width:0}.search input::placeholder{color:var(--muted)}.results-meta{font-size:11px;color:var(--muted);margin:16px 0 24px}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 25px}.observation-card{display:block;text-align:left;padding:0;width:100%;min-width:0}.card-photo{aspect-ratio:1.23;overflow:hidden;background:#e8eae2;position:relative}.card-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.observation-card:hover img{transform:scale(1.025)}.card-arrow{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--paper);opacity:0;transition:opacity .2s}.observation-card:hover .card-arrow,.observation-card:focus-visible .card-arrow{opacity:1}.card-title{font-size:14px;line-height:1.4;margin:13px 0 3px;display:block}.card-meta{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}.card-meta em{font-style:italic}.media-badge{position:absolute;left:10px;bottom:10px;background:rgba(22,32,24,.78);color:#fff;border-radius:3px;padding:4px 7px;font-size:10px}
.load-more{display:flex;flex-direction:column;align-items:center;gap:12px;margin:45px 0 60px}.outline-button{border:1px solid #bac0b0;font-size:12px;padding:12px 25px;border-radius:2px}.outline-button:hover{background:#eceee6}.load-more span{font-size:11px;color:var(--muted)}.empty{padding:60px 0;text-align:center}.empty h2{font:28px var(--serif)}.empty p{color:var(--muted)}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;padding-block:24px 32px;font-size:11px;color:var(--muted)}.skip{position:absolute;top:-80px;left:15px;z-index:10;padding:12px;background:var(--paper)}.skip:focus{top:10px}
dialog{padding:0;border:0;background:var(--paper);color:var(--ink);width:min(1100px,calc(100% - 48px));max-height:90vh;overflow:auto}dialog::backdrop{background:rgba(18,26,20,.7);backdrop-filter:blur(4px)}.detail-layout{display:grid;grid-template-columns:1.25fr 1fr;min-height:530px}.detail-layout>*{min-width:0}.detail-media{background:#e9ebe4;display:flex;flex-direction:column;justify-content:center;min-width:0}.detail-photo{height:480px;min-height:0;display:flex;align-items:center;justify-content:center}.detail-photo img,.detail-photo video{width:100%;height:100%;max-height:100%;object-fit:contain}.detail-copy{padding:65px 38px 28px;display:flex;flex-direction:column}.detail-copy h2{font:34px/1.15 var(--serif);font-weight:400;letter-spacing:-.7px;margin:0 0 14px;overflow-wrap:anywhere}.detail-taxon{font:italic 21px var(--serif);color:var(--green);margin:0 0 12px}.status-label{font-size:11px;color:var(--muted);margin:0 0 28px}.detail-copy dl{font-size:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:16px;margin:0 0 20px}.detail-copy dl>div{display:flex;justify-content:space-between;gap:16px;margin-block:4px}.detail-copy dt{color:var(--muted)}.detail-copy dd{margin:0;text-align:right}.detail-copy .text-link{align-self:start;margin:8px 0 35px}.close-dialog{position:absolute;right:14px;top:9px;z-index:2;font-size:29px;width:37px;height:37px;border-radius:50%;background:var(--paper);line-height:1}.detail-nav{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px;margin-top:auto;font-size:11px;color:var(--muted)}.detail-nav button{font-size:22px;padding:0 10px}.detail-nav button:disabled,.media-controls button:disabled{opacity:.25;cursor:default}body.modal-open{overflow:hidden}
.media-controls{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;font-size:10px;color:var(--muted);gap:12px}.media-controls button{font-size:22px;min-width:40px;min-height:40px}.media-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 16px;max-width:100%}.media-thumbnails button{flex:0 0 60px;height:60px;padding:3px;border:1px solid transparent;position:relative}.media-thumbnails button[aria-pressed=true]{border-color:var(--green)}.media-thumbnails img{width:100%;height:100%;object-fit:cover;display:block}.media-thumbnails span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-shadow:0 1px 4px #000;font-size:18px}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.toolbar{align-items:start;flex-direction:column;gap:12px}.search{width:100%}.gallery{gap:30px 20px}.detail-copy{padding:55px 27px 25px}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.header{height:72px;gap:16px}.header p{font-size:11px}.section-heading{padding:32px 0 25px}h1{font-size:36px}.section-heading .text-link{font-size:11px}.filters{gap:3px}.filters button{padding:7px 9px;font-size:11px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.card-photo{aspect-ratio:.91}.card-title{font-size:12px;margin-top:10px}.card-meta{font-size:10px;display:block}.card-meta em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta time{display:none}.footer{font-size:10px;gap:14px}dialog{width:calc(100% - 24px);max-height:94vh}.detail-layout{display:block;min-height:0}.detail-photo{height:320px}.detail-copy{padding:27px 23px 20px}.detail-copy h2{font-size:29px}.media-thumbnails button{flex-basis:52px;height:52px}.media-controls{padding-block:4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.original-caption{margin:0 0 20px}.original-caption h3{font-size:11px;font-weight:400;color:var(--muted);margin:0 0 10px}.original-caption p{font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.detail-media{align-self:start}.card-title{overflow-wrap:anywhere}
.site-nav{display:flex;gap:26px;font-size:12px;margin-left:auto}.site-nav a{color:var(--muted);padding:6px 0;border-bottom:1px solid transparent}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.header .languages{margin-left:34px}
@media(max-width:640px){.site-nav{gap:16px;font-size:11px}.header .languages{margin-left:16px}.header p{display:none}}
/* Context posts are preserved separately from organism observations. */
.project-context{margin-top:28px;border-top:1px solid var(--line);color:var(--muted)}
.project-context summary{padding:18px 0;font-size:11px;cursor:pointer}
.context-card{display:flex;align-items:center;gap:12px;width:100%;padding:10px 0;text-align:left}
.context-card img{width:48px;height:48px;object-fit:cover}.context-card>span{font:14px/1.4 var(--serif);flex:1;min-width:0}.context-card time{font-size:9px;white-space:nowrap}

/* Observation spread — photograph, dateline, caption; no card framing. */
#observation-dialog{width:min(1040px,calc(60dvh * var(--media-ratio,1.5) + 48px),calc(100% - 48px));min-width:min(520px,calc(100% - 48px));max-height:calc(100dvh - 32px);border:0;box-shadow:none;padding:0 24px 18px;scrollbar-width:thin;position:fixed;inset:76px 0 auto;margin:0 auto;max-height:calc(100dvh - 96px)}
#observation-dialog::backdrop{background:#f6f6efe8;backdrop-filter:none}
#observation-dialog .observation-bar{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:min(1040px,calc(100% - 48px));height:44px;background:var(--paper);gap:16px}
#observation-dialog .close-dialog{position:absolute;right:0;top:2px;margin:0;width:40px;height:40px;padding:0;font:28px/1 Arial,sans-serif;font-weight:300;border:0;border-radius:0;background:none}
#observation-dialog .detail-nav{display:flex;justify-content:center;gap:14px;margin:0;padding:0;border:0;font-size:10px}
#observation-dialog #detail-position{width:7ch;text-align:center;font-variant-numeric:tabular-nums}
#observation-dialog .detail-nav>span:first-child{margin-right:6px;letter-spacing:.06em}
#observation-dialog .detail-nav button{font-size:18px;min-width:36px;min-height:40px;padding:0}
#observation-dialog .detail-layout{display:block;min-height:0}
#observation-dialog .observation-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:8px 0 16px;border-top:1px solid var(--line)}
#observation-dialog .observation-heading>div{min-width:0}
#observation-dialog button:focus-visible{outline:1px solid var(--green);outline-offset:-2px}
#observation-dialog .detail-media{background:none;min-width:0;align-self:start}
#observation-dialog .detail-photo{height:auto;min-height:0;max-height:none;display:flex;align-items:flex-start}
#observation-dialog .detail-photo img,#observation-dialog .detail-photo video{display:block;width:100%;height:auto;max-height:60dvh;object-fit:contain;object-position:center}
#observation-dialog .detail-copy{display:block;padding:12px 0 0;border-top:1px solid var(--line)}
#observation-dialog .observation-heading h2{font:400 27px/1.15 var(--serif);letter-spacing:-.5px;margin:0;overflow-wrap:anywhere}
#observation-dialog .detail-taxon{font:italic 16px/1.5 var(--serif);color:var(--muted);margin:5px 0 0}
#observation-dialog .observation-dateline{display:flex;flex-direction:column;gap:3px;font:10px/1.5 Arial,sans-serif;color:var(--muted);margin:0;padding:0;border:0;flex-shrink:0;text-align:right}
#observation-dialog .observation-dateline>div{display:block;margin:0}
#observation-dialog .observation-dateline dt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#observation-dialog .observation-dateline dd{margin:0;text-align:right}
#observation-dialog .original-caption{margin:0;min-width:0;max-width:none}
#observation-dialog .original-caption h3{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#observation-dialog .original-caption p{font:15px/1.5 var(--serif)}
#observation-dialog .media-footer{display:flex;align-items:center;justify-content:center;gap:12px;padding:0;min-width:0;font:9px/1.5 Arial,sans-serif;color:var(--muted)}
#observation-dialog #media-position{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#observation-dialog .media-controls{display:flex;gap:4px;padding:0;min-width:0}
#observation-dialog .media-controls>button{font-size:18px;min-width:32px;min-height:40px;padding:0}
#observation-dialog .media-thumbnails{display:flex;gap:2px;overflow-x:auto;padding:0;scrollbar-width:thin}
#observation-dialog .media-thumbnails button{position:static;flex:0 0 32px;height:40px;min-width:32px;padding:0;border:0;border-radius:0;font:10px/1 Arial,sans-serif;color:var(--muted)}
#observation-dialog .media-thumbnails button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
#observation-dialog .media-thumbnails span{position:static;display:inline;color:inherit;text-shadow:none;font:inherit}
@media(max-width:700px){
 #observation-dialog{width:calc(100% - 24px);min-width:0;max-height:calc(100dvh - 88px);padding:0 12px 16px}
 #observation-dialog .observation-bar{width:calc(100% - 24px)}
 #observation-dialog .detail-layout{display:block}
 #observation-dialog .observation-heading{display:block;padding:10px 0 12px}
 #observation-dialog .detail-media,#observation-dialog .detail-copy{width:100%}
 #observation-dialog .detail-photo img,#observation-dialog .detail-photo video{max-height:56dvh;object-position:center}
 #observation-dialog .detail-copy{display:block;padding-top:10px}
 #observation-dialog .observation-heading h2{font-size:24px}
 #observation-dialog .observation-dateline{flex-direction:row;flex-wrap:wrap;gap:2px 12px;margin-top:10px;font-size:9px}
 #observation-dialog .observation-dateline dd{text-align:left}
 #observation-dialog .media-footer{gap:8px}
 #observation-dialog .media-footer>span{flex-shrink:0;font-size:8px}
}

#observation-dialog #detail-inat:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#observation-dialog .related-inat{font:10px/1 Arial,sans-serif;vertical-align:super;margin-left:6px;color:var(--muted)}
#observation-dialog #detail-title>.index-tentative{vertical-align:super;margin-left:4px}
