body.page-gallery .gallery-hero{background:#e7ebe7}
body.page-gallery .gallery-hero h1{font-size:clamp(4.4rem,8.5vw,9rem)}
body.page-gallery .gallery-hero .page-hero-bottom{justify-content:flex-end}
.gallery-forest-entry{position:relative;isolation:isolate;min-height:250px;overflow:hidden;display:flex;align-items:end;justify-content:space-between;gap:2rem;padding:3.2rem 6vw 2.8rem;background:#13251e;color:#f3efdf}
.gallery-forest-entry:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#0d1b18f2 0%,#10221cc7 48%,#10241b65 100%),url('/assets/forest/composites/summer-forest.webp') 70% 41%/cover no-repeat;filter:saturate(.77)}
.gallery-forest-entry:after{content:"";position:absolute;inset:0;z-index:-1;background:url('/assets/forest/ink-branches.svg') 96% 58%/min(48vw,640px) auto no-repeat;opacity:.22;pointer-events:none}
.gallery-forest-entry div{position:relative;max-width:800px}
.gallery-forest-entry div>span{display:block;margin-bottom:1.1rem;font-size:.64rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#c3cbb1}
.gallery-forest-entry h2{margin:0;font:normal clamp(3.7rem,6.5vw,7rem)/.93 var(--serif);letter-spacing:-.045em}
.gallery-forest-entry h2 em{color:#c9bf98}
.gallery-forest-entry>a{display:inline-flex;align-items:center;justify-content:space-between;gap:2.5rem;flex:0 0 auto;min-width:220px;padding:.95rem 1.15rem;border:1px solid #ebe7d5a8;color:#f4efdd;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:background .25s,color .25s,transform .25s}
.gallery-forest-entry>a:hover{background:#eee8d4;color:#14231d;transform:translateY(-3px)}
.gallery-forest-entry>a:focus-visible{outline:2px solid #f8efcf;outline-offset:4px}
.gallery-forest-entry>a span{font-size:1.2rem;font-weight:400;line-height:1}
.gallery-season-nav{position:sticky;top:0;z-index:9;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 6vw;background:#f7f3e9f2;backdrop-filter:blur(12px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gallery-season-nav a{position:relative;display:flex;gap:.7rem;align-items:center;min-height:62px;padding:.8rem 1rem;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.gallery-season-nav a span{font-size:.59rem;color:var(--sea)}
.gallery-season-nav a:after{content:"";position:absolute;left:1rem;right:1rem;bottom:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.gallery-season-nav a:hover,.gallery-season-nav a[aria-current="location"]{color:var(--ink)}
.gallery-season-nav a[aria-current="location"]:after{transform:scaleX(1)}
.gallery-season-nav a:focus-visible,.gallery-controls button:focus-visible,.gallery-thumb:focus-visible,.gallery-stage:focus-visible,.gallery-dialog button:focus-visible{outline:2px solid var(--sea);outline-offset:4px}
body.page-gallery .gallery-room{padding:clamp(3.5rem,6vw,7rem) 6vw 5rem;min-height:780px;scroll-margin-top:62px}
.gallery-room-summer{background:#eee4d2;color:#3b352d;--gallery-grade:contrast(1.065) saturate(1.105) brightness(1.015)}
.gallery-room-autumn{background:#e7e7dd;color:#333b32;--gallery-grade:contrast(1.055) saturate(1.13) brightness(1.01)}
.gallery-room-winter{background:#dbe4e6;color:#243b42;--gallery-grade:contrast(1.065) saturate(1.065) brightness(1.02)}
.gallery-room-spring{background:#ebeee5;color:#37423a;--gallery-grade:contrast(1.055) saturate(1.13) brightness(1.015)}
.gallery-room img{filter:var(--gallery-grade)}
.gallery-dialog[data-season="summer"]{--gallery-grade:contrast(1.065) saturate(1.105) brightness(1.015)}
.gallery-dialog[data-season="autumn"]{--gallery-grade:contrast(1.055) saturate(1.13) brightness(1.01)}
.gallery-dialog[data-season="winter"]{--gallery-grade:contrast(1.065) saturate(1.065) brightness(1.02)}
.gallery-dialog[data-season="spring"]{--gallery-grade:contrast(1.055) saturate(1.13) brightness(1.015)}
.gallery-room-layout{display:grid;grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);gap:4vw;align-items:start;max-width:1700px;margin:auto}
.gallery-room-side{position:sticky;top:110px;display:flex;flex-direction:column;align-items:flex-start;min-height:clamp(280px,calc(100dvh - 270px),390px)}
.gallery-room-index{font-size:.65rem;letter-spacing:.2em;font-weight:600}
.gallery-room-side h2{font-size:clamp(4rem,7vw,8rem);margin:1.2rem 0 2.5rem}
.gallery-controls{display:flex;align-items:center;gap:1.2rem;margin-top:auto}
.gallery-controls button{width:46px;height:46px;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:1.5rem;line-height:1;transition:background .25s,color .25s}
.gallery-controls button:hover{background:currentColor;color:#fff}
.gallery-count{min-width:5rem;text-align:center;font-size:.68rem;font-weight:600;letter-spacing:.14em;white-space:nowrap}
.gallery-room-art{min-width:0}
.gallery-stage{display:block;width:100%;height:clamp(280px,calc(100dvh - 270px),700px);padding:0;border:0;background:#ffffff52;cursor:zoom-in;overflow:hidden;touch-action:pan-y}
.gallery-stage img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;transition:opacity .24s ease}
.gallery-stage:hover img{opacity:.94}
.gallery-stage.is-changing img{opacity:.4}
.gallery-thumbs{display:flex;gap:.6rem;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;padding:1rem 0 .75rem}
.gallery-thumb{flex:0 0 clamp(88px,9vw,128px);height:92px;padding:4px;border:2px solid transparent;background:#ffffffa8;opacity:.82;cursor:pointer;scroll-snap-align:start;transition:opacity .2s,border-color .2s}
.gallery-thumb:hover,.gallery-thumb[aria-pressed="true"]{opacity:1}
.gallery-thumb[aria-pressed="true"]{border-color:currentColor}
.gallery-thumb img{width:100%;height:100%;display:block;object-fit:contain}
.gallery-return{padding:4rem 6vw 6rem;background:var(--paper);text-align:center}
.gallery-dialog{position:fixed;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:0;background:#18282b;color:#f7f3e9;box-shadow:none}
.gallery-dialog[open]{display:flex;align-items:center;justify-content:center}
.gallery-dialog::backdrop{background:#18282bf2}
.gallery-dialog>img{display:block;max-width:calc(100vw - 150px);max-height:calc(100dvh - 55px);width:auto;height:auto;object-fit:contain;filter:var(--gallery-grade);margin:auto}
.gallery-dialog p{display:none}
.gallery-dialog .dialog-close{position:fixed;right:1.4rem;top:1rem;z-index:2;width:44px;height:44px;border:1px solid #ffffff77;border-radius:50%;background:#18282b;color:#fff;cursor:pointer;font:normal 1.8rem var(--sans)}
.gallery-dialog-controls{position:fixed;inset:50% 1.5rem auto;transform:translateY(-50%);display:flex;justify-content:space-between;pointer-events:none}
.gallery-dialog-controls button{width:48px;height:48px;border:1px solid #ffffff77;border-radius:50%;background:#18282b99;color:#fff;cursor:pointer;font-size:1.5rem;pointer-events:auto}
.gallery-dialog-controls button:hover,.gallery-dialog .dialog-close:hover{background:#35565b}
@media(max-width:900px){.gallery-room-layout{grid-template-columns:1fr;gap:1.4rem}.gallery-room-side{position:static;min-height:0;display:grid;grid-template-columns:1fr auto;align-items:end}.gallery-room-index{grid-column:1/-1}.gallery-room-side h2{margin:.4rem 0 0}.gallery-controls{margin:0}.gallery-stage{height:clamp(280px,calc(100dvh - 285px),660px)}}
@media(max-width:600px){body.page-gallery .gallery-hero h1{font-size:clamp(3.8rem,13vw,5.7rem)}.gallery-season-nav{padding:0 3vw}.gallery-season-nav a{min-height:50px;padding:.7rem .35rem;justify-content:center;font-size:.58rem;letter-spacing:.07em}.gallery-season-nav a span{display:none}.gallery-season-nav a:after{left:.35rem;right:.35rem}body.page-gallery .gallery-room{padding:3.6rem 6vw 3rem;min-height:0;scroll-margin-top:50px}.gallery-room-side h2{font-size:clamp(3.8rem,13vw,5rem)}.gallery-controls{gap:.35rem}.gallery-controls button{width:36px;height:36px;font-size:1.2rem}.gallery-count{min-width:3.9rem;font-size:.58rem}.gallery-stage{height:clamp(240px,calc(100dvh - 300px),540px)}.gallery-thumb{flex-basis:84px;height:76px}.gallery-dialog>img{max-width:calc(100vw - 12px);max-height:calc(100dvh - 120px)}.gallery-dialog-controls{inset:auto 1rem 1.2rem;transform:none}.gallery-dialog-controls button{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.gallery-season-nav a:after,.gallery-stage img,.gallery-thumb,.gallery-controls button{transition:none}.gallery-thumbs{scroll-behavior:auto}}
@media(max-width:700px){.gallery-forest-entry{min-height:310px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:1.7rem;padding:2.8rem 6vw}.gallery-forest-entry:before{background-position:66% 50%}.gallery-forest-entry:after{background-position:105% 50%;background-size:85vw auto}.gallery-forest-entry h2{font-size:clamp(3.4rem,13vw,5.8rem)}.gallery-forest-entry>a{min-width:0;width:auto;gap:3.5rem}}
@media(prefers-reduced-motion:reduce){.gallery-forest-entry>a{transition:none}}
