.page-products{
  --apps-shell:rgba(234,243,236,.10);
  --apps-ink-soft:rgba(22,33,28,.76);
  --apps-light-soft:rgba(234,243,236,.80);
  --apps-light-faint:rgba(234,243,236,.58);
}

.page-products h1,
.page-products h2,
.page-products h3{
  font-family:var(--font-display);
}

.page-products img{
  max-width:100%;
  height:auto;
  display:block;
}

.page-products a{
  color:inherit;
}

/* ---------- hero ---------- */

.page-products .apps-hero{
  position:relative;
  overflow:hidden;
  padding-block:clamp(28px,5vw,52px) clamp(40px,7vw,80px);
}

.page-products .apps-hero::before{
  content:"";
  position:absolute;
  left:38%;
  right:-14%;
  top:-26%;
  bottom:-40%;
  background:linear-gradient(118deg,rgba(30,122,69,.52) 0%,rgba(52,196,107,.14) 46%,rgba(27,42,74,0) 76%);
  transform:rotate(-7deg);
  pointer-events:none;
}

.page-products .apps-hero .container{
  position:relative;
}

.page-products .apps-hero .breadcrumb{
  margin-bottom:clamp(24px,4vw,40px);
}

.page-products .apps-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(28px,5vw,52px);
  align-items:center;
}

.page-products .apps-hero h1{
  margin:10px 0 18px;
  font-weight:900;
  font-size:clamp(30px,5.4vw,56px);
  line-height:1.06;
  letter-spacing:-.01em;
  color:var(--paper);
  max-width:15em;
}

.page-products .apps-hero__lead{
  margin:0;
  max-width:34em;
  font-size:clamp(15px,1.55vw,17.5px);
  line-height:1.85;
  color:var(--apps-light-soft);
}

.page-products .hero-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:clamp(22px,3vw,32px);
}

.page-products .hero-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 15px;
  border:1px solid var(--line-strong);
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.06em;
  color:var(--paper);
  text-decoration:none;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.page-products .hero-link::after{
  content:"→";
  font-size:11px;
  color:var(--grass-bright);
}

.page-products .hero-link:hover,
.page-products .hero-link:focus-visible{
  background:var(--grass);
  border-color:var(--grass-bright);
  color:var(--paper);
}

.page-products .apps-stats{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(20px,4vw,52px);
  margin-top:clamp(30px,4.5vw,52px);
  padding-top:20px;
  border-top:1px solid var(--line-soft);
}

.page-products .apps-stat{
  min-width:110px;
}

.page-products .apps-stat__num{
  display:block;
  font-size:clamp(22px,3vw,30px);
  font-weight:600;
  color:var(--grass-bright);
  letter-spacing:.02em;
}

.page-products .apps-stat__label{
  display:block;
  margin-top:4px;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.1em;
  color:var(--slate);
}

/* ---------- phone mock ---------- */

.page-products .apps-hero__stage{
  display:flex;
  justify-content:center;
}

.page-products .phone{
  width:100%;
  max-width:330px;
}

