:root { --night:#0c0e0d; --paper:#eeeadf; --ink:#151715; --muted:#aaa79d; --line:rgba(238,234,223,.17); --gold:#d7bb79; }
* { box-sizing:border-box; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; background:var(--night); }
@media (prefers-reduced-motion:reduce) { html, .artist-tabs { scroll-behavior:auto; } }
body { margin:0; background:var(--night); color:var(--paper); font-family:"DM Sans",sans-serif; }
a { color:inherit; }
a:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.skip { position:absolute; top:1rem; left:1rem; z-index:9; padding:.8rem 1rem; background:var(--paper); color:var(--ink); transform:translateY(-170%); }
.skip:focus { transform:none; }
.shell { width:min(1420px,calc(100% - 64px)); margin:auto; }
.top { min-height:78px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:28px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:11px; width:max-content; text-decoration:none; color:var(--paper); font:500 .76rem/1 "DM Mono",monospace; letter-spacing:.14em; text-transform:uppercase; }
.brand img { width:31px; height:31px; object-fit:cover; border-radius:50%; border:1px solid var(--gold); }
.top nav { display:flex; align-items:center; gap:27px; }
.top nav a, .back { color:var(--muted); text-decoration:none; font:.7rem/1 "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }
.top nav a:hover, .back:hover { color:var(--gold); }
.back { justify-self:end; }
.artist-tabs-frame { position:relative; border-bottom:1px solid var(--line); }
.artist-tabs { display:flex; align-items:stretch; overflow-x:auto; padding:0 38px; scroll-behavior:smooth; scroll-snap-type:x proximity; scrollbar-width:none; }
.artist-tabs::-webkit-scrollbar { display:none; }
.artist-tab { display:flex; flex:0 0 max(150px,12.5%); min-width:0; align-items:center; justify-content:center; gap:10px; min-height:58px; padding:0 13px; border-right:1px solid var(--line); color:var(--muted); font:.64rem/1.35 "DM Mono",monospace; letter-spacing:.1em; scroll-snap-align:start; text-align:center; text-decoration:none; }
.artist-tab:first-child { border-left:1px solid var(--line); }
.artist-tab span { color:var(--gold); font-size:.68rem; }
.artist-tab:hover { color:var(--paper); background:rgba(238,234,223,.035); }
.artist-tab.is-active { color:var(--paper); background:rgba(215,187,121,.09); box-shadow:inset 0 -2px 0 var(--gold); }
.artist-tabs-control { position:absolute; top:0; bottom:0; z-index:1; display:grid; width:38px; place-items:center; border:0; color:var(--gold); cursor:pointer; font:1.15rem/1 "DM Sans",sans-serif; }
.artist-tabs-control--previous { left:0; background:linear-gradient(90deg,var(--night) 62%,rgba(12,14,13,0)); }
.artist-tabs-control--next { right:0; background:linear-gradient(270deg,var(--night) 62%,rgba(12,14,13,0)); }
.artist-tabs-control:hover:not(:disabled) { color:var(--paper); }
.artist-tabs-control:disabled { opacity:.32; cursor:default; }
.hero { position:relative; display:grid; min-height:min(760px,calc(100svh - 78px)); overflow:hidden; border-bottom:1px solid var(--line); isolation:isolate; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.hero-wash { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,9,8,.88) 0%,rgba(7,9,8,.48) 40%,rgba(7,9,8,.09) 72%),linear-gradient(0deg,rgba(7,9,8,.58),transparent 43%); z-index:-1; }
.hero-copy { align-self:center; padding:clamp(48px,9vw,138px); max-width:870px; }
.eyebrow { margin:0; color:var(--gold); font:.75rem/1.4 "DM Mono",monospace; letter-spacing:.16em; text-transform:uppercase; }
h1 { margin:24px 0 20px; font:500 clamp(4.6rem,10.5vw,10.5rem)/.84 "Playfair Display",serif; letter-spacing:-.07em; }
.hero-copy > p:last-child { margin:0; color:var(--paper); font:400 clamp(1.25rem,2vw,1.85rem)/1.4 "Playfair Display",serif; }
.hero-dedication { display:grid; gap:8px; }
.hero-dedication p { margin:0; color:var(--paper); font:400 clamp(1.12rem,1.8vw,1.56rem)/1.45 "Playfair Display",serif; }
.hero-dedication p:last-child { color:rgba(238,234,223,.78); font-size:clamp(.96rem,1.45vw,1.2rem); }
.hero-scroll { position:absolute; left:clamp(48px,9vw,138px); bottom:42px; color:var(--paper); text-decoration:none; font:.72rem/1 "DM Mono",monospace; letter-spacing:.15em; text-transform:uppercase; padding-bottom:9px; border-bottom:1px solid var(--gold); }
.gallery { padding:clamp(70px,9vw,135px) 0; }
.gallery-heading { display:grid; grid-template-columns:.58fr 1.15fr; gap:32px; align-items:start; padding-bottom:36px; border-bottom:1px solid var(--line); }
.gallery h2, .artist h2 { margin:0; font:500 clamp(2.3rem,4.8vw,5.2rem)/.95 "Playfair Display",serif; letter-spacing:-.055em; }
.gallery-heading > p:last-child { margin:3px 0 0; color:var(--muted); font:400 1rem/1.85 "DM Sans",sans-serif; }
.work-grid { display:grid; grid-template-columns:1.23fr .77fr; gap:18px; margin-top:19px; }
.work-grid--secondary { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:18px; }
.work-grid--secondary .work-card img { aspect-ratio:1.13/1; }
.work-grid--vincent .vincent-primary { grid-row:span 2; display:flex; flex-direction:column; min-height:0; }
.work-grid--vincent .work-card--large { grid-row:auto; }
.vincent-note { position:relative; display:grid; flex:1; min-height:210px; align-content:center; margin-top:18px; padding:clamp(28px,4vw,54px); overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--paper); }
.vincent-note p { position:relative; z-index:1; max-width:470px; margin:0; font:500 clamp(1.36rem,2.05vw,2.1rem)/1.32 "Playfair Display",serif; letter-spacing:-.025em; }
.vincent-note svg { position:absolute; fill:none; stroke:rgba(215,187,121,.62); stroke-linecap:round; stroke-linejoin:round; }
.vincent-note-moon { top:10px; right:13px; width:clamp(105px,13vw,165px); stroke-width:1.35; }
.vincent-note-star { opacity:.72; }
.vincent-note-meadow { left:-7px; bottom:-16px; width:clamp(205px,29vw,325px); stroke-width:1.2; }
.vincent-note-flower-center { fill:rgba(215,187,121,.28); }
.work-card { margin:0; padding:11px; background:#141714; border:1px solid var(--line); contain:layout paint style; }
.work-card img { display:block; width:100%; height:auto; min-height:0; aspect-ratio:1.15/1; object-fit:cover; }
.work-card--large { grid-row:span 2; align-self:start; }
.work-card--large img { aspect-ratio:1.18/1; }
.work-card--wide img { object-position:center 35%; }
.work-card figcaption { display:grid; grid-template-columns:auto 1fr; gap:10px 14px; align-items:start; padding:16px 5px 5px; }
.work-card figcaption > span { color:var(--gold); font:.72rem/1.5 "DM Mono",monospace; letter-spacing:.11em; }
.work-card figcaption div { display:grid; gap:4px; }
.work-card figcaption strong { font:400 1.2rem/1.1 "Playfair Display",serif; }
.work-card figcaption em { color:var(--muted); font:.68rem/1.4 "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; font-style:normal; }
.work-card figcaption a { grid-column:2; color:var(--muted); font-size:.73rem; line-height:1.45; text-underline-offset:.25em; }
.work-card figcaption a:hover { color:var(--gold); }
.work-card img[role="button"] { cursor:zoom-in; }
.art-open { grid-column:2; justify-self:start; margin:2px 0 0; padding:0 0 7px; border:0; border-bottom:1px solid rgba(215,187,121,.55); background:transparent; color:var(--gold); cursor:zoom-in; font:.65rem/1 "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.art-open:hover { color:var(--paper); border-bottom-color:var(--paper); }
.art-dialog { width:min(1240px,calc(100vw - 32px)); height:min(860px,88svh); max-width:none; max-height:none; margin:auto; padding:0; overflow:hidden; border:1px solid rgba(215,187,121,.5); background:var(--night); color:var(--paper); box-shadow:0 28px 90px rgba(0,0,0,.62); }
.art-dialog::backdrop { background:rgba(2,4,3,.9); backdrop-filter:blur(7px); }
.art-dialog-grid { display:grid; grid-template-columns:minmax(0,1fr) 310px; width:100%; height:100%; }
.art-dialog-stage { position:relative; min-width:0; min-height:0; overflow:hidden; background:#060807; touch-action:none; user-select:none; }
.art-dialog-stage.is-zoomed { cursor:grab; }
.art-dialog-stage.is-dragging { cursor:grabbing; }
.art-dialog-image { display:block; width:100%; height:100%; object-fit:contain; transform-origin:center; transition:transform .16s ease; will-change:transform; }
.art-dialog-stage.is-dragging .art-dialog-image { transition:none; }
.art-dialog-close { position:absolute; top:15px; right:15px; z-index:2; display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--line); border-radius:50%; background:rgba(7,9,8,.84); color:var(--paper); cursor:pointer; font:1.35rem/1 "DM Sans",sans-serif; }
.art-dialog-close:hover { border-color:var(--gold); color:var(--gold); }
.art-dialog-controls { position:absolute; right:16px; bottom:16px; z-index:2; display:flex; align-items:center; overflow:hidden; border:1px solid var(--line); background:rgba(7,9,8,.9); }
.art-dialog-controls button { display:grid; width:37px; height:36px; place-items:center; border:0; border-right:1px solid var(--line); background:transparent; color:var(--paper); cursor:pointer; font:1.1rem/1 "DM Sans",sans-serif; }
.art-zoom-range { display:flex; align-items:center; width:108px; height:36px; padding:0 10px; border-right:1px solid var(--line); }
.art-zoom-range input { width:100%; margin:0; accent-color:var(--gold); cursor:pointer; }
.art-zoom-value { display:grid; min-width:48px; height:36px; place-items:center; border-right:1px solid var(--line); color:var(--gold); font:.62rem/1 "DM Mono",monospace; letter-spacing:.06em; }
.art-dialog-controls button:last-child { border-right:0; }
.art-dialog-controls button:hover { color:var(--gold); background:rgba(215,187,121,.09); }
.art-dialog-help { position:absolute; left:18px; bottom:18px; margin:0; color:rgba(238,234,223,.76); font:.62rem/1.5 "DM Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }
.art-dialog-meta { display:flex; flex-direction:column; min-width:0; padding:clamp(29px,4vw,48px) 26px 25px; border-left:1px solid var(--line); background:#111411; }
.art-dialog-meta .eyebrow { margin-bottom:25px; }
.art-dialog-meta h2 { margin:0 0 11px; font:500 clamp(2rem,3.6vw,3.5rem)/.97 "Playfair Display",serif; letter-spacing:-.05em; }
.art-dialog-meta-year { margin:0; color:var(--muted); font:.68rem/1.5 "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }
.art-dialog-meta-copy { margin:28px 0 0; color:#cbc8bf; font:.9rem/1.7 "DM Sans",sans-serif; }
.art-dialog-meta .source-link { margin-top:auto; }
@media (max-width:800px) { .art-dialog { width:calc(100vw - 20px); height:min(900px,92svh); } .art-dialog-grid { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; } .art-dialog-meta { min-height:185px; max-height:32svh; border-top:1px solid var(--line); border-left:0; padding:23px 22px; overflow:auto; } .art-dialog-meta .eyebrow { margin-bottom:12px; } .art-dialog-meta h2 { font-size:2.25rem; } .art-dialog-meta-copy { display:none; } .art-dialog-meta .source-link { margin-top:18px; } }
.artist { display:grid; grid-template-columns:.58fr 1.42fr; gap:clamp(35px,9vw,150px); padding:clamp(70px,9vw,135px) 0; border-top:1px solid var(--line); }
.artist h2 { margin-bottom:27px; }
.artist p:not(.eyebrow) { max-width:790px; margin:0 0 21px; color:#cbc8bf; font:400 1.06rem/1.9 "DM Sans",sans-serif; }
.source-link { display:inline-block; margin-top:12px; padding-bottom:8px; color:var(--gold); font:.72rem/1 "DM Mono",monospace; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid rgba(215,187,121,.62); }
.foot { display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; padding:28px 0; border-top:1px solid var(--line); color:var(--muted); font:.72rem/1.5 "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.foot a { text-decoration:none; }
@media (max-width:900px) { .shell { width:calc(100% - 40px); } .top { grid-template-columns:1fr auto; } .top nav { display:none; } .artist-tab { flex-basis:max(150px,25%); } .gallery-heading { grid-template-columns:1fr 1.15fr; } .gallery-heading > p:last-child { grid-column:2; } .artist { grid-template-columns:.5fr 1.5fr; gap:45px; } }
@media (max-width:640px) { .shell { width:calc(100% - 28px); } .top { min-height:65px; } .brand { font-size:.68rem; letter-spacing:.1em; } .brand img { width:28px; height:28px; } .back { font-size:.64rem; } .artist-tabs { padding:0 34px; } .artist-tab { flex-basis:170px; justify-content:flex-start; min-height:52px; padding:0 18px; font-size:.64rem; text-align:left; } .artist-tabs-control { width:34px; } .hero { min-height:690px; } .hero-image { object-position:58% center; } .hero-wash { background:linear-gradient(0deg,rgba(7,9,8,.8),rgba(7,9,8,.16) 67%),linear-gradient(90deg,rgba(7,9,8,.45),transparent); } .hero-copy { align-self:end; padding:42px 26px 108px; } h1 { font-size:clamp(4.2rem,21vw,6.8rem); } .hero-scroll { left:26px; bottom:36px; } .gallery { padding:65px 0; } .gallery-heading, .artist { grid-template-columns:1fr; gap:21px; } .gallery-heading > p:last-child { grid-column:auto; } .work-grid, .work-grid--secondary { grid-template-columns:1fr; } .work-grid--vincent .vincent-primary { grid-row:auto; } .vincent-note { min-height:184px; margin-top:18px; padding:28px 27px; } .vincent-note p { max-width:240px; font-size:1.32rem; } .vincent-note-moon { top:8px; right:9px; width:107px; } .vincent-note-meadow { left:-8px; bottom:-15px; width:205px; } .work-card--large { grid-row:auto; } .work-card img, .work-card--large img, .work-grid--secondary .work-card img { aspect-ratio:1.15/1; } .work-card--wide img { aspect-ratio:1.15/1; } .art-open { font-size:.63rem; } .art-dialog-help { display:none; } .art-zoom-range { width:74px; } .art-zoom-value { min-width:42px; font-size:.58rem; } .artist { padding:65px 0; } .artist p:not(.eyebrow) { font-size:1rem; line-height:1.82; } .foot { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.art-music { position:fixed; right:22px; bottom:22px; z-index:20; display:grid; gap:11px; width:min(385px,calc(100vw - 44px)); padding:13px 15px 14px; border:1px solid rgba(215,187,121,.52); background:#0c0e0d; box-shadow:0 14px 42px rgba(0,0,0,.38); }
.art-music-heading { display:flex; align-items:center; gap:9px; min-width:0; }
.art-music-mark { display:grid; flex:0 0 25px; width:25px; height:25px; place-items:center; border:1px solid rgba(215,187,121,.65); border-radius:50%; color:var(--gold); font:1rem/1 "Playfair Display",serif; }
.art-music-heading p { margin:0 0 2px; color:var(--gold); font:.62rem/1 "DM Mono",monospace; letter-spacing:.13em; text-transform:uppercase; }
.art-music-heading span:not(.art-music-mark) { display:block; overflow:hidden; color:var(--paper); font:.71rem/1.35 "DM Sans",sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.art-music-controls { display:grid; grid-template-columns:30px minmax(65px,1fr) 74px 26px 68px; align-items:center; gap:9px; }
.art-music button { display:grid; width:29px; height:29px; place-items:center; padding:0; border:1px solid rgba(215,187,121,.5); border-radius:50%; background:transparent; color:var(--gold); cursor:pointer; font:.75rem/1 "DM Sans",sans-serif; }
.art-music button:hover:not(:disabled) { border-color:var(--paper); color:var(--paper); }
.art-music button:disabled { opacity:.45; cursor:default; }
.art-music-progress, .art-music-volume { display:flex; align-items:center; }
.art-music input[type="range"] { width:100%; margin:0; accent-color:var(--gold); cursor:pointer; }
.art-music-time { color:var(--muted); font:.61rem/1 "DM Mono",monospace; letter-spacing:.04em; text-align:center; white-space:nowrap; }
html.is-art-loading main { opacity:.54; pointer-events:none; transition:opacity .18s ease; }
@media (max-width:640px) { .art-music { right:14px; bottom:14px; width:calc(100vw - 28px); } .art-music-controls { grid-template-columns:29px minmax(50px,1fr) 68px 25px 54px; gap:7px; } .art-music-time { font-size:.57rem; } }
