
/* Hùng Paris / V19 — Curated editorial albums inspired by photographic spreads.
   Source photos stay intact; blurred section backdrops derive from the SAME series. */
.editorial-gallery{display:block;min-width:0}
.gallery-chapter+.gallery-chapter{margin-top:clamp(72px,9vw,145px)}
.gallery-chapter-head{border-top:1px solid var(--border);padding-top:19px;margin-bottom:clamp(25px,4vw,55px);display:flex;align-items:end;justify-content:space-between;gap:16px}
.gallery-chapter-head>div{min-width:0}
.gallery-chapter-label{display:block;color:var(--red);font-size:10px;font-weight:900;letter-spacing:.13em;margin-bottom:16px}
.gallery-chapter-head h3{font-size:clamp(38px,6.1vw,90px);font-weight:900;letter-spacing:-.09em;line-height:1.06;margin:0 0 14px}
.gallery-chapter-head h3 em{font-style:normal;color:var(--red)}
.gallery-chapter-head p{font-size:13px;line-height:1.75;color:var(--muted);max-width:560px;margin:0}
.gallery-chapter-count{font-size:11px;white-space:nowrap;letter-spacing:.13em;font-weight:900;color:var(--red);padding-bottom:5px}
.editorial-album{margin:0 0 clamp(35px,5vw,72px);min-width:0}
.album-header{display:flex;justify-content:space-between;align-items:end;gap:22px;padding:0 0 17px}
.album-overline{font-size:9px;color:var(--red);letter-spacing:.15em;font-weight:900;display:block;margin-bottom:9px}
.album-intro h4{font-size:clamp(18px,2.1vw,31px);letter-spacing:-.06em;line-height:1.14;margin:0 0 8px;font-weight:900}
.album-intro p{margin:0;font-size:12px;color:var(--muted);line-height:1.6;max-width:620px}
.album-number{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--muted);white-space:nowrap}
.album-stage{isolation:isolate;position:relative;padding:clamp(30px,6vw,95px) clamp(20px,5vw,78px);overflow:hidden;background:#252c2d;display:grid;place-items:center}
.album-stage::before{content:"";position:absolute;inset:-16%;z-index:-2;background-image:var(--album-bg);background-position:center;background-size:cover;filter:blur(49px) brightness(.52) saturate(.75);transform:scale(1.07)}
.album-stage::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(145deg,#0f111324,#0a0a0e38 70%,#12101885)}
.album-frames{display:grid;gap:clamp(3px,.55vw,7px);width:100%;max-width:860px;min-width:0}
.album-shot{min-width:0;min-height:0;position:relative;display:block;overflow:hidden;background:#c8bfb4;padding:0;border:1px solid #f5ecdc9c;cursor:zoom-in;transition:filter .3s ease,box-shadow .3s ease;aspect-ratio:auto}
.album-shot img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center;transition:transform 650ms var(--ease)}
.album-shot:focus-visible{outline:3px solid #f6a990;outline-offset:2px;z-index:3}
.album-shot-zoom{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:29px;height:29px;border:1px solid #ffffff8a;color:white;background:#15151360;opacity:0;transform:translateY(5px);transition:opacity .23s,transform .23s}
.album-shot-zoom .hp-icon{font-size:17px}
.album-shot:hover img,.album-shot:focus-visible img{transform:scale(1.045)}
.album-shot:hover .album-shot-zoom,.album-shot:focus-visible .album-shot-zoom{opacity:1;transform:none}
.album-type{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0;min-height:0;color:#f8f1e7}
.album-type strong{font-family:"Inter Display",Inter,sans-serif;font-weight:800;letter-spacing:-.085em;font-size:clamp(19px,3vw,41px);line-height:1.1}
.album-type span{font-size:9px;letter-spacing:.2em;font-weight:700;line-height:1.5;margin-top:14px}
.album-foot{display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid var(--border);padding:15px 1px;color:var(--muted);font-weight:800;letter-spacing:.11em;font-size:9px}
.album--motion .album-stage{background:#1e4a50}
.album--motion .album-stage::after{background:linear-gradient(135deg,#11262972,#06151b88)}
.album--motion .album-frames{max-width:780px;aspect-ratio:1.07;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
.album--motion .album-type{background:#c9d6cf1c;border:1px solid #e8f7f15a;padding:10px}
.album--motion .album-type strong{font-size:clamp(19px,3.4vw,45px)}
.album--motion .album-type span{color:#e4f2ed}
.album--garden .album-stage{background:#c9d6d3}
.album--garden .album-stage::before{filter:blur(58px) brightness(1.22) saturate(.45)}
.album--garden .album-stage::after{background:linear-gradient(135deg,#e5eeebc2,#8daba185)}
.album--garden .album-frames{max-width:760px;aspect-ratio:1.55;grid-template-columns:1fr 1fr .66fr;grid-template-rows:1fr}
.album--garden .album-type{align-items:start;text-align:left;padding:clamp(8px,2vw,26px);color:#1f4a48}
.album--garden .album-type strong{font-size:clamp(18px,2.7vw,35px)}
.album--garden .album-type span{font-size:8px;letter-spacing:.09em}
.album--garden .album-shot{border-color:#eaf3ee}
.album--campus .album-stage{background:#603532}
.album--campus .album-stage::after{background:linear-gradient(0deg,#3b1e26c9,#713e405c)}
.album--campus .album-frames{max-width:790px;aspect-ratio:1.22;grid-template-columns:minmax(0,1fr) minmax(0,.38fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr))}
.album--campus .album-shot-1{grid-column:1;grid-row:1}
.album--campus .album-shot-2{grid-column:1;grid-row:2}
.album--campus .album-shot-3{grid-column:3;grid-row:1 / span 2}
.album--campus .album-type{grid-column:2;grid-row:1 / span 2;display:flex;justify-content:center;align-items:center}
.album--campus .album-type strong{writing-mode:vertical-rl;text-orientation:mixed;font-family:Georgia,serif;font-weight:400;letter-spacing:.1em;font-size:clamp(24px,3.8vw,58px);color:#fff0e6}
.album--campus .album-type span{writing-mode:vertical-rl;letter-spacing:.22em;color:#e9b2aa;margin:17px 0 0}
.album--milestone .album-stage{background:#4a2b22}
.album--milestone .album-stage::after{background:linear-gradient(90deg,#2e1c1688,#472e2240)}
.album--milestone .album-frames{max-width:760px;aspect-ratio:1.25;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr) auto}
.album--milestone .album-type{grid-column:1 / -1;padding:clamp(15px,2.5vw,35px);background:#cbb29c1c}
.album--milestone .album-type strong{font-family:Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(28px,5vw,70px);letter-spacing:-.045em}
.album--milestone .album-shot-1{grid-column:1;grid-row:1}
.album--milestone .album-shot-2{grid-column:2;grid-row:1}
.album--portrait .album-stage{background:#2a4045}
.album--portrait .album-stage::after{background:linear-gradient(90deg,#10242ac9,#10242a4d)}
.album--portrait .album-frames{max-width:760px;aspect-ratio:1.8;grid-template-columns:.9fr 1fr;grid-template-rows:1fr}
.album--portrait .album-shot-1{grid-column:2;grid-row:1}
.album--portrait .album-type{grid-column:1;grid-row:1;align-items:start;text-align:left;padding:20px;justify-content:center}
.album--portrait .album-type strong{font-size:clamp(27px,5.6vw,70px);max-width:6ch;overflow-wrap:break-word}
.album--portrait .album-type span{font-size:10px;letter-spacing:.12em}
.editorial-mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:14px}
.editorial-mosaic .work-card:last-child:nth-child(6){grid-column:span 12;aspect-ratio:2.55}
@media(hover:none){.album-shot-zoom{opacity:1;transform:none;width:25px;height:25px;top:6px;right:6px}}
@media(max-width:760px){
 .gallery-chapter+.gallery-chapter{margin-top:66px}
 .gallery-chapter-head{gap:8px;padding-top:11px;margin-bottom:25px;align-items:end}
 .gallery-chapter-label{font-size:8px;margin-bottom:11px;letter-spacing:.08em}
 .gallery-chapter-head h3{font-size:clamp(24px,7vw,49px);line-height:1.09;margin-bottom:9px}
 .gallery-chapter-head p{font-size:12px;line-height:1.55}
 .gallery-chapter-count{font-size:8px;letter-spacing:.035em}
 .editorial-album{margin-bottom:38px}
 .album-header{gap:8px;padding-bottom:11px;align-items:end}
 .album-overline{font-size:8px;margin-bottom:6px;letter-spacing:.08em}
 .album-intro h4{font-size:clamp(16px,4.3vw,22px);margin-bottom:6px}
 .album-intro p{font-size:11px;line-height:1.5}
 .album-number{font-size:8px;letter-spacing:.04em}
 .album-stage{padding:clamp(15px,4vw,28px) clamp(10px,3vw,20px)}
 .album-frames{gap:3px}
 .album-type strong{font-size:clamp(14px,3.2vw,23px)}
 .album-type span{font-size:7px;margin-top:7px;letter-spacing:.07em}
 .album--motion .album-frames{aspect-ratio:1.03}
 .album--motion .album-type{padding:4px}
 .album--motion .album-type strong{font-size:clamp(14px,3.75vw,22px)}
 .album--garden .album-frames{aspect-ratio:1.4}
 .album--garden .album-type{padding:4px}
 .album--garden .album-type strong{font-size:clamp(13px,3.2vw,23px)}
 .album--campus .album-frames{aspect-ratio:1.08;grid-template-columns:1fr .43fr 1fr}
 .album--campus .album-type strong{font-size:clamp(19px,6vw,39px);letter-spacing:0}
 .album--campus .album-type span{font-size:7px;letter-spacing:.08em;margin:5px 0 0}
 .album--milestone .album-frames{aspect-ratio:1.13}
 .album--milestone .album-type{padding:15px 5px}
 .album--milestone .album-type strong{font-size:clamp(25px,7vw,40px)}
 .album--portrait .album-frames{aspect-ratio:1.36}
 .album--portrait .album-type{padding:8px}
 .album--portrait .album-type strong{font-size:clamp(19px,5.2vw,32px)}
 .album--portrait .album-type span{font-size:7px}
 .album-foot{font-size:7px;padding:11px 1px;letter-spacing:.035em;gap:7px}
 .album-foot span:last-child{text-align:right}
 .editorial-mosaic{gap:var(--mobile-gap,8px)}
 .editorial-mosaic .work-card,.editorial-mosaic .work-card:nth-child(n){grid-column:span 4;aspect-ratio:1}
 .editorial-mosaic .work-card:nth-child(7n+1){grid-column:span 7;aspect-ratio:1.58}
 .editorial-mosaic .work-card:nth-child(7n+2){grid-column:span 5;aspect-ratio:1.1}
 .editorial-mosaic .work-card:last-child:nth-child(6){grid-column:span 12;aspect-ratio:2.5}
}
@media(prefers-reduced-motion:reduce){
 .album-shot,.album-shot img,.album-shot-zoom{transition:none!important}
}

/* V20 — Four extra editorial spreads for Congress and Event. One unique image per slot. */
.album--ceremony .album-stage{background:#5d2924}
.album--ceremony .album-stage::after{background:linear-gradient(130deg,#320f1c99,#6c362b66)}
.album--ceremony .album-frames{max-width:850px;aspect-ratio:1.72;grid-template-columns:1.4fr .78fr .78fr;grid-template-rows:1fr .22fr}
.album--ceremony .album-shot-1{grid-column:1;grid-row:1}
.album--ceremony .album-shot-2{grid-column:2;grid-row:1}
.album--ceremony .album-shot-3{grid-column:3;grid-row:1}
.album--ceremony .album-type{grid-column:1/-1;grid-row:2;border-top:1px solid #f9e8d475;flex-direction:row;gap:20px}
.album--ceremony .album-type strong{font-family:Georgia,serif;font-weight:400;letter-spacing:.025em}
.album--ceremony .album-type span{margin:0}
.album--assembly .album-stage{background:#252b2d}
.album--assembly .album-stage::after{background:linear-gradient(145deg,#171b25bb,#6f3c333d)}
.album--assembly .album-frames{max-width:810px;aspect-ratio:1.37;grid-template-columns:1fr 1fr .8fr;grid-template-rows:1fr 1fr}
.album--assembly .album-shot-1{grid-column:1;grid-row:1}
.album--assembly .album-shot-2{grid-column:1;grid-row:2}
.album--assembly .album-shot-3{grid-column:2;grid-row:1/3}
.album--assembly .album-type{grid-column:3;grid-row:1/3;align-items:start;text-align:left;padding:clamp(10px,2vw,24px)}
.album--assembly .album-type strong{overflow-wrap:anywhere}
.album--energy .album-stage{background:#292238}
.album--energy .album-stage::after{background:linear-gradient(120deg,#0d0713c4,#643b6260)}
.album--energy .album-frames{max-width:820px;aspect-ratio:1.45;grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr}
.album--energy .album-shot-1{grid-column:1;grid-row:1/3}
.album--energy .album-shot-2{grid-column:2;grid-row:1}
.album--energy .album-shot-3{grid-column:2;grid-row:2}
.album--energy .album-type{position:absolute;bottom:6%;left:7%;z-index:2;pointer-events:none;text-align:left;align-items:start;text-shadow:0 2px 20px #000b}
.album--energy .album-type strong{font-family:Georgia,serif;font-weight:400;font-style:italic;font-size:clamp(25px,4vw,64px)}
.album--night .album-stage{background:#192128}
.album--night .album-stage::after{background:linear-gradient(120deg,#07131ac4,#45352352)}
.album--night .album-frames{max-width:830px;aspect-ratio:1.8;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr auto}
.album--night .album-shot-1{grid-column:1;grid-row:1}
.album--night .album-shot-2{grid-column:2;grid-row:1}
.album--night .album-shot-3{grid-column:3;grid-row:1}
.album--night .album-type{grid-column:1/-1;grid-row:2;min-height:60px;flex-direction:row;gap:14px}
.album--night .album-type strong{font-family:Georgia,serif;font-weight:400;letter-spacing:.06em}
.album--night .album-type span{margin:0}
@media(max-width:760px){
 .album--ceremony .album-frames{aspect-ratio:1.32;grid-template-rows:1fr .2fr}
 .album--ceremony .album-type{gap:6px}
 .album--ceremony .album-type strong{font-size:clamp(12px,3vw,20px)}
 .album--ceremony .album-type span{font-size:6px}
 .album--assembly .album-frames{aspect-ratio:1.05}
 .album--assembly .album-type{padding:4px}
 .album--assembly .album-type strong{font-size:clamp(13px,3.3vw,21px)}
 .album--assembly .album-type span{font-size:6px}
 .album--energy .album-frames{aspect-ratio:1.18}
 .album--energy .album-type{bottom:6%;left:6%}
 .album--energy .album-type strong{font-size:clamp(16px,4.3vw,28px)}
 .album--night .album-frames{aspect-ratio:1.38}
 .album--night .album-type{min-height:33px;gap:7px}
 .album--night .album-type strong{font-size:clamp(14px,3.4vw,21px)}
 .album--night .album-type span{font-size:6px}
}


/* V21 — Four additional Drive-sourced editorial albums. All photographs local. */
.album--ivory .album-stage{background:#b8aea3}
.album--ivory .album-stage::before{filter:blur(62px) brightness(1.1) saturate(.5)}
.album--ivory .album-stage::after{background:linear-gradient(120deg,#f6f0e9b3,#b7a99d66)}
.album--ivory .album-frames{max-width:820px;aspect-ratio:1.65;grid-template-columns:1fr 1fr .68fr;grid-template-rows:1fr}
.album--ivory .album-type{color:#514944;padding:clamp(8px,2vw,30px);text-align:left;align-items:start;border-left:1px solid #755e515c}
.album--ivory .album-type strong{font-family:Georgia,serif;font-weight:400;font-size:clamp(26px,4vw,52px);letter-spacing:-.045em}
.album--ivory .album-type span{font-size:8px;letter-spacing:.12em}
.album--winter .album-stage{background:#9eb9c6}
.album--winter .album-stage::before{filter:blur(47px) brightness(1.25) saturate(.7)}
.album--winter .album-stage::after{background:linear-gradient(120deg,#d6e5ef8f,#5c809861)}
.album--winter .album-frames{max-width:810px;aspect-ratio:1.58;grid-template-columns:1fr .57fr 1fr;grid-template-rows:1fr}
.album--winter .album-shot-1{grid-column:1;grid-row:1}
.album--winter .album-shot-2{grid-column:3;grid-row:1}
.album--winter .album-type{grid-column:2;grid-row:1;color:#173b56;border-top:1px solid #1d4c6352;border-bottom:1px solid #1d4c6352}
.album--winter .album-type strong{font-family:Georgia,serif;font-weight:400;font-style:italic;letter-spacing:-.04em;font-size:clamp(27px,5vw,66px)}
.album--winter .album-type span{font-size:8px;letter-spacing:.08em}
.album--ensemble .album-stage{background:#17140f}
.album--ensemble .album-stage::after{background:linear-gradient(135deg,#0e0d0be0,#6b4a2d62)}
.album--ensemble .album-frames{max-width:830px;aspect-ratio:1.65;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto}
.album--ensemble .album-shot-1{grid-column:1;grid-row:1}
.album--ensemble .album-shot-2{grid-column:2;grid-row:1}
.album--ensemble .album-type{grid-column:1/-1;grid-row:2;min-height:75px;display:flex;flex-direction:row;gap:15px;color:#f1d4a3}
.album--ensemble .album-type strong{font-family:Georgia,serif;font-weight:400;font-size:clamp(23px,4vw,46px);letter-spacing:.04em}
.album--ensemble .album-type span{margin:0;color:#d5b885}
.album--community .album-stage{background:#183557}
.album--community .album-stage::after{background:linear-gradient(125deg,#0b17389c,#53273075)}
.album--community .album-frames{max-width:840px;aspect-ratio:1.62;grid-template-columns:1.35fr .85fr;grid-template-rows:1fr auto}
.album--community .album-shot-1{grid-column:1;grid-row:1}
.album--community .album-shot-2{grid-column:2;grid-row:1}
.album--community .album-type{grid-column:1/-1;grid-row:2;min-height:56px;flex-direction:row;gap:15px}
.album--community .album-type strong{font-family:Georgia,serif;font-weight:400;letter-spacing:.065em;font-size:clamp(25px,4vw,48px)}
.album--community .album-type span{margin:0;color:#e4cfd4}
@media(max-width:760px){
 .album--ivory .album-frames{aspect-ratio:1.26;grid-template-columns:1fr 1fr .55fr}
 .album--ivory .album-type{padding:3px}
 .album--ivory .album-type strong{font-size:clamp(14px,4.3vw,22px);overflow-wrap:anywhere}
 .album--ivory .album-type span{font-size:6px;letter-spacing:.03em}
 .album--winter .album-frames{aspect-ratio:1.21;grid-template-columns:1fr .6fr 1fr}
 .album--winter .album-type strong{font-size:clamp(20px,5vw,29px)}
 .album--winter .album-type span{font-size:6px;letter-spacing:.03em}
 .album--ensemble .album-frames{aspect-ratio:1.22}
 .album--ensemble .album-type{min-height:38px;gap:7px}
 .album--ensemble .album-type strong{font-size:clamp(15px,4vw,25px)}
 .album--ensemble .album-type span{font-size:6px}
 .album--community .album-frames{aspect-ratio:1.16}
 .album--community .album-type{min-height:37px;gap:7px}
 .album--community .album-type strong{font-size:clamp(15px,3.7vw,23px)}
 .album--community .album-type span{font-size:6px;letter-spacing:.03em}
}
