@property --kb{syntax:'<number>';inherits:false;initial-value:1.04}

/* ambient glow layer */
body::before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;
  background:radial-gradient(38% 30% at 78% 18%,rgba(0,111,121,.26),transparent 70%),
             radial-gradient(30% 26% at 12% 72%,rgba(90,47,208,.16),transparent 70%);
  animation:breathe 18s ease-in-out infinite alternate;will-change:transform}
@keyframes breathe{from{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(3%,3%,0) scale(1.08)}}

/* read progress */
.ed-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:80;pointer-events:none}
.ed-progress i{display:block;height:100%;background:linear-gradient(90deg,#F5AA07,var(--y));transform-origin:0 50%;transform:scaleX(0)}
.ed-site-head{transition:background .25s,box-shadow .25s}
.ed-site-head.ed-compact{background:rgba(7,13,22,.97);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.ed-mast strong{display:inline-block;transform-origin:0 50%;transition:transform .25s}
.ed-site-head.ed-compact .ed-mast strong{transform:scale(.9)}

/* hero art: slide in, slow ken burns, pointer parallax */
.ed-hero-art{animation:artIn .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes artIn{from{transform:translate3d(60px,0,0)}to{transform:none}}
.ed-hero-art img{--mx:0;--my:0;--sy:0;
  transform:translate3d(calc(var(--mx) * -14px),calc(var(--my) * -10px + var(--sy) * 1px),0) scale(var(--kb));
  animation:kb 16s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{--kb:1.04}to{--kb:1.12}}
.ed-hero-art figcaption{animation:tagIn .6s .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes tagIn{from{transform:translate3d(100%,0,0)}to{transform:none}}

/* moving hazard stripes in hero corner */
.ed-hero-copy::before{left:-74px;width:230px;animation:stripes 1.6s linear infinite}
@keyframes stripes{to{transform:translate3d(34.18px,0,0)}}

/* shine sweep on yellow buttons */
.ed-btn-y{position:relative;overflow:hidden;isolation:isolate}
.ed-btn-y::before{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:40%;z-index:-1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:translate3d(-150%,0,0) skewX(-18deg);
  animation:shine 4.6s ease-in-out infinite}
@keyframes shine{0%,70%{transform:translate3d(-150%,0,0) skewX(-18deg)}100%{transform:translate3d(320%,0,0) skewX(-18deg)}}
.ed-endcta .ed-btn::before{display:none}

/* fact ticker under hero */
.ed-ticker{overflow:hidden;background:#0b0f17;border-bottom:1px solid var(--line);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ed-tk-track{display:flex;width:max-content;align-items:center;animation:mq 38s linear infinite}
.ed-tk-track span{font:700 italic 17px/1 var(--f);text-transform:uppercase;padding:12px 18px;white-space:nowrap}
.ed-tk-track i{color:var(--y);font:800 italic 22px/1 var(--f);transform:scaleX(-1)}
@keyframes mq{to{transform:translate3d(-50%,0,0)}}

/* provider marquee */
.ed-marquee{overflow:hidden;flex-wrap:nowrap;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ed-mq-track{display:flex;align-items:center;width:max-content;animation:mq 30s linear infinite}
.ed-marquee:hover .ed-mq-track{animation-play-state:paused}
.ed-mq-track img{flex:none}

/* game covers: stagger, tilt, teal edge */
.ed-js .ed-rv img{transition-delay:calc(var(--i,0) * 70ms)}
.ed-pick{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease,box-shadow .25s ease;will-change:transform}
.ed-pick:hover{box-shadow:0 0 0 2px var(--neon),0 14px 34px rgba(25,195,201,.22);z-index:1}
.ed-pick .ed-play{transition:transform .25s cubic-bezier(.3,1.6,.5,1),opacity .2s}

/* scoreboard flash when table enters view */
.ed-board td.ed-odd{position:relative;overflow:hidden}
.ed-board td.ed-odd::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.85) 50%,transparent 80%);
  transform:translate3d(-120%,0,0);pointer-events:none}
.ed-board.ed-lit td.ed-odd::after{animation:flash .9s ease-out both}
.ed-board.ed-lit tr:nth-child(2) td.ed-odd::after{animation-delay:.12s}
.ed-board.ed-lit tr:nth-child(3) td.ed-odd::after{animation-delay:.24s}
.ed-board.ed-lit tr:nth-child(4) td.ed-odd::after{animation-delay:.36s}
@keyframes flash{to{transform:translate3d(120%,0,0)}}

/* smooth accordions */
:root{interpolate-size:allow-keywords}
.ed-faq details::details-content,.ed-toc::details-content{block-size:0;overflow:hidden;transition:block-size .35s ease,content-visibility .35s allow-discrete}
.ed-faq details[open]::details-content,.ed-toc[open]::details-content{block-size:auto}

/* promo code copy */
.ed-code-box{display:flex;align-items:stretch}
.ed-copy{font:700 16px/1 var(--f);text-transform:uppercase;background:var(--y);color:var(--ink);border:0;padding:0 18px;cursor:pointer;min-width:96px;transition:transform .15s}
.ed-copy:active{transform:scale(.94)}
.ed-copy.ed-done{animation:pop .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes pop{40%{transform:scale(1.12)}100%{transform:none}}

/* mobile sticky CTA */
.ed-dock{display:none}
@media (max-width:860px){
  .ed-has-dock{padding-bottom:76px}
  .ed-dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(7,13,22,.96);border-top:2px solid var(--y);transform:translate3d(0,110%,0);transition:transform .3s ease}
  .ed-dock .ed-btn{width:100%}
  .ed-dock.ed-on{transform:none}
  .ed-dock.ed-on .ed-btn{animation:pulse 2.4s ease-in-out .3s 2}
}

@media (prefers-reduced-motion:reduce){
  body::before,.ed-hero-art,.ed-hero-art img,.ed-hero-art figcaption,.ed-hero-copy::before,.ed-btn-y::before,.ed-tk-track,.ed-mq-track,.ed-board.ed-lit td.ed-odd::after{animation:none!important}
  .ed-hero-art img{transform:none!important}
  .ed-pick{transform:none!important}
}
