:root{
  --bg: oklch(97.5% 0.008 75);
  --bg-card: oklch(99% 0.004 80);
  --border: oklch(88% 0.01 60);
  --border-soft: oklch(92% 0.008 70);
  --ink: oklch(22% 0.015 50);
  --ink-soft: oklch(38% 0.015 50);
  --ink-mute: oklch(45% 0.02 50);
  --maroon: oklch(33% 0.09 25);
  --maroon-hover: oklch(25% 0.09 25);
  --gold: oklch(70% 0.07 85);
  --sand: oklch(94% 0.012 70);
  --tone-img: oklch(90% 0.01 70);
  --available-dot: oklch(48% 0.09 145);
  --available-fg: oklch(30% 0.06 145);
  --reserved-dot: oklch(58% 0.1 70);
  --reserved-fg: oklch(40% 0.08 70);
  --sold-dot: oklch(45% 0.02 50);
  --sold-fg: oklch(40% 0.02 50);
  --footer-bg: oklch(18% 0.014 50);
  --footer-ink: oklch(90% 0.006 70);
  --footer-mute: oklch(70% 0.01 60);
  --footer-border: oklch(35% 0.015 50);
}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:'Work Sans',sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--maroon);text-decoration:none}
a:hover{color:var(--maroon-hover)}
::selection{background:oklch(90% 0.03 25)}
button{font-family:inherit}

@keyframes wa-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

.eyebrow{font:600 12px/1 'Work Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.eyebrow-dark{color:var(--maroon)}
.eyebrow-light{color:var(--gold)}

/* Header */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 40px;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:oklch(97.5% 0.008 75 / 0.96);backdrop-filter:blur(6px);z-index:10;
}
.logo{font:600 15px/1 'Newsreader',serif;letter-spacing:.06em;color:var(--ink);text-transform:uppercase}
.logo span{color:var(--maroon)}

.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--border);background:var(--bg-card);border-radius:8px;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.nav-toggle span{width:18px;height:2px;background:var(--ink)}

.nav-desktop{display:flex;gap:30px;align-items:center}
.nav-desktop a{font:500 13px 'Work Sans',sans-serif;color:var(--ink)}
.nav-cta{font:600 13px 'Work Sans',sans-serif!important;padding:10px 18px;background:var(--maroon);color:var(--bg-card)!important;border-radius:100px}
.nav-cta:hover{background:var(--maroon-hover);color:var(--bg-card)!important}

.nav-mobile{display:none;flex-direction:column;padding:8px 24px 20px;gap:2px;border-bottom:1px solid var(--border);animation:wa-fade .18s ease}
.nav-mobile.is-open{display:flex}
.nav-mobile a{font:500 15px 'Work Sans',sans-serif;color:var(--ink);padding:12px 0;border-bottom:1px solid var(--border-soft)}
.nav-mobile a:last-child{border-bottom:none}

/* Hero */
.hero{display:flex;align-items:stretch}
.hero-text{flex:1 1 50%;display:flex;flex-direction:column;justify-content:center;padding:80px 60px}
.hero-text h1{font:500 52px/1.14 'Newsreader',serif;color:var(--ink);margin:0 0 20px}
.hero-sub{font:400 16px/1.65 'Work Sans',sans-serif;color:var(--ink-soft);max-width:46ch;margin:0 0 28px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-img{flex:1 1 50%;min-height:auto;background:var(--tone-img)}
.hero-img img{width:100%;height:100%;object-fit:cover;display:block}

.btn{font:600 14px 'Work Sans',sans-serif;padding:14px 26px;border-radius:2px;display:inline-block}
.btn-primary{background:var(--maroon);color:var(--bg-card)}
.btn-primary:hover{background:var(--maroon-hover);color:var(--bg-card)}
.btn-outline{border:1px solid var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--bg-card)}