.page-products .phone__frame{
  padding:11px;
  background:linear-gradient(158deg,#132A22,#08170F);
  border:1px solid var(--line-strong);
}

.page-products .phone__screen{
  display:grid;
  gap:12px;
  padding:13px 12px 15px;
  background:#07160E;
  border:1px solid var(--line-soft);
}

.page-products .phone__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.page-products .phone__time{
  font-size:10px;
  letter-spacing:.08em;
  color:var(--slate);
}

.page-products .phone__bars{
  display:flex;
  gap:3px;
}

.page-products .phone__bars i{
  width:4px;
  height:4px;
  background:var(--grass-bright);
}

.page-products .phone__bars i:nth-child(2){
  opacity:.6;
}

.page-products .phone__bars i:nth-child(3){
  opacity:.3;
}

.page-products .phone__leagues{
  display:flex;
  gap:5px;
}

.page-products .phone__lg{
  flex:1;
  height:6px;
  display:block;
}

.page-products .phone__lg--a{ background:var(--grass-bright); }
.page-products .phone__lg--b{ background:var(--lamp); }
.page-products .phone__lg--c{ background:var(--slate); }
.page-products .phone__lg--d{ background:var(--wine); }

.page-products .phone__board{
  display:grid;
  gap:9px;
  padding:11px 0;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}

.page-products .phone__row{
  display:grid;
  grid-template-columns:20px minmax(0,1fr) 28px;
  align-items:center;
  gap:8px;
}

.page-products .phone__rk{
  font-family:var(--font-mono);
  font-size:10px;
  color:var(--slate);
}

.page-products .phone__bar{
  height:8px;
  display:block;
  background:linear-gradient(90deg,var(--grass) 0%,var(--grass) 72%,rgba(30,122,69,.25) 72%);
}

.page-products .phone__row:nth-child(1) .phone__bar{ width:100%; }
.page-products .phone__row:nth-child(2) .phone__bar{ width:88%; }
.page-products .phone__row:nth-child(3) .phone__bar{ width:76%; }
.page-products .phone__row:nth-child(4) .phone__bar{ width:64%; }
.page-products .phone__row:nth-child(5) .phone__bar{ width:52%; }

.page-products .phone__pt{
  font-family:var(--font-mono);
  font-size:11px;
  text-align:right;
  color:var(--paper);
}

.page-products .phone__sched{
  display:flex;
  align-items:center;
  gap:8px;
}

.page-products .phone__slot{
  font-size:10px;
  letter-spacing:.06em;
  color:var(--lamp);
}

.page-products .phone__slot-line{
  flex:1;
  height:1.5px;
  background:repeating-linear-gradient(90deg,var(--slate) 0 8px,transparent 8px 14px);
  opacity:.6;
}

.page-products .phone__cta{
  padding:8px 10px;
  border:1px solid rgba(244,101,42,.55);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.05em;
  color:var(--alert);
}

/* ---------- shared section rhythm ---------- */

.page-products .section .container{
  position:relative;
}

.page-products .chapter-head{
  margin-bottom:clamp(26px,4vw,44px);
  max-width:52em;
}

.page-products .chapter-head__title{
  margin:8px 0 12px;
  font-size:clamp(24px,3.4vw,38px);
  font-weight:900;
  line-height:1.12;
  color:var(--ink);
}

.page-products .chapter-head__note{
  margin:0;
  font-size:15.5px;
  line-height:1.8;
  color:var(--apps-ink-soft);
}

.page-products .section--deep .chapter-head__title,
.page-products .section--indigo .chapter-head__title{
  color:var(--paper);
}

.page-products .section--deep .chapter-head__note,
.page-products .section--indigo .chapter-head__note{
  color:var(--apps-light-faint);
}

.page-products .section--deep a,
.page-products .section--indigo a{
  color:var(--grass-bright);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* ---------- main path ---------- */

.page-products .apps-path__layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(24px,4vw,44px);
}

.page-products .apps-steps-nav ol{
  list-style:none;
  margin:0;
  padding:0;
  border-left:1px solid var(--line);
}

.page-products .apps-steps-nav a{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:10px 0 10px 16px;
  margin-left:-1px;
  border-left:2px solid transparent;
  font-size:14.5px;
  color:var(--ink);
  text-decoration:none;
  transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
}

.page-products .apps-steps-nav a .mono{
  font-size:11.5px;
  color:var(--slate);
}

.page-products .apps-steps-nav a:hover,
.page-products .apps-steps-nav a:focus-visible{
  color:var(--grass);
  border-left-color:var(--grass-bright);
  background:rgba(52,196,107,.06);
}

.page-products .apps-steps-nav__hint{
  margin:14px 0 0;
  padding-left:16px;
  font-size:12.5px;
  line-height:1.7;
  color:var(--slate);
}

.page-products .apps-step{
  padding-bottom:clamp(20px,3vw,30px);
  margin-bottom:clamp(20px,3vw,30px);
  border-bottom:1px solid var(--line-soft);
  transition:border-color var(--dur) var(--ease);
}

.page-products .apps-step:last-of-type{
  border-bottom:0;
  margin-bottom:0;
}

.page-products .apps-step.is-active{
  border-bottom-color:var(--grass-bright);
}

.page-products .apps-step__num{
  display:block;
  font-size:11.5px;
  letter-spacing:.14em;
  color:var(--grass);
}

.page-products .apps-step h3{
  margin:7px 0 10px;
  font-size:clamp(19px,2.4vw,26px);
  font-weight:900;
  line-height:1.22;
  color:var(--ink);
}

.page-products .apps-step p{
  margin:0;
  font-size:15.5px;
  line-height:1.82;
  color:var(--apps-ink-soft);
}

.page-products .apps-path__figure{
  margin:clamp(26px,4vw,40px) 0 0;
  max-width:520px;
}

.page-products .apps-path__foot{
  margin:clamp(20px,3vw,28px) 0 0;
  font-size:14px;
  line-height:1.8;
  color:var(--apps-ink-soft);
}

.page-products .apps-path__foot a{
  color:var(--grass);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* ---------- rank + lineup ---------- */

.page-products .apps-rank__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,48px);
}

.page-products .apps-rank__copy h2{
  margin:8px 0 14px;
  font-size:clamp(24px,3.6vw,40px);
  font-weight:900;
  line-height:1.1;
  color:var(--paper);
}

