@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#24213f;background:#f5f3fa;font-synthesis:none;--ink:#24213f;--accent:#b7a1f2;--muted:#736c85}
*{box-sizing:border-box}body{margin:0}.music-wave{height:6px;background:linear-gradient(90deg,#6550a8,#aa83d3,#628fbd)}.shell{max-width:1080px;margin:auto;padding:30px 36px 20px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--theme-border, #ded8ec);padding-bottom:25px}.brand{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;letter-spacing:1px;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:11px}.music-mark{font-size:29px}.edition,.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px}.edition{color:var(--muted)}main{max-width:520px;margin:auto}.intro{text-align:center;padding:47px 0 26px}.intro .eyebrow{color:#78609e}h1,h2{font-family:'Space Grotesk',sans-serif}h1{font-size:44px;line-height:1.08;letter-spacing:-2px;margin:14px 0 15px;font-weight:600}.intro p{font-size:14px;line-height:1.6;color:var(--muted);max-width:330px;margin:auto}.deck{background:var(--theme-surface, #fffefd);border:1px solid var(--theme-border, #e1dbea);border-radius:22px;padding:24px 30px;text-align:center;box-shadow:0 10px 35px #30234b08}.deck-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.deck-heading .eyebrow{font-size:9px;letter-spacing:1.4px}.badge{font-size:8px;letter-spacing:1px;background:var(--theme-soft, #eee9f8);border-radius:20px;padding:7px 9px;color:#6d568e}.record{width:144px;height:144px;border-radius:50%;margin:26px auto 22px;background:repeating-radial-gradient(circle at center,#302942 0 1px,#1b1727 2px 4px);display:grid;place-items:center;box-shadow:0 7px 16px #241d3f21;position:relative}.record:after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0deg,#ffffff17 40deg,transparent 80deg,transparent 180deg,#ffffff12 220deg,transparent 260deg);pointer-events:none}.record-label{background:var(--accent);border-radius:50%;width:66px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center}.record-label span{font-size:15px}.record-label small{font-size:7px;font-weight:700;letter-spacing:1px;line-height:1.3}.record.playing{animation:spin 6s linear infinite}.deck h2{font-size:22px;letter-spacing:-.7px;margin:0 0 9px;font-weight:500}#status{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 21px}.button{min-height:50px;width:100%;border:0;border-radius:10px;padding:12px 18px;font:600 14px 'DM Sans',sans-serif;cursor:pointer;display:block;transition:background .15s}.primary{background:var(--ink);color:#fff}.primary:hover{background:#40305f}.secondary{background:var(--theme-soft, #eee9f8);color:var(--ink);margin-top:10px}.secondary:hover{background:var(--theme-hover, #e2d9f2)}.secondary span:first-child{margin-right:7px;font-size:18px}.button:disabled{opacity:.5;cursor:wait}.deck-footnote{font-size:11px;color:#82798e;margin:17px 0 0}.source-row{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;margin-top:14px}.source-row label{font-size:12px;color:var(--muted)}select,input{font:inherit;max-width:100%;border:1px solid var(--theme-border, #d8cfe3);border-radius:7px;background:var(--theme-surface, #fffefd);color:var(--ink);padding:10px;font-size:13px}select{max-width:65%}.source-note{font-size:11px;text-align:left;line-height:1.6;color:var(--muted);margin:9px 0 15px}#youtube-container{width:100%;min-height:200px;aspect-ratio:16/9;margin-bottom:16px;background:#24213f;border-radius:8px;overflow:hidden}#youtube-container iframe{width:100%;height:100%;min-height:200px;display:block;border:0}.audio-progress{margin:20px 0 17px}input[type=range]{width:100%;accent-color:#7958bd;padding:0;min-height:24px}.time{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.how{display:flex;justify-content:center;gap:25px;margin:30px 0;font-size:10px;color:#8870a3}.how b{font-size:11px;font-weight:500;color:#796f8a;margin-left:4px}footer{font-size:10px;color:#887e97;text-align:center;margin-top:25px;padding-top:20px;border-top:1px solid var(--theme-border, #ded8ec)}.scanner{background:var(--theme-soft, #ede6f7);border-radius:16px;padding:20px;margin-top:16px}.scanner-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.scanner h2{font-size:18px;margin:0}.text-button{border:0;background:none;text-decoration:underline;color:var(--ink);cursor:pointer;min-height:44px}#camera-status{font-size:12px;line-height:1.6}video{width:100%;max-height:300px;border-radius:10px;background:#24213f}details{margin:20px 0;color:var(--muted);font-size:12px}summary{cursor:pointer;text-align:center;padding:8px}form{margin-top:15px}form label{display:block;margin-bottom:8px}.input-row{display:flex;gap:8px}.input-row input{flex:1;min-width:0}.small{width:auto;min-height:44px;background:var(--ink);color:white}#link-error{font-size:12px;color:#a13d30}#link-error:empty{display:none}:focus-visible{outline:3px solid #9574d6;outline-offset:3px}[hidden]{display:none!important}.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}
@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.record.playing{animation:none}.button{transition:none}}@media(max-width:600px){.shell{padding:22px 20px 16px}.edition{display:none}.intro{padding:32px 0 23px}h1{font-size:38px}.deck{padding:22px}.brand{font-size:15px}.how{gap:18px}.record{width:125px;height:125px;margin:23px auto 20px}.deck-heading .eyebrow{font-size:8px}.badge{font-size:7px}footer{line-height:1.6}.deck-footnote{font-size:10px}}@media(max-width:350px){.shell{padding:20px 12px}.deck{padding:18px}.deck-heading{flex-direction:column}.how{gap:10px}}

/* Once a card is open, keep the playback controls close at hand. */
.has-card .intro{padding:20px 0 18px}
.has-card .intro .eyebrow,.has-card .intro p{display:none}
.has-card h1{font-size:28px;letter-spacing:-1px;margin:0}
.has-card .record{width:96px;height:96px;margin:18px auto}
.has-card .record-label{width:52px;height:52px}
.has-card .record-label small{font-size:6px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.install-section{border-top:1px solid var(--theme-border, #ded8ec);padding-top:12px;margin-top:12px}
.install-help{font-size:12px;line-height:1.7;color:var(--muted);margin:12px 0}
.install-help:empty{display:none}
.connection-note{font-size:12px;line-height:1.7;color:#6b4d32;background:#f2e9dc;border-radius:8px;padding:12px;margin:18px 0 0}
.update-app{display:block;margin:12px auto 0;font-size:12px}
.scanner{margin-top:0}
#soundcloud-container{margin-bottom:16px}
#soundcloud-container iframe{display:block;width:100%;height:166px;border:0;border-radius:8px}
.deck-links{text-align:center;font-size:13px}.deck-links a{color:var(--ink)}
.human-check{padding:16px;border:1px solid var(--theme-border, #ded8ec);background:var(--theme-surface, #fffefd);border-radius:12px;margin:16px 0;overflow:auto}.human-check p{font-size:13px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.support-game{text-align:center;margin:24px 0 8px}.support-game p{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 10px}.coffee-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border:1px solid #d9c8ed;border-radius:24px;background:var(--theme-soft, #eee9f8);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}.coffee-link:hover{background:var(--theme-hover, #e2d9f2)}.coffee-link span[aria-hidden]{font-size:19px}