/* Quote band */
.quote-band{padding:80px 40px;text-align:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.quote-text{font:400 22px/1.6 'Newsreader',serif;font-style:italic;max-width:680px;margin:0 auto;color:oklch(28% 0.015 50)}
.quote-cite{font:500 12px 'Work Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin-top:14px}

/* Collections */
.collections{padding:80px 40px}
.collections-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:28px}
.collections-head h2{font:500 30px 'Newsreader',serif;margin:0;color:var(--ink)}

.tabs{display:flex;gap:8px;background:var(--sand);padding:4px;border-radius:100px}
.tab{font:600 13px 'Work Sans',sans-serif;padding:9px 18px;border-radius:100px;border:none;cursor:pointer;background:transparent;color:var(--ink-soft)}
.tab.is-active{background:var(--maroon);color:var(--bg-card)}

.collections-desc{font:400 15px/1.6 'Work Sans',sans-serif;color:var(--ink-mute);max-width:60ch;margin-bottom:40px}

.works-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}
.works-grid.is-dense{grid-template-columns:repeat(3,1fr);gap:24px}

.work-card{display:flex;flex-direction:column;text-align:left;background:transparent;border:none;padding:0;cursor:pointer;font-family:'Work Sans',sans-serif}
.work-imgwrap{position:relative;width:100%;aspect-ratio:5/4;overflow:hidden;background:var(--tone-img);border-radius:2px}
.works-grid.is-dense .work-imgwrap{aspect-ratio:4/5}
.work-imgwrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.work-card:hover .work-imgwrap img{transform:scale(1.03)}

.badge{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:6px;font:500 11px 'Work Sans',sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:6px 10px;border-radius:100px;background:oklch(99% 0.004 80 / 0.92)}
.badge-dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.badge.status-available{color:var(--available-fg)}
.badge.status-available .badge-dot{background:var(--available-dot)}
.badge.status-reserved{color:var(--reserved-fg)}
.badge.status-reserved .badge-dot{background:var(--reserved-dot)}
.badge.status-sold{color:var(--sold-fg)}
.badge.status-sold .badge-dot{background:var(--sold-dot)}

.work-info{padding:14px 2px 0;text-align:left}
.work-title{font:500 19px 'Newsreader',serif;color:var(--ink)}
.works-grid.is-dense .work-title{font:500 15px 'Newsreader',serif}
.work-meta{font:400 12px 'Work Sans',sans-serif;color:var(--ink-mute);margin-top:3px}
.work-price{font:600 14px 'Work Sans',sans-serif;color:var(--ink);margin-top:6px}

