:root{color-scheme:dark;--bg:#101210;--surface:#181b18;--surface-hover:#222722;--ink:#f1f3ed;--muted:#a5ada2;--line:#30362e;--accent:#c8ee95;--accent-ink:#16220e;--radius:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.5}
button,input,select,textarea{font:inherit}
button,a,select,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.45}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
a{color:var(--accent);text-underline-offset:4px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h2{font-size:19px;font-weight:600}
h3{font-size:16px;font-weight:600}
.topbar{max-width:1480px;margin:auto;padding:22px max(28px,env(safe-area-inset-left)) 18px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:24px;font-weight:650;letter-spacing:-1px}
.brand-mark{width:17px;height:17px;border:4px solid var(--accent);border-radius:50%;display:inline-block}
.brand-caption{font-size:12px;letter-spacing:.02em;font-weight:400;color:var(--muted);margin-left:6px}
.top-actions{display:flex;align-items:center;gap:12px}
.status{color:var(--muted);font-size:12px;white-space:nowrap}
.status.ready::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:middle}
.button,.icon-button{min-height:48px;border:1px solid var(--line);border-radius:12px;padding:11px 18px;background:transparent;color:var(--ink);font-weight:500}
.button:hover,.icon-button:hover{background:var(--surface-hover)}
.button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.button.primary:hover{background:#d8f7af}
.button[aria-pressed=true]:not(.primary){border-color:var(--accent);color:var(--accent)}
.icon-button{width:48px;padding:6px;font-size:25px;line-height:1}
.text-button{padding:10px 0;border:0;background:transparent;color:var(--muted);min-height:44px}
.text-button:hover{color:var(--ink)}
main{max-width:1424px;padding:0 28px max(24px,env(safe-area-inset-bottom));margin:auto}
.finder{margin:0 0 24px}
.search-row{display:flex;gap:12px}
.search-box{display:flex;gap:12px;align-items:center;flex:1;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 16px;min-width:0}
.search-box>span{font-size:28px;line-height:1;color:var(--muted)}
input[type=search]{width:100%;min-width:0;min-height:52px;background:transparent;color:var(--ink);border:0;padding:12px 0;outline-offset:0}
input::placeholder,textarea::placeholder{color:#8e988c}
#saved-count{margin-left:6px;color:var(--muted);font-variant-numeric:tabular-nums}
.result-heading{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px;margin-top:12px}
.search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.search-result{display:block;text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-height:80px;overflow-wrap:anywhere}
.search-result:hover{border-color:var(--accent)}
.search-result .result-id{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
.search-result .result-path{display:block;font-size:14px}
.empty-result{padding:24px 0;color:var(--muted)}
#show-more{margin-top:10px}
.route-bar{margin-bottom:26px}
.route-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}
.eyebrow{font-size:12px;font-weight:550;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.route-direction{font-size:14px;color:var(--muted);margin-top:3px}
.track-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.track-strip li{min-width:0;position:relative}
.track-pick{display:flex;align-items:flex-start;text-align:left;gap:14px;width:100%;height:100%;padding:18px;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:116px}
.track-pick:hover{background:var(--surface-hover)}
.track-pick[aria-current=step]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.track-num{color:var(--muted);font-size:13px;padding-top:3px;flex:none;font-variant-numeric:tabular-nums}
.track-pick[aria-current=step] .track-num{color:var(--accent)}
.track-copy{min-width:0}
.track-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:17px;font-weight:600;line-height:1.3}
.track-artist{display:block;font-size:13px;color:var(--muted);margin-top:5px}
.track-genre{display:block;font-size:11px;letter-spacing:.02em;color:var(--muted);margin-top:6px}
.workspace{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.4fr);gap:36px;align-items:start}
.planner{padding:4px 0}
.section-heading{display:flex;gap:12px;justify-content:space-between;align-items:baseline;margin-bottom:20px}
.subtle{font-size:12px;color:var(--muted)}
.field-label{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}
select{min-height:52px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:12px 36px 12px 14px;width:100%;max-width:100%;text-overflow:ellipsis}
.branch-group{margin-top:22px}
.choices{display:grid;gap:8px}
.choice{width:100%;text-align:left;padding:13px 16px;min-height:64px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink)}
.choice:hover{background:var(--surface)}
.choice[aria-pressed=true]{border-color:var(--accent);background:#1b2516}
.choice .choice-title{font-size:15px;font-weight:550;display:block}
.choice .choice-meta{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.choice[aria-pressed=true] .choice-title{color:var(--accent)}
.track-guide{border-left:1px solid var(--line);padding-left:36px;min-width:0}
.focus-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
#focus-title{font-size:clamp(24px,2.8vw,38px);font-weight:550;letter-spacing:-.035em;line-height:1.15;margin:8px 0}
.focus-artist{font-size:16px;color:var(--muted)}
.version{font-size:12px;color:var(--muted);margin-top:8px}
.played-toggle{font-size:12px;padding:10px 12px;flex:none}
.instructions{display:grid;gap:24px}
.instruction-label{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em}
.instruction-label .method{color:var(--accent);text-transform:none;letter-spacing:0}
.instruction-text{font-size:clamp(18px,1.8vw,22px);line-height:1.55;letter-spacing:-.012em;max-width:56ch}
.instruction-why{color:var(--muted);font-size:13px;line-height:1.6;margin-top:10px;max-width:70ch}
.instruction-source{font-size:12px;display:inline-block;margin-top:8px}
.personal-notes{border-top:1px solid var(--line);margin-top:28px;padding-top:14px}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
summary:hover{color:var(--ink)}
#note-indicator{color:var(--accent)}
textarea{width:100%;resize:vertical;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:14px;min-height:90px;margin-bottom:5px}
.transport{display:flex;justify-content:space-between;gap:12px;margin-top:24px}
.transport .primary{min-width:190px}
.page-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);margin-top:36px;padding-top:12px}
.is-live .plan-only{display:none}
.is-live .workspace{display:block;max-width:980px;margin:32px auto 0}
.is-live .track-guide{border:0;padding:0}
.is-live .track-strip{max-width:1100px;margin:auto}
.is-live .route-heading{max-width:1100px;margin-left:auto;margin-right:auto}
.is-live .instruction-text{font-size:clamp(21px,2.4vw,27px);max-width:60ch}
.is-live .instruction-why,.is-live .instruction-source{display:none}
.is-live #focus-title{font-size:clamp(30px,3.4vw,44px)}
.is-live .transport .button{min-height:60px;font-size:18px}
.is-live{padding-bottom:110px}
.is-live .transport{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(980px,calc(100% - 40px));padding:10px;margin:0;background:var(--bg);border:1px solid var(--line);border-radius:18px;z-index:4;box-shadow:0 12px 40px #0006}
.is-live .page-footer{max-width:1100px;margin-left:auto;margin-right:auto}
dialog{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:28px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:22px;overscroll-behavior:contain}
dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}
.dialog-heading h2{font-size:26px;font-weight:550;letter-spacing:-.03em}
.dialog-intro{font-size:15px;color:var(--muted);margin:16px 0 24px}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.setting-row strong{font-size:14px;font-weight:550}
.setting-row p{margin-top:4px}
.setting-row .button{font-size:13px}
.guide-copy{margin-top:24px;display:grid;gap:12px}
.guide-copy h3{margin-top:8px}
.guide-copy p{font-size:14px;color:var(--muted);line-height:1.7}
.guide-copy strong{font-weight:550;color:var(--ink)}
#source-links{display:grid;gap:14px;font-size:13px}
.build-note{font-size:11px;color:var(--muted);margin-top:24px}
.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 20px;border-radius:14px;background:var(--accent);color:var(--accent-ink);font-size:14px;box-shadow:0 10px 40px #0006;z-index:5}
.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}
.no-script{padding:24px}
@media(max-width:1000px){.brand-caption{display:none}.workspace{gap:24px;grid-template-columns:minmax(235px,.8fr) minmax(0,1.2fr)}.track-guide{padding-left:24px}.focus-heading{display:block}.played-toggle{margin-top:14px}.track-pick{padding:16px;gap:10px}.track-title{font-size:16px}.track-genre{display:none}}
@media(max-width:760px){.topbar{padding:16px 20px}.brand{font-size:23px}.top-actions{gap:8px}.top-actions .button{font-size:13px;padding:10px 12px}.status{font-size:11px}.workspace{grid-template-columns:1fr}.planner{order:2;padding-top:24px;border-top:1px solid var(--line)}.track-guide{order:1;border:0;padding:0}.focus-heading{display:flex}.played-toggle{margin-top:0}main{padding:0 20px max(20px,env(safe-area-inset-bottom))}.track-strip{gap:8px}.track-pick{display:block;padding:12px;min-height:116px}.track-num{display:block;margin-bottom:8px}.track-title{font-size:14px}.track-artist{font-size:11px}.route-direction{font-size:12px}.route-heading{margin-bottom:12px}.track-guide h1{font-size:30px}.instructions{gap:22px}.search-results{grid-template-columns:1fr}.section-heading{margin-bottom:16px}.page-footer{margin-top:24px}.instruction-text{font-size:19px}.is-live .instruction-text{font-size:23px}.transport .primary{min-width:0;flex:1}.branch-group .choices{grid-template-columns:repeat(2,minmax(0,1fr))}.branch-group:first-of-type .choices{grid-template-columns:1fr}.instruction-label{flex-wrap:wrap;gap:5px 9px}}
@media(max-width:420px){.topbar{padding:14px 14px}.top-actions{gap:6px}.status{display:none}.brand{font-size:22px}.brand-mark{width:14px;height:14px;border-width:3px}.icon-button{width:44px;min-height:44px}.top-actions .button{min-height:44px}main{padding-left:14px;padding-right:14px}.search-row{gap:8px}#saved-toggle{padding:10px 12px}.search-box{padding:0 12px;gap:7px}.search-box input{font-size:14px}.track-strip{gap:6px}.track-pick{padding:11px 9px;border-radius:12px}.track-title{font-size:13px}.track-artist{font-size:11px}.focus-heading{gap:12px}#focus-title{font-size:27px}.played-toggle{padding:10px 9px;font-size:11px}.branch-group .choices{grid-template-columns:1fr}.route-direction{max-width:260px}.page-footer{align-items:flex-start}.page-footer>span{max-width:60%}.transport .button{padding:12px}.instruction-text{font-size:18px}.is-live .instruction-text{font-size:21px}.instruction-label{font-size:11px}dialog{padding:22px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .12s,border-color .12s,color .12s}.toast{animation:toast-in .15s ease-out}@keyframes toast-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}}
