/* Four small real-photo windows, scoped to leave the approved journey intact. */
.season-reel { --reel-wood:#243c29; --reel-edge:#bd9e57; width:min(1280px,calc(100% - 96px)); margin:35px auto 12px; position:relative; scroll-margin-top:170px; }
.season-reel[data-reel-season="summer"] { --reel-wood:#45472a; --reel-edge:#d7b15c; }
.season-reel[data-reel-season="autumn"] { --reel-wood:#422e22; --reel-edge:#c59851; }
.season-reel[data-reel-season="winter"] { --reel-wood:#26373b; --reel-edge:#bca878; margin-bottom:70px; }
.season-reel-heading { display:flex; justify-content:space-between; align-items:end; gap:28px; margin:0 7px 22px; }
.season-reel .season-reel-kicker { margin:0 0 8px; color:#edcf8d; font-size:.72rem; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; font-weight:700; }
.season-reel h2 { color:#f9eed0; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(1.9rem,3.2vw,2.6rem); line-height:1.05; font-weight:500; margin:0; }
.season-reel .season-reel-note { margin:0 0 3px; color:#ebdfc1; font-size:.8rem; line-height:1.65; text-align:right; }
.season-reel-note span { color:#d9cda9; }
.season-reel-frame { position:relative; isolation:isolate; background:repeating-linear-gradient(4deg,transparent 0 6px,#e1c47806 7px 8px),linear-gradient(110deg,#1e2619a6,transparent 60%),var(--reel-wood); border:1px solid var(--reel-edge); border-radius:36px 9px 34px 9px; padding:15px 8px 7px; box-shadow:inset 0 0 0 4px #d5b77922,inset 0 0 0 7px #151d1566,0 10px 25px #0a180e30; }
.season-reel-frame::after { content:''; position:absolute; inset:8px; border:1px solid #c9b27645; border-radius:27px 5px 26px 5px; pointer-events:none; z-index:-1; }
.season-reel-ornament { position:absolute; width:84px; height:84px; color:#d6b56c; pointer-events:none; z-index:2; filter:drop-shadow(0 1px 2px #172014); }
.season-reel-ornament-left { top:-13px; left:-13px; }
.season-reel-ornament-right { bottom:-10px; right:-10px; transform:rotate(180deg); }
.season-reel-track { display:flex; gap:18px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding:20px; padding:14px 20px 15px; scrollbar-width:thin; scrollbar-color:#cdb36d #17231866; border-radius:25px 5px; }
.season-reel-photo { flex:0 0 282px; min-width:0; display:flex; flex-direction:column; padding:7px 7px 0; color:#f0e0b4; background:linear-gradient(135deg,#e1c988,#a1854f); border:1px solid #ebd899; border-radius:11px 3px 11px 3px; box-shadow:0 4px 9px #080e0b55; text-decoration:none; scroll-snap-align:start; transition:transform .2s ease,box-shadow .2s ease; }
.season-reel-photo:nth-child(3n+2) { border-radius:3px 11px 3px 11px; }
.season-reel-image { display:block; position:relative; overflow:hidden; width:100%; aspect-ratio:1.48; border:1px solid #554628; box-shadow:0 0 0 1px #faf0c86b; background:#18251b; border-radius:5px 1px; }
.season-reel-image img { display:block; width:100%; height:100%; object-fit:cover; }
.season-reel-zoom { position:absolute; bottom:8px; right:8px; width:30px; height:30px; display:grid; place-items:center; background:#17251edb; color:#ffe9ad; border:1px solid #eedda291; border-radius:50%; font-size:1.25rem; line-height:1; }
.season-reel .season-reel-caption { display:flex; align-items:center; justify-content:center; min-height:48px; padding:8px 4px; color:#302a1b; font-family:'Nunito Sans',sans-serif; font-size:.82rem; font-weight:700; line-height:1.3; text-align:center; }
.season-reel-footer { display:flex; align-items:center; justify-content:space-between; min-height:55px; padding:3px 23px 1px; gap:12px; }
.season-reel-count { color:#ebdab4; font-size:.77rem; letter-spacing:.025em; }
.season-reel-count span { padding:0 9px; color:#e4c478; }
.season-reel-controls { display:flex; gap:8px; padding-right:13px; }
.season-reel-controls button,.season-photo-dialog button { display:inline-grid; place-items:center; min-width:44px; min-height:44px; border:1px solid #e4c67f; border-radius:50%; background:#e7c677; color:#273021; font:700 1.2rem 'Nunito Sans',sans-serif; padding:5px; cursor:pointer; }
.season-reel-controls button[hidden] { display:none; }
.season-reel-controls button:disabled { cursor:default; opacity:.35; background:transparent; color:#eddba6; }
.season-reel :focus-visible,.season-photo-dialog :focus-visible { outline:3px solid #ffe5a4; outline-offset:4px; }
@media(hover:hover) { .season-reel-photo:hover { transform:translateY(-3px); box-shadow:0 7px 13px #080e0b66; } .season-reel-controls button:not(:disabled):hover,.season-photo-dialog button:hover { background:#ffe3a0; } }
body.season-photo-open { overflow:hidden; }
.season-reel-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.season-photo-dialog { width:min(1140px,calc(100vw - 40px)); max-width:none; height:min(900px,calc(100dvh - 40px)); max-height:calc(100dvh - 40px); margin:auto; padding:14px 20px 18px; border:2px solid #cab076; border-radius:26px 6px; color:#f4e9c9; background:repeating-linear-gradient(5deg,transparent 0 7px,#d3b06b04 8px 9px),#182920; box-shadow:inset 0 0 0 5px #d4b87822,0 25px 90px #000a; }
.season-photo-dialog:not([open]) { display:none; }
.season-photo-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:10px; }
.season-photo-dialog::backdrop { background:#06120ee8; backdrop-filter:blur(5px); }
.season-photo-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#daceab; font-size:.8rem; }
.season-photo-toolbar button { display:flex; gap:12px; border-radius:8px 3px; font-size:.83rem; padding:8px 13px; }
.season-photo-toolbar button span { font-size:1.4rem; font-weight:400; }
.season-photo-stage { position:relative; min-height:0; display:flex; justify-content:center; align-items:center; background:#0f1c16; border:1px solid #bba36950; border-radius:5px; overflow:hidden; }
.season-photo-stage img { width:100%; height:100%; object-fit:contain; }
.season-photo-stage img:not([src]) { visibility:hidden; }
#season-photo-status { position:absolute; bottom:15px; left:50%; transform:translateX(-50%); max-width:90%; margin:0; padding:8px 15px; background:#152c23ec; color:#f7eac4; font-size:.85rem; text-align:center; border-radius:5px; }
#season-photo-status:empty { display:none; }
.season-photo-details { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:16px; text-align:center; }
.season-photo-details h2 { margin:0; font:500 clamp(1.35rem,2.7vw,1.9rem)/1.15 'Cormorant Garamond',Georgia,serif; color:#ffedbe; }
.season-photo-details p { margin:5px 0 1px; font-size:.77rem; color:#d9cfb1; line-height:1.4; }
.season-photo-details a { color:#ddc586; font-size:.7rem; text-underline-offset:3px; }
@media(max-width:900px) {
 .season-reel { width:calc(100% - 56px); }
 .season-reel-heading { align-items:start; gap:15px; }
 .season-reel-note { max-width:210px; }
}
@media(max-width:600px) {
 .season-reel { width:calc(100% - 32px); margin-top:25px; scroll-margin-top:180px; }
 .season-reel-heading { display:block; margin:0 5px 18px; }
 .season-reel .season-reel-kicker { font-size:.65rem; letter-spacing:.08em; }
 .season-reel h2 { font-size:2rem; }
 .season-reel .season-reel-note { max-width:none; margin:12px 0 0; text-align:left; font-size:.73rem; }
 .season-reel-note br { display:none; }
 .season-reel-note span { display:block; }
 .season-reel-frame { padding:10px 5px 6px; border-radius:27px 7px; }
 .season-reel-track { gap:13px; padding:12px 13px 13px; scroll-padding:13px; }
 .season-reel-photo { flex-basis:min(280px,calc(100vw - 100px)); padding:6px 6px 0; }
 .season-reel .season-reel-caption { min-height:48px; font-size:.77rem; padding:6px 3px; }
 .season-reel-ornament { width:64px; height:64px; }
 .season-reel-ornament-left { top:-9px; left:-9px; }
 .season-reel-footer { padding:4px 11px 0; gap:7px; }
 .season-reel-count { font-size:.7rem; }
 .season-reel-count span { padding:0 3px; }
 .season-reel-controls { gap:6px; padding-right:3px; }
 .season-photo-dialog { width:calc(100vw - 16px); height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); padding:9px 9px 13px; border-radius:17px 5px; gap:8px; }
 .season-photo-details { gap:8px; }
 .season-photo-details h2 { font-size:1.35rem; }
 .season-photo-details p { font-size:.68rem; }
}
@media(prefers-reduced-motion:reduce) { .season-reel-photo { transition:none; } .season-reel-photo:hover { transform:none; } }
