/* TrackStar - trackstar.info
   Built for Cloudflare Pages. Vanilla CSS, no framework, no build step.
   Ground #08090A. Shows are amber, releases are blue. iOS system type stack is the brand. */

:root{
  --bg:#08090A; --bg-2:#0C0D10; --card:#16181C; --line:#23262B; --line-2:#2E3137; --line-3:#41444C;
  --ink:#F2F3F5; --muted:#9A9DA5;
  --amber:#FFB84D; --blue:#86C8FF;
  --r:999px;
  --sys:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --gut:clamp(18px,5vw,40px);
  --wrap:1120px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sys); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.03em;line-height:1.12}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem;padding-left:1.25rem}
li{margin:0 0 .5rem}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:6px}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
.sec{padding:clamp(3.5rem,8vw,7rem) 0;position:relative}
.sec--tight{padding:clamp(2.5rem,5vw,4rem) 0}
.rule{border-top:1px solid var(--line-2)}

.h1{font-size:clamp(2.6rem,7.2vw,4.9rem);letter-spacing:-.045em}
.h2{font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:-.035em}
.h3{font-size:1.25rem;letter-spacing:-.015em}
.lead{font-size:clamp(1.08rem,1.6vw,1.3rem);color:var(--muted);max-width:42rem;margin:1.1rem 0 0}
.muted{color:var(--muted)}
.small{font-size:.9rem}
.amber{color:var(--amber)}
.blue{color:var(--blue)}
.max{max-width:66ch}

.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1rem;
  font-size:.74rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);
}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--amber);flex:none}
.eyebrow.b::before{background:var(--blue)}
.eyebrow.none::before{display:none}

/* ---------- controls ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:52px;padding:.9rem 1.55rem;border-radius:var(--r);
  background:var(--ink);color:var(--bg);border:1px solid var(--ink);
  font-weight:700;font-size:1rem;white-space:nowrap;
  transition:transform .16s ease,background .16s ease,border-color .16s ease;
}
.btn:hover{background:#fff;transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn--ghost:hover{background:var(--card);border-color:var(--line-3)}
.btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
@media(max-width:560px){.btn{width:100%}}

.chip{
  display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .8rem;
  border-radius:var(--r);border:1px solid var(--line-2);background:var(--bg-2);
  font-size:.85rem;font-weight:600;white-space:nowrap;
}
.chip i{width:7px;height:7px;border-radius:50%;background:var(--amber);font-style:normal;flex:none}
.chip i.b{background:var(--blue)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}

.card{
  background:var(--card);border:1px solid var(--line-2);border-radius:22px;padding:1.6rem;
  transition:border-color .2s ease,transform .2s ease;
}
.card:hover{border-color:var(--line-3);transform:translateY(-2px)}
.card p{color:var(--muted);font-size:1rem;margin:0}
.card .h3{margin:.9rem 0 .5rem}

.grid{display:grid;gap:1rem;align-items:start}
@media(min-width:680px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1020px){.g4{grid-template-columns:repeat(4,1fr)}}
@media(min-width:680px) and (max-width:1019px){.g4{grid-template-columns:1fr 1fr}}

.note{
  border:1px solid var(--line-2);border-left:3px solid var(--amber);border-radius:14px;
  background:var(--bg-2);padding:.95rem 1.15rem;margin:1.5rem 0 0;
  font-size:.93rem;color:var(--muted);max-width:68ch;
}
.note a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* ---------- header / footer ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(8,9,10,.82);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line-2)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:62px}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.15rem;letter-spacing:-.03em}
.brand img{width:28px;height:28px}
.nav-links{display:flex;gap:.1rem;flex-wrap:wrap}
.nav-links a{padding:.45rem .75rem;border-radius:var(--r);color:var(--muted);font-weight:600;font-size:.95rem}
.nav-links a:hover{color:var(--ink);background:var(--card)}
.nav-links a[aria-current="page"]{color:var(--ink)}
@media(max-width:860px){
  .nav{flex-wrap:wrap;justify-content:center;padding-block:.6rem;row-gap:.3rem}
  .nav-links{justify-content:center}
  .nav .btn{display:none}
}

.site-foot{border-top:1px solid var(--line-2);padding:3rem 0 2.5rem;margin-top:2rem}
.foot-top{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.foot-col{display:flex;flex-direction:column;gap:.35rem;min-width:9rem}
.foot-col b{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}
.foot-col a{font-size:.95rem}
.foot-col a:hover{color:var(--amber)}
.foot-bot{margin-top:2.25rem;padding-top:1.25rem;border-top:1px solid var(--line-2);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.85rem}
.foot-bot a{margin-right:1.1rem;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-2)}
.foot-bot a:hover{color:var(--ink)}

/* ---------- hero: the timeline IS the hero ---------- */
.hero{position:relative;padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5.5rem);overflow:hidden}
.glow{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0}
.glow.a{width:min(460px,70vw);height:min(460px,70vw);background:var(--amber);opacity:.20;right:-4%;top:-120px}
.glow.b{width:min(380px,60vw);height:min(380px,60vw);background:var(--blue);opacity:.13;left:-6%;bottom:-150px}
.hero>.wrap{position:relative;z-index:1}