.page-products .apps-rank__lead{
  margin:0 0 clamp(22px,3vw,30px);
  font-size:15.5px;
  line-height:1.85;
  color:var(--apps-light-soft);
  max-width:40em;
}

.page-products .apps-fields{
  margin:0 0 clamp(22px,3vw,30px);
  display:grid;
  gap:0;
  border-top:1px solid var(--line-soft);
}

.page-products .apps-field{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  padding:16px 0;
  border-bottom:1px solid var(--line-soft);
}

.page-products .apps-field dt{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.1em;
  color:var(--grass-bright);
}

.page-products .apps-field dd{
  margin:0;
  font-size:14.5px;
  line-height:1.78;
  color:var(--apps-light-soft);
}

.page-products .apps-sorts{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:clamp(22px,3vw,30px);
}

.page-products .apps-sorts__label{
  font-size:11.5px;
  letter-spacing:.12em;
  color:var(--slate);
}

.page-products .apps-sort{
  padding:7px 12px;
  border:1px solid var(--line-strong);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.05em;
  color:var(--apps-light-soft);
}

.page-products .apps-sort.is-on{
  border-color:var(--grass-bright);
  background:rgba(52,196,107,.16);
  color:var(--paper);
}

.page-products .apps-lineup-note{
  padding:16px 18px;
  border-left:3px solid var(--alert);
  background:rgba(244,101,42,.08);
}

.page-products .apps-lineup-note__title{
  margin:0 0 8px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.1em;
  color:var(--alert);
}

.page-products .apps-lineup-note p:last-child{
  margin:0;
  font-size:14.5px;
  line-height:1.8;
  color:var(--apps-light-soft);
}

/* ---------- alert / timeline ---------- */

.page-products .apps-alert__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(24px,4vw,44px);
  align-items:start;
}

.page-products .apps-alert__steps{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:18px;
}

.page-products .apps-alert__steps li{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line-soft);
}

.page-products .apps-alert__steps li:last-child{
  border-bottom:0;
  padding-bottom:0;
}

.page-products .apps-alert__idx{
  font-size:12px;
  letter-spacing:.1em;
  color:var(--grass);
  padding-top:3px;
}

.page-products .apps-alert__steps p{
  margin:0;
  font-size:15.5px;
  line-height:1.82;
  color:var(--apps-ink-soft);
}

.page-products .apps-alert__steps strong{
  color:var(--ink);
  font-weight:600;
}

.page-products .apps-timeline{
  width:100%;
  height:auto;
  display:block;
  margin-top:clamp(28px,4vw,44px);
}

.page-products .apps-timeline .tl-line{
  stroke:var(--slate);
  stroke-width:1.5;
}

.page-products .apps-timeline .tl-stop rect{
  fill:var(--lamp);
}

.page-products .apps-timeline .tl-stop--alert rect{
  fill:var(--alert);
}

.page-products .apps-timeline text{
  fill:var(--slate);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.06em;
}

.page-products .apps-timeline .tl-alert-text{
  fill:var(--alert);
}

/* ---------- revisit ---------- */

.page-products .apps-revisit__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,48px);
}

.page-products .apps-revisit__copy h2{
  margin:8px 0 14px;
  font-size:clamp(24px,3.6vw,40px);
  font-weight:900;
  line-height:1.1;
  color:var(--paper);
}

.page-products .apps-revisit__copy > p{
  margin:0 0 clamp(22px,3vw,30px);
  font-size:15.5px;
  line-height:1.85;
  color:var(--apps-light-soft);
  max-width:40em;
}

.page-products .apps-revisit__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:0;
  border-top:1px solid var(--line-soft);
}

.page-products .apps-revisit__list li{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  padding:15px 0;
  border-bottom:1px solid var(--line-soft);
}

.page-products .apps-revisit__key{
  font-size:12px;
  letter-spacing:.12em;
  color:var(--lamp);
}

.page-products .apps-revisit__list p{
  margin:0;
  font-size:14.5px;
  line-height:1.78;
  color:var(--apps-light-soft);
}

/* ---------- leagues ---------- */

.page-products .apps-leagues__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(22px,3.4vw,40px);
}

.page-products .apps-leagues__panel{
  padding-top:18px;
  border-top:2px solid var(--grass);
}

.page-products .apps-leagues__label{
  display:block;
  margin-bottom:14px;
  font-size:11.5px;
  letter-spacing:.14em;
  color:var(--slate);
}

.page-products .apps-league-chips{
  display:flex;
  gap:6px;
  margin-bottom:16px;
}

