/* The home navigation belongs to the beginning of the document. */
html.landing-scroll-page { scroll-padding-top:24px; }
.search-first-page .header { position:relative; top:auto; }
.search-first-page .business-panel[id] { scroll-margin-top:24px; }
/* App walkthrough. Text stays in normal document flow; only the phone stage pins. */
.tty-journey{--j-header:0px;--j-stage:calc(100svh - var(--j-header));--j-phone-h:min(79svh,790px,65vw);position:relative;isolation:isolate;background:var(--background);margin-top:65px;border-block:1px solid var(--line)}
.j-anchor{position:absolute;top:0;width:1px;height:1px;pointer-events:none}.j-visual{display:none}.j-chapter{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;padding:75px max(6vw,24px);min-width:0}.j-copy{max-width:450px;position:relative;z-index:3}.j-kicker{display:flex;align-items:center;gap:18px;color:var(--blue-ink);font-size:10px;font-weight:650;letter-spacing:.16em;margin-bottom:25px}.j-kicker span{font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:.08em}.j-copy h2{font-size:clamp(28px,3.4vw,52px);line-height:1.05;letter-spacing:-.055em;font-weight:650}.j-description{font-size:clamp(14px,1.13vw,18px);line-height:1.85;max-width:350px;margin-top:25px}.j-caption{display:inline-flex;align-items:center;gap:12px;margin-top:25px;padding-top:17px;border-top:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink)}.j-caption:before{content:'↗';color:var(--orange-ink);font-size:19px}.j-scroll-hint{font-size:10px;color:var(--muted);margin-top:30px;letter-spacing:.04em}.j-word{display:none}.j-fallback img{max-height:70svh;width:auto;margin:auto;object-fit:contain;border:7px solid #273951;border-radius:25px}.j-download{display:flex;justify-content:space-between;align-items:center;gap:65px;padding-block:85px}.j-download h2{margin-block:20px;font-size:clamp(32px,4vw,58px)}.j-store-links{display:flex;flex-wrap:wrap;gap:12px;max-width:480px}.j-store-links a{display:flex;align-items:center;gap:14px;padding:14px 20px;border-radius:15px;border:1px solid var(--line);background:var(--surface);color:var(--ink);min-height:70px}.j-store-links a:hover{border-color:var(--blue-ink)}.j-store-links strong,.j-store-links small{display:block;line-height:1.4}.j-store-links small{font-size:10px;color:var(--muted)}.j-store-links strong{font-size:17px}.j-store-links>a>span:last-child{color:var(--blue-ink)}.j-store-links>p{font-size:11px;line-height:1.7;margin-top:10px}
.tty-journey.is-ready .j-visual{display:block;position:sticky;top:var(--j-header);height:var(--j-stage);overflow:hidden;z-index:1;pointer-events:none}
.tty-journey.is-ready .j-chapters{position:relative;margin-top:calc(-1 * var(--j-stage));pointer-events:none}
.tty-journey.is-ready .j-chapter{display:flex;align-items:center;min-height:145svh;padding-block:0;gap:0}
.tty-journey.is-ready .j-chapter:first-child,.tty-journey.is-ready .j-chapter:last-child{min-height:var(--j-stage)}
.tty-journey.is-ready .j-chapter-right{justify-content:flex-end}
.tty-journey.is-ready .j-copy{width:calc((100% - var(--j-phone-h)*.482)/2 - 32px);max-width:380px;will-change:opacity,transform}
.tty-journey.is-ready .j-fallback{display:none}
.tty-journey.is-ready .j-word{display:block;position:absolute;top:20%;left:50%;transform:translateX(-50%);z-index:0;color:var(--ink);opacity:.055;font-size:clamp(65px,15.5vw,250px);font-weight:750;letter-spacing:-.075em;line-height:1;white-space:nowrap;max-width:100%;overflow:hidden;pointer-events:none}
.j-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 35%,#155dfd13,transparent 55%),radial-gradient(ellipse at 20% 80%,#ff63160b,transparent 50%)}
.j-outline{position:absolute;inset:14% 23%;border:1px solid var(--line);border-radius:50%;opacity:.35;transform:rotate(-18deg);pointer-events:none}
.tty-journey .j-carrier{top:50%;height:var(--j-phone-h);width:calc(var(--j-phone-h)*.482)}
.tty-journey .j-scene{perspective:1700px;perspective-origin:50% 48%}
.j-phone{transform:rotateX(-3deg) rotateY(0deg)}
.j-visual-note{position:absolute;left:30px;right:30px;bottom:19px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:9px;font-weight:550;letter-spacing:.16em;z-index:8}
.j-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--line);z-index:8}.j-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#155dfd,#ff6316);transform:scaleX(0);transform-origin:left}
.tty-journey .j-phone-shadow{top:auto;bottom:5%;width:230px;opacity:.65}
@media(min-width:761px) and (max-width:1100px){.tty-journey{--j-phone-h:min(70svh,65vw)}.j-copy h2{font-size:clamp(26px,3.2vw,36px)}.j-chapter{padding-inline:5vw}.tty-journey.is-ready .j-copy{width:calc((100% - var(--j-phone-h)*.482)/2 - 24px)}.j-description{font-size:14px}}
@media(max-width:760px){.tty-journey{--j-phone-h:45svh;margin-top:35px}.j-chapter{grid-template-columns:1fr;padding:45px 24px;gap:35px}.j-copy{max-width:none}.j-copy h2{font-size:clamp(27px,7.5vw,39px);line-height:1.08}.j-description{font-size:12px;line-height:1.65;max-width:340px;margin-top:14px}.j-kicker{font-size:8px;margin-bottom:12px;gap:12px}.j-kicker span{font-size:8px}.j-caption{display:none}.j-scroll-hint{margin-top:15px;font-size:9px}.tty-journey.is-ready .j-copy{width:100%;max-width:none;padding-top:48svh}.tty-journey.is-ready .j-chapter{min-height:135svh;align-items:center;padding-inline:24px}.tty-journey.is-ready .j-chapter:first-child,.tty-journey.is-ready .j-chapter:last-child{min-height:var(--j-stage)}.tty-journey .j-carrier{top:33%}.tty-journey.is-ready .j-word{top:18%;font-size:20vw;opacity:.055}.j-visual-note{left:24px;right:24px;bottom:12px;font-size:7px}.j-outline{inset:10% 10% 40%}.tty-journey .j-phone-shadow{bottom:auto;top:57%;width:150px;height:12px}.j-download{flex-direction:column;align-items:flex-start;gap:30px;padding-block:55px}.j-store-links{width:100%}.j-store-links a{flex:1;justify-content:center;white-space:nowrap;padding:12px}.j-store-links strong{font-size:15px}.j-store-links>p{font-size:10px}}
@media(max-width:760px) and (max-height:700px){.tty-journey{--j-phone-h:39svh}.tty-journey.is-ready .j-copy{padding-top:42svh}.j-copy h2{font-size:26px}.j-description{font-size:11px;margin-top:9px}.j-scroll-hint{margin-top:9px}.tty-journey .j-carrier{top:30%}}
@media(max-height:520px) and (orientation:landscape){.tty-journey{--j-phone-h:min(65svh,60vw)}.tty-journey.is-ready .j-copy{width:calc((100% - var(--j-phone-h)*.482)/2 - 24px);padding-top:0}.j-copy h2{font-size:26px}.j-description{font-size:11px;line-height:1.5}.j-caption,.j-scroll-hint{display:none}.tty-journey .j-carrier{top:50%}.j-kicker{margin-bottom:10px}.tty-journey .j-phone-shadow{top:85%}.j-visual-note{font-size:7px}}
@media(prefers-reduced-motion:reduce){.j-scroll-hint{display:none}}


