/* Decorative amber roles inherit the portal's established day / night palette. */
body{--flame-core:#fff9da;--flame-heart:#ffdfa1;--flame-edge:#d89038;--lamplight:255,205,125}
.portal-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:layout paint}
.atmo-breeze,.atmo-stars{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .7s ease}
.atmo-breeze{top:48%;height:30%;inset-inline:10%;background:radial-gradient(ellipse at 20% 62%,#efd5a946,transparent 58%),radial-gradient(ellipse at 76% 53%,#ffedcd36,transparent 48%);mask-image:linear-gradient(transparent,#000 30% 65%,transparent)}
body[data-direction=studio] .atmo-breeze{opacity:.25}
body[data-direction=media] .atmo-stars{opacity:1}
.atmo-star{position:absolute;width:var(--star-size);height:var(--star-size);border-radius:50%;background:#fff2d3;opacity:.34;transform-origin:center}
.atmo-star-cross:before,.atmo-star-cross:after{content:'';position:absolute;top:50%;left:50%;background:linear-gradient(transparent,#fff1d8a3,transparent);transform:translate(-50%,-50%);border-radius:50%}
.atmo-star-cross:before{width:1px;height:7px}.atmo-star-cross:after{width:7px;height:1px;background:linear-gradient(90deg,transparent,#fff1d8a3,transparent)}

/* Legacy markup follows the same contract: only the selected wick emits light. */
.directions .direction .lamp-aura{opacity:0;background:radial-gradient(ellipse at center,rgba(var(--lamplight),.38),rgba(var(--lamplight),.1) 37%,transparent 69%);transform:scale(.9);transition:opacity .7s ease}
.directions .direction.is-active .lamp-aura{opacity:.9}
.directions .direction .lamp-flame{opacity:0;background:linear-gradient(var(--flame-core),var(--flame-heart) 55%,#d8903870);box-shadow:0 0 11px #ffcc8066;transform-origin:50% 95%;isolation:isolate}
.directions .direction .lamp-flame:after{content:'';position:absolute;left:26%;bottom:9%;width:49%;height:57%;border-radius:65% 35% 48% 52%;background:var(--flame-core);opacity:.88;transform-origin:50% 100%}
.directions .direction.is-active .lamp-flame{opacity:1}
.directions .direction .lamp-pull img{opacity:.93}
.directions .direction.is-active .lamp-pull img{opacity:1}

/* Only the scenery and panel fade, never the keyboard-accessible lamp navigation. */
.atmosphere-transition .scene-backdrop{transition:opacity .4s ease}
.atmosphere-transition :is(.direction-panel,.portal-intro){animation:none!important;transition:opacity .38s ease,transform .58s cubic-bezier(.2,.7,.3,1)}
body[data-atmosphere-phase=fall] .scene-backdrop{opacity:.4}
body[data-atmosphere-phase=fall] :is(.direction-panel,.portal-intro){opacity:.18;transform:translateY(8px)}
body[data-atmosphere-phase=gather] .scene-backdrop,body[data-atmosphere-phase=gather] :is(.direction-panel,.portal-intro){opacity:1;transform:none}

@media(prefers-reduced-motion:no-preference){
  body[data-atmosphere-phase=gather] :is(.direction-panel,.portal-intro){animation:scene-reassemble .65s cubic-bezier(.2,.7,.3,1) both!important}
  .directions .direction .lamp-flame{animation:living-candle 3.7s ease-in-out infinite}
  .directions .direction:nth-child(2) .lamp-flame{animation-delay:-1.2s;animation-duration:3.2s}
  .directions .direction:nth-child(3) .lamp-flame{animation-delay:-2.6s;animation-duration:4.1s}
  .directions .direction .lamp-flame:after{animation:candle-heart 2.9s ease-in-out infinite alternate}
  .directions .direction .lamp-aura{animation:amber-breath 6.3s ease-in-out infinite alternate}
  .directions .direction:nth-child(2) .lamp-aura{animation-delay:-2.6s}
  .directions .direction:nth-child(3) .lamp-aura{animation-delay:-4.8s}
  body[data-direction=studio] .atmo-breeze{animation:dune-breath 17s ease-in-out infinite alternate}
  body[data-direction=media] .atmo-star{animation:star-wink var(--star-period) ease-in-out var(--star-delay) infinite}
}
@keyframes scene-reassemble{from{opacity:.18;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes living-candle{0%,100%{transform:scale(.91,.98) rotate(-3deg)}19%{transform:scale(.96,1.07) rotate(2deg)}42%{transform:scale(1.08,.93) rotate(-2deg)}66%{transform:scale(.86,1.12) rotate(3deg)}83%{transform:scale(.98,.99) rotate(-1deg)}}
@keyframes candle-heart{from{transform:scale(.85,.93);opacity:.73}to{transform:scale(1.05,1.08);opacity:.98}}
@keyframes amber-breath{from{transform:scale(.88)}to{transform:scale(1.02)}}
@keyframes dune-breath{from{transform:translateX(-14px) translateY(3px);opacity:.13}to{transform:translateX(14px) translateY(-2px);opacity:.32}}
@keyframes star-wink{0%,39%,55%,100%{opacity:.24;transform:scale(.82)}43%{opacity:.46;transform:scale(1)}47%{opacity:.94;transform:scale(1.18)}50%{opacity:.42;transform:scale(.98)}}
/* One brief meteor, clipped to open sky. No canvas or perpetual paint loop. */
.atmo-meteors{position:absolute;left:20%;right:15%;top:20%;height:25%;overflow:hidden;pointer-events:none;opacity:0}
body[data-direction=media] .atmo-meteors{opacity:1}
.atmo-meteor{position:absolute;left:var(--meteor-x);top:var(--meteor-y);width:clamp(55px,9vw,140px);height:1.5px;opacity:0;background:linear-gradient(90deg,transparent,#ffe4ac80 72%,#fff7df);transform-origin:right center;border-radius:50%}
.atmo-meteor:after{content:'';position:absolute;right:0;top:-.5px;width:3px;height:3px;border-radius:50%;background:#fff5d5}
.atmo-meteor.is-falling{animation:meteor-pass 1.45s ease-out both}
@keyframes meteor-pass{0%{opacity:0;transform:translate(-80px,-45px) rotate(24deg) scaleX(.5)}15%{opacity:.9}65%{opacity:.66}100%{opacity:0;transform:translate(110px,48px) rotate(24deg) scaleX(1)}}
.atmosphere-paused .portal-atmosphere *,.atmosphere-paused .directions .lamp-flame,.atmosphere-paused .directions .lamp-flame:after,.atmosphere-paused .directions .lamp-aura,.lamps-asleep .directions .lamp-flame:after{animation-play-state:paused!important}
@media(max-width:760px){.atmo-star-cross:before{height:5px}.atmo-star-cross:after{width:5px}}
@media(prefers-reduced-motion:reduce){.portal-atmosphere{display:none}.directions .direction .lamp-flame,.directions .direction .lamp-flame:after,.directions .direction .lamp-aura{animation:none!important}.atmosphere-transition .scene-backdrop,.atmosphere-transition :is(.direction-panel,.portal-intro){transition:none!important;transform:none!important}}
