/* Brand-led effects; content remains visible without JavaScript. */
.hero.oq-fx-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 420px 320px at var(--oq-x,25%) var(--oq-y,45%),#ff007e12,transparent 75%),radial-gradient(ellipse at 85% 15%,#00baf212,transparent 55%)}
.oq-fx-progress{position:absolute;bottom:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#ff007e 0%,#ff007e 35%,#ffda28 65%,#00baf2 100%);transform:scaleX(0);transform-origin:left;pointer-events:none}
.button.oq-fx-button,.game-open.oq-fx-button{position:relative;overflow:hidden}
.oq-fx-sheen{position:absolute;inset:-60% -80%;pointer-events:none;background:linear-gradient(110deg,transparent 42%,#ffffff55 50%,transparent 58%);transform:translateX(-70%);opacity:0}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .oq-fx-button:hover>.oq-fx-sheen{animation:oq-fx-shine .65s ease-out}
 .crew-member{transition:translate .25s,box-shadow .25s}
 .crew-member:hover{translate:0 -7px;box-shadow:5px 8px 0 #10151c45}
 .achievement{transition:translate .2s}
 .achievement:hover{translate:0 -4px}
}
@keyframes oq-fx-shine{0%{transform:translateX(-70%);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(70%);opacity:0}}
@media(prefers-reduced-motion:reduce){.oq-fx-sheen{display:none}.hero.oq-fx-hero::before{background:none}}
@media print{.oq-fx-progress,.oq-fx-sheen{display:none}.hero.oq-fx-hero::before{display:none}}
