/* Isolated decorative folds. Geometry morphs; content and section bounds never move. */
.sithon-public-v2 .ambient-region{
  --ribbon-strength:.30;
  --ember-travel:3.5%;--charcoal-travel:2.5%;--ribbon-travel-factor:1;
  --ribbon-scale-factor:1;
  position:relative;isolation:isolate;overflow:clip;background:#090909;
}
.sithon-public-v2 .ambient-home{--ribbon-strength:.32}
.sithon-public-v2 .ambient-about{--ribbon-strength:.24}
.sithon-public-v2 .ambient-footer{
  --ribbon-strength:.22;
  --ember-travel:1.4%;--charcoal-travel:1%;
  --ribbon-scale-factor:.4;
  --ember-animation:sithon-footer-ember-fold;--ember-duration:48s;
  --charcoal-animation:sithon-footer-charcoal-fold;--charcoal-duration:64s;
}
/* Still, understated fallback without JavaScript, also retained on error pages. */
.sithon-public-v2 .ambient-region::before,.sithon-public-v2 .ambient-region::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  mask-image:linear-gradient(transparent,#000 18%,#000 78%,transparent);
  -webkit-mask-image:linear-gradient(transparent,#000 18%,#000 78%,transparent);
}
.sithon-public-v2 .ambient-region::before{
  background:radial-gradient(ellipse 60% 85% at 70% 60%,#f4863c,transparent 78%);opacity:.07;
}
.sithon-public-v2 .ambient-region::after{
  background:radial-gradient(ellipse 68% 70% at 8% 34%,#777,transparent 75%);opacity:.05;
}
.sithon-public-v2 .ambient-static::before{opacity:.025;transform:translate3d(-2%,1%,0) scale(1.03)}
.sithon-public-v2 .ambient-static::after{opacity:.02;transform:translate3d(2%,-2%,0) scale(1.02)}
.sithon-public-v2 .ambient-vector::before,.sithon-public-v2 .ambient-vector::after{display:none}
.sithon-public-v2 .ambient-ribbons{
  position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;
  opacity:var(--ribbon-strength);
  /* Fixed softness only: the filter itself never animates. */
  filter:blur(10px);
  mask-image:linear-gradient(transparent,#000 16%,#000 78%,transparent);
  -webkit-mask-image:linear-gradient(transparent,#000 16%,#000 78%,transparent);
}
/* Keep the hero composition around the copy, rather than stretching with the demo. */
.sithon-public-v2 .ambient-home .ambient-ribbons{height:min(850px,100%)}
.sithon-public-v2 .ambient-home .ambient-ribbons,
.sithon-public-v2 .ambient-about .ambient-ribbons{transform:translateY(64px)}
.sithon-public-v2 .ambient-home .ambient-ribbons,
.sithon-public-v2 .ambient-about .ambient-ribbons,
.sithon-public-v2 .ambient-closing .ambient-ribbons{
  mask-image:linear-gradient(transparent,#000 16%,#000 78%,transparent),radial-gradient(ellipse 52% 48% at 50% 35%,#0005 35%,#000 100%);
  mask-composite:intersect;
  -webkit-mask-image:linear-gradient(transparent,#000 16%,#000 78%,transparent),radial-gradient(ellipse 52% 48% at 50% 35%,#0005 35%,#000 100%);
  -webkit-mask-composite:source-in;
}
.sithon-public-v2 .ambient-footer .ambient-ribbons{
  mask-image:linear-gradient(transparent,#000 24%,#000 65%,transparent);
  -webkit-mask-image:linear-gradient(transparent,#000 24%,#000 65%,transparent);
}
.sithon-public-v2 .ambient-ready .ambient-ribbon-ember{
  animation:var(--ember-animation,sithon-ember-fold) var(--ember-duration,36s) ease-in-out infinite alternate;animation-play-state:paused;
}
.sithon-public-v2 .ambient-ribbon-ember,
.sithon-public-v2 .ambient-ribbon-charcoal{transform-box:view-box;transform-origin:50% 50%}
.sithon-public-v2 .ambient-ready .ambient-ribbon-charcoal{
  animation:var(--charcoal-animation,sithon-charcoal-fold) var(--charcoal-duration,48s) ease-in-out infinite alternate;animation-play-state:paused;
}
.sithon-public-v2 .ambient-footer .ambient-ribbon-ember{opacity:.6}
.sithon-public-v2 .ambient-running .ambient-ribbon-ember,
.sithon-public-v2 .ambient-running .ambient-ribbon-charcoal{animation-play-state:running}
/* Reuse only the existing palette. Footer and mobile stops retain their SVG colors. */
@media(min-width:768px){
  .sithon-public-v2 :is(.ambient-home,.ambient-about,.ambient-closing).ambient-ready .ambient-ribbons stop[style]{
    animation:sithon-palette-exchange 48s ease-in-out infinite alternate;
    animation-play-state:paused;
  }
  .sithon-public-v2 :is(.ambient-home,.ambient-about,.ambient-closing).ambient-running .ambient-ribbons stop[style]{animation-play-state:running}
}
/* Open the homepage at its preferred composition, keeping all hero cycles in phase. */
.sithon-public-v2 .ambient-home.ambient-ready .ambient-ribbon-ember,
.sithon-public-v2 .ambient-home.ambient-ready .ambient-ribbon-charcoal,
.sithon-public-v2 .ambient-home.ambient-ready .ambient-ribbons stop[style]{animation-delay:-25s}
@keyframes sithon-palette-exchange{
  0%,50%{stop-color:var(--stop-original)}
  100%{stop-color:var(--stop-exchanged)}
}
/* Matching commands allow smooth Bézier interpolation, including changing inflections. */
@keyframes sithon-ember-fold{
  0%{transform:translateY(0) scale(1,1);d:path("M -160 -160 L 1600 -160 L 1600 210 C 1240 -80 1100 540 700 330 C 360 100 190 650 -160 410 Z")}
  50%{transform:translateY(calc(var(--ember-travel) * var(--ribbon-travel-factor) * -1)) scale(calc(1 + (0.04 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (-0.06 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 -160 L 1600 -160 L 1600 160 C 1300 120 1120 150 900 330 C 600 670 80 520 -160 440 Z")}
  100%{transform:translateY(calc(var(--ember-travel) * var(--ribbon-travel-factor) * 1)) scale(calc(1 + (-0.03 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (0.06 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 -160 L 1600 -160 L 1600 460 C 1280 600 1220 160 800 160 C 420 160 120 220 -160 80 Z")}
}
@keyframes sithon-charcoal-fold{
  0%{transform:translateY(0) scale(1,1);d:path("M -160 340 C 200 740 440 90 840 320 C 1110 500 1320 550 1600 310 L 1600 860 L -160 860 Z")}
  50%{transform:translateY(calc(var(--charcoal-travel) * var(--ribbon-travel-factor) * 1)) scale(calc(1 + (-0.03 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (0.05 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 470 C 160 480 250 250 600 240 C 1000 220 1280 510 1600 520 L 1600 860 L -160 860 Z")}
  100%{transform:translateY(calc(var(--charcoal-travel) * var(--ribbon-travel-factor) * -1)) scale(calc(1 + (0.03 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (-0.05 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 280 C 240 200 700 260 960 510 C 1160 700 1490 550 1600 430 L 1600 860 L -160 860 Z")}
}
/* Footer control points travel 40% of the original distance from the resting shape. */
@keyframes sithon-footer-ember-fold{
  0%{transform:translateY(0) scale(1,1);d:path("M -160 -160 L 1600 -160 L 1600 210 C 1240 -80 1100 540 700 330 C 360 100 190 650 -160 410 Z")}
  50%{transform:translateY(calc(var(--ember-travel) * var(--ribbon-travel-factor) * -1)) scale(calc(1 + (0.04 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (-0.06 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 -160 L 1600 -160 L 1600 190 C 1264 0 1108 384 780 330 C 456 328 146 598 -160 422 Z")}
  100%{transform:translateY(calc(var(--ember-travel) * var(--ribbon-travel-factor) * 1)) scale(calc(1 + (-0.03 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (0.06 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 -160 L 1600 -160 L 1600 310 C 1256 192 1148 388 740 262 C 384 124 162 478 -160 278 Z")}
}
@keyframes sithon-footer-charcoal-fold{
  0%{transform:translateY(0) scale(1,1);d:path("M -160 340 C 200 740 440 90 840 320 C 1110 500 1320 550 1600 310 L 1600 860 L -160 860 Z")}
  50%{transform:translateY(calc(var(--charcoal-travel) * var(--ribbon-travel-factor) * 1)) scale(calc(1 + (-0.03 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (0.05 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 392 C 184 636 364 154 744 288 C 1066 388 1304 534 1600 394 L 1600 860 L -160 860 Z")}
  100%{transform:translateY(calc(var(--charcoal-travel) * var(--ribbon-travel-factor) * -1)) scale(calc(1 + (0.03 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))),calc(1 + (-0.05 * var(--ribbon-scale-factor) * var(--ribbon-travel-factor))));d:path("M -160 316 C 216 524 544 158 888 396 C 1130 580 1388 550 1600 358 L 1600 860 L -160 860 Z")}
}
.sithon-public-v2 .ambient-region .closing-section{background:none}
.sithon-public-v2 .ambient-region .trial-note span,
.sithon-public-v2 .ambient-footer .footer-brand p,
.sithon-public-v2 .ambient-footer .footer-bottom{color:#aaa29a}
.sithon-public-v2 .ambient-home .hero-description,
.sithon-public-v2 .ambient-home .trial-note span{color:#bfb8af}
@media(max-width:767px){
  .sithon-public-v2 .ambient-region{--ribbon-travel-factor:.5}
  .sithon-public-v2 .ambient-ribbons{opacity:calc(var(--ribbon-strength) * .75)}
  .sithon-public-v2 .ambient-ready .ambient-ribbon-charcoal{animation:none}
  .sithon-public-v2 .ambient-home .ambient-ribbons,
  .sithon-public-v2 .ambient-about .ambient-ribbons{transform:translateY(32px)}
  .sithon-public-v2 .ambient-static::before{opacity:.02}
  .sithon-public-v2 .ambient-static::after{display:none}
}
@media(prefers-reduced-motion:reduce){
  .sithon-public-v2 .ambient-region.ambient-ready .ambient-ribbons stop[style]{animation:none}
  .sithon-public-v2 .ambient-ready .ambient-ribbon-ember,
  .sithon-public-v2 .ambient-ready .ambient-ribbon-charcoal{animation:none}
}
.sithon-public-v2.motion-reduced .ambient-ribbon-ember,
.sithon-public-v2.motion-reduced .ambient-ribbon-charcoal{animation:none}
.sithon-public-v2.motion-reduced .ambient-region.ambient-ready .ambient-ribbons stop[style]{animation:none}
@media(forced-colors:active){
  .sithon-public-v2 .ambient-ribbons,
  .sithon-public-v2 .ambient-region::before,.sithon-public-v2 .ambient-region::after{display:none}
}
