/*
Theme Name: PXLPUNK
Theme URI: https://pxlpunk.de/
Author: PXLPUNK
Description: Dark editorial photography portfolio. Requires PXLPUNK Core for photographic features.
Version: 1.0.4
Requires PHP: 8.0
Text Domain: pxlpunk
*/
:root{--bg:#101112;--ink:#f2f1ed;--muted:#a0a0a0;--line:#333;--acid:#d1f426;--max:1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--acid);outline-offset:4px}img{max-width:100%;height:auto}.shell{max-width:var(--max);padding:0 clamp(20px,5vw,90px);margin:0 auto}.site-header{position:relative;z-index:20;background:#101112e8;border-bottom:1px solid var(--line)}.header-inner{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:950;letter-spacing:-.065em;font-size:clamp(28px,3.2vw,48px);line-height:1}.brand b,.acid{color:var(--acid)}.brand small{display:block;font-weight:500;font-size:9px;letter-spacing:.24em;margin-top:9px;text-transform:uppercase;color:var(--muted)}.menu{display:flex;gap:clamp(12px,3vw,38px);list-style:none;margin:0;padding:0}.menu a{font-size:12px;letter-spacing:.14em;font-weight:800;text-transform:uppercase}.menu a:hover{color:var(--acid)}.nav-toggle{display:none;color:var(--ink);background:none;border:1px solid var(--line);padding:8px 12px}.hero{min-height:min(78vh,850px);position:relative;overflow:hidden;background:radial-gradient(circle at 75% 40%,#303333,#151515);display:flex;align-items:center}.hero-bg{position:absolute;inset:0;background-position:center;background-size:cover;filter:grayscale(1);opacity:.8;transition:filter .6s,transform 1s}.hero:hover .hero-bg{filter:grayscale(0)}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101112df 0%,#10111266 50%,#1011121a 100%);pointer-events:none}.hero-content{width:100%;position:relative;z-index:2;padding-block:95px}.kicker{font-size:12px;font-weight:800;letter-spacing:.23em;text-transform:uppercase;color:var(--acid)}.hero h1{font-size:clamp(56px,11vw,168px);line-height:.88;letter-spacing:-.085em;font-weight:950;text-transform:uppercase;margin:27px 0}.hero p{max-width:460px;letter-spacing:.05em;color:#dfdfdf}.hero-link{display:inline-flex;margin-top:24px;border:1px solid #ffffff99;font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:14px 20px}.hero-link:hover{background:var(--acid);color:#111;border-color:var(--acid)}.section{padding:clamp(58px,8vw,110px) 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:36px}.section-heading h2,.page-title{font-size:clamp(42px,7vw,98px);letter-spacing:-.072em;line-height:1;font-weight:950;text-transform:uppercase;margin:10px 0}.section-heading small,.muted{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,30px)}.photo-card{min-width:0}.photo-card>a{display:block;overflow:hidden;background:#222;position:relative}.photo-card img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1);transition:filter .4s,transform .55s}.photo-card:nth-child(5n + 2) img{aspect-ratio:4/3}.photo-card>a:hover img{filter:grayscale(0);transform:scale(1.035)}.photo-card .index{position:absolute;top:14px;left:14px;background:#101112ad;color:var(--acid);font-size:11px;padding:5px 8px;font-weight:800}.photo-caption{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:17px 0 8px}.photo-caption h3{font-size:18px;text-transform:uppercase;line-height:1.2;letter-spacing:-.025em;margin:0}.photo-caption p{font-size:13px;color:var(--muted);margin:8px 0 0}.photo-actions{white-space:nowrap;display:flex;gap:7px}.pxp-vote{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:3px;padding:6px 8px;font-size:12px;white-space:nowrap}.pxp-vote:hover,.pxp-vote[aria-pressed="true"]{border-color:var(--acid);color:var(--acid)}.pxp-vote:disabled{opacity:.5}.photo-meta{color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.footer{border-top:1px solid var(--line);padding:35px 0;color:var(--muted)}.footer .shell{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer small{font-size:12px}.pagination{margin-top:45px;display:flex;gap:20px;justify-content:center}.pagination .page-numbers{padding:8px 12px;border:1px solid var(--line)}.pagination .current{color:var(--acid);border-color:var(--acid)}.single-photo{padding-top:45px}.single-photo .lead{max-width:780px}.single-photo .stage{background:#080808;padding:clamp(10px,3vw,40px);display:flex;justify-content:center}.single-photo .stage img{max-height:76vh;width:auto;display:block;object-fit:contain;cursor:zoom-in}.single-actions{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.single-actions .photo-actions{gap:12px}.serie-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.serie-card{border-top:2px solid var(--acid);padding-top:20px}.serie-card h2{text-transform:uppercase;font-size:28px;margin:0}.serie-card p{color:var(--muted)}.copy{max-width:820px;font-size:clamp(17px,2vw,23px);line-height:1.75}.copy a{color:var(--acid)}.empty{padding:50px 0;color:var(--muted)}.pxp-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(3,3,3,.97);display:none;align-items:center;justify-content:center;padding:55px 65px 100px}.pxp-lightbox[aria-hidden="false"]{display:flex}.pxp-lightbox img{display:block;max-height:calc(100vh - 175px);max-width:100%;width:auto;height:auto;object-fit:contain}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;color:white;background:#1119;border:1px solid #444;font-size:25px;min-width:43px;height:43px}.lightbox-close{top:18px;right:20px}.lightbox-prev{left:15px}.lightbox-next{right:15px}.lightbox-details{position:absolute;bottom:20px;left:clamp(20px,8vw,120px);right:clamp(20px,8vw,120px);display:flex;justify-content:space-between;align-items:center;gap:20px}.lightbox-details strong{text-transform:uppercase}.lightbox-details p{font-size:12px;color:#aaa;margin:3px 0}.visually-hidden{position:absolute!important;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap}.screen-reader-text{position:absolute!important;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}@media(max-width:880px){.photo-grid,.serie-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:65vh}.header-inner{min-height:76px}}@media(max-width:620px){.nav-toggle{display:block}.menu{position:absolute;display:none;top:100%;left:0;right:0;flex-direction:column;background:#171717;padding:20px 6vw;gap:20px;border-bottom:1px solid var(--line)}.menu.is-open{display:flex}.photo-grid,.serie-grid{grid-template-columns:1fr}.photo-card img{aspect-ratio:4/5!important}.hero{min-height:62vh}.hero-bg{filter:grayscale(1)!important}.section-heading{align-items:start;flex-direction:column}.pxp-lightbox{padding:50px 8px 125px}.pxp-lightbox img{max-height:calc(100vh - 220px)}.lightbox-prev,.lightbox-next{bottom:132px;top:auto}.lightbox-details{flex-direction:column;align-items:flex-start;bottom:18px}.single-actions{align-items:start;flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* v1.0.2 – editorial masonry: never crop portrait or landscape photos. */
.photo-grid{display:block;columns:3 290px;column-gap:clamp(14px,2vw,28px)}
.photo-card{display:inline-block;width:100%;break-inside:avoid;page-break-inside:avoid;vertical-align:top;margin:0 0 clamp(22px,3vw,46px)}
.photo-card>a{display:block;overflow:hidden;background:#222}
.photo-card img,.photo-card:nth-child(5n + 2) img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;filter:grayscale(1);transition:filter .4s ease,transform .55s ease}
.photo-caption{padding:13px 0 0}
.hero{min-height:clamp(520px,75vh,900px)}
.hero-bg{background-color:#262626;background-position:50% 45%;background-repeat:no-repeat;background-size:cover}
.hero-credit{position:absolute;bottom:24px;right:clamp(20px,5vw,90px);z-index:2;color:#fff;font-size:10px;letter-spacing:.17em;text-transform:uppercase;text-shadow:0 1px 9px #000}
@media(max-width:880px){.photo-grid{columns:2 260px}}
@media(max-width:620px){.photo-grid{columns:1}.photo-card img,.photo-card:nth-child(5n + 2) img{aspect-ratio:auto!important}.hero{min-height:62vh}.hero-credit{bottom:12px;font-size:9px;max-width:80%;text-align:right}}


/* 1.0.4 — justified photography rows: preserve natural aspect ratio and chronological DOM order. */
.hero .hero-bg,.hero:hover .hero-bg,.hero:focus-within .hero-bg{filter:grayscale(1)!important;transform:none!important}
.photo-grid{display:flex!important;flex-direction:column!important;gap:clamp(22px,3vw,44px)!important;columns:auto!important}
.pxp-photo-row{display:flex;align-items:flex-start;gap:clamp(12px,1.65vw,24px);width:100%;min-width:0}
.photo-grid .photo-card{display:block!important;flex:0 0 auto;min-width:0;width:100%;margin:0!important;grid-row-end:auto!important;break-inside:auto!important}
.photo-grid .photo-card>a{display:block;position:relative;overflow:hidden;background:#202020}
.photo-grid .photo-card img,.photo-grid .photo-card:nth-child(5n + 2) img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;filter:grayscale(1)}
.photo-grid .photo-card>a:hover img,.photo-grid .photo-card>a:focus-visible img{filter:grayscale(0)}
.photo-grid .photo-caption{padding:12px 0 2px;min-width:0}
@media(max-width:620px){.photo-grid{gap:30px!important}.pxp-photo-row{display:block}.photo-grid .photo-card{width:100%!important;margin-bottom:24px!important}.photo-grid .photo-card img{aspect-ratio:auto!important}}
