/* Externalized from inline css in public page bloat-reduction phase. Source marker: assets/css/oloropa-emotional-sensory-engine.css. */
/* Inlined from assets/css/oloropa-emotional-sensory-engine.css */
/* Oloropa 18 Phase 3 — Sitewide Emotional/Sensory Engine
   Master layer for section state, soft reveals, active media, opt-in sound, mobile route safeguards, and reduced-motion calm. */
:root{
  --ol-es-forest:#0b2319;
  --ol-es-forest-2:#173527;
  --ol-es-ivory:#fff8ea;
  --ol-es-muted:rgba(255,248,234,.72);
  --ol-es-gold:#c9a45d;
  --ol-es-sand:#efe1c4;
  --ol-es-coast:#b8d8d1;
  --ol-es-ease:cubic-bezier(.22,1,.36,1);
  --ol-es-ease-soft:cubic-bezier(.16,1,.3,1);
  --ol-es-top:clamp(72px,9svh,112px);
}
html.ol-es-js{scroll-behavior:smooth;}
html.ol-es-js body[data-ol-phase3-engine="active"]{--ol-es-active-progress:0;}
.ol-es-section{
  position:relative;
  isolation:isolate;
  scroll-margin-top:var(--ol-es-top);
  --ol-es-progress:0;
  --ol-es-local-x:0px;
  --ol-es-soft-opacity:.88;
}
.ol-es-section[data-ol-es-state="entered"],
.ol-es-section[data-ol-es-state="active"]{z-index:1;}
.ol-es-section[data-ol-es-state="active"]{--ol-es-soft-opacity:1;}
.ol-es-section::selection{background:rgba(201,164,93,.32);}
.ol-es-trace{
  position:absolute;
  left:clamp(1rem,5vw,5rem);
  right:clamp(1rem,5vw,5rem);
  bottom:clamp(1rem,4vw,3rem);
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(201,164,93,0),rgba(201,164,93,.62),rgba(201,164,93,0));
  transform:scaleX(var(--ol-es-progress));
  transform-origin:left center;
  opacity:.32;
  z-index:0;
}
.ol-es-section[data-ol-reveal="hero"] .ol-es-trace{bottom:clamp(2rem,8vw,7rem);opacity:.18;}
html.ol-es-js [data-ol-es-reveal-item]{
  opacity:0;
  transform:translate3d(0,28px,0);
  filter:blur(8px);
  transition:opacity .82s var(--ol-es-ease), transform .88s var(--ol-es-ease), filter .88s var(--ol-es-ease), box-shadow .38s ease, border-color .38s ease;
  transition-delay:calc(var(--ol-es-stagger,0) * 52ms);
  will-change:opacity,transform,filter;
}
html.ol-es-js .ol-es-section[data-ol-reveal="hero"] [data-ol-es-reveal-item]{
  transform:translate3d(0,34px,0) scale(.985);
  transition-duration:1.05s;
}
html.ol-es-js .ol-es-section[data-ol-reveal="stagger"] [data-ol-es-reveal-item]:nth-child(odd),
html.ol-es-js .ol-es-section[data-ol-reveal="form-build"] [data-ol-es-reveal-item]:nth-child(odd){transform:translate3d(-12px,28px,0);}
html.ol-es-js .ol-es-section[data-ol-reveal="gallery-float"] [data-ol-es-reveal-item]:nth-child(odd){transform:translate3d(-22px,34px,0) rotate(-1deg);}
html.ol-es-js .ol-es-section[data-ol-reveal="gallery-float"] [data-ol-es-reveal-item]:nth-child(even){transform:translate3d(18px,30px,0) rotate(1deg);}
html.ol-es-js [data-ol-es-reveal-item].ol-es-visible,
html.ol-es-js .ol-es-section[data-ol-es-state="active"] > [data-ol-es-reveal-item]{
  opacity:1;
  transform:translate3d(0,0,0) scale(1) rotate(0);
  filter:blur(0);
}
html.ol-es-js .ol-es-section[data-ol-es-state="active"] :is(.route-line,.pk4-route-line span,.p6-route-line,.pd5-route-strip,.ix-route-progress i,.ol-es-draw-line){animation:olEsLineDraw 1.1s var(--ol-es-ease) both;}
@keyframes olEsLineDraw{from{clip-path:inset(0 100% 0 0);opacity:.28;}to{clip-path:inset(0 0 0 0);opacity:1;}}
html.ol-es-js .ol-es-section[data-ol-reveal="hero"] :is(video,.ix-hero-bg,.pk-hero-bg,.pd-hero-bg,.p12-hero-bg,.sh7-hero-bg,.sp-hero-bg,.p9x-hero-bg){
  transform:scale(calc(1.012 + (var(--ol-es-progress) * .055)));
  filter:brightness(calc(1 - (var(--ol-es-progress) * .12))) saturate(calc(1.02 + (var(--ol-es-progress) * .06)));
  transition:transform .25s linear, filter .25s linear;
  transform-origin:center center;
}
html.ol-es-js .ol-es-section[data-ol-reveal="pin-x"]{contain:layout paint style;}
html.ol-es-js .ol-es-section[data-ol-reveal="pin-x"] :is([data-route-belt-rail],.ol-story-pin-rail,.pk4-rail,.pk-rail){
  will-change:transform;
  backface-visibility:hidden;
}
.ol-es-active-card{outline:1px solid rgba(201,164,93,.45);outline-offset:6px;}
.ol-es-section[data-ol-es-state="active"] :is(.ix-card,.ix-intent-card,.ix-mood-card,.pk-card,.pk4-journey-card,.pd-card,.pd5-card,.p12-card,.p6-card,.sh7-card,.cct-card,.sp-card,.p9x-card):hover{
  box-shadow:0 28px 90px rgba(7,20,15,.2);
}
.ol-es-sound-dock{
  position:fixed;
  right:clamp(.75rem,2vw,1.25rem);
  bottom:clamp(.75rem,2vw,1.25rem);
  z-index:9997;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  max-width:44px;
  border:1px solid rgba(255,248,234,.26);
  border-radius:999px;
  padding:0;
  background:rgba(7,24,16,.18);
  color:var(--ol-es-ivory);
  box-shadow:0 14px 40px rgba(0,0,0,.18);
  backdrop-filter:blur(16px) saturate(120%);
  transform:translateY(0);
  transition:opacity .22s ease,transform .22s var(--ol-es-ease),background .22s ease,border-color .22s ease;
  font:600 .72rem/1.2 Inter,system-ui,-apple-system,Segoe UI,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ol-es-sound-dock:hover,.ol-es-sound-dock:focus-within{background:rgba(7,24,16,.34);border-color:rgba(201,164,93,.55);transform:translateY(-1px);}
.ol-es-sound-dock[data-ol-es-muted="true"]{background:rgba(7,24,16,.18);}
.ol-es-sound-dock button{
  appearance:none;
  border:0;
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:transparent;
  color:var(--ol-es-ivory);
  cursor:pointer;
  padding:0;
}
.ol-es-sound-dock button:focus-visible{outline:2px solid var(--ol-es-gold);outline-offset:3px;}
.ol-es-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important;}
.ol-es-sound-wave{
  width:25px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
}
.ol-es-sound-wave i{display:block;width:3px;height:8px;border-radius:999px;background:rgba(255,248,234,.62);animation:olEsWave 1.05s ease-in-out infinite;animation-play-state:paused;opacity:.58;transform-origin:center;}
.ol-es-sound-wave i:nth-child(2){height:13px;animation-delay:.18s}.ol-es-sound-wave i:nth-child(3){height:10px;animation-delay:.34s}.ol-es-sound-wave i:nth-child(4){height:14px;animation-delay:.52s}.ol-es-sound-wave i:nth-child(5){height:7px;animation-delay:.7s}
.ol-es-sound-dock[data-ol-es-muted="false"]{background:rgba(255,248,234,.12);border-color:rgba(201,164,93,.62);box-shadow:0 12px 36px rgba(201,164,93,.22);}
.ol-es-sound-dock[data-ol-es-muted="false"] .ol-es-sound-wave i{animation-play-state:running;background:var(--ol-es-gold);opacity:1;box-shadow:0 0 10px rgba(201,164,93,.32);}
@keyframes olEsWave{0%,100%{transform:scaleY(.45);opacity:.42}50%{transform:scaleY(1);opacity:1}}
.ol-es-sound-label{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important;}
.ol-es-status{position:fixed;left:1rem;bottom:1rem;z-index:9996;padding:.42rem .62rem;border-radius:999px;background:rgba(7,20,15,.72);color:var(--ol-es-ivory);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;opacity:0;transform:translateY(10px);transition:.28s var(--ol-es-ease);}
html[debug-story="1"] .ol-es-status{opacity:1;transform:none;}
@media (max-width:900px){
  html.ol-es-js{scroll-behavior:auto;}
  html.ol-es-js [data-ol-es-reveal-item]{transition-duration:.48s;transform:translate3d(0,16px,0);filter:blur(3px);}
  html.ol-es-js .ol-es-section[data-ol-reveal="pin-x"]{min-height:auto!important;contain:none!important;}
  html.ol-es-js .ol-es-section[data-ol-reveal="pin-x"] :is([data-route-belt-rail],.ol-story-pin-rail,.pk4-rail,.pk-rail){
    transform:none!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory;
    touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
  }
  html.ol-es-js .ol-es-section[data-ol-reveal="pin-x"] :is(.ix-h-card,.pk-card,.pk4-journey-card){scroll-snap-align:center;}
  .ol-es-sound-dock{left:auto;right:.75rem;width:42px;height:42px;max-width:42px;}
  .ol-es-sound-dock button{width:38px;height:38px;}
}
@media (prefers-reduced-motion:reduce){
  html.ol-es-js{scroll-behavior:auto!important;}
  html.ol-es-js [data-ol-es-reveal-item]{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important;}
  html.ol-es-js .ol-es-section :is(video,.ix-hero-bg,.pk-hero-bg,.pd-hero-bg,.p12-hero-bg,.sh7-hero-bg,.sp-hero-bg,.p9x-hero-bg){transform:none!important;filter:none!important;transition:none!important;}
  html.ol-es-js .ol-es-section[data-ol-reveal="pin-x"]{min-height:auto!important;contain:none!important;}
  .ol-es-trace{display:none;}
  .ol-es-sound-wave i{animation:none!important;}
}
.ol-es-sound-dock {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  max-width: 46px !important;
  max-height: 46px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, .2) !important;
  border-radius: 999px !important;
  background: linear-gradient(145deg, rgba(8, 31, 24, .42), rgba(255, 255, 255, .1)) !important;
  color: #f8ead0 !important;
  box-shadow: 0 18px 44px rgba(2, 10, 7, .38), inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -10px 22px rgba(0, 0, 0, .16) !important;
  backdrop-filter: blur(18px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(150%) !important;
}