/* About */
.about{padding:80px 40px;background:var(--sand);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.about-grid{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:center;max-width:1180px;margin:0 auto}
.about-copy h2{font:500 28px/1.3 'Newsreader',serif;margin:0 0 16px;color:var(--ink)}
.about-copy p{font:400 15px/1.7 'Work Sans',sans-serif;color:var(--ink-soft);max-width:56ch}
.about-img{aspect-ratio:4/5;background:var(--border);border-radius:2px;overflow:hidden}
.about-img img{width:100%;height:100%;object-fit:cover;display:block}

/* Commissions / trade */
.teal-grid{display:grid;grid-template-columns:1fr 1fr}
.teaser{padding:64px 48px}
.teaser-dark{background:var(--ink);color:var(--bg)}
.teaser-light{background:var(--sand)}
.teaser h3{font:500 22px 'Newsreader',serif;margin:0 0 10px}
.teaser-light h3{color:var(--ink)}
.teaser p{font:400 14px/1.65 'Work Sans',sans-serif;margin:0 0 18px}
.teaser-dark p{color:oklch(80% 0.01 60)}
.teaser-light p{color:var(--ink-soft)}
.teaser-link{font:600 13px 'Work Sans',sans-serif;border-bottom:1px solid var(--gold);padding-bottom:2px}
.teaser-link-light{color:var(--bg)}
.teaser-link-dark{color:var(--maroon)}

/* Footer */
.site-footer{padding:64px 40px 32px;background:var(--footer-bg);color:var(--footer-ink)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;max-width:1180px;margin:0 auto}
.footer-logo{font:600 15px 'Newsreader',serif;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}
.footer-logo span{color:var(--gold)}
.footer-tagline{font:400 13px/1.6 'Work Sans',sans-serif;color:var(--footer-mute);max-width:32ch}
.footer-heading{font:600 11px 'Work Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--footer-mute);margin-bottom:12px}
.footer-links{display:flex;flex-direction:column;gap:9px}
.footer-links a{font:400 13px 'Work Sans',sans-serif;color:oklch(90% 0.006 70)}
.newsletter{display:flex}
.newsletter input{font:400 13px 'Work Sans',sans-serif;padding:11px 14px;border:1px solid var(--footer-border);background:var(--ink);color:oklch(95% 0.005 70);border-radius:3px 0 0 3px;flex:1;min-width:0}
.newsletter input::placeholder{color:var(--footer-mute)}
.newsletter button{font:600 13px 'Work Sans',sans-serif;padding:0 18px;background:var(--gold);color:oklch(20% 0.015 50);border:none;border-radius:0 3px 3px 0;cursor:pointer}
.footer-bottom{max-width:1180px;margin:36px auto 0;border-top:1px solid var(--footer-border);padding-top:18px;font:400 12px 'Work Sans',sans-serif;color:var(--footer-mute)}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:oklch(20% 0.01 50 / 0.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:wa-fade .15s ease}
.modal-overlay[hidden]{display:none}
.modal{position:relative;background:var(--bg-card);border-radius:6px;overflow:hidden;max-height:88vh;overflow-y:auto;box-shadow:0 30px 80px oklch(20% 0.02 50 / 0.35)}
.modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font:16px sans-serif;color:var(--ink);z-index:2}

.modal-grid{display:grid;grid-template-columns:1.1fr 1fr}
.modal-imgwrap{background:var(--tone-img);min-height:auto}
.modal-imgwrap img{width:100%;height:100%;object-fit:cover;display:block}
.modal-info{padding:40px 40px 40px 8px;display:flex;flex-direction:column}
.modal-title{font:500 24px 'Newsreader',serif;margin:14px 0 4px;color:var(--ink)}
.modal-meta{font:400 13px 'Work Sans',sans-serif;color:var(--ink-mute);margin-bottom:14px}
.modal-price{font:600 22px 'Newsreader',serif;color:var(--ink);margin-bottom:16px}
.modal-desc{font:400 14px/1.65 'Work Sans',sans-serif;color:var(--ink-soft);margin:0 0 20px;flex:1}
.modal-badge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font:500 11px 'Work Sans',sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:6px 10px;border-radius:100px;background:var(--sand)}

.modal-buy{display:block;width:100%;box-sizing:border-box;text-align:center;text-decoration:none;font:600 14px 'Work Sans',sans-serif;padding:15px;background:var(--maroon);color:var(--bg-card);border:none;border-radius:2px;cursor:pointer;margin-bottom:10px}
.modal-buy:hover{background:var(--maroon-hover);color:var(--bg-card)}
.modal-status-note{font:500 13px 'Work Sans',sans-serif;margin-bottom:10px}
.modal-status-note.reserved{color:var(--reserved-fg)}
.modal-status-note.sold{color:var(--ink-mute)}
.modal-secondary{box-sizing:border-box;font:600 13px 'Work Sans',sans-serif;padding:14px;background:transparent;border:1px solid var(--ink);color:var(--ink);border-radius:2px;cursor:pointer;margin-bottom:10px;text-align:center;display:block;text-decoration:none}
.modal-secondary:hover{background:var(--ink);color:var(--bg-card)}
.modal-ask{font:500 13px 'Work Sans',sans-serif;color:var(--ink-mute);text-align:center;margin-top:4px}

.confirmed-pane{padding:48px 36px;text-align:center;max-width:420px;margin:0 auto}
.confirmed-check{width:52px;height:52px;border-radius:50%;background:oklch(90% 0.05 145);color:oklch(35% 0.09 145);display:flex;align-items:center;justify-content:center;font:20px sans-serif;margin:0 auto 18px}
.confirmed-title{font:500 22px 'Newsreader',serif;margin:0 0 8px;color:var(--ink)}
.confirmed-text{font:400 14px/1.6 'Work Sans',sans-serif;color:var(--ink-soft);margin:0 0 22px}
.confirmed-done{box-sizing:border-box;display:block;width:100%;text-align:center;text-decoration:none;font:600 14px 'Work Sans',sans-serif;padding:14px;background:var(--maroon);color:var(--bg-card);border:none;border-radius:2px;cursor:pointer}
.confirmed-done:hover{background:var(--maroon-hover);color:var(--bg-card)}