/* the 12-month rail */
.rail{margin-top:clamp(2rem,5vw,3.25rem);position:relative}
.rail-line{height:2px;background:linear-gradient(90deg,var(--amber),var(--blue));opacity:.5;border-radius:2px}
.rail-months{display:flex;gap:0;margin-top:.9rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail-months::-webkit-scrollbar{display:none}
.month{flex:1 0 auto;min-width:74px;padding:.55rem .25rem .7rem;text-align:center;position:relative}
.month b{display:block;font-size:.95rem;font-weight:700;letter-spacing:-.01em}
.month span{display:block;font-size:.7rem;color:var(--muted);letter-spacing:.08em;margin-top:.15rem}
.pips{display:flex;justify-content:center;gap:4px;margin-top:.5rem;min-height:8px}
.pip{width:6px;height:6px;border-radius:50%;background:var(--amber);opacity:.28;transition:opacity .45s ease,transform .45s ease}
.pip.b{background:var(--blue)}
.month.lit .pip{opacity:1;transform:scale(1.18)}
.month.lit b{color:var(--ink)}

/* next-up cards */
.nextup{display:grid;gap:.7rem;margin-top:clamp(1.6rem,4vw,2.4rem)}
@media(min-width:760px){.nextup{grid-template-columns:repeat(3,1fr)}}
.nu{
  display:flex;gap:.85rem;align-items:flex-start;
  background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1rem 1.1rem;
}
.nu .d{flex:none;width:40px;text-align:center;color:var(--amber);font-weight:700;font-size:.68rem;letter-spacing:.1em}
.nu .d b{display:block;font-size:1.5rem;letter-spacing:0;line-height:1.1}
.nu .d.b{color:var(--blue)}
.nu .t{min-width:0}
.nu .t b{display:block;font-size:1.02rem;font-weight:700;letter-spacing:-.01em}
.nu .t span{display:block;color:var(--muted);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- venue constellation ---------- */
.constell{position:relative;margin-top:2rem;border:1px solid var(--line-2);border-radius:24px;background:radial-gradient(120% 120% at 20% 10%,#0E1014 0%,var(--bg) 70%);padding:clamp(1.2rem,3vw,2rem);overflow:hidden}
.boro{margin:0 0 1.1rem}
.boro:last-child{margin-bottom:0}
.boro b{display:block;font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}
.stars{display:flex;flex-wrap:wrap;gap:.5rem}
.star{
  display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .8rem;border-radius:var(--r);
  border:1px solid var(--line);background:rgba(12,13,16,.7);font-size:.9rem;font-weight:600;color:var(--muted);
  transition:color .2s ease,border-color .2s ease,transform .2s ease,background .2s ease;
}
.star::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);opacity:.5;flex:none;transition:opacity .2s ease,box-shadow .2s ease}
@media(hover:hover) and (pointer:fine){
  .star:hover{color:var(--ink);border-color:var(--line-3);transform:translateY(-2px);background:var(--card)}
  .star:hover::before{opacity:1;box-shadow:0 0 10px var(--amber)}
}

/* ---------- seller board ---------- */
.board{display:grid;gap:.5rem;margin-top:1.4rem}
.srow{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:.95rem 1.1rem;
  font-weight:600;transition:border-color .2s ease;
}
.srow:hover{border-color:var(--line-3)}
.srow em{font-style:normal;color:var(--muted);font-size:.9rem;flex:none}
.srow em.on{color:var(--amber);font-weight:700}

/* ---------- marquee ---------- */
.mq{overflow:hidden;white-space:nowrap;position:relative;padding:1.1rem 0;margin-top:1.4rem}
.mq-track{display:inline-flex;gap:2.6rem;padding-right:2.6rem;animation:mq 72s linear infinite;will-change:transform}
.mq:hover .mq-track{animation-play-state:paused}
.mq span{display:inline-flex;align-items:center;gap:2.6rem;font-weight:700;font-size:1.1rem;letter-spacing:-.015em;white-space:nowrap}
.mq span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber);flex:none}
.mq span:nth-child(even)::after{background:var(--blue)}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.mq::before,.mq::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:1;pointer-events:none}
.mq::before{left:0;background:linear-gradient(90deg,var(--bg),rgba(8,9,10,0))}
.mq::after{right:0;background:linear-gradient(270deg,var(--bg),rgba(8,9,10,0))}