/* v10.6 — actual spatial choreography, NOT a rotating full-screen panel.
   The centre is the WebGL phone with true front, side and back materials.
   Text and background words are independent 3D objects orbiting behind it. */
.tty-journey.is-ready .j-orbit-space {
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
  perspective:1350px;
  perspective-origin:50% 48%;
  transform-style:preserve-3d;
}
.tty-journey.is-ready .j-orbit-copy,
.tty-journey.is-ready .j-orbit-word {
  position:absolute;
  left:50%;
  margin:0;
  will-change:transform,opacity;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform-style:preserve-3d;
  pointer-events:none;
}
.tty-journey.is-ready .j-orbit-copy {
  top:50%;
  z-index:2;
  max-width:none;
  padding:0;
  transform-origin:50% 50%;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.04));
}
.tty-journey.is-ready .j-orbit-word {
  display:block;
  top:20%;
  z-index:1;
  overflow:visible;
  width:max-content;
  max-width:none;
  color:var(--ink);
  font-weight:750;
  line-height:1;
  font-size:clamp(65px,15.5vw,250px);
  letter-spacing:-.075em;
  white-space:nowrap;
  transform-origin:50% 50%;
  text-shadow:1px 0 rgba(21,93,253,.13),2px 1px rgba(21,93,253,.05);
}
/* Keep semantic/source chapters, remove ONLY their duplicated visible text. */
.tty-journey.is-ready.has-orbit-story .j-chapters .j-copy,
.tty-journey.is-ready.has-orbit-story .j-chapters .j-word {
  opacity:0 !important;
}
@media (max-width:760px) {
  .tty-journey.is-ready .j-orbit-copy{top:50%;max-width:none;}
  .tty-journey.is-ready .j-orbit-copy h2{font-size:clamp(27px,7.5vw,39px);}
  .tty-journey.is-ready .j-orbit-copy .j-scroll-hint{display:block;}
  .tty-journey.is-ready .j-orbit-word{top:17%;font-size:20vw;}
}
@media (prefers-reduced-motion:reduce) {
  .tty-journey.is-ready .j-orbit-space{display:none !important;}
}