.page-products .apps-chip{
  display:block;
  flex:1;
  height:10px;
  border:1px solid transparent;
}

.page-products .apps-chip--a{ background:var(--grass-bright); }
.page-products .apps-chip--b{ background:var(--lamp); }
.page-products .apps-chip--c{ background:var(--slate); }
.page-products .apps-chip--d{ background:var(--wine); }
.page-products .apps-chip--e{ background:var(--indigo); }
.page-products .apps-chip--f{ background:var(--grass); }

.page-products .apps-chip.is-on{
  border-color:var(--paper);
  outline:2px solid rgba(52,196,107,.55);
  outline-offset:2px;
}

.page-products .apps-leagues__text{
  margin:0;
  font-size:15px;
  line-height:1.82;
  color:var(--apps-ink-soft);
}

.page-products .apps-leagues__figure{
  margin:0;
}

.page-products .apps-leagues__foot{
  margin:clamp(24px,3.4vw,36px) 0 0;
  font-size:14px;
  line-height:1.8;
  color:var(--apps-ink-soft);
}

.page-products .apps-leagues__foot a{
  color:var(--grass);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* ---------- versions ---------- */

.page-products .apps-versions__list{
  border-top:1px solid var(--line-soft);
}

.page-products .apps-version{
  border-bottom:1px solid var(--line-soft);
}

.page-products .apps-version__summary{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:10px;
  padding:16px 0;
  cursor:pointer;
  list-style:none;
}

.page-products .apps-version__summary::-webkit-details-marker{
  display:none;
}

.page-products .apps-version__summary:hover .apps-version__name,
.page-products .apps-version__summary:focus-visible .apps-version__name{
  color:var(--grass-bright);
}

.page-products .apps-version__tag{
  flex:0 0 auto;
  padding:4px 9px;
  border:1px solid var(--line-strong);
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--slate);
}

.page-products .apps-version__name{
  font-family:var(--font-display);
  font-size:clamp(16px,2vw,20px);
  font-weight:900;
  line-height:1.3;
  color:var(--paper);
  transition:color var(--dur) var(--ease);
}

.page-products .apps-version__summary::after{
  content:"+";
  margin-left:auto;
  font-family:var(--font-mono);
  font-size:14px;
  color:var(--grass-bright);
}

.page-products .apps-version[open] .apps-version__summary::after{
  content:"−";
}

.page-products .apps-version__body{
  margin:0 0 18px;
  padding-left:2px;
  max-width:52em;
  font-size:14.5px;
  line-height:1.82;
  color:var(--apps-light-soft);
}

.page-products .apps-versions__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:clamp(24px,3.4vw,36px);
}

.page-products .apps-versions__meta p{
  margin:0;
  max-width:44em;
  font-size:14px;
  line-height:1.8;
  color:var(--apps-light-faint);
}

.page-products .apps-versions__meta .btn{
  flex:0 0 auto;
}

/* ---------- responsive ---------- */

@media (min-width:760px){
  .page-products .apps-rank__grid{
    grid-template-columns:minmax(0,6fr) minmax(0,5fr);
  }

  .page-products .apps-alert__grid{
    grid-template-columns:minmax(0,6fr) minmax(0,5fr);
    align-items:center;
  }

  .page-products .apps-revisit__grid{
    grid-template-columns:minmax(0,6fr) minmax(0,5fr);
    align-items:center;
  }

  .page-products .apps-leagues__grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }

  .page-products .apps-leagues__figure{
    grid-column:1 / -1;
  }

  .page-products .apps-field{
    grid-template-columns:130px minmax(0,1fr);
    gap:16px;
    align-items:baseline;
  }

  .page-products .apps-revisit__list li{
    grid-template-columns:120px minmax(0,1fr);
    gap:16px;
    align-items:baseline;
  }
}

@media (min-width:900px){
  .page-products .apps-hero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  }

  .page-products .apps-path__layout{
    grid-template-columns:minmax(0,4fr) minmax(0,8fr);
    gap:clamp(32px,4vw,64px);
  }

  .page-products .apps-steps-nav{
    position:sticky;
    top:104px;
    align-self:start;
  }

  .page-products .apps-path__figure{
    max-width:560px;
  }
}

@media (min-width:1100px){
  .page-products .apps-rank__grid{
    grid-template-columns:minmax(0,6fr) minmax(0,6fr);
    gap:clamp(36px,4vw,64px);
  }
}

@media (max-width:420px){
  .page-products .apps-stat{
    min-width:88px;
  }

  .page-products .apps-alert__steps li{
    grid-template-columns:36px minmax(0,1fr);
    gap:10px;
  }
}

@media (prefers-reduced-motion:reduce){
  .page-products *{
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
  }
}
