:root{--surface:#f0f1e9;--card:#fffef9;--accent:#81967d}html[data-theme=gallery]{--ink:#292b2e;--muted:#666a70;--paper:#fff;--line:#e0e2e5;--green:#323e4b;--surface:#f5f6f7;--card:#fff;--accent:#7a8792}html[data-theme=watercolor]{--ink:#354449;--muted:#627980;--paper:#f5f9f8;--line:#ccdfdf;--green:#3b6970;--surface:#e4eeee;--card:#fbfdfd;--accent:#9a7592}body{background:var(--paper)}h1 em,h2 em{color:var(--accent)}.logo{width:80px;height:64px;object-fit:contain}.header{min-height:100px;height:auto;gap:30px}.header nav{gap:25px}.header [aria-current]{border-bottom:2px solid var(--green)}#menu-toggle{display:none}.skip{position:fixed;top:-80px;left:10px;background:white;padding:16px;z-index:50}.skip:focus{top:10px}#preview-banner{position:sticky;top:0;background:#593d64;color:white;text-align:center;padding:13px;font-size:14px;z-index:30}#preview-banner a{text-decoration:underline;margin-left:20px}.page-title{padding:65px 0 45px;border-bottom:1px solid var(--line);margin-bottom:40px}.page-title h1{font-size:clamp(45px,5vw,76px);max-width:900px;margin:15px 0;overflow-wrap:anywhere}.home-title{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.home-title h1{font-size:clamp(48px,5vw,80px)}.home-title>img{width:100%;height:350px;object-fit:cover}.source-section{padding:25px 0;clear:both}.source-section:empty{display:none}.source-text{max-width:920px}.source-text p{line-height:1.8;color:var(--ink);font-size:17px;white-space:pre-wrap;overflow-wrap:anywhere}.source-text h2{font-size:36px;line-height:1.2;letter-spacing:-.02em;margin:15px 0 25px}.source-links{display:flex;flex-wrap:wrap;gap:10px 20px;margin:5px 0 20px}.source-links a{font-size:14px;text-decoration:underline;text-underline-offset:4px;color:var(--green);overflow-wrap:anywhere}.split{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;margin:30px 0;padding:45px 0;border-block:1px solid var(--line)}.split.reverse>div:first-child{order:2}.image-section{display:flex;gap:24px;flex-wrap:wrap;align-items:start}.source-image{margin:0;flex:1 1 270px;max-width:100%;min-width:0}.source-image img{width:100%;max-height:520px;object-fit:contain;display:block;background:var(--surface)}.source-image figcaption{font-size:14px;line-height:1.6;margin-top:12px;text-align:center}.image-section>.source-text{flex:1 1 100%;max-width:100%}.photo-open{border:0;padding:0;width:100%;display:block;cursor:zoom-in;background:transparent}.image-section:has(>.source-image:only-child){justify-content:center}.image-section>.source-image:only-child{max-width:720px}.carousel{background:var(--surface);padding:18px}.carousel .source-image img{height:480px;width:100%;object-fit:contain}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px}.carousel-controls button,.cal-head button{min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--card);color:var(--green);padding:8px 12px}.carousel-count{font-size:13px;font-variant-numeric:tabular-nums}.map{width:100%;height:340px;border:0}.embedded-link{display:inline-block;margin:20px 0;text-decoration:underline}.subnav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:25px}.subnav a{border:1px solid var(--line);padding:11px 16px;font-size:14px}.subnav [aria-current]{background:var(--green);color:white}.collection-title{font-size:36px;margin:50px 0 25px}.page-card{display:inline-flex;vertical-align:top;align-items:center;gap:16px;width:calc(33.333% - 20px);margin:0 20px 24px 0;padding:16px;border:1px solid var(--line);background:var(--card);font-weight:500;min-height:100px}.page-card img{width:80px;height:80px;object-fit:cover}.page-card span:last-child{margin-left:auto}.schedule-section{background:var(--surface);margin-top:60px}.schedule-section h2{margin:10px 0 25px}.schedule-section>.wrap>p:not(.eyebrow){max-width:750px;line-height:1.7}.schedule-layout{margin-top:30px}.calendar,.event-list{background:var(--card)}.event-list{max-height:610px;overflow:auto}.event strong{font-size:21px}.days button{border:0;min-height:44px;color:var(--green)}.days .has-event{border-radius:3px;background:var(--surface);border:1px solid var(--accent)}.days .cancelled-day{background:#eee5de;text-decoration:line-through}.cancelled{opacity:.7}.cancelled strong{text-decoration:line-through}.footer-inner{margin-top:0}.footer-inner h3{font:26px 'DM Serif Display',Georgia,serif}footer{margin-top:60px}#lightbox{border:0;background:var(--card);color:var(--ink);max-width:94vw;max-height:94vh;padding:20px}#lightbox::backdrop{background:#17231de0}#lightbox img{display:block;max-width:85vw;max-height:75vh;object-fit:contain;margin:auto}#lightbox button{display:block;margin-left:auto;margin-bottom:12px;padding:10px 16px;border:1px solid var(--line);background:var(--card)}#lightbox p{text-align:center;margin:15px 0 0}html[data-theme=gallery] h1,html[data-theme=gallery] h2{font-family:Georgia,serif}html[data-theme=watercolor] .page-title{background:radial-gradient(ellipse at top right,#d4e6dd80,transparent 65%),radial-gradient(ellipse at bottom left,#e8d5e370,transparent 65%);padding-inline:24px}button:disabled{opacity:.5;cursor:wait}@media(max-width:800px){.header{flex-wrap:wrap;padding:16px 0}.logo{width:65px;height:55px}#menu-toggle{display:block;margin-left:auto;border:1px solid var(--line);background:var(--card);padding:12px}#navigation{display:none;width:100%;justify-content:flex-start;flex-wrap:wrap;gap:18px;padding:10px 0}#navigation.open{display:flex}.home-title{grid-template-columns:1fr}.home-title>img{height:250px}.page-title{padding:35px 0}.split{grid-template-columns:1fr;gap:35px}.split.reverse>div:first-child{order:0}.carousel .source-image img{height:340px}.page-card{width:100%;margin-right:0}.source-section{padding:20px 0}.source-text p{font-size:16px}.source-image{flex-basis:220px}.image-section{gap:20px}.image-section>.source-image{width:100%}.schedule-layout{grid-template-columns:1fr}.schedule-section .wrap{width:92%}.calendar{padding:20px}.footer-inner{grid-template-columns:1fr}.footer-inner>div:first-child{grid-column:auto}}
/* Keep each artwork and its title together at every screen width. */
.source-section.artwork-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 24px;align-items:start;padding:28px 0 42px}.artwork-grid>.source-text{grid-column:1/-1}.artwork-grid .source-image{width:100%;max-width:none;min-width:0}.artwork-grid .photo-open{padding:18px;background:var(--card);border:1px solid var(--line);transition:border-color .15s}.artwork-grid .photo-open:hover{border-color:var(--accent)}.artwork-grid .source-image img{aspect-ratio:4/3;height:auto;max-height:none;object-fit:contain;background:var(--card)}.source-image figcaption{margin:16px 0 0;text-align:left;padding:0 2px;line-height:1.45}.artwork-title{display:block;font-family:'DM Serif Display',Georgia,serif;font-size:24px;color:var(--ink);overflow-wrap:anywhere}.artwork-caption{display:block;font-size:14px;color:var(--muted);margin-top:5px}.carousel figcaption{text-align:center;min-height:48px;margin-top:14px}.carousel .artwork-title{font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600}.carousel .artwork-caption{font-size:13px}.source-section.split{margin:16px 0;padding:32px 0}.carousel .source-image img{height:390px}.booking-note{padding:16px 20px;border-left:3px solid var(--accent);background:var(--card);font-size:15px}.booking-link{display:inline-block;margin:14px 0 8px;padding:12px 16px;background:var(--green);color:white;font-size:14px;font-weight:600}.event small{display:block;font-size:12px;line-height:1.5;color:var(--muted)}@media(max-width:900px){.source-section.artwork-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.source-section.artwork-grid{grid-template-columns:1fr;gap:28px}.artwork-grid .photo-open{padding:14px}.artwork-title{font-size:23px}.carousel .source-image img{height:300px}}

