/* A studio ident: greet the player, land the house, reveal the stationary original wordmark. */
.intro-screen{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;isolation:isolate;overflow:hidden;background:#1c1e3f;color:#faefd9;opacity:1;transition:opacity .85s,transform 1s}.intro-screen.closing{opacity:0;transform:scale(1.02);pointer-events:none}.intro-screen:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 43%,#322d521a,transparent 65%);pointer-events:none}.intro-top{position:absolute;z-index:10;top:30px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;font:400 10px var(--display);letter-spacing:2px;color:#a99bbd}.intro-top button{font:400 12px var(--body);color:#d7c8e7;letter-spacing:0;border:1px solid #b5a0ce45;background:none;border-radius:30px;padding:9px 17px}.intro-top button:hover{border-color:#c5afe1}.intro-top button span{margin-left:13px}.intro-greeting{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;perspective:800px;opacity:1;pointer-events:none}.intro-greeting .greeting-line{display:block;font:400 clamp(28px,3.4vw,45px)/1.5 var(--display);font-variation-settings:'SOFT' 90,'WONK' 1;letter-spacing:-.5px;color:#cbb7e9}.intro-greeting .greeting-name{display:block;font:650 clamp(75px,8.4vw,108px)/1.2 var(--display);font-variation-settings:'SOFT' 100,'WONK' 1;letter-spacing:-4px;color:#faefd9;margin-top:2px}.intro-greeting i{display:inline-block;font-style:normal;opacity:0;transform-origin:50% 100%}.intro-greeting small{font:400 14px var(--body);letter-spacing:.2px;color:#b7a4ca;margin-top:27px;opacity:0}.ident-stage{position:absolute;z-index:2;left:50%;top:50%;width:min(96vw,1080px);aspect-ratio:1.5;transform:translate(-50%,-50%)}.ident-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.ident-house,.ident-studio,.ident-halo,.ident-impact{opacity:0;transform-box:view-box}.ident-house{transform-origin:768px 510px}.ident-halo{transform-origin:768px 380px}.ident-impact{transform-origin:768px 520px}.ident-word-scan{transform:translateX(-1100px);transform-box:view-box}.ident-tag-scan{transform:scaleX(0);transform-origin:767.5px 860px;transform-box:view-box}.intro-brand{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;mask-image:radial-gradient(ellipse,#000 50%,transparent 94%)}.intro-bottom{position:absolute;z-index:10;left:50%;bottom:30px;transform:translateX(-50%);text-align:center;width:280px;font:400 11px var(--body);letter-spacing:.2px;color:#b09ac5}.intro-progress{width:165px;height:1px;background:#c5aed126;margin:14px auto 0}.intro-progress i{display:block;height:100%;width:0;background:#b7a1d5}
.is-playing .intro-greeting{animation:greeting-exit .42s 2.68s both}.is-playing .intro-greeting i{animation:friendly-letter .42s var(--at) both cubic-bezier(.18,.8,.28,1.15)}.is-playing .intro-greeting small{animation:friendly-small .5s 1.4s both}.is-playing .ident-house{animation:house-land .9s 3.07s both}.is-playing .ident-impact{animation:landing-ring .65s 3.48s both}.is-playing .ident-halo{animation:halo-arrive 1.15s 3.2s both}.is-playing .ident-studio{animation:studio-resolve .6s 3.9s both}.is-playing .ident-word-scan{animation:word-resolve 1.15s 4.3s both linear}.is-playing .ident-tag-scan{animation:slogan-resolve .85s 5.5s both cubic-bezier(.3,0,.2,1)}.is-playing .intro-brand{animation:original-handoff .75s 6.65s both}.is-playing .ident-art{animation:assembled-handoff .6s 7s both}.is-playing .intro-progress i{animation:ident-progress 9s linear both}
@keyframes friendly-letter{0%{opacity:0;transform:translateY(11px) rotateX(-55deg) scale(.93)}70%{opacity:1;transform:translateY(-2px) rotateX(0) scale(1.015)}100%{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}@keyframes friendly-small{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes greeting-exit{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(1.025)}}
@keyframes house-land{0%{opacity:0;transform:translateY(-100px) scale(.62) rotate(-5deg)}48%{opacity:1;transform:translateY(7px) scale(1.055,.94) rotate(.8deg)}70%{opacity:1;transform:translateY(-9px) scale(.985,1.025) rotate(-.35deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes landing-ring{0%{opacity:0;transform:scaleX(.35) scaleY(.8)}22%{opacity:.35}100%{opacity:0;transform:scaleX(1.6) scaleY(1.2)}}@keyframes halo-arrive{from{opacity:0;transform:scale(.8)}to{opacity:.65;transform:scale(1)}}
@keyframes studio-resolve{from{opacity:0}to{opacity:1}}
@keyframes word-resolve{from{transform:translateX(-1100px)}to{transform:translateX(0)}}
@keyframes slogan-resolve{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes original-handoff{from{opacity:0}to{opacity:1}}@keyframes assembled-handoff{from{opacity:1}to{opacity:0}}@keyframes ident-progress{to{width:100%}}
@media(max-width:600px){.intro-top{top:23px;left:22px;right:22px;font-size:9px;letter-spacing:1.2px}.intro-top button{font-size:11px;padding:9px 15px}.intro-top button span{margin-left:10px}.intro-greeting .greeting-line{font-size:29px;letter-spacing:-.3px}.intro-greeting .greeting-name{font-size:76px;letter-spacing:-2.8px}.intro-greeting small{font-size:13px;margin-top:23px}.ident-stage{width:120vw;max-width:560px;top:48%}.intro-bottom{bottom:33px;font-size:10px}.intro-progress{width:150px}}
.ident-mobile{display:none}
/* Mobile uses prefiltered crops of the same logo, without live SVG filters. */
@media(max-width:900px),(hover:none) and (pointer:coarse){
 .intro-pending #site-shell{visibility:hidden}
 .intro-screen.closing{transform:none}
 .ident-art{display:none}
 .ident-mobile{display:block;position:absolute;inset:0;contain:layout paint}
 .ident-mobile>span{position:absolute;display:block;opacity:0;background-size:100% 100%;background-repeat:no-repeat}
 .mobile-ident-halo{left:30.14323%;top:7.32422%;width:39.71354%;height:59.57031%;border-radius:50%;background:#242850;transform-origin:center}
 .mobile-ident-house{left:37.4349%;top:17.57813%;width:24.73958%;height:33.39844%;background-image:url('assets/intro-mobile/house.png');transform-origin:50.78947% 96.49123%}
 .mobile-ident-studio{left:37.89063%;top:54.6875%;width:24.08854%;height:4.6875%;background-image:url('assets/intro-mobile/studio.png')}
 /* Feathered windows move over counter-moving crops, keeping the lettering
    stationary. Only transforms animate; the soft masks stay unchanged. */
 .mobile-ident-word{left:16.92708%;top:57.12891%;width:71.61458%;height:21.19141%;overflow:hidden;mask-image:linear-gradient(90deg,#000 94%,transparent)}
 .mobile-ident-word:before{content:'';position:absolute;left:3.18182%;top:0;width:87.72727%;height:100%;background:url('assets/intro-mobile/word.png') 0 0/100% 100% no-repeat}
 .mobile-ident-tagline{left:24.73958%;top:80.46875%;width:50.45573%;height:6.25%;overflow:hidden}
 .mobile-ident-tagline>i{position:absolute;top:0;display:block;width:55.16129%;height:100%;overflow:hidden}
 .mobile-tag-left{left:-5.16129%;mask-image:linear-gradient(90deg,transparent,#000 8%)}
 .mobile-tag-right{left:50%;mask-image:linear-gradient(90deg,#000 92%,transparent)}
 .mobile-ident-tagline>i:before{content:'';position:absolute;top:0;width:90.64327%;height:100%;background-image:url('assets/intro-mobile/tagline.png');background-size:200% 100%;background-repeat:no-repeat}
 .mobile-tag-left:before{left:9.35673%;background-position:left}
 .mobile-tag-right:before{left:0;background-position:right}
 .is-playing .mobile-ident-house{animation:mobile-house-land .9s 3.07s both;will-change:transform,opacity}
 .is-playing .mobile-ident-halo{animation:halo-arrive 1.15s 3.2s both;will-change:transform,opacity}
 .is-playing .mobile-ident-studio{animation:studio-resolve .6s 3.9s both;will-change:opacity}
 .is-playing .mobile-ident-word{animation:mobile-word-window 1.15s 4.3s both linear;will-change:transform}
 .is-playing .mobile-ident-word:before{animation:mobile-word-content 1.15s 4.3s both linear;will-change:transform}
 .is-playing .mobile-ident-tagline{opacity:1}
 .is-playing .mobile-tag-left{animation:mobile-tag-left-window .85s 5.5s both cubic-bezier(.3,0,.2,1);will-change:transform}
 .is-playing .mobile-tag-left:before{animation:mobile-tag-left-content .85s 5.5s both cubic-bezier(.3,0,.2,1);will-change:transform}
 .is-playing .mobile-tag-right{animation:mobile-tag-right-window .85s 5.5s both cubic-bezier(.3,0,.2,1);will-change:transform}
 .is-playing .mobile-tag-right:before{animation:mobile-tag-right-content .85s 5.5s both cubic-bezier(.3,0,.2,1);will-change:transform}
 .is-playing .ident-mobile{animation:assembled-handoff .6s 7s both}
 .is-playing .intro-brand{will-change:opacity}
 .intro-progress i{width:100%;transform:scaleX(0);transform-origin:left}
 .intro-screen.is-playing .intro-progress i{animation:mobile-ident-progress 9s linear both}
}
@keyframes mobile-house-land{0%{opacity:0;transform:translateY(-29.24%) scale(.62) rotate(-5deg)}48%{opacity:1;transform:translateY(2.05%) scale(1.055,.94) rotate(.8deg)}70%{opacity:1;transform:translateY(-2.63%) scale(.985,1.025) rotate(-.35deg)}100%{opacity:1;transform:none}}
@keyframes mobile-word-window{from{opacity:1;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}
@keyframes mobile-word-content{from{transform:translateX(113.98964%)}to{transform:translateX(0)}}
@keyframes mobile-tag-left-window{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes mobile-tag-left-content{from{transform:translateX(-110.32258%)}to{transform:translateX(0)}}
@keyframes mobile-tag-right-window{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes mobile-tag-right-content{from{transform:translateX(110.32258%)}to{transform:translateX(0)}}
@keyframes mobile-ident-progress{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.intro-greeting,.ident-art,.ident-mobile{display:none}.intro-screen.is-playing .intro-brand{animation:none;opacity:1}.intro-screen.is-playing .intro-progress i{animation:none;width:100%;transform:none}}
