:root{--ink:#302b2e;--paper:#fbfaf5;--rose:#b9869d;--deep:#814f66;--season-color:#d8b1c2;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#c99eaf}
*{box-sizing:border-box}
body{margin:0;padding:32px 18px 54px;background-color:#c99eaf;background-image:repeating-linear-gradient(0deg,#ffffff19 0,#ffffff19 1px,transparent 1px,transparent 3px),repeating-linear-gradient(90deg,#32242b12 0,#32242b12 1px,transparent 1px,transparent 3px)}
button{font:inherit}a{color:inherit}
button:focus-visible,a:focus-visible,[role=tab]:focus-visible,summary:focus-visible{outline:3px solid #76475e;outline-offset:3px}
.site-sheet{width:min(100%,940px);margin:auto;overflow:hidden;border:2px solid var(--ink);border-radius:15px;background:var(--paper);box-shadow:7px 8px 0 #56434e44,0 19px 45px #33232c29;animation:page-arrive .65s ease-out both}
.topbar{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 24px;background:var(--paper);border-bottom:2px solid var(--rose)}
.brand{color:var(--deep);font-family:'Bodoni MT',Didot,Georgia,serif;font-size:21px;font-weight:900;letter-spacing:.02em;text-decoration:none;white-space:nowrap}
.brand::after{content:' / ISSUE 03';margin-left:6px;color:#7c6a6d;font:700 8px Arial,sans-serif;letter-spacing:.16em;vertical-align:middle}
.topnav{display:flex;align-items:center;justify-content:space-between;gap:clamp(10px,2.9vw,43px)}
.topnav a{text-decoration:none;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.15em;white-space:nowrap}
.topnav a:hover,.topnav a[aria-current=page]{color:var(--deep);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.index-label{color:#86546d;font:800 10px Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.music-intro{padding:38px 45px 31px;background:#f7f3ef;background-image:radial-gradient(circle at 95% 19%,#eadde2 0,transparent 25%),repeating-linear-gradient(90deg,#b9869d10 0,#b9869d10 1px,transparent 1px,transparent 7px)}
.music-intro .index-label{margin:0}
.intro-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.72fr);align-items:end;gap:30px;margin-top:31px}
.music-intro h1{max-width:590px;margin:0;font:900 clamp(56px,8.5vw,86px)/.88 Arial,Helvetica,sans-serif;letter-spacing:-.085em}
.music-intro h1 em{display:block;color:#b9869d;font:italic 400 .85em/.95 Georgia,serif;letter-spacing:-.07em}
.intro-sub{margin:18px 0 0;color:#756069;font:italic 20px/1.2 Georgia,serif}
.intro-note{max-width:240px;margin:0 0 4px;padding:4px 0 4px 17px;border-left:2px solid #bc8ca3;font:13px/1.5 Arial,sans-serif}
.music-archive{padding:27px 38px 64px;background:#fbfaf5;background-image:repeating-linear-gradient(0deg,#bb9aab0c 0,#bb9aab0c 1px,transparent 1px,transparent 6px)}
.season-chooser{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:17px}
.season-chooser h2{margin:7px 0 0;font:900 clamp(29px,4.1vw,41px)/.95 Arial,sans-serif;letter-spacing:-.07em}
.swipe-hint{display:none;margin:8px 0 0;color:#7c6671;font:italic 12px Georgia,serif}
.season-controls{display:flex;align-items:center;gap:6px;min-width:0}
.season-arrow{flex:none;width:31px;height:31px;border:1px solid #a88797;background:#fffdf8;color:#6b4558;cursor:pointer}
.season-arrow:hover{background:#f3e5eb}
.season-arrow:disabled{opacity:.35;cursor:default}
.season-tabs{display:flex;gap:4px;max-width:400px;overflow-x:auto;scrollbar-width:none;padding:2px}
.season-tabs::-webkit-scrollbar{display:none}
.season-tab{flex:none;width:37px;height:31px;border:1px solid transparent;background:transparent;color:#805e6d;font:800 10px Arial,sans-serif;cursor:pointer}
.season-tab:hover{border-color:#c8a8b7;background:#f8eef2}
.season-tab[aria-selected=true]{border-color:#76515f;background:var(--season-color);color:#2e2630;box-shadow:2px 2px 0 #a78f9b}
.record-stage{position:relative;overflow:hidden;padding:22px 25px 18px;border:1px solid #8e7a83;background:linear-gradient(124deg,color-mix(in srgb,var(--season-color) 42%,#fbfaf5),#fbfaf5 57%,color-mix(in srgb,var(--season-color) 28%,#fbfaf5));box-shadow:5px 6px 0 #d7c8ce;touch-action:pan-y}
.record-stage::after{content:"";position:absolute;top:-45px;right:-50px;width:150px;height:150px;border:1px solid #9c7d8b55;transform:rotate(29deg);pointer-events:none}
.stage-topline,.stage-bottomline{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;color:#744e60;font:800 9px 'Courier New',monospace;letter-spacing:.11em}
.stage-topline{padding-bottom:13px;border-bottom:1px solid #bca6af}
.stage-bottomline{padding-top:13px;border-top:1px solid #bca6af}
.record-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);align-items:center;gap:22px;min-height:390px}
.record-art{position:relative;height:345px;min-width:0}
.vinyl{position:absolute;top:12px;right:-5px;width:320px;aspect-ratio:1;border-radius:50%;background:url('solstice-black-silver-vinyl-v1.png') center/contain no-repeat;filter:drop-shadow(0 8px 8px #2b20293f);animation:spin 10s linear infinite}
.vinyl-label{position:absolute;inset:36.5%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid #e6dfe1;border-radius:50%;background:var(--season-color);color:#4d3c43;text-align:center}
.vinyl-mark{font:italic 700 33px Georgia,serif;line-height:.75}.vinyl-label small{margin-top:8px;font:800 5px Arial,sans-serif;letter-spacing:.12em}
.sleeve{position:absolute;left:2px;top:52px;width:270px;height:270px;padding:10px;border:1px solid #9b888e;background:#fffdf9;box-shadow:7px 10px 15px #2d202e51;transform:rotate(-3deg)}
.sleeve-cover{position:relative;display:flex;align-items:end;justify-content:space-between;width:100%;height:100%;padding:20px 16px;background:linear-gradient(142deg,color-mix(in srgb,var(--season-color) 72%,#fefbf8),color-mix(in srgb,var(--season-color) 48%,#fefbf8));color:#4e3c44;overflow:hidden}
.sleeve-cover::before{content:"";position:absolute;top:17px;left:17px;width:44px;height:44px;border:1px solid #69576277;border-radius:50%;box-shadow:0 0 0 8px #ffffff21}
.sleeve-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sleeve-cover span{position:relative;z-index:1;font:900 25px/.9 Arial,sans-serif;letter-spacing:-.06em}
.sleeve-cover b{position:relative;z-index:1;font:italic 55px/.8 Georgia,serif;color:#ffffffb9;text-shadow:1px 1px 1px #6f566355}
.sleeve-cover.has-cover{background-size:cover;background-position:center}
.sleeve-cover.has-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#21151e9c,transparent 52%)}
.sleeve-cover.has-cover span,.sleeve-cover.has-cover b{color:#fff}
.sleeve-caption{position:absolute;left:13px;right:13px;bottom:11px;color:#5c4c54;font:800 7px 'Courier New',monospace;letter-spacing:.12em;transform:translateY(22px)}
.record-copy{position:relative;z-index:1;padding:15px 0 18px}
.record-kicker{margin:0 0 23px;color:#8c5970;font:800 10px Arial,sans-serif;letter-spacing:.15em}
.record-copy h2{margin:0;max-width:350px;font:900 clamp(35px,4.2vw,48px)/.94 Arial,sans-serif;letter-spacing:-.07em;overflow-wrap:anywhere}
.record-artist{margin:14px 0 25px;color:#6b5360;font:italic 18px Georgia,serif}
.record-credits{margin:0 0 25px;border-top:1px solid #a98f9c}
.record-credits div{display:grid;grid-template-columns:83px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #beacb4}
.record-credits dt{color:#80586a;font:800 9px 'Courier New',monospace;letter-spacing:.08em}
.record-credits dd{margin:0;color:#40343a;font:700 12px Arial,sans-serif}
.listen-button{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;padding:13px 15px;border:1px solid #6f5260;background:#684657;color:#fffdf9;font:800 10px Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;transition:transform .2s,background .2s}
.listen-button:not(:disabled):hover{transform:translateY(-2px);background:#815a6e}.listen-button:disabled{opacity:.55;cursor:not-allowed}
.listen-button span{font-size:16px}
.player-drawer{margin:18px 0 0;padding:17px 19px 19px;border:1px solid #9c818f;background:#f4e9ee;box-shadow:3px 4px 0 #d6c3cb}
.player-drawer[hidden]{display:none}
.player-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:12px}
.player-heading strong{display:block;margin-top:5px;font:700 19px Georgia,serif}
.player-heading button{width:31px;height:31px;border:1px solid #856a79;background:#fffaf7;color:#503b46;font-size:23px;cursor:pointer}
#player-frame iframe{display:block;width:100%;height:152px;border:0;border-radius:8px}
#player-frame iframe.youtube-frame{height:auto;aspect-ratio:16/9;min-height:200px}
#player-source{display:inline-block;margin-top:10px;color:#774d60;font:800 10px Arial,sans-serif;letter-spacing:.07em;text-decoration:underline;text-underline-offset:3px}
.high-scores{margin-top:45px}
.scores-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.scores-heading h2{margin:8px 0 0;font:900 clamp(39px,5vw,55px)/.95 Arial,sans-serif;letter-spacing:-.075em}
.scores-heading p{max-width:280px;margin:0;color:#695960;font:13px/1.47 Arial,sans-serif}
.scores-table-head{display:grid;grid-template-columns:125px minmax(0,1fr) 95px;gap:10px;padding:11px 12px;border-top:2px solid #74626b;border-bottom:1px solid #ae99a2;color:#8a6072;font:800 9px 'Courier New',monospace;letter-spacing:.08em}
.scores-table-head span:last-child{text-align:right}
.scores-list{border-bottom:1px solid #ae99a2}
.score-empty{display:grid;grid-template-columns:68px 1fr;align-items:center;gap:20px;min-height:153px;padding:22px 15px;background:color-mix(in srgb,var(--season-color) 10%,#fffdf9)}
.score-empty .empty-number{color:#be9ba9;font:italic 70px/.8 Georgia,serif}
.score-empty strong{display:block;color:#4b3b43;font:700 20px Georgia,serif}
.score-empty p{max-width:430px;margin:8px 0 0;color:#75666d;font:13px/1.45 Arial,sans-serif}
.score-row{border-bottom:1px solid #cbbbc2}
.score-row:last-child{border-bottom:0}
.score-main{display:grid;grid-template-columns:125px minmax(0,1fr) 95px;align-items:center;gap:10px;min-height:88px;padding:11px 12px}
.score-rank{color:#9e7184;font:italic 26px Georgia,serif}
.score-rank small{display:block;margin-top:4px;color:#755f6a;font:800 9px 'Courier New',monospace}
.score-track strong{display:block;font:700 17px Georgia,serif}.score-track small{display:block;margin-top:5px;color:#77656c;font:11px Arial,sans-serif}
.score-points{text-align:right;color:#775164;font:800 14px Arial,sans-serif}
.score-actions{display:flex;gap:10px;padding:0 12px 11px 137px}
.score-actions button,.score-actions summary{border:0;background:none;padding:3px 0;color:#83566a;font:800 10px Arial,sans-serif;letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.score-actions button:disabled{opacity:.5;cursor:not-allowed}
.score-critique{margin:0 12px 13px 137px;padding:12px 14px;border-left:2px solid #b68ca0;background:#f4e9ee;color:#5b4a53;font:italic 13px/1.45 Georgia,serif}
.score-critique p{margin:0}
footer{display:flex;justify-content:space-between;gap:20px;padding:17px 24px;border-top:1px solid #c2aab4;background:#fbfaf5;color:#6d5c64;font:800 8px 'Courier New',monospace;letter-spacing:.12em}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes page-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes change-in{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.record-stage.is-changing .record-layout{animation:change-in .48s ease-out both}
@media(max-width:760px){.record-layout{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:8px}.record-art{transform:scale(.84);transform-origin:left center}.music-intro{padding-inline:30px}.music-archive{padding-inline:25px}.season-chooser{align-items:start;flex-direction:column}.season-tabs{max-width:calc(100vw - 160px)}}
@media(max-width:590px){body{padding:0;background:#fbfaf5}.site-sheet{width:100%;border:0;border-radius:0;box-shadow:none}.topbar{min-height:72px;flex-direction:column;justify-content:center;gap:5px;padding:7px 10px}.brand{font-size:20px}.brand::after{display:none}.topnav{width:100%;gap:9px;justify-content:center}.topnav a{font-size:9px}.music-intro{padding:25px 22px 30px}.intro-grid{grid-template-columns:1fr;gap:22px;margin-top:25px}.music-intro h1{font-size:clamp(50px,13vw,70px)}.intro-sub{font-size:17px}.intro-note{max-width:100%;padding:0 0 0 12px}.music-archive{padding:23px 22px 45px}.season-chooser{gap:15px}.swipe-hint{display:block}.season-tabs{max-width:calc(100vw - 130px)}.record-stage{padding:15px 15px 16px}.record-layout{display:block;min-height:0}.record-art{width:100%;height:300px;transform:none}.vinyl{width:min(72%,250px);top:28px;right:0}.sleeve{width:min(70%,220px);height:auto;aspect-ratio:1;left:0;top:35px}.sleeve-cover span{font-size:20px}.sleeve-cover b{font-size:43px}.record-copy{padding:12px 0 19px}.record-kicker{margin-bottom:14px}.record-copy h2{font-size:36px}.record-artist{margin-bottom:18px}.record-credits{margin-bottom:17px}.high-scores{margin-top:39px}.scores-heading{align-items:start;flex-direction:column;gap:13px}.scores-heading p{max-width:100%}.scores-table-head,.score-main{grid-template-columns:67px minmax(0,1fr) 64px}.score-main{padding-inline:5px}.scores-table-head{padding-inline:5px;font-size:7px}.score-track strong{font-size:14px}.score-rank{font-size:20px}.score-points{font-size:12px}.score-actions{padding-left:72px}.score-critique{margin-left:72px}.score-empty{grid-template-columns:45px 1fr;gap:12px}.score-empty .empty-number{font-size:53px}.score-empty strong{font-size:17px}footer{padding-inline:16px;font-size:7px}}
@media(max-width:360px){.topnav a{font-size:8px}.record-art{height:260px}.sleeve{width:69%}.vinyl{width:71%}}
@media(min-width:361px) and (max-width:590px){.vinyl{width:min(78%,270px);top:17px;right:-6px}}
@media(prefers-reduced-motion:reduce){.site-sheet,.vinyl,.record-stage.is-changing .record-layout{animation:none}.listen-button{transition:none}}
