/* Artist refresh. Shared by the existing editable home page and merchandise. */
:root { --ink:#14221e; --forest:#172d26; --paper:#f4f5f1; --cream:#e6eae2; --gold:#e2b878; --display:'Oswald',Impact,sans-serif; }
html { scroll-padding-top:6rem; }
body { font-size:1rem; }
button:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.site-header { height:6rem; border-bottom:1px solid #ffffff26; background:linear-gradient(#0c191cc9,transparent); }
.wordmark { font-size:1rem; letter-spacing:.08em; }
nav a,.header-cta { font-size:.875rem; }
nav a { padding:.75rem 0; opacity:1; }
.header-cta { border-radius:2px; display:flex; gap:1.5rem; }
.hero { min-height: min(900px, 94svh); background:#0b1a16; }
.hero > img { inset:0 0 0 auto; width:74%; object-position:52% 40%; }
.hero-shade { background:linear-gradient(90deg,#0b1a16 0%,#0b1a16f0 20%,#0b1a1690 40%,#0b1a1600 63%),linear-gradient(0deg,#0b1a1655,transparent 30%); }
.hero-copy { width:90%; margin:8rem auto 5rem; }
.eyebrow,.overline { font-size:.8125rem; line-height:1.6; letter-spacing:.16em; }
.hero .eyebrow { color:var(--gold); }
.hero h1.artist-title { font-family:var(--display); font-size:clamp(5rem,9.5vw,10rem); line-height:1.04; letter-spacing:-.045em; text-transform:uppercase; font-weight:600; max-width:55%; }
.artist-title span { display:block; }
.hero-manifesto { font-size:clamp(1.2rem,2vw,1.65rem); margin:1.5rem 0 0; line-height:1.5; }
.hero-manifesto em { font-family:var(--serif); color:var(--gold); }
.hero-location { font-size:.875rem; margin:1rem 0 1.8rem; line-height:1.7; }
.hero-actions { flex-wrap:wrap; }
.button { font-size:.875rem; border-radius:2px; min-height:3.5rem; line-height:1.35; }
.button-primary:hover { background:#f1cc98; }
.scroll-cue { display:none; }
.artist-strip { padding:1.3rem 5%; background:#0b1a16; color:#dce5dc; border-top:1px solid #ffffff28; display:flex; gap:2rem; justify-content:space-between; align-items:center; font-size:.875rem; }
.artist-strip > span { color:#aabcb0; }
.artist-strip a { text-decoration:none; display:flex; gap:2rem; }
.section { width:90%; max-width:1380px; }
.section-heading { border-top:1px solid #14221e40; padding-top:1.5rem; }
.section-heading h2,.story h2,.booking h2 { letter-spacing:-.045em; font-weight:500; }
.music-releases { grid-template-columns:1fr 1fr; gap:3rem; }
.release-card { grid-template-columns:1fr; color:var(--ink); }
.release-card-copy { aspect-ratio:auto; background:transparent; padding:1.8rem 0 0; justify-content:flex-start; }
.release-card-copy .overline { color:#586459; margin-bottom:.4rem; }
.release-card-copy h3 { font-size:clamp(1.8rem,2.8vw,3rem); }
.release-card-copy > p:not(.overline) { color:#48554b; margin:.6rem 0 0; }
.platforms { margin-top:1.5rem; gap:.5rem; }
.platforms a,.platforms > span { border-radius:2px; padding:.7rem .85rem; font-size:.875rem; }
.platforms a { background:transparent; color:var(--ink); border-color:#14221e45; }
.platforms a:hover { background:var(--forest); color:white; }
.platforms a span { padding:0; border:0; font-size:inherit; color:inherit; }
.story { grid-template-columns:1fr 1fr; }
.story-image { position:relative; min-height:650px; }
.story-image img { position:absolute; inset:0; }
.story-copy { padding:clamp(2rem,5vw,6rem); }
.story-copy .eyebrow { max-width:28rem; }
.story-copy h2 { font-size:clamp(2.6rem,4.3vw,4.8rem); }
.text-link { font-size:.9375rem; }
.merch-feature { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:4rem; padding-block:6rem; }
.merch-feature h2 { margin:0; font-family:var(--display); text-transform:uppercase; font-size:clamp(3rem,6vw,6rem); font-weight:500; line-height:1.1; letter-spacing:-.02em; }
.merch-feature h2 span { font-family:var(--serif); text-transform:none; font-style:italic; font-size:.47em; letter-spacing:-.03em; }
.merch-feature-copy { border-left:1px solid #14221e40; padding-left:3rem; }
.merch-feature-copy p { line-height:1.7; font-size:1.1rem; }
.merch-feature-copy .merch-status { font-size:.875rem; color:#536054; }
.gallery { padding-top:2rem; }
.booking-intro > p:not(.eyebrow) { color:#c1cdc5; }
.booking-form label { font-size:.875rem; text-transform:none; letter-spacing:0; }
.booking-form select { color-scheme:light; }
.booking-form select option { color:var(--ink); background-color:var(--paper); }
.booking-form :is(input,select,textarea):focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.form-privacy { font-size:.8125rem; color:#c1cdc5; }
.footer-name { font-size:1rem; letter-spacing:.1em; }
.socials a { font-size:.875rem; }
footer p { color:#acb8ae; font-size:.8125rem; }
.shop-page { background:var(--paper); }
.shop-page .site-header { position:relative; background:#0b1a16; }
.shop-intro { padding-top:5rem; padding-bottom:3rem; }
.shop-intro h1 { font-family:var(--display); font-size:clamp(4rem,10vw,9rem); font-weight:500; text-transform:uppercase; letter-spacing:-.04em; line-height:1.1; margin:0; }
.shop-intro > p:last-child { max-width:40rem; line-height:1.7; }
.shop-pending { border-block:1px solid #14221e40; padding:3rem 0; display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.shop-pending h2 { margin:0 0 1rem; font-size:2rem; font-weight:500; }
.shop-price { font-size:2rem; margin:.5rem 0; }
.shop-price span { font-size:1rem; }
.shop-pending p { line-height:1.7; }
.shop-pending .eyebrow { color:#586459; }
.shop-help { margin-top:3rem; line-height:1.7; }
.hat-mission { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:clamp(2rem,5vw,5rem); margin-top:5rem; padding-block:3rem; border-block:1px solid #14221e40; }
.hat-mission-heading .eyebrow { color:#536054; margin-top:0; }
.hat-mission-heading h2 { font-family:var(--display); font-size:clamp(2.5rem,4vw,4rem); line-height:1.1; font-weight:500; letter-spacing:-.025em; margin:0 0 1.5rem; }
.hat-mission-byline { font-size:.9375rem; color:#536054; }
.hat-mission-copy { max-width:65ch; font-size:1.0625rem; line-height:1.85; }
.hat-mission-copy > p { margin:0 0 1.5rem; }
.hat-mission-copy > p:last-child { margin-bottom:0; }
.hat-mission-copy blockquote { margin:2rem 0; border-left:3px solid var(--gold); padding:.25rem 0 .25rem 1.5rem; font-family:var(--serif); font-style:italic; font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.5; }
.hat-mission-copy blockquote p { margin:0; }
@media(max-width:800px) { .hat-mission { grid-template-columns:1fr; gap:1.5rem; margin-top:3rem; padding-block:2.5rem; } }
.shop-intro h1 { font-size:clamp(3.5rem,7vw,7rem); }
.shop-subtitle { font-size:1.2rem; line-height:1.6; margin:1.25rem 0 .5rem; }
.shop-subtitle + .text-link { margin-top:0; line-height:1.6; }
.shop-collection-note { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem 2rem; padding:1rem 0; margin:2.5rem 0 2rem; border-block:1px solid #14221e35; }
.shop-collection-note p { margin:0; line-height:1.7; font-size:.9375rem; }
.shop-collection-note p:first-child { font-weight:600; }
.shop-collection-note p span { font-weight:400; color:#536054; }
.hat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.hat-card { min-width:0; scroll-margin-top:2rem; }
.hat-photo { width:100%; height:auto; aspect-ratio:1; object-fit:contain; background:#f0e8dd; }
.hat-views { display:flex; gap:.6rem; margin:.8rem 0 1.5rem; }
.hat-view { display:flex; align-items:center; gap:.6rem; flex:1; justify-content:center; padding:.5rem .65rem; border:1px solid #14221e45; background:transparent; color:var(--ink); font:500 .875rem/1.5 var(--sans); cursor:pointer; min-height:44px; }
.hat-view[aria-pressed="true"] { border-color:var(--forest); background:var(--forest); color:white; }
.hat-view:hover { box-shadow:inset 0 0 0 1px var(--forest); }
.hat-view img { width:2.6rem; height:2.6rem; object-fit:cover; }
.hat-heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-top:1.5rem; }
.hat-heading h2 { font-size:clamp(1.4rem,2vw,2rem); line-height:1.25; letter-spacing:-.035em; font-weight:500; margin:0; }
.hat-heading p { font-size:1.25rem; margin:0; }
.hat-description { line-height:1.7; font-size:1rem; color:#536054; }
.hat-availability { border-top:1px solid #14221e30; margin-top:1.5rem; padding-top:1rem; font-size:.875rem; color:#536054; }
.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; }
.merch-preview { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.merch-preview-card { text-decoration:none; min-width:0; }
.merch-preview-card > img { aspect-ratio:1; height:auto; object-fit:contain; background:#f0e8dd; }
.merch-preview-card > span { display:flex; justify-content:space-between; gap:1rem; margin-top:1rem; font-size:1.1rem; }
.merch-preview-card:hover > span { text-decoration:underline; text-underline-offset:.3rem; }
@media(min-width:1600px) { .hero-copy { max-width:1500px; } }
@media(max-width:1000px) { .wordmark { font-size:.875rem; } nav { gap:1.25rem; } .hero h1.artist-title { font-size:9.5vw; } .hero-actions { max-width:30rem; } .music-releases { gap:1.75rem; } }
@media(max-width:800px) {
 .site-header { height:5rem; grid-template-columns:1fr auto; } .header-cta { font-size:.875rem; }
 .hero { min-height:850px; min-height:100svh; align-items:end; }
 .hero > img { inset:0; width:100%; height:66%; object-position:54% 25%; }
 .hero-shade { background:linear-gradient(0deg,#0b1a16 4%,#0b1a16 24%,#0b1a1600 78%); }
 .hero-copy { margin:25rem 1.25rem 3.5rem; width:auto; }
 .hero h1.artist-title { font-size:clamp(4.2rem,15vw,7rem); max-width:100%; line-height:1; }
 .hero .eyebrow { margin-bottom:.85rem; } .hero-manifesto { margin-top:1rem; }
 .hero-location { font-size:.875rem; } .hero-actions { display:flex; max-width:none; }
 .hero-actions .button { flex:1 1 160px; padding:.85rem 1rem; gap:.75rem; }
 .artist-strip { flex-wrap:wrap; gap:1rem; padding:1.5rem; } .artist-strip > span { flex-basis:100%; } .artist-strip a { gap:1rem; }
 .section { width:calc(100% - 3rem); padding-block:4rem; }
 .music-releases { grid-template-columns:1fr; gap:3rem; } .release-card-copy { padding:1.5rem 0 0; }
 .story { grid-template-columns:1fr; } .story-image { min-height:0; } .story-image img { position:static; }
 .story-copy { padding:3rem 1.5rem; } .merch-feature { grid-template-columns:1fr; gap:2rem; }
 .merch-feature-copy { border-left:0; border-top:1px solid #14221e40; padding:1rem 0 0; }
 .mobile-actions { grid-template-columns:1fr 1fr 1.3fr; border-radius:4px; }
 .mobile-actions a { font-size:.875rem; border-radius:2px; }
 .shop-pending { grid-template-columns:1fr; gap:1rem; } .shop-intro { padding-top:3rem; }
 .hat-grid { grid-template-columns:1fr; gap:2.5rem; max-width:34rem; margin-inline:auto; }
 .hat-heading h2 { font-size:1.8rem; }
 .merch-preview { gap:.75rem; }
 .merch-preview-card > span { font-size:.875rem; gap:.25rem; }
 .hat-views { margin-bottom:1rem; }
 footer .socials { flex-wrap:wrap; justify-content:center; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.shop-preview-note { padding:.8rem 1rem; border-left:3px solid var(--gold); background:#e6eae2; font-size:.9375rem; line-height:1.6; }
.bag-open { background:var(--forest); color:white; margin:.5rem 0 0; }
.add-hat { width:100%; justify-content:space-between; }
.bag-dialog { margin:auto 0 auto auto; padding:2rem; width:min(100%,480px); height:100dvh; max-height:100dvh; border:0; color:var(--ink); background:var(--paper); }
.bag-dialog::backdrop { background:#07130f99; }
.bag-top { display:flex; justify-content:space-between; align-items:center; gap:1rem; border-bottom:1px solid var(--line); padding-bottom:1rem; }
.bag-top h2 { font-size:2rem; font-weight:500; margin:0; }
.bag-close { background:transparent; border:1px solid var(--line); min-width:44px; min-height:44px; color:var(--ink); font-size:1.1rem; cursor:pointer; }
.bag-item { display:grid; grid-template-columns:80px 1fr auto; gap:1rem; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.bag-item img { width:80px; height:80px; object-fit:cover; }
.bag-item h3 { margin:0; font-size:1.1rem; }
.bag-item p { margin:.4rem 0; }
.bag-quantity { display:flex; align-items:center; gap:1rem; margin-top:.5rem; }
.bag-quantity button { width:36px; height:44px; font-size:1.1rem; border:1px solid var(--line); color:var(--ink); background:transparent; cursor:pointer; }
.bag-remove { border:0; padding:.75rem 0 0; font:inherit; font-size:.875rem; text-decoration:underline; color:#536054; background:transparent; cursor:pointer; }
.bag-summary > p:first-child { display:flex; justify-content:space-between; font-size:1.2rem; }
.bag-summary > p:last-child,.bag-footnote { font-size:.875rem; color:#536054; line-height:1.6; }
.bag-message { font-size:.9375rem; line-height:1.65; }
.bag-dialog > .button { width:100%; }
.button:disabled { opacity:.6; cursor:not-allowed; }
.bag-empty { padding:2rem 0; line-height:1.7; }
.checkout-section { border-top:1px solid var(--line); }
.order-card { border:1px solid var(--line); padding:1.5rem; margin:1.5rem 0; overflow-wrap:anywhere; }
#orders-login { display:flex; gap:1rem; flex-wrap:wrap; align-items:end; }
#orders-login label { display:grid; gap:.5rem; }
#orders-token { font:inherit; padding:.8rem; }
@media(max-width:480px) { .bag-dialog { padding:1.25rem; } .bag-item { grid-template-columns:60px 1fr auto;gap:.75rem; } .bag-item img { width:60px;height:60px; } }
