/* Optional, first-visit opening. Hidden by default so content works without JS. */
.opening[hidden]{display:none!important}
.opening{position:fixed;inset:0;z-index:900;background:#1d261c;color:#f3f6eb;display:flex;flex-direction:column;justify-content:space-between;padding:32px 5%;visibility:hidden;pointer-events:none;isolation:isolate;overflow:hidden}
.intro-pending .opening,.intro-active .opening{visibility:visible;pointer-events:auto}
html.intro-active{overflow:hidden}
.opening::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.15;background:linear-gradient(90deg,transparent calc(50% - .5px),#859778 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#859778 50%,transparent calc(50% + .5px));pointer-events:none}
.opening-top,.opening-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:9px;letter-spacing:1.6px;position:relative;z-index:3}
.opening-top{border-bottom:1px solid #72836455;padding-bottom:20px}.opening-brand{font-size:17px;letter-spacing:-.7px;font-weight:600}.opening-brand>span{font-weight:400;color:#c5d2b8}
.opening-skip{border:1px solid #a6b99880;border-radius:40px;background:transparent;color:#e5eddb;cursor:pointer;font-size:10px;letter-spacing:1px;display:flex;gap:18px;padding:11px 17px;align-items:center}.opening-skip span{font-size:17px;line-height:1}.opening-skip:hover{background:#d9f98b;color:#20251f}.opening-skip:focus-visible{outline:2px solid #d9f98b;outline-offset:5px}
.opening-stage{display:grid;place-items:center;position:relative;flex:1;min-height:0}
.opening-orbit{position:absolute;width:min(49vw,510px);aspect-ratio:1;border:1px solid #afc68d33;border-radius:50%;opacity:0;transform:scale(.65) rotate(-70deg)}
.opening-orbit::before{content:'';position:absolute;inset:14%;border:1px solid #afc68d22;border-radius:50%}.opening-orbit::after{content:'';position:absolute;top:50%;left:-4px;width:8px;height:8px;border-radius:50%;background:#d9f98b;box-shadow:0 0 22px #d9f98b33}
.opening-words{position:relative;text-align:center;font-size:clamp(45px,7.8vw,112px);line-height:1.05;font-weight:400;letter-spacing:-.065em;display:flex;gap:.22em;flex-wrap:wrap;justify-content:center;width:100%}.opening-word{overflow:hidden;display:block;padding:0 .04em .13em}.opening-word>span{display:block;transform:translateY(120%) rotate(5deg);transform-origin:left bottom;opacity:0}.opening-word:nth-child(2){color:#d9f98b}
.opening-lockup{position:absolute;text-align:center;opacity:0;transform:translateY(26px);padding:20px;max-width:100%}.opening-lockup-mark{display:block;width:48px;height:48px;border:3px solid #d9f98b;border-radius:50%;margin:0 auto 23px;position:relative}.opening-lockup-mark::after{content:'';position:absolute;right:-6px;bottom:0;width:13px;height:13px;border-radius:50%;background:#d9f98b;border:4px solid #1d261c}.opening-lockup-name{display:block;font-size:clamp(38px,7.4vw,94px);letter-spacing:-.055em;font-weight:500;line-height:1.2}.opening-lockup-name>span{font-weight:400;color:#d9f98b}.opening-lockup-tagline{display:block;font-size:clamp(8px,1vw,12px);letter-spacing:.34em;color:#bacbab;margin-top:18px}
.opening-bottom{padding-top:18px;border-top:1px solid #72836455;color:#b9c8aa;font-size:8px;letter-spacing:1px}.opening-progress{position:absolute;top:-1px;left:0;width:100%;height:1px;background:#d9f98b;transform:scaleX(0);transform-origin:left}.opening-bottom>span:last-child{color:#d9f98b}
.intro-active .opening-orbit{animation:openingOrbit 2.7s cubic-bezier(.22,.61,.36,1) both}
.intro-active .opening-word>span{animation:openingWord .75s cubic-bezier(.16,1,.3,1) both}.intro-active .opening-word:nth-child(1)>span{animation-delay:.1s}.intro-active .opening-word:nth-child(2)>span{animation-delay:.32s}.intro-active .opening-word:nth-child(3)>span{animation-delay:.54s}
.intro-active .opening-words{animation:openingWordsOut .55s cubic-bezier(.7,0,.3,1) 1.6s both}
.intro-active .opening-lockup{animation:openingLockup .85s cubic-bezier(.16,1,.3,1) 1.86s both}
.intro-active .opening-progress{animation:openingProgress 2.95s cubic-bezier(.45,0,.2,1) both}
.opening.is-leaving{clip-path:inset(0 0 0 0);animation:openingExit .72s cubic-bezier(.76,0,.24,1) forwards;pointer-events:none}
.intro-reveal .studio-hero-copy{animation:openingHero .9s cubic-bezier(.16,1,.3,1) both}.intro-reveal .studio-hero-photo{animation:openingPhoto 1.15s cubic-bezier(.16,1,.3,1) both}
.intro-replay{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:#c7d1bc;cursor:pointer;font-family:inherit;font-size:10px;padding:6px 0;text-decoration:none}.intro-replay:hover{color:#d9f98b}.intro-replay span{font-size:16px}
@keyframes openingWord{to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes openingWordsOut{to{transform:translateY(-35px);opacity:0;filter:blur(5px)}}
@keyframes openingLockup{to{opacity:1;transform:translateY(0)}}
@keyframes openingOrbit{0%{opacity:0;transform:scale(.65) rotate(-70deg)}30%{opacity:1}100%{opacity:.55;transform:scale(1.15) rotate(65deg)}}
@keyframes openingProgress{to{transform:scaleX(1)}}
@keyframes openingExit{to{clip-path:inset(0 0 100% 0)}}
@keyframes openingHero{from{opacity:.2;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes openingPhoto{from{opacity:.4;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:650px){.opening{padding:22px 6% 25px}.opening-top{padding-bottom:18px}.opening-brand{font-size:15px}.opening-skip{font-size:9px;padding:10px 13px;gap:13px}.opening-words{flex-direction:column;gap:0;font-size:clamp(52px,15.8vw,84px);line-height:1.05;letter-spacing:-.06em}.opening-word{padding-bottom:.1em}.opening-orbit{width:82vw}.opening-lockup-name{font-size:clamp(35px,9.5vw,61px)}.opening-lockup{padding:10px}.opening-lockup-tagline{font-size:8px;letter-spacing:.23em}.opening-bottom{font-size:7px;gap:12px;letter-spacing:.6px}}
@media(max-height:500px) and (min-width:651px){.opening{padding-top:16px;padding-bottom:16px}.opening-words{font-size:8vw}.opening-lockup-mark{width:30px;height:30px;margin-bottom:10px}.opening-lockup-name{font-size:50px}.opening-lockup-tagline{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.opening{display:none!important}html.intro-active{overflow:visible}.intro-replay{display:none}.intro-reveal .studio-hero-copy,.intro-reveal .studio-hero-photo{animation:none!important}}