.confirm-page{min-height:calc(100vh - 160px);display:flex;align-items:center;justify-content:center;padding:60px 20px}

/* Content pages (About, Commissions, Trade, Visit) */
.page-hero{padding:80px 40px 56px;max-width:900px;margin:0 auto;text-align:left}
.page-hero h1{font:500 44px/1.18 'Newsreader',serif;color:var(--ink);margin:0 0 18px}
.page-hero .lede{font:400 17px/1.65 'Work Sans',sans-serif;color:var(--ink-soft);max-width:60ch;margin:0}

.artist-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.artist-photo{aspect-ratio:4/5;border-radius:4px;overflow:hidden;background:var(--tone-img)}
.artist-photo img{width:100%;height:100%;object-fit:cover;display:block}

.content-section{padding:0 40px 80px;max-width:900px;margin:0 auto}
.content-section + .content-section{padding-top:0}
.content-section h2{font:500 26px/1.3 'Newsreader',serif;color:var(--ink);margin:0 0 16px}
.content-section p{font:400 16px/1.75 'Work Sans',sans-serif;color:var(--ink-soft);max-width:64ch;margin:0 0 18px}
.content-section p:last-child{margin-bottom:0}

.info-card{background:var(--sand);border-radius:6px;padding:36px 40px;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.info-item-label{font:600 11px 'Work Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px}
.info-item-value{font:500 16px/1.5 'Work Sans',sans-serif;color:var(--ink)}
.info-item-value a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--border)}

.process-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px}
.process-list li{display:flex;gap:20px;align-items:flex-start}
.process-num{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--maroon);color:var(--bg-card);display:flex;align-items:center;justify-content:center;font:600 13px 'Work Sans',sans-serif}
.process-body h3{font:500 17px 'Newsreader',serif;color:var(--ink);margin:0 0 4px}
.process-body p{font:400 14px/1.65 'Work Sans',sans-serif;color:var(--ink-soft);margin:0;max-width:56ch}

.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}

/* Journal listing */
.journal-section{padding:20px 40px 90px}
.journal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:44px 40px;max-width:1180px;margin:0 auto}
.journal-card{display:block;text-decoration:none;color:inherit;font-family:'Work Sans',sans-serif}
.journal-card-imgwrap{aspect-ratio:16/10;overflow:hidden;border-radius:3px;background:var(--tone-img)}
.journal-card-imgwrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.journal-card:hover .journal-card-imgwrap img{transform:scale(1.03)}
.journal-card-body{padding:16px 2px 0}
.journal-meta-row{display:flex;gap:8px;align-items:center;margin-bottom:9px}
.journal-category{font:600 11px 'Work Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--maroon)}
.journal-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--ink-mute);flex:0 0 auto}
.journal-date{font:400 12px 'Work Sans',sans-serif;color:var(--ink-mute)}
.journal-title{font:500 21px/1.3 'Newsreader',serif;color:var(--ink);margin:0 0 8px}
.journal-excerpt{font:400 14px/1.6 'Work Sans',sans-serif;color:var(--ink-soft);margin:0 0 10px;max-width:48ch}
.journal-readmore{font:600 12px 'Work Sans',sans-serif;color:var(--maroon);border-bottom:1px solid var(--gold);padding-bottom:1px}

.journal-featured{grid-column:1/-1;display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center;padding-bottom:36px;margin-bottom:8px;border-bottom:1px solid var(--border)}
.journal-featured .journal-card-imgwrap{aspect-ratio:4/3}
.journal-featured .journal-title{font:500 30px/1.25 'Newsreader',serif;margin:0 0 12px}
.journal-featured .journal-excerpt{font-size:15px;max-width:52ch}

.journal-empty-note{font:400 14px/1.6 'Work Sans',sans-serif;color:var(--ink-mute);text-align:center;padding:40px 20px}

.journal-filters{display:flex;flex-wrap:wrap;gap:8px;max-width:1180px;margin:0 auto 40px}
.journal-filter{font:600 12px 'Work Sans',sans-serif;letter-spacing:.02em;padding:9px 16px;border-radius:100px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink-soft);cursor:pointer}
.journal-filter:hover{border-color:var(--maroon)}
.journal-filter.is-active{background:var(--maroon);border-color:var(--maroon);color:var(--bg-card)}