/* ---------- steps ---------- */
.steps{display:grid;gap:1rem}
@media(min-width:980px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{background:var(--card);border:1px solid var(--line-2);border-radius:22px;padding:1.6rem;display:flex;flex-direction:column;transition:border-color .2s ease,transform .2s ease}
.step:hover{border-color:var(--line-3);transform:translateY(-2px)}
.step .n{display:block;font-size:.76rem;font-weight:800;letter-spacing:.18em;color:var(--amber);margin-bottom:.9rem}
.step .n.b{color:var(--blue)}
.step p{color:var(--muted);font-size:1rem;margin:0}
.frag{margin-top:auto;padding-top:1.2rem;display:flex;flex-wrap:wrap;gap:.5rem}
.frag-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;font-size:.88rem;overflow:hidden}
.frag-row .l{display:inline-flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frag-row em{font-style:normal;color:var(--muted);font-size:.82rem;flex:none}
.frag-row em.on{color:var(--amber);font-weight:700}

/* ---------- FAQ ---------- */
.qa{border-top:1px solid var(--line-2)}
.qa details{border-bottom:1px solid var(--line-2)}
.qa summary{
  cursor:pointer;list-style:none;padding:1.15rem 2.2rem 1.15rem 0;position:relative;
  font-weight:700;font-size:1.06rem;letter-spacing:-.015em;
}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{
  content:"";position:absolute;right:.4rem;top:50%;width:10px;height:10px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s ease;
}
.qa details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa .a{padding:0 0 1.2rem;color:var(--muted);max-width:68ch}
.qa .a p:last-child{margin-bottom:0}

/* ---------- legal / prose pages ---------- */
.prose{max-width:72ch}
.prose h2{font-size:1.35rem;margin:2.4rem 0 .7rem;letter-spacing:-.02em}
.prose h3{font-size:1.08rem;margin:1.6rem 0 .5rem;letter-spacing:-.01em}
.prose p,.prose li{color:#D7D9DE;font-size:1.02rem}
.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-3)}
.prose a:hover{text-decoration-color:var(--amber)}
.prose strong,.prose b{color:var(--ink)}

/* ---------- motion: opt-in only, always visible without JS ---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1!important;transform:none!important}
  .mq{white-space:normal}
  .mq-track{flex-wrap:wrap;padding:0}
  .mq::before,.mq::after{display:none}
  .month .pip{opacity:1}
}

/* scroll-driven rail, where supported; the JS fallback does the same job */
@supports (animation-timeline: view()){
  @media(prefers-reduced-motion:no-preference){
    .rail-line{animation:railGrow linear both;animation-timeline:view();animation-range:entry 10% cover 45%;transform-origin:left center}
    @keyframes railGrow{from{transform:scaleX(.06);opacity:.3}to{transform:scaleX(1);opacity:.6}}
  }
}

/* skip link */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bg);padding:.7rem 1rem;border-radius:0 0 10px 0;font-weight:700;z-index:100}
.skip:focus{left:0}

/* ---------- legal tables + on-page contents ---------- */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.4rem 0;border:1px solid var(--line-2);border-radius:16px}
.tw table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.95rem}
.tw th,.tw td{text-align:left;vertical-align:top;padding:.8rem .95rem;border-bottom:1px solid var(--line)}
.tw thead th,.tw tr:first-child th{color:var(--muted);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;background:var(--bg-2)}
.tw tr:last-child td,.tw tr:last-child th{border-bottom:0}
.tw td{color:#D7D9DE}
.tw td:first-child{color:var(--ink);font-weight:600}

.toc{border:1px solid var(--line-2);border-radius:16px;background:var(--bg-2);padding:.4rem 1.1rem;margin:0 0 2rem}
.toc summary{cursor:pointer;list-style:none;padding:.8rem 0;font-weight:700;font-size:.95rem}
.toc summary::-webkit-details-marker{display:none}
.toc ol{margin:.2rem 0 1rem;padding-left:1.2rem;columns:2;column-gap:2rem}
.toc li{margin:0 0 .4rem;font-size:.92rem;break-inside:avoid}
.toc a{color:var(--muted);text-decoration:none}
.toc a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:620px){.toc ol{columns:1}}

/* ---------- real app screenshots in a phone frame ---------- */
.shots{display:grid;gap:clamp(1.4rem,4vw,2.6rem);align-items:center;margin-top:2.2rem}
@media(min-width:900px){.shots{grid-template-columns:1fr 1fr}}
.phone{
  position:relative;width:100%;max-width:300px;margin:0 auto;
  border-radius:40px;background:#000;padding:7px;
  box-shadow:0 0 0 1px #33363C,0 0 0 8px #101215,0 0 0 9px #24262B,0 36px 80px rgba(0,0,0,.6);
}
.phone img{width:100%;height:auto;border-radius:34px;display:block}
.phone figcaption{
  position:absolute;left:0;right:0;bottom:-2.4rem;text-align:center;
  color:var(--muted);font-size:.86rem;
}
.shotpair{display:flex;gap:clamp(.9rem,3vw,1.6rem);justify-content:center;flex-wrap:wrap}
.shotpair .phone{max-width:min(260px,44vw)}
@media(max-width:560px){.shotpair .phone{max-width:46vw;border-radius:26px;padding:5px}.shotpair .phone img{border-radius:22px}}
.shotnote{margin-top:3rem}
