:root {
    --umf-navy: #082f55;
    --umf-navy-deep: #031a31;
    --umf-gold: #dca532;
    --umf-cream: #fff8e8;
}

.umf-welcome {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: var(--umf-cream);
    background: var(--umf-navy-deep);
    opacity: 1;
    transition: opacity .9s ease;
}

.umf-welcome[hidden] { display: none !important; }

.umf-welcome__door {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50.5%;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(255,255,255,.035), transparent 18%, transparent 82%, rgba(0,0,0,.16)),
        repeating-linear-gradient(0deg, transparent 0 86px, rgba(220,165,50,.16) 87px 89px),
        linear-gradient(135deg, var(--umf-navy) 0%, #064272 48%, var(--umf-navy-deep) 100%);
    border-color: var(--umf-gold);
    border-style: solid;
    transition: transform 1.8s cubic-bezier(.72,0,.2,1), filter 1.7s ease, opacity 1.65s ease;
}

.umf-welcome__door::before,
.umf-welcome__door::after {
    content: "";
    position: absolute;
    inset: 5.5vh 7%;
    border: clamp(2px, .28vw, 5px) solid var(--umf-gold);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.12), 0 0 32px rgba(220,165,50,.12);
}

.umf-welcome__door::after {
    inset: 9vh 11%;
    border-width: 1px;
    opacity: .7;
}

.umf-welcome__door--left {
    left: 0;
    border-width: 0 2px 0 0;
    transform-origin: left center;
}

.umf-welcome__door--right {
    right: 0;
    border-width: 0 0 0 2px;
    transform-origin: right center;
}

.umf-welcome__door span {
    position: absolute;
    top: 50%;
    width: 18px;
    height: 18px;
    border: 3px solid var(--umf-gold);
    border-radius: 50%;
    box-shadow: 0 0 0 7px var(--umf-navy-deep), 0 0 0 9px var(--umf-gold);
}

.umf-welcome__door--left span { right: 28px; }
.umf-welcome__door--right span { left: 28px; }

.umf-welcome__center {
    position: relative;
    z-index: 2;
    width: min(88vw, 720px);
    padding: 3vh 4vw;
    text-align: center;
    text-shadow: 0 2px 16px rgba(0,0,0,.75);
    transition: transform 1.4s ease, opacity 1.25s ease, filter 1.4s ease;
}

.umf-welcome__emblem {
    display: block;
    width: clamp(150px, 23vw, 290px);
    height: auto;
    margin: 0 auto 1rem;
    filter: drop-shadow(0 10px 24px rgba(0,0,0,.45));
}

.umf-welcome__eyebrow {
    margin: 0 0 .55rem;
    color: var(--umf-gold);
    font: 600 clamp(.72rem, 1.3vw, 1rem)/1.35 Arial, sans-serif;
    letter-spacing: .22em;
}

.umf-welcome h1 {
    margin: 0;
    color: #fff;
    font: 700 clamp(1.65rem, 4.4vw, 4rem)/1.08 Arial, sans-serif;
    letter-spacing: .045em;
}

.umf-welcome h1 b { color: var(--umf-gold); }

.umf-welcome__message {
    margin: .8rem 0 0;
    font: 400 clamp(.86rem, 1.45vw, 1.08rem)/1.5 Georgia, serif;
    letter-spacing: .035em;
}

.umf-welcome__skip {
    position: absolute;
    z-index: 4;
    right: max(22px, env(safe-area-inset-right));
    bottom: max(20px, env(safe-area-inset-bottom));
    padding: .68rem 1rem;
    color: #fff;
    background: rgba(3,26,49,.72);
    border: 1px solid var(--umf-gold);
    border-radius: 3px;
    font: 600 .78rem/1 Arial, sans-serif;
    letter-spacing: .08em;
    cursor: pointer;
}

.umf-welcome.is-opening .umf-welcome__door--left {
    transform: translateX(-104%) scale(1.03);
    filter: blur(9px);
    opacity: .15;
}

.umf-welcome.is-opening .umf-welcome__door--right {
    transform: translateX(104%) scale(1.03);
    filter: blur(9px);
    opacity: .15;
}

.umf-welcome.is-opening .umf-welcome__center {
    transform: scale(1.08);
    filter: blur(7px);
    opacity: 0;
}

.umf-welcome.is-dissolving { opacity: 0; pointer-events: none; }

body.umf-welcome-active { overflow: hidden !important; }

@media (max-width: 600px) {
    .umf-welcome__door::before { inset: 3vh 8%; }
    .umf-welcome__door::after { inset: 5vh 13%; }
    .umf-welcome__door span { display: none; }
    .umf-welcome__center { padding-bottom: 10vh; }
}

@media (prefers-reduced-motion: reduce) {
    .umf-welcome__door { transition: opacity .45s ease; }
    .umf-welcome.is-opening .umf-welcome__door { transform: none; opacity: 0; filter: none; }
    .umf-welcome__center { transition: opacity .4s ease; }
}