/* Let the watercolor wash reach the viewport edges while the content stays aligned. */
html[data-theme=watercolor] body{overflow-x:clip}
html[data-theme=watercolor] .page-title{position:relative;isolation:isolate;background:none}
html[data-theme=watercolor] .page-title::before{content:"";position:absolute;z-index:-1;inset-block:0;left:50%;width:100vw;transform:translateX(-50%);background:radial-gradient(ellipse at top right,#d4e6ddaa,transparent 70%),radial-gradient(ellipse at bottom left,#e8d5e390,transparent 70%),var(--paper)}
html[data-theme=watercolor] .header{position:relative}
html[data-theme=watercolor] .header::after{content:"";position:absolute;bottom:0;left:50%;width:100vw;height:1px;transform:translateX(-50%);background:#c5d9d6;box-shadow:0 2px 8px #426b6912;pointer-events:none}

/* Give every slide a consistent, uncropped presentation like a framed print. */
.carousel{padding:clamp(16px,2.4vw,26px);border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,var(--surface),var(--paper))}
.carousel .photo-open{padding:10px;background:var(--card);border:1px solid var(--line);border-radius:4px;box-shadow:0 7px 24px #35444912}
.carousel .source-image img{height:clamp(280px,32vw,420px);max-height:none;object-fit:contain;background:var(--card)}
.carousel figcaption{min-height:44px;margin-top:16px;padding:0 8px}
.carousel .artwork-title{font-size:16px;line-height:1.4;color:var(--ink)}
.carousel-controls{gap:10px;margin-top:12px}
.carousel-controls button{border-radius:999px;transition:background .15s,border-color .15s}
.carousel-controls button:hover{background:var(--surface);border-color:var(--accent)}
.carousel-count{min-width:52px;text-align:center;color:var(--muted)}
@media(max-width:520px){.carousel .source-image img{height:300px}.carousel{padding:16px}.carousel .photo-open{padding:8px}}

/* Fill the slide with a soft echo of the photograph while keeping the original uncropped. */
.carousel .photo-open{display:grid;place-items:center;position:relative;overflow:hidden;padding:0;background:var(--surface);isolation:isolate}
.carousel .carousel-backdrop{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
.carousel .carousel-backdrop img{width:100%;height:100%;max-height:none;object-fit:cover;filter:blur(22px);transform:scale(1.12);opacity:.38}
.carousel .photo-open>img{height:clamp(320px,35vw,460px);width:100%;object-fit:contain;background:transparent;filter:drop-shadow(0 5px 14px #1c292d40)}
@media(max-width:520px){.carousel .photo-open{padding:0}.carousel .photo-open>img{height:340px}}

/* Use space and imagery to separate sections, instead of framing each block. */
.source-section.split{border:0;margin:12px 0;padding:48px 0}
.carousel{padding:0;border:0;border-radius:0;background:transparent}
.carousel .photo-open{border:0;border-radius:3px;box-shadow:none}
.carousel-controls button{background:transparent}
.page-title{border-bottom:0}
.artwork-grid .photo-open{padding:0;border:0;background:transparent}
.artwork-grid .source-image img{background:transparent}
@media(max-width:520px){.source-section.split{padding:32px 0}.carousel{padding:0}}
@media(max-width:520px){.artwork-grid .photo-open{padding:0}}

/* Registration brings the practical details together at the end of the page. */
.header nav a.nav-register{display:inline-flex;align-items:center;gap:10px;padding:12px 17px;border:1px solid var(--green);border-radius:999px;color:var(--green);white-space:nowrap;transition:background .15s,color .15s}
.header nav a.nav-register:hover{background:var(--green);color:var(--card)}
.registration-section{scroll-margin-top:20px;background:var(--surface)}
.registration-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:6%;margin-bottom:56px}
.registration-intro h2{font-size:clamp(42px,5vw,68px);margin:14px 0 0}
.registration-intro>div:last-child{max-width:520px;line-height:1.7}
.registration-intro p:last-child{margin-bottom:0}
.registration-note{color:var(--muted);font-size:15px}
.registration-contact{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:28px;align-items:start}
.registration-contact h3,.registration-dates>h3{font:400 30px/1.15 'DM Serif Display',Georgia,serif;letter-spacing:-.02em;margin:12px 0 16px}
.registration-contact p:not(.eyebrow){max-width:280px;line-height:1.7;margin-bottom:12px}
.registration-email,.registration-directions{display:inline-block;color:var(--green);text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere;line-height:1.6}
.registration-email{font-weight:600}
.registration-map{width:100%;height:220px;border:0;border-radius:4px}
.registration-dates{margin-top:70px}
.registration-schedule-note{max-width:750px;line-height:1.7}
.registration-dates .schedule-layout{margin-top:24px}
@media(max-width:1000px){.header nav{gap:14px}.header nav a.nav-register{padding:10px 13px}.registration-contact{grid-template-columns:1fr 1fr}.registration-map{grid-column:1/-1;height:260px}}
@media(max-width:800px){.registration-intro{grid-template-columns:1fr;gap:18px;margin-bottom:38px}.registration-contact{gap:30px}.registration-dates{margin-top:50px}.registration-intro h2{font-size:clamp(38px,9vw,58px)}}
@media(max-width:520px){.registration-contact{grid-template-columns:1fr}.registration-map{grid-column:auto;height:240px}.registration-section .wrap{width:88%}}

/* A simple circular portrait, without a colored image mat. */
.source-image img[src="/art/artist-portrait-enhanced.png"]{width:min(100%,400px);height:auto;aspect-ratio:1;max-height:none;margin-inline:auto;border-radius:50%;object-fit:cover;object-position:center 35%;background:transparent}