/* v10.9 — the document and 3D scene share the same scroll timeline.
   Override global smooth scrolling only during cinematic page transitions. */
html.tty-orbit-animating { scroll-behavior:auto !important; }
.tty-journey.j-turning .j-visual { overscroll-behavior:contain; }
@media(prefers-reduced-motion:reduce) {
  html.tty-orbit-animating { scroll-behavior:auto !important; }
}


/* v10.10 — hold the hero in the same visual frame while it fades to the tour.
   Its section keeps its own min-height, so the chapter stop positions do not change. */
.editorial-page .e-hero.j-intro-handoff .e-stage {
  position:fixed;
  top:var(--j-intro-fixed-top, 0px);
  left:0;
  right:0;
  height:100svh;
  width:100%;
  min-height:0;
  pointer-events:none;
}
@media (prefers-reduced-motion:reduce) {
  .editorial-page .e-hero.j-intro-handoff .e-stage {
    position:sticky;
  }
}


/* v10.25 — Three original, accessible role buttons using approved route artwork.
   No left icons, dividers, or phantom gutters. Only this LOGIN component changes. */
.j-role-intro{margin:19px 0 13px;color:var(--muted);font-size:10px;letter-spacing:.20em;font-weight:800}
.j-role-picker-login{display:grid;grid-template-columns:minmax(0,1fr);gap:13px;width:100%;max-width:355px;margin:0 0 17px}
.j-role-btn{
  --role-glow:21,93,253;
  --role-deep:#0a1b3c;
  --role-border:linear-gradient(110deg,#36a7ff,#155DFD 48%,#73acff);
  --role-art:url('/assets/role-routes/conductor-dark.webp');
  position:relative;isolation:isolate;display:flex;align-items:center;
  min-width:0;width:100%;height:65px;box-sizing:border-box;
  padding:0 13px 0 20px;overflow:hidden;
  border:2px solid transparent;border-radius:999px;
  background:linear-gradient(112deg,#071a3a 0%,#08152e 53%,#06142c 100%) padding-box,var(--role-border) border-box;
  box-shadow:0 0 15px rgba(var(--role-glow),.19),0 10px 23px rgba(2,8,23,.22),inset 0 1px rgba(255,255,255,.05);
  color:#fff;text-decoration:none;cursor:pointer;pointer-events:auto;
  -webkit-tap-highlight-color:transparent;
  transition:transform .28s cubic-bezier(.22,.8,.2,1),box-shadow .28s ease,filter .28s ease;
}
.j-role-repuestera{
  --role-glow:255,99,22;
  --role-border:linear-gradient(110deg,#ffd19e,#FF6316 38%,#ffb447 85%,#ff6316);
  --role-art:url('/assets/role-routes/repuestera-dark.webp');
}
.j-role-taller{
  --role-glow:21,93,253;
  --role-border:linear-gradient(110deg,#57baff,#155DFD 55%,#2d77ff);
  --role-art:url('/assets/role-routes/taller-dark.webp');
}
.j-role-btn::before{
  content:"";position:absolute;inset:0;border-radius:inherit;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.105),transparent 34%,transparent 65%,rgba(255,255,255,.025));
}
.j-role-btn::after{
  content:"";position:absolute;z-index:1;pointer-events:none;
  inset:0;border-radius:inherit;opacity:0;
  background:radial-gradient(160px circle at var(--role-mx,78%) var(--role-my,50%),rgba(255,255,255,.20),transparent 76%);
  transition:opacity .24s ease;
}
.j-role-road{
  position:absolute;right:12px;top:0;bottom:0;width:62%;z-index:0;pointer-events:none;
  background:var(--role-art) center / 100% 100% no-repeat;
  mix-blend-mode:screen;opacity:.94;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 31%,#000 77%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 31%,#000 77%,transparent 100%);
  transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .3s ease;
}
.j-role-copy{
  z-index:3;position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;
  gap:4px;text-align:left;flex:1;
  padding:0;margin:0;
}
.j-role-name{
  font-family:var(--display,'Space Grotesk',sans-serif);font-weight:750;
  color:#fff;letter-spacing:.052em;text-transform:uppercase;
  font-size:clamp(13px,1.05vw,16px);line-height:1.12;
}
.j-role-subtitle{
  color:#c9d5f0;font-size:clamp(10px,.8vw,12px);font-weight:500;line-height:1.14;
}
.j-role-chevron{
  z-index:4;display:grid;place-items:center;flex:0 0 29px;
  width:29px;height:29px;color:#fff;border-radius:50%;
  filter:drop-shadow(0 1px 4px rgba(var(--role-glow),.5));
  transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .3s ease;
}
.j-role-chevron svg{display:block;width:20px;height:20px}
.j-role-btn:hover,.j-role-btn:focus-visible{
  transform:translateY(-3px) scale(1.012);
  box-shadow:0 0 21px rgba(var(--role-glow),.37),0 0 44px rgba(var(--role-glow),.16),0 12px 30px rgba(0,0,0,.24);
  filter:saturate(1.12);
}
.j-role-btn:hover::after,.j-role-btn:focus-visible::after{opacity:1}
.j-role-btn:hover .j-role-road,.j-role-btn:focus-visible .j-role-road{transform:translateX(6px) scale(1.06);opacity:1}
.j-role-btn:hover .j-role-chevron,.j-role-btn:focus-visible .j-role-chevron{transform:translateX(4px)}
.j-role-btn:focus-visible{outline:2px solid #FF6316;outline-offset:4px}
.j-role-btn:active{transform:scale(.99)}
/* Pearl/white light buttons preserve their approved illustrated route details. */
:root:not([data-theme='dark']) .j-role-btn{
  color:#0b1732;
  background:linear-gradient(120deg,#fff 0%,#f8fbff 56%,#fff 100%) padding-box,var(--role-border) border-box;
  box-shadow:0 8px 20px rgba(var(--role-glow),.12),0 8px 25px rgba(26,52,91,.055),inset 0 1px rgba(255,255,255,.95);
}
:root:not([data-theme='dark']) .j-role-btn::before{background:linear-gradient(180deg,rgba(255,255,255,.9),transparent 45%)}
:root:not([data-theme='dark']) .j-role-btn::after{background:radial-gradient(130px circle at var(--role-mx,78%) var(--role-my,50%),rgba(var(--role-glow),.13),transparent 75%)}
:root:not([data-theme='dark']) .j-role-conductor{--role-art:url('/assets/role-routes/conductor-light.webp')}
:root:not([data-theme='dark']) .j-role-repuestera{--role-art:url('/assets/role-routes/repuestera-light.webp')}
:root:not([data-theme='dark']) .j-role-taller{--role-art:url('/assets/role-routes/taller-light.webp')}
:root:not([data-theme='dark']) .j-role-road{mix-blend-mode:multiply;opacity:.87}
:root:not([data-theme='dark']) .j-role-name{color:#091632}
:root:not([data-theme='dark']) .j-role-subtitle{color:#52637e}
:root:not([data-theme='dark']) .j-role-chevron{
  background:#155DFD;color:#fff;filter:none;
}
:root:not([data-theme='dark']) .j-role-repuestera .j-role-chevron{background:#FF6316}
:root:not([data-theme='dark']) .j-role-btn:hover,:root:not([data-theme='dark']) .j-role-btn:focus-visible{
  box-shadow:0 0 26px rgba(var(--role-glow),.25),0 12px 25px rgba(15,36,66,.10);
}
/* The visual, duplicated chapter copy owns pointer events; semantic copy stays in flow. */
.tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login),
.tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login) .j-role-picker-login,
.tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login) .j-role-btn{pointer-events:auto}
@media(max-width:760px){
  .j-role-intro{margin:13px 0 9px;font-size:9px}
  .j-role-picker-login{max-width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 8px}
  .j-role-btn{height:43px;padding:0 5px 0 10px;border-width:1.5px}
  .j-role-btn:last-child{grid-column:1/-1}
  .j-role-name{font-size:clamp(10px,2.6vw,12px);letter-spacing:.02em}
  .j-role-subtitle{font-size:clamp(8px,2.2vw,9px)}
  .j-role-copy{gap:2px}
  .j-role-chevron{flex:0 0 22px;width:22px;height:22px}
  .j-role-chevron svg{width:15px;height:15px}
  .j-role-road{right:0;width:59%;opacity:.78}
  .tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login) .j-caption{display:none}
  .tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login){top:45.5%}
}
@media(max-width:760px) and (max-height:740px){
  .tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login){top:42%}
  .tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login) .j-kicker{margin-bottom:7px}
  .tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login) h2{font-size:clamp(24px,6.6vw,28px);line-height:1.04}
  .tty-journey.is-ready .j-orbit-copy:has(.j-role-picker-login) .j-description{font-size:11px;line-height:1.4;margin-top:8px}
  .j-role-intro{margin:8px 0 6px}
  .j-role-btn{height:40px}
}
@media(prefers-reduced-motion:reduce){
  .j-role-btn,.j-role-road,.j-role-chevron{transition:none!important}
  .j-role-btn:hover,.j-role-btn:focus-visible{transform:none}
}