.ol-es-sound-dock::before {
  content: "" !important;
  position: absolute !important;
  inset: 6px !important;
  border-radius: inherit !important;
  background: radial-gradient(circle at 35% 25%, rgba(255, 255, 255, .32), transparent 34%), linear-gradient(145deg, rgba(218, 184, 112, .22), rgba(28, 132, 95, .18)) !important;
  pointer-events: none !important;
}

.ol-es-sound-dock::after {
  content: none !important;
}

.ol-es-sound-dock button,
.ol-es-sound-dock [role="button"] {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
  color: inherit !important;
}

.ol-es-sound-wave {
  width: 19px !important;
  height: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
}

.ol-es-sound-wave i,
.ol-es-sound-wave span {
  width: 3px !important;
  min-width: 3px !important;
  height: 8px !important;
  display: block !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #fff7dc, #d9ac55) !important;
  box-shadow: 0 0 12px rgba(226, 184, 94, .42) !important;
  transform-origin: center !important;
  animation: olProSoundWave 1.08s ease-in-out infinite !important;
}

.ol-es-sound-wave i:nth-child(2),
.ol-es-sound-wave span:nth-child(2) {
  animation-delay: .12s !important;
}

.ol-es-sound-wave i:nth-child(3),
.ol-es-sound-wave span:nth-child(3) {
  animation-delay: .24s !important;
}

.ol-es-sound-wave i:nth-child(4),
.ol-es-sound-wave span:nth-child(4) {
  animation-delay: .36s !important;
}

.ol-es-sound-dock[data-ol-es-muted="true"] .ol-es-sound-wave i,
.ol-es-sound-dock[data-ol-es-muted="true"] .ol-es-sound-wave span,
.ol-es-sound-dock[data-muted="true"] .ol-es-sound-wave i,
.ol-es-sound-dock[data-muted="true"] .ol-es-sound-wave span,
.ol-es-sound-dock[data-state="muted"] .ol-es-sound-wave i,
.ol-es-sound-dock[data-state="muted"] .ol-es-sound-wave span {
  height: 7px !important;
  opacity: .46 !important;
  animation: none !important;
  background: rgba(248, 234, 208, .72) !important;
  box-shadow: none !important;
}

.ol-es-sound-label,
.ol-es-sr {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@keyframes olProSoundWave {
  0%, 100% {
    height: 7px;
    opacity: .68;
  }
  42% {
    height: 18px;
    opacity: 1;
  }
  72% {
    height: 11px;
    opacity: .88;
  }
}

@media (max-width: 640px) {
  .ol-es-sound-dock {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
  }
}
