/* APLIKE / region-effects.css
 * Canonical theme implementation: previously split historical styles, now collected
 * in cascade order. Do not create append-only override files. */

/* ===== REGIONAL AMBIENT FIELDS ===== */
/* Per-region ambient motion: subtle enough for text, visible without mouse input. */
.apx-site .apx-hero,.apx-site .apx-prelude,.apx-site .apx-offer-band,.apx-site .apx-service-story,.apx-site .apx-additional,.apx-site .apx-widgets,.apx-site .apx-related,.apx-site .apx-contact-scene{isolation:isolate}
.apx-site .apx-prelude{background:transparent;animation:none}
.apx-site .apx-prelude::before{content:none}
/* Hero does not repaint a region-sized colour plane: it uses the world scene. */
.apx-site .apx-offer-band{background-size:210% 210%;animation:apxAmbientColor 22s ease-in-out infinite alternate}
.apx-site .apx-additional{position:relative;background:transparent;border-radius:0;animation:none}
.apx-site .apx-widgets{position:relative;background:transparent;border-radius:0}
/* Ambient decorative circuit strokes, not a new content block. */
.apx-site:not(.apx-site--service):not(.apx-site--article):not(.apx-site--information) .apx-chapter,.apx-site:not(.apx-site--service):not(.apx-site--article):not(.apx-site--information) .apx-extended-section{background-size:165% 165%;animation:apxCardColorBreath 21s ease-in-out infinite alternate;animation-delay:calc(var(--apx-tone-seed,0) * -1s)}
.apx-site .apx-chapter:nth-child(3n),.apx-site .apx-extended-section:nth-child(3n){--apx-tone-seed:5}
.apx-site .apx-chapter:nth-child(3n/**/+2),.apx-site .apx-extended-section:nth-child(3n/**/+2){--apx-tone-seed:11}
@keyframes apxAmbientColor{0%{background-position:8% 25%}50%{background-position:95% 75%}100%{background-position:18% 95%}}

@keyframes apxCardColorBreath{to{background-position:100% 80%}}
@media(prefers-reduced-motion:reduce){.apx-site :is(.apx-prelude,.apx-hero,.apx-offer-band,.apx-service-story,.apx-additional,.apx-widgets,.apx-related,.apx-contact-scene,.apx-chapter,.apx-extended-section),.apx-site .apx-prelude::before{animation:none}}

/* ===== v207.4 / CONTINUOUS CANVAS AND RIGHT-SIDE SIGNALS =====
 * All regional tone changes are painted by main's OWN background image.
 * No per-stage negative-z overlays: those were occluded by section backgrounds.
 * Editorial content is independent of the canvas and is never dimmed.
 * These seams carry ONLY the precise foreground signal, outside card content.
 */
.apx-site main{position:relative}
/* Three purpose-specific, strictly HORIZONTAL signal traces. No curved SVG
 * masks, terminal LED dots, wide section overlays or extra DOM controllers.
 * The long curved comet is separate and stays on the document-wide canvas. */
.apx-site .apx-region-seam{
  position:relative;display:block;width:100%;height:clamp(34px,4.2vw,68px);
  z-index:3;pointer-events:none;overflow:visible;
}
.apx-site .apx-region-seam__signal{
  --apx-trace-width:clamp(165px,25vw,380px);
  --apx-trace-light:#b0fff3;
  position:absolute;right:clamp(16px,5vw,84px);top:50%;
  display:block;width:var(--apx-trace-width);height:30px;
  transform:translateY(-50%);overflow:hidden;
}
.apx-site .apx-region-seam__signal::before,
.apx-site .apx-region-seam__signal::after{
  content:"";position:absolute;display:block;pointer-events:none;
}
/* The moving head is a short illuminated TRACE SEGMENT, not a bright dot.
 * It owns the transform animation, independent of the steady line below. */