/* v10.26 — reduced route detail and return of the Uiverse-like animated label swap.
   Only the three buttons inside the login chapter are affected. */
.j-role-picker-login .j-role-btn {
  border-width:1.5px;
  background:linear-gradient(110deg,#0b1a34 0%,#07152d 100%) padding-box,var(--role-border) border-box;
  box-shadow:0 2px 10px rgba(var(--role-glow),.10),0 7px 19px rgba(2,8,23,.15);
  filter:none;
}
.j-role-picker-login .j-role-road {
  right:8px;width:56%;opacity:.32;
  mask-image:linear-gradient(90deg,transparent 0%,#000 44%,#000 82%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 44%,#000 82%,transparent 100%);
  transform:none;
}
.j-role-picker-login .j-role-btn::before {
  background:linear-gradient(180deg,rgba(255,255,255,.045),transparent 34%);
}
.j-role-picker-login .j-role-btn::after {
  background:radial-gradient(130px circle at var(--role-mx,78%) var(--role-my,50%),rgba(var(--role-glow),.10),transparent 76%);
}
.j-role-picker-login .j-role-copy {
  position:relative;display:block;flex:1;min-width:0;height:100%;
  margin:0;padding:0;overflow:hidden;
}
.j-role-picker-login .j-role-name,
.j-role-picker-login .j-role-hover-label {
  display:block;position:absolute;top:50%;left:0;right:0;
  font-family:var(--display,'Space Grotesk',sans-serif);
  font-weight:750;letter-spacing:.065em;text-transform:uppercase;
  line-height:1.12;white-space:nowrap;
  text-overflow:clip;pointer-events:none;
  transition:transform .39s cubic-bezier(.21,.8,.22,1),opacity .29s ease;
  will-change:transform,opacity;
}
.j-role-picker-login .j-role-name {
  font-size:clamp(13px,1.05vw,16px);
  color:#f6f9ff;
  transform:translate3d(0,-50%,0);opacity:1;
}
.j-role-picker-login .j-role-hover-label {
  font-size:clamp(11px,.91vw,13.5px);
  color:#f6f9ff;
  transform:translate3d(0,65%,0);opacity:0;
}
.j-role-picker-login .j-role-btn:hover,
.j-role-picker-login .j-role-btn:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 5px 16px rgba(var(--role-glow),.22),0 11px 25px rgba(2,8,23,.18);
  filter:none;
}
.j-role-picker-login .j-role-btn:hover .j-role-name,
.j-role-picker-login .j-role-btn:focus-visible .j-role-name {
  transform:translate3d(0,-155%,0);opacity:0;
}
.j-role-picker-login .j-role-btn:hover .j-role-hover-label,
.j-role-picker-login .j-role-btn:focus-visible .j-role-hover-label {
  transform:translate3d(0,-50%,0);opacity:1;
}
.j-role-picker-login .j-role-btn:hover .j-role-road,
.j-role-picker-login .j-role-btn:focus-visible .j-role-road {
  transform:translateX(3px);opacity:.46;
}
.j-role-picker-login .j-role-btn:hover .j-role-chevron,
.j-role-picker-login .j-role-btn:focus-visible .j-role-chevron {transform:translateX(2px)}
:root:not([data-theme='dark']) .j-role-picker-login .j-role-btn {
  background:linear-gradient(120deg,#fff 0%,#f9fbff 100%) padding-box,var(--role-border) border-box;
  box-shadow:0 2px 10px rgba(var(--role-glow),.08),0 7px 19px rgba(15,36,66,.065);
}
:root:not([data-theme='dark']) .j-role-picker-login .j-role-road {mix-blend-mode:multiply;opacity:.27}
:root:not([data-theme='dark']) .j-role-picker-login .j-role-name,
:root:not([data-theme='dark']) .j-role-picker-login .j-role-hover-label {color:#142442}
:root:not([data-theme='dark']) .j-role-picker-login .j-role-btn:hover,
:root:not([data-theme='dark']) .j-role-picker-login .j-role-btn:focus-visible {
  box-shadow:0 4px 17px rgba(var(--role-glow),.18),0 9px 21px rgba(15,36,66,.09);
}
:root:not([data-theme='dark']) .j-role-picker-login .j-role-btn:hover .j-role-road,
:root:not([data-theme='dark']) .j-role-picker-login .j-role-btn:focus-visible .j-role-road {opacity:.37}
@media(max-width:760px) {
  .j-role-picker-login .j-role-name{font-size:clamp(10px,2.55vw,12px);letter-spacing:.02em}
  .j-role-picker-login .j-role-hover-label{font-size:clamp(8px,2.15vw,10px);letter-spacing:0}
  .j-role-picker-login .j-role-road{width:50%;opacity:.22}
}
/* On touch screens the primary labels remain readable; no hover is required to use a link. */
@media(hover:none){
  .j-role-picker-login .j-role-btn:hover .j-role-name{transform:translate3d(0,-50%,0);opacity:1}
  .j-role-picker-login .j-role-btn:hover .j-role-hover-label{transform:translate3d(0,65%,0);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .j-role-picker-login .j-role-name,.j-role-picker-login .j-role-hover-label {transition:none!important;will-change:auto}
  .j-role-picker-login .j-role-btn:hover,.j-role-picker-login .j-role-btn:focus-visible{transform:none}
}


/* v10.27 · Repuestera shares the original scroll choreography & 3D phone. */
.tty-journey.j-repuestera-mode .j-orbit-copy:not(:has(.j-role-picker-login)) h2{
  font-size:clamp(27px,2.9vw,44px);line-height:1.08;letter-spacing:-.048em;
}
.tty-journey.j-repuestera-mode .j-orbit-copy:not(:has(.j-role-picker-login)) .j-description{
  font-size:clamp(13px,1.02vw,17px);line-height:1.7;
}
.tty-journey .j-branch-light{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;
  background:
    radial-gradient(ellipse 32% 56% at 50% 48%,rgba(21,93,253,.12),transparent 80%),
    linear-gradient(113deg,transparent 20%,rgba(21,93,253,.04) 40%,rgba(255,99,22,.11) 51%,rgba(21,93,253,.04) 60%,transparent 82%);
  transform:translateX(-50%);will-change:transform,opacity;
}
.tty-journey.j-role-switching .j-branch-light{
  animation:tty-branch-light 1.03s cubic-bezier(.27,.7,.29,1) both;
}
@keyframes tty-branch-light{
  0%{opacity:0;transform:translateX(-48%)}
  28%{opacity:.78}
  65%{opacity:.5}
  100%{opacity:0;transform:translateX(52%)}
}
.tty-journey.j-role-loading .j-role-repuestera{cursor:progress;}
@media(max-width:1180px) and (min-width:761px){
  .tty-journey.j-repuestera-mode .j-orbit-copy:not(:has(.j-role-picker-login)) h2{font-size:clamp(23px,2.6vw,34px)}
  .tty-journey.j-repuestera-mode .j-orbit-copy:not(:has(.j-role-picker-login)) .j-description{font-size:13px;line-height:1.6}
}
@media(max-width:760px){
  .tty-journey.j-repuestera-mode .j-orbit-copy:not(:has(.j-role-picker-login)) h2{font-size:clamp(24px,6.9vw,34px)}
  .tty-journey.j-repuestera-mode .j-orbit-copy:not(:has(.j-role-picker-login)) .j-description{font-size:12px;line-height:1.48}
}
@media(prefers-reduced-motion:reduce){
  .tty-journey .j-branch-light,.tty-journey.j-role-switching .j-branch-light{animation:none;opacity:0}
}

/* v10.30 Taller: sixth scene only in this mode; preserve conductor/repuestera endings. */
.tty-journey.is-ready .j-chapter[hidden],.tty-journey .j-chapter[hidden]{display:none!important}
.tty-journey.is-ready:not(.j-taller-mode) .j-chapter:nth-last-child(2){min-height:var(--j-stage)}
.tty-journey.j-taller-mode .j-orbit-copy:not(:has(.j-role-picker-login)) h2{font-size:clamp(27px,2.9vw,44px);line-height:1.08;letter-spacing:-.048em}
.tty-journey.j-taller-mode .j-orbit-copy:not(:has(.j-role-picker-login)) .j-description{font-size:clamp(13px,1.02vw,17px);line-height:1.7}
.tty-journey.j-role-loading .j-role-taller{cursor:progress}
@media(max-width:1180px) and (min-width:761px){
  .tty-journey.j-taller-mode .j-orbit-copy:not(:has(.j-role-picker-login)) h2{font-size:clamp(23px,2.6vw,34px)}
  .tty-journey.j-taller-mode .j-orbit-copy:not(:has(.j-role-picker-login)) .j-description{font-size:13px;line-height:1.6}
}
@media(max-width:760px){
  .tty-journey.j-taller-mode .j-orbit-copy:not(:has(.j-role-picker-login)) h2{font-size:clamp(24px,6.9vw,34px)}
  .tty-journey.j-taller-mode .j-orbit-copy:not(:has(.j-role-picker-login)) .j-description{font-size:12px;line-height:1.48}
}

/* v10.32: the profile walkthrough is opt-in. LOGIN is the only
   chapter in normal flow until a visitor explicitly chooses a role. */
.tty-journey.j-no-profile .j-chapter:not(#app-login) { display:none !important; }
.tty-journey.j-no-profile .j-orbit-copy:not(:first-child) { pointer-events:none; }
.tty-journey .j-role-intro { max-width:100%; line-height:1.5; }
