@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Oswald:wght@500;600;700&display=swap');

:root { color-scheme: dark; --bg:#0c0b17; --panel:#151125; --gold:#e4bd68; --text:#f8f5ec; --muted:#b7b1c5; --line:#3b3348; --purple:#a77de0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; background:radial-gradient(ellipse at 14% 22%,#25113b 0,transparent 46%),radial-gradient(ellipse at 88% 80%,#21152d 0,transparent 42%),var(--bg); color:var(--text); font-family:'DM Sans',Arial,sans-serif; font-size:1rem; line-height:1.6; }
a { color:inherit; }
a:focus-visible, button:focus-visible, input:focus-visible { outline:3px solid var(--gold); outline-offset:5px; }
.skip-link { position:absolute; top:-100px; left:24px; z-index:3; background:var(--gold); color:var(--bg); padding:10px 18px; }
.skip-link:focus { top:12px; }
.site-shell { max-width:1260px; margin:0 auto; padding:0 clamp(22px,5vw,76px); }
.masthead { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:116px; padding:24px 0; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:15px; text-decoration:none; }
.brand-monogram { display:block; font-family:Georgia,serif; color:var(--gold); font-size:2.6rem; font-weight:700; letter-spacing:-.12em; padding-right:6px; line-height:1; }
.brand-monogram span { font-size:1.85rem; }
.brand-name { text-transform:uppercase; font-weight:700; font-size:1.12rem; letter-spacing:.13em; line-height:1.45; }
.brand-name>span { display:block; color:var(--muted); font-size:.75rem; font-weight:500; letter-spacing:.13em; }
.back-link { color:var(--muted); font-size:.9rem; text-underline-offset:5px; }
.back-link:hover { color:var(--gold); }
.album-hero { display:grid; grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr); align-items:center; gap:clamp(34px,6vw,86px); padding:clamp(46px,7vw,92px) 0 70px; }
.album-art { margin:0; min-width:0; }
.album-art img { display:block; width:100%; max-width:520px; height:auto; margin:0 auto; border:1px solid #5b4621; box-shadow:0 26px 80px #0009; }
.album-art figcaption { display:flex; justify-content:center; gap:15px; padding:15px 0 0; color:var(--muted); text-transform:uppercase; font-size:.75rem; letter-spacing:.14em; }
.album-art figcaption span { color:var(--gold); }
.album-copy { min-width:0; }
.eyebrow { margin:0 0 15px; color:var(--gold); font-size:.8125rem; font-weight:600; text-transform:uppercase; letter-spacing:.16em; }
.album-copy h1 { font-family:'Oswald','Arial Narrow',Arial,sans-serif; text-transform:uppercase; font-size:clamp(3.25rem,7vw,6.3rem); font-weight:500; line-height:1.06; letter-spacing:-.04em; margin:0; }
.subtitle { margin:14px 0 0; color:#d8cdec; font-size:1.2rem; }
.intro { max-width:600px; margin:24px 0 28px; color:var(--muted); font-size:1.0625rem; line-height:1.75; }
.player { max-width:640px; padding:24px 26px 22px; border:1px solid #56436c; border-left:3px solid var(--purple); background:linear-gradient(115deg,#1b142c,#121020); box-shadow:0 16px 45px #0005; }
.player-heading { display:flex; justify-content:space-between; gap:20px; color:#c9a9f2; font-size:.75rem; font-weight:600; letter-spacing:.14em; }
.duration { color:var(--muted); letter-spacing:0; font-weight:400; }
.player h2 { margin:12px 0 18px; font-size:1.25rem; line-height:1.35; }
audio { display:none; }
.transport { display:flex; align-items:center; gap:17px; }
.play-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 48px; width:48px; height:48px; padding:0 0 0 3px; border:0; border-radius:50%; background:var(--gold); color:var(--bg); font-size:1.15rem; cursor:pointer; }
.play-button:hover { background:#f7d591; }
.progress, .volume { width:100%; accent-color:var(--gold); cursor:pointer; }
.time-row { display:flex; justify-content:space-between; margin:7px 0 16px 65px; color:var(--muted); font-size:.75rem; }
.volume-row { display:flex; align-items:center; gap:14px; color:var(--muted); font-size:.75rem; }
.volume-row label { flex:0 0 auto; }
.tracklist { max-width:900px; padding:0 0 54px; border-top:1px solid var(--line); }
.section-heading { display:flex; align-items:baseline; gap:20px; padding:31px 0 16px; }
.section-heading .eyebrow { margin:0; color:var(--purple); }
.section-heading h2 { margin:0; font-size:1.65rem; }
.track-row { display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:18px; width:100%; padding:18px 16px; border:1px solid #55446a; background:#161125; color:var(--text); text-align:left; cursor:pointer; }
.track-row:hover { border-color:var(--gold); background:#1b1530; }
.track-row.active { border-left:3px solid var(--gold); }
.track-index { color:var(--gold); font-size:.8125rem; }
.track-name { font-weight:600; }
.track-name small { display:block; margin-top:2px; color:var(--muted); font-size:.8125rem; font-weight:400; }
.track-action { color:var(--gold); font-size:.8125rem; font-weight:600; white-space:nowrap; }
.track-action span { margin-left:7px; }
.tracklist-note { margin:14px 0 0; color:var(--muted); font-size:.875rem; }
.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; }
footer { display:flex; justify-content:space-between; gap:20px; padding:26px 0 30px; border-top:1px solid var(--line); font-size:.8125rem; color:var(--muted); }
@media (max-width:780px) { .masthead { min-height:100px; gap:14px; } .brand-name { font-size:1rem; } .brand-name>span { font-size:.75rem; letter-spacing:.075em; } .back-link { font-size:.8125rem; } .album-hero { grid-template-columns:1fr; gap:40px; padding:42px 0 54px; } .album-art { width:100%; max-width:470px; justify-self:center; } .album-copy h1 { font-size:clamp(3.25rem,15vw,5.4rem); } .intro { max-width:100%; } .player { max-width:100%; } }
@media (max-width:500px) { .site-shell { padding:0 20px; } .brand-monogram { font-size:2.25rem; } .brand-monogram span { font-size:1.6rem; } .brand-name { font-size:.85rem; letter-spacing:.09em; } .brand-name>span { font-size:.65rem; } .back-link { font-size:.75rem; } .player { padding:20px 18px 18px; } .track-row { grid-template-columns:34px 1fr; gap:12px; } .track-action { grid-column:2; } footer { flex-direction:column; gap:5px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
