:root{--fg:#e8ecf4;--dim:#8a93a6;--line:#ffffff17;--panel:#080a129e;--ember:#ff9a4a;--hot:#cfe3ff;--accent:#7ff0d8;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{height:100%;color:var(--fg);background:#000;margin:0;font:13px/1.45 Inter,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}canvas#scene{width:100%;height:100%;display:block;position:fixed;inset:0}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);z-index:5;border-radius:10px;padding:14px 16px;transition:opacity .8s;position:fixed}h3{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:14px 0 6px;font-size:10px;font-weight:600}h3:first-child{margin-top:0}label{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-size:10px;display:block}.row{align-items:center;gap:10px;display:flex}.small{color:var(--dim);justify-content:space-between;margin-top:10px;font-size:11px}.fine{color:var(--dim);margin:10px 0 0;font-size:10.5px}.ui-fade{opacity:0;pointer-events:none}#title{z-index:5;transition:opacity .8s;position:fixed;top:18px;left:22px}#title h1{letter-spacing:.32em;margin:0;font-size:20px;font-weight:300}#title h1 span{color:var(--ember);font-weight:500}#title p{color:var(--dim);margin:2px 0 8px}.badge{letter-spacing:.12em;color:var(--ember);border:1px solid #ff9a4a66;border-radius:4px;padding:2px 7px;font-size:9.5px}.ghost{border:1px solid var(--line);color:var(--dim);background:0 0;border-radius:5px;padding:2px 8px;font-size:11px}.ghost:hover{color:var(--fg);border-color:#fff3}#left{width:250px;top:120px;left:22px}#highlights{margin:0;padding:0;list-style:none}#highlights li{cursor:pointer;border-radius:6px;margin:0 -6px;padding:5px 6px}#highlights li:hover{background:#ffffff0d}#highlights b{font-family:var(--mono);color:var(--hot);font-size:12px;font-weight:500}#highlights span{color:var(--dim);margin-left:6px;font-size:11.5px}.chips{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.chips button{border:1px solid var(--line);color:var(--dim);background:#ffffff08;border-radius:99px;padding:3px 10px;font-size:11.5px}.chips button.on{color:#000;background:var(--accent);border-color:var(--accent)}.legend div{color:var(--dim);align-items:center;gap:8px;margin:3px 0;font-size:11.5px;display:flex}.dot{border-radius:50%;flex:none;width:9px;height:9px}.dot.hot{background:var(--hot);box-shadow:0 0 8px 2px #9cc4ff}.dot.ember{background:var(--ember);opacity:.7;box-shadow:0 0 5px var(--ember)}.line{border-top:1px dashed;flex:none;width:14px;height:0}.line.gal{border-color:#b48cff}.line.ecl{border-color:#ffd36b}.caption{color:var(--dim);margin:8px 0 0;font-size:11px;font-style:italic}#live{width:320px;top:18px;right:22px}.live-head{letter-spacing:.18em;color:var(--accent);align-items:center;gap:8px;font-size:10.5px;display:flex}.pulse{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.6s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #7ff0d8aa}to{box-shadow:0 0 0 9px #7ff0d800}}.stats{grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0;display:grid}.stats b{font-family:var(--mono);font-size:13px;font-weight:500}.countdown{border-top:1px solid var(--line);padding-top:10px}.big{letter-spacing:.02em;margin:2px 0 6px;font-size:26px;font-weight:300}#cdList{margin:0;padding:0;list-style:none}#cdList li{color:var(--dim);justify-content:space-between;padding:2px 0;font-size:11.5px;display:flex}#cdList li .mono{color:var(--fg)}#cdList li a{color:var(--dim)}#bands{border-top:1px solid var(--line);margin-top:10px;padding:8px 0 18px;position:relative}.band-row{height:16px;margin:3px 0;position:relative}.band-row .lbl{color:var(--dim);white-space:nowrap;width:64px;font-size:9.5px;position:absolute;top:1px;left:0;overflow:hidden}.band-track{position:absolute;inset:0 0 0 66px}.band{background:#ff9a4a33;border:1px solid #ff9a4a88;border-radius:3px;height:10px;position:absolute;top:3px}.band.fuzzy{background:repeating-linear-gradient(90deg,#ff9a4a22 0 4px,#0000 4px 8px);border-style:dashed}.band .ctr{background:var(--ember);width:2px;position:absolute;top:-3px;bottom:-3px}.axis{height:14px;position:absolute;bottom:0;left:66px;right:0}.axis span{white-space:nowrap;color:var(--dim);font-size:9px;font-family:var(--mono);position:absolute;transform:translate(-50%)}.nowline{background:var(--accent);width:1px;position:absolute;top:4px;bottom:14px}.nowline:after{content:"now";color:var(--accent);font-size:9px;position:absolute;top:-2px;left:3px}#memorial{text-align:center;width:320px;padding:22px;top:18px;right:22px}.mem-name{letter-spacing:.06em;font-size:15px}.mem-dates{color:var(--ember);margin:8px 0;font-size:20px}#memorial p{color:var(--dim)}#detail{width:320px;max-height:calc(100vh - 140px);bottom:108px;right:22px;overflow-y:auto}#detail .close{color:var(--dim);background:0 0;border:0;font-size:16px;position:absolute;top:8px;right:10px}#detail h2{font:500 20px var(--mono);color:var(--hot);margin:0}#detail .sub{color:var(--dim);margin-bottom:8px;font-size:11.5px}#detail .hl{color:var(--ember);margin:4px 0 8px;font-size:12px}#detail dl{grid-template-columns:90px 1fr;gap:3px 10px;margin:0;font-size:12px;display:grid}#detail dt{color:var(--dim)}#detail dd{font-family:var(--mono);margin:0}.inst{border:1px solid var(--line);color:#555;border-radius:3px;margin-right:3px;padding:0 5px;font-size:10.5px;display:inline-block}.inst.y{color:var(--accent);border-color:#7ff0d855}#timeline{z-index:5;background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;align-items:center;gap:12px;padding:10px 14px;transition:opacity .8s;display:flex;position:fixed;bottom:42px;left:22px;right:22px}.playbtn{background:var(--accent);color:#000;white-space:nowrap;border:0;border-radius:6px;padding:6px 12px;font-weight:600}.playbtn.attn{animation:2s infinite attn}@keyframes attn{0%,to{box-shadow:0 0 #7ff0d866}50%{box-shadow:0 0 0 6px #7ff0d800}}#speed{color:var(--fg);border:1px solid var(--line);background:#ffffff0d;border-radius:6px;padding:4px}.scrub{flex:1;position:relative}#scrubber{width:100%;accent-color:var(--ember)}.ticks{height:12px;position:relative}.ticks span{color:var(--dim);font-size:9px;font-family:var(--mono);position:absolute;transform:translate(-50%)}.readout{text-align:right;min-width:110px}#year{font-size:22px;font-weight:300;line-height:1}#count{color:var(--dim);font-size:11px}#credits{text-align:center;color:#5c6375;z-index:5;font-size:10px;position:fixed;bottom:8px;left:0;right:0}#tooltip{z-index:10;pointer-events:none;font:11px var(--mono);border:1px solid var(--line);background:#000c;border-radius:4px;padding:3px 7px;position:fixed;transform:translate(12px,-50%)}#swiftLabel{z-index:4;pointer-events:none;font:600 9.5px var(--mono);letter-spacing:.14em;color:#fff;text-shadow:0 0 6px #000;white-space:nowrap;position:fixed;transform:translate(10px,-150%)}#swiftLabel small{color:var(--dim);letter-spacing:.04em;font-weight:400;display:block}@media (width<=820px){#left{display:none}#live{width:auto;padding:10px 12px;inset:auto 12px 110px}#live .fine,#bands,#live .small{display:none}#detail{z-index:8;border-radius:14px 14px 0 0;width:auto;bottom:0;left:0;right:0}#title{top:12px;left:14px}#timeline{gap:8px;bottom:24px;left:8px;right:8px}.playbtn{padding:6px 9px;font-size:0}.playbtn:before{content:"▶";font-size:13px}.ticks{display:none}.readout{min-width:0}#year{font-size:18px}#credits{padding:0 10px;font-size:8.5px;bottom:4px}.playbtn.playing:before{content:"❚❚"}}#about,#help{z-index:30;background:radial-gradient(#0a0c168c,#000000d9);justify-content:center;align-items:center;padding:20px;transition:opacity .7s;display:flex;position:fixed;inset:0;overflow-y:auto}#about.closing,#help.closing{opacity:0;pointer-events:none}.about-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);background:#080a12d1;border-radius:14px;width:100%;max-width:620px;margin:auto;padding:28px 30px 22px}.about-kicker{letter-spacing:.3em;color:var(--ember);font-size:10.5px}.about-card h2{margin:4px 0 18px;font-size:26px;font-weight:300}.about-card section{gap:14px;margin:0 0 14px;display:flex}.about-card h4{margin:0 0 3px;font-size:14.5px;font-weight:600}.about-card p{color:#b9c0cf;margin:0;font-size:13.5px;line-height:1.55}.about-card p b{color:var(--fg);font-weight:600}.ico{border-radius:50%;flex:none;width:34px;height:34px;margin-top:2px;position:relative}.ico-swift{background:radial-gradient(circle,#fff 0 18%,#7ff0d866 30%,#0000 62%)}.ico-burst{background:radial-gradient(circle,#fff 0 14%,#cfe3ffcc 24%,#9cc4ff44 44%,#0000 66%);animation:2.4s infinite blink}.ico-glow{background:radial-gradient(circle,#ffd2a8 0 12%,#ff9a4a99 26%,#ff9a4a22 48%,#0000 66%)}.ico-earth{background:radial-gradient(circle at 35% 35%,#6fa8dc,#1c3a5e 60%,#0a1626 72%,#0000 74%)}@keyframes blink{0%,to{opacity:.35;transform:scale(.8)}10%{opacity:1;transform:scale(1.1)}40%{opacity:.5;transform:scale(.9)}}.about-how{border-top:1px solid var(--line);color:var(--dim);text-align:center;margin:18px 0 16px;padding-top:14px;font-size:12px}.about-play{background:var(--accent);color:#000;letter-spacing:.04em;border:0;border-radius:99px;margin:0 auto;padding:11px 34px;font-size:15px;font-weight:700;animation:2s infinite attn;display:block}.about-play:hover{filter:brightness(1.1)}.about-fine{text-align:center;color:#5c6375;margin-top:8px;font-size:10.5px}@media (width<=820px){#about{align-items:flex-start}.about-card{padding:20px 18px 16px}.about-card h2{margin-bottom:12px;font-size:21px}.about-card p{font-size:12.5px}.ico{width:26px;height:26px}}.start-card{text-align:center;max-width:460px;padding:40px 34px 26px}.start-title{letter-spacing:.34em;margin:0 0 14px!important;font-size:26px!important;font-weight:300!important}.start-title span{color:var(--ember);font-weight:500}.start-line{color:#c9cfdc!important;margin:0 0 26px!important;font-size:15px!important;line-height:1.6!important}.linkbtn{color:var(--dim);background:0 0;border:0;margin-top:18px;font-size:12px}.linkbtn:hover{color:var(--fg)}body:not(.v-explore) :is(#title,#left,#live,#memorial,#timeline,#credits,#detail,#tooltip,#swiftLabel),body:not(.v-tribute) :is(#cineUi,#caption,#callout,#endCard){opacity:0!important;pointer-events:none!important}body:not(.v-tribute) :is(#cineUi,#endCard) *,body:not(.v-explore) :is(#title,#left,#live,#memorial,#timeline,#credits,#detail) *{pointer-events:none!important}#caption{z-index:12;text-align:center;pointer-events:none;letter-spacing:.03em;color:#eef1f7;text-shadow:0 0 18px #000,0 0 4px #000;opacity:0;filter:blur(3px);padding:0 24px;font-size:clamp(19px,2.3vw,30px);font-weight:300;line-height:1.45;transition:opacity .5s,transform .6s,filter .5s,letter-spacing 7s;position:fixed;bottom:17vh;left:0;right:0;transform:translateY(6px)}#caption.on{opacity:1;filter:none;letter-spacing:.05em;transform:none}#caption b{color:var(--ember);font-weight:500}#callout{z-index:11;pointer-events:none;opacity:0;transition:opacity .5s;position:fixed}#callout.on{opacity:1}#callout i{border:1px solid #ffd2a8cc;border-radius:50%;width:46px;height:46px;animation:2.4s ease-out infinite ring;position:absolute;top:-23px;left:-23px;box-shadow:0 0 12px #ff9a4a66}@keyframes ring{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}#callout span{white-space:nowrap;font:500 11.5px var(--mono);letter-spacing:.12em;color:#ffd2a8;text-shadow:0 0 6px #000,0 0 2px #000;position:absolute;top:-15px;left:30px}#callout b{font-weight:500;display:block}#callout small{letter-spacing:.08em;color:#ffffffa0;margin-top:2px;font-size:10px;display:block}#callout span:before{content:"";background:#ffd2a8aa;width:6px;height:1px;position:absolute;top:9px;left:-9px}#cineUi{z-index:12;pointer-events:none;transition:opacity 1.2s;position:fixed;inset:0}#cineReadout{text-align:center;letter-spacing:.25em;color:#fff6;font-size:11.5px;position:absolute;bottom:22px;left:0;right:0}.cine-corner{pointer-events:auto;gap:6px;display:flex;position:absolute;top:16px;right:18px}.explore-btn{letter-spacing:.06em;color:#eef1f7;-webkit-backdrop-filter:blur(8px);opacity:.4;background:linear-gradient(#ff9a4a24,#ff9a4a0a),#080a128c;border:1px solid #ff9a4a61;border-radius:99px;align-items:center;gap:8px;padding:8px 16px 8px 18px;font-size:12.5px;font-weight:500;transition:opacity .3s,border-color .3s,box-shadow .4s,background .3s;display:inline-flex;box-shadow:0 0 #ff9a4a00,inset 0 1px #ffffff0f}.explore-btn .arr{color:var(--ember);transition:transform .3s;display:inline-block}.explore-btn:hover{opacity:.4;background:linear-gradient(#ff9a4a38,#ff9a4a14),#080a1299;border-color:#ff9a4abf;box-shadow:0 0 18px #ff9a4a40,inset 0 1px #ffffff14}.explore-btn:hover .arr{transform:translate(3px)}.explore-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#endCard{z-index:12;text-align:center;opacity:0;pointer-events:none;transition:opacity 3s;position:fixed;top:13vh;left:0;right:0}body.v-tribute #endCard.on{opacity:1!important}.end-title{letter-spacing:.4em;text-shadow:0 0 30px #000;padding-left:.4em;font-size:clamp(28px,4.5vw,54px);font-weight:200}.end-title span{color:var(--ember);font-weight:400}.end-sub{color:#c9cfdc;letter-spacing:.12em;text-shadow:0 0 10px #000;margin-top:12px;font-size:13px}.end-btns{opacity:0;justify-content:center;gap:10px;margin-top:30px;transition:opacity 2s 3s;display:flex}#endCard.done .end-btns{opacity:1;pointer-events:auto}.end-btns .ghost{color:var(--fg);background:#0008;padding:6px 14px;font-size:13px}@media (width<=820px){#caption{bottom:14vh}.start-card{margin-top:18vh}}#nowPlaying{pointer-events:auto;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);background:#080a128c;border-radius:10px;align-items:center;gap:4px;padding:8px;transition:opacity 1.2s,transform 1.2s,background .3s,padding .6s,border-color .6s;display:flex;position:absolute;top:16px;left:18px}#nowPlaying:hover{background:#141826cc}#nowPlaying.np-hidden{opacity:0;pointer-events:none;transform:translateY(-6px)}.np-link{color:var(--fg);align-items:center;gap:12px;padding-right:6px;text-decoration:none;transition:gap .6s;display:flex}.np-link:hover{text-decoration:none}.np-link img{object-fit:cover;border-radius:6px;width:128px;height:72px;transition:width .6s,height .6s,opacity .6s;display:block}.np-text{flex-direction:column;line-height:1.3;display:flex}.np-kicker{letter-spacing:.2em;text-transform:uppercase;color:var(--ember);font-size:9.5px}.np-title{font-size:15px;font-weight:500}.np-artist{color:var(--dim);font-size:11.5px}.np-artist em{color:#d9c3ae;font-style:normal}.np-arrow{opacity:.6}.np-mute{border:1px solid var(--line);color:#d9c3ae;background:#ffffff0a;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;padding:0;transition:background .3s,border-color .3s,color .3s;display:grid}.np-mute:hover{color:#fff;background:#ff9a4a24;border-color:#ff9a4a80}.np-mute:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.np-mute svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.np-mute .spk{fill:currentColor;stroke:none}.np-mute .x,.np-mute.off .wave{display:none}.np-mute.off .x{display:inline}.np-mute.off{color:var(--dim)}#nowPlaying.mini:not(:hover){-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;padding:3px 4px 3px 10px}#nowPlaying.mini:not(:hover) .np-link{opacity:.55;gap:0}#nowPlaying.mini:not(:hover) img{opacity:0;width:0;height:0}#nowPlaying.mini:not(:hover) .np-kicker{display:none}#nowPlaying.mini:not(:hover) .np-title{font-size:11.5px;display:inline}#nowPlaying.mini:not(:hover) .np-mute{opacity:.7;background:0 0;border-color:#0000;width:26px;height:26px}#nowPlaying.mini:not(:hover) .np-mute svg{width:15px;height:15px}.end-music{color:#d9c3ae;letter-spacing:.04em;text-shadow:0 0 8px #000;margin-top:14px;font-size:12px;display:inline-block}#endCard.on .end-music{pointer-events:auto}#credits a{color:#7d8597}@media (width<=820px){#nowPlaying{padding:6px;top:56px;left:12px}.np-link{gap:9px}.np-link img{width:80px;height:45px}}.band-track .ctr.solo{background:var(--ember);width:2px;box-shadow:0 0 6px var(--ember);position:absolute;top:2px;bottom:2px}#detail .hl-note{color:var(--dim);font-size:11px}#detail .hl a{margin-left:4px;font-size:11px}.inst.o{color:var(--dim);border-style:dashed;border-color:#fff2}