.apx-site .apx-region-seam__head{
  position:absolute;z-index:2;top:12px;left:0;
  display:block;width:40px;height:4px;border-radius:1px;
  background:linear-gradient(90deg,transparent,var(--apx-trace-light) 37%,#fffdf1 63%,transparent);
  box-shadow:0 0 8px 1px #96fff36b;
  transform:translateX(-100%);opacity:0;
  animation:apxSignalTravel 5.6s linear infinite;
}
/* 01 / overview: digital packet train, distinct teal dashes. */
.apx-site .apx-region-seam[data-apx-seam="overview"] .apx-region-seam__signal{
  --apx-trace-width:clamp(165px,25vw,380px);
  --apx-trace-light:#91ffe5;
}
.apx-site .apx-region-seam[data-apx-seam="overview"] .apx-region-seam__signal::before{
  left:0;right:0;top:13px;height:2px;
  background:repeating-linear-gradient(90deg,#8affec 0 26px,#3bd3d8 26px 29px,transparent 29px 36px);
  box-shadow:0 0 5px #57f9e488;
}
.apx-site .apx-region-seam[data-apx-seam="overview"] .apx-region-seam__signal::after{
  left:12%;width:63%;top:19px;height:1px;
  background:linear-gradient(90deg,transparent,#73e3dc98 20%,#b7fff0c9 75%,transparent);
}
/* 02 / FAQ: violet twin-track with the travelling packet in reverse. */
.apx-site .apx-region-seam[data-apx-seam="faq"] .apx-region-seam__signal{
  --apx-trace-width:clamp(150px,22vw,320px);
  --apx-trace-light:#d2b8ff;
}
.apx-site .apx-region-seam[data-apx-seam="faq"] .apx-region-seam__signal::before{
  left:0;right:0;top:12px;height:2px;
  background:linear-gradient(90deg,transparent,#b7a2ff 16%,#f2d8ff 55%,#82dfff 92%,transparent);
  box-shadow:0 0 7px #beabff81;
}
.apx-site .apx-region-seam[data-apx-seam="faq"] .apx-region-seam__signal::after{
  left:15%;right:12%;top:19px;height:1px;
  background:linear-gradient(90deg,transparent,#c7b2ffdf 20%,#78e9fbe0 80%,transparent);
}
.apx-site .apx-region-seam[data-apx-seam="faq"] .apx-region-seam__head{
  top:11px;height:4px;animation-duration:7.3s;animation-direction:reverse;
  box-shadow:0 0 8px #c9a8ff9c;
}
/* 03 / contacts: longer amber-to-mint energy conduit and measured ticks. */
.apx-site .apx-region-seam[data-apx-seam="contact"] .apx-region-seam__signal{
  --apx-trace-width:clamp(180px,28vw,415px);
  --apx-trace-light:#ffe2a1;
}
.apx-site .apx-region-seam[data-apx-seam="contact"] .apx-region-seam__signal::before{
  left:0;right:0;top:14px;height:2px;
  background:linear-gradient(90deg,transparent,#ffe2a9 16%,#fff1b5 40%,#79fce8 76%,transparent);
  box-shadow:0 0 7px #ffde93a6;
}
.apx-site .apx-region-seam[data-apx-seam="contact"] .apx-region-seam__signal::after{
  left:24%;right:13%;top:21px;height:2px;
  background:repeating-linear-gradient(90deg,#ffe4aeac 0 3px,transparent 3px 15px);
}
.apx-site .apx-region-seam[data-apx-seam="contact"] .apx-region-seam__head{
  top:13px;width:48px;height:4px;animation-duration:6.8s;
  background:linear-gradient(90deg,transparent,#ffde91 28%,#fffad7 57%,#9dffe6 75%,transparent);
  box-shadow:0 0 9px #ffe8ab91;
}
@keyframes apxSignalTravel{
  0%{transform:translateX(-100%);opacity:0}
  9%{opacity:.95}
  84%{opacity:.95}
  96%,100%{transform:translateX(var(--apx-trace-width));opacity:0}
}
/* Navigation rail remains independent of Drupal blocks and back-to-top. */
.apx-site .apx-region-rail{
  position:fixed;left:clamp(10px,1.8vw,28px);top:50%;transform:translateY(-50%);
  height:min(48vh,400px);width:33px;display:flex;align-items:center;
  flex-direction:column;gap:15px;z-index:48;color:#b8f1e9;
  pointer-events:none;font:800 9px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.08em;
}
.apx-site .apx-region-rail__track{
  display:block;position:relative;width:3px;min-height:85px;flex:1;
  border-radius:8px;background:linear-gradient(180deg,#8effe24a,#bca7ff45);
  box-shadow:0 0 15px #7cf7d819;
}
.apx-site .apx-region-rail__fill{
  position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(180deg,#75ffe0,#ffd983 77%,#f9a6c8);
  box-shadow:0 0 12px #92fff185;transform:scaleY(var(--apx-scroll-ratio,0));
  transform-origin:top;transition:transform .18s linear;
}
.apx-site .apx-region-rail__beacon{
  position:absolute;top:calc(var(--apx-scroll-ratio,0)*100%);left:50%;
  width:9px;height:9px;border:1px solid #fcf4b9;border-radius:50%;
  background:#ffe5a4;box-shadow:0 0 0 4px #9afbea19,0 0 17px #ffe8aa;
  translate:-50% -50%;transition:top .18s linear;
  animation:apxRailPulse 3.4s ease-in-out infinite;
}
.apx-site .apx-region-rail__checkpoints{position:absolute;inset:0;pointer-events:none}
.apx-site .apx-region-rail__checkpoint{
  position:absolute;top:var(--apx-checkpoint-at,0%);left:50%;translate:-50% -50%;
  width:15px;height:15px;padding:0;border:0;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;pointer-events:auto;
  background:transparent;color:#9cfbe3;
}
.apx-site .apx-region-rail__checkpoint::before{
  content:"";width:5px;height:5px;border-radius:50%;background:#7bd6cd;
  border:1px solid #c8fff4;box-shadow:0 0 7px #7afadd72;
  transition:background .45s,scale .45s,box-shadow .45s;
}
.apx-site .apx-region-rail__checkpoint:is(:hover,:focus-visible,[aria-current="location"])::before{
  background:#fff0a0;scale:1.55;box-shadow:0 0 12px 3px #ffdfa0b8,0 0 23px #70ffe672;
}
.apx-site .apx-region-rail__checkpoint:focus-visible{outline:1px solid #ffebae;outline-offset:1px}
.apx-site .apx-region-rail__checkpoint-label{
  position:absolute;left:23px;top:50%;translate:0 -50%;white-space:nowrap;
  max-width:220px;overflow:hidden;text-overflow:ellipsis;
  background:#0d2638e8;color:#e9fff9;border:1px solid #7cf9e48c;border-radius:8px;
  padding:6px 9px;box-shadow:0 3px 15px #0008;
  opacity:0;visibility:hidden;transform:translateX(-7px);
  transition:opacity .3s,visibility .3s,transform .3s;
}
.apx-site .apx-region-rail__checkpoint:is(:hover,:focus-visible) .apx-region-rail__checkpoint-label{
  opacity:1;visibility:visible;transform:translateX(0);
}
.apx-site .apx-region-rail__count{white-space:nowrap;opacity:.8;rotate:-90deg;min-height:36px;display:grid;place-items:center}
.apx-site .apx-region-rail__next{
  pointer-events:auto;cursor:pointer;display:grid;place-items:center;
  width:27px;height:27px;border:1px solid #80f9e18a;border-radius:50%;
  background:#142d3cdb;color:#ffe394;font-size:16px;line-height:1;
  box-shadow:0 0 22px #84f5de2b;
  transition:border-color .6s,background .6s,box-shadow .6s,translate .6s;
}
.apx-site .apx-region-rail__next:hover:not(:disabled),
.apx-site .apx-region-rail__next:focus-visible{
  translate:0 3px;border-color:#ffe49d;background:#23374e;box-shadow:0 0 24px #ffe5a453;
}
.apx-site .apx-region-rail__next:disabled{opacity:.28;cursor:default}
.apx-site .apx-region-rail--single{display:none}
@keyframes apxRailPulse{50%{box-shadow:0 0 0 7px #9afbea0e,0 0 23px #ffe8aad1}}
@media(max-width:1120px){
  .apx-site .apx-region-rail{left:5px;width:18px;height:min(37vh,260px);gap:11px;opacity:.8}
  .apx-site .apx-region-rail__count,.apx-site .apx-region-rail__next,
  .apx-site .apx-region-rail__checkpoints{display:none}
  .apx-site .apx-region-rail__track{width:2px}
  .apx-site .apx-region-seam__signal{right:6vw}

}
@media(prefers-reduced-motion:reduce){
  .apx-site :is(.apx-region-seam__head,.apx-region-rail__beacon){animation:none}
  .apx-site .apx-region-seam__head{opacity:.75;transform:translateX(calc(var(--apx-trace-width) / 2 - 20px))}
  .apx-site :is(.apx-region-rail__fill,.apx-region-rail__beacon),
  .apx-site .apx-region-rail__checkpoint::before{transition:none}
}
@media(max-width:1120px){
}
@media print{.apx-site .apx-region-seam,.apx-site .apx-region-rail{display:none}}

/* ===== REGIONAL DETAIL AND CONTROLS ===== */
/* Region-level controls. Content remains authored and rendered by Drupal. */

.apx-story-telemetry{appearance:none;position:relative;display:flex;align-items:center;justify-content:center;gap:17px;width:min(100%,305px);height:146px;padding:15px;border-radius:24px;border:1px solid #85d7d665;background:radial-gradient(ellipse at var(--apx-net-x,55%) var(--apx-net-y,45%),#348c9360,transparent 70%),linear-gradient(135deg,#172c4759,#232d466a);color:#d3f1ec;box-shadow:inset 0 1px #ffffff12,0 14px 35px #0002;cursor:pointer;overflow:hidden;transition:background-color .8s,border-color .8s,box-shadow .8s}
.apx-story-telemetry:hover,.apx-story-telemetry:focus-visible{border-color:#ffe087b7;box-shadow:0 0 29px #64ead521,inset 0 1px #ffffff34}
.apx-story-telemetry__core{width:112px;height:112px;position:relative;flex:none;display:grid;place-items:center}
.apx-story-telemetry__orbit{position:absolute;width:92%;height:92%;border:1px solid #80f2e08a;border-radius:50%;animation:apxTelemOrbit 19s linear infinite}
.apx-story-telemetry__orbit:nth-child(2){width:68%;height:68%;border:1px dashed #ffdd8cb5;animation-direction:reverse;animation-duration:12s}
.apx-story-telemetry__orbit:nth-child(3){width:45%;height:45%;border:1px dotted #c8b5ff;animation-duration:8s}
.apx-story-telemetry__core b{font:900 23px/1 ui-monospace,Consolas,monospace;color:#8af9dd;text-shadow:0 0 20px #79ebdd9c;letter-spacing:-.08em}
.apx-story-telemetry__point{position:absolute;left:12px;top:10px;width:8px;height:8px;border-radius:50%;background:#f8df8a;box-shadow:0 0 16px #f8df8a;animation:apxNetLed 3s ease-in-out infinite}
.apx-story-telemetry__point:last-child{left:auto;right:9px;top:auto;bottom:24px;background:#8dfbea;box-shadow:0 0 16px #8dfbea;animation-delay:-1.2s}
.apx-story-telemetry__labels{display:grid;gap:10px;text-align:left;font:800 9px/1.25 ui-monospace,Consolas,monospace;letter-spacing:.11em;color:#b2d9d7}
.apx-story-telemetry__labels span::before{content:"▸";color:#ffdc78;padding-right:6px}
.apx-story-telemetry.apx-motion-boost{border-color:#f0d18c;background:radial-gradient(ellipse at var(--apx-net-x,55%) var(--apx-net-y,45%),#94527b74,transparent 70%),linear-gradient(135deg,#251c3a,#1e3950)}
.apx-story-telemetry.apx-motion-boost .apx-story-telemetry__orbit{animation-duration:3.6s}
/* Shared LED pulse for the story telemetry and the related Views console. */
@keyframes apxNetLed{50%{opacity:.3;box-shadow:0 0 0 8px #78f4d606}}
@keyframes apxTelemOrbit{to{transform:rotate(360deg)}}
@media(max-width:860px){.apx-site .apx-story-telemetry{display:flex;width:min(100%,305px);height:126px;margin:10px auto 12px}.apx-site:is(.apx-site--service,.apx-site--hub) .apx-section-intro>p:not(.apx-editorial-signal){max-width:100%}}

/* 8. Always visible enough when active; invisible before scroll threshold. */

@media(prefers-reduced-motion:reduce){.apx-story-telemetry :is(.apx-story-telemetry__orbit,.apx-story-telemetry__point){animation:none;transition:none}}

/* Smooth lateral emphasis only. Existing list icons, bullets and structure remain. */

/* Bright red WCAG-readable arrow against a deep neutral, without yellow. */

/* Additional materials use the same unbroken page backdrop. */
@media(prefers-reduced-motion:reduce){
 .apx-site .apx-service-story,.apx-site .apx-additional,.apx-site .apx-widgets{animation:none}
 .apx-site :is(.apx-nav-mega.apx-menu-open>ul::before,.apx-nav-mega.apx-menu-open>ul::after){animation:none}
}

/* Lists glide to the right on hover, separately from their existing colored dot. */

/* List motion is centralized in editorial-motion.css. */

