.tutorial-hero{
  padding-top:42px;
  padding-bottom:58px;
  overflow-x:clip;
}
.tutorial-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);
  align-items:stretch;
  gap:18px;
}
.tutorial-hero-copy{
  min-width:0;
  padding:42px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-card);
  background:var(--color-surface);
  box-shadow:var(--shadow-card);
}
.tutorial-hero-copy h1{
  max-width:9ch;
  margin-top:20px;
}
.tutorial-hero-copy .lead{
  max-width:36em;
}
.tutorial-hero-copy .button-row{
  margin-top:26px;
}
.tutorial-facts{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:28px 0 0;
  padding:20px 0 0;
  border-top:1px dashed var(--color-border);
  list-style:none;
}
.tutorial-facts li{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  padding:4px 12px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:var(--color-surface-strong);
  color:var(--color-muted);
  font-size:12px;
  font-weight:750;
}
.tutorial-facts li::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--color-success);
}
.tutorial-route{
  display:flex;
  min-width:0;
  flex-direction:column;
  padding:30px;
  background:var(--color-surface-strong);
}
.tutorial-route-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-bottom:20px;
  border-bottom:1px dashed var(--color-border);
  color:var(--color-muted);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.12em;
}
.tutorial-route-head strong{
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:13px;
  letter-spacing:0;
}
.route-track{
  position:relative;
  display:grid;
  flex:1;
  align-content:center;
  gap:0;
  padding:20px 0;
}
.route-track::before{
  content:"";
  position:absolute;
  top:54px;
  bottom:54px;
  left:15px;
  border-left:1px dashed var(--color-muted);
}
.route-stage{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  align-items:center;
  gap:15px;
  min-height:64px;
}
.route-node{
  display:block;
  width:14px;
  height:14px;
  margin-left:8px;
  border:3px solid var(--color-surface-strong);
  border-radius:50%;
  background:var(--color-muted);
  box-shadow:0 0 0 1px var(--color-muted);
}
.route-stage.is-current .route-node{
  background:var(--color-text);
  box-shadow:0 0 0 2px var(--color-text);
}
.route-stage div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:11px 14px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-surface);
}
.route-stage strong{
  font-size:14px;
}
.route-code{
  color:var(--color-muted);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.1em;
}
.route-foot{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:18px;
  border-top:1px dashed var(--color-border);
}
.route-foot span{
  padding:4px 9px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:var(--color-surface);
  color:var(--color-muted);
  font-family:var(--font-mono);
  font-size:9px;
}

.tutorial-flow{
  padding-top:18px;
  padding-bottom:72px;
}
.tutorial-flow .toc-tabs{
  margin-bottom:48px;
}
.guide-step{
  display:grid;
  grid-template-columns:150px minmax(0,820px);
  justify-content:center;
  gap:38px;
  padding-top:58px;
  padding-bottom:58px;
  border-bottom:1px dashed var(--color-border);
}
.guide-step:last-child{
  border-bottom:0;
}
.step-marker{
  position:sticky;
  top:calc(var(--header-height) + 78px);
  align-self:start;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:54px;
  padding:12px 15px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:var(--color-surface-strong);
  color:var(--color-text);
  box-shadow:var(--shadow-card);
}
.step-marker span{
  min-width:0;
  overflow:hidden;
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-overflow:ellipsis;
}
.step-marker svg{
  width:22px;
  height:22px;
  flex:0 0 auto;
}
.step-content{
  min-width:0;
}
.step-content h2{
  font-size:clamp(30px,3.5vw,44px);
}
.step-content p{
  color:var(--color-muted);
}
.step-content a:not(.btn){
  color:var(--color-text);
  font-weight:750;
  text-decoration:underline;
  text-decoration-color:var(--color-accent-dark);
  text-underline-offset:3px;
}
.step-content .callout{
  margin:24px 0;
}
.step-content pre{
  margin:22px 0;
}
.step-next{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:30px;
  padding-top:18px;
  border-top:1px solid var(--color-border);
}
.step-next>span{
  color:var(--color-muted);
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}
.step-next a{
  text-align:right;
}
.platform-walkthrough{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:28px 0;
}
.platform-guide{
  min-width:0;
  padding:24px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface);
  box-shadow:var(--shadow-card);
}
.platform-guide-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.platform-guide-head h3{
  margin:0;
  font-size:19px;
}
.platform-letter{
  display:grid;
  width:44px;
  height:38px;
  flex:0 0 auto;
  place-items:center;
  border-radius:var(--radius-sm);
  background:var(--color-surface-strong);
  color:var(--color-text);
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:850;
}
.platform-guide p{
  margin-bottom:0;
  font-size:14px;
}
.completion-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  margin-top:34px;
  padding:26px;
  border:1px solid var(--color-border);
  border-radius:var(--radius-card);
  background:var(--color-surface-strong);
}
.completion-panel .mono{
  color:var(--color-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}
.completion-panel h3{
  margin-top:5px;
}
.completion-panel p{
  margin-bottom:0;
  font-size:14px;
}

@media (max-width:980px){
  .tutorial-hero-grid{
    grid-template-columns:1fr;
  }
  .tutorial-route{
    min-height:480px;
  }
  .guide-step{
    grid-template-columns:116px minmax(0,1fr);
    gap:24px;
  }
}
@media (max-width:768px){
  .tutorial-hero{
    padding-top:24px;
    padding-bottom:36px;
  }
  .tutorial-hero-copy{
    padding:28px 24px;
  }
  .tutorial-hero-copy h1{
    max-width:none;
  }
  .tutorial-route{
    min-height:0;
    padding:24px;
  }
  .guide-step{
    grid-template-columns:1fr;
    gap:20px;
    padding-top:44px;
    padding-bottom:44px;
  }
  .step-marker{
    position:static;
    width:max-content;
    max-width:100%;
  }
  .platform-walkthrough{
    grid-template-columns:1fr;
  }
  .completion-panel{
    grid-template-columns:1fr;
  }
}
@media (max-width:640px){
  .tutorial-hero-copy{
    padding:24px 20px;
  }
  .tutorial-facts{
    align-items:flex-start;
    flex-direction:column;
  }
  .tutorial-route{
    padding:20px 16px;
  }
  .route-stage div{
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
  .tutorial-flow{
    padding-top:8px;
    padding-bottom:50px;
  }
  .tutorial-flow .toc-tabs{
    margin-bottom:24px;
  }
  .step-next{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .step-next a{
    text-align:left;
  }
  .platform-guide{
    padding:20px;
  }
  .completion-panel{
    padding:22px;
  }
}
@media (prefers-reduced-motion:reduce){
  .tutorial-route,
  .guide-step,
  .platform-guide{
    transform:none!important;
  }
}