.gp-page{max-width:1120px;margin:0 auto;padding:40px 24px 64px;color:#183b41;box-sizing:border-box}
.gp-page *{box-sizing:border-box}
.gp-header{max-width:820px;margin-bottom:30px}
.gp-eyebrow{margin:0 0 12px;color:#11715f;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.gp-page h1{margin:0 0 16px;color:#143b40;font-size:clamp(2.15rem,5vw,3.4rem);font-weight:700;letter-spacing:-.035em;line-height:1.12}
.gp-intro{margin:0;max-width:750px;color:#526b70;font-size:1.08rem;line-height:1.8}
.gp-year-filter{display:flex;gap:10px;flex-wrap:wrap;padding:0 0 26px;border-bottom:1px solid #dce8e5;margin-bottom:30px}
.gp-year-button,.gp-retry{border:1px solid #cbded8;border-radius:999px;min-height:44px;padding:10px 24px;background:#fff;color:#315a55;font:inherit;font-weight:650;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.gp-year-button:hover,.gp-retry:hover{background:#eaf6f0;border-color:#9cc9b8}
.gp-year-button[aria-pressed=true]{background:#126b58;color:#fff;border-color:#126b58}
.gp-page button:focus-visible,.gp-page a:focus-visible{outline:3px solid #d19438;outline-offset:4px}
.gp-album-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px}
.gp-album-year{margin:0 0 7px;color:#347f6b;font-size:.8rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.gp-page h2{margin:0 0 12px;color:#183b41;font-size:clamp(1.6rem,3.1vw,2rem);line-height:1.25;letter-spacing:-.025em;font-weight:650}
.gp-album-description{max-width:710px;margin:0;color:#5a7074;font-size:1rem;line-height:1.75}
.gp-source-link{color:#126b58;font-size:.88rem;line-height:1.6;font-weight:650;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.gp-album-heading>.gp-source-link{flex:0 0 170px;max-width:100%;padding-bottom:3px}
.gp-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:start}
.gp-card{margin:0;min-width:0;overflow:hidden;background:#fff;border:1px solid #dbe8e2;border-radius:16px;box-shadow:0 6px 24px #173e3121}
.gp-image-button{position:relative;display:block;width:100%;padding:0;border:0;border-radius:15px 15px 0 0;background:#eaf2ee;color:inherit;cursor:zoom-in;overflow:hidden;line-height:0}
.gp-image-button img{display:block;width:100%;height:auto;max-width:100%;transition:filter .2s ease}
.gp-image-button:hover img{filter:brightness(.96)}
.gp-enlarge{position:absolute;right:12px;bottom:12px;padding:8px 12px;border-radius:999px;color:#fff;background:#143d34e8;font-size:.72rem;font-weight:650;line-height:1.3;box-shadow:0 1px 5px #0002}
.gp-card-caption{padding:20px 23px 23px}
.gp-meta{margin:0 0 9px;color:#617871;font-size:.78rem;font-weight:550;line-height:1.6}
.gp-page h3{margin:0 0 8px;color:#1d4843;font-size:1.18rem;font-weight:650;letter-spacing:-.02em;line-height:1.35}
.gp-caption-text{margin:0;color:#62736e;font-size:.92rem;line-height:1.75}
.gp-status,.gp-error{padding:25px;border:1px solid #dbe8e2;border-radius:12px;background:#f4f9f6;color:#365e55;line-height:1.7}
.gp-error p{margin:0 0 15px}
.gp-dialog{width:min(1120px,calc(100vw - 40px));max-width:calc(100vw - 40px);max-height:calc(100dvh - 40px);padding:0;border:1px solid #dbe8e2;border-radius:16px;color:#183b41;background:#fff;box-shadow:0 20px 90px #0006;overflow:auto}
.gp-dialog::backdrop{background:#08271fd9;backdrop-filter:blur(3px)}
.gp-dialog-inner{padding:22px}
.gp-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:17px}
.gp-dialog-toolbar h2{margin:0;font-size:1.2rem;line-height:1.4}
.gp-close{flex:0 0 auto;min-height:44px;padding:9px 15px;border:1px solid #bfd5cb;border-radius:9px;background:#eef6f1;color:#275f50;font:inherit;font-weight:650;cursor:pointer}
.gp-dialog-figure{margin:0}
.gp-dialog-figure>img{display:block;width:100%;height:auto;max-height:70dvh;object-fit:contain;border-radius:8px;background:#f3f5f2}
.gp-dialog-figure figcaption{padding-top:16px;max-width:900px;font-size:.95rem;line-height:1.65}
.gp-dialog-figure figcaption>p:not(.gp-meta){margin:0 0 12px}
.gp-dialog-figure .gp-source-link{display:inline-block}
@media(max-width:760px){.gp-page{padding:28px 18px 44px}.gp-header{margin-bottom:24px}.gp-intro{font-size:1rem;line-height:1.75}.gp-album-heading{display:block}.gp-album-heading>.gp-source-link{display:inline-block;margin-top:12px}.gp-photo-grid{gap:20px}.gp-card-caption{padding:17px}.gp-page h3{font-size:1.08rem}.gp-meta{font-size:.75rem}}
@media(max-width:560px){.gp-page{padding:22px 12px 38px}.gp-photo-grid{grid-template-columns:minmax(0,1fr)}.gp-year-filter{margin-bottom:23px;padding-bottom:20px;gap:8px}.gp-year-button{padding:9px 22px}.gp-card-caption{padding:19px 20px 22px}.gp-dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.gp-dialog-inner{padding:14px}.gp-dialog-toolbar{gap:10px}.gp-dialog-toolbar h2{font-size:1.05rem}.gp-close{padding:8px 11px}}
@media(prefers-reduced-motion:reduce){.gp-image-button img,.gp-year-button,.gp-retry{transition:none}}