/* Article (journal post) pages */
.article-hero{padding:64px 40px 0;max-width:760px;margin:0 auto;text-align:left}
.article-hero .eyebrow{margin-bottom:14px}
.article-hero h1{font:500 38px/1.2 'Newsreader',serif;color:var(--ink);margin:0 0 14px}
.article-meta{font:400 13px 'Work Sans',sans-serif;color:var(--ink-mute)}
.article-hero-imgwrap{max-width:920px;margin:36px auto 0;aspect-ratio:16/9;overflow:hidden;border-radius:4px;background:var(--tone-img)}
.article-hero-imgwrap img{width:100%;height:100%;object-fit:cover;display:block}

.article-body{max-width:720px;margin:0 auto;padding:48px 40px 0}
.article-body h2{font:500 24px/1.35 'Newsreader',serif;color:var(--ink);margin:38px 0 14px}
.article-body h3{font:500 19px/1.35 'Newsreader',serif;color:var(--ink);margin:30px 0 10px}
.article-body p{font:400 16px/1.8 'Work Sans',sans-serif;color:var(--ink-soft);margin:0 0 20px}
.article-body p:last-child{margin-bottom:0}
.article-lede{font:400 18px/1.6 'Newsreader',serif;font-style:italic;color:var(--ink-soft)!important}
.article-body figure{margin:36px 0}
.article-body figure img{width:100%;border-radius:4px;display:block;background:var(--tone-img)}
.article-figcaption{font:400 12px 'Work Sans',sans-serif;color:var(--ink-mute);margin-top:9px;text-align:center}

.article-footer-nav{max-width:720px;margin:44px auto 0;padding:28px 40px 80px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.back-to-journal{font:600 13px 'Work Sans',sans-serif;color:var(--maroon);border-bottom:1px solid var(--gold);padding-bottom:2px}

/* Focus states */
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--maroon);outline-offset:2px}

/* Responsive */
@media (max-width: 860px){
  .site-header{padding:18px 20px}
  .nav-desktop{display:none}
  .nav-toggle{display:flex}

  .hero{flex-direction:column}
  .hero-text{padding:48px 24px}
  .hero-text h1{font:500 34px/1.18 'Newsreader',serif}
  .hero-img{min-height:320px}

  .quote-band,.collections,.about,.about-grid{padding:48px 20px}
  .about{padding:48px 20px}
  .about-grid{grid-template-columns:1fr;gap:32px;padding:0}
  .collections{padding:48px 20px}
  .collections-desc{margin-bottom:28px}

  .works-grid,.works-grid.is-dense{grid-template-columns:1fr}

  .teal-grid{grid-template-columns:1fr}
  .teaser{padding:48px 24px}

  .site-footer{padding:48px 24px 28px}
  .footer-grid{grid-template-columns:1fr;gap:32px}

  .modal{max-width:92vw!important;width:92vw!important}
  .modal-grid{grid-template-columns:1fr}
  .modal-imgwrap{min-height:260px}
  .modal-info{padding:28px 24px 32px}

  .page-hero{padding:48px 20px 36px}
  .page-hero h1{font:500 30px/1.22 'Newsreader',serif}
  .content-section{padding:0 20px 56px}
  .info-card{grid-template-columns:1fr;padding:28px 24px}
  .artist-hero{grid-template-columns:1fr;gap:28px}
  .artist-photo{max-width:280px;margin:0 auto}

  .journal-section{padding:12px 20px 56px}
  .journal-grid{grid-template-columns:1fr;gap:36px}
  .journal-featured{grid-template-columns:1fr;gap:18px;padding-bottom:28px}
  .journal-featured .journal-title{font:500 24px/1.28 'Newsreader',serif}

  .article-hero{padding:48px 20px 0}
  .article-hero h1{font:500 28px/1.24 'Newsreader',serif}
  .article-hero-imgwrap{margin-top:24px}
  .article-body{padding:36px 20px 0}
  .article-body h2{font:500 21px/1.32 'Newsreader',serif}
  .article-footer-nav{padding:24px 20px 56px}
}
