/* Transport */
.tp{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;gap:18px;
  padding:10px 24px;height:var(--header);
  background:var(--midnight);
  border-bottom:1px solid transparent;
  transition:background .25s,border-color .25s;
}
.tp.solid{background:var(--midnight);border-bottom-color:var(--rule)}
.tp .brand{display:flex;align-items:center;gap:12px;flex:none}
.tp .brand .mark{height:36px;width:auto}
.tp .brand .word{height:24px;width:auto}
.tr{display:flex;gap:6px}
.tr button{
  width:34px;height:32px;
  background:var(--midnight);
  border:1px solid var(--rule);
  border-radius:4px;
  color:var(--bone);
  font-size:12px;
  display:grid;place-items:center;
}
.tr button:hover{background:#12151a;border-color:var(--ash)}
.tr .rc{color:var(--signal)}
.tr .rc[aria-pressed="true"],.tr .rc.on{background:var(--signal);color:var(--bone);border-color:var(--signal)}
.lcd{
  background:var(--midnight);
  border:1px solid var(--rule);
  color:var(--signal);
  padding:6px 14px;
  display:flex;gap:14px;align-items:center;
  border-radius:4px;
  font-variant-numeric:tabular-nums;
}
.lcd #tc{font-size:15px;letter-spacing:.14em;min-width:92px;font-weight:700;color:var(--signal)}
.lcd em{font-style:normal;color:var(--ash);font-size:10px;letter-spacing:.12em}
.tp nav{margin-left:auto;display:flex;gap:4px;align-items:center}
.tp nav a{
  padding:8px 13px;
  color:var(--ash);
  border-radius:4px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tp nav a:hover{color:var(--bone);background:#12151a}
.tp nav a.cur{color:var(--bone);background:#12151a}
.tp nav .rec{
  display:inline-flex;align-items:center;gap:8px;
  margin-left:8px;
  padding:8px 14px;
  background:var(--bone);
  color:var(--midnight);
  border-radius:4px;
}
.tp nav .rec i{
  width:8px;height:8px;border-radius:50%;
  background:var(--signal);
  box-shadow:0 0 8px var(--signal);
  display:inline-block;
}
.tp nav .rec:hover{background:transparent;color:var(--bone);box-shadow:inset 0 0 0 1px var(--bone)}

/* Ruler + playhead */
.ruler{
  position:fixed;top:var(--header);left:0;right:0;z-index:55;
  display:flex;height:var(--ruler);
  background:var(--midnight);
  border-bottom:1px solid var(--rule);
  transform:translateY(-130%);opacity:0;pointer-events:none;
  transition:transform .3s var(--ease),opacity .3s;
}
.ruler.show{transform:none;opacity:1;pointer-events:auto}
.rg{
  width:var(--track);flex:none;
  border-right:1px solid var(--rule);
  padding:0 16px;display:flex;align-items:center;
  font-size:10px;letter-spacing:.2em;color:var(--ash);
}
.rb{position:relative;flex:1;min-width:0}
.bars{position:absolute;inset:0;display:grid;grid-template-columns:repeat(16,1fr)}
.bars span{
  border-left:1px solid rgba(74,81,92,.7);
  padding:3px 0 0 6px;
  font-size:9px;color:var(--rule);font-weight:600;
}
.bars span:first-child{border-left:0}
.flag{
  position:absolute;top:0;bottom:0;
  display:flex;align-items:flex-end;
  padding:0 0 6px 10px;
  color:var(--ash);
  font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;
  white-space:nowrap;z-index:2;
}
.flag i{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--rule)}
.flag i::before{
  content:"";position:absolute;left:0;top:0;
  border:5px solid transparent;
  border-left:7px solid var(--rule);
  border-top:0;border-bottom:7px solid transparent;
}
.flag:hover{color:var(--bone)}
.flag.on{color:var(--bone)}
.flag.on i{background:var(--signal)}
.flag.on i::before{border-left-color:var(--signal);background:none}
.ph{
  position:absolute;bottom:-1px;left:0;
  height:3px;width:2px;
  background:var(--signal);
  box-shadow:0 0 10px var(--signal);
  z-index:3;
}
.pline{
  position:fixed;top:var(--chrome);bottom:0;
  width:1px;
  background:rgba(179,45,45,.55);
  z-index:1;opacity:0;pointer-events:none;
  transition:opacity .3s;
}
.pline.show{opacity:1}

/* Arrangement */
.arr{position:relative;background:var(--midnight);padding-bottom:20px}
.trk{
  display:grid;
  grid-template-columns:var(--track) 1fr;
  border-bottom:1px solid #14171c;
  scroll-margin-top:calc(var(--chrome) + 8px);
  position:relative;z-index:2;
}
.th{
  background:var(--surface);
  border-right:1px solid var(--rule);
  padding:12px 14px;
  transition:padding .35s var(--ease);
}
.th.act{box-shadow:inset 3px 0 0 var(--signal)}
.tn{display:flex;gap:10px;align-items:flex-start;position:sticky;top:calc(var(--chrome) + 12px)}
.tn b{
  color:var(--bone);
  font-size:11px;font-weight:700;
  width:22px;height:22px;
  display:grid;place-items:center;
  border-radius:3px;flex:none;
  background:var(--rule);
}
.tn span{
  font-family:Michroma,sans-serif;
  font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;line-height:1.3;
  padding-top:3px;
}
.ms{display:flex;gap:4px;margin-top:10px;position:sticky;top:calc(var(--chrome) + 48px)}
.ms button{
  width:26px;height:22px;
  background:var(--midnight);
  border:1px solid var(--rule);
  border-radius:3px;
  color:var(--ash);
  font-size:10px;font-weight:700;
  font-family:Manrope,sans-serif;
}
.ms button.on{background:var(--bone);color:var(--midnight);border-color:var(--bone)}
.ms button.r.on{background:var(--signal);color:var(--bone);border-color:var(--signal)}
.mt{
  display:flex;gap:3px;height:0;margin-top:0;
  align-items:flex-end;overflow:hidden;opacity:0;
  position:sticky;top:calc(var(--chrome) + 80px);
  transition:height .35s var(--ease),opacity .35s,margin .35s var(--ease);
}
.trk.is-open .mt{height:70px;opacity:1;margin-top:14px}
.mt i{
  width:5px;height:100%;
  background:linear-gradient(var(--signal) 0 16%,var(--bone) 16% 40%,#3d6b55 40%);
  opacity:.9;border-radius:1px;
  clip-path:inset(30% 0 0 0);
  animation:meter 1.6s ease-in-out infinite alternate;
}
.mt i+i{animation-delay:-.8s;animation-duration:1.2s}
@keyframes meter{from{clip-path:inset(60% 0 0 0)}to{clip-path:inset(18% 0 0 0)}}
.lane{
  padding:12px 20px;
  background:repeating-linear-gradient(90deg,transparent 0 calc(6.25% - 1px),rgba(236,230,218,.03) calc(6.25% - 1px) 6.25%),#101217;
  display:flex;flex-direction:column;gap:12px;min-width:0;
  transition:padding .35s var(--ease);
}
.lane > .tag{max-height:0;margin:0;opacity:0;overflow:hidden;transition:max-height .35s var(--ease),opacity .3s,margin .35s}
.trk.is-open .lane > .tag{max-height:40px;margin-top:4px;opacity:1}
.trk.is-open .lane{padding:22px 28px 26px}

/* Clips */
.clip{
  border:1px solid var(--rule);
  background:var(--surface);
  border-radius:8px;
  overflow:hidden;
  display:flex;flex-direction:column;
  position:relative;z-index:2;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.ch{
  padding:7px 14px;
  font-family:Manrope,sans-serif;
  font-weight:600;
  font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bone);
  display:flex;align-items:center;gap:8px;
  flex:none;
}
.cb{
  max-height:0;padding:0 28px;opacity:0;
  overflow:hidden;
  transition:max-height .45s var(--ease),padding .35s var(--ease),opacity .3s;
}
.trk.is-open .cb{
  max-height:1600px;
  padding:26px 28px;
  opacity:1;
}
.clip.dash{border-style:dashed;border-color:var(--rule);background:transparent;box-shadow:none}
.clip.hotc{border-color:var(--signal)}
.clip.hotc .ch{background:var(--signal);color:var(--bone)}
a.clip:hover{border-color:var(--bone)}
.three{display:grid;grid-template-columns:1.25fr 1fr .8fr;gap:14px}
.three .cb{display:flex;flex-direction:column}
.three h2,.two h2{
  font-family:Michroma,sans-serif;
  font-size:clamp(22px,2.4vw,34px);
  margin-bottom:8px;
  text-transform:uppercase;
  letter-spacing:.04em;line-height:1.15;
}
.three p,.two p{color:var(--ash)}
.more{
  margin-top:auto;padding-top:18px;
  font-size:11px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--bone);
}
.wvt{display:flex;align-items:flex-end;gap:3px;height:48px;margin-bottom:16px;opacity:.55}
.wvt s{flex:1;background:var(--signal);border-radius:2px 2px 0 0}
.nt{position:relative;height:48px;margin-bottom:16px}
.nt s{
  position:absolute;width:5%;height:16%;
  background:var(--ash);border-radius:2px;
}
h2.xl,h2.xl2,.xl,.xl2{
  font-family:Michroma,sans-serif;
  font-weight:400;
  letter-spacing:.03em;line-height:1.15;
}
.xl{font-size:clamp(32px,5vw,64px);margin-bottom:16px}
.xl2{font-size:clamp(24px,3.2vw,42px);margin-bottom:14px}
.lead{font-size:18px;color:var(--ash);max-width:560px}
.wy{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px}
.feat div{border-top:1px solid var(--rule);padding-top:14px}
.feat span{color:var(--ash);font-size:12px;font-weight:600;letter-spacing:.12em}
.feat h3{
  font-family:Michroma,sans-serif;
  font-size:14px;letter-spacing:.06em;
  margin:8px 0;text-transform:uppercase;
}
.feat p{color:var(--ash);font-size:14.5px}
.tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-bottom:16px;font-weight:600}
.price{font-family:Michroma,sans-serif;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--bone);margin-top:16px}

/* Mixer */
.mx{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}
.st{
  flex:1 1 0;min-width:0;
  background:var(--midnight);
  border:1px solid var(--rule);
  border-radius:6px;
  padding:12px 4px;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  text-align:center;
}
.st.amp{background:#14090a;border-color:var(--signal);flex-grow:1.2}
.led{
  width:16px;height:16px;border-radius:50%;
  border:1px solid var(--rule);
  background:#2a2d33;
  cursor:pointer;padding:0;
}
.led.on{background:var(--signal);border-color:var(--signal);box-shadow:0 0 10px var(--signal)}
.st.off .fd i{background:var(--rule)}
.st.off b,.st.off small{opacity:.45}
.fd{
  position:relative;width:6px;height:96px;
  background:var(--midnight);
  border-radius:3px;border:1px solid var(--rule);
}
.fd i{
  position:absolute;left:50%;transform:translateX(-50%);
  width:26px;height:12px;
  background:var(--bone);
  border-radius:2px;margin-bottom:-6px;
}
.st b{
  font-family:Michroma,sans-serif;
  font-size:8px;letter-spacing:.02em;
  text-transform:uppercase;line-height:1.2;
}
.st small{font-size:10px;color:var(--ash);line-height:1.2;min-height:24px}

/* Story / waitlist / stubs */
.story{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:center}
.phobox{
  aspect-ratio:4/5;
  background:var(--midnight);
  border:1px dashed var(--rule);
  display:grid;place-items:center;
  text-align:center;padding:24px;
  color:var(--ash);
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;
}
.wl{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding-top:8px;padding-bottom:8px}
.wl h2{font-family:Michroma,sans-serif;font-size:clamp(24px,3.2vw,42px);margin-bottom:10px;letter-spacing:.03em}
.placeholder{
  background:var(--midnight);
  border:1px dashed var(--rule);
  border-radius:6px;
  min-height:180px;
  display:grid;place-items:center;
  text-align:center;padding:28px;
  color:var(--ash);
  font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:12px;
}
.placeholder.audio{min-height:96px}
.placeholder audio{margin-top:12px;width:min(100%,360px)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.soc{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.soon{display:flex;flex-direction:column;justify-content:center}
.nt.big{height:120px;margin-bottom:12px}
.legal{max-width:720px}
.legal h2{margin-bottom:12px}
.legal p{color:var(--ash);margin-bottom:12px}
.thanks{max-width:640px}
.thanks h2{margin-bottom:12px}

/* Home hero */
.hero{
  position:relative;min-height:100vh;
  --mx:50%;--my:45%;
  overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  padding:90px 24px 70px;
  cursor:crosshair;
}
.lit{
  position:absolute;inset:0;
  background:url(assets/smoke-signal.svg) center/cover;
  display:grid;place-items:center;
}
.rose{position:absolute;width:min(1000px,118vh);animation:sp 200s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.lm{
  position:relative;
  width:min(340px,46vw);
  margin-top:-200px;
  filter:drop-shadow(0 0 40px rgba(179,45,45,.35));
}
.shade{
  position:absolute;inset:0;background:var(--midnight);opacity:.96;
  -webkit-mask-image:radial-gradient(circle 400px at var(--mx) var(--my),transparent 0,rgba(0,0,0,.55) 55%,#000 100%);
  mask-image:radial-gradient(circle 400px at var(--mx) var(--my),transparent 0,rgba(0,0,0,.55) 55%,#000 100%);
}
.echo{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.echo img{width:min(340px,46vw);margin-top:-200px;opacity:.18}
.hero .cta,.hero .hint,.hero .hl{position:relative;z-index:5}
.hero .hl{text-align:center;margin:36px 0 22px}
.hero .hh{
  font-family:Michroma,sans-serif;
  font-size:clamp(22px,3.1vw,40px);
  letter-spacing:.04em;
  color:var(--bone);
  text-shadow:0 2px 24px #000;
  line-height:1.25;
}
.hero .hs{
  margin-top:12px;color:var(--ash);
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.hint{margin-top:22px;color:var(--ash)}

/* Marquee */
.mq{overflow:hidden;white-space:nowrap;border-block:1px solid var(--rule);background:var(--surface)}
.mq>div{display:inline-flex;animation:mq 50s linear infinite}
@keyframes mq{to{transform:translateX(-25%)}}
.mq span{
  font-family:Michroma,sans-serif;
  font-size:18px;letter-spacing:.14em;text-transform:uppercase;
  padding:16px 34px;color:var(--bone);
}
.mq b{color:var(--signal);margin-left:34px;font-weight:400}

/* Inner page hero */
.phero{
  position:relative;overflow:hidden;
  padding:170px 28px 80px;
  background:url(assets/smoke-signal.svg) center/cover;
  border-bottom:1px solid var(--rule);
}
.phero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(rgba(11,11,15,.82),rgba(11,11,15,.94) 80%,var(--midnight));
}
.phero .pbg{position:absolute;inset:0;display:grid;place-items:center;opacity:.55}
.phero .rose{width:min(900px,120vw);opacity:.6}
.phero .pin{position:relative;z-index:3;max-width:1100px;margin:0 auto 0 calc(var(--track) + 28px)}
.phero .eb{color:var(--ash);font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px;font-weight:600}
.phero h1{
  font-family:Michroma,sans-serif;
  font-size:clamp(36px,6.4vw,88px);
  line-height:1.08;
  letter-spacing:.03em;
}
.phero .ps{margin-top:16px;font-size:clamp(18px,2vw,24px);color:var(--ash);max-width:720px}
.phero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

/* Channels */
.chs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.chn h3{
  font-family:Michroma,sans-serif;
  font-size:clamp(24px,2.8vw,36px);
  margin-bottom:10px;letter-spacing:.04em;text-transform:uppercase;
}
.chn p{color:var(--ash);min-height:56px}
.gain{margin-top:22px;display:flex;align-items:center;gap:12px}
.gain span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);font-weight:600}
.gb{flex:1;height:6px;background:var(--midnight);border:1px solid var(--rule);border-radius:3px}
.gb i{display:block;height:100%;background:var(--signal);border-radius:3px}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.steps div{border-top:1px solid var(--rule);padding-top:14px}
.steps span{font-weight:600;letter-spacing:.14em;font-size:12px;color:var(--ash)}
.steps h3{font-family:Michroma,sans-serif;font-size:16px;margin:8px 0;letter-spacing:.06em;text-transform:uppercase}
.steps p{color:var(--ash);font-size:14.5px}

@media(max-width:900px){
  .lcd,.tr{display:none}
  .tp{padding:10px 14px;flex-wrap:wrap;height:auto;min-height:var(--header);row-gap:6px}
  .tp nav{width:100%;margin:0;order:3;justify-content:flex-start;gap:0}
  .tp nav .rec{margin-left:auto}
  .tp .brand .mark{height:30px}
  .tp .brand .word{height:18px}
  .trk{grid-template-columns:1fr}
  .th{
    display:flex;gap:14px;align-items:center;
    padding:10px 14px;border-right:0;border-bottom:1px solid var(--rule);
  }
  .tn,.ms,.mt{position:static}
  .mt,.ms{margin:0}
  .trk.is-open .mt{height:22px;margin-top:0}
  .mt{height:0}
  .rg{display:none}
  .flag{font-size:9px;padding-left:6px}
  .pline{display:none}
  .three,.wy,.story,.wl,.feat,.chs,.two,.steps{grid-template-columns:1fr}
  .lane{padding:12px 14px}
  .trk.is-open .lane{padding:16px}
  .phero .pin{margin-left:0}
  .phero{padding:110px 16px 56px}
  .hero{padding:90px 16px 64px}
  .hero .hh{font-size:clamp(20px,6.4vw,26px)}
  .lm,.echo img{width:min(180px,46vw);margin-top:-120px}
  .hero .hl{margin:24px 0 18px}
}
@media(prefers-reduced-motion:reduce){
  .rose{animation:none}
  .mq>div{animation:none}
  .mt i{animation:none;clip-path:inset(28% 0 0 0)}
  .cb,.lane,.mt,.th{transition:none}
}

/* v2 — locked Rimlight colour lockup, never on Surface. */
.tp .brand{background:var(--midnight);padding:0;}
.tp .rimlight-header{width:190px;height:40px;object-fit:contain;}
.draft-preview{font:500 9px Manrope,sans-serif;letter-spacing:.08em;color:var(--ash);white-space:nowrap;border:1px solid var(--rule);border-radius:3px;padding:3px 5px;}
.draft-footer{font-size:11px;color:var(--ash);margin:0 0 16px;}
@media(max-width:1100px){.tp{gap:10px}.tp nav a{padding-inline:8px}.tp .rimlight-header{width:165px;}.draft-preview{font-size:8px;}}
@media(max-width:900px){.tp .rimlight-header{width:190px;height:34px;}.draft-preview{margin-left:auto;}}
@media(max-width:480px){.tp nav a{padding:8px 6px;font-size:9px;letter-spacing:.08em}.tp nav .rec{padding:8px 9px}.tp .rimlight-header{width:180px;height:34px;}}

/* Crop only the exported canvas padding; approved SVG paths and spacing stay exact. */
.tp{padding-block:4px;}
.tp .brand{position:relative;width:190px;height:50px;overflow:hidden;flex:none;}
.tp .rimlight-header{position:absolute;left:-5px;top:-14.5px;width:200px;height:75px;max-width:none;object-fit:fill;}
@media(max-width:1100px){.lcd{display:none}.tp .rimlight-header{width:200px;height:75px;}}
@media(max-width:900px){
 :root{--header:94px;}
 .tp{padding:8px 14px;min-height:94px;}
 .tp .brand{width:160px;height:42px;}
 .tp .rimlight-header{left:-3px;top:-12.5px;width:165px;height:61.875px;}
 .phero{padding-top:170px;}
}
@media(max-width:480px){.tp .rimlight-header{width:165px;height:61.875px;}}

/* Explicit disclosure state owns visibility on both touch and desktop.
   Desktop mouse hover still previews through pointer events; touch emulation
   and focus cannot keep a logically closed track visually open. */
html{overflow-anchor:none;}
.track-toggle{width:100%;text-align:left;border:0;background:none;padding:0;color:inherit;cursor:pointer;user-select:none;}
.track-toggle:focus-visible{outline:2px solid var(--bone);outline-offset:5px;border-radius:2px;}
.trk.disclosure-changing .cb,.trk.disclosure-changing .lane,.trk.disclosure-changing .lane>.tag,.trk.disclosure-changing .mt,.trk.disclosure-changing .th{transition:none!important;}
.track-scroll-space{height:0;pointer-events:none;overflow-anchor:none;background:var(--midnight);}

/* Audition transport: one real audio element, no preload or normalization. */
.audition-intro{margin:0 0 18px;}
.audition-reference{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 16px;border:1px solid var(--rule);border-radius:6px;background:var(--midnight);color:var(--bone);text-align:left;}
.audition-reference small{color:var(--ash);}
.audition-strip{cursor:pointer;}
.audition-strip[aria-disabled="true"]{cursor:default;}
.audition-strip .audition-led{width:26px;height:26px;flex:none;background:var(--surface);box-shadow:none;pointer-events:none;}
.audition-strip.is-playing .audition-led{background:var(--signal);border-color:var(--signal);box-shadow:0 0 12px rgba(179,45,45,.7);}
.audition-strip.is-playing{border-color:var(--bone);}
.audition-strip .demo-status{color:var(--ash);font:400 10px/1.25 Manrope,sans-serif;text-transform:none;letter-spacing:0;}
.audition-strip.is-playing .demo-status{color:var(--bone);}
.audition-strip:focus-visible{outline:2px solid var(--bone);outline-offset:3px;}
@media(max-width:900px){.mx .st{min-width:82px;}.audition-reference{flex-wrap:wrap;}}

/* Custom waitlist padding must not leave a focusable/visible collapsed body. */
.trk:not(.is-open) .cb{padding-top:0;padding-bottom:0;}
