:root{--bg:#0a0a0a;--surface:#111;--surface2:#1a1a1a;--border:#2a2a2a;--text:#e8e4dd;--text-muted:#a7a39a;--accent:#72c7be;--accent-dim:#72c7be26;--radius:4px;--transition:.25s cubic-bezier(.4,0,.2,1);--font-serif:"Cormorant Garamond", Georgia, serif;--font-mono:"DM Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}.skip-link{z-index:2000;border:2px solid var(--accent);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:13px}.container{max-width:1400px;margin:0 auto;padding:0 24px}.gallery-section{padding:40px 0 80px}.page-tagline{color:var(--text-muted);margin:-8px 0 20px;font-size:1.05rem}.page-title{color:var(--accent);font-family:var(--font-serif);margin-bottom:20px;font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.1}.sky-nearby{width:10rem;min-width:0;color:inherit;text-decoration:none}.sky-nearby:hover{border-color:var(--accent,#72c7be)}.sky-nearby-data{min-width:0}.sky-nearby-name{min-width:0;color:var(--accent,#72c7be);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:1rem;line-height:1.2;overflow:hidden}.sky-nearby-detail{text-overflow:ellipsis;overflow:hidden}.year-pill{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.08em;cursor:pointer;transition:all var(--transition);white-space:nowrap;background:0 0;border-radius:99px;flex-shrink:0;align-items:center;gap:6px;padding:5px 13px;font-size:11px;text-decoration:none;display:inline-flex}.year-pill:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.year-pill.active{background:var(--accent);border-color:var(--accent);color:#0a0a0a;font-weight:500}.year-pill .count{opacity:.6;font-size:10px}.year-pill.active .count{opacity:.7}.year-block{scroll-margin-top:calc(var(--header-h,120px) + 16px)}.year-section-title{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--accent);align-items:baseline;gap:16px;margin:60px 0 28px;padding-top:20px;font-size:clamp(2.5rem,6vw,5rem);font-weight:300;line-height:1;display:flex}footer{border-top:1px solid var(--border);color:var(--text-muted);padding:18px 0}.footer-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;font-size:11px;display:flex}.footer-release{flex-wrap:wrap;gap:4px 10px;display:flex}.footer-release strong{color:var(--accent);font-weight:400}.footer-links{flex-wrap:wrap;gap:4px 16px;display:flex}.footer-links a{color:var(--accent);text-decoration:none}.footer-links a:hover,.footer-links a:focus-visible{text-decoration:underline}@media (width<=600px){.footer-content{flex-direction:column;align-items:flex-start}}.year-section-title:after{content:"";background:var(--border);flex:1;height:1px;margin-bottom:6px}.year-section-title .photo-count{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.1em;font-size:12px;font-weight:300}.media-filters{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.media-filter{border:1px solid var(--border);color:var(--text-muted);font:inherit;cursor:pointer;transition:all var(--transition);background:0 0;border-radius:99px;padding:7px 15px}.media-filter:hover,.media-filter[aria-pressed=true]{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.gallery-grid{columns:4 220px;column-gap:10px;margin-bottom:12px}.gallery-item{break-inside:avoid;border-radius:var(--radius);width:100%;color:inherit;font:inherit;cursor:zoom-in;background:var(--surface2);border:0;margin-bottom:10px;padding:0;display:block;position:relative;overflow:hidden}.gallery-item[hidden]{display:none}.gallery-item:focus-visible{outline-offset:-3px}.gallery-item img{opacity:0;width:100%;height:auto;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .3s;display:block}.gallery-item img.loaded{opacity:1}.gallery-item .video-thumbnail{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}.media-play-icon{z-index:1;color:#fff;pointer-events:none;background:#0000008c;border:1px solid #ffffffa6;border-radius:50%;place-items:center;width:48px;height:48px;padding-left:3px;font-size:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-item:after{content:"";transition:background var(--transition);pointer-events:none;background:0 0;position:absolute;inset:0}.gallery-item:hover img{transform:scale(1.04)}.gallery-item:hover:after{background:#00000026}.gallery-item:not(:has(img.loaded)):not(.thumbnail-failed):before{content:"";background:linear-gradient(90deg, var(--surface2) 25%, var(--surface) 50%, var(--surface2) 75%);border-radius:var(--radius);background-size:200% 100%;padding-top:66%;animation:1.5s infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;padding:120px 24px}.empty-state h3{font-family:var(--font-serif);color:var(--text-muted);margin-bottom:12px;font-size:2rem;font-weight:300}.empty-state p{color:var(--text-muted)}#lightbox{z-index:1000;opacity:0;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#000000f7;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}#lightbox[hidden]{display:none}#lightbox.open{opacity:1;pointer-events:all}body.modal-open{overflow:hidden}.lb-img-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}#lb-img{object-fit:contain;border-radius:2px;max-width:92vw;max-height:88vh;transition:opacity .2s,transform .3s cubic-bezier(.4,0,.2,1);display:block}#lb-video{background:#000;max-width:92vw;max-height:88vh;display:block}#lb-img[hidden],#lb-video[hidden]{display:none}#lb-img.transitioning{opacity:0;transform:scale(.97)}.lb-btn{color:var(--text);cursor:pointer;transition:all var(--transition);-webkit-backdrop-filter:blur(6px);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.lb-btn:hover{background:#ffffff24;border-color:#ffffff40}#lb-close{z-index:10;width:44px;height:44px;font-size:20px;line-height:1;top:20px;right:20px}#lb-prev,#lb-next{width:50px;height:50px;font-size:22px;top:50%;transform:translateY(-50%)}#lb-prev{left:20px}#lb-next{right:20px}#lb-prev.is-disabled,#lb-next.is-disabled{opacity:.2}#lb-caption{pointer-events:none;background:linear-gradient(#0000,#000c);justify-content:space-between;align-items:flex-end;padding:20px 24px;display:flex;position:fixed;bottom:0;left:0;right:0}#lb-title{display:none}#lb-counter{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.1em;font-size:11px}#lb-swipe-hint{font-family:var(--font-mono);color:#ffffff40;letter-spacing:.15em;text-transform:uppercase;pointer-events:none;font-size:10px;animation:3s forwards fadeHint;position:fixed;bottom:70px;left:50%;transform:translate(-50%)}@keyframes fadeHint{0%{opacity:1}60%{opacity:1}to{opacity:0}}#scroll-top{z-index:50;background:var(--surface2);border:1px solid var(--border);cursor:pointer;opacity:0;width:42px;height:42px;transition:all var(--transition);color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;bottom:28px;right:28px;transform:translateY(12px)}#scroll-top.visible{opacity:1;transform:translateY(0)}#scroll-top:hover{border-color:var(--accent);color:var(--accent)}@media (width<=900px){.gallery-grid{columns:3 160px}}@media (width<=600px){.gallery-grid{columns:2 130px;column-gap:6px}.gallery-item{margin-bottom:6px}.year-section-title{font-size:2.2rem}#lb-prev{width:40px;height:40px;font-size:18px;left:10px}#lb-next{width:40px;height:40px;font-size:18px;right:10px}#lb-img{max-width:98vw;max-height:82vh}.sky-nearby{min-width:0}}@media (width<=480px){.sky-nearby{width:8.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
