
:root{--paper:#f7f4ee;--ink:#181816;--muted:#6d6961;--line:#d9d2c6;--soft:#ebe6dc;--warn:#7a3e2a;--ok:#275c3b;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}
a{color:inherit}.skip,.skip-link{position:absolute;left:-9999px}.skip:focus,.skip-link:focus{left:12px;top:12px;background:#fff;color:#171714;padding:10px;z-index:100}
.prototype{background:var(--ink);color:var(--paper);padding:8px 18px;text-align:center;font-size:11px;letter-spacing:.06em}
.wrap{width:min(var(--max),calc(100% - 48px));margin:auto}
header{border-bottom:1px solid var(--line);background:rgba(247,244,238,.97);position:sticky;top:0;z-index:20}
.navbar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{font-family:Georgia,'Times New Roman',serif;font-size:24px;letter-spacing:.08em;text-decoration:none;white-space:nowrap}
nav{display:flex;align-items:center;gap:22px;font-size:13px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}
.menu{display:none;border:1px solid var(--ink);background:transparent;padding:9px 12px;font:inherit}
main{min-height:60vh}.hero{padding:54px 0 86px}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.hero img{width:100%;max-height:660px;object-fit:contain;background:var(--soft);display:block}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--muted);font-size:11px;margin-bottom:15px}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;margin:0}h1{font-size:clamp(48px,6vw,88px);line-height:.98;letter-spacing:-.03em}
h2{font-size:clamp(34px,4vw,56px);line-height:1.08}h3{font-size:24px;line-height:1.2}
.lede{font-family:Georgia,'Times New Roman',serif;font-size:clamp(19px,2vw,25px);line-height:1.5}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;border:1px solid var(--ink);padding:12px 17px;text-decoration:none;font-size:13px;background:transparent}
.btn.primary{background:var(--ink);color:var(--paper)}.btn:hover{opacity:.72}
section.block{padding:86px 0;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:38px}
.section-head p{max-width:570px;color:var(--muted);margin:0}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.card{text-decoration:none}.card img,.art-placeholder{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--soft);display:block}
.art-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;padding:25px;color:var(--muted);border:1px solid var(--line)}
.card h3{margin-top:15px}.meta{font-size:12px;color:var(--muted);margin-top:6px}.badge{display:inline-block;margin-top:8px;padding:4px 7px;border:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.collections{display:grid;grid-template-columns:repeat(2,1fr);gap:38px}.collection{border-top:1px solid var(--ink);padding-top:18px}.collection h3{font-size:32px;margin-bottom:9px}
.text-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}.prose{max-width:760px}.prose p{font-family:Georgia,'Times New Roman',serif;font-size:20px}
.pagehead{padding:70px 0 48px}.pagehead h1{font-size:clamp(42px,5vw,72px)}.pagehead p{max-width:760px;font-family:Georgia,'Times New Roman',serif;font-size:21px}
.art-detail{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:55px;padding-bottom:90px}
.art-detail img,.art-detail .art-placeholder{width:100%;aspect-ratio:auto;min-height:420px;object-fit:contain;background:var(--soft)}
.facts{border-top:1px solid var(--line);margin-top:26px}.fact{display:grid;grid-template-columns:130px 1fr;gap:15px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.fact b{font-weight:600}.warning{border:1px solid var(--warn);padding:14px 16px;color:var(--warn);font-size:13px;margin:20px 0}
.oknote{border:1px solid var(--ok);padding:14px 16px;color:var(--ok);font-size:13px;margin:20px 0}
.archive-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}.archive-item{padding:18px 0;border-top:1px solid var(--line)}.archive-item a{text-decoration:none}.archive-item small{display:block;color:var(--muted)}
form{display:grid;gap:15px;max-width:760px}label{font-size:13px;font-weight:600}input,textarea,select{width:100%;padding:12px;border:1px solid #a9a397;background:#fff;font:inherit}textarea{min-height:140px}
footer{border-top:1px solid var(--line);padding:52px 0 66px;color:var(--muted);font-size:13px}.footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}
.small{font-size:12px;color:var(--muted)}.internal{background:#fff3ef;border:1px solid #d6a393;padding:10px 12px;font-size:12px}
@media(max-width:900px){.wrap{width:min(var(--max),calc(100% - 30px))}.menu{display:block}nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--paper);border-bottom:1px solid var(--line);padding:18px 15px;flex-direction:column;align-items:flex-start}nav.open{display:flex}.hero-grid,.art-detail,.text-grid{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.collections{grid-template-columns:1fr}.hero{padding-top:30px}.section-head{display:block}.section-head p{margin-top:14px}.footer{grid-template-columns:1fr 1fr}.archive-list{grid-template-columns:1fr}}
@media(max-width:580px){.grid,.footer{grid-template-columns:1fr}section.block{padding:62px 0}.pagehead{padding-top:50px}.fact{grid-template-columns:1fr}.prototype{font-size:9px}}

.art-detail .identity-only{display:block;text-align:center}.art-detail .identity-only img{width:auto;max-width:100%;height:auto;display:inline-block}.identity-note{font-size:12px;color:var(--warn);margin-top:10px}

.asset-note{font-size:12px;color:var(--muted);margin-top:8px}.identity-only img{width:auto;max-width:100%;height:auto;display:inline-block}

.nav-cta{border:1px solid var(--ink);padding:8px 11px;text-decoration:none!important}
.nav-cta:hover{background:var(--ink);color:var(--paper);opacity:1}
.current-work-intro{max-width:820px}
.current-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.intent-card{border-top:1px solid var(--ink);padding-top:18px}
.intent-card h3{margin-bottom:8px}
.contact-prompt{background:var(--soft);padding:34px}
.context-note{font-size:13px;color:var(--muted);margin-top:10px}
@media(max-width:980px){nav{gap:14px;font-size:12px}}
@media(max-width:760px){.current-work-grid{grid-template-columns:1fr}}

.contact-direct{border:1px solid var(--line);padding:24px 26px;margin-bottom:34px;background:#fff}
.contact-direct h2{margin-bottom:12px;font-size:28px}
.contact-direct p{margin:.45rem 0}
.contact-direct a{font-weight:600}
button:disabled{opacity:.55;cursor:not-allowed}

body{overflow-x:hidden}
a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.menu{min-width:44px;min-height:44px}
nav a{min-height:36px;display:inline-flex;align-items:center}
@media(max-width:1100px){.navbar .menu{display:block}.navbar nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--paper);border-bottom:1px solid var(--line);padding:18px 15px;flex-direction:column;align-items:flex-start}.navbar nav.open{display:flex}}
.card{display:block}
.card picture{display:block;background:var(--soft)}
.card:hover h3{text-decoration:underline;text-underline-offset:3px}
.contact-direct a{text-decoration-thickness:1px;text-underline-offset:3px}
@media(max-width:900px){
  nav{max-height:calc(100vh - 78px);overflow:auto}
  nav a{width:100%;padding:8px 0;min-height:44px}
}
@media(max-width:580px){
  h1{font-size:clamp(40px,13vw,60px)}
  .hero{padding-bottom:62px}
  .navbar{min-height:70px}
  nav{top:70px}
  .brand{font-size:21px}
  .actions .btn{width:100%;text-align:center}
}

