/* Interactive entry inspired by the approved arch-and-door mark. The logo assets stay untouched. */
.portal-entry[hidden]{display:none!important}
body.portal-locked{overflow:hidden}
.portal-entry.portal-official{display:block;background:transparent;color:#08476c}.portal-entry.portal-official:before,.portal-entry.portal-official:after{display:none}
.portal-entry{position:fixed;inset:0;z-index:200;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;background:radial-gradient(circle at 50% 58%,#176489 0%,#08476c 28%,#052d48 68%,#04243b 100%);color:#fff}
.portal-entry:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff0c 1px,transparent 1px),linear-gradient(#ffffff08 1px,transparent 1px);background-size:9vw 9vw;mask-image:linear-gradient(transparent,#0008,transparent);pointer-events:none}
.portal-entry:after{content:"";position:absolute;left:50%;bottom:-26vw;width:70vw;height:42vw;transform:translateX(-50%);border-radius:50%;background:#fbc10017;filter:blur(80px);pointer-events:none}
.portal-top,.portal-bottom{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:20px clamp(20px,3vw,48px)}
.portal-top img{width:clamp(165px,18vw,240px);height:auto}
.portal-skip{border:0;border-bottom:1px solid #ffffff80;padding:.3rem 0;background:none;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.06em;cursor:pointer}
.portal-skip:hover{color:var(--yellow);border-color:var(--yellow)}
.portal-bottom{font-size:.62rem;font-weight:700;letter-spacing:.15em;color:#b9d4e1}
.portal-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.45rem,1.3vh,1rem);min-height:0;padding:.5rem 16px;text-align:center}
.portal-kicker{margin:0;color:var(--yellow);font-size:.68rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.portal-door{position:relative;display:block;flex:none;width:clamp(175px,20vw,300px);height:clamp(260px,45vh,440px);border:0;padding:0;background:transparent;cursor:pointer;perspective:900px;filter:drop-shadow(0 24px 26px #001d32a0);transition:transform .4s cubic-bezier(.22,1,.36,1),filter .4s ease}
.portal-door:hover,.portal-door:focus-visible{transform:scale(1.045);filter:drop-shadow(0 30px 36px #001d32c0)}
.portal-door:focus-visible{outline:0}
.portal-door:focus-visible .portal-window{box-shadow:0 0 0 3px var(--yellow)}
.portal-window{position:absolute;inset:0;display:block;overflow:hidden;border:7px solid #fff;border-bottom:0;border-radius:48% 48% 0 0 / 27% 27% 0 0;background:#0d4f75;transform-style:preserve-3d}
.portal-window:before{content:"";position:absolute;z-index:5;top:18%;bottom:0;left:50%;width:3px;background:var(--yellow);transform:translateX(-50%);pointer-events:none}
.portal-window img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% center;transform:scale(1.18);filter:saturate(.9) brightness(.85)}
.portal-leaf{position:absolute;z-index:3;top:23%;bottom:0;width:50%;background:linear-gradient(115deg,#08476c,#063653 70%);backface-visibility:hidden;box-shadow:inset 0 0 0 1px #ffffff22;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.portal-leaf:after{content:"";position:absolute;top:52%;width:13px;height:2px;background:var(--yellow)}
.portal-leaf-left{left:0;transform-origin:left center}
.portal-leaf-left:after{right:13px}
.portal-leaf-right{right:0;transform-origin:right center}
.portal-leaf-right:after{left:13px}
.portal-door:after{content:"";position:absolute;inset:8px 8px 0;border:1px solid #fbc100b0;border-bottom:0;border-radius:48% 48% 0 0 / 27% 27% 0 0;animation:portal-breathe 3s ease-in-out infinite;pointer-events:none}
.portal-center h1{margin:.3rem 0 0;font-size:clamp(2rem,4.3vw,4.6rem);font-weight:700;letter-spacing:-.055em}
.portal-enter{display:inline-flex;align-items:center;gap:2rem;min-height:44px;border:0;border-bottom:2px solid var(--yellow);padding:.45rem .1rem;background:transparent;color:#fff;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:gap .25s ease,color .25s ease}
.portal-enter:hover{gap:2.8rem;color:var(--yellow)}
.portal-enter span{color:var(--yellow);font-size:1.25rem}
.portal-scroll{margin:.1rem 0 0;color:#b9d4e1;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}
.portal-entry.is-entering{animation:portal-overlay 1.3s ease forwards}
.portal-entry.is-entering .portal-door{animation:portal-approach 1.25s cubic-bezier(.42,0,.12,1) forwards}
.portal-entry.is-entering .portal-leaf-left{transform:rotateY(108deg)}
.portal-entry.is-entering .portal-leaf-right{transform:rotateY(-108deg)}
.portal-entry.is-entering .portal-window:before{opacity:0;transition:opacity .2s}
.portal-entry.is-entering .portal-window img{transform:scale(1);filter:saturate(1) brightness(1);transition:transform 1s ease,filter .6s ease}
.portal-entry.is-entering .portal-top,.portal-entry.is-entering .portal-bottom,.portal-entry.is-entering .portal-kicker,.portal-entry.is-entering .portal-center h1,.portal-entry.is-entering .portal-enter,.portal-entry.is-entering .portal-scroll{opacity:0;transition:opacity .3s ease}
@keyframes portal-breathe{50%{opacity:.4;transform:scale(1.03)}}
@keyframes portal-approach{0%{transform:scale(1)}35%{transform:scale(1.12)}100%{transform:scale(8)}}
@keyframes portal-overlay{0%,55%{opacity:1}100%{opacity:0}}
@media (max-width:620px){.portal-top,.portal-bottom{padding:15px 18px}.portal-top img{width:170px}.portal-skip{font-size:.62rem}.portal-bottom{font-size:.52rem;letter-spacing:.06em}.portal-bottom span:last-child{max-width:120px;text-align:right}.portal-door{width:clamp(150px,44vw,205px);height:clamp(235px,42vh,340px)}.portal-center h1{font-size:clamp(1.9rem,8vw,2.6rem)}.portal-kicker{font-size:.58rem;letter-spacing:.12em}.portal-center{gap:.5rem}.portal-scroll{font-size:.55rem}}
@media (max-height:620px){.portal-door{height:clamp(170px,38vh,260px);width:clamp(125px,17vw,195px)}.portal-center h1{font-size:clamp(1.6rem,4vw,2.9rem)}.portal-bottom{padding-top:8px;padding-bottom:8px}}
@media (prefers-reduced-motion:reduce){.portal-door,.portal-leaf,.portal-window img,.portal-enter{transition:none}.portal-door:after{animation:none}.portal-entry.is-entering,.portal-entry.is-entering .portal-door{animation:none}}
