:root{--purple:#6825c1;--purple-dark:#541c9e;--ink:#000;--muted:#4d4d4d;--surface:#fff;--surface-alt:#f8f5fc;--border:#6825c1;--focus:#6825c1;--radius:14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--surface);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.appShell{min-height:100vh;padding:28px 4vw 36px}.siteHeader{grid-template-columns:1fr auto;align-items:center;gap:22px;display:grid}.siteLogo{object-fit:contain;width:auto;height:100px}.accessibilityButton{border:2px solid var(--purple);color:var(--ink);background:#fff;border-radius:11px;min-height:44px;padding:8px 16px;font-size:1rem;font-weight:600;transition:background-color .18s,color .18s,border-color .18s}.accessibilityButton:hover,.accessibilityButton:focus-visible,.accessibilityButton[aria-pressed=true]{background:var(--purple);color:#fff}.headerRule{background:var(--purple);border-radius:999px;grid-column:1/-1;height:10px;margin:8px 0 28px}.pageLayout{grid-template-columns:minmax(250px,310px) 1fr;gap:24px;display:grid}.searchPanel{border-right:2px solid var(--purple);min-width:0;padding:6px 20px 0 0}.introText{color:var(--ink);margin-top:0;font-size:1.05rem;line-height:1.4}.searchForm{gap:10px;margin:20px 0;display:grid}.searchForm input{border:2px solid var(--purple);width:100%;min-height:44px;color:var(--ink);background:#fff;border-radius:11px;padding:11px 12px}.primaryButton,.secondaryButton,.playButton{border:2px solid var(--purple);color:var(--ink);text-transform:uppercase;letter-spacing:.03em;background:#fff;border-radius:11px;min-height:44px;padding:8px 16px;font-weight:600;transition:background-color .18s,color .18s,transform .18s}.primaryButton:hover,.secondaryButton:hover,.playButton:hover{background:var(--purple);color:#fff}.primaryButton:disabled,.secondaryButton:disabled,.playButton:disabled{opacity:.5;cursor:not-allowed}.primaryButton:disabled:hover,.secondaryButton:disabled:hover,.playButton:disabled:hover{color:var(--ink);background:#fff}.searchResults{margin-top:18px}.searchResults h2{color:var(--ink)}.searchResults ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.searchResult{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.searchResult>div{gap:3px;display:grid}.searchResult strong,.searchResult span,.searchResult small{color:var(--ink)}.sessionList{margin:16px 0 18px}.sessionList h2{color:var(--ink);margin-bottom:8px;font-size:1rem}.sessionList ol{margin:0;padding-left:22px}.sessionList li{color:var(--ink)}.sessionList li button{color:var(--ink);background:0 0;border:0;font-size:1.2rem}.sessionHeading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.sessionCount{color:var(--muted);white-space:nowrap;font-size:.85rem}.muted,.smallNote,.refineNote{color:var(--muted)}.panelActions{gap:9px;margin-top:20px;display:grid}.smallNote{text-align:center;margin-top:6px;font-size:.85rem;line-height:1.4}.refinementPanel{border-top:2px solid var(--purple);margin-top:1.5rem;padding-top:1.25rem}.refinementHeading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.refinementHeading h2{color:var(--ink);margin:0 0 .25rem}.refinementGroup{border:0;margin:0 0 1rem;padding:0}.refinementGroup label,.refinementGroup legend{color:var(--ink);margin-bottom:.5rem;font-weight:700;display:block}.refinementGroup select{border:2px solid var(--purple);width:100%;color:var(--ink);background:#fff;border-radius:.5rem;padding:.7rem .8rem}.refinementOptions{grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.refinementOption{border:2px solid var(--purple);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:.5rem;padding:.65rem .4rem;transition:background-color .18s,color .18s}.refinementOption:hover,.refinementOptionActive{background:var(--purple);color:#fff}.refinementOptionActive{font-weight:700}.textButton{color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:0;text-decoration:underline}.recommendationsArea{min-width:0;padding-left:8px}.recommendationHeader{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.recommendationHeader h1{color:var(--ink);margin:0;font-size:1.05rem;font-weight:600}.sessionChips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:2px solid var(--purple);color:var(--ink);background:#fff;border-radius:999px;padding:3px 11px}.recommendationGrid{grid-template-columns:repeat(5,minmax(145px,1fr));gap:20px 18px;display:grid}.recommendationCard{text-align:left;min-width:0;color:var(--ink);align-content:start;gap:8px;display:grid}.artwork{aspect-ratio:1;color:#fff;background:#929292;border-radius:12px;place-items:center;width:100%;display:grid;overflow:hidden}.artwork img{object-fit:cover;width:100%;height:100%;display:block}.recommendationMeta{min-width:0;color:var(--ink)}.recommendationMeta h3{color:var(--ink);margin:0 0 4px;font-size:.9rem}.trackName,.albumName{color:var(--ink);margin:2px 0;font-size:.82rem}.reason{color:var(--ink);margin:4px 0;font-size:.78rem;line-height:1.35;display:block}.rating{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:2px;display:flex}.rateLabel{color:var(--ink);margin-right:2px;font-size:.78rem}.stars{gap:0;display:inline-flex}.star{color:var(--purple);background:0 0;border:0;padding:0 1px;font-size:1rem}.star:not(.selected){color:#0000;-webkit-text-stroke:1.3px var(--purple)}.star:hover,.star:focus-visible{transform:scale(1.1)}.ratingValue{color:var(--ink);margin-left:3px;font-size:.78rem}.trackHeader{grid-template-rows:50px 28px 44px;grid-template-columns:1fr;gap:6px;margin-bottom:6px;display:grid}.trackIdentity{min-width:0;display:contents}.trackIdentity h3{color:var(--ink);overflow-wrap:anywhere;align-self:start;margin:0;font-size:.95rem;line-height:1.25}.artistName{color:var(--ink);overflow-wrap:anywhere;align-self:start;margin:0;font-size:.84rem;line-height:1.25}.playbackControls{justify-content:center;align-items:center;gap:7px;height:44px;display:flex}.playbackCircle{border:2px solid var(--purple);background:var(--purple);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;transition:background-color .18s,transform .18s;display:inline-flex}.playbackCircle:hover,.playbackCircle:focus-visible{background:var(--purple-dark);transform:translateY(-1px)}.playIcon{border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:11px solid #fff;width:0;height:0;margin-left:3px}.pauseIcon{justify-content:center;align-items:center;gap:4px;display:flex}.pauseIcon:before,.pauseIcon:after{content:"";background:#fff;border-radius:1px;width:4px;height:15px;display:block}.pager{justify-content:flex-end;align-items:center;gap:10px;margin-top:28px;display:flex}.pager button{border:2px solid var(--purple);color:var(--ink);background:#fff;border-radius:9px;min-height:40px;padding:7px 12px;font-weight:600;transition:background-color .18s,color .18s}.pager button:hover:not(:disabled),.pager button:focus-visible:not(:disabled){background:var(--purple);color:#fff}.pager button:disabled{opacity:.45;cursor:not-allowed}.pagerStatus{color:var(--ink);font-size:.9rem}.feedbackShortcut{justify-content:flex-end;margin:0 0 18px;display:flex}.feedbackShortcut .secondaryButton{text-transform:none;letter-spacing:0;justify-content:center;align-items:center;width:auto;min-height:44px;padding:9px 18px;font-weight:700;text-decoration:none;display:inline-flex}.feedbackShortcut .secondaryButton:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@keyframes feedbackPulse{0%,70%,to{box-shadow:0 0 #6825c100}82%{box-shadow:0 0 0 7px #6825c12e}}.feedbackShortcut .secondaryButton{animation:2.8s ease-in-out infinite feedbackPulse}@media (prefers-reduced-motion:reduce){.feedbackShortcut .secondaryButton{animation:none}}.feedbackPanel{border:2px solid var(--purple);width:min(100%,900px);color:var(--ink);background:#fff;border-radius:12px;margin-top:40px;padding:32px}.feedbackPanel form{flex-direction:column;gap:24px;width:100%;display:flex}.feedbackGrid{flex-direction:column;gap:16px;display:flex}.feedbackRow{grid-template-columns:minmax(280px,1fr) 180px 70px;align-items:center;column-gap:24px;display:grid}.feedbackSummaryRow{border-bottom:1px solid var(--purple);padding-bottom:16px}.feedbackLabel{color:var(--ink);font-weight:600}.feedbackStars{align-items:center;gap:3px;display:flex}.feedbackStars button{color:var(--purple);cursor:pointer;background:0 0;border:0;padding:0;font-size:24px;line-height:1}.feedbackValue{white-space:nowrap;color:var(--ink)}.feedbackComments{gap:8px;width:100%;flex-direction:column!important;align-items:stretch!important;display:flex!important}.feedbackComments>span{color:var(--ink);font-weight:600;display:block}.feedbackComments textarea{box-sizing:border-box;border:2px solid var(--purple);width:100%;min-height:110px;color:var(--ink);font:inherit;resize:vertical;background:#fff;border-radius:8px;padding:12px;display:block}.feedbackPanel .primaryButton{align-self:flex-start;width:auto;min-width:190px}.accessibilityMode{font-size:1.08rem}.accessibilityMode .pageLayout{grid-template-columns:minmax(270px,300px) 1fr}.accessibilityMode .recommendationHeader h1{font-size:1.15rem}.recommendationList{gap:18px;display:grid}.recommendationCardAccessible{text-align:left;grid-template-columns:200px minmax(0,1fr) 210px;align-items:center;column-gap:34px}.recommendationCardAccessible .artwork{width:200px}.recommendationCardAccessible .recommendationMeta h3{margin-bottom:12px;font-size:1.35rem}.recommendationCardAccessible .recommendationMeta{line-height:1.5}.recommendationCardAccessible .artistName,.recommendationCardAccessible .albumName{margin:8px 0;font-size:1.1rem;line-height:1.45}.recommendationCardAccessible .reason{color:var(--ink);max-width:70ch;margin:8px 0;font-size:1.05rem;line-height:1.5;display:block}.recommendationCardAccessible .score{margin:8px 0;font-size:1.1rem;line-height:1.45}.recommendationCardAccessible .playButton{min-height:54px;font-size:1.15rem}.ratingAccessible{justify-content:flex-start;margin-top:10px}.ratingAccessible .rateLabel{margin-right:14px;font-size:1.2rem;font-weight:600}.ratingAccessible .star{padding:0 2px;font-size:2.2rem}.ratingAccessible .ratingValue{margin-left:14px;font-size:1.15rem}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1200px){.recommendationGrid{grid-template-columns:repeat(3,minmax(155px,1fr))}.recommendationCardAccessible{grid-template-columns:170px minmax(0,1fr) 170px;gap:22px}.recommendationCardAccessible .artwork{width:170px}}@media (max-width:850px){.appShell{padding:20px}.siteHeader{grid-template-columns:1fr;gap:14px}.accessibilityButton{justify-self:start}.pageLayout,.accessibilityMode .pageLayout{grid-template-columns:1fr}.searchPanel{border-right:0;border-bottom:2px solid var(--purple);padding:0 0 24px}.recommendationsArea{padding-left:0}.recommendationGrid{grid-template-columns:repeat(2,minmax(140px,1fr))}.recommendationCardAccessible{grid-template-columns:145px 1fr}.recommendationCardAccessible .artwork{width:145px}.recommendationCardAccessible .playButton{grid-column:2;width:min(220px,100%)}.feedbackRow{grid-template-columns:1fr;gap:8px}.feedbackShortcut{justify-content:flex-start;margin-bottom:16px}}@media (max-width:700px){.refinementOptions{grid-template-columns:repeat(2,1fr)}}@media (max-width:540px){.siteLogo{height:82px}.recommendationGrid{grid-template-columns:1fr}.recommendationCard{text-align:left;grid-template-columns:100px 1fr;align-items:center}.recommendationCard .artwork{width:100px}.recommendationCard .playButton{grid-column:1/-1}.rating{justify-content:flex-start}.recommendationCardAccessible{grid-template-columns:1fr}.recommendationCardAccessible .artwork{width:100%;max-width:260px}.recommendationCardAccessible .playButton{grid-column:1;width:100%}.recommendationHeader{flex-direction:column;align-items:flex-start}.pager{flex-wrap:wrap;justify-content:center}}.loadingIndicator{align-items:center;gap:10px;display:inline-flex}.loadingSpinner{border:3px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite spinnerRotate}@keyframes spinnerRotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loadingSpinner{border-right-color:currentColor;animation:none}}.spotifyPromptBackdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.spotifyPrompt{border:2px solid var(--purple);border-radius:var(--radius);background:var(--surface);width:min(440px,100%);color:var(--ink);text-align:left;padding:28px;box-shadow:0 18px 50px #00000040}.spotifyPrompt h2{color:var(--ink);margin:0 0 12px;font-size:1.35rem}.spotifyPrompt p{color:var(--ink);margin:0;line-height:1.5}.spotifyPromptActions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.spotifyPromptActions .primaryButton,.spotifyPromptActions .secondaryButton{width:auto}
