/* APEX home – "From Vienna across Europe" (sec-world.js renders the markup) */
.world{position:relative;margin-top:80px;padding:100px 0 90px;overflow:hidden;overflow:clip;isolation:isolate}
.wd-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 70% at 72% 45%,rgba(47,123,224,.08),transparent 70%),radial-gradient(30% 34% at 64% 40%,rgba(245,132,31,.05),transparent 70%),
  linear-gradient(180deg,var(--bg) 0%,var(--bg2) 22%,var(--bg2) 78%,var(--bg) 100%)}
.wd-bg::before,.wd-bg::after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--line2) 30%,var(--line2) 70%,transparent)}
.wd-bg::before{top:0}.wd-bg::after{bottom:0;opacity:.5}

.wd-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:center}
.wd-copy{position:relative;z-index:2}
.wd-h{font-size:clamp(40px,5.4vw,78px);font-weight:800;letter-spacing:-.035em;line-height:.98;background:linear-gradient(180deg,var(--text),#3b4f78);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
.wd-h2{background:linear-gradient(92deg,var(--orange) 0%,var(--orange2) 38%,var(--blue2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.wd-lead{margin-top:22px;max-width:480px}

.wd-stats{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin:44px 0 0}
.wd-stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:20px 0 22px;border-top:1px solid var(--line)}
.wd-stat:nth-child(n+3){border-bottom:1px solid var(--line)}
.wd-stat--car{grid-column:1/-1}
.wd-car{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;margin:0;min-height:36px}
.wd-logo{display:block;height:26px;opacity:.85}.wd-logo svg{display:block;height:100%;width:auto;max-width:110px}
.wd-stat dd{margin:0}
.wd-stat b{display:block;font-size:clamp(30px,3.2vw,48px);font-weight:800;letter-spacing:-.035em;line-height:1.05;font-variant-numeric:tabular-nums;white-space:nowrap;
  background:linear-gradient(180deg,var(--text),#3b4f78);-webkit-background-clip:text;background-clip:text;color:transparent}
.wd-stat:first-child b{background:linear-gradient(180deg,var(--orange3) 0%,var(--orange2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.wd-stat dt{margin-top:10px;font-size:14px;line-height:1.35;color:var(--muted);max-width:200px}
.wd-act{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}

/* map */
.wd-map{position:relative;margin:0 calc(min(0px,(var(--wrap) - 100vw) / 2) - var(--gut)) 0 -40px;aspect-ratio:1.24/1;min-height:440px}
.wd-tilt{position:absolute;inset:0;transform-origin:50% 60%;will-change:transform}
.wd-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.2s var(--ease);
  -webkit-mask-image:radial-gradient(ellipse 56% 62% at var(--vx,45%) var(--vy,45%),#000 36%,rgba(0,0,0,.5) 66%,transparent 100%);
          mask-image:radial-gradient(ellipse 56% 62% at var(--vx,45%) var(--vy,45%),#000 36%,rgba(0,0,0,.5) 66%,transparent 100%)}
.wd-map.is-ready .wd-canvas{opacity:1}
.wd-map.is-failed{background:radial-gradient(circle at 50% 45%,rgba(47,123,224,.08),transparent 60%)}

.wd-pin{position:absolute;left:0;top:0;width:0;height:0;z-index:2;transform:translate3d(-999px,-999px,0)}
.wd-pin__dot{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(245,132,31,.35)}
.wd-pin__dot::before,.wd-pin__dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1.5px solid rgba(245,132,31,.7);animation:wd-ring 2.6s cubic-bezier(.2,.6,.3,1) infinite;opacity:0}
.wd-pin__dot::after{animation-delay:1.3s}
@keyframes wd-ring{0%{transform:scale(1);opacity:.9}100%{transform:scale(5.5);opacity:0}}
.wd-pill{position:absolute;left:16px;top:-56px;display:flex;flex-direction:column;gap:2px;padding:9px 16px 9px 14px;border-radius:999px;white-space:nowrap;
  background:rgba(var(--bg-rgb),.9);border:1px solid var(--line2);
  box-shadow:0 14px 34px -14px rgba(var(--ink-rgb),.25)}
html:not([data-q=high]) .wd-pill{background:var(--surface-solid)}   /* solid below the high tier (SPEC budget) – and readable over the routes */
.wd-pill::before{content:"";position:absolute;left:-10px;bottom:-14px;width:22px;height:1px;background:linear-gradient(90deg,rgba(var(--ink-rgb),0),rgba(var(--ink-rgb),.5));transform:rotate(-58deg);transform-origin:right center}
.wd-pill b{font-size:14px;font-weight:700;letter-spacing:.01em;color:var(--text);line-height:1.1}
.wd-pill small{font:600 11px/1.15 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em;color:var(--muted)}

.wd-legend{position:absolute;left:44px;bottom:6px;z-index:2;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12.5px;color:var(--dim)}
.wd-legend span{display:inline-flex;align-items:center;gap:8px}
.wd-lg-hq{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 2px rgba(245,132,31,.3)}
.wd-lg-arc{width:22px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--orange2),var(--blue2))}

@media (max-width:1100px){.wd-in{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.wd-map{margin-left:-20px}}
@media (max-width:900px){
  .world{padding:70px 0 80px;margin-top:90px}
  .wd-in{display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .wd-map{order:-1;margin:0 calc(-1 * var(--gut));aspect-ratio:1/.92;min-height:0}
  .wd-legend{left:var(--gut);bottom:0}
  .wd-stats{margin-top:34px}
}
@media (max-width:600px){
  .wd-h{font-size:clamp(38px,11vw,52px)}
  .wd-stats{gap:0 18px}
  .wd-stat b{font-size:clamp(24px,7.4vw,34px)}
  .wd-logo{height:22px}
  .wd-stat dt{font-size:13px}
  .wd-pill{padding:7px 13px 7px 12px;top:-50px;left:auto;right:12px}
  .wd-pill::before{left:auto;right:-10px;transform:rotate(58deg);transform-origin:left center}
  .wd-pill b{font-size:13px}
  .wd-act .btn{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){.wd-canvas{transition:none}.wd-tilt{transform:none!important}}
.world.is-off .wd-pin__dot::before,.world.is-off .wd-pin__dot::after{animation:none}html.user-idle .wd-pin__dot::before,html.user-idle .wd-pin__dot::after{animation-play-state:paused}   /* SPEC budget: decorative loops rest off screen / idle */