/* v1.3 visual experience */
.cinema-hero{position:relative;min-height:min(900px,92vh);display:grid;align-items:end;overflow:hidden;background:#171714;color:#fff}
.cinema-hero__image{position:absolute;inset:0}.cinema-hero__image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.68))}
.cinema-hero__image img{width:100%;height:100%;object-fit:cover;display:block}
.cinema-hero__copy{position:relative;z-index:2;padding-top:150px;padding-bottom:78px}.cinema-hero h1{max-width:920px;color:#fff;font-size:clamp(48px,7vw,100px);line-height:.96}.cinema-hero .lede{max-width:650px;font-size:clamp(20px,2.3vw,30px);color:#eee}.cinema-hero .eyebrow{color:#ddd}.cinema-hero .btn{border-color:#ddd;color:#fff}.cinema-hero .btn.primary{background:#fff;color:#171714}
.exhibition-intro{padding-top:110px;padding-bottom:90px;text-align:center;max-width:900px}.exhibition-intro h2{font-size:clamp(40px,5vw,70px)}
.story-panels{display:grid;gap:2px;background:#ddd}.story-panel{position:relative;min-height:70vh;overflow:hidden;background:#222;color:#fff}.story-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.story-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.65),rgba(0,0,0,.02) 70%)}.story-panel span{position:absolute;z-index:2;left:max(5vw,30px);bottom:max(5vw,36px);max-width:760px}.story-panel small{display:block;text-transform:uppercase;letter-spacing:.16em;margin-bottom:12px}.story-panel strong{font-family:Georgia,serif;font-size:clamp(34px,5vw,72px);line-height:1.02;font-weight:400}.story-panel:hover img{transform:scale(1.025)}
.wall-feature{padding:110px 0;background:#ebe7df}.wall-feature__grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:70px;align-items:center}
.room-preview{position:relative;min-height:520px;background:linear-gradient(180deg,#f6f3ec 0 76%,#cfc6b8 76%);overflow:hidden;box-shadow:0 25px 60px rgba(0,0,0,.13)}.room-light{position:absolute;width:65%;height:80%;left:18%;top:-30%;background:radial-gradient(ellipse,rgba(255,255,255,.95),rgba(255,255,255,0) 67%)}.room-art{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);max-width:52%;max-height:56%;padding:10px;background:#f8f5ef;box-shadow:0 18px 28px rgba(0,0,0,.25)}.room-art img{display:block;max-width:100%;max-height:320px;object-fit:contain}.room-floor{position:absolute;left:0;right:0;bottom:0;height:24%;background:#bfb3a2;opacity:.65}.room-preview--artwork{max-width:1050px;margin:32px auto;min-height:620px}
.places-teaser{padding-top:110px;padding-bottom:110px;text-align:center}.place-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:32px 0}.place-chips a{padding:12px 20px;border:1px solid var(--line);border-radius:999px;background:#fff}
.contact-band{padding:90px 0;background:#171714;color:#fff}.contact-band h2{color:#fff;font-size:clamp(38px,5vw,66px);max-width:900px}.contact-band p{color:#ddd;max-width:720px}.contact-band .btn{color:#fff;border-color:#ccc}.contact-band .btn.primary{background:#fff;color:#171714}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.story-card img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--soft)}.story-card h2{font-size:28px;margin-top:14px}
@media(max-width:800px){.cinema-hero{min-height:78vh}.story-panel{min-height:58vh}.wall-feature__grid{grid-template-columns:1fr;gap:38px}.room-preview,.room-preview--artwork{min-height:420px}.story-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.story-panel img{transition:none}}

/* v4.4: artwork-first homepage. The complete painting remains visible. */
.cinema-hero{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(440px,.95fr);
  align-items:stretch;
  background:#171714;
}
.cinema-hero__image{position:relative;inset:auto;min-height:72vh;background:#23221f;display:grid;place-items:center}
.cinema-hero__image:after{display:none}
.cinema-hero__image img{width:100%;height:100%;max-height:88vh;object-fit:contain}
.cinema-hero__copy{padding:clamp(58px,8vw,120px) clamp(30px,5vw,76px);width:auto;align-self:center}
.cinema-hero h1{max-width:12ch;font-size:clamp(44px,4.6vw,68px);letter-spacing:-.035em;text-wrap:balance}
.cinema-hero .lede{font-size:clamp(18px,1.7vw,24px)}
@media(max-width:900px){
  .cinema-hero{grid-template-columns:1fr}
  .cinema-hero__image{min-height:0;height:auto}
  .cinema-hero__image img{height:auto;max-height:none}
  .cinema-hero__copy{padding:48px 24px 58px}
}

/* v4.5 artwork-first sizing: no oversized empty frames behind paintings. */
.grid{align-items:start}
.card picture{background:transparent}
.card img,.story-card img{
  width:auto;
  max-width:100%;
  height:auto;
  aspect-ratio:auto;
  max-height:none;
  object-fit:contain;
  object-position:center;
  background:transparent;
  margin-inline:auto;
}
.catalogue-grid .card img{max-height:none}

.room-preview--artwork{
  min-height:0;
  max-width:860px;
  margin:28px auto 0;
  padding:28px;
  display:grid;
  place-items:center;
  background:#eee9e0;
  box-shadow:none;
}
.room-preview--artwork .room-light,
.room-preview--artwork .room-floor{display:none}
.room-preview--artwork .room-art{
  position:static;
  transform:none;
  width:auto;
  max-width:760px;
  max-height:none;
  padding:7px;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}
.room-preview--artwork .room-art img{
  width:auto;
  max-width:100%;
  height:auto;
  max-height:600px;
}

.premium-stage{min-height:0}
.premium-stage__room{padding:clamp(22px,4vw,48px)}
.premium-frame{padding:7px;border-width:6px;box-shadow:0 12px 26px rgba(0,0,0,.2)}
.premium-frame img{max-height:min(62vh,620px)}
.gallery-room{min-height:620px}
.gallery-room__back{top:6%;bottom:12%}
.walk-frame{padding:7px;border-width:6px}
.walk-frame img{max-height:300px}

@media(max-width:700px){
  .room-preview--artwork{padding:16px;margin-top:20px}
  .card img,.story-card img,.catalogue-grid .card img{max-height:none}
  .gallery-room{min-height:540px}
}

/* v4.9: clearly qualified historical catalogue dimensions. */
.artwork-record{padding:0 0 clamp(46px,6vw,72px)}
.artwork-record>.wrap{max-width:1240px}
.artwork-recorded-details{margin:0;padding:18px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.artwork-recorded-details>div{display:grid;grid-template-columns:minmax(170px,.35fr) 1fr;gap:24px;align-items:baseline}
.artwork-recorded-details dt{font-size:11px;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.artwork-recorded-details dd{margin:0;font-family:var(--serif);font-size:clamp(21px,2.2vw,28px)}
.artwork-record .artwork-recorded-details+p{margin:11px 0 0;font-size:12px;color:var(--muted)}
@media(max-width:580px){.artwork-recorded-details>div{grid-template-columns:1fr;gap:4px}}

/* v5.1: orientation, current location and sequential browsing. */
nav a.is-current{color:var(--ink)}
nav a.is-current:after{right:0;height:2px}
.gallery-page nav a.is-current{color:#fff}

.breadcrumbs{display:block;border-bottom:1px solid var(--line);background:#f1ede5;color:var(--muted)}
.breadcrumbs .wrap{display:flex;align-items:center;gap:9px;min-height:42px;overflow:hidden;font-size:11px;line-height:1.3;white-space:nowrap}
.breadcrumbs a{min-height:auto;display:inline;color:var(--ink);text-underline-offset:3px}
.breadcrumbs span[aria-current="page"]{overflow:hidden;text-overflow:ellipsis}

.portfolio-index{display:block;position:sticky;top:76px;z-index:12;border-block:1px solid var(--line);background:rgba(247,244,238,.96);backdrop-filter:blur(12px)}
.portfolio-index .wrap{display:flex;align-items:center;gap:8px;min-height:58px;overflow-x:auto;scrollbar-width:thin}
.portfolio-index span{flex:none;margin-right:7px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.portfolio-index a{flex:none;min-height:auto;padding:8px 12px;border:1px solid var(--line);font-size:12px;text-decoration:none}
.portfolio-index a:hover,.portfolio-index a:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.portfolio-group{scroll-margin-top:156px}

.artwork-sequence{display:block;border-top:1px solid var(--line);background:#f1ede5}
.artwork-sequence>.wrap{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:1px;padding-block:0}
.artwork-sequence a{min-height:108px;padding:23px clamp(12px,2.5vw,30px);display:flex;flex-direction:column;justify-content:center;text-decoration:none;background:var(--paper)}
.artwork-sequence a:hover,.artwork-sequence a:focus-visible{background:#e7e1d7}
.artwork-sequence small{font:700 10px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.artwork-sequence strong{font:400 clamp(17px,1.7vw,22px)/1.25 var(--serif);text-wrap:balance}
.artwork-sequence__next{text-align:right;align-items:flex-end}
.artwork-sequence__all{align-items:center!important;min-height:108px!important;padding-inline:24px!important;font-size:11px!important;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}

@media(max-width:1100px){
  body.menu-open{overflow:hidden}
  .navbar nav.open{display:flex;max-height:calc(100vh - 76px);overflow:auto}
  .navbar nav a.is-current{font-weight:750}
  .navbar nav a.is-current:before{content:"Current";margin-right:10px;color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase}
}
@media(max-width:700px){
  .portfolio-index{top:70px}
  .portfolio-index .wrap{min-height:54px}
  .portfolio-group{scroll-margin-top:140px}
  .artwork-sequence>.wrap{grid-template-columns:1fr 1fr}
  .artwork-sequence__all{grid-column:1/-1;grid-row:2;min-height:54px!important;border-top:1px solid var(--line)}
  .artwork-sequence a:not(.artwork-sequence__all){min-height:116px;padding:20px 12px}
  .artwork-sequence__spacer{display:block;background:var(--paper)}
}

/* v4.5.2 homepage collection triptych: preserve every painting's full composition. */
.story-panels{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:#cfc8bc;
}
.story-panel{
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#171714;
  color:var(--ink);
}
.story-panel img{
  position:relative;
  inset:auto;
  width:100%;
  height:420px;
  object-fit:contain;
  object-position:center;
  background:#171714;
}
.story-panel:after{display:none}
.story-panel span{
  position:static;
  display:block;
  max-width:none;
  padding:24px 26px 28px;
  background:var(--paper);
  color:var(--ink);
  flex:1;
}
.story-panel small{color:var(--muted);margin-bottom:8px}
.story-panel strong{font-size:clamp(25px,2.2vw,36px);line-height:1.08}
.story-panel:hover img{transform:none}

@media(max-width:900px){
  .story-panels{grid-template-columns:1fr}
  .story-panel img{height:min(68vh,560px)}
  .story-panel span{padding:22px 20px 26px}
}

/* v4.5.5: prevent the homepage floor layer overlapping the framed painting. */
.wall-feature .room-art{
  top:42%;
  z-index:2;
  max-height:none;
}
.wall-feature .room-art img{max-height:280px}
.wall-feature .room-floor{z-index:1}

/* v4.6.1: contain legacy full-size artwork images within the page grid. */
.artwork-image{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
}

/* v4.6: consistent type, spacing and controls across the five core pages. */
.core-page .pagehead h1{font-size:clamp(42px,5vw,68px);line-height:1.02}
.core-page section.block{padding:72px 0}
.core-page section.block h2{font-size:clamp(34px,3.5vw,46px);line-height:1.1}
.core-page .prose p{font-size:19px;line-height:1.58}
.core-page .section-head{align-items:start;margin-bottom:32px}
.current-work-page .current-work-intro{
  width:min(820px,calc(100% - 48px));
  margin-left:max(24px,calc((100vw - var(--max))/2));
  margin-right:auto;
}

.portfolio-page .portfolio-group .card h2{
  margin:14px 0 0;
  font-size:clamp(19px,1.7vw,23px);
  line-height:1.22;
  letter-spacing:0;
}
.portfolio-page .portfolio-group{padding:54px 0}
.portfolio-page .portfolio-group .grid{gap:42px 30px}

.commission-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.commission-steps li{border-top:1px solid var(--ink);padding-top:16px}
.commission-steps span{display:block;color:var(--muted);font-size:11px;letter-spacing:.15em;margin-bottom:26px}
.commission-steps h3{margin-bottom:10px}
.commission-steps p{margin:0;color:var(--muted)}
.commission-brief{background:var(--soft)}
.commission-examples .card h3{margin-top:14px}
.commission-examples img{max-height:320px}

.about-visual{background:#171714;color:var(--paper)}
.about-visual .section-head p{color:#c8c2b8}
.about-artworks{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.about-artworks a{color:var(--paper);text-decoration:none}
.about-artworks img{display:block;width:100%;height:360px;object-fit:contain;background:#0d0d0c}
.about-artworks span{display:block;padding-top:13px;font:18px/1.35 Georgia,'Times New Roman',serif}

.contact-page input:not([type="hidden"]):not([type="checkbox"]),
.contact-page select{height:52px}
.contact-page textarea{min-height:140px}
.contact-page .enquiry-form .btn{min-height:47px;padding:12px 17px;font-family:Arial,Helvetica,sans-serif}
.contact-page .contact-sidebar h2{font-size:30px;line-height:1.12}
.contact-page .contact-layout{grid-template-columns:minmax(0,1.5fr) minmax(310px,.5fr)}

@media(max-width:900px){
  .core-page section.block{padding:58px 0}
  .current-work-page .current-work-intro{width:calc(100% - 30px);margin-left:15px}
  .commission-steps{grid-template-columns:1fr 1fr}
  .about-artworks{grid-template-columns:1fr}
  .about-artworks img{height:auto;max-height:520px}
}
@media(max-width:580px){
  .commission-steps{grid-template-columns:1fr}
}

.map-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:36px;align-items:start}
.map-stage{position:relative;min-height:680px;border:1px solid var(--line);overflow:hidden;background:linear-gradient(180deg,#dbe7ea,#c9dde3);isolation:isolate}
.map-stage__sea{position:absolute;inset:0;background:radial-gradient(circle at 22% 25%,rgba(255,255,255,.35),transparent 24%),radial-gradient(circle at 75% 75%,rgba(255,255,255,.22),transparent 30%)}
.map-land{position:absolute;background:#b8b79d;border:1px solid rgba(0,0,0,.16);box-shadow:inset 0 0 50px rgba(255,255,255,.16)}
.map-land span{position:absolute;font-family:Georgia,serif;color:rgba(0,0,0,.45);font-size:18px}
.map-land--scotland{left:16%;top:10%;width:39%;height:69%;clip-path:polygon(42% 0,58% 8%,54% 19%,69% 25%,58% 35%,72% 45%,59% 54%,65% 67%,50% 100%,36% 88%,32% 70%,21% 61%,31% 48%,16% 38%,25% 24%)}
.map-land--scotland span{left:36%;top:42%}
.map-land--italy{right:9%;bottom:8%;width:23%;height:47%;clip-path:polygon(38% 0,63% 12%,55% 30%,70% 44%,61% 58%,86% 68%,74% 82%,51% 67%,42% 45%,21% 31%)}
.map-land--italy span{left:38%;top:45%}
.place-marker{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;border:2px solid #fff;background:#171714;color:#fff;display:grid;place-items:center;box-shadow:0 5px 15px rgba(0,0,0,.24);z-index:5;cursor:pointer;transition:transform .18s ease,background .18s ease}
.place-marker:hover,.place-marker:focus-visible,.place-marker.is-active{transform:translate(-50%,-50%) scale(1.14);background:#6d382e}
.map-note{position:absolute;left:18px;bottom:14px;right:18px;margin:0;font-size:12px;color:rgba(0,0,0,.62);z-index:6}
.map-detail{position:sticky;top:110px}.place-card{display:none;border-top:1px solid var(--ink);padding-top:22px}.place-card.is-active{display:block}.place-card h2{font-size:40px}.place-card__links{display:grid;gap:10px;margin-top:26px}.place-card__links a{padding:12px 0;border-bottom:1px solid var(--line)}
@media(max-width:900px){.map-layout{grid-template-columns:1fr}.map-stage{min-height:560px}.map-detail{position:static}}
@media(max-width:560px){.map-stage{min-height:480px}.place-marker{width:38px;height:38px}.map-land span{display:none}}

/* v1.5 immersive virtual gallery */
.gallery-page{background:#11110f}
.gallery-page header{background:rgba(249,247,242,.96)}
.gallery-intro{background:#11110f;color:#fff;padding:86px 0 58px}
.gallery-intro h1{color:#fff;font-size:clamp(52px,8vw,108px);line-height:.95;max-width:950px}
.gallery-intro p{color:#d8d5cf;max-width:760px}
.virtual-room{position:relative;min-height:760px;overflow:hidden;background:#ded9cf;perspective:1100px;isolation:isolate}
.gallery-ceiling{position:absolute;left:12%;right:12%;top:-2%;height:28%;background:linear-gradient(#f7f4ed,#dfdbd2);transform-origin:top;transform:rotateX(-62deg);z-index:1}
.gallery-floor{position:absolute;left:-8%;right:-8%;bottom:-22%;height:58%;background:linear-gradient(180deg,#c9bfaf,#8f8171);transform-origin:bottom;transform:rotateX(64deg);z-index:1}
.gallery-wall--left,.gallery-wall--right{position:absolute;top:3%;bottom:8%;width:34%;background:linear-gradient(90deg,#c7c2b8,#eee9e1);z-index:2}
.gallery-wall--left{left:-20%;transform:skewY(3deg)}
.gallery-wall--right{right:-20%;transform:skewY(-3deg);background:linear-gradient(270deg,#c7c2b8,#eee9e1)}
.gallery-back-wall{position:absolute;left:15%;right:15%;top:10%;bottom:19%;background:#f3f0e9;box-shadow:inset 0 0 70px rgba(0,0,0,.09);z-index:3;display:grid;place-items:center}
.gallery-back-wall:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 8%,rgba(255,255,255,.95),rgba(255,255,255,0) 55%)}
.gallery-artwork{position:relative;z-index:2;width:min(72%,880px);height:100%;display:grid;grid-template-rows:auto 1fr;align-items:center;justify-items:center;padding:36px 20px 48px}
.gallery-artwork[hidden]{display:none!important}
.gallery-wall-label{text-align:center;align-self:start}
.gallery-wall-label h2{font-size:clamp(24px,3vw,42px);margin:.2em 0 .4em}
.gallery-frame{display:grid;place-items:center;max-width:78%;max-height:74%;padding:14px;background:#eee9df;border:10px solid #2c2925;box-shadow:0 22px 35px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.25) inset;transition:transform .4s ease,box-shadow .4s ease}
.gallery-frame:hover{transform:translateY(-4px) scale(1.008);box-shadow:0 28px 45px rgba(0,0,0,.28)}
.gallery-frame img{display:block;max-width:100%;max-height:430px;object-fit:contain}
.gallery-controls{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:18px;background:rgba(20,20,18,.88);color:#fff;border-radius:999px;padding:9px 14px;backdrop-filter:blur(8px)}
.gallery-arrow{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;font-size:24px;cursor:pointer}
.gallery-arrow:hover,.gallery-arrow:focus-visible{background:#fff;color:#111}
.gallery-count{min-width:58px;text-align:center;font-variant-numeric:tabular-nums}
.gallery-thumbnails{background:#f5f1ea;padding:62px 0 82px}
.gallery-thumb-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.gallery-thumb{border:1px solid transparent;background:transparent;padding:7px;cursor:pointer;text-align:left}
.gallery-thumb img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#e7e1d7;display:block}
.gallery-thumb span{display:block;font-size:12px;line-height:1.3;margin-top:8px}
.gallery-thumb.is-active{border-color:#171714;background:#fff}
.footer-gallery-link{margin-top:10px}
@media(max-width:900px){
 .virtual-room{min-height:650px}
 .gallery-back-wall{left:7%;right:7%;top:10%;bottom:22%}
 .gallery-frame{max-width:88%}
 .gallery-thumb-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:580px){
 .gallery-intro{padding-top:58px}
 .virtual-room{min-height:570px}
 .gallery-ceiling{left:0;right:0}
 .gallery-back-wall{left:3%;right:3%;top:8%;bottom:25%}
 .gallery-artwork{width:100%;padding:26px 12px 34px}
 .gallery-frame{max-width:94%;border-width:7px;padding:8px}
 .gallery-frame img{max-height:300px}
 .gallery-thumb-grid{grid-template-columns:repeat(2,1fr)}
 .gallery-controls{bottom:7%;gap:8px}
}
@media(prefers-reduced-motion:reduce){
 .gallery-frame{transition:none}
}

/* v1.6 multi-room gallery walk */
.gallery-walk{position:relative;background:#10100e;color:#fff;overflow:hidden}
.gallery-room{position:relative;min-height:790px;perspective:1250px;overflow:hidden;background:#cfc7ba}
.gallery-room[hidden]{display:none!important}
.gallery-room__ceiling,.gallery-room__floor,.gallery-room__left,.gallery-room__right,.gallery-room__back{position:absolute}
.gallery-room__ceiling{left:7%;right:7%;top:-19%;height:42%;background:linear-gradient(#faf8f3,#d6d0c6);transform-origin:top;transform:rotateX(-66deg);z-index:1}
.gallery-room__floor{left:-9%;right:-9%;bottom:-30%;height:70%;background:linear-gradient(#b9aa98,#756859);transform-origin:bottom;transform:rotateX(68deg);z-index:1}
.gallery-room__left{left:-25%;top:0;bottom:0;width:43%;background:linear-gradient(90deg,#b8b0a5,#eee9df);transform:skewY(4deg);z-index:2}
.gallery-room__right{right:-25%;top:0;bottom:0;width:43%;background:linear-gradient(270deg,#b8b0a5,#eee9df);transform:skewY(-4deg);z-index:2}
.gallery-room__back{left:14%;right:14%;top:7%;bottom:16%;background:#f5f1e9;box-shadow:inset 0 0 80px rgba(0,0,0,.09);z-index:3;padding:34px 48px}
.gallery-room__back:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0,rgba(255,255,255,.95),rgba(255,255,255,0) 55%);pointer-events:none}
.gallery-room__heading{position:relative;z-index:2;text-align:center;color:#1d1c19}
.gallery-room__heading h2{font-size:clamp(28px,4vw,52px);margin:.25em 0 .3em}
.walk-artworks{position:relative;z-index:2;height:72%;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;padding:10px 4vw 0}
.walk-art{display:grid;justify-items:center;text-align:center;color:#171714}
.walk-frame{display:grid;place-items:center;padding:11px;background:#eee9df;border:10px solid #2a2723;box-shadow:0 20px 30px rgba(0,0,0,.22);transition:transform .4s ease,box-shadow .4s ease}
.walk-art:hover .walk-frame{transform:translateY(-6px) scale(1.012);box-shadow:0 28px 40px rgba(0,0,0,.28)}
.walk-frame img{display:block;max-width:100%;max-height:360px;object-fit:contain}
.walk-label{font-family:Georgia,serif;font-size:18px;line-height:1.25;margin-top:16px;max-width:330px}
.room-nav{position:absolute;left:50%;bottom:3.5%;transform:translateX(-50%);z-index:10;display:flex;gap:16px;align-items:center;background:rgba(15,15,13,.9);padding:10px 14px;border-radius:999px;backdrop-filter:blur(8px)}
.room-nav>button{border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;padding:11px 15px;border-radius:999px;cursor:pointer}
.room-nav>button:hover,.room-nav>button:focus-visible{background:#fff;color:#111}
.room-dots{display:flex;gap:8px}
.room-dots button{width:11px;height:11px;padding:0;border-radius:50%;border:1px solid #fff;background:transparent;cursor:pointer}
.room-dots button.is-active{background:#fff}
@media(max-width:850px){
 .gallery-room{min-height:710px}
 .gallery-room__back{left:5%;right:5%;top:6%;bottom:20%;padding:28px 22px}
 .walk-artworks{gap:18px;padding-left:0;padding-right:0}
 .walk-frame{border-width:7px}
 .walk-frame img{max-height:270px}
}
@media(max-width:580px){
 .gallery-room{min-height:780px}
 .gallery-room__back{left:2%;right:2%;bottom:17%;padding:20px 14px}
 .walk-artworks{grid-template-columns:1fr;height:auto;gap:24px}
 .walk-frame img{max-height:210px}
 .walk-label{font-size:15px;margin-top:10px}
 .room-nav{bottom:2%;width:92%;justify-content:space-between}
 .room-nav>button{font-size:12px;padding:10px 12px}
}
@media(prefers-reduced-motion:reduce){
 .walk-frame{transition:none}
}

/* v1.8 gallery alignment + above-the-fold correction */
.gallery-intro{
  padding:40px 0 28px;
}
.gallery-intro h1{
  font-size:clamp(42px,6vw,76px);
  margin-bottom:14px;
}
.gallery-intro p{
  margin-bottom:0;
}
.gallery-walk{
  min-height:calc(100vh - 220px);
}
.gallery-room{
  min-height:620px;
  height:calc(100vh - 220px);
  max-height:760px;
}
.gallery-room__back{
  left:12%;
  right:12%;
  top:5%;
  bottom:14%;
  padding:22px 34px 26px;
  display:grid;
  grid-template-rows:auto 1fr;
}
.gallery-room__heading{
  min-height:78px;
}
.gallery-room__heading h2{
  font-size:clamp(24px,3vw,40px);
  margin:.15em 0 .2em;
}
.walk-artworks{
  height:auto;
  min-height:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5vw;
  align-items:center;
  justify-items:center;
  padding:0 2vw;
}
.walk-art{
  width:100%;
  height:100%;
  display:grid;
  grid-template-rows:1fr auto;
  align-items:center;
  justify-items:center;
  text-align:center;
}
.walk-frame{
  width:min(100%,420px);
  height:min(46vh,360px);
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px;
  border:10px solid #2a2723;
  background:#eee9df;
  box-sizing:border-box;
}
.walk-frame img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.walk-label{
  min-height:48px;
  margin-top:12px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
}
.room-nav{
  bottom:2.2%;
}
@media(max-width:1100px){
  .gallery-room{
    height:calc(100vh - 205px);
    min-height:600px;
  }
  .walk-frame{
    height:min(42vh,330px);
  }
}
@media(max-width:850px){
  .gallery-intro{
    padding:30px 0 22px;
  }
  .gallery-room{
    height:auto;
    min-height:690px;
    max-height:none;
  }
  .gallery-room__back{
    left:4%;
    right:4%;
    top:4%;
    bottom:18%;
    padding:20px 18px;
  }
  .walk-artworks{
    gap:18px;
    padding:0;
  }
  .walk-frame{
    width:min(100%,330px);
    height:280px;
    min-height:240px;
    border-width:8px;
  }
}
@media(max-width:580px){
  .gallery-intro h1{
    font-size:clamp(38px,11vw,54px);
  }
  .gallery-room{
    min-height:760px;
  }
  .gallery-room__back{
    bottom:16%;
    grid-template-rows:auto 1fr;
  }
  .gallery-room__heading{
    min-height:64px;
  }
  .walk-artworks{
    grid-template-columns:1fr;
    gap:18px;
  }
  .walk-frame{
    width:min(92vw,360px);
    height:230px;
    min-height:210px;
    border-width:7px;
  }
  .walk-label{
    min-height:34px;
    margin-top:8px;
  }
}


/* v3.2 curated portfolio and artwork editorial layout */
.portfolio-group + .portfolio-group{margin-top:clamp(54px,8vw,96px)}
.portfolio-group .section-head{margin-bottom:24px}
.archive-cta{margin-top:clamp(64px,9vw,110px);padding:clamp(28px,5vw,52px);border:1px solid var(--line);background:var(--paper)}
.archive-cta p{max-width:58ch}
.artwork-story{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:clamp(36px,7vw,90px);align-items:start}
.artwork-enquiry{padding:28px;border:1px solid var(--line);background:var(--paper)}
.artwork-enquiry h2{margin-top:0}
.artwork-enquiry dl{margin:0 0 26px}
.artwork-enquiry dl div{padding:12px 0;border-bottom:1px solid var(--line)}
.artwork-enquiry dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.artwork-enquiry dd{margin:5px 0 0}
.artwork-enquiry .btn{width:100%;text-align:center}
.artwork-enquiry .text-link{display:block;margin-top:18px;text-align:center}
@media (max-width:760px){.artwork-story{grid-template-columns:1fr}}


/* v3.3 artist story */
.artist-intro__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.75fr);gap:clamp(40px,7vw,96px);align-items:center}
.artist-intro p{max-width:760px}
.artist-portrait{margin:0;justify-self:end;width:min(100%,520px)}
.artist-portrait img{display:block;width:100%;height:auto;aspect-ratio:960/877;object-fit:cover;object-position:center top}
.artist-portrait figcaption{margin-top:10px;font:11px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.artist-story-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:clamp(42px,8vw,110px);align-items:start}
.artist-method{background:var(--soft)}
.artist-subjects{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.artist-subjects a{padding:26px 28px 34px 0;text-decoration:none;border-right:1px solid var(--line)}
.artist-subjects a+a{padding-left:28px}
.artist-subjects a:last-child{border-right:0}
.artist-subjects span{font-size:11px;color:var(--muted);letter-spacing:.12em}
.artist-subjects h3{margin:18px 0 8px}
.artist-subjects p{color:var(--muted);margin:0}
.source-links{font-family:Arial,Helvetica,sans-serif!important;font-size:13px!important;color:var(--muted)}
.source-links a{text-underline-offset:3px}
.artist-proof{padding:clamp(58px,9vw,110px) 0;background:var(--ink);color:var(--paper)}
.artist-proof__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,8vw,100px)}
.artist-proof p:not(.eyebrow){font-family:Georgia,'Times New Roman',serif;font-size:clamp(20px,2vw,28px);margin-top:0}
.timeline article{display:grid;grid-template-columns:140px 1fr;gap:30px;padding:34px 0;border-top:1px solid var(--line)}
.timeline time{font-family:Georgia,'Times New Roman',serif;font-size:30px}
.timeline h2{font-size:clamp(28px,3vw,42px);margin-bottom:9px}
.timeline p{max-width:680px;margin:0;color:var(--muted)}
@media(max-width:760px){.artist-story-grid,.artist-proof__grid{grid-template-columns:1fr}.artist-subjects{grid-template-columns:1fr}.artist-subjects a,.artist-subjects a+a{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}.timeline article{grid-template-columns:1fr;gap:8px}}

/* Charity record */
.charity-intro{background:#f3efe7}
.charity-causes{background:#171714;color:var(--paper)}
.charity-causes .section-head p{color:#c8c2b8}
.charity-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.charity-groups article{padding:30px 30px 34px 0}
.charity-groups article+article{padding-left:30px;border-left:1px solid rgba(255,255,255,.2)}
.charity-groups span{display:block;color:#c6ab78;font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.charity-groups h3{margin:10px 0 20px;color:var(--paper);font:28px/1.15 Georgia,'Times New Roman',serif}
.charity-groups ul{list-style:none;margin:0;padding:0;color:#ddd7cd}
.charity-groups li{padding:9px 0;border-top:1px solid rgba(255,255,255,.12)}
.charity-timeline h3{font-size:clamp(25px,2.6vw,36px);margin:0 0 9px}
.charity-timeline .text-link{display:inline-block;margin-top:14px;font-weight:700;text-underline-offset:4px}
.charity-timeline em{font-family:Georgia,'Times New Roman',serif}
@media(max-width:760px){.charity-groups{grid-template-columns:1fr}.charity-groups article{padding:26px 0}.charity-groups article+article{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.2)}}

@media(max-width:760px){.artist-intro__grid{grid-template-columns:1fr}.artist-portrait{justify-self:start;width:min(100%,520px)}}


/* v3.4 enquiry journey */
.contact-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:clamp(38px,7vw,86px);align-items:start}
.contact-heading{align-items:start}.contact-heading h2{max-width:650px}
.enquiry-form{max-width:none}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.enquiry-form label{display:block;margin-bottom:7px}.enquiry-form .optional{font-weight:400;color:var(--muted);font-size:11px;margin-left:5px}
.form-consent{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start}.form-consent input{width:18px;height:18px;margin-top:3px}.form-consent label{font-weight:400;margin:0}
.enquiry-form button{width:max-content;cursor:pointer}.form-status{min-height:1.6em;color:var(--ok);font-size:13px}
.catalogue-grid{list-style:none;margin:34px 0;padding:0}.catalogue-card{height:100%}.catalogue-card .card-body{display:flex;flex:1;flex-direction:column}.catalogue-card h2{font-size:clamp(18px,2vw,24px)}.catalogue-ref{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.14em;margin:0 0 8px;text-transform:uppercase}.catalogue-card .text-link{margin-top:auto;padding-top:16px}.pagination{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pagination a,.pagination-current{align-items:center;border:1px solid var(--line);display:inline-flex;height:42px;justify-content:center;min-width:42px;padding:0 12px;text-decoration:none}.pagination a:hover{border-color:var(--ink)}.pagination-current{background:var(--ink);border-color:var(--ink);color:#fff}.pagination-step{min-width:92px!important}
.form-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.contact-sidebar{position:sticky;top:110px;margin:0}.contact-sidebar h2{font-size:32px}.contact-sidebar a{overflow-wrap:anywhere}
.artwork-contact-strip{padding:clamp(48px,7vw,78px) 0;background:var(--ink);color:var(--paper)}
.artwork-contact-strip__inner{display:flex;align-items:center;justify-content:space-between;gap:36px}
.artwork-contact-strip h2{font-size:clamp(28px,3.5vw,46px)}.artwork-contact-strip p:not(.eyebrow){margin-bottom:0;color:#d7d1c7}
.artwork-contact-strip .btn.primary{background:var(--paper);color:var(--ink);border-color:var(--paper);white-space:nowrap}
@media(max-width:800px){.contact-layout{grid-template-columns:1fr}.contact-sidebar{position:static}.artwork-contact-strip__inner{display:block}.artwork-contact-strip .btn{margin-top:24px}}
@media(max-width:580px){.form-row{grid-template-columns:1fr}.enquiry-form button{width:100%}}


/* v3.5 premium virtual exhibition */
.gallery-page{background:#0b0b0a;color:#f4f0e8}.gallery-page header{background:rgba(11,11,10,.9);color:#f4f0e8;border-color:rgba(255,255,255,.12);backdrop-filter:blur(16px)}
.premium-gallery-intro{padding:clamp(58px,8vw,100px) 0 46px;background:#0b0b0a}.premium-gallery-intro__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end}.premium-gallery-intro h1{font-size:clamp(58px,9vw,132px);color:#f4f0e8;max-width:900px}.premium-gallery-intro__grid>div:last-child{padding-bottom:10px;color:#bdb7ad;font-family:Georgia,serif;font-size:20px}.gallery-instruction{font-family:Arial,sans-serif!important;font-size:12px!important;letter-spacing:.06em;text-transform:uppercase;margin-top:24px}.gallery-instruction span{font-size:20px;margin-right:10px}
.premium-gallery{background:#11110f}.gallery-topbar{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.gallery-room-tabs{display:flex;gap:8px;overflow:auto;scrollbar-width:none}.gallery-room-tabs button,.gallery-fullscreen{border:0;background:transparent;color:#89857e;padding:12px 14px;white-space:nowrap;cursor:pointer;font:12px Arial,sans-serif;letter-spacing:.04em}.gallery-room-tabs button span{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid currentColor;border-radius:50%;margin-right:7px}.gallery-room-tabs button.is-active{color:#fff}.gallery-fullscreen{color:#d6d0c7;border:1px solid rgba(255,255,255,.18)}
.gallery-stage{height:min(76vh,850px);min-height:620px;position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#d9d4cb 0 73%,#9e9181 73% 100%);outline:none}.gallery-architecture{position:absolute;inset:0}.gallery-light{position:absolute;left:33%;top:-35%;width:62%;height:100%;background:radial-gradient(ellipse,rgba(255,255,255,.96),rgba(255,255,255,0) 64%)}.gallery-side{position:absolute;top:0;bottom:0;width:20%;background:linear-gradient(90deg,#908a82,#d9d4cb);z-index:1}.gallery-side--left{left:-12%;transform:skewY(4deg)}.gallery-side--right{right:-12%;transform:skewY(-4deg) scaleX(-1)}.gallery-plinth{position:absolute;left:0;right:0;bottom:27%;height:2px;background:rgba(55,48,41,.15);box-shadow:0 6px 16px rgba(0,0,0,.12)}
.gallery-curatorial{position:absolute;z-index:4;left:clamp(24px,5vw,80px);top:clamp(28px,6vh,70px);bottom:clamp(90px,12vh,140px);width:min(27vw,390px);display:flex;flex-direction:column;color:#24211d}.gallery-room-number{font:13px Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;margin:0 0 auto}.gallery-curatorial h2{font-size:clamp(32px,3.4vw,58px);line-height:1.03;margin:.2em 0 .35em}.gallery-curatorial>div>p:not(.eyebrow){max-width:36ch;font-family:Georgia,serif;font-size:17px;color:#5e574e}.gallery-curatorial__footer{margin-top:auto;font:12px Arial,sans-serif;letter-spacing:.05em}.gallery-curatorial__footer p{color:#746d64}.gallery-curatorial__footer a{color:#24211d;text-underline-offset:5px}
.gallery-view{position:absolute;left:38%;right:8%;top:8%;bottom:11%;display:grid;place-items:center;z-index:3}.gallery-view>a{display:grid;place-items:center;width:100%;height:100%;text-decoration:none}.premium-frame{display:grid;place-items:center;max-width:88%;max-height:82%;padding:12px;background:#211e1a;border:1px solid #0c0b09;box-shadow:0 34px 52px rgba(25,20,15,.3),0 2px 4px rgba(0,0,0,.5);transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .35s}.premium-mount{display:grid;place-items:center;padding:10px;background:#eee9df;box-shadow:inset 0 0 0 1px #c8c0b4}.premium-frame img{display:block;max-width:min(48vw,760px);max-height:min(55vh,580px);width:auto;height:auto;object-fit:contain}.gallery-view>a:hover .premium-frame{transform:translateY(-7px) scale(1.006)}.gallery-bench{position:absolute;bottom:-9%;width:32%;height:4%;background:#302a24;box-shadow:0 12px 20px rgba(0,0,0,.28)}.gallery-bench:before,.gallery-bench:after{content:"";position:absolute;top:100%;width:6px;height:28px;background:#302a24}.gallery-bench:before{left:12%}.gallery-bench:after{right:12%}
.gallery-stage-controls{position:absolute;right:clamp(22px,4vw,58px);bottom:28px;z-index:6;display:flex}.gallery-stage-controls button{width:54px;height:54px;border:1px solid rgba(30,27,23,.35);background:rgba(244,240,232,.76);color:#24211d;font-size:22px;cursor:pointer;backdrop-filter:blur(8px)}.gallery-stage-controls button+button{border-left:0}.gallery-stage-controls button:hover{background:#24211d;color:#fff}.gallery-stage.is-changing .premium-frame{opacity:.15;transform:scale(.98)}
/* v4.6.2: keep every selected painting inside its gallery frame. */
.premium-frame{box-sizing:border-box;overflow:hidden;min-width:0;min-height:0}
.premium-mount{box-sizing:border-box;width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;min-height:0;overflow:hidden}
.premium-frame img{display:block;max-width:100%;max-height:100%;min-width:0;min-height:0;width:auto;height:auto;object-fit:contain}
.premium-frame{width:88%;height:auto;max-width:88%;max-height:82%}

/* v4.6.7: more natural gallery architecture and lighting. */
.gallery-stage{
  background:
    linear-gradient(180deg,rgba(255,255,255,.34),transparent 24%),
    linear-gradient(180deg,#dedbd4 0 72.5%,#9a8874 72.7% 100%);
  box-shadow:inset 0 22px 46px rgba(255,255,255,.32),inset 0 -34px 52px rgba(48,38,28,.16);
}
.gallery-architecture{
  pointer-events:none;
  background:
    repeating-linear-gradient(92deg,rgba(75,68,59,.018) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(2deg,rgba(255,255,255,.04) 0 2px,transparent 2px 11px);
}
.gallery-architecture:before{
  content:"";position:absolute;left:0;right:0;top:4%;height:12px;z-index:3;
  background:linear-gradient(180deg,#f7f5f0 0 22%,#c7c1b8 24% 38%,#f0ede7 42% 70%,#aca59b 72% 78%,transparent 80%);
  box-shadow:0 5px 9px rgba(45,39,33,.14);
}
.gallery-architecture:after{
  content:"";position:absolute;left:0;right:0;bottom:26.8%;height:18px;z-index:3;
  background:linear-gradient(180deg,#c6c0b6 0 10%,#f4f1eb 12% 62%,#aaa297 65% 74%,#7d7165 76% 100%);
  box-shadow:0 7px 12px rgba(45,36,28,.22);
}
.gallery-light{
  left:24%;top:-24%;width:72%;height:94%;
  background:
    radial-gradient(ellipse at 27% 0,rgba(255,252,238,.84),rgba(255,252,238,0) 36%),
    radial-gradient(ellipse at 72% 0,rgba(255,252,238,.68),rgba(255,252,238,0) 34%);
  filter:blur(3px);
}
.gallery-light:before,.gallery-light:after{
  content:"";position:absolute;top:23%;width:22px;height:10px;border-radius:50%;background:#eee9df;
  box-shadow:0 -2px 3px rgba(0,0,0,.25),0 0 14px rgba(255,244,205,.92);
}
.gallery-light:before{left:25%}.gallery-light:after{right:23%}
.gallery-side{width:23%;opacity:.78;filter:saturate(.72)}
.gallery-side--left{left:-13%;transform:perspective(700px) rotateY(34deg) skewY(2deg)}
.gallery-side--right{right:-13%;transform:perspective(700px) rotateY(-34deg) skewY(-2deg)}
.gallery-plinth{bottom:27%;height:1px;background:rgba(49,42,35,.28);box-shadow:0 9px 20px rgba(42,32,23,.17)}
.gallery-stage:after{
  left:-7%;right:-7%;bottom:-4%;height:31%;
  background:
    linear-gradient(90deg,transparent 49.8%,rgba(48,35,24,.2) 50%,transparent 50.3%),
    repeating-linear-gradient(92deg,transparent 0 8.1%,rgba(48,35,24,.18) 8.25% 8.5%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 2px,rgba(61,43,29,.06) 3px 5px),
    linear-gradient(180deg,#b5a18d,#766452);
  transform:perspective(480px) rotateX(58deg);transform-origin:bottom;
  box-shadow:inset 0 18px 25px rgba(33,25,18,.12);
}

/* v4.7: unified artwork-first presentation. */
.artwork-pagehead{padding-bottom:clamp(26px,4vw,46px)}
.artwork-primary{
  padding:clamp(8px,1.5vw,20px) 0 clamp(64px,8vw,108px);
  background:var(--paper)
}
.artwork-master{
  margin:0 auto;
  display:flex;
  justify-content:center;
  align-items:center;
  width:fit-content;
  max-width:100%;
  min-width:0
}
.artwork-master img{
  display:block;width:auto;height:auto;max-width:100%;max-height:min(80vh,920px);
  object-fit:contain;background:transparent;
  box-shadow:0 26px 64px rgba(31,26,20,.14),0 3px 12px rgba(31,26,20,.1)
}
.artwork-primary + .artwork-context{border-top:1px solid var(--line)}
.artwork-context{padding-top:clamp(54px,7vw,88px);background:#fffdfa}
.artwork-enquiry dl:empty{display:none}

/* Cards follow each painting's own proportions without a crop or false frame. */
.portfolio-page .card,.catalogue-card,.collection-card{
  display:block;align-self:start;background:transparent
}
.portfolio-page .card img,.catalogue-card img,.collection-card img,.commission-examples .card img{
  display:block;width:auto;max-width:100%;height:auto;object-fit:contain;background:transparent;
  margin-inline:auto;box-shadow:0 9px 25px rgba(31,26,20,.09)
}
.portfolio-page .card-body,.catalogue-card .card-body{padding-top:16px}
.portfolio-page .card h2,.catalogue-card h2{line-height:1.22;text-wrap:balance}

/* Homepage collection images retain their natural proportions without letterboxing. */
.story-panels{align-items:start;background:transparent;gap:1px}
.story-panel{background:transparent;align-self:start}
.story-panel img{
  position:static;width:100%;height:auto;max-height:none;object-fit:contain;background:transparent
}

/* The virtual frame follows the current image's live aspect ratio. */
.premium-frame{width:auto;height:auto;max-width:92%;max-height:86%}
.premium-mount{width:auto;height:auto}
.premium-frame img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}

@media(max-width:700px){
  .artwork-primary{padding-top:4px;padding-bottom:54px}
  .artwork-master img{max-height:74vh}
  .portfolio-page .card-body,.catalogue-card .card-body{padding-top:12px}
}

/* v4.8: final editorial design system and consistency layer. */
:root{
  --paper:#f7f4ee;--ink:#181816;--muted:#68645d;--line:#d6cfc3;--soft:#ece7de;
  --serif:"Iowan Old Style",Baskerville,"Times New Roman",Georgia,serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --space-section:clamp(68px,8vw,108px);--shadow-soft:0 12px 34px rgba(31,26,20,.09)
}
html{font-size:16px}
body{font-family:var(--sans);line-height:1.65;text-rendering:optimizeLegibility}
h1,h2,h3,.brand,.lede,.prose p{font-family:var(--serif)}
h1{font-size:clamp(44px,5.6vw,82px);line-height:1;letter-spacing:-.035em;text-wrap:balance}
h2{font-size:clamp(32px,3.8vw,54px);line-height:1.08;letter-spacing:-.022em;text-wrap:balance}
h3{font-size:clamp(20px,2vw,25px);line-height:1.24;text-wrap:balance}
p{margin-block:0 1.15em}
.lede{line-height:1.48}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:650;letter-spacing:.16em;line-height:1.4;margin-bottom:14px}
.small,.meta{font-size:12px;line-height:1.55}
.wrap{width:min(var(--max),calc(100% - clamp(30px,5vw,64px)))}

header{background:rgba(247,244,238,.96);backdrop-filter:blur(14px);border-color:rgba(86,78,67,.2)}
.navbar{min-height:76px}
.brand{font-size:23px;font-weight:400;letter-spacing:.105em;line-height:1}
nav{gap:clamp(14px,2vw,26px);font-size:12px;font-weight:600;letter-spacing:.035em}
nav a{position:relative;text-decoration:none}
nav a:after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:currentColor;transition:right .22s ease}
nav a:hover{text-decoration:none}nav a:hover:after,nav a:focus-visible:after{right:0}
.menu{font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}

.pagehead{padding:clamp(58px,7.5vw,96px) 0 clamp(38px,5vw,64px);background:var(--paper)}
.pagehead h1,.core-page .pagehead h1{font-size:clamp(43px,5.2vw,72px);max-width:19ch}
.pagehead p{font-size:clamp(18px,1.8vw,22px);line-height:1.55;color:var(--muted);max-width:720px}
section.block{padding:var(--space-section) 0;border-color:var(--line)}
.section-head{margin-bottom:clamp(30px,4vw,48px);gap:clamp(28px,5vw,72px)}
.section-head p{font-size:16px;line-height:1.65}
.prose{max-width:720px}.prose p{font-size:clamp(18px,1.7vw,20px);line-height:1.66}

.btn,button.btn{
  min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:12px 19px;
  border:1px solid currentColor;border-radius:0;font-family:var(--sans);font-size:12px;
  font-weight:650;letter-spacing:.035em;line-height:1.25;transition:background .2s,color .2s,border-color .2s,transform .2s
}
.btn:hover{opacity:1;transform:translateY(-1px);background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn.primary:hover{background:#35322e;border-color:#35322e}
.text-link{font-weight:600;text-underline-offset:5px;text-decoration-thickness:1px}
.actions{gap:10px;margin-top:26px}

.card{color:var(--ink)}
.card img{transition:transform .3s ease,box-shadow .3s ease}
.card:hover img{transform:translateY(-2px);box-shadow:0 15px 36px rgba(31,26,20,.13)}
.card h2,.card h3{transition:color .2s ease}
.card:hover h2,.card:hover h3{text-decoration:none;color:#514a41}
.card-body{padding-top:15px}
.grid{gap:clamp(28px,3vw,42px) clamp(22px,2.5vw,34px)}

input,textarea,select{
  min-height:48px;border-color:#aaa397;background:#fffdf9;border-radius:0;padding:12px 14px;
  font-family:var(--sans);font-size:16px;line-height:1.45;transition:border-color .2s,box-shadow .2s
}
textarea{min-height:150px;resize:vertical}
label{font-size:12px;font-weight:650;letter-spacing:.025em}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(24,24,22,.12)}
.contact-form-panel,.contact-sidebar,.artwork-enquiry{border-color:var(--line);box-shadow:var(--shadow-soft)}

footer,.gallery-page footer{
  background:#181816;color:#bdb7ad;border-color:#181816;padding:58px 0 68px;font-size:12px;line-height:1.7
}
footer a,.gallery-page footer a{color:#e9e4dc;text-decoration-color:#716b63;text-underline-offset:4px}
footer .brand,.gallery-page footer .brand{color:#fff}
.footer{gap:clamp(30px,5vw,72px)}

.gallery-page{font-family:var(--sans)}
.gallery-page header{min-height:76px}
.gallery-curatorial h2,.gallery-after h2,.premium-gallery-intro h1,.gallery-filmstrip span,.gallery-route strong{font-family:var(--serif)}
.gallery-room-tabs button,.gallery-fullscreen,.gallery-room-number,.gallery-curatorial__footer,.gallery-instruction,.gallery-route small{font-family:var(--sans)}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid currentColor;outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

@media(max-width:1100px){
  .navbar nav{top:76px;padding:16px clamp(18px,4vw,34px) 22px;box-shadow:0 18px 32px rgba(31,26,20,.12)}
  .navbar nav a{font-size:14px}
}
@media(max-width:700px){
  .navbar{min-height:70px}.navbar nav{top:70px}
  .brand{font-size:20px}.pagehead{padding-top:48px}
  .section-head{margin-bottom:28px}.footer{grid-template-columns:1fr;gap:28px}
  footer{padding:48px 0 56px}
}
.premium-frame{
  border:8px solid #2d2924;
  padding:9px;
  background:linear-gradient(135deg,#4a433b,#171513 45%,#3a342e);
  box-shadow:0 28px 38px rgba(24,19,14,.28),8px 12px 16px rgba(24,19,14,.14),inset 0 0 0 1px rgba(255,255,255,.18);
}
.premium-mount{background:#f3f0e9;box-shadow:inset 0 0 0 1px #bdb5a9,inset 0 0 18px rgba(75,65,54,.08)}
.gallery-bench{height:5%;border-radius:2px;background:linear-gradient(180deg,#51463b,#211d19);box-shadow:0 15px 23px rgba(0,0,0,.3)}
@media(max-width:650px){.gallery-architecture:before{top:2%}.gallery-light:before,.gallery-light:after{display:none}.premium-frame{border-width:6px;padding:6px}}
.gallery-filmstrip-wrap{background:#0b0b0a;padding:25px 0 30px}.gallery-filmstrip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:8px;scrollbar-color:#59544d transparent}.gallery-filmstrip button{flex:0 0 210px;display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;text-align:left;padding:8px;border:1px solid rgba(255,255,255,.11);background:transparent;color:#aaa49b;cursor:pointer;scroll-snap-align:center}.gallery-filmstrip button.is-active{border-color:#d9d2c6;background:#181714;color:#fff}.gallery-filmstrip img{width:72px;height:58px;object-fit:contain;background:#24221f}.gallery-filmstrip span{font:12px/1.3 Georgia,serif}.gallery-filmstrip small{display:block;font:9px Arial,sans-serif;letter-spacing:.12em;color:#817b72;margin-bottom:5px}
.gallery-after{padding:clamp(70px,10vw,130px) 0;background:#f7f4ee;color:#181816}.gallery-after__grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.gallery-after h2{font-size:clamp(42px,5vw,72px)}.gallery-after__grid>div:last-child{font-family:Georgia,serif;font-size:20px}.premium-gallery:fullscreen{overflow:auto;background:#0b0b0a}.premium-gallery:fullscreen .gallery-stage{height:calc(100vh - 150px);max-height:none}
@media(max-width:900px){.gallery-stage{min-height:760px;height:auto}.gallery-curatorial{left:24px;right:24px;top:24px;bottom:auto;width:auto}.gallery-room-number{display:none}.gallery-curatorial h2{font-size:36px;max-width:18ch}.gallery-curatorial>div>p:not(.eyebrow){font-size:15px;max-width:44ch}.gallery-curatorial__footer{position:absolute;top:0;right:0}.gallery-view{left:4%;right:4%;top:37%;bottom:14%}.premium-frame img{max-width:78vw;max-height:38vh}.gallery-bench{display:none}.gallery-stage-controls{right:20px;bottom:20px}}
@media(max-width:650px){.premium-gallery-intro__grid,.gallery-after__grid{grid-template-columns:1fr}.premium-gallery-intro h1{font-size:clamp(52px,18vw,86px)}.premium-gallery-intro__grid>div:last-child{font-size:17px}.gallery-topbar{height:auto;padding-top:14px;padding-bottom:14px;align-items:flex-start}.gallery-room-tabs{display:grid;gap:2px}.gallery-room-tabs button{text-align:left;padding:6px}.gallery-fullscreen{margin-top:4px;font-size:0}.gallery-fullscreen span{font-size:20px}.gallery-stage{min-height:700px}.gallery-curatorial h2{font-size:30px;margin-right:0}.gallery-curatorial__footer{position:static;margin-top:12px}.gallery-curatorial__footer p{display:none}.gallery-view{top:40%;bottom:15%}.premium-frame{max-width:96%;padding:8px}.premium-mount{padding:6px}.premium-frame img{max-width:82vw;max-height:34vh}.gallery-stage-controls button{width:48px;height:48px}.gallery-filmstrip button{flex-basis:180px}}
@media(prefers-reduced-motion:reduce){.premium-frame{transition:none}.gallery-filmstrip{scroll-behavior:auto}}


/* v3.6 artwork-led places */
.places-editorial__head{align-items:start}.place-features{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,74px) clamp(28px,5vw,60px)}
.place-feature{border-top:1px solid var(--ink);padding-top:18px}.place-feature--wide{grid-column:1/-1;display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(34px,7vw,90px);align-items:center;padding-top:0;border-top:0;margin-bottom:20px}.place-feature--reverse{grid-template-columns:.65fr 1.35fr}.place-feature--reverse .place-feature__image{order:2}.place-feature__image{display:block;overflow:hidden;background:var(--soft)}.place-feature__image img{width:100%;height:clamp(300px,42vw,590px);object-fit:contain;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.place-feature:not(.place-feature--wide) .place-feature__image img{height:clamp(280px,34vw,470px)}.place-feature__image:hover img{transform:scale(1.018)}.place-feature__copy{padding:22px 0}.place-feature__copy h2{font-size:clamp(32px,4vw,54px);margin-bottom:18px}.place-feature__copy>p:not(.eyebrow){font-family:Georgia,serif;font-size:18px;color:var(--muted)}.place-feature__copy>a,.place-feature__links a{text-underline-offset:5px}.place-feature__links{display:grid;gap:9px;margin-top:20px}
@media(max-width:800px){.place-features{grid-template-columns:1fr}.place-feature--wide,.place-feature--reverse{grid-column:auto;display:block;border-top:1px solid var(--ink);padding-top:18px;margin:0}.place-feature--reverse .place-feature__image{order:initial}.place-feature__image img,.place-feature:not(.place-feature--wide) .place-feature__image img{height:auto;max-height:480px}}
@media(prefers-reduced-motion:reduce){.place-feature__image img{transition:none}}

/* v4.1 editorial stories, consistent footer and exhibition accessibility */
.footer>div:nth-child(n+2){line-height:1.9}.footer .brand{color:var(--ink)}
.gallery-page .footer .brand{color:#f4f0e8}.gallery-page footer{border-color:rgba(255,255,255,.15);color:#aaa49b}.gallery-page footer a{color:#d8d2c9}
.story-hero{padding:clamp(70px,11vw,150px) 0 clamp(50px,8vw,90px);background:var(--soft)}.story-hero h1{max-width:900px;font-size:clamp(52px,8vw,112px)}.story-hero>div>p:last-child{max-width:760px;font:clamp(19px,2vw,26px)/1.55 Georgia,serif;color:var(--muted)}
.story-essay{padding:clamp(65px,10vw,130px) 0}.story-context{display:grid;grid-template-columns:.55fr 1.45fr;gap:7vw;border-top:1px solid var(--ink);padding:24px 0 clamp(60px,9vw,110px)}.story-context>p:last-child{margin:0;max-width:700px;font:18px/1.65 Georgia,serif}
.story-chapter{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(35px,7vw,90px);align-items:center;padding:clamp(48px,8vw,95px) 0;border-top:1px solid var(--line)}.story-chapter:nth-child(odd){grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr)}.story-chapter:nth-child(odd) .story-chapter__image{order:2}.story-chapter__image{display:block;background:var(--soft)}.story-chapter__image img{display:block;width:100%;max-height:680px;object-fit:contain}.story-chapter h2{font-size:clamp(34px,4.5vw,62px)}.story-chapter div>p:not(.eyebrow){font:18px/1.65 Georgia,serif;color:var(--muted)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.gallery-stage:focus-visible,.gallery-room-tabs button:focus-visible,.gallery-fullscreen:focus-visible,.gallery-stage-controls button:focus-visible,.gallery-filmstrip button:focus-visible{outline:3px solid #fff;outline-offset:3px}.gallery-stage[data-room-theme="italy"]{background:linear-gradient(180deg,#ddd0ba 0 73%,#9f8065 73% 100%)}.gallery-stage[data-room-theme="colour-character"]{background:linear-gradient(180deg,#d5d1c9 0 73%,#796b61 73% 100%)}.gallery-stage:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:27%;background:repeating-linear-gradient(88deg,transparent 0 13%,rgba(35,27,20,.09) 13.2% 13.5%);transform:perspective(450px) rotateX(55deg);transform-origin:bottom;z-index:0}.gallery-route{background:#0b0b0a;padding:24px 0 42px}.gallery-route ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14)}.gallery-route li{padding:22px;background:#11110f;color:#aaa49b}.gallery-route li.is-active{background:#201e1a;color:#fff}.gallery-route small{display:block;font:10px Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}.gallery-route strong{font:20px Georgia,serif}.gallery-route p{font-size:12px;line-height:1.5;margin-bottom:0}.gallery-progress{height:2px;background:rgba(255,255,255,.15)}.gallery-progress span{display:block;height:100%;background:#f4f0e8;transition:width .4s ease}.gallery-noscript{padding:28px;background:#f7f4ee;color:#181816}.gallery-noscript a{color:inherit}.gallery-stage[role="tabpanel"]{scroll-margin-top:90px}
@media(max-width:800px){.story-context,.story-chapter,.story-chapter:nth-child(odd){grid-template-columns:1fr}.story-chapter:nth-child(odd) .story-chapter__image{order:initial}.gallery-route ol{grid-template-columns:1fr}}
.gallery-progress span.progress-1{width:11.111%}.gallery-progress span.progress-2{width:22.222%}.gallery-progress span.progress-3{width:33.333%}.gallery-progress span.progress-4{width:44.444%}.gallery-progress span.progress-5{width:55.556%}.gallery-progress span.progress-6{width:66.667%}.gallery-progress span.progress-7{width:77.778%}.gallery-progress span.progress-8{width:88.889%}.gallery-progress span.progress-9{width:100%}

/* Keep the architectural floor treatment above earlier gallery defaults. */
.gallery-stage:after{
  content:"";position:absolute;left:-7%;right:-7%;bottom:-4%;height:31%;z-index:0;
  background:
    linear-gradient(90deg,transparent 49.8%,rgba(48,35,24,.2) 50%,transparent 50.3%),
    repeating-linear-gradient(92deg,transparent 0 8.1%,rgba(48,35,24,.18) 8.25% 8.5%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 2px,rgba(61,43,29,.06) 3px 5px),
    linear-gradient(180deg,#b5a18d,#766452);
  transform:perspective(480px) rotateX(58deg);transform-origin:bottom;
  box-shadow:inset 0 18px 25px rgba(33,25,18,.12);
}

/* v5.3: one continuous plaster wall, a coherent marble floor plane and Victorian skirting. */
.gallery-stage{--floor-start:76%}
.gallery-stage,
.gallery-stage[data-room-theme="italy"],
.gallery-stage[data-room-theme="colour-character"]{
  background:
    radial-gradient(ellipse at 66% 22%,rgba(255,255,255,.44),transparent 58%),
    repeating-linear-gradient(92deg,rgba(78,70,61,.013) 0 1px,transparent 1px 8px),
    #e4e0d8;
  box-shadow:inset 0 18px 40px rgba(255,255,255,.22);
}
.gallery-stage:after,.gallery-architecture:after{content:none}
.gallery-architecture{background:none}
.gallery-architecture:before{top:0;height:13px;background:linear-gradient(180deg,#f6f3ec 0 18%,#b9b5ac 22% 31%,#f4f1ea 36% 59%,#aaa59b 64% 72%,#e9e6df 77% 100%);box-shadow:0 5px 9px rgba(46,43,39,.12)}
.gallery-floor{
  position:absolute;top:var(--floor-start);right:0;bottom:0;left:0;height:auto;z-index:1;
  background:#d4b3ad url('../gallery/pink-onyx-floor.webp') center / 100% 100% no-repeat;
  box-shadow:inset 0 16px 26px rgba(46,43,39,.16);
  transform:none;transform-origin:initial;filter:none;opacity:1;
}
.gallery-skirting{
  position:absolute;left:0;right:0;top:calc(var(--floor-start) - 24px);height:30px;z-index:2;
  background:linear-gradient(180deg,#c2bdb3 0 7%,#f4f1e9 9% 17%,#9b9488 19% 24%,#ece8df 28% 36%,#b5ada2 39% 44%,#f0ece4 48% 68%,#bbb3a7 74% 79%,#706b63 86% 91%,#d4cec4 94% 100%);
  box-shadow:0 5px 10px rgba(35,32,28,.22);
}
.gallery-curatorial{bottom:38%}
.gallery-view{top:8%;bottom:38%}
.premium-frame{max-width:100%;max-height:100%;padding:12px;width:auto;height:auto;background:linear-gradient(135deg,#40362a,#171512 32%,#3e3329 72%,#151310);box-shadow:13px 19px 28px rgba(35,29,24,.24),2px 4px 7px rgba(29,25,21,.28)}
.premium-mount{padding:10px}
.premium-frame img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
@media(max-width:900px){
  .gallery-stage{height:clamp(780px,110vh,940px);min-height:780px}
  .gallery-curatorial{bottom:auto}
  .gallery-view{top:37%;bottom:34%}
}
@media(max-width:650px){
  .gallery-stage{height:clamp(760px,115vh,900px);min-height:760px}
  .gallery-view{top:40%;bottom:34%}
  .premium-frame{padding:8px}
  .premium-mount{padding:6px}
}

/* Homepage gallery preview: match the reference-led pink onyx gallery floor. */
.wall-feature .room-preview{
  background:
    radial-gradient(ellipse at 50% 18%,rgba(255,255,255,.55),transparent 58%),
    #e4e0d8;
}
.wall-feature .room-floor{
  height:24%;
  opacity:1;
  background:#e7cfca url('../gallery/pink-onyx-floor.webp') center top / 100% 100% no-repeat;
  box-shadow:inset 0 10px 18px rgba(72,46,43,.12);
}
.wall-feature .room-floor:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:8px;
  background:linear-gradient(180deg,#f6f1e9,#bdb4a8 55%,#746e66);
  box-shadow:0 4px 7px rgba(37,31,27,.16);
}

/* Curated homepage triptych: equal cards without black letterboxing. */
.story-panels{
  align-items:stretch;
  gap:clamp(12px,1.8vw,28px);
  padding:0 clamp(18px,4vw,64px) clamp(64px,8vw,110px);
  background:var(--paper);
}
.story-panel{
  height:100%;
  display:grid;
  grid-template-rows:auto 1fr;
  border:1px solid var(--line);
  background:#fffdfa;
  box-shadow:0 16px 38px rgba(48,39,31,.07);
}
.story-panel img{
  width:100%;
  height:clamp(310px,31vw,470px);
  object-fit:contain;
  object-position:center;
  padding:clamp(18px,2.5vw,36px);
  background:#ebe6dc;
}
.story-panel span{
  padding:22px 24px 26px;
  background:#fffdfa;
  border-top:1px solid var(--line);
}
.story-panel strong{
  font-size:clamp(22px,2vw,31px);
}
@media(max-width:900px){
  .story-panels{padding-inline:clamp(16px,5vw,38px)}
  .story-panel img{height:min(66vh,560px);padding:clamp(18px,5vw,42px)}
}

/* v5.9: governing visual system. Keep page character, unify shared components. */
:root{
  --paper:#f7f4ee;
  --surface:#fffdfa;
  --ink:#181816;
  --muted:#656159;
  --line:#d6cfc3;
  --soft:#ece7de;
  --section-space:clamp(64px,8vw,108px);
  --control-height:46px;
  --shadow-card:0 14px 34px rgba(31,26,20,.09);
  --shadow-art:0 26px 64px rgba(31,26,20,.14),0 3px 12px rgba(31,26,20,.1)
}

body{background:var(--paper);color:var(--ink)}
main{isolation:isolate}
.wrap{width:min(var(--max),calc(100% - clamp(30px,5vw,64px)))}

/* Header and primary navigation. */
header{background:rgba(247,244,238,.97)}
.navbar{min-height:76px}
.navbar nav{gap:clamp(14px,2vw,26px)}
.navbar nav a{min-height:44px;padding:0;display:inline-flex;align-items:center}
.navbar nav a.is-current{font-weight:700}
.navbar nav a.is-current:after{right:0;height:2px}

/* Editorial hierarchy and spacing. */
.pagehead{padding:clamp(56px,7vw,92px) 0 clamp(38px,5vw,62px)}
.pagehead .eyebrow{margin-bottom:12px}
.pagehead p{margin-top:20px;margin-bottom:0}
section.block{padding:var(--section-space) 0}
.section-head{align-items:flex-end}
.section-head h2{max-width:18ch}
.prose>p:first-child{margin-top:0}
.prose>p:last-child{margin-bottom:0}

/* Shared controls. */
.btn,button.btn{
  min-height:var(--control-height);
  padding:12px 19px;
  border-color:var(--ink);
  background:transparent;
  color:var(--ink)
}
.btn.primary,button.btn.primary{background:var(--ink);color:var(--paper)}
.btn:hover,.btn:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn.primary:hover,.btn.primary:focus-visible{background:#35322e;border-color:#35322e;color:#fff}
.text-link{font-size:14px;text-underline-offset:5px}

/* Cards and artwork records. */
.card,.catalogue-card,.collection-card{color:var(--ink)}
.card-body{padding-top:14px}
.card-body h2,.card-body h3{margin:0}
.card .meta,.catalogue-card .meta{margin-top:7px}
.portfolio-page .card img,.catalogue-card img,.collection-card img,.commission-examples .card img{
  background:transparent;
  box-shadow:0 10px 28px rgba(31,26,20,.1)
}
.portfolio-page .card:hover img,.catalogue-card:hover img,.collection-card:hover img{
  box-shadow:0 16px 38px rgba(31,26,20,.14)
}
.archive-cta,.contact-prompt,.contact-direct,.artwork-enquiry{
  border:1px solid var(--line);
  background:var(--surface);
  box-shadow:var(--shadow-card)
}
.archive-cta,.contact-prompt{padding:clamp(28px,4vw,48px)}
.artwork-context{background:var(--surface)}
.artwork-master img{box-shadow:var(--shadow-art)}
.artwork-enquiry h2{font-size:clamp(24px,2.6vw,32px)}
.artwork-enquiry dt,.artwork-recorded-details dt{font-family:var(--sans);font-size:12px}

/* Forms share the same quiet surface and rhythm. */
form{gap:18px}
label{display:block;margin-bottom:5px;color:var(--ink)}
input,textarea,select{background:var(--surface);border-color:#9c958a}
input:hover,textarea:hover,select:hover{border-color:#6f6960}

/* Secondary navigation remains visually subordinate. */
.breadcrumbs,.artwork-sequence{background:#f0ebe3}
.breadcrumbs a,.artwork-sequence a,.portfolio-index a{letter-spacing:0}
.breadcrumbs a:after,.artwork-sequence a:after,.portfolio-index a:after{content:none}
.portfolio-index{top:76px;background:rgba(247,244,238,.97)}
.portfolio-index a{min-height:38px;padding:8px 12px}
.portfolio-index a[aria-current="location"]{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper)
}

/* One footer treatment on every route. */
footer,.gallery-page footer{background:var(--ink);color:#bdb7ad;border-color:var(--ink)}
footer .brand,.gallery-page footer .brand{color:#fff}
footer a,.gallery-page footer a{color:#e9e4dc}
footer p{margin-top:10px}

@media(max-width:1100px){
  .navbar nav a{width:100%;padding:8px 0}
}
@media(max-width:700px){
  :root{--section-space:clamp(54px,14vw,76px)}
  .pagehead{padding-top:46px}
  .section-head{align-items:start}
  .artwork-enquiry{padding:22px}
  .portfolio-index{top:70px}
}

/* v6.0: responsive governing layer for phones, tablets and zoomed layouts. */
img,svg,video{max-width:100%}
.grid>*,.footer>*,.hero-grid>*,.text-grid>*,.art-detail>*,.artwork-story>*,
.contact-layout>*,.artist-intro__grid>*,.artist-story-grid>*,.place-features>*{min-width:0}
h1,h2,h3,p,a,strong,dd{overflow-wrap:anywhere}
.form-consent input{min-height:18px}
.pagination a,.pagination-current{min-width:44px;height:44px}

@media(max-width:900px){
  .hero-grid,.text-grid,.art-detail,.contact-layout,.artist-intro__grid,
  .artist-story-grid,.artist-proof__grid,.premium-gallery-intro__grid{grid-template-columns:1fr}
  .section-head{display:block}
  .section-head>p{margin-top:14px}
  .cinema-hero__copy{max-width:760px}
  .wall-feature__grid{grid-template-columns:1fr;gap:36px}
  .room-preview{width:100%}
  .gallery-topbar{height:auto;min-height:72px;padding-block:10px}
  .gallery-room-tabs{min-width:0;scroll-padding-inline:12px}
  .gallery-room-tabs button,.gallery-fullscreen{min-height:44px}
}

@media(max-width:640px){
  .wrap{width:calc(100% - 32px)}
  .grid,.current-work-grid,.story-grid{grid-template-columns:1fr}
  .pagehead h1,.core-page .pagehead h1{font-size:clamp(38px,12vw,54px)}
  .pagehead p,.prose p,.core-page .prose p{font-size:17px}
  .actions{display:grid;grid-template-columns:1fr}
  .actions .btn,.enquiry-form button{width:100%}
  .portfolio-index .wrap{width:100%;padding-inline:16px;scroll-padding-inline:16px}
  .portfolio-index span{position:sticky;left:0;z-index:1;padding:10px 8px 10px 0;background:var(--paper)}
  .portfolio-index a{min-height:44px;display:inline-flex;align-items:center}
  .story-panels{padding-inline:16px}
  .story-panel img{height:auto;max-height:72svh;padding:18px}
  .contact-direct,.contact-prompt,.archive-cta{padding:24px 20px}
  .artwork-contact-strip .btn{width:100%}
  .artwork-master img{max-height:72svh}
  .gallery-room-tabs{display:flex;gap:4px;overflow-x:auto}
  .gallery-room-tabs button{flex:0 0 auto;padding:10px}
  .gallery-stage{height:clamp(680px,100svh,780px);min-height:680px}
  .gallery-curatorial{left:18px;right:18px;top:20px}
  .gallery-curatorial h2{font-size:clamp(27px,9vw,34px)}
  .gallery-curatorial>div>p:not(.eyebrow){font-size:14px;line-height:1.45}
  .gallery-view{left:3%;right:3%;top:39%;bottom:33%}
  .gallery-stage-controls{right:14px;bottom:14px}
  .gallery-filmstrip button{flex-basis:min(78vw,240px);min-height:76px}
  .gallery-route li{padding:18px 16px}
}

@media(max-width:480px){
  .brand{font-size:18px;letter-spacing:.08em}
  .menu{padding:8px 10px}
  .breadcrumbs .wrap{width:calc(100% - 24px)}
  .artwork-sequence>.wrap{grid-template-columns:1fr;width:100%}
  .artwork-sequence a:not(.artwork-sequence__all){min-height:92px;padding:18px 16px;text-align:left;align-items:flex-start}
  .artwork-sequence__all{grid-column:1;grid-row:auto;min-height:52px!important}
  .artwork-sequence__spacer{display:none}
  .artwork-sequence__next{text-align:left;align-items:flex-start}
  .premium-gallery-intro h1{font-size:clamp(46px,16vw,68px)}
  .gallery-fullscreen{padding-inline:10px}
  .gallery-after h2{font-size:clamp(36px,12vw,52px)}
  .pagination{gap:6px}
  .pagination-step{min-width:80px!important}
}

@media(max-width:900px) and (max-height:560px) and (orientation:landscape){
  .navbar{min-height:60px}.navbar nav{top:60px;max-height:calc(100svh - 60px)}
  .gallery-page header{min-height:60px}
  .premium-gallery-intro{padding:34px 0 28px}
  .premium-gallery-intro h1{font-size:clamp(42px,8vw,70px)}
  .premium-gallery-intro__grid>div:last-child{font-size:16px}
  .gallery-stage{height:560px;min-height:560px}
  .gallery-curatorial{left:18px;right:auto;top:18px;width:34%}
  .gallery-curatorial>div>p:not(.eyebrow),.gallery-curatorial__footer{display:none}
  .gallery-view{left:38%;right:5%;top:7%;bottom:30%}
}

/* v6.1: clear, accessible enquiry feedback. */
.form-error-summary{padding:18px 20px;border:2px solid #9b2f24;background:#fff7f5;color:#4d1712}
.form-error-summary h3{margin:0 0 8px;font-size:20px}
.form-error-summary ul{margin:0;padding-left:22px}
.form-error-summary a{color:inherit;text-decoration:underline}
.field-error{margin:6px 0 0;color:#8a241c;font-size:14px;font-weight:600}
.enquiry-form [aria-invalid="true"]{border-color:#9b2f24;box-shadow:0 0 0 2px rgba(155,47,36,.12)}
.form-status{min-height:1.5em;margin:0;font-size:14px}

/* v6.2: reference-led virtual gallery room. */
.gallery-stage,
.gallery-stage[data-room-theme="italy"],
.gallery-stage[data-room-theme="colour-character"]{
  height:min(74vw,850px);min-height:620px;background:#d6c7b4
}
.gallery-architecture{
  position:absolute;inset:0;display:block;pointer-events:none;
  background:url('../gallery/classic-interior-gallery-wall-empty-vase.webp') center center / cover no-repeat;
  filter:saturate(.92) contrast(.98)
}
.gallery-architecture:before,.gallery-architecture:after,.gallery-stage:after,
.gallery-light,.gallery-floor,.gallery-skirting{content:none!important;display:none!important}
.gallery-view{left:27%;right:27%;top:8%;bottom:41%;z-index:3}
.premium-frame{max-width:96%;max-height:96%;padding:9px;border:1px solid #120f0b;background:linear-gradient(135deg,#443526,#17120d 32%,#584531 66%,#16110d);box-shadow:7px 13px 24px rgba(31,24,18,.35),0 2px 4px rgba(0,0,0,.55)}
.premium-mount{padding:7px;background:#eee7da;box-shadow:inset 0 0 0 1px #b9ad9b}
.gallery-curatorial{position:relative;inset:auto;width:min(1240px,calc(100% - 40px));display:grid;grid-template-columns:140px minmax(0,1fr) 180px;gap:clamp(24px,4vw,60px);align-items:start;padding:34px 0 40px;color:#f4f0e8}
.gallery-curatorial .gallery-room-number{margin:4px 0 0;color:#9d978e}
.gallery-curatorial h2{margin:.15em 0 .25em;color:#f4f0e8;font-size:clamp(30px,3.5vw,50px)}
.gallery-curatorial>div>p:not(.eyebrow){display:block;max-width:54ch;margin-bottom:0;color:#bdb7ad}
.gallery-curatorial__footer{position:static;margin-top:4px;text-align:right}
.gallery-curatorial__footer p{display:block;margin-top:0;color:#8f8980}
.gallery-curatorial__footer a{color:#f4f0e8}
.gallery-stage-controls{right:clamp(14px,3vw,44px);bottom:clamp(14px,3vw,34px)}
.gallery-stage-controls button{background:rgba(20,17,13,.78);border-color:rgba(255,255,255,.48);color:#fff}
.gallery-stage-controls button:hover{background:#f4f0e8;color:#24211d}
.premium-gallery:fullscreen .gallery-stage{height:calc(100vh - 220px)}
@media(max-width:900px){
  .gallery-stage{height:clamp(620px,95svh,760px);min-height:620px}
  .gallery-view{left:18%;right:18%;top:9%;bottom:42%}
  .gallery-curatorial{inset:auto;width:min(100% - 30px,1240px);grid-template-columns:90px minmax(0,1fr);padding:28px 0 34px}
  .gallery-curatorial__footer{grid-column:2;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:20px}
  .gallery-curatorial__footer p{margin:0}
}
@media(max-width:650px){
  .gallery-stage{height:620px;min-height:620px}
  .gallery-architecture{background-position:center center}
  .gallery-view{left:11%;right:11%;top:10%;bottom:43%}
  .premium-frame{max-width:100%;max-height:100%;padding:6px}
  .premium-mount{padding:5px}
  .gallery-curatorial{inset:auto;grid-template-columns:1fr;gap:8px;width:calc(100% - 30px);padding:24px 0 30px}
  .gallery-curatorial .gallery-room-number{display:block}
  .gallery-curatorial h2{font-size:clamp(28px,9vw,38px)}
  .gallery-curatorial>div>p:not(.eyebrow){display:block;font-size:15px}
  .gallery-curatorial__footer{grid-column:auto;display:flex;margin-top:12px;text-align:left}
}
@media(max-width:900px) and (max-height:560px) and (orientation:landscape){
  .gallery-stage{height:540px;min-height:540px}
  .gallery-view{left:28%;right:28%;top:8%;bottom:40%}
  .gallery-curatorial{inset:auto;width:min(100% - 30px,1240px)}
  .gallery-curatorial>div>p:not(.eyebrow),.gallery-curatorial__footer{display:block}
}

/* v6.3: homepage gallery preview matches the rebuilt virtual room. */
.wall-feature .room-preview--new-gallery{
  position:relative;display:block;aspect-ratio:3/2;min-height:0;overflow:hidden;
  background:#d6c7b4 url('../gallery/classic-interior-gallery-wall-empty-vase.webp') center / cover no-repeat;
  box-shadow:0 25px 60px rgba(38,29,20,.18);text-decoration:none
}
.wall-feature .room-preview--new-gallery .room-art{
  position:absolute;z-index:2;left:50%;top:34%;transform:translate(-50%,-50%);
  display:block;width:31.5%;max-width:270px;max-height:none;padding:11px;box-sizing:border-box;
  background:linear-gradient(135deg,#443526,#17120d 32%,#584531 66%,#16110d);
  border:1px solid #120f0b;box-shadow:5px 9px 18px rgba(31,24,18,.34)
}
.wall-feature .room-preview--new-gallery .room-art:before{
  content:none
}
.wall-feature .room-preview--new-gallery .room-art img{
  display:block;width:100%;max-width:none;height:auto;max-height:none;padding:0;
  background:#eee7da;box-shadow:0 0 0 5px #eee7da;box-sizing:border-box
}
.room-preview__label{
  position:absolute;right:18px;bottom:18px;z-index:3;padding:10px 14px;
  background:rgba(20,17,13,.82);color:#fff;font-size:13px;font-weight:700;letter-spacing:.03em;
  backdrop-filter:blur(8px)
}
.room-preview--new-gallery:hover .room-art{transform:translate(-50%,-50%) scale(1.018)}
.room-preview--new-gallery .room-art{transition:transform .35s ease}
.room-preview--new-gallery:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
@media(max-width:900px){
  .wall-feature .room-preview--new-gallery{min-height:0;aspect-ratio:3/2}
}
@media(max-width:520px){
  .wall-feature .room-preview--new-gallery{aspect-ratio:4/3}
  .wall-feature .room-preview--new-gallery .room-art{top:33%;width:36%;max-width:none;padding:8px}
  .wall-feature .room-preview--new-gallery .room-art img{box-shadow:0 0 0 3px #eee7da}
  .room-preview__label{right:10px;bottom:10px;padding:8px 10px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.room-preview--new-gallery .room-art{transition:none}}

/* Keep the compact headline treatment for the split desktop hero only. */
@media(max-width:900px){
  .cinema-hero h1{max-width:none;font-size:clamp(44px,7vw,60px)}
}

/* v6.4: artwork sizes are intentionally not displayed publicly. */
.artwork-record{display:none}
