:root{--night:#071122;--navy:#0d1937;--cream:#f7f1e5;--paper:#fffdf8;--pink:#e83986;--gold:#d5a94d;--ink:#101727}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#06142f url('/assets/graffiti-wall-reference-v1.jpg') center/cover fixed no-repeat;color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}
button,a{font:inherit}.gallery-page{min-height:100vh}
.opening{position:relative;min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);background:linear-gradient(90deg,rgba(3,12,31,.97) 0%,rgba(7,22,53,.9) 42%,rgba(7,22,53,.54) 67%,rgba(3,9,23,.32) 100%),url('/assets/graffiti-wall-reference-v1.jpg') center/cover no-repeat;overflow:hidden;color:white}
.opening::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(115deg,rgba(4,16,42,.55),transparent 42%),url('/assets/graffiti-splatter-v2.png') center/105% auto no-repeat;opacity:.5;filter:saturate(1.08) contrast(1.06);mix-blend-mode:screen;pointer-events:none}
.opening::after{content:"PWP";position:absolute;z-index:0;left:-3vw;top:5%;color:transparent;-webkit-text-stroke:2px rgba(13,25,55,.09);font:900 30vw/.8 Impact,"Arial Black",sans-serif;letter-spacing:-.09em;transform:rotate(-9deg);pointer-events:none}
.opening-copy{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:center;padding:clamp(70px,9vw,138px) clamp(28px,6.6vw,106px);border-right:1px solid rgba(255,255,255,.16);text-shadow:0 3px 18px rgba(0,0,0,.42)}
.exhibition-label{width:max-content;margin:0 0 30px;padding-bottom:10px;border-bottom:1px solid var(--gold);font:700 11px/1 Arial,sans-serif;letter-spacing:.28em;color:#f3d98f}
h1{max-width:780px;margin:0;color:white;font:700 clamp(68px,9.6vw,146px)/.76 Didot,"Bodoni 72","Baskerville",Georgia,serif;letter-spacing:-.075em;text-transform:uppercase}
h1 span{display:block;width:max-content;margin:.12em 0 .04em .16em;color:var(--pink);font:500 .69em/.9 "Snell Roundhand","Apple Chancery","URW Chancery L","Brush Script MT","Segoe Script",cursive;letter-spacing:-.045em;text-transform:none;transform:rotate(-4deg);text-shadow:2px 2px 0 rgba(213,169,77,.3)}
.opening-lede{max-width:610px;margin:32px 0 28px;color:#fff7e8;font:400 clamp(17px,1.45vw,21px)/1.62 Georgia,serif}
.opening-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 26px}
.gallery-button{display:inline-flex;align-items:center;gap:18px;min-height:52px;padding:0 22px;background:var(--night);color:white;border:1px solid var(--night);text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.17em;transition:.25s}
.gallery-button:hover,.gallery-button:focus-visible{background:var(--pink);border-color:var(--pink);transform:translateY(-3px);box-shadow:0 9px 0 rgba(213,169,77,.65)}
.text-link{padding:10px 0;color:white;border-bottom:1px solid var(--gold);text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.curator-note{display:flex;align-items:center;gap:12px;margin:44px 0 0;color:#f4e8d1;font:italic 16px Georgia,serif}.curator-note span{font:700 9px Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase}.curator-note::before{content:"";width:35px;height:1px;background:var(--pink)}
.graffiti-stamp{position:absolute;z-index:-1;right:-1.5vw;bottom:6%;display:flex;align-items:flex-end;gap:10px;color:rgba(7,17,34,.11);transform:rotate(-8deg);pointer-events:none}.graffiti-stamp strong{font:900 clamp(72px,10vw,150px)/.7 Impact,"Arial Black",sans-serif;letter-spacing:-.08em}.graffiti-stamp span{padding-bottom:7px;font-size:9px;font-weight:900;letter-spacing:.16em;writing-mode:vertical-rl}
.featured-wall{position:relative;z-index:2;display:grid;place-items:center;min-height:650px;padding:clamp(58px,6vw,92px) clamp(28px,5vw,72px);background:linear-gradient(135deg,rgba(3,10,25,.35),rgba(9,24,55,.65));overflow:hidden;backdrop-filter:blur(1px)}
.featured-wall::before{content:"";position:absolute;z-index:4;inset:24px;border:1px solid rgba(213,169,77,.4);pointer-events:none}
.featured-wall::after{content:"";position:absolute;z-index:0;inset:-5% -18%;background:url('/assets/graffiti-splatter-v2.png') center/contain no-repeat;opacity:.56;filter:saturate(1.08) drop-shadow(0 20px 35px rgba(0,0,0,.32));transform:rotate(-5deg)}
.spotlight{position:absolute;z-index:1;left:50%;top:-18%;width:84%;height:78%;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(255,247,218,.36) 0,rgba(255,247,218,.08) 38%,transparent 72%);filter:blur(2px)}
.featured-piece{position:relative;z-index:2;width:min(440px,85%)}
.gallery-frame{position:relative;padding:14px;background:linear-gradient(135deg,#f4dc9c,#9a6b1a 34%,#f1cf75 58%,#79500e);box-shadow:0 34px 65px rgba(0,0,0,.52),0 0 0 1px rgba(255,247,218,.7)}
.gallery-frame::before{content:"";position:absolute;inset:7px;border:1px solid rgba(45,28,4,.64)}
.gallery-frame::after{content:"✦";position:absolute;z-index:4;right:-12px;top:-18px;color:#fff7d0;font:normal 34px/1 Georgia,serif;text-shadow:0 0 6px white,0 0 16px #ffd45c,0 0 28px #e83986;animation:frame-glint 2.6s ease-in-out infinite;pointer-events:none}
.gallery-mat{position:relative;display:grid;place-items:center;aspect-ratio:4/5;padding:26px;background:#f4ede0;box-shadow:inset 0 0 18px rgba(13,25,55,.18)}
.gallery-mat img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 14px rgba(10,15,28,.26));transition:opacity .45s ease,transform .45s ease}.gallery-mat img.reel-changing{opacity:.06;transform:scale(.975)}
.featured-plaque{width:82%;margin:25px auto 0;padding:15px 18px;background:#f1eadc;border-left:4px solid var(--gold);box-shadow:0 8px 16px rgba(0,0,0,.22);color:var(--night)}
.featured-plaque span,.featured-plaque small{display:block;font-size:9px;letter-spacing:.18em}.featured-plaque span{margin-bottom:6px;color:#936d22;font-weight:800}.featured-plaque strong{display:block;font:700 21px/1.1 Georgia,serif}.featured-plaque small{margin-top:7px;color:#6e675d}
.gallery-ticker{height:48px;display:flex;align-items:center;overflow:hidden;background:linear-gradient(90deg,#c61f69,#ff4f9c 48%,#bd7f22);border-block:1px solid #071122;color:white;font-size:10px;font-weight:900;letter-spacing:.24em;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.gallery-ticker .ticker-track{display:flex;width:max-content;flex:none;animation:ticker 36s linear infinite;will-change:transform}.gallery-ticker .ticker-group{display:flex;flex:none;min-width:100vw}.gallery-ticker span{padding-right:70px}.gallery-ticker span::before{content:"✦";margin-right:28px;color:#ffe6a6}@keyframes ticker{to{transform:translateX(-50%)}}
.room{position:relative;padding:clamp(86px,10vw,150px) clamp(22px,5vw,80px)}
.story-room{background:linear-gradient(rgba(255,253,248,.86),rgba(247,241,229,.82)),url('/assets/graffiti-wall-reference-v1.jpg') center/cover fixed no-repeat;overflow:hidden}.story-room::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,22,56,.12),transparent 45%),url('/assets/graffiti-splatter-v2.png') right top/72% auto no-repeat;opacity:.22;pointer-events:none}.story-room>*{position:relative}
.room-header{display:grid;grid-template-columns:130px minmax(0,1fr) minmax(260px,480px);gap:clamp(28px,5vw,74px);align-items:end;max-width:1380px;margin:0 auto 74px;padding-bottom:34px;border-bottom:1px solid rgba(13,25,55,.2)}
.room-number{margin:0;color:var(--pink);font-size:11px;font-weight:900;letter-spacing:.28em}
.eyebrow{margin:0 0 14px;color:#9d7021;font-size:10px;font-weight:900;letter-spacing:.26em;text-transform:uppercase}
h2{margin:0;font:700 clamp(52px,6.7vw,98px)/.86 Didot,"Bodoni 72","Baskerville",Georgia,serif;letter-spacing:-.055em}
.room-copy{margin:0;color:#5b584f;font:400 17px/1.65 Georgia,serif}
.art-wall{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(38px,6vw,88px) clamp(24px,4vw,64px);max-width:1320px;margin:auto;align-items:start}
.artwork{grid-column:span 6}.story-wall .artwork-wide{grid-column:span 7}.story-wall .artwork-tall{grid-column:span 5}.story-wall .artwork:nth-child(2){margin-top:120px}.story-wall .artwork:nth-child(4){margin-top:70px}
.art-frame{position:relative;padding:10px;background:linear-gradient(145deg,#26365e 0%,#050a15 38%,#111b35 68%,#b98a31 100%);border:1px solid #d4aa55;box-shadow:0 25px 48px rgba(13,25,55,.24),0 0 0 3px rgba(7,17,34,.92),0 0 0 4px rgba(232,57,134,.2);transition:box-shadow .3s ease,transform .3s ease}.art-frame::before{content:"";position:absolute;z-index:2;inset:5px;border:1px solid rgba(255,225,143,.72);box-shadow:inset 0 0 9px rgba(255,226,137,.3);pointer-events:none}.art-frame::after{content:"✦";position:absolute;z-index:5;right:-11px;top:-15px;color:#fff8db;font:normal 29px/1 Georgia,serif;text-shadow:0 0 5px #fff,0 0 13px #f4ce68,0 0 22px #e83986;animation:frame-glint 3s ease-in-out infinite;pointer-events:none}.artwork:nth-child(even) .art-frame::after{right:auto;left:-11px;top:18%;animation-delay:.75s}.artwork:hover .art-frame{transform:translateY(-5px) rotate(-.35deg);box-shadow:0 30px 58px rgba(13,25,55,.34),8px 8px 0 rgba(232,57,134,.82),0 0 25px rgba(255,215,103,.48)}
.art-mat{position:relative;height:clamp(430px,48vw,640px);display:grid;place-items:center;padding:clamp(26px,4vw,58px);background:linear-gradient(145deg,#fffaf0,#e9dfcf);box-shadow:inset 0 0 0 1px rgba(13,25,55,.2),inset 0 0 26px rgba(13,25,55,.12);overflow:hidden}.art-mat::after{content:"✧";position:absolute;z-index:2;left:13px;bottom:10px;color:#e8b94e;font:normal 22px/1 Georgia,serif;text-shadow:0 0 5px white,0 0 12px #e83986;opacity:.86;animation:frame-glint 3.4s ease-in-out infinite .35s;pointer-events:none}.artwork:nth-child(even) .art-mat::after{left:auto;right:13px}
.story-wall .artwork-tall .art-mat{height:clamp(470px,53vw,700px)}
.art-mat img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 16px 16px rgba(13,25,55,.22));transition:transform .45s ease}.artwork:hover .art-mat img{transform:scale(1.02)}
.art-label{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;padding:22px 4px 0}.art-label span{display:block;margin-bottom:8px;color:#946a23;font-size:9px;font-weight:900;letter-spacing:.18em}.art-label h3{margin:0;font:700 clamp(25px,2.7vw,40px)/1.02 Didot,"Bodoni 72",Georgia,serif}.art-label button{align-self:end;padding:10px 0 7px;color:var(--night);background:none;border:0;border-bottom:1px solid var(--pink);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.art-label button b{margin-left:8px;color:var(--pink);font-size:15px}.art-label button:hover,.art-label button:focus-visible{color:var(--pink)}
.statement-room{background:linear-gradient(135deg,rgba(3,10,25,.93),rgba(6,25,62,.85) 58%,rgba(20,8,34,.88)),url('/assets/graffiti-wall-reference-v1.jpg') center/cover fixed no-repeat;color:var(--cream)}
.dark-header{border-color:rgba(213,169,77,.32)}.dark-header .room-copy{color:#d8d0c0}.dark-header .room-number{color:var(--gold)}.dark-header .eyebrow{color:var(--pink)}
.statement-wall{gap:70px 42px}.statement-wall .artwork{grid-column:span 6}.statement-wall .art-frame{background:linear-gradient(135deg,#f0d786,#956818 43%,#edc763);border-color:#e9c568;box-shadow:0 28px 55px rgba(0,0,0,.38)}.statement-wall .art-mat{height:clamp(410px,45vw,590px);background:linear-gradient(145deg,#ece2cf,#fffaf0)}.statement-wall .artwork:nth-child(even){margin-top:78px}.statement-wall .art-label span{color:var(--gold)}.statement-wall .art-label h3{color:white}.statement-wall .art-label button{color:#f5ead5;border-color:var(--gold)}.statement-wall .art-label button b{color:var(--gold)}
.closing-gallery{position:relative;padding:clamp(92px,11vw,160px) 24px;background:linear-gradient(135deg,rgba(5,18,46,.8),rgba(218,35,118,.7) 56%,rgba(7,21,52,.88)),url('/assets/graffiti-wall-reference-v1.jpg') center/cover no-repeat;color:white;text-align:center;overflow:hidden}.closing-gallery::before{content:"";position:absolute;inset:-10%;background:url('/assets/graffiti-splatter-v2.png') center/cover no-repeat;opacity:.55;mix-blend-mode:screen;transform:rotate(4deg)}.closing-gallery>*{position:relative}.closing-gallery p{margin:0 0 22px;font-size:10px;font-weight:900;letter-spacing:.3em}.closing-gallery h2{max-width:1050px;margin:auto;font-size:clamp(46px,7vw,96px);text-shadow:0 6px 24px rgba(0,0,0,.45)}.closing-gallery h2 em{color:#ffe7a9;font-weight:500}.closing-gallery a{display:inline-block;margin-top:38px;padding:13px 0;color:white;border-bottom:1px solid #ffe7a9;text-decoration:none;font-size:11px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}

.art-sparkles{position:absolute;z-index:5;inset:0;pointer-events:none}.art-sparkles i{position:absolute;color:white;font:normal clamp(17px,2vw,32px)/1 Georgia,serif;text-shadow:0 0 7px white,0 0 16px #f8d981,0 0 24px #f8d981;animation:gallery-glint 2.8s ease-in-out infinite}.art-sparkles i:nth-child(1){left:7%;top:13%}.art-sparkles i:nth-child(2){left:46%;top:8%;color:#ffe39a;animation-delay:.4s}.art-sparkles i:nth-child(3){right:8%;top:18%;animation-delay:.8s}.art-sparkles i:nth-child(4){left:24%;bottom:14%;color:#ffe39a;animation-delay:1.2s}.art-sparkles i:nth-child(5){right:33%;bottom:9%;animation-delay:1.6s}.art-sparkles i:nth-child(6){right:4%;bottom:28%;color:#ffe39a;animation-delay:2s}.art-sparkles i:nth-child(7){left:54%;top:46%;animation-delay:2.4s}.art-sparkles i:nth-child(8){left:2%;top:56%;color:#ffe39a;animation-delay:1s}@keyframes gallery-glint{0%,100%{opacity:.25;transform:scale(.65) rotate(0)}50%{opacity:1;transform:scale(1.22) rotate(18deg)}}
@keyframes frame-glint{0%,100%{opacity:.35;transform:scale(.72) rotate(0)}46%{opacity:1;transform:scale(1.2) rotate(16deg)}58%{opacity:.62;transform:scale(.9) rotate(24deg)}}
.site-footer{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px clamp(20px,5vw,76px);background:#050b19;color:#cfc5b2;border-top:1px solid rgba(213,169,77,.35);font-size:10px;letter-spacing:.14em}.site-footer a{color:inherit}
.lightbox{position:fixed;z-index:20000;inset:0;display:none;place-items:center;padding:clamp(14px,3vw,44px);background:rgba(3,7,17,.96)}.lightbox.open{display:grid}.lightbox-card{position:relative;width:min(1250px,100%);max-height:94vh;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr);background:#f5efe3;border:1px solid var(--gold);box-shadow:0 30px 80px rgba(0,0,0,.55);overflow:auto}.lightbox-visual{min-height:480px;display:grid;place-items:center;padding:24px;background:#111a2f}.lightbox img{width:100%;height:100%;max-height:84vh;object-fit:contain;display:block}.lightbox-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,62px)}.lightbox-copy .eyebrow{color:#9b6d20}.lightbox h3{margin:0 0 20px;font:700 clamp(38px,4.6vw,66px)/.92 Didot,"Bodoni 72",Georgia,serif}.lightbox p{color:#504c45;font:400 16px/1.65 Georgia,serif}.lightbox-close{position:absolute;z-index:2;right:14px;top:14px;width:46px;height:46px;border:1px solid var(--gold);background:var(--night);color:white;font-size:25px;cursor:pointer}
@media(max-width:1000px){.opening{grid-template-columns:1fr}.opening-copy{min-height:620px;border-right:0}.featured-wall{min-height:720px}.room-header{grid-template-columns:100px 1fr}.room-copy{grid-column:2}.story-wall .artwork,.story-wall .artwork-wide,.story-wall .artwork-tall,.statement-wall .artwork{grid-column:span 6}.lightbox-card{grid-template-columns:1fr}.lightbox-visual{min-height:360px}.lightbox img{max-height:60vh}}
@media(max-width:700px){.opening-copy{min-height:auto;padding:74px 20px 62px}.opening::before{left:-52%;bottom:-8%;width:170%;height:62%;opacity:.34}.opening::after{top:14%;font-size:52vw}.graffiti-stamp{right:-7vw;bottom:3%;opacity:.7}h1{font-size:65px}.opening-lede{font-size:17px}.featured-wall{min-height:590px;padding:66px 24px}.featured-wall::after{inset:2% -42%;opacity:.5}.featured-piece{width:min(390px,85%)}.featured-plaque{width:94%}.room{padding:86px 18px}.room-header{grid-template-columns:1fr;gap:18px;margin-bottom:54px}.room-copy{grid-column:auto}.room-number{margin-bottom:10px}.art-wall{gap:68px}.story-wall .artwork,.story-wall .artwork-wide,.story-wall .artwork-tall,.statement-wall .artwork{grid-column:span 12;margin-top:0!important}.art-mat,.story-wall .artwork-tall .art-mat,.statement-wall .art-mat{height:520px;padding:28px}.art-label{grid-template-columns:1fr;gap:9px}.art-label button{justify-self:start}.site-footer{flex-direction:column;text-align:center}.lightbox{padding:8px}.lightbox-visual{min-height:280px;padding:12px}.lightbox-card{max-height:97vh}.lightbox-copy{padding:28px 24px}}
@media(max-width:420px){h1{font-size:56px}.gallery-button{width:100%;justify-content:space-between}.art-mat,.story-wall .artwork-tall .art-mat,.statement-wall .art-mat{height:430px}.featured-wall{min-height:540px}.gallery-mat{padding:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-ticker .ticker-track,.art-sparkles i,.gallery-frame::after,.art-frame::after,.art-mat::after{animation:none}.gallery-mat img,.art-mat img,.gallery-button{transition:none}}

/* Show the exact supplied front panel without altering the full-wrap artwork. */
img[src$="#front"]{width:auto!important;height:100%!important;max-width:100%;aspect-ratio:0.705;object-fit:cover!important;object-position:right!important}

img[src*="covenant-wrap-v4.jpeg#front"]{aspect-ratio:0.741}img[src*="paid-wrap-v4.jpeg#front"]{aspect-ratio:0.717}

/* Let the phone gallery shrink to the viewport, including intrinsic image sizes. */
@media(max-width:700px){
  .gallery-page{width:100%;min-width:0}
  .opening{grid-template-columns:minmax(0,1fr);min-width:0}
  .opening-copy,.featured-wall,.featured-piece,.gallery-frame,.gallery-mat,
  .room-header,.room-header>*,.art-wall,.artwork,.art-frame,.art-mat,.art-label,.art-label>*{min-width:0;max-width:100%}
  .opening-copy{width:100%}
  .exhibition-label{width:auto;max-width:100%;line-height:1.5;overflow-wrap:anywhere}
  .opening h1{font-size:clamp(48px,14vw,65px)}
  .opening h1 span{width:auto;max-width:100%;margin-left:0}
  .opening-lede,.text-link,.curator-note{overflow-wrap:anywhere}
  .curator-note{flex-wrap:wrap;line-height:1.5}
  .room-header{grid-template-columns:minmax(0,1fr)}
  .room-header h2{font-size:clamp(38px,11vw,52px);overflow-wrap:break-word}
  .art-wall{grid-template-columns:repeat(12,minmax(0,1fr))}
  .gallery-mat,.art-mat{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
  .gallery-mat img,.art-mat img{min-width:0;min-height:0;max-width:100%;max-height:100%}
  .art-label{grid-template-columns:minmax(0,1fr)}
  .art-label h3{overflow-wrap:break-word}
  .gallery-button,.text-link{max-width:100%}
  .gallery-button{white-space:normal;line-height:1.5}
  .lightbox-card{grid-template-columns:minmax(0,1fr)}
}
