html.welcome-pending{overflow:hidden}
.mm-welcome[hidden]{display:none}
.mm-welcome{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:auto;background:#fff;color:#1b3157;isolation:isolate;cursor:pointer;padding:36px 24px;min-height:100svh;transition:opacity .85s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),filter 1s}
.welcome-space{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 44%,#fff 25%,#f3f6fa80 100%);perspective:900px}
.welcome-space i{position:absolute;left:50%;top:50%;width:min(90vw,1000px);aspect-ratio:1;border:1px solid #1b31570a;border-radius:50%;transform:translate(-50%,-50%) rotateX(50deg);transition:transform 1.2s cubic-bezier(.2,.7,.2,1),opacity 1s}
.welcome-space i:nth-child(2){width:min(115vw,1300px);transform:translate(-50%,-50%) rotateX(50deg) rotateY(18deg)}
.welcome-space i:nth-child(3){width:min(140vw,1600px);border-color:#c73c3c0b;transform:translate(-50%,-50%) rotateX(50deg) rotateY(-18deg)}
.welcome-content{text-align:center;width:min(780px,100%);margin:auto}
.welcome-logo{display:block;border:0;background:transparent;padding:12px;margin:0 auto 25px;cursor:pointer;border-radius:12px}
.welcome-logo img{display:block;width:clamp(135px,16vw,205px);height:auto;user-select:none;-webkit-user-drag:none}
.welcome-eyebrow{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#7a8493;margin:0 0 20px}
.welcome-content h1{font-size:clamp(32px,4.5vw,58px);line-height:1.08;letter-spacing:-.055em;font-weight:550;margin:0 auto;max-width:740px}
.welcome-content h1 em{font-style:normal;color:#a93a40}
.welcome-description{font-size:15px;line-height:1.85;color:#687383;max-width:520px;margin:24px auto 30px}
.welcome-enter{display:inline-flex;align-items:center;gap:32px;border:1px solid #1b31571f;border-radius:40px;padding:15px 24px;background:#1b3157;color:white;font-size:12px;min-height:50px;transition:box-shadow .3s,transform .3s;cursor:pointer}
.welcome-enter svg{width:20px;height:20px}.welcome-enter:hover{transform:translateY(-2px);box-shadow:0 10px 28px #1b315726}
.welcome-hint{font-size:10px;letter-spacing:.025em;color:#9199a4;margin-top:22px}
.welcome-logo:focus-visible,.welcome-enter:focus-visible{outline:2px solid #c73c3c;outline-offset:6px}
.mm-welcome.is-entering{pointer-events:none;opacity:0;transform:scale(1.35);filter:blur(8px)}
.mm-welcome.is-entering .welcome-space i{transform:translate(-50%,-50%) rotateX(0) scale(2.4);opacity:0}
body.welcome-reveal #main{animation:welcome-arrive 1.15s cubic-bezier(.2,.7,.2,1) both;transform-origin:50% 45%}
@keyframes welcome-arrive{from{opacity:.25;filter:blur(4px);transform:scale(.91)}to{opacity:1;filter:blur(0);transform:none}}
@media(max-width:600px){.mm-welcome{padding:28px 25px}.welcome-logo{margin-bottom:20px}.welcome-description{font-size:13px;margin:22px auto 26px}.welcome-content h1{font-size:36px}.welcome-hint{font-size:9px}}
@media(max-height:650px){.welcome-logo img{width:110px}.welcome-logo{margin-bottom:10px}.welcome-content h1{font-size:30px}.welcome-eyebrow{margin-bottom:12px}.welcome-description{margin:16px auto;font-size:12px}.welcome-hint{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.mm-welcome{transition:opacity .2s;transform:none!important;filter:none!important}.welcome-space i{transition:none}.welcome-enter{transition:none}.welcome-enter:hover{transform:none}body.welcome-reveal #main{animation:none}}
/* Quiet travelling highlights behind the welcome composition. */
.welcome-trails{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.welcome-trails svg{position:absolute;inset:-10%;width:120%;height:120%;overflow:visible;fill:none}
.welcome-trails .trail-base{stroke:#9daec0;stroke-opacity:.09;stroke-width:.65}
.welcome-trails .trail-glow{stroke:url(#welcome-line-light);stroke-width:1.1;stroke-linecap:round;stroke-dasharray:90 1110;animation:welcome-line-travel 18s linear infinite;filter:drop-shadow(0 0 3px #a9bfd775)}
.welcome-trails .trail-glow:nth-of-type(2){animation-duration:24s;animation-delay:-9s;opacity:.6}
.welcome-trails .trail-glow:nth-of-type(3){animation-duration:22s;animation-delay:-14s;opacity:.45}
.welcome-trails .trail-glow:nth-of-type(4){animation-duration:28s;animation-delay:-6s;opacity:.55}
@keyframes welcome-line-travel{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.welcome-trails .trail-glow{animation:none;opacity:.22}}
/* Entry choreography: the environment opens outward while the identity recedes. */
.mm-welcome{perspective:1200px;transform-style:preserve-3d}
.welcome-content{transform-style:preserve-3d}
.mm-welcome.is-entering{transform:none;filter:none;opacity:1;animation:welcome-curtain-open 1.8s ease forwards}
.mm-welcome.is-entering .welcome-logo{animation:welcome-logo-recede 1.6s cubic-bezier(.25,.55,.25,1) forwards;transform-origin:center}
.mm-welcome.is-entering .welcome-content>:not(.welcome-logo){animation:welcome-copy-recede 1.05s ease forwards}
.mm-welcome.is-entering .welcome-trails{animation:welcome-trails-expand 1.8s cubic-bezier(.15,.65,.25,1) forwards;transform-origin:50% 45%}
.mm-welcome.is-entering .welcome-space{animation:welcome-space-expand 1.8s cubic-bezier(.15,.65,.25,1) forwards}
.mm-welcome.is-entering .welcome-space i{transform:translate(-50%,-50%) rotateX(0) scale(2.8);opacity:.35;transition-duration:1.7s}
body.welcome-reveal #main{animation:welcome-arrive-depth 1.8s cubic-bezier(.2,.65,.2,1) both}
@keyframes welcome-logo-recede{0%{transform:translateZ(0) scale(1);opacity:1;filter:blur(0)}35%{opacity:.95;filter:blur(.5px)}100%{transform:translateZ(-650px) scale(.25);opacity:0;filter:blur(16px)}}
@keyframes welcome-copy-recede{0%{opacity:1;transform:translateZ(0);filter:blur(0)}100%{opacity:0;transform:translateZ(-180px) translateY(8px);filter:blur(7px)}}
@keyframes welcome-trails-expand{0%{transform:scale(1);opacity:1;filter:blur(0)}35%{opacity:1}100%{transform:scale(3.2);opacity:0;filter:blur(3px)}}
@keyframes welcome-space-expand{0%{transform:scale(1);opacity:1}100%{transform:scale(2.4);opacity:0}}
@keyframes welcome-curtain-open{0%,20%{background-color:#fff;opacity:1}65%{background-color:#ffffff77;opacity:1}100%{background-color:#ffffff00;opacity:0}}
@keyframes welcome-arrive-depth{0%,15%{opacity:.15;filter:blur(8px);transform:scale(.88)}100%{opacity:1;filter:blur(0);transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.mm-welcome.is-entering{animation:welcome-curtain-open .2s linear forwards}.mm-welcome.is-entering .welcome-logo,.mm-welcome.is-entering .welcome-content>:not(.welcome-logo),.mm-welcome.is-entering .welcome-trails,.mm-welcome.is-entering .welcome-space{animation:none}body.welcome-reveal #main{animation:none}}
.mm-welcome{padding-bottom:110px}
.welcome-footer{position:absolute;bottom:24px;left:28px;right:28px;display:flex;justify-content:center;align-items:center;min-height:45px;cursor:default}
.welcome-social{display:flex;align-items:center;gap:14px}
.welcome-social-link{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#1b3157;border:1px solid #1b315715;transition:background .25s,transform .25s}
.welcome-social-link svg,.welcome-social-link img{width:19px;height:19px;object-fit:contain}
.welcome-social-link:hover{background:#eff3f8;transform:translateY(-2px)}
.welcome-social-link:focus-visible{outline:2px solid #c73c3c;outline-offset:3px}.welcome-social-link.unconfigured{opacity:.3}
.welcome-credit{position:absolute;right:0;display:flex;align-items:center;gap:9px;font-size:9px;color:#7a8493}
.welcome-credit .systems-logo{width:95px;height:26px}
.mm-welcome.is-entering .welcome-footer{animation:welcome-copy-recede .7s ease forwards;pointer-events:none}
@media(max-width:700px){.mm-welcome{padding-bottom:140px}.welcome-footer{bottom:18px;flex-direction:column;gap:15px}.welcome-credit{position:static}.welcome-social{gap:12px}}
@media(max-height:650px){.welcome-footer{position:relative;inset:auto;margin-top:25px;width:100%}.mm-welcome{padding-bottom:24px;display:flex;flex-direction:column}.welcome-content{margin:auto}.welcome-credit{position:static}.welcome-footer{gap:16px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.welcome-social-link{transition:none}.welcome-social-link:hover{transform:none}}
.mm-welcome .welcome-footer{padding:0;border:0;background:transparent;margin:0}
.welcome-credit{text-decoration:none}.welcome-credit img.systems-logo{object-fit:contain}

/* Balanced footer: ownership, contact channels, design credit. */
.mm-welcome .welcome-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:20px}
.welcome-copyright{font-size:10px;line-height:1.6;color:#7a8493;letter-spacing:.02em;max-width:260px;text-align:left}
.welcome-social{grid-column:2}
.welcome-credit{position:static;justify-self:end}
@media(max-width:700px){
 .mm-welcome{padding-bottom:170px}
 .mm-welcome .welcome-footer{grid-template-columns:1fr;gap:12px}
 .welcome-social{grid-column:1;grid-row:1;justify-self:center}
 .welcome-credit{grid-row:2;justify-self:center}
 .welcome-copyright{grid-row:3;justify-self:start;max-width:none;font-size:9px}
}
@media(max-height:650px){.mm-welcome{padding-bottom:24px}.mm-welcome .welcome-footer{margin-top:25px}}
/* Keep both legal and design credits on the same horizontal axis. */
@media(min-width:701px){
 .mm-welcome .welcome-footer{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}
 .welcome-copyright{max-width:none;white-space:nowrap;line-height:26px;font-size:clamp(8px,.82vw,10px)}
 .welcome-credit{align-self:center;line-height:26px}
}
@media(max-width:700px){.welcome-copyright{white-space:nowrap;font-size:clamp(7px,2.2vw,9px)}}
.welcome-social-link{width:calc(var(--social-icon-size,28px) + 16px);height:calc(var(--social-icon-size,28px) + 16px);flex-shrink:0}.welcome-social-link img{width:var(--social-icon-size,28px);height:var(--social-icon-size,28px);object-fit:contain}.welcome-social{flex-wrap:wrap;justify-content:center;max-width:100%}
