/*
Theme Name: CPeter Photography
Theme URI: https://cpeter.de
Author: CPeter Photography
Description: Individuelles Fotografie-Theme (Version 0.11). Vollbild-Features, Projektkategorien und Galerien.
Version: 0.5.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: cpeter
*/
:root{--ink:#fff;--shade:rgba(15,15,15,.7)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#111;color:#fff;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit} .site-header{position:absolute;z-index:20;left:0;right:0;top:0;display:flex;align-items:flex-start;justify-content:space-between;padding:34px 4.2%;gap:30px}.brand{font-family:Georgia,serif;font-style:italic;font-size:clamp(24px,2.5vw,44px);font-weight:400;text-shadow:0 1px 8px #0008;white-space:nowrap}.main-nav{display:flex;gap:2px;align-items:center}.main-nav a{display:block;padding:15px 14px;background:var(--shade);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase}.main-nav a:hover,.main-nav .current-menu-item>a{background:#000}.menu-toggle{display:none;background:#171717c9;border:0;color:white;padding:13px 17px;cursor:pointer}.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:linear-gradient(125deg,#151515,#393939 50%,#0a0a0a)}.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease}.hero-slide.active{opacity:1}.hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0007,transparent 27%,transparent 72%,#0007)}.hero-controls{position:absolute;z-index:5;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.hero-arrow{pointer-events:auto;background:transparent;border:0;color:#fff;font-size:52px;cursor:pointer;padding:30px;opacity:.85;text-shadow:0 2px 12px #000}.hero-arrow:hover{opacity:1}.see-more{position:absolute;z-index:6;bottom:35px;left:50%;transform:translateX(-50%);text-transform:uppercase;letter-spacing:3px;font-size:11px;text-shadow:0 1px 8px #000}.hero-caption{position:absolute;z-index:5;bottom:80px;left:7%;font-size:13px;letter-spacing:1px;text-shadow:0 2px 10px #000}.content-shell{max-width:1400px;margin:auto;padding:145px 5% 80px}.content-shell h1{font-size:30px;letter-spacing:5px;text-transform:uppercase;font-weight:400;margin:0 0 45px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.project-card{position:relative;aspect-ratio:3/2;background:#262626;overflow:hidden}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project-card:hover img{transform:scale(1.04)}.project-card span{position:absolute;bottom:0;left:0;right:0;padding:28px 20px 20px;background:linear-gradient(transparent,#000b);font-size:14px;letter-spacing:2px;text-transform:uppercase}.project-body{max-width:950px;margin:0 auto 40px;line-height:1.8}.project-body img{max-width:100%;height:auto}.project-body .wp-block-gallery{margin-top:30px}.site-footer{padding:25px 5%;font-size:11px;letter-spacing:1px;color:#aaa;text-align:center}.empty-hero{position:absolute;z-index:2;left:10%;right:10%;top:50%;transform:translateY(-50%);text-align:center;color:#ddd}.empty-hero strong{font-size:30px;font-weight:400;letter-spacing:5px;text-transform:uppercase}.empty-hero p{font-size:14px;line-height:1.6}.term-links{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}.term-links a{padding:11px 14px;background:#292929;font-size:12px;letter-spacing:1px;text-transform:uppercase}@media(max-width:1050px){.menu-toggle{display:block}.main-nav{display:none;position:absolute;right:4%;top:90px;flex-direction:column;align-items:stretch;min-width:230px}.main-nav.open{display:flex}.main-nav a{padding:16px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.site-header{padding:22px 5%}.brand{font-size:27px}.main-nav{top:70px}.project-grid{grid-template-columns:1fr}.content-shell{padding-top:115px}.hero-arrow{font-size:40px;padding:14px}}

.cpeter-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cpeter-gallery figure{margin:0}.cpeter-gallery img{display:block;width:100%;height:auto}@media(max-width:650px){.cpeter-gallery{grid-template-columns:1fr}}

.main-nav .menu-item-has-children{position:relative}.main-nav .sub-menu{display:none;position:absolute;top:100%;left:0;min-width:190px;list-style:none;margin:0;padding:0;background:#171717}.main-nav .menu-item-has-children:hover>.sub-menu,.main-nav .menu-item-has-children:focus-within>.sub-menu{display:block}.main-nav .sub-menu li{display:block}@media(max-width:1050px){.main-nav .sub-menu{position:static;display:block;padding-left:12px}}

.cpeter-original-logo{display:block;width:clamp(175px,23vw,360px);height:auto;max-height:90px;object-fit:contain;object-position:left top}.brand:has(.cpeter-original-logo){display:block;max-width:40vw}

/* v0.18: Koken-style hamburger navigation, visible only after click. */
.site-header{align-items:flex-start;gap:20px;pointer-events:none}
.site-header .brand,.site-header .menu-toggle,.site-header .main-nav{pointer-events:auto}
.brand{max-width:min(440px,65vw);font-size:0;line-height:0;white-space:normal}
.brand a,.brand .custom-logo-link{display:block}
.brand img,.brand .custom-logo{display:block;width:min(440px,65vw);height:auto;max-height:none;object-fit:contain;object-position:left top}
.menu-toggle{display:flex;position:relative;z-index:31;flex-direction:column;justify-content:center;gap:5px;width:60px;height:60px;padding:16px;background:rgba(38,38,38,.85);border:0;border-radius:7px;cursor:pointer;flex:none}
.menu-toggle span{display:block;height:3px;width:100%;border-radius:2px;background:#fff}
.menu-toggle:hover{background:rgba(60,60,60,.85)}
.main-nav{display:none;position:absolute;z-index:30;top:100px;right:4.2%;left:auto;width:max-content;max-width:92vw;min-width:0;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:1px;background:none}
.main-nav.open{display:flex}
.main-nav a{display:block;padding:21px 19px;background:rgba(26,26,26,.84);color:white;font-size:13px;letter-spacing:2px;white-space:nowrap;transition:background-color .2s ease,opacity .2s ease}
.main-nav a:hover,.main-nav .current-menu-item>a{background:rgba(26,26,26,.42);opacity:.72}
.main-nav ul.menu{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:1px;list-style:none;margin:0;padding:0}
.main-nav .menu-item-has-children{position:relative}
.main-nav .sub-menu{z-index:40;display:none;position:absolute;top:100%;left:0;background:rgba(20,20,20,.94);padding:0;min-width:190px;list-style:none}
.main-nav .menu-item-has-children:hover>.sub-menu,.main-nav .menu-item-has-children:focus-within>.sub-menu{display:block}
@media(max-width:1050px){.main-nav{right:4%;top:105px;min-width:0;flex-direction:row;align-items:flex-start}.main-nav a{padding:18px 14px}.main-nav ul.menu{display:flex}.main-nav .sub-menu{position:absolute;display:none;padding:0}}
@media(max-width:650px){.site-header{padding:18px 5%}.brand,.brand img,.brand .custom-logo{max-width:65vw;width:min(300px,65vw)}.menu-toggle{width:51px;height:51px;padding:13px}.main-nav{top:79px;right:5%;max-width:90vw;flex-direction:column;align-items:stretch;max-height:75vh;overflow-y:auto}.main-nav.open{display:flex}.main-nav a{padding:15px 18px}.main-nav ul.menu{flex-direction:column;align-items:stretch}.main-nav .sub-menu{position:static;display:block;padding-left:10px}}

/* v0.19: logo 30% of v0.18 desktop/mobile display size; shorter, wider menu tiles. */
.site-header .brand{max-width:min(132px,19.5vw)}
.site-header .brand img,.site-header .brand .custom-logo,.site-header .brand .cpeter-original-logo{width:min(132px,19.5vw);max-width:100%;height:auto;max-height:none}
.main-nav a{padding:19px 25px}
@media(max-width:1050px){.main-nav a{padding:16px 20px}}
@media(max-width:650px){.site-header .brand{max-width:min(90px,19.5vw)}.site-header .brand img,.site-header .brand .custom-logo,.site-header .brand .cpeter-original-logo{width:min(90px,19.5vw);max-width:100%}.main-nav a{padding:13px 23px}}

/* v0.21: Reference-aligned desktop header. Rebuilt from stable v0.19. */
:root{--cpeter-header-top:23px}
.site-header{position:absolute;top:var(--cpeter-header-top);left:0;right:0;padding:0 20px 0 30px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;z-index:100;pointer-events:none}
.admin-bar .site-header{top:calc(var(--cpeter-header-top) + 32px)}
.site-header .brand{width:155px;max-width:155px;flex:0 0 155px;pointer-events:auto}
.site-header .brand img,.site-header .brand .custom-logo,.site-header .brand .cpeter-original-logo{width:155px;max-width:155px;height:auto;max-height:none;display:block}
.site-header .menu-toggle{order:2;display:flex;flex:0 0 46px;width:46px;height:56px;padding:14px 11px;gap:5px;border-radius:0 6px 6px 0;background:rgba(34,34,34,.84);pointer-events:auto;z-index:33}
.site-header .menu-toggle span{height:3px}
.site-header .main-nav{position:static;order:1;display:none;flex:0 1 auto;width:auto;min-width:0;max-width:calc(100vw - 260px);margin-left:auto;flex-wrap:nowrap;align-items:stretch;justify-content:flex-end;gap:1px;pointer-events:auto;z-index:32}
.site-header .main-nav.open{display:flex}
.site-header .main-nav> a,.site-header .main-nav>ul>li>a{display:flex;align-items:center;justify-content:center;min-height:56px;height:56px;padding:0 17px;background:rgba(37,37,37,.83);font-size:13px;font-weight:700;letter-spacing:1.6px;white-space:nowrap;line-height:1.1;transition:background-color .2s,opacity .2s}
.site-header .main-nav> a:hover,.site-header .main-nav>ul>li>a:hover,.site-header .main-nav .current-menu-item>a{background:rgba(37,37,37,.45);opacity:.75}
.site-header .main-nav ul.menu{display:flex;flex-wrap:nowrap;align-items:stretch;gap:1px;list-style:none;margin:0;padding:0}
.site-header .main-nav .sub-menu{top:100%;left:0;min-width:180px}
@media(max-width:1250px){.site-header .main-nav{position:absolute;top:65px;right:20px;max-width:min(420px,calc(100vw - 40px));max-height:75vh;overflow-y:auto;flex-direction:column;align-items:stretch}.site-header .main-nav.open{display:flex}.site-header .main-nav ul.menu{flex-direction:column;align-items:stretch}.site-header .main-nav>a,.site-header .main-nav>ul>li>a{justify-content:flex-start;min-height:44px;height:auto;padding:14px 18px}.site-header .main-nav .sub-menu{position:static;display:block;padding-left:12px}}
@media(max-width:782px){.admin-bar .site-header{top:calc(var(--cpeter-header-top) + 46px)}}
@media(max-width:650px){:root{--cpeter-header-top:15px}.site-header{padding:0 15px}.site-header .brand{width:120px;max-width:120px;flex-basis:120px}.site-header .brand img,.site-header .brand .custom-logo,.site-header .brand .cpeter-original-logo{width:120px;max-width:120px}.site-header .menu-toggle{width:46px;height:50px;flex-basis:46px}.site-header .main-nav{right:15px;top:58px}}

/* v0.23 – Features-only home */
.hero-caption{bottom:38px;left:4.2%;max-width:75%;font-size:14px;letter-spacing:.6px;z-index:7;padding:7px 12px;background:rgba(0,0,0,.32);border-radius:2px}
.hero-slide{transition:opacity 1.9s ease,filter 1.9s ease,transform 7.5s linear;will-change:opacity}
.hero[data-effect="kenburns"] .hero-slide.active{transform:scale(1.065)}
.hero[data-effect="blur"] .hero-slide:not(.active){filter:blur(14px)}
.featured-gallery{max-width:1600px;margin:0 auto;padding:42px 4.2% 75px}
.featured-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.featured-tile{position:relative;aspect-ratio:3/2;overflow:hidden;background:#222;display:block}
.featured-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;display:block}
.featured-tile:hover img{transform:scale(1.055)}
.featured-tile span{position:absolute;bottom:0;left:0;right:0;padding:22px 13px 12px;background:linear-gradient(transparent,#000a);font-size:12px;letter-spacing:.4px}
@media(max-width:950px){.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.featured-gallery{padding:20px 3% 45px}.hero-caption{left:5%;bottom:65px;max-width:88%;font-size:12px}}
@media(prefers-reduced-motion:reduce){.hero-slide,.featured-tile img{transition:none!important;transform:none!important;filter:none!important}}

/* v0.24: edge-to-edge feature tiles, discreet bottom-right playback controls */
body.home .featured-gallery{max-width:none;margin:0;padding:0;width:100%}
body.home .featured-grid{gap:0;grid-template-columns:repeat(4,minmax(0,1fr))}
body.home .featured-tile{margin:0;border:0;border-radius:0}
body.home .featured-tile span{display:none}
body.home .hero-controls{inset:auto 24px 24px auto;display:flex;gap:0;align-items:center;justify-content:flex-end;background:rgba(0,0,0,.58);pointer-events:auto}
body.home .hero-controls button{height:56px;width:56px;display:flex;align-items:center;justify-content:center;color:white;background:transparent;border:0;border-right:1px solid rgba(255,255,255,.2);font-size:24px;cursor:pointer;padding:0;opacity:1;text-shadow:none}
body.home .hero-controls button:last-child{border-right:0}
body.home .hero-controls button:hover,body.home .hero-controls button:focus-visible{background:rgba(255,255,255,.16)}
body.home .hero-caption{bottom:25px;left:24px;right:210px;max-width:none;width:auto;background:transparent;padding:0}
body.home .hero-caption:empty{display:none}
body.home .hero[data-effect="kenburns"] .hero-slide.active{animation:cpeter-kb 7s ease-out both;transform:none}
@keyframes cpeter-kb{from{transform:scale(1)}to{transform:scale(1.07)}}
@media(max-width:650px){body.home .featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}body.home .hero-controls{right:10px;bottom:12px}body.home .hero-controls button{height:44px;width:44px;font-size:20px}body.home .hero-caption{left:12px;bottom:16px;right:145px}}
@media(prefers-reduced-motion:reduce){body.home .hero[data-effect="kenburns"] .hero-slide.active{animation:none!important}}

/* v0.25: motion and transitions are independent. Animate the INNER layer only.
   The outgoing slide keeps its transform until the crossfade is finished. */
body.home .hero-slide{background-image:none!important;transform:none!important;animation:none!important;filter:none!important;transition:opacity var(--cpeter-fade-duration,1800ms) ease-in-out!important;will-change:opacity;}
body.home .hero-slide-image{position:absolute;inset:-4%;background-image:var(--slide-image);background-position:center;background-size:cover;transform:scale(1);will-change:transform;backface-visibility:hidden;}
body.home .hero-slide[data-motion="move"].moving .hero-slide-image{animation:cpeter-smooth-motion var(--cpeter-motion-duration,24s) linear both;}
body.home .hero-slide[data-motion="still"] .hero-slide-image{animation:none;transform:scale(1);}
body.home .hero.is-paused .hero-slide-image{animation-play-state:paused!important;}
@keyframes cpeter-smooth-motion{from{transform:scale(1)}to{transform:scale(1.07)}}
body.home .hero-slide[data-effect="blur"]{filter:none!important;}
body.home .hero-slide[data-effect="blur"].active .hero-slide-image{animation-timing-function:linear;}
@media(prefers-reduced-motion:reduce){body.home .hero-slide-image{animation:none!important;transform:none!important}body.home .hero-slide{transition:none!important}}

/* v0.26: consistent 30px edge alignment, minimalist playback, persistent navigation. */
:root{--cpeter-edge:30px}
.site-header{position:fixed;top:var(--cpeter-header-top);left:0;right:0;padding-left:var(--cpeter-edge);padding-right:var(--cpeter-edge);z-index:1000}
.admin-bar .site-header{top:calc(var(--cpeter-header-top) + 32px)}
@media(max-width:782px){.admin-bar .site-header{top:calc(var(--cpeter-header-top) + 46px)}}
.site-header .main-nav{z-index:1001}
.site-header .menu-toggle{z-index:1002}
body.home .hero-caption{left:var(--cpeter-edge);bottom:var(--cpeter-edge);right:220px}
body.home .hero-controls{right:var(--cpeter-edge);bottom:var(--cpeter-edge)}
body.home .see-more{left:auto;right:var(--cpeter-edge);top:calc(var(--cpeter-header-top) + 85px);bottom:auto;transform:none;text-align:right}
body.home .hero-playpause{position:relative;font-size:0!important}
body.home .hero-playpause:not(.is-paused)::before,
body.home .hero-playpause:not(.is-paused)::after{content:"";position:absolute;top:50%;width:2px;height:17px;background:#fff;transform:translateY(-50%);border-radius:0}
body.home .hero-playpause:not(.is-paused)::before{left:calc(50% - 5px)}
body.home .hero-playpause:not(.is-paused)::after{left:calc(50% + 3px)}
body.home .hero-playpause.is-paused{font-size:20px!important}
@media(max-width:650px){:root{--cpeter-edge:15px}
 .site-header{padding-left:var(--cpeter-edge);padding-right:var(--cpeter-edge)}
 body.home .hero-caption{left:var(--cpeter-edge);bottom:var(--cpeter-edge);right:155px}
 body.home .hero-controls{right:var(--cpeter-edge);bottom:var(--cpeter-edge)}
 body.home .see-more{right:var(--cpeter-edge);top:calc(var(--cpeter-header-top) + 70px)}
}

/* v0.27: same full-bleed gallery and slideshow on category landing pages. */
body.tax-photo_category .hero-slide{background-image:none!important;transform:none!important;animation:none!important;filter:none!important;transition:opacity var(--cpeter-fade-duration,1800ms) ease-in-out!important;will-change:opacity}
body.tax-photo_category .hero-slide-image{position:absolute;inset:-4%;background-image:var(--slide-image);background-size:cover;background-position:center;will-change:transform;backface-visibility:hidden}
body.tax-photo_category .hero-slide[data-motion="move"].moving .hero-slide-image{animation:cpeter-smooth-motion var(--cpeter-motion-duration,24s) linear both}
body.tax-photo_category .hero-slide[data-motion="still"] .hero-slide-image{animation:none;transform:scale(1)}
body.tax-photo_category .hero.is-paused .hero-slide-image{animation-play-state:paused!important}
body.tax-photo_category .hero-controls{inset:auto var(--cpeter-edge) var(--cpeter-edge) auto;display:flex;gap:0;align-items:center;justify-content:flex-end;background:rgba(0,0,0,.58);pointer-events:auto}
body.tax-photo_category .hero-controls button{height:56px;width:56px;display:flex;align-items:center;justify-content:center;color:#fff;background:transparent;border:0;border-right:1px solid rgba(255,255,255,.2);font-size:24px;cursor:pointer;padding:0;opacity:1;text-shadow:none}
body.tax-photo_category .hero-controls button:last-child{border-right:0}
body.tax-photo_category .hero-controls button:hover{background:rgba(255,255,255,.16)}
body.tax-photo_category .hero-caption{left:var(--cpeter-edge);bottom:var(--cpeter-edge);right:220px;max-width:none;background:transparent;padding:0}
body.tax-photo_category .hero-playpause{position:relative;font-size:0!important}
body.tax-photo_category .hero-playpause:not(.is-paused)::before,body.tax-photo_category .hero-playpause:not(.is-paused)::after{content:"";position:absolute;top:50%;width:2px;height:17px;background:#fff;transform:translateY(-50%)}
body.tax-photo_category .hero-playpause:not(.is-paused)::before{left:calc(50% - 5px)}
body.tax-photo_category .hero-playpause:not(.is-paused)::after{left:calc(50% + 3px)}
body.tax-photo_category .hero-playpause.is-paused{font-size:20px!important}
body.tax-photo_category .see-more{left:auto;right:var(--cpeter-edge);top:calc(var(--cpeter-header-top) + 85px);bottom:auto;transform:none;text-align:right}
body.tax-photo_category .category-projects{width:100%;padding:0}
body.tax-photo_category .category-intro{max-width:1050px;margin:0 auto;padding:42px var(--cpeter-edge);line-height:1.7}
body.tax-photo_category .project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
body.tax-photo_category .project-card{border:0;margin:0;border-radius:0}
body.tax-photo_category .category-projects>p{padding:25px var(--cpeter-edge)}
@media(max-width:950px){body.tax-photo_category .project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){body.tax-photo_category .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.tax-photo_category .hero-controls button{width:44px;height:44px;font-size:20px}body.tax-photo_category .hero-caption{right:155px}body.tax-photo_category .see-more{top:calc(var(--cpeter-header-top) + 70px)}}
@media(prefers-reduced-motion:reduce){body.tax-photo_category .hero-slide-image{animation:none!important;transform:none!important}body.tax-photo_category .hero-slide{transition:none!important}}

/* v0.29: quiet, translucent home news panel */
body.home .hero{position:relative}
body.home .cpeter-news{position:absolute;z-index:20;left:var(--cpeter-edge,30px);bottom:110px;width:min(490px,calc(100vw - 2 * var(--cpeter-edge,30px)));max-height:min(48vh,390px);overflow:auto;box-sizing:border-box;background:rgba(15,15,15,var(--news-opacity,.7));color:#fff;padding:22px 25px 24px;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);font-size:14px;line-height:1.65;letter-spacing:.01em;transition:opacity .28s ease,transform .28s ease}
body.home .cpeter-news-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;letter-spacing:.22em;font-weight:500}
body.home .cpeter-news-close{appearance:none;border:0;background:none;color:#fff;font-size:25px;font-weight:200;line-height:1;cursor:pointer;padding:0 2px;opacity:.8}
body.home .cpeter-news-close:hover{opacity:1}
body.home .cpeter-news-content p{margin:15px 0 0}
body.home .cpeter-news a{color:#fff;text-decoration:underline;text-underline-offset:3px}
body.home .cpeter-news.is-hidden{opacity:0;transform:translateY(10px);pointer-events:none;visibility:hidden}
body.home .cpeter-news-reopen{position:absolute;z-index:20;left:var(--cpeter-edge,30px);bottom:110px;background:rgba(15,15,15,.7);border:0;color:#fff;cursor:pointer;padding:12px 16px;font-size:11px;letter-spacing:.18em}
body.home .cpeter-news-reopen[hidden]{display:none}
@media(max-width:650px){body.home .cpeter-news{bottom:85px;padding:15px 18px;max-height:36vh}body.home .cpeter-news-reopen{bottom:85px}}
@media(prefers-reduced-motion:reduce){body.home .cpeter-news{transition:none}}

/* v0.30 – maximum dimensions follow the marked reference rectangle; responsive news carousel */
body.home .cpeter-news{width:min(530px,31vw);max-width:calc(100vw - 2 * var(--cpeter-edge,30px));height:auto;max-height:min(390px,44vh);overflow:hidden;display:flex;flex-direction:column;padding:18px 21px 16px;bottom:var(--cpeter-edge,30px);border:0;border-radius:0}
body.home .cpeter-news-items{min-height:0;overflow-y:auto;overscroll-behavior:contain}
body.home .cpeter-news-item[hidden]{display:none}
body.home .cpeter-news-item h3{font-size:15px;font-weight:400;letter-spacing:.04em;line-height:1.45;margin:16px 0 6px}
body.home .cpeter-news-content p{margin:8px 0}
body.home .cpeter-news-pager{display:flex;align-items:center;justify-content:flex-end;gap:13px;padding-top:10px;font-size:11px;letter-spacing:.08em;flex-shrink:0}
body.home .cpeter-news-pager button{color:#fff;background:transparent;border:0;font-size:24px;line-height:1;cursor:pointer;padding:2px 5px}
body.home .cpeter-news-reopen{bottom:var(--cpeter-edge,30px)}
@media(max-width:900px){body.home .cpeter-news{width:min(530px,48vw)}}
@media(max-width:650px){body.home .cpeter-news{width:min(530px,calc(100vw - 30px));max-height:38vh;bottom:65px;padding:13px 16px}body.home .cpeter-news-reopen{bottom:65px}}

/* v0.31: WordPress-controlled maximum news panel dimensions */
body.home .cpeter-news{width:min(var(--news-max-width,530px),31vw);max-width:calc(100vw - 2 * var(--cpeter-edge,30px));max-height:min(var(--news-max-height,390px),44vh)}
@media(max-width:900px){body.home .cpeter-news{width:min(var(--news-max-width,530px),48vw)}}
@media(max-width:650px){body.home .cpeter-news{width:min(var(--news-max-width,530px),calc(100vw - 30px));max-height:min(var(--news-max-height,390px),38vh)}}

/* v0.32 – editorial photography homepage */
body.home .cpeter-ed-text{background:#fff;color:#141414;padding:clamp(85px,12vw,185px) var(--cpeter-edge,30px);position:relative;overflow:hidden}
body.home .cpeter-ed-inner{max-width:1480px;margin:auto}
body.home .cpeter-ed-kicker{font-size:11px;letter-spacing:.22em;font-weight:500;margin:0 0 30px}
body.home .cpeter-ed-text h2{font-size:clamp(58px,10vw,165px);font-weight:600;line-height:.92;letter-spacing:-.065em;margin:0 0 clamp(45px,7vw,100px);overflow-wrap:break-word}
body.home .cpeter-ed-text h2 span{display:block;font-size:clamp(22px,4vw,64px);font-weight:300;letter-spacing:-.04em;line-height:1.2;margin-top:22px}
body.home .cpeter-ed-about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(35px,7vw,120px);align-items:center}
body.home .cpeter-ed-portrait img{display:block;width:100%;max-height:680px;object-fit:cover}
body.home .cpeter-ed-photo-placeholder{background:#efefef;min-height:360px;display:flex;flex-direction:column;justify-content:center;align-items:center;letter-spacing:.2em;font-size:13px;text-align:center}
body.home .cpeter-ed-photo-placeholder small{font-size:11px;margin-top:15px;letter-spacing:normal}
body.home .cpeter-ed-copy{max-width:620px;font-size:clamp(17px,1.5vw,22px);line-height:1.8;font-weight:300}
body.home .cpeter-ed-copy h3{font-size:13px;letter-spacing:.17em;font-weight:600;margin:0 0 30px}
body.home .cpeter-ed-copy a{color:inherit;text-decoration:none;border-bottom:1px solid #999}
body.home .cpeter-ed-keywords{font-size:12px;letter-spacing:.09em;margin-top:40px;font-weight:500}
body.home .cpeter-ed-keywords span{padding:0 8px;color:#999}
body.home .cpeter-ed-names{max-width:1080px;font-size:clamp(21px,2.4vw,35px);line-height:1.75;font-weight:300;letter-spacing:-.018em}
body.home .cpeter-ed-strip{position:relative;background:#111;overflow:hidden}
body.home .cpeter-ed-strip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
body.home .cpeter-ed-strip-grid.cpeter-ed-cols-1{grid-template-columns:1fr}
body.home .cpeter-ed-strip-grid.cpeter-ed-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
body.home .cpeter-ed-strip-grid figure{margin:0;min-width:0;overflow:hidden;aspect-ratio:3/4}
body.home .cpeter-ed-strip-grid img{width:100%;height:100%;object-fit:cover;display:block}
@media(prefers-reduced-motion:no-preference){body.home .cpeter-ed-reveal[data-effect="fade"],body.home .cpeter-ed-reveal[data-effect="slide"]{opacity:0;transition:opacity .85s ease,transform .85s ease}body.home .cpeter-ed-reveal[data-effect="slide"]{transform:translateY(65px)}body.home .cpeter-ed-reveal[data-effect="fade"].is-visible,body.home .cpeter-ed-reveal[data-effect="slide"].is-visible{opacity:1;transform:none}body.home .cpeter-ed-reveal[data-effect="curtain"]{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1)}body.home .cpeter-ed-reveal[data-effect="curtain"].is-visible{clip-path:inset(0)}body.home .cpeter-ed-reveal[data-effect="parallax"] img{transform:scale(1.08);transition:transform 1.5s ease}body.home .cpeter-ed-reveal[data-effect="parallax"].is-visible img{transform:scale(1)}}
@media(max-width:700px){body.home .cpeter-ed-about-grid{grid-template-columns:1fr}body.home .cpeter-ed-text h2{font-size:clamp(48px,13vw,95px)}body.home .cpeter-ed-text h2 span{font-size:clamp(20px,5.2vw,36px)}body.home .cpeter-ed-strip-grid figure{aspect-ratio:2/3}body.home .cpeter-ed-names{font-size:21px}}

/* v0.33: two seamless rows of three featured images between editorial sections */
body.home .cpeter-ed-strip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
body.home .cpeter-ed-strip-grid figure{margin:0}
@media(max-width:650px){body.home .cpeter-ed-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.34: featured photo rows must always be visible.
   The previous curtain clip-path could leave full black panels if the
   IntersectionObserver did not reveal them. Keep effects on the images only. */
body.home .cpeter-ed-strip{display:block;opacity:1!important;visibility:visible!important;clip-path:none!important;transform:none!important;background:#111}
body.home .cpeter-ed-strip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
body.home .cpeter-ed-strip-grid figure{display:block;aspect-ratio:3/4;overflow:hidden}
body.home .cpeter-ed-strip-grid img{display:block;width:100%;height:100%;object-fit:cover;opacity:1;visibility:visible}
@media(max-width:650px){body.home .cpeter-ed-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.35: photo strips remain visible; gentle scroll-relative image movement */
body.home .cpeter-ed-strip{overflow:hidden;background:#111}
body.home .cpeter-ed-strip-grid figure{position:relative;overflow:hidden}
body.home .cpeter-ed-strip-grid img{height:112%;width:100%;max-width:none;object-fit:cover;position:absolute;left:0;top:-6%;transform:translate3d(0,var(--cpeter-photo-shift,0px),0);will-change:transform}
@media(prefers-reduced-motion:reduce){body.home .cpeter-ed-strip-grid img{transform:none!important;will-change:auto}}

/* v0.35b: larger image overscan gives scroll movement enough room to be visible. */
body.home .cpeter-ed-strip-grid img{height:130%;top:-15%;transform:translate3d(0,var(--cpeter-photo-shift,0px),0);transition:none!important}

/* v0.35c: portrait at 60% of prior dimensions, four columns, editorial category links. */
body.home .cpeter-ed-portrait{display:flex;align-items:center;justify-content:center}
body.home .cpeter-ed-portrait img{width:60%;max-height:408px;height:auto;object-fit:contain}
body.home .cpeter-ed-strip-grid,body.home .cpeter-ed-strip-grid.cpeter-ed-cols-1,body.home .cpeter-ed-strip-grid.cpeter-ed-cols-2{grid-template-columns:repeat(4,minmax(0,1fr))}
body.home .cpeter-ed-strip-grid figure{aspect-ratio:3/4}
body.home .cpeter-ed-keywords{display:flex;flex-wrap:wrap;align-items:center;gap:8px 0;line-height:1.8}
body.home .cpeter-ed-keywords a{color:#171717;text-decoration:none;border:0;border-bottom:1px solid transparent;transition:border-color .2s}
body.home .cpeter-ed-keywords a:hover,body.home .cpeter-ed-keywords a:focus-visible{border-color:#171717}
body.home .cpeter-ed-keywords span{padding:0 10px}
body.home .cpeter-ed-keywords span:last-child{display:none}
body.home .cpeter-ed-imprint{background:#fff;color:#141414;padding:100px var(--cpeter-edge,30px) 115px}
body.home .cpeter-ed-imprint .cpeter-ed-inner{max-width:1480px;margin:auto}
body.home .cpeter-ed-imprint h2{font-size:clamp(55px,10vw,150px);letter-spacing:-.06em;margin:0 0 35px;line-height:1}
body.home .cpeter-ed-imprint a{font-size:12px;letter-spacing:.15em;border-bottom:1px solid #333;padding-bottom:7px}
@media(max-width:650px){body.home .cpeter-ed-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.home .cpeter-ed-portrait img{width:60%}}

/* v0.35d: keep scroll parallax visible and avoid competing reveal transforms. */
body.home .cpeter-ed-strip-grid img{transition:none!important;animation:none!important;transform:translate3d(0,var(--cpeter-photo-shift,0px),0)!important}

/* 0.35e: visible scroll parallax, enough overscan to avoid blank edges. */
body.home .cpeter-ed-strip-grid figure{overflow:hidden;isolation:isolate}
body.home .cpeter-ed-strip-grid img{height:160%!important;top:-30%!important;width:100%;object-fit:cover;transform:translate3d(0,var(--cpeter-photo-shift,0px),0)!important;transition:none!important}
@media(prefers-reduced-motion:reduce){body.home .cpeter-ed-strip-grid img{transform:none!important}}

/* v0.35f: one parallax layer per 8-image grid, no per-photo animation. */
body.home .cpeter-ed-strip{padding-top:var(--cpeter-strip-padding,0px);padding-bottom:var(--cpeter-strip-padding,0px);overflow:hidden}
body.home .cpeter-ed-strip-grid{will-change:transform;transition:none!important}
body.home .cpeter-ed-strip-grid figure img{position:static!important;top:auto!important;height:100%!important;width:100%!important;transform:none!important;transition:none!important;animation:none!important}
@media(prefers-reduced-motion:reduce){body.home .cpeter-ed-strip-grid{transform:none!important;will-change:auto}}

/* v0.35g: image strips are complete foreground layers. The preceding
   editorial panel sticks behind them; no padding/black parallax gutters. */
body.home .cpeter-ed-text{position:sticky;top:0;z-index:1;min-height:100svh;display:flex;align-items:center;overflow:visible}
body.home .cpeter-ed-text>.cpeter-ed-inner{width:100%}
body.home .cpeter-ed-strip{position:relative;z-index:3;padding:0!important;margin:0!important;background:#fff!important;overflow:visible!important;isolation:isolate}
body.home .cpeter-ed-strip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;transform:none!important;will-change:auto!important}
body.home .cpeter-ed-strip-grid figure{aspect-ratio:3/2!important;margin:0;overflow:hidden}
body.home .cpeter-ed-strip-grid figure img{position:static!important;width:100%!important;height:100%!important;object-fit:cover;transform:none!important;top:auto!important;animation:none!important}
@media(max-width:650px){body.home .cpeter-ed-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.home .cpeter-ed-text{min-height:100svh}}

/* v0.35h: continuous two-layer scrolling. Text never sticks or stops;
   its content travels at 55% of normal scroll speed while the complete
   2x4 photo grid passes above it at normal page speed. */
body.home .cpeter-ed-text{position:relative!important;top:auto!important;z-index:1;min-height:100svh;overflow:visible!important;display:flex;align-items:center;transform:none!important}
body.home .cpeter-ed-text>.cpeter-ed-inner{transform:translate3d(0,var(--cpeter-text-shift,0px),0);will-change:transform;transition:none!important}
body.home .cpeter-ed-strip{position:relative;z-index:4;margin-top:-12svh!important;padding:0!important;overflow:hidden!important;background:#fff!important}
body.home .cpeter-ed-strip-grid{transform:none!important}
@media(prefers-reduced-motion:reduce){body.home .cpeter-ed-text>.cpeter-ed-inner{transform:none!important;will-change:auto}body.home .cpeter-ed-strip{margin-top:0!important}}

/* v0.35i – clean, accessible legal page */
body.page .cpeter-legal{background:#fff;color:#1b1b1b;min-height:100vh;padding:145px max(25px,calc((100vw - 1020px)/2)) 110px;}
body.page .cpeter-legal h1{font-size:clamp(52px,9vw,112px);line-height:1;letter-spacing:-.065em;font-weight:500;margin:0 0 75px;}
body.page .cpeter-legal h2{font-size:17px;letter-spacing:.12em;text-transform:uppercase;margin:46px 0 14px;}
body.page .cpeter-legal p{font-size:16px;line-height:1.85;margin:0 0 18px;max-width:820px;}
body.page .cpeter-legal a{text-decoration:underline;text-underline-offset:3px;}
body.page .cpeter-legal .legal-muted{font-size:13px;color:#555;}
@media(max-width:650px){body.page .cpeter-legal{padding:115px 22px 70px;}body.page .cpeter-legal h1{margin-bottom:48px;}}

/* v0.35j: Imprint uses a dark logo on its white background.
   Keep the existing hamburger and navigation expanded on initial load. */
body.page:has(.cpeter-legal) .site-header .brand img,
body.page:has(.cpeter-legal) .site-header .brand .custom-logo{filter:brightness(0)!important;text-shadow:none!important}
body.page:has(.cpeter-legal) .site-header .brand{text-shadow:none!important}

/* v0.35l: balance the opening About panel and protect the closing copy
   from the foreground 8-photo block while retaining continuous parallax. */
body.home .cpeter-ed-about{
  min-height:88svh;
  padding-top:clamp(48px,6vw,105px);
  padding-bottom:clamp(170px,17vw,275px);
}
body.home .cpeter-ed-about .cpeter-ed-inner{padding-top:0}
body.home .cpeter-ed-about .cpeter-ed-keywords{margin-bottom:16px}
@media(max-width:700px){
 body.home .cpeter-ed-about{min-height:0;padding-top:75px;padding-bottom:175px}
}
/* White-background header contrast switches only when a white editorial
   or imprint panel is actually behind the logo. */
body.home .site-header .brand img{transition:filter .22s ease}
body.home.cpeter-logo-dark .site-header .brand img{filter:brightness(0)!important}
body.home.cpeter-logo-dark .site-header .brand{text-shadow:none!important}

/* v0.4: Stage introduction, matching the home NEWS card. */
body.tax-photo_category .hero{position:relative}
body.tax-photo_category .cpeter-stage-note{position:absolute;z-index:20;left:var(--cpeter-edge,30px);bottom:var(--cpeter-edge,30px);width:min(530px,31vw);max-width:calc(100vw - 2 * var(--cpeter-edge,30px));max-height:min(390px,44vh);box-sizing:border-box;background:rgba(15,15,15,.7);color:#fff;padding:18px 21px 16px;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);font-size:14px;line-height:1.65;letter-spacing:.01em;transition:opacity .28s ease,transform .28s ease}
body.tax-photo_category .cpeter-stage-note-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;letter-spacing:.22em;font-weight:500}
body.tax-photo_category .cpeter-stage-note-close{appearance:none;border:0;background:none;color:#fff;font-size:25px;font-weight:200;line-height:1;cursor:pointer;padding:0 2px;opacity:.8}
body.tax-photo_category .cpeter-stage-note-content p{margin:15px 0 0}
body.tax-photo_category .cpeter-stage-note.is-hidden{opacity:0;transform:translateY(10px);pointer-events:none;visibility:hidden}
body.tax-photo_category .cpeter-stage-note-reopen{position:absolute;z-index:20;left:var(--cpeter-edge,30px);bottom:var(--cpeter-edge,30px);background:rgba(15,15,15,.7);border:0;color:#fff;cursor:pointer;padding:12px 16px;font-size:11px;letter-spacing:.18em}
body.tax-photo_category .cpeter-stage-note-reopen[hidden]{display:none}
@media(max-width:900px){body.tax-photo_category .cpeter-stage-note{width:min(530px,48vw)}}
@media(max-width:650px){body.tax-photo_category .cpeter-stage-note{width:min(530px,calc(100vw - 30px));max-height:38vh;bottom:65px;padding:13px 16px}body.tax-photo_category .cpeter-stage-note-reopen{bottom:65px}}
@media(prefers-reduced-motion:reduce){body.tax-photo_category .cpeter-stage-note{transition:none}}

/* v0.4a: Stage introduction above the slideshow and readable at all widths. */
body.tax-photo_category .hero .cpeter-stage-note,body.tax-photo_category .hero .cpeter-stage-note-reopen{position:absolute!important;z-index:100!important;left:var(--cpeter-edge,30px)!important;bottom:var(--cpeter-edge,30px)!important;visibility:visible;opacity:1;}
body.tax-photo_category .hero .cpeter-stage-note{width:min(530px,calc(100vw - 60px));max-height:min(65vh,480px);overflow:auto;pointer-events:auto;}
body.tax-photo_category .hero .cpeter-stage-note.is-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none;}
body.tax-photo_category .hero .cpeter-stage-note-reopen[hidden]{display:none!important;}
body.tax-photo_category .cpeter-stage-note-list{line-height:1.75;margin-top:14px;}
@media(max-width:650px){body.tax-photo_category .hero .cpeter-stage-note,body.tax-photo_category .hero .cpeter-stage-note-reopen{bottom:65px!important;left:15px!important;}body.tax-photo_category .hero .cpeter-stage-note{max-height:55vh;width:calc(100vw - 30px);}}

/* v0.4b — Stage layout adjustments. Keep hero controls and Stage box aligned. */
body.tax-photo_category.term-stage .hero .cpeter-stage-note,
body.tax-photo_category.term-stage .hero .cpeter-stage-note-reopen{bottom:100px!important}
body.tax-photo_category.term-stage .hero-controls{bottom:100px}
/* Wide landscape caption, positioned away from the controls and Stage note. */
body.tax-photo_category.term-stage .hero-caption{left:auto;right:var(--cpeter-edge,30px);bottom:175px;width:min(410px,44vw);max-width:44vw;min-height:0;text-align:right;padding:9px 14px;background:rgba(16,16,16,.56);font-size:12px;letter-spacing:.09em;line-height:1.5;z-index:8}
body.tax-photo_category.term-stage .hero-caption:empty{display:none}
/* Stage albums: a single translucent panel, 5 visible rows, gentle automatic scroll. */
body.tax-photo_category.term-stage .category-projects{min-height:680px;padding:85px max(24px,calc((100% - 1060px)/2));background:#171717}
body.tax-photo_category.term-stage .cpeter-album-panel{background:rgba(60,60,60,.48);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);padding:25px 28px 19px;color:#fff}
body.tax-photo_category.term-stage .cpeter-album-panel-heading{font-size:12px;letter-spacing:.22em;padding-bottom:18px;border-bottom:1px solid #ffffff45}
body.tax-photo_category.term-stage .cpeter-album-window{height:430px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#ffffff70 transparent;overscroll-behavior:contain}
body.tax-photo_category.term-stage .cpeter-album-track{display:flex;flex-direction:column}
body.tax-photo_category.term-stage .cpeter-album-row{display:flex;align-items:center;gap:22px;min-height:86px;padding:8px 5px;border-bottom:1px solid #ffffff28;font-size:14px;letter-spacing:.11em;text-transform:uppercase;transition:background .2s}
body.tax-photo_category.term-stage .cpeter-album-row:hover,body.tax-photo_category.term-stage .cpeter-album-row:focus-visible{background:#ffffff20}
body.tax-photo_category.term-stage .cpeter-album-row img{width:112px;height:68px;flex:0 0 112px;object-fit:cover}
body.tax-photo_category.term-stage .cpeter-album-row>span:nth-last-child(2){flex:1;min-width:0}
body.tax-photo_category.term-stage .cpeter-album-arrow{font-size:19px;opacity:.8}
body.tax-photo_category.term-stage .cpeter-album-hint{font-size:10px;letter-spacing:.15em;color:#ffffffa8;margin-top:18px}
@media(max-width:650px){body.tax-photo_category.term-stage .hero .cpeter-stage-note,body.tax-photo_category.term-stage .hero .cpeter-stage-note-reopen{bottom:100px!important}body.tax-photo_category.term-stage .hero-controls{bottom:100px}body.tax-photo_category.term-stage .hero-caption{right:15px;bottom:165px;max-width:55vw;width:55vw;font-size:11px}body.tax-photo_category.term-stage .category-projects{padding:45px 15px;min-height:0}body.tax-photo_category.term-stage .cpeter-album-panel{padding:17px 14px}body.tax-photo_category.term-stage .cpeter-album-row{gap:12px;font-size:12px}body.tax-photo_category.term-stage .cpeter-album-row img{width:85px;height:58px;flex-basis:85px}}

/* v0.4c: Stage album list is permanently visible over the hero image.
   Keep the existing gentle automatic scrolling, without auto-collapsing the panel. */
body.tax-photo_category.term-stage .hero .cpeter-album-overlay{
 position:absolute;z-index:12;right:var(--cpeter-edge,30px);top:46%;
 transform:translateY(-35%);width:min(690px,48vw);max-height:min(58vh,540px);
 background:rgba(20,20,20,.43);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
 padding:18px 23px 15px;pointer-events:auto;
}
body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-window{
 height:min(38vh,420px);max-height:420px;overflow-y:auto;
}
body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-row{min-height:78px}
body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-row img{width:96px;height:60px;flex-basis:96px}
body.tax-photo_category.term-stage .category-projects:empty{display:none}
@media(max-width:850px){body.tax-photo_category.term-stage .hero .cpeter-album-overlay{right:15px;top:39%;width:min(530px,65vw);max-height:47vh;padding:12px 15px}body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-window{height:29vh}body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-row{min-height:65px}body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-row img{width:72px;height:45px;flex-basis:72px}}
@media(max-width:650px){body.tax-photo_category.term-stage .hero .cpeter-album-overlay{top:33%;left:15px;right:15px;transform:none;width:auto;max-height:36vh;padding:10px 12px}body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-window{height:23vh}body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-panel-heading{padding-bottom:8px}body.tax-photo_category.term-stage .hero .cpeter-album-overlay .cpeter-album-hint{margin-top:7px;font-size:9px}}

/* 0.4d: Make the Stage album overlay reliably visible above the slideshow. */
body.tax-photo_category .cpeter-category-page .hero > .cpeter-album-overlay{
 display:block!important;position:absolute!important;z-index:110!important;
 top:50%!important;right:4.2%!important;left:auto!important;
 transform:translateY(-50%)!important;width:min(690px,48vw)!important;
 max-height:65vh!important;overflow:hidden!important;opacity:1!important;
 visibility:visible!important;pointer-events:auto!important;
 background:rgba(20,20,20,.55)!important;color:white!important;
}
body.tax-photo_category .cpeter-category-page .hero > .cpeter-album-overlay .cpeter-album-window{height:min(40vh,420px)!important;overflow-y:auto!important}
body.tax-photo_category .cpeter-album-empty{padding:22px 0;color:#fff;font-size:14px;line-height:1.5}
@media(max-width:650px){body.tax-photo_category .cpeter-category-page .hero > .cpeter-album-overlay{left:15px!important;right:15px!important;top:45%!important;transform:translateY(-50%)!important;width:auto!important;max-height:45vh!important}body.tax-photo_category .cpeter-category-page .hero > .cpeter-album-overlay .cpeter-album-window{height:25vh!important}}

/* v0.4e – STAGE overlay keyed to the actual PHP Stage detection, not the
   taxonomy slug (which may be different from "stage"). This is a single
   explicit layout for the screenshot, superseding earlier experimental rules. */
body.tax-photo_category .cpeter-portfolio-hero{isolation:isolate;position:relative}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay{
 display:block!important;box-sizing:border-box!important;
 position:absolute!important;z-index:120!important;
 top:50%!important;right:3.5%!important;left:auto!important;bottom:auto!important;
 transform:translateY(-38%)!important;
 width:min(740px,48vw)!important;max-width:48vw!important;
 height:auto!important;max-height:58vh!important;
 padding:18px 23px 15px!important;margin:0!important;
 background:rgba(19,23,29,.58)!important;color:#fff!important;
 border:1px solid rgba(255,255,255,.16)!important;
 -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
 opacity:1!important;visibility:visible!important;pointer-events:auto!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-panel-heading{
 display:block;color:#fff;font-size:12px;letter-spacing:.2em;
 padding:0 0 12px;border-bottom:1px solid rgba(255,255,255,.3)
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-window{
 display:block!important;height:min(39vh,420px)!important;min-height:160px!important;
 overflow-y:auto!important;overflow-x:hidden!important;
 scrollbar-width:thin;scrollbar-color:#aaa6 transparent;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-track{display:flex!important;flex-direction:column!important}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-row{
 display:flex!important;align-items:center;gap:16px;min-height:75px;
 padding:7px 4px;border-bottom:1px solid rgba(255,255,255,.18);
 color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-row img{
 display:block;width:92px;height:58px;flex:0 0 92px;object-fit:cover
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-hint{
 margin-top:10px;font-size:9px;letter-spacing:.13em;color:#ddd
}
/* The red-marked controls and Stage note share one bottom baseline. */
body.tax-photo_category .cpeter-portfolio-hero > .hero-controls{
 bottom:70px!important;right:3.5%!important;left:auto!important;top:auto!important;z-index:130!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note,
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note-reopen{
 bottom:70px!important;left:3.5%!important;z-index:130!important;
}
/* Landscape caption: blue-marked bottom-left position, above the note. */
body.tax-photo_category .cpeter-portfolio-hero > .hero-caption{
 display:block;position:absolute!important;z-index:125!important;
 left:3.5%!important;right:auto!important;bottom:135px!important;
 width:min(590px,48vw)!important;max-width:48vw!important;
 padding:8px 12px!important;background:rgba(16,16,16,.46)!important;
 text-align:left!important;white-space:normal;overflow-wrap:anywhere;
 font-size:12px;line-height:1.45;
}
body.tax-photo_category .cpeter-portfolio-hero > .hero-caption:empty{display:none!important}
@media(max-width:850px){
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay{
  top:42%!important;transform:translateY(-35%)!important;
  width:min(510px,55vw)!important;max-width:55vw!important;padding:12px!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-window{height:29vh!important}
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-row{min-height:62px}
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-row img{width:65px;height:43px;flex-basis:65px}
}
@media(max-width:650px){
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay{
  left:15px!important;right:15px!important;top:38%!important;
  transform:translateY(-25%)!important;width:auto!important;max-width:none!important;
  max-height:38vh!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-window{height:23vh!important;min-height:100px!important}
 body.tax-photo_category .cpeter-portfolio-hero > .hero-controls{right:15px!important;bottom:62px!important}
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note,
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note-reopen{left:15px!important;bottom:62px!important}
 body.tax-photo_category .cpeter-portfolio-hero > .hero-caption{
  left:15px!important;right:auto!important;bottom:122px!important;
  width:calc(100vw - 30px)!important;max-width:calc(100vw - 30px)!important;
 }
}

/* v0.4f — STAGE: screenshot-aligned, symmetric edge spacing. */
body.tax-photo_category .cpeter-portfolio-hero{--stage-edge:30px}
body.tax-photo_category .cpeter-portfolio-hero > .hero-controls{
 right:var(--stage-edge)!important;bottom:var(--stage-edge)!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note,
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note-reopen{
 left:var(--stage-edge)!important;bottom:var(--stage-edge)!important;
}
/* Single-line landscape caption, left-aligned with the lower Stage control. */
body.tax-photo_category .cpeter-portfolio-hero > .hero-caption{
 left:var(--stage-edge)!important;right:auto!important;
 bottom:calc(var(--stage-edge) + 60px)!important;
 width:min(590px,calc(100% - 2 * var(--stage-edge)))!important;
 max-width:calc(100% - 2 * var(--stage-edge))!important;
 box-sizing:border-box!important;min-height:0!important;
 padding:9px 14px!important;text-align:left!important;
 white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
/* Purple outline: lower and shallower album panel, fixed together as one box. */
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay{
 top:auto!important;left:auto!important;
 right:calc(var(--stage-edge) + 25px)!important;
 bottom:calc(var(--stage-edge) + 105px)!important;
 transform:none!important;
 width:min(710px,44vw)!important;max-width:44vw!important;
 height:290px!important;max-height:290px!important;
 padding:12px 18px 10px!important;
 overflow:hidden!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-window{
 height:220px!important;min-height:0!important;max-height:220px!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-row{
 min-height:58px!important;height:58px!important;padding:4px 3px!important;box-sizing:border-box!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-row img{
 width:72px!important;height:47px!important;flex-basis:72px!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-panel-heading{padding-bottom:7px!important}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-hint{margin-top:7px!important}
@media(max-width:850px){
 body.tax-photo_category .cpeter-portfolio-hero{--stage-edge:15px}
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay{
  right:15px!important;bottom:125px!important;width:min(480px,55vw)!important;max-width:55vw!important;
  height:255px!important;max-height:255px!important;padding:10px 12px!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-window{height:188px!important;max-height:188px!important}
}
@media(max-width:650px){
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay{
  left:15px!important;right:15px!important;top:auto!important;bottom:160px!important;
  transform:none!important;width:auto!important;max-width:none!important;
  height:205px!important;max-height:205px!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-overlay .cpeter-album-window{height:140px!important;max-height:140px!important}
 body.tax-photo_category .cpeter-portfolio-hero > .hero-caption{bottom:calc(var(--stage-edge) + 65px)!important}
}

/* v0.4g — Only lift STAGE info box and slideshow controls by 12px. */
body.tax-photo_category .cpeter-portfolio-hero > .hero-controls{bottom:calc(var(--stage-edge,30px) + 12px)!important;}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note,
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note-reopen{bottom:calc(var(--stage-edge,30px) + 12px)!important;}

/* v0.4h — Raise STAGE note and arrows another 12px (24px total from 0.4f). */
body.tax-photo_category .cpeter-portfolio-hero > .hero-controls{
 bottom:calc(var(--stage-edge,30px) + 24px)!important;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note,
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-stage-note-reopen{
 bottom:calc(var(--stage-edge,30px) + 24px)!important;
}
/* Caption rotated 90 degrees counterclockwise, at the same left inset as NEWS. */
body.tax-photo_category .cpeter-portfolio-hero > .hero-caption{
 position:absolute!important;
 left:var(--stage-edge,30px)!important;
 right:auto!important;
 top:50%!important;
 bottom:auto!important;
 transform:translateY(-50%) rotate(180deg)!important;
 writing-mode:vertical-rl!important;
 width:auto!important;
 max-width:42px!important;
 height:auto!important;
 max-height:min(65vh,560px)!important;
 min-height:0!important;
 box-sizing:border-box!important;
 padding:12px 9px!important;
 white-space:nowrap!important;
 overflow:hidden!important;
 text-overflow:ellipsis!important;
 line-height:1.4!important;
}
@media(max-width:650px){
 body.tax-photo_category .cpeter-portfolio-hero > .hero-caption{
  max-height:45vh!important;max-width:36px!important;
  padding:8px 6px!important;
 }
}

/* v0.4i – Album detail: compact, edge-to-edge four-column photo mosaic. */
body.single-photo_project .cpeter-album-page{max-width:none;width:100%;padding:125px 0 0}
body.single-photo_project .cpeter-album-heading{display:flex;align-items:baseline;justify-content:center;gap:30px;flex-wrap:wrap;padding:0 30px;margin:0 auto 38px;text-align:center}
body.single-photo_project .cpeter-album-heading h1{font-size:clamp(19px,2vw,29px);line-height:1.4;margin:0;font-weight:400;letter-spacing:.15em}
body.single-photo_project .cpeter-album-subtitle{font-size:clamp(13px,1.1vw,16px);line-height:1.5;margin:0;color:#eee}
body.single-photo_project .cpeter-album-description{margin:0 auto 25px;text-align:center;padding:0 24px}
body.single-photo_project .cpeter-gallery{display:block;columns:4;column-gap:0;width:100%;margin:0}
body.single-photo_project .cpeter-gallery figure{display:block;margin:0;break-inside:avoid;page-break-inside:avoid;line-height:0;overflow:hidden}
body.single-photo_project .cpeter-gallery img{display:block;width:100%;height:auto;max-width:none;border:0;margin:0;object-fit:cover}
@media(max-width:900px){body.single-photo_project .cpeter-gallery{columns:3}}
@media(max-width:600px){body.single-photo_project .cpeter-gallery{columns:2}body.single-photo_project .cpeter-album-heading{gap:8px 22px;padding:0 16px;margin-bottom:25px}body.single-photo_project .cpeter-album-page{padding-top:105px}}

/* v0.4j – Full-bleed album photographs begin at the very top of the viewport.
   The title and short description remain legible above the photo wall. */
body.single-photo_project .cpeter-album-page{
  position:relative;
  padding-top:0!important;
  margin-top:0!important;
  max-width:none!important;
  width:100%!important;
}
body.single-photo_project .cpeter-gallery{
  margin:0!important;
  padding:0!important;
  width:100%!important;
}
body.single-photo_project .cpeter-album-heading{
  position:absolute;
  z-index:12;
  top:96px;
  left:50%;
  transform:translateX(-50%);
  width:min(94%,1200px);
  padding:12px 22px;
  margin:0!important;
  background:rgba(0,0,0,.42);
  align-items:center;
  gap:12px 28px;
  pointer-events:none;
}
body.single-photo_project .cpeter-album-heading h1,
body.single-photo_project .cpeter-album-heading .cpeter-album-subtitle{
  color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.65);
}
body.single-photo_project .cpeter-album-description{display:none!important}
@media(max-width:600px){
 body.single-photo_project .cpeter-album-page{padding-top:0!important}
 body.single-photo_project .cpeter-album-heading{top:85px;padding:10px 14px;gap:6px 16px}
}

/* v0.4k: fixed album heading aligned with top menu, and photo lightbox. */
body.single-photo_project .cpeter-album-heading{
 position:fixed!important;top:var(--cpeter-header-top)!important;
 left:50%!important;transform:translateX(-50%)!important;
 width:max-content!important;max-width:calc(100vw - 400px)!important;
 min-height:56px;display:flex;align-items:center;justify-content:center;
 padding:9px 16px!important;z-index:1003!important;
 background:rgba(34,34,34,.84)!important;pointer-events:none;
}
body.admin-bar.single-photo_project .cpeter-album-heading{top:calc(var(--cpeter-header-top) + 32px)!important}
body.single-photo_project .cpeter-album-heading h1{font-size:clamp(13px,1.25vw,20px);letter-spacing:.1em}
body.single-photo_project .cpeter-album-subtitle{font-size:clamp(11px,1vw,14px)}
body.single-photo_project .cpeter-gallery a{display:block;line-height:0;cursor:zoom-in}
.cpeter-photo-lightbox{position:fixed;inset:0;margin:0;padding:0;width:100vw;max-width:none;height:100vh;max-height:none;border:0;background:rgba(0,0,0,.96);color:#fff;overflow:hidden}
.cpeter-photo-lightbox[open]{display:flex;align-items:center;justify-content:center}
.cpeter-photo-lightbox::backdrop{background:rgba(0,0,0,.96)}
.cpeter-photo-lightbox img{display:block;max-width:calc(100vw - 120px);max-height:calc(100vh - 45px);width:auto;height:auto;object-fit:contain}
.cpeter-photo-lightbox button{position:absolute;z-index:2;background:rgba(30,30,30,.75);border:0;color:#fff;cursor:pointer;min-width:44px;min-height:44px;font-size:28px}
.cpeter-lightbox-close{top:20px;right:24px}.cpeter-lightbox-prev{left:15px;top:50%;transform:translateY(-50%)}.cpeter-lightbox-next{right:15px;top:50%;transform:translateY(-50%)}
@media(max-width:900px){body.single-photo_project .cpeter-album-heading{max-width:calc(100vw - 220px)!important;flex-wrap:wrap;gap:2px 12px}}
@media(max-width:782px){body.admin-bar.single-photo_project .cpeter-album-heading{top:calc(var(--cpeter-header-top) + 46px)!important}}
@media(max-width:650px){body.single-photo_project .cpeter-album-heading{top:var(--cpeter-header-top)!important;max-width:calc(100vw - 190px)!important;min-height:50px;padding:5px 8px!important}body.single-photo_project .cpeter-album-heading h1{font-size:11px}body.single-photo_project .cpeter-album-subtitle{font-size:10px}.cpeter-photo-lightbox img{max-width:calc(100vw - 65px);max-height:calc(100vh - 100px)}.cpeter-lightbox-prev{left:0}.cpeter-lightbox-next{right:0}}

/* v0.4l: Stage album cover slideshow in the green-marked lower-right area. */
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{
 left:auto!important;top:auto!important;right:var(--stage-edge,30px)!important;
 bottom:calc(var(--stage-edge,30px) + 90px)!important;
 width:min(610px,35vw)!important;max-width:calc(100vw - 60px)!important;
 height:clamp(190px,31vh,310px)!important;max-height:none!important;
 padding:0!important;overflow:hidden!important;
 background:rgba(10,10,10,.48)!important;z-index:30!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-track{position:relative!important;width:100%!important;height:100%!important;overflow:hidden!important}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 display:block!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;
 transition:opacity 1.25s ease,visibility 1.25s!important;color:#fff!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide.is-active{opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:2!important}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide img{
 display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;
 max-width:none!important;max-height:none!important;position:absolute!important;inset:0!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-title{
 position:absolute!important;left:0!important;right:0!important;bottom:0!important;z-index:3!important;
 padding:25px 18px 14px!important;background:linear-gradient(transparent,rgba(0,0,0,.83))!important;
 font-size:13px!important;letter-spacing:.12em!important;text-transform:uppercase!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-progress{display:none!important}
@media(max-width:850px){body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{width:min(480px,47vw)!important;height:clamp(175px,28vh,260px)!important}}
@media(max-width:650px){body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{right:15px!important;left:auto!important;bottom:145px!important;width:min(320px,65vw)!important;max-width:calc(100vw - 30px)!important;height:190px!important}}
@media(prefers-reduced-motion:reduce){body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide{transition:none!important}}

/* v0.4m: Stage album selector aligned with slideshow controls; four visible previews. */
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{
 right:var(--stage-edge,30px)!important;left:auto!important;top:auto!important;
 bottom:calc(var(--stage-edge,30px) + 24px + 54px + 10px)!important;
 width:min(480px,40vw)!important;height:290px!important;
 max-height:calc(100vh - 235px)!important;min-height:175px!important;
 background:rgba(10,10,10,.55)!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-track{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:3px!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide,
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide.is-active{
 position:relative!important;inset:auto!important;width:100%!important;height:100%!important;
 display:none!important;opacity:1!important;visibility:visible!important;
 pointer-events:auto!important;transition:none!important;overflow:hidden!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide.is-visible{display:block!important}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide img{position:absolute!important;inset:0!important;object-fit:cover!important}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-title{
 padding:20px 9px 7px!important;font-size:10px!important;line-height:1.3!important;
 letter-spacing:.05em!important;
}
@media(max-width:650px){body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{
 right:15px!important;bottom:calc(15px + 24px + 54px + 10px)!important;
 width:min(360px,70vw)!important;height:230px!important;min-height:150px!important;
}}

/* v0.4n — Stage album panel: anchor its right edge to the slideshow controls,
   and place it directly above them. No centering/translate from older rules. */
body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel {
 position:absolute!important;
 top:auto!important;
 left:auto!important;
 right:var(--stage-edge,30px)!important;
 bottom:calc(var(--stage-edge,30px) + 24px + 54px + 10px)!important;
 transform:none!important;
 margin:0!important;
 width:min(480px,40vw)!important;
 max-width:calc(100% - 2 * var(--stage-edge,30px))!important;
}
@media(max-width:650px){
 body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel {
  left:auto!important;right:15px!important;top:auto!important;
  bottom:calc(15px + 24px + 54px + 10px)!important;
  transform:none!important;width:min(360px,70vw)!important;
 }
}


/* v0.4o — Stage: one horizontal row of four square album previews.
   Panel height is 75% of v0.4n's 290px. Right/bottom alignment is unchanged. */
body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel{
 box-sizing:border-box!important;
 height:217.5px!important;min-height:0!important;
 max-height:217.5px!important;
 width:min(870px,calc(100% - 2 * var(--stage-edge,30px)))!important;
 padding:0!important;
 overflow:hidden!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-track{
 display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
 grid-template-rows:minmax(0,1fr)!important;
 gap:2px!important;height:100%!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide{
 aspect-ratio:1/1!important;min-width:0!important;min-height:0!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide img{
 width:100%!important;height:100%!important;object-fit:cover!important;
}
@media(max-width:900px){
 body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel{
  width:calc(100% - 2 * var(--stage-edge,30px))!important;
  height:auto!important;max-height:none!important;aspect-ratio:4/1!important;
 }
}
@media(max-width:650px){
 body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel{
  right:15px!important;width:calc(100% - 30px)!important;
  height:auto!important;max-height:none!important;aspect-ratio:4/1!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-title{font-size:8px!important;padding:12px 3px 4px!important}
}

/* v0.4p — 75% of v0.4o; four square covers, continuously moving as one strip. */
body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel{
 height:163px!important;max-height:163px!important;min-height:0!important;
 width:min(652px,calc(100% - 2 * var(--stage-edge,30px)))!important;
 aspect-ratio:auto!important;padding:0!important;overflow:hidden!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-track{
 display:flex!important;flex-wrap:nowrap!important;gap:0!important;
 width:max-content!important;min-width:100%!important;height:100%!important;
 grid-template-columns:none!important;grid-template-rows:none!important;
 will-change:transform;transition:none!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide,
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide.is-visible{
 position:relative!important;display:block!important;visibility:visible!important;
 opacity:1!important;pointer-events:auto!important;
 flex:0 0 163px!important;width:163px!important;height:163px!important;
 aspect-ratio:1!important;transform:none!important;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide img{width:100%!important;height:100%!important;object-fit:cover!important}
@media(max-width:900px){
 body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel{
  width:calc(100% - 2 * var(--stage-edge,30px))!important;height:auto!important;max-height:none!important;aspect-ratio:4/1!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide,
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide.is-visible{
  flex-basis:calc((100vw - 2 * var(--stage-edge,30px)) / 4)!important;
  width:calc((100vw - 2 * var(--stage-edge,30px)) / 4)!important;
  height:auto!important;aspect-ratio:1!important;
 }
}
@media(max-width:650px){
 body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > .cpeter-album-panel.cpeter-album-overlay.cpeter-album-carousel{
  width:calc(100% - 30px)!important;aspect-ratio:4/1!important;
 }
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide,
 body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-carousel-slide.is-visible{
  flex-basis:calc((100vw - 30px) / 4)!important;width:calc((100vw - 30px) / 4)!important;
 }
}

/* v0.4q — STAGE album hide/reopen controls. Keep panel geometry from 0.4p. */
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{transition:opacity .24s ease,visibility .24s ease!important}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel.is-collapsed{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-hide{
 position:absolute;right:6px;top:6px;z-index:30;width:25px;height:25px;
 display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:2px;
 color:#fff;background:rgba(0,0,0,.48);font-size:17px;font-weight:300;line-height:1;
 cursor:pointer;opacity:.75;transition:opacity .2s,background .2s;
}
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-hide:hover,
body.tax-photo_category .cpeter-portfolio-hero .cpeter-album-hide:focus-visible{opacity:1;background:rgba(0,0,0,.8)}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-reopen{
 position:absolute;z-index:25;right:var(--stage-edge,30px);bottom:calc(var(--stage-edge,30px) + 105px);
 background:rgba(15,15,15,.7);border:0;color:#fff;padding:9px 12px;
 font-size:10px;letter-spacing:.16em;cursor:pointer;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-reopen[hidden]{display:none!important}
/* Homepage: same bottom inset and NEWS box proportions as the STAGE introduction. */
body.home .hero > .hero-controls{bottom:calc(var(--cpeter-edge,30px) + 24px)!important}
body.home .hero > .cpeter-news,
body.home .hero > .cpeter-news-reopen{bottom:calc(var(--cpeter-edge,30px) + 24px)!important}
body.home .hero > .cpeter-news{
 width:min(530px,31vw)!important;
 max-width:calc(100vw - 2 * var(--cpeter-edge,30px))!important;
 max-height:min(65vh,480px)!important;
 padding:18px 21px 16px!important;
}
@media(max-width:900px){body.home .hero > .cpeter-news{width:min(530px,48vw)!important}}
@media(max-width:650px){
 body.home .hero > .cpeter-news{width:calc(100vw - 30px)!important;max-height:55vh!important;padding:13px 16px!important}
 body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-reopen{right:15px}
}
@media(prefers-reduced-motion:reduce){body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel{transition:none!important}}

/* v0.4r: fullscreen action matches the existing slideshow control bar. */
body.home .hero-controls .cpeter-fullscreen-toggle,body.tax-photo_category .hero-controls .cpeter-fullscreen-toggle{width:56px;height:56px;padding:0;display:flex;align-items:center;justify-content:center;border-right:0;cursor:pointer;color:#fff;background:transparent;pointer-events:auto}
body.home .hero-controls .hero-arrow.next,body.tax-photo_category .hero-controls .hero-arrow.next{border-right:1px solid rgba(255,255,255,.2)}
body.home .hero-controls .cpeter-fullscreen-toggle:hover,body.tax-photo_category .hero-controls .cpeter-fullscreen-toggle:hover{background:rgba(255,255,255,.16)}
.hero:fullscreen{width:100vw;height:100vh;min-height:0;background:#111}
.hero:fullscreen .hero-slide{inset:0}
.cpeter-photo-lightbox .cpeter-lightbox-fullscreen{right:68px;top:15px;display:flex;align-items:center;justify-content:center}
.cpeter-photo-lightbox:fullscreen{width:100vw;height:100vh;max-width:none;max-height:none;background:#000}
.cpeter-photo-lightbox:fullscreen img{max-height:95vh;max-width:calc(100vw - 120px)}
@media(max-width:650px){body.home .hero-controls .cpeter-fullscreen-toggle,body.tax-photo_category .hero-controls .cpeter-fullscreen-toggle{width:44px;height:44px}.cpeter-photo-lightbox .cpeter-lightbox-fullscreen{right:58px;top:10px}}

/* v0.4s: fullscreen retains header; lightbox toolbar buttons have equal hit areas. */
html:fullscreen .site-header{z-index:100000!important;visibility:visible!important}
html:fullscreen .site-header .menu-toggle{pointer-events:auto}
html:fullscreen .hero{height:100vh;min-height:100vh}
.cpeter-photo-lightbox .cpeter-lightbox-fullscreen,
.cpeter-photo-lightbox .cpeter-lightbox-close,
.cpeter-photo-lightbox .cpeter-lightbox-menu{position:absolute;top:20px;width:52px;height:52px;min-width:52px;min-height:52px;padding:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:rgba(30,30,30,.75);font-size:28px;line-height:1}
.cpeter-photo-lightbox .cpeter-lightbox-close{right:24px}
.cpeter-photo-lightbox .cpeter-lightbox-fullscreen{right:80px}
.cpeter-photo-lightbox .cpeter-lightbox-menu{right:136px;font-size:23px}
.cpeter-photo-lightbox .cpeter-lightbox-fullscreen svg{width:25px;height:25px}
@media(max-width:650px){.cpeter-photo-lightbox .cpeter-lightbox-fullscreen,.cpeter-photo-lightbox .cpeter-lightbox-close,.cpeter-photo-lightbox .cpeter-lightbox-menu{top:10px;width:44px;height:44px;min-width:44px;min-height:44px}.cpeter-photo-lightbox .cpeter-lightbox-close{right:10px}.cpeter-photo-lightbox .cpeter-lightbox-fullscreen{right:58px}.cpeter-photo-lightbox .cpeter-lightbox-menu{right:106px}}

/* v0.4t: hide project names when the expanded navigation is covering the page. */
body.cpeter-navigation-open .cpeter-album-heading,
body.cpeter-navigation-open .cpeter-album-carousel-title,
body.cpeter-navigation-open .project-card span,
body.cpeter-navigation-open .hero-caption{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* Keep category and album viewing controls visible above image overlays. */
body.tax-photo_category .hero > .hero-controls{z-index:150!important;visibility:visible!important;opacity:1!important}
body.single-photo_project .cpeter-album-view-controls{position:fixed;right:var(--cpeter-edge,30px);bottom:calc(var(--cpeter-edge,30px) + 24px);z-index:160;display:flex;background:rgba(0,0,0,.58)}
body.single-photo_project .cpeter-album-view-controls button{width:56px;height:56px;border:0;border-right:1px solid #ffffff33;background:transparent;color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;cursor:pointer}
body.single-photo_project .cpeter-album-view-controls button:last-child{border-right:0}
body.single-photo_project .cpeter-album-view-controls button:hover{background:#ffffff29}
body.cpeter-navigation-open .cpeter-album-view-controls{visibility:hidden}
@media(max-width:650px){body.single-photo_project .cpeter-album-view-controls{right:15px;bottom:54px}body.single-photo_project .cpeter-album-view-controls button{width:44px;height:44px}}

/* v0.4u: the collapsed album opener must sit above all hero slides and links. */
body.tax-photo_category .cpeter-category-page .cpeter-portfolio-hero > button.cpeter-album-reopen:not([hidden]){
 position:absolute!important;z-index:1000!important;pointer-events:auto!important;
 display:block!important;isolation:isolate;touch-action:manipulation;
}
body.tax-photo_category .cpeter-portfolio-hero > .cpeter-album-carousel.is-collapsed{pointer-events:none!important}

/* v0.5: unified category landing experience for Stage, Travel, B&W, Projects, People and Art. */
body.tax-photo_category .cpeter-portfolio-hero > .see-more{display:none!important}
