/* Maas Mystery — enchanted portal upgrade */
/* Sections remain in the page; only the portal gate hides them before entry. */
/* Lock the entire homepage until the visitor enters the portal. CSS applies before JavaScript runs. */
body:has(.mm-hero:not(.mm-unlocked)){overflow:hidden!important;height:100svh}
.mm-site:has(.mm-hero:not(.mm-unlocked)) .mm-section,.mm-site:has(.mm-hero:not(.mm-unlocked)) .mm-footer{display:none!important}
.mm-site:has(.mm-hero:not(.mm-unlocked)) .mm-scroll{display:none!important}
.mm-site:has(.mm-hero:not(.mm-unlocked)) .mm-hero{height:100svh;min-height:0}
.mm-site .mm-footer[hidden]{display:none!important}

.mm-hero{isolation:isolate;background:radial-gradient(ellipse at 50% 54%,#9e3d9a 0%,#5A58A6 21%,#391859 51%,#17091f 100%);overflow:hidden}
.mm-hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-conic-gradient(from 12deg at 50% 50%,transparent 0deg 11deg,#FFF7940a 12deg 12.6deg,transparent 13deg 23deg);mask-image:radial-gradient(circle,black 12%,transparent 68%);animation:mm-lightspin 100s linear infinite}
.mm-portal{width:min(63vw,590px);z-index:0;border:0;transform-style:preserve-3d;box-shadow:none;background:radial-gradient(circle at 50% 50%,#e3d6e0a3 0%,#A63F9F77 12%,#5A58A6ba 25%,#391859 54%,transparent 66%);animation:mm-breathe 7s ease-in-out infinite alternate;transition:transform 1.3s cubic-bezier(.19,1,.22,1),opacity 1.1s}
.mm-portal:before{inset:-2%;border:7px solid transparent;border-top-color:#FFF794;border-left-color:#A63F9F;border-bottom-color:#FFF79499;border-right-color:#5A58A6;border-radius:50%;box-shadow:0 0 10px #FFF794,0 0 38px #A63F9F,0 0 90px #5A58A6,inset 0 0 30px #FFF79488,inset 0 0 85px #A63F9F77;animation:mm-spin 24s linear infinite}
.mm-portal:after{inset:-8%;border:1px solid #FFF79488;box-shadow:0 0 28px #FFF79466;animation:mm-spin 65s linear infinite reverse}
.mm-portal-core{position:absolute;inset:11%;margin:0;border-radius:50%;display:grid;place-items:center;font-size:clamp(4rem,9vw,8rem);color:#FFF7949c;text-shadow:0 0 30px #FFF794,0 0 75px #FFF794;background:radial-gradient(ellipse at 50% 50%,#FFF79444,#A63F9F3d 30%,#391859a8 65%,transparent 75%);box-shadow:inset 0 0 55px #FFF79477,0 0 50px #A63F9F55;animation:mm-core 4s ease-in-out infinite alternate}
.mm-portal-core:before,.mm-portal-core:after{content:"✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦";position:absolute;inset:-12%;display:grid;place-items:center;border-radius:50%;font-size:clamp(.7rem,1.4vw,1.3rem);letter-spacing:1.4rem;color:#FFF794a9;animation:mm-spin 40s linear infinite;pointer-events:none}
.mm-portal-core:after{content:"✦ ✧ ✦ ✧";inset:9%;letter-spacing:.9rem;font-size:1rem;animation-duration:26s;animation-direction:reverse;color:#E3D6E0a6}
.mm-hero-text{z-index:5;pointer-events:none}.mm-hero-text .mm-btn{pointer-events:auto}.mm-hero-text h1{text-shadow:0 4px 32px #17091f,0 0 15px #391859}.mm-stars{background-image:radial-gradient(circle,#FFF794 1px,transparent 2px),radial-gradient(circle,#E3D6E0 1.3px,transparent 2px),radial-gradient(circle,#FFF794 2px,transparent 3px);background-size:83px 119px,167px 191px,271px 233px;animation:mm-glimmer 5s ease-in-out infinite alternate}
.mm-hero.mm-opening .mm-portal{transform:scale(3.8);opacity:0;animation:none}.mm-hero.mm-opening .mm-hero-text{animation:mm-vanish .9s ease forwards}.mm-hero.mm-opening .mm-stars{animation:mm-flash 1.2s ease forwards}
@keyframes mm-breathe{from{filter:brightness(.8);transform:scale(.91)}to{filter:brightness(1.22);transform:scale(1.04)}}@keyframes mm-core{from{filter:brightness(.85)}to{filter:brightness(1.4)}}@keyframes mm-lightspin{to{transform:rotate(360deg)}}@keyframes mm-vanish{to{opacity:0;transform:scale(1.3)}}@keyframes mm-flash{50%{opacity:1}100%{opacity:0}}
@media(max-width:700px){.mm-portal{width:85vw}.mm-hero-text h1{font-size:clamp(3.5rem,15vw,6rem)!important}.mm-hero-text p{max-width:85vw;margin:30px auto}.mm-portal-core:before,.mm-portal-core:after{letter-spacing:.5rem}}
@media(prefers-reduced-motion:reduce){.mm-hero.mm-opening .mm-portal,.mm-hero.mm-opening .mm-hero-text,.mm-hero.mm-opening .mm-stars{animation:none!important;transition:none!important}}
