:root{
  --cream:#f4efe5;--ink:#0b1e1a;--copy:#3e4b47;--gold:#f1b51a;--gold2:#ffd15a;
  --red:#ef2032;--red2:#bd0b1a;--route:#ffc02d;--deep:#071310;
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#071310}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.journey-shell{width:100vw;height:100svh;display:grid;grid-template-columns:minmax(0,69%) minmax(410px,31%);overflow:hidden;background:#071310;color:#fff}.journey-visual{position:relative;min-width:0;height:100%;overflow:hidden;background:#071310}.scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.10),rgba(0,0,0,.06) 58%,rgba(0,0,0,.18)),radial-gradient(circle at 53% 52%,transparent 20%,rgba(0,0,0,.18) 72%,rgba(0,0,0,.34) 100%);pointer-events:none}.route-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.route-halo{fill:none;stroke:rgba(255,137,22,.20);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;filter:blur(7px) drop-shadow(0 0 20px rgba(255,137,22,.30))}.route-base{fill:none;stroke:rgba(255,173,29,.34);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 10px rgba(255,173,21,.28))}.route-progress{fill:none;stroke:#ffc229;stroke-width:6.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 10px rgba(255,188,31,.94)) drop-shadow(0 0 19px rgba(255,156,26,.48));transition:stroke-dasharray .8s cubic-bezier(.2,.8,.2,1)}.route-speed{fill:none;stroke:rgba(255,115,29,.70);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:34 94;animation:routeSpeed 1.8s linear infinite;filter:drop-shadow(0 0 8px rgba(255,98,28,.75))}.route-flow{fill:none;stroke:#fff5bb;stroke-width:3.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:17 25;animation:routeFlow 1s linear infinite;filter:drop-shadow(0 0 9px rgba(255,214,86,.99))}.route-states{position:absolute;inset:0;z-index:4}.route-stop{position:absolute;border:0;background:transparent;color:#fff;padding:0;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;isolation:isolate}.route-stop-pedido{left:8.6%;top:27.4%}.route-stop-confirmado{left:25.0%;top:37.3%}.route-stop-horneado{left:43.0%;top:46.4%}.route-stop-ruta{left:67.2%;top:59.1%}.route-stop-entrega{left:82.2%;top:68.0%}.node-backdrop{display:none}.node-wrap{position:relative;width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto}.node-marker{position:relative;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,rgba(255,218,102,.14),rgba(7,18,15,.98) 64%);border:2px solid rgba(255,202,69,.96);box-shadow:0 0 0 4px rgba(255,199,61,.09),0 0 19px rgba(255,186,34,.58),inset 0 0 13px rgba(255,218,104,.08);transition:.28s ease}.node-icon{display:grid;place-items:center;color:#ffd452;position:relative;z-index:2}.node-icon svg{width:23px;height:23px}.node-orbit{position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(from 25deg,transparent 0 84%,rgba(255,223,126,.98) 86% 91%,transparent 93% 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);opacity:.82;filter:drop-shadow(0 0 5px rgba(255,204,75,.44));animation:orbitSpin 1.9s linear infinite;transition:.28s ease}.route-stop:hover .node-orbit,.route-stop:focus-visible .node-orbit{opacity:1;filter:drop-shadow(0 0 8px rgba(255,208,76,.82))}.route-stop:hover .node-marker,.route-stop:focus-visible .node-marker{transform:scale(1.05);box-shadow:0 0 0 4px rgba(255,202,69,.08),0 0 23px rgba(255,190,40,.58)}.route-stop.is-active .node-marker{width:54px;height:54px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:linear-gradient(145deg,#ff3345,#ca0c1a);border-color:#fff6ef;box-shadow:0 0 0 7px rgba(255,49,67,.13),0 0 34px rgba(255,50,63,.92)}.route-stop.is-active .node-marker::after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.18);border-radius:50%}.route-stop.is-active .node-icon{transform:rotate(45deg);color:#fff}.route-stop.is-active .node-orbit{inset:-10px;opacity:1;background:conic-gradient(from 20deg,transparent 0 83%,rgba(255,136,136,.98) 85% 91%,transparent 93% 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);filter:drop-shadow(0 0 11px rgba(255,59,66,.92));animation-duration:1.2s}.node-copy{display:block;transform:translateY(-4px);white-space:nowrap;text-shadow:0 3px 14px rgba(0,0,0,.9)}.node-copy small{display:block;color:#ffc72f;font-weight:800;font-size:12px;letter-spacing:.1em;line-height:1}.node-copy strong{display:block;margin-top:4px;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(22px,1.65vw,32px);font-weight:700;line-height:.92}.scene-controls{position:absolute;left:55%;bottom:5.6%;z-index:5;display:flex;gap:12px}.scene-control{min-width:178px;height:48px;border:1px solid rgba(255,236,199,.56);border-radius:13px;background:rgba(6,14,13,.57);color:#f8f1e6;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 28px rgba(0,0,0,.20);transition:.22s ease}.scene-control:hover{background:rgba(20,27,25,.72);border-color:rgba(255,225,166,.86);transform:translateY(-1px)}.scene-control.is-running{border-color:rgba(255,195,62,.85);box-shadow:0 0 0 3px rgba(255,189,43,.08),0 10px 28px rgba(0,0,0,.22)}.control-icon{display:grid;place-items:center}.control-icon svg{width:24px;height:24px}.control-label{font-family:"Cormorant Garamond",Georgia,serif;font-size:19px;font-weight:600;white-space:nowrap}
.journey-panel{position:relative;height:100%;min-width:0;color:var(--ink);z-index:8;overflow:hidden;margin-left:-54px}.panel-shape{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(-13px 0 26px rgba(0,0,0,.26))}.panel-inner{position:relative;height:100%;z-index:2;padding:clamp(28px,4.1vh,46px) clamp(26px,2.4vw,42px) clamp(25px,3.4vh,36px) clamp(88px,6vw,114px);display:flex;flex-direction:column}.panel-inner::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background-image:radial-gradient(rgba(89,61,30,.16) .7px,transparent .8px);background-size:7px 7px;pointer-events:none}.state-stack{position:relative;flex:1;min-height:0}.state-panel{position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;transform:translateY(14px);filter:blur(1.5px);pointer-events:none;transition:opacity .46s ease,transform .52s cubic-bezier(.2,.8,.2,1),filter .46s ease}.state-panel.is-active{opacity:1;transform:translateY(0);filter:blur(0);pointer-events:auto}.state-kicker{font-size:11px;font-weight:800;letter-spacing:.22em;color:#9c6721;margin-bottom:11px}.state-panel h1{margin:0;color:#071b17;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(43px,3.6vw,67px);line-height:.86;letter-spacing:-.035em;font-weight:700;max-width:520px}.title-brush{display:block;width:min(240px,58%);height:8px;margin:12px 0 16px;background:linear-gradient(90deg,#e8ae13 0 32%,transparent 32% 35%,#e8ae13 35% 100%);clip-path:polygon(0 32%,100% 0,96% 76%,8% 100%)}.state-intro{margin:0 0 15px;color:#3d4b47;font-family:Georgia,"Times New Roman",serif;font-size:clamp(14.5px,1.05vw,17px);line-height:1.42}.order-steps{margin-top:2px;border-top:1px solid rgba(119,91,54,.20)}.order-step{display:grid;grid-template-columns:42px 37px 1fr;gap:12px;align-items:start;padding:11px 0;border-bottom:1px solid rgba(119,91,54,.20)}.step-number{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f1b51a;color:#15100a;font-size:18px;font-weight:800}.step-icon{display:grid;place-items:center;color:#0b1b18;padding-top:4px}.step-icon svg{width:27px;height:27px}.order-step h2{margin:0 0 2px;color:#111f1c;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(21px,1.65vw,28px);line-height:.92;font-weight:700}.order-step p{margin:0;color:#40504b;font-family:Georgia,"Times New Roman",serif;font-size:13.2px;line-height:1.28}.order-step a{color:#b71620;font-weight:700;text-underline-offset:3px}.story-copy{margin-top:15px;padding:22px 0;border-top:1px solid rgba(119,91,54,.22);border-bottom:1px solid rgba(119,91,54,.22)}.story-copy p{margin:0;color:#2f3d39;font-family:Georgia,"Times New Roman",serif;font-size:clamp(17px,1.3vw,21px);line-height:1.58}.panel-actions{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;margin-top:18px}.cta{min-height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:11px;text-decoration:none;font-weight:800;transition:.2s ease}.cta-primary{background:linear-gradient(135deg,#ef2230,#d10e1a);color:#fff;padding:0 16px;box-shadow:0 13px 28px rgba(204,18,29,.19)}.cta-primary:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(204,18,29,.27)}.cta-secondary{border:1px solid #7d5a3b;color:#101a17;background:rgba(255,255,255,.36)}.cta-secondary:hover{background:#fff}.cta-icon{width:24px;height:24px}.cta-arrow{width:18px;height:18px;margin-left:auto}
@keyframes routeFlow{to{stroke-dashoffset:-42}}@keyframes routeSpeed{to{stroke-dashoffset:-128}}@keyframes orbitSpin{to{transform:rotate(360deg)}}
@media(max-height:760px) and (min-width:901px){.panel-inner{padding-top:24px;padding-bottom:18px}.state-panel h1{font-size:clamp(38px,3.4vw,53px)}.title-brush{margin:8px 0 10px}.state-intro{font-size:13.7px;margin-bottom:8px}.order-step{padding:8px 0}.step-number{width:34px;height:34px;font-size:16px}.order-step{grid-template-columns:36px 32px 1fr;gap:9px}.step-icon svg{width:23px;height:23px}.order-step h2{font-size:22px}.order-step p{font-size:12px;line-height:1.22}.panel-actions{margin-top:12px}.cta{min-height:50px;font-size:14px}.scene-control{height:44px;min-width:160px}.control-label{font-size:17px}}
@media(max-width:1050px){.journey-shell{grid-template-columns:62% 38%}.route-stop-ruta{left:65%}.route-stop-entrega{left:78%}.node-copy strong{font-size:20px}.scene-controls{left:48%;transform:translateX(-12%)}.panel-inner{padding-left:72px;padding-right:24px}.state-panel h1{font-size:clamp(37px,5vw,54px)}}
@media(max-width:800px){html,body{overflow:auto;background:var(--cream)}.journey-shell{display:block;width:100%;height:auto;overflow:visible;background:var(--cream)}.journey-visual{height:68svh;min-height:560px}.journey-panel{height:auto;min-height:620px;margin-left:0;background:var(--cream)}.panel-shape{display:none}.panel-inner{padding:34px 22px 26px;height:auto;min-height:620px}.state-stack{min-height:490px}.state-panel{position:absolute}.scene-controls{left:50%;bottom:3.5%;transform:translateX(-50%);width:calc(100% - 26px);justify-content:center}.scene-control{min-width:0;flex:1;max-width:220px}.route-stop-pedido{left:5%;top:26%}.route-stop-confirmado{left:24%;top:37%}.route-stop-horneado{left:42%;top:47%}.route-stop-ruta{left:63%;top:60%}.route-stop-entrega{left:78%;top:69%}.node-copy strong{font-size:18px}.node-copy small{font-size:10px}.panel-actions{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.journey-visual{height:620px}.scene-image{object-position:41% center}.node-wrap{width:46px;height:46px}.node-marker{width:40px;height:40px}.route-stop.is-active .node-marker{width:46px;height:46px}.node-icon svg{width:18px;height:18px}.route-stop{gap:4px}.node-copy{transform:translateY(-2px)}.node-copy strong{font-size:15px}.route-stop-pedido{left:3%;top:24%}.route-stop-confirmado{left:21%;top:36%}.route-stop-horneado{left:40%;top:47%}.route-stop-ruta{left:61%;top:60%}.route-stop-entrega{left:76%;top:69%}.scene-control{padding:0 10px}.control-label{font-size:15px}.panel-inner{padding:28px 18px}.state-panel h1{font-size:44px}.order-step{grid-template-columns:36px 31px 1fr;gap:8px}.panel-actions{grid-template-columns:1fr}.state-stack{min-height:560px}}
@media(prefers-reduced-motion:reduce){.route-flow,.route-speed,.node-orbit{animation:none}.state-panel,.route-progress,.scene-control,.node-marker{transition:none}}

/* Patch 1: simplified orbit ring, stronger neon route, subdued background shade */

/* Patch 2: clean scene asset without baked-in route, more sinuous route path, reduced panel gutter */

/* Patch 3: restored cenital city-map scene, cleaner mask over rider, slightly more sinuous interactive route */

/* V4: ruta más sinuosa, halo de velocidad tipo carrera y máscara completa sobre motorista */

/* =========================================================
   V5 — ruta sinuosa, máscara ceñida, fullscreen superior,
        halo/frenada tipo carrera y preludio de horno
   ========================================================= */

/* Trazos dinámicos secundarios: pequeñas estelas de frenada/luz. */
.route-brake{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.route-brake-a{
  stroke:rgba(255,92,22,.82);
  stroke-width:2.3;
  stroke-dasharray:58 162;
  animation:brakeTrailA 2.45s linear infinite;
  filter:drop-shadow(0 0 7px rgba(255,73,20,.72));
}
.route-brake-b{
  stroke:rgba(255,198,63,.66);
  stroke-width:1.7;
  stroke-dasharray:26 118;
  stroke-dashoffset:-54;
  animation:brakeTrailB 1.7s linear infinite;
  filter:drop-shadow(0 0 6px rgba(255,171,39,.62));
}

/* Colocación afinada para que 03, 04 y 05 queden atravesados por el centro del recorrido. */
.route-stop-pedido{left:8.4%;top:27.2%}
.route-stop-confirmado{left:24.9%;top:37.3%}
.route-stop-horneado{left:43.0%;top:46.4%}
.route-stop-ruta{left:67.2%;top:59.1%}
.route-stop-entrega{left:82.1%;top:68.0%}

/* Hacer recorrido queda abajo; fullscreen se separa y sube al cielo/Cumbemayo. */
.scene-controls{
  left:56%;
  bottom:5.6%;
}
.fullscreen-control{
  position:absolute;
  z-index:6;
  top:3.7%;
  right:6.2%;
  min-width:180px;
  background:rgba(5,14,18,.36);
  border-color:rgba(255,238,203,.44);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.fullscreen-control:hover{
  background:rgba(7,18,21,.62);
  border-color:rgba(255,220,147,.84);
}

/* El contenido del estado Horneado espera mientras aparece brevemente el fuego. */
.state-content{
  position:relative;
  transition:opacity .42s ease, transform .52s cubic-bezier(.2,.8,.2,1), filter .42s ease;
}
.state-prelude{
  position:absolute;
  inset:0;
  z-index:8;
  display:grid;
  place-items:start center;
  padding-top:clamp(75px,12vh,125px);
  pointer-events:none;
  opacity:0;
  visibility:hidden;
}
.state-panel.is-prelude .state-content{
  opacity:0;
  transform:translateY(10px) scale(.992);
  filter:blur(3px);
}
.state-panel.is-prelude .state-prelude{
  visibility:visible;
  animation:preludeShow 1.75s ease both;
}

.state-prelude-fire::before{
  content:"";
  position:absolute;
  width:230px;
  height:150px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,149,21,.25),rgba(255,66,10,.10) 42%,transparent 72%);
  filter:blur(14px);
  animation:ovenPulse .7s ease-in-out infinite alternate;
}
.oven-mouth{
  position:relative;
  width:150px;
  height:108px;
  overflow:hidden;
  border:2px solid rgba(78,47,21,.72);
  border-bottom-width:5px;
  border-radius:75px 75px 18px 18px;
  background:
    radial-gradient(ellipse at 50% 100%,rgba(255,109,12,.42),transparent 58%),
    linear-gradient(180deg,#25150f 0%,#0d0a08 100%);
  box-shadow:
    inset 0 -20px 28px rgba(255,77,10,.22),
    0 16px 34px rgba(142,57,9,.16);
}
.oven-floor-glow{
  width:172px;
  height:12px;
  margin-top:-5px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,128,20,.78),rgba(255,82,10,.24) 48%,transparent 76%);
  filter:blur(4px);
}
.oven-flame{
  position:absolute;
  bottom:8px;
  width:42px;
  height:69px;
  border-radius:48% 52% 54% 46% / 68% 65% 35% 32%;
  transform-origin:50% 100%;
  background:radial-gradient(circle at 48% 72%,#fff5a8 0 13%,#ffc126 28%,#ff6b0b 57%,#dc1a08 79%,transparent 81%);
  filter:drop-shadow(0 0 10px rgba(255,112,14,.85));
  animation:flameFlicker .19s ease-in-out infinite alternate;
}
.flame-a{left:34px;transform:rotate(-8deg) scale(.88);animation-delay:-.08s}
.flame-b{left:58px;height:83px;width:48px;animation-duration:.23s}
.flame-c{left:85px;transform:rotate(8deg) scale(.78);animation-delay:-.13s}
.oven-ember{
  position:absolute;
  bottom:13px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#ffd24e;
  box-shadow:0 0 8px #ff8c1b;
  animation:emberRise 1s ease-out infinite;
}
.ember-a{left:45px;animation-delay:-.2s}
.ember-b{left:78px;animation-delay:-.6s}
.ember-c{left:104px;animation-delay:-.85s}

@keyframes brakeTrailA{to{stroke-dashoffset:-220}}
@keyframes brakeTrailB{to{stroke-dashoffset:-198}}
@keyframes preludeShow{
  0%{opacity:0;transform:translateY(8px) scale(.94)}
  18%{opacity:1;transform:translateY(0) scale(1)}
  72%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(-5px) scale(1.035)}
}
@keyframes ovenPulse{from{transform:scale(.92);opacity:.72}to{transform:scale(1.08);opacity:1}}
@keyframes flameFlicker{
  from{transform:translateY(1px) rotate(-2deg) scaleX(.94) scaleY(.98)}
  to{transform:translateY(-3px) rotate(3deg) scaleX(1.05) scaleY(1.08)}
}
@keyframes emberRise{
  0%{transform:translate(0,0) scale(.7);opacity:0}
  20%{opacity:1}
  100%{transform:translate(8px,-68px) scale(.15);opacity:0}
}

@media(max-width:1050px){
  .fullscreen-control{right:4%;top:3%;min-width:160px}
  .scene-controls{left:50%;transform:none}
}
@media(max-width:800px){
  .fullscreen-control{top:14px;right:14px;min-width:0;height:42px;padding:0 12px}
  .fullscreen-control .control-label{font-size:15px}
  .scene-controls{left:50%;transform:translateX(-50%);width:auto}
}
@media(max-width:560px){
  .fullscreen-control .control-label{display:none}
  .fullscreen-control{width:44px;padding:0}
  .state-prelude{padding-top:78px}
  .oven-mouth{width:126px;height:92px}
}
@media(prefers-reduced-motion:reduce){
  .route-brake,.oven-flame,.oven-ember,.state-prelude-fire::before{animation:none!important}
  .state-panel.is-prelude .state-prelude{display:none}
  .state-panel.is-prelude .state-content{opacity:1;transform:none;filter:none}
}


/* V6 patch: cleaner node cutouts, top-right aligned controls, tighter rider mask support, stronger fire prelude */
.route-stop-pedido{left:8.4%;top:27.2%}
.route-stop-confirmado{left:24.9%;top:37.2%}
.route-stop-horneado{left:43.0%;top:46.3%}
.route-stop-ruta{left:67.2%;top:59.0%}
.route-stop-entrega{left:82.1%;top:67.9%}

.scene-controls{
  left:auto;
  bottom:auto;
  top:3.7%;
  right:27.2%;
  z-index:7;
}
.fullscreen-control{
  top:3.7%;
  right:6.2%;
}

/* prelude del horneado: fuego realista, sin hornito caricaturesco */
.state-prelude{
  padding-top:clamp(68px,10.5vh,110px);
}
.state-prelude-fire::before{
  content:"";
  position:absolute;
  width:250px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,150,48,.22),rgba(255,79,14,.10) 42%,transparent 74%);
  filter:blur(18px);
  animation:firePulse .9s ease-in-out infinite alternate;
}
.fire-stage{
  position:relative;
  width:170px;
  height:148px;
}
.fire-aura{
  position:absolute;
  inset:18px 12px 12px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 70%, rgba(255,232,120,.34), rgba(255,127,22,.22) 35%, rgba(255,63,0,.12) 58%, transparent 74%);
  filter:blur(12px);
}
.fire-flame{
  position:absolute;
  bottom:14px;
  width:54px;
  height:92px;
  border-radius:48% 52% 42% 58% / 66% 66% 34% 34%;
  transform-origin:50% 100%;
  background:radial-gradient(circle at 50% 74%, #fff4b3 0 10%, #ffd048 24%, #ff8b16 52%, #ef3c07 78%, transparent 80%);
  filter:drop-shadow(0 0 12px rgba(255,116,22,.85));
  animation:fireFlicker .22s ease-in-out infinite alternate;
}
.fire-flame-back{left:58px;width:64px;height:110px;opacity:.72;filter:blur(.3px) drop-shadow(0 0 15px rgba(255,112,10,.82));animation-duration:.28s}
.fire-flame-left{left:28px;transform:rotate(-11deg) scale(.86);animation-delay:-.11s}
.fire-flame-center{left:60px;width:58px;height:104px;animation-duration:.18s}
.fire-flame-right{left:96px;transform:rotate(11deg) scale(.82);animation-delay:-.07s}
.fire-ember{
  position:absolute;
  bottom:26px;
  width:6px;height:6px;border-radius:50%;
  background:#ffd46a;
  box-shadow:0 0 10px rgba(255,132,24,.9);
  animation:fireEmber 1.1s ease-out infinite;
}
.fire-ember.ember-a{left:52px;animation-delay:-.18s}
.fire-ember.ember-b{left:84px;animation-delay:-.54s}
.fire-ember.ember-c{left:112px;animation-delay:-.82s}

@keyframes firePulse{from{transform:scale(.94);opacity:.72}to{transform:scale(1.08);opacity:1}}
@keyframes fireFlicker{from{transform:translateY(1px) rotate(-2deg) scaleX(.95) scaleY(.98)}to{transform:translateY(-4px) rotate(3deg) scaleX(1.05) scaleY(1.10)}}
@keyframes fireEmber{0%{transform:translate(0,0) scale(.8);opacity:0}18%{opacity:1}100%{transform:translate(10px,-84px) scale(.14);opacity:0}}

@media(max-width:1050px){
  .scene-controls{top:3%;right:24.5%}
  .fullscreen-control{right:4%;top:3%}
}
@media(max-width:800px){
  .scene-controls{left:50%;right:auto;top:auto;bottom:3.5%;transform:translateX(-50%);width:auto}
  .fullscreen-control{top:14px;right:14px}
}
@media(max-width:560px){
  .fire-stage{width:132px;height:118px}
  .fire-flame-back{left:46px;width:48px;height:86px}
  .fire-flame-left{left:20px;width:44px;height:76px}
  .fire-flame-center{left:49px;width:48px;height:84px}
  .fire-flame-right{left:77px;width:42px;height:72px}
}
@media(prefers-reduced-motion:reduce){
  .fire-flame,.fire-ember,.state-prelude-fire::before{animation:none!important}
}


/* V7 patch: route clipped beneath nodes, mask shifted right, bottom-right aligned tour control, richer preludes */
.scene-controls{left:auto;right:6.2%;bottom:5.6%;top:auto;z-index:7}
.fullscreen-control{top:3.7%;right:6.2%}
@media(max-width:1050px){.scene-controls{right:4%;bottom:5.2%;left:auto;transform:none}.fullscreen-control{right:4%;top:3%}}
@media(max-width:800px){.scene-controls{left:50%;right:auto;bottom:3.5%;top:auto;transform:translateX(-50%);width:calc(100% - 26px);justify-content:center}.fullscreen-control{top:14px;right:14px}}

.state-prelude{padding-top:clamp(64px,9.5vh,104px)}
.state-prelude-fire::before,.state-prelude-ride::before{content:"";position:absolute;width:270px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(255,154,48,.16),rgba(255,79,14,.08) 42%,transparent 74%);filter:blur(18px)}
.heat-stage{position:relative;width:180px;height:168px}
.heat-aura{position:absolute;left:18px;right:18px;bottom:10px;top:28px;border-radius:50%;background:radial-gradient(circle at 50% 72%, rgba(255,235,132,.28), rgba(255,128,24,.18) 35%, rgba(255,62,0,.10) 58%, transparent 74%);filter:blur(12px)}
.melt-pizza{position:absolute;left:44px;top:8px;width:92px;height:48px;border-radius:92px 92px 24px 24px / 54px 54px 16px 16px;background:radial-gradient(circle at 28% 52%, #bf2b18 0 9px, transparent 10px),radial-gradient(circle at 48% 36%, #bf2b18 0 8px, transparent 9px),radial-gradient(circle at 68% 54%, #bf2b18 0 8px, transparent 9px),linear-gradient(180deg,#ffe9a8 0%,#ffd36f 60%,#dca042 100%);border:2px solid rgba(112,63,21,.58);box-shadow:0 6px 16px rgba(78,35,12,.18)}
.melt-drip{position:absolute;top:48px;width:14px;border-radius:0 0 12px 12px;background:linear-gradient(180deg,#ffe79f,#ffcf63);box-shadow:0 3px 10px rgba(255,183,57,.18);animation:cheeseMelt .85s ease-in-out infinite alternate}
.drip-a{left:66px;height:30px;animation-delay:-.1s}.drip-b{left:94px;height:42px;animation-delay:-.3s}.drip-c{left:118px;height:24px;animation-delay:-.2s}
.fire-flame{position:absolute;bottom:10px;width:54px;height:92px;border-radius:48% 52% 42% 58% / 66% 66% 34% 34%;transform-origin:50% 100%;background:radial-gradient(circle at 50% 74%, #fff4b3 0 10%, #ffd048 24%, #ff8b16 52%, #ef3c07 78%, transparent 80%);filter:drop-shadow(0 0 12px rgba(255,116,22,.85));animation:fireFlicker .22s ease-in-out infinite alternate}
.fire-flame-back{left:58px;width:64px;height:110px;opacity:.72;filter:blur(.3px) drop-shadow(0 0 15px rgba(255,112,10,.82));animation-duration:.28s}
.fire-flame-left{left:28px;transform:rotate(-11deg) scale(.86);animation-delay:-.11s}.fire-flame-center{left:60px;width:58px;height:104px;animation-duration:.18s}.fire-flame-right{left:96px;transform:rotate(11deg) scale(.82);animation-delay:-.07s}
.fire-ember{position:absolute;bottom:26px;width:6px;height:6px;border-radius:50%;background:#ffd46a;box-shadow:0 0 10px rgba(255,132,24,.9);animation:fireEmber 1.1s ease-out infinite}
.fire-ember.ember-a{left:52px;animation-delay:-.18s}.fire-ember.ember-b{left:84px;animation-delay:-.54s}.fire-ember.ember-c{left:112px;animation-delay:-.82s}

.ride-stage{position:relative;width:100%;height:124px;overflow:hidden}
.ride-streak{position:absolute;left:-12%;height:4px;border-radius:999px;background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,180,63,.95) 25%, rgba(255,91,22,.88) 72%, rgba(255,91,22,0));filter:blur(.2px) drop-shadow(0 0 7px rgba(255,124,34,.56));animation:rideSweep 1.25s cubic-bezier(.2,.7,.2,1) both}
.streak-a{top:50px;width:240px;animation-delay:.04s}.streak-b{top:68px;width:198px;animation-delay:.11s;opacity:.88}.streak-c{top:84px;width:160px;animation-delay:.15s;opacity:.68}
.ride-bike{position:absolute;left:-20%;top:26px;color:#161311;filter:drop-shadow(0 12px 18px rgba(0,0,0,.15)) drop-shadow(0 0 9px rgba(255,156,42,.35));animation:rideBike 1.15s cubic-bezier(.2,.7,.2,1) both}
.ride-bike-icon{width:130px;height:130px;stroke-width:1.7}

@keyframes cheeseMelt{from{transform:translateY(0) scaleY(.92)}to{transform:translateY(5px) scaleY(1.06)}}
@keyframes fireFlicker{from{transform:translateY(1px) rotate(-2deg) scaleX(.95) scaleY(.98)}to{transform:translateY(-4px) rotate(3deg) scaleX(1.05) scaleY(1.10)}}
@keyframes fireEmber{0%{transform:translate(0,0) scale(.8);opacity:0}18%{opacity:1}100%{transform:translate(10px,-84px) scale(.14);opacity:0}}
@keyframes rideBike{0%{left:-22%;opacity:0;transform:translateY(10px) scale(.94)}18%{opacity:1}70%{left:38%;opacity:1;transform:translateY(0) scale(1)}100%{left:88%;opacity:0;transform:translateY(-5px) scale(1.02)}}
@keyframes rideSweep{0%{transform:translateX(0) scaleX(.82);opacity:0}18%{opacity:1}72%{opacity:1}100%{transform:translateX(128%) scaleX(1.1);opacity:0}}
@media(max-width:560px){.heat-stage{width:150px;height:142px}.melt-pizza{left:35px;top:10px;width:80px;height:40px}.drip-a{left:55px}.drip-b{left:79px}.drip-c{left:101px}.fire-flame-back{left:46px;width:48px;height:86px}.fire-flame-left{left:20px;width:44px;height:76px}.fire-flame-center{left:49px;width:48px;height:84px}.fire-flame-right{left:77px;width:42px;height:72px}.ride-bike-icon{width:96px;height:96px}}
@media(prefers-reduced-motion:reduce){.fire-flame,.fire-ember,.melt-drip,.ride-streak,.ride-bike,.state-prelude-fire::before,.state-prelude-ride::before{animation:none!important}}
