.st-photos-page{background:#07131d;color:#e7e5df;overflow:hidden}.st-photos-page .shell{max-width:1220px}.st-photos-hero{position:relative;min-height:500px;background:radial-gradient(ellipse at 76% 35%,#33424b 0%,#12232e 39%,#07121b 78%);border-bottom:1px solid #4d4230}.st-photos-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(100deg,transparent 0,transparent 65px,rgba(255,255,255,.014) 66px)}.st-photos-hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:35px;align-items:center;min-height:500px;padding-top:64px;padding-bottom:60px}.st-photo-kicker{font-size:12px;letter-spacing:.2em;color:#d2ac65;text-transform:uppercase;font-weight:700;margin:0 0 13px}.st-photos-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(43px,5vw,77px);line-height:1.06;letter-spacing:-.035em;color:#f6f0df;margin:0 0 25px}.st-photos-hero h1 span{display:block;color:#e4bf7b;font-style:italic;font-size:.79em;letter-spacing:-.035em;margin-top:9px}.st-photo-deck{font-size:17px;line-height:1.8;max-width:590px;color:#d5d4d0;margin:0 0 28px}.st-photo-outline{display:inline-flex;align-items:center;gap:17px;border:1px solid #b99558;color:#f3d59d;padding:12px 22px;border-radius:3px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.04em}.st-photo-outline:hover{background:#b99558;color:#0b1721}.st-photos-hero-art{position:relative;height:370px;max-width:470px;width:100%;margin:auto}.st-photo-photo{position:absolute;padding:7px 7px 24px;background:#eee6d5;box-shadow:0 16px 30px #0009;overflow:hidden}.st-photo-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.7)}.st-photo-hero-one{left:3%;top:5%;width:51%;height:260px;transform:rotate(-9deg)}.st-photo-hero-two{right:1%;top:12%;width:52%;height:275px;transform:rotate(7deg)}.st-photo-hero-three{left:30%;bottom:0;width:40%;height:165px;transform:rotate(-3deg)}.st-photo-watch{position:absolute;right:6%;bottom:-13px;width:108px;height:108px;border-radius:50%;border:8px double #bc9550;background:radial-gradient(circle,#f3e6c5,#c8a975);box-shadow:0 8px 22px #000a;color:#4a3824;font:700 11px Georgia,serif;transform:rotate(13deg)}.st-photo-watch span{position:absolute}.st-photo-watch span:nth-child(1){top:5px;left:43px}.st-photo-watch span:nth-child(2){top:43px;left:7px}.st-photo-watch span:nth-child(3){top:43px;right:7px}.st-photo-watch span:nth-child(4){bottom:5px;left:44px}.st-photo-watch i:before,.st-photo-watch i:after{content:"";position:absolute;left:45px;top:45px;background:#493729;transform-origin:bottom center;border-radius:2px}.st-photo-watch i:before{width:3px;height:30px;transform:translateY(-28px) rotate(37deg)}.st-photo-watch i:after{width:3px;height:21px;transform:translateY(-19px) rotate(127deg)}.st-photo-section{padding:63px 0 67px;border-bottom:1px solid #24333e}.st-photo-section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}.st-photo-section h2{font-family:Georgia,serif;color:#f4ede0;font-weight:500;font-size:clamp(28px,3vw,40px);margin:0 0 8px}.st-photo-section-top p:not(.st-photo-kicker){color:#b6c0c5;margin:0;line-height:1.6}.st-photo-arrows{display:flex;gap:9px}.st-photo-arrows button{width:43px;height:43px;background:#172b37;color:#e5c28b;border:1px solid #4e5a5c;border-radius:50%;font-size:27px;cursor:pointer}.st-photo-arrows button:disabled{opacity:.35;cursor:default}.st-photo-album-window{overflow:hidden}.st-photo-album-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 4*17px)/5);gap:17px;transition:transform .5s ease}.st-photo-album{min-width:0;text-decoration:none;color:inherit;background:#112430;border:1px solid #35434b;border-radius:5px;overflow:hidden}.st-photo-album-image{height:165px;overflow:hidden;background:linear-gradient(145deg,#33464b,#17232d)}.st-photo-album-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.st-photo-album:hover img{transform:scale(1.05)}.st-photo-album-placeholder{display:grid;height:100%;place-items:center;color:#e2c99c;font:italic 17px Georgia,serif}.st-photo-album-info{padding:14px}.st-photo-album-info h3{font-size:15px;color:#f4e7cf;margin:0 0 8px}.st-photo-album-info span{font-size:12px;color:#d6ad6a}.st-photo-carousel-help{font-size:12px;color:#82959f;margin:12px 0 0}.st-photo-coming{display:flex;align-items:center;gap:25px;border:1px dashed #56616a;background:linear-gradient(120deg,#10232f,#14232c);padding:31px;border-radius:6px}.st-photo-coming-mark{font-size:43px;color:#bd985f}.st-photo-coming h3,.st-photo-featured-note h3{font:normal 24px Georgia,serif;color:#f3e9d5;margin:0 0 9px}.st-photo-coming p,.st-photo-featured-note p{color:#b6c1c8;line-height:1.7;margin:0}.st-photo-gallery-section{background:#0c1b26}.st-photo-gallery-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-bottom:20px;font-size:13px;color:#bdc5c8}.st-photo-gallery-status{margin-right:auto}.st-photo-gallery-controls select{background:#162a36;color:#e7e1d7;border:1px solid #52606a;padding:9px 12px;border-radius:3px}.st-photo-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.st-photo-tile{background:#142735;border:1px solid #334450;border-radius:5px;overflow:hidden}.st-photo-open{border:0;padding:0;background:none;color:#f0e7d7;cursor:pointer;display:block;text-align:left;width:100%;font:inherit}.st-photo-open img{width:100%;height:195px;object-fit:cover;display:block}.st-photo-open span{display:block;padding:13px 15px;font-size:14px}.st-photo-featured{background:linear-gradient(180deg,#07131d,#12232c)}.st-photo-featured-note{display:flex;gap:20px;align-items:center;padding:29px 33px;border-left:3px solid #bc995d;background:#172a35}.st-photo-featured-note>span{font:80px Georgia,serif;line-height:1;color:#b99558}.st-photo-lightbox[hidden]{display:none!important}.st-photo-lightbox{position:fixed;z-index:9999;inset:0;background:#000d;display:grid;place-items:center;padding:16px}.st-photo-lightbox-panel{width:min(900px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:#0b1b27;border:1px solid #67717a;box-shadow:0 20px 80px #000c}.st-photo-lightbox-top{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;color:#f5e9d4}.st-photo-lightbox-top button{background:none;color:#fff;border:0;font-size:28px;cursor:pointer}.st-photo-lightbox-panel>img{display:block;max-width:100%;max-height:65dvh;object-fit:contain;margin:auto}.st-photo-lightbox-actions{display:flex;flex-wrap:wrap;gap:12px;padding:16px;border-top:1px solid #3c4b56}.st-photo-lightbox-actions button,.st-photo-lightbox-actions a{border:1px solid #8b7857;background:#1d3541;color:#f4d6a1;text-decoration:none;padding:10px 15px;font:600 13px inherit;cursor:pointer}
@media(max-width:950px){.st-photo-album-track{grid-auto-columns:calc((100% - 2*15px)/3)}.st-photo-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.st-photos-hero-grid{grid-template-columns:1fr .8fr}.st-photos-hero-art{height:310px}.st-photo-hero-one{height:220px}.st-photo-hero-two{height:220px}.st-photo-hero-three{height:140px}}
@media(max-width:650px){.st-photos-hero-grid{display:flex;flex-direction:column;align-items:stretch;padding-top:50px;gap:20px}.st-photos-hero-art{height:250px;max-width:340px}.st-photo-hero-one{height:180px}.st-photo-hero-two{height:185px}.st-photo-hero-three{height:120px}.st-photo-watch{width:75px;height:75px;right:5%;bottom:0}.st-photo-watch span,.st-photo-watch i{display:none}.st-photos-hero h1{font-size:clamp(39px,10vw,56px)}.st-photo-deck{font-size:15px}.st-photo-section{padding:43px 0}.st-photo-album-track{grid-auto-columns:calc((100% - 12px)/2);gap:12px}.st-photo-album-image{height:145px}.st-photo-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.st-photo-open img{height:155px}.st-photo-section-top{align-items:center}.st-photo-featured-note{padding:18px}.st-photo-coming{padding:19px}.st-photo-coming h3,.st-photo-featured-note h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.st-photo-album-track,.st-photo-album-image img{transition:none}}

/* v1.1 — approved full-width photographic header and continuous page background. */
.st-photos-page{background:#07131d}
.st-photos-page .st-photos-hero{min-height:0;background:#07131d;border:0;overflow:hidden}
.st-photos-page .st-photos-hero::before{display:none}
.st-photos-page .st-photos-hero-banner{display:block;width:100%;height:auto;max-width:none;object-fit:contain}
.st-photos-page .st-photo-section,.st-photos-page .st-photo-gallery-section,.st-photos-page .st-photo-featured{background:#07131d;border-bottom:0}
.st-photos-page .st-photo-section+.st-photo-section{border-top:0}
.st-photo-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* v1.2 — cap the approved banner at a readable desktop hero height. */
.st-photos-page .st-photos-hero-banner{width:min(100%,1480px);max-height:425px;height:auto;object-fit:contain;margin-inline:auto}
@media(max-width:650px){.st-photos-page .st-photos-hero-banner{width:100%;max-height:none}}

/* v1.3: Restore normal block flow and responsive banner after the v1.2 layout regression. */
.st-photos-page{display:block!important;position:relative;width:100%;max-width:100%;min-width:0;overflow:hidden;clear:both;background:#07131d}
.st-photos-page > section{display:block!important;position:relative;width:100%;max-width:100%;clear:both;float:none!important;margin:0;box-sizing:border-box}
.st-photos-page .st-photos-hero{display:block!important;width:100%;max-width:100%;min-height:0;padding:0;margin:0;line-height:0;text-align:center;background:#07131d}
.st-photos-page .st-photos-hero-banner{display:block!important;position:static!important;float:none!important;width:100%!important;max-width:1480px!important;height:auto!important;max-height:none!important;object-fit:contain!important;margin:0 auto!important;vertical-align:middle}
.st-photos-page .st-photo-section{display:block!important;float:none!important;clear:both;padding:62px 0;min-height:0;background:#07131d}
.st-photos-page .st-photo-section > .shell{display:block!important;float:none!important;width:min(1220px,calc(100% - 48px))!important;max-width:1220px!important;margin:0 auto!important;box-sizing:border-box}
.st-photos-page .st-photo-album-window{width:100%;overflow:hidden}
.st-photos-page .st-photo-album-image{overflow:hidden}
.st-photos-page .st-photo-album-image img{display:block;width:100%!important;height:100%!important;max-width:100%;object-fit:cover}
@media(min-width:1100px){.st-photos-page .st-photos-hero-banner{width:min(100%,1480px)!important}}
@media(max-width:650px){.st-photos-page .st-photo-section{padding:40px 0}.st-photos-page .st-photo-section > .shell{width:calc(100% - 30px)!important}}

/* v1.5 — visual album placeholders only; preserve the approved hero and other sections. */
.st-photos-page .st-photo-album-draft{cursor:default;user-select:none}
.st-photos-page .st-photo-album-draft-image{position:relative;display:grid;place-items:center;background:radial-gradient(circle at 70% 25%,#4b4d4a 0%,#233543 43%,#10202b 100%);isolation:isolate}
.st-photos-page .st-photo-album-draft-image::before{content:"";position:absolute;inset:12px;border:1px solid rgba(227,190,126,.23);pointer-events:none}
.st-photos-page .st-photo-album-draft-symbol{font-family:Georgia,serif;font-size:68px;line-height:1;color:#d9b878;opacity:.88;text-shadow:0 8px 22px #0008}
.st-photos-page .st-photo-album-draft-stamp{position:absolute;bottom:11px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.16em;color:#c8c2b3}
.st-photos-page .st-photo-album-draft-college{background:radial-gradient(circle at 30% 10%,#51545b,#1b2b37 75%)}
.st-photos-page .st-photo-album-draft-stage{background:radial-gradient(circle at 60% 20%,#614b43,#182634 75%)}
.st-photos-page .st-photo-album-draft-travel{background:radial-gradient(circle at 50% 0%,#49646b,#142a34 78%)}
.st-photos-page .st-photo-album-draft-family{background:radial-gradient(circle at 50% 0%,#5c4d4c,#202a35 78%)}
.st-photos-page .st-photo-album-draft-mementos{background:radial-gradient(circle at 40% 20%,#68573d,#1c2b33 80%)}
@media(max-width:650px){.st-photos-page .st-photo-album-draft-symbol{font-size:52px}}

/* v1.6: match the Browse Albums content width to the approved header image. */
.st-photos-page #photo-albums > .shell{width:min(1480px,calc(100% - 48px))!important;max-width:1480px!important;margin-inline:auto!important}
@media(max-width:650px){.st-photos-page #photo-albums > .shell{width:calc(100% - 30px)!important}}

/* v1.7 — tighten only the vertical rhythm around the album carousel. */
.st-photos-page #photo-albums{padding-top:24px!important;padding-bottom:26px!important}
.st-photos-page #photo-gallery{padding-top:28px!important}
@media(max-width:650px){.st-photos-page #photo-albums{padding-top:18px!important;padding-bottom:20px!important}.st-photos-page #photo-gallery{padding-top:22px!important}}

/* v1.8: temporary Jack FM photo preview; no database writes. */
.st-photos-page .st-photo-album-preview-live{cursor:default}
.st-photos-page .st-photo-album-preview-live .st-photo-album-image img{width:100%;height:100%;object-fit:cover}
.st-photos-page .st-photo-gallery-grid .st-photo-tile img{width:100%;height:100%;object-fit:cover}

/* v2.0: gallery width matches the header and albums; scope to gallery only. */
.st-photos-page #photo-gallery > .shell{
 width:min(1480px,calc(100% - 48px))!important;
 max-width:1480px!important;
 margin-inline:auto!important;
}
.st-photos-page #photo-gallery{scroll-margin-top:68px}
.st-photos-page .st-photo-album-preview-live{cursor:pointer;text-decoration:none}
@media(max-width:650px){
 .st-photos-page #photo-gallery > .shell{width:calc(100% - 30px)!important}
}

/* v2.2 — photo viewer fits within viewport and always permits vertical scrolling. */
.st-photo-lightbox:not([hidden]){
 position:fixed!important;inset:0!important;display:flex!important;
 align-items:flex-start!important;justify-content:center!important;
 overflow-y:auto!important;overscroll-behavior:contain;
 padding:clamp(10px,2vh,24px)!important;box-sizing:border-box;
}
.st-photo-lightbox .st-photo-lightbox-panel{
 flex:0 1 900px;min-width:0;max-width:100%!important;
 max-height:calc(100dvh - 2 * clamp(10px,2vh,24px))!important;
 overflow-y:auto!important;overflow-x:hidden!important;
 margin:auto 0;box-sizing:border-box;overscroll-behavior:contain;
 -webkit-overflow-scrolling:touch;
}
.st-photo-lightbox .st-photo-lightbox-panel>img{
 display:block;width:auto;max-width:100%!important;max-height:min(60dvh,640px)!important;
 height:auto;object-fit:contain;margin:0 auto;
}
.st-photo-lightbox .st-photo-lightbox-actions{flex-shrink:0;min-height:50px}
@media(max-height:650px){
 .st-photo-lightbox .st-photo-lightbox-panel>img{max-height:45dvh!important}
}

/* v2.3: bounded, internally scrolling gallery and non-exclusive relevance search. */
.st-photos-page #st-photo-gallery-grid{grid-auto-rows:255px;max-height:calc(3 * 255px + 2 * 18px);overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:auto;scrollbar-gutter:stable;align-content:start;padding-right:5px;}
.st-photos-page #st-photo-gallery-grid .st-photo-tile{min-height:0;}
.st-photos-page #st-photo-gallery-grid .st-photo-open{height:100%;display:flex;flex-direction:column;}
.st-photos-page #st-photo-gallery-grid .st-photo-open img{height:calc(100% - 48px);min-height:0;flex:1;}
.st-photos-page #st-photo-gallery-grid .st-photo-open span{flex:none;max-height:48px;overflow:hidden;}
.st-photos-page .st-photo-gallery-controls{flex-wrap:wrap;}
.st-photos-page .st-photo-search-label{display:flex;align-items:center;gap:9px;}
.st-photos-page #st-photo-search{width:min(300px,55vw);background:#162a36;color:#f0e7d7;border:1px solid #52606a;border-radius:3px;padding:10px 12px;}
.st-photos-page #st-photo-clear{border:1px solid #52606a;background:#162a36;color:#e7e1d7;padding:9px 12px;cursor:pointer;}
.st-photos-page #st-photo-clear[hidden]{display:none!important;}
@media(max-width:950px){.st-photos-page #st-photo-gallery-grid{grid-auto-rows:235px;max-height:calc(3 * 235px + 2 * 18px);}}
@media(max-width:650px){.st-photos-page #st-photo-gallery-grid{grid-auto-rows:205px;max-height:calc(3 * 205px + 2 * 10px);}.st-photos-page .st-photo-gallery-controls{justify-content:flex-start;}.st-photos-page .st-photo-gallery-status{width:100%;order:3;}.st-photos-page #st-photo-search{width:min(240px,55vw);}}

/* v2.4: larger gallery scrollbar and touch-friendly album gestures. */
.st-photos-page .st-photo-album-window{touch-action:pan-y pinch-zoom;}
.st-photos-page #st-photo-gallery-grid{scrollbar-width:auto;scrollbar-color:#9caab4 #152936;padding-right:8px;}
.st-photos-page #st-photo-gallery-grid::-webkit-scrollbar{width:18px;}
.st-photos-page #st-photo-gallery-grid::-webkit-scrollbar-track{background:#152936;border-radius:10px;}
.st-photos-page #st-photo-gallery-grid::-webkit-scrollbar-thumb{background:#9caab4;border:3px solid #152936;border-radius:10px;min-height:56px;}
@media(max-width:650px){.st-photos-page #st-photo-gallery-grid{padding-right:10px;scrollbar-gutter:stable;}}
