/* Scoped to the landing page; shared navigation on other pages is unchanged. */
.portal-home .floating-cubes { display:none; }
.portal-home .site-header {
  position:fixed; inset:0 0 auto; height:82px; min-height:0;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px clamp(20px,3.5vw,64px); gap:20px; pointer-events:none;
  background:linear-gradient(#02050b9c,transparent); z-index:1302;
}
.portal-home .portal-brand {
  pointer-events:auto; color:#d5dfec; text-decoration:none;
  font-family:"Cinzel",serif; font-size:.76rem; letter-spacing:.16em;
  text-shadow:0 2px 12px #000;
}
.portal-trigger, .portal-close {
  display:flex; align-items:center; justify-content:center; gap:24px;
  min-height:44px; padding:10px 18px; color:#edf2fa; border:1px solid #bdcfe14d;
  border-radius:2px; background:#050b14bf; font:600 .72rem "Inter",sans-serif;
  letter-spacing:.18em; text-transform:uppercase; cursor:pointer; pointer-events:auto;
  transition:background .2s,border-color .2s;
}
.portal-trigger[hidden], .portal-fallback[hidden] { display:none; }
.portal-trigger span, .portal-close span { font-size:1.5rem; line-height:1; font-weight:400; }
.portal-trigger:hover, .portal-close:hover { background:#172336; border-color:#d0e0f5; }
.portal-home a:focus-visible, .portal-home button:focus-visible, .portal-home summary:focus-visible {
  outline:2px solid #c6d7f1; outline-offset:5px;
}
.portal-home .hero {
  padding:0; display:flex; justify-content:center; align-items:center;
  min-height:100svh; background-image:none; background-color:#02050a;
}
.landing-hero-art { position:absolute; inset:0; display:block; }
.landing-hero-art img { display:block; width:100%; height:100%; object-fit:contain; }
.portal-home .hero-overlay { background:linear-gradient(180deg,#02050a05 68%,#02050aa6); }
.hero-entry { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:1160; }
.hero-entry a { display:flex; align-items:center; gap:18px; color:#dde8f6; font-size:.68rem;
  text-decoration:none; letter-spacing:.2em; text-transform:uppercase; padding:12px 18px;
  background:#02050a8c; border:1px solid #c6d7f133; white-space:nowrap; }
.hero-entry span { font-size:1.2rem; }
.hero-mobile-name { display:none; }
.portal-home .section-shell { scroll-margin-top:90px; }
.portal-home .skip-link { position:fixed; z-index:1400; }
.portal-fallback { pointer-events:auto; position:relative; color:#edf2fa; background:#050b14ed; padding:12px; }
.portal-fallback summary { cursor:pointer; }
.portal-fallback nav { position:absolute; top:100%; right:0; width:220px; padding:16px; background:#050b14; }
.portal-fallback a { display:block; padding:8px; color:#edf2fa; }
.cinematic-portal {
  position:fixed; inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none;
  margin:0; padding:0; border:0; color:#e1e9f4; background:#03070e; overflow-y:auto; overflow-x:hidden;
}
.cinematic-portal::backdrop { background:#02050a; }
.cinematic-portal[open] { display:flex; flex-direction:column; isolation:isolate; animation:portal-appear .5s ease both; }
.portal-scenery { position:fixed; inset:0; z-index:-2; background:#080e18; pointer-events:none; overflow:hidden; }
.portal-art { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% center;
  opacity:0; transform:scale(1.035); transition:opacity .85s ease,transform 2.5s ease; }
.portal-art.is-visible { opacity:.6; transform:scale(1); }
.portal-scenery::after { content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,#03070ef2 0%,#03070ebf 35%,#03070e33 100%),linear-gradient(0deg,#03070ef2,transparent 50%,#03070e66); }
.portal-top { display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px clamp(24px,5vw,90px); flex-shrink:0; }
.portal-identity { margin:0; font:700 .76rem "Cinzel",serif; letter-spacing:.18em; }
.portal-content { flex:1; display:flex; align-items:center; gap:6vw; padding:30px clamp(24px,8vw,140px); }
.portal-navigation { flex:1; max-width:960px; }
.portal-eyebrow { margin:0 0 32px; font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:#a6bad5; }
.portal-links { display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(24px,5vw,80px); row-gap:12px; }
.portal-link { display:flex; align-items:baseline; gap:16px; padding:12px 0; color:#c2ccd9;
  text-decoration:none; font:700 clamp(1.8rem,3.5vw,3.8rem)/1.25 "Cinzel",serif;
  transition:color .3s,transform .3s; border-bottom:1px solid #b6c9e018; }
.portal-link .portal-number { font:400 .6rem "Inter",sans-serif; letter-spacing:.12em; color:#8d9fb9; }
.portal-link.is-previewed { color:#fff; transform:translateX(6px); border-color:#d9e6f380; }
.portal-link.active .portal-number { color:#f4f8ff; }
.portal-caption { width:22%; max-width:280px; align-self:flex-end; margin-bottom:20px; }
.portal-scene-title { font:700 1.15rem "Cinzel",serif; letter-spacing:.08em; }
.portal-scene-description { color:#afc0d6; font-size:.8rem; line-height:1.8; }
.portal-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;
  margin:0 clamp(24px,5vw,90px); padding:24px 0; border-top:1px solid #afc0d626; flex-shrink:0; }
.portal-footer p { margin:0; font-size:.6rem; text-transform:uppercase; letter-spacing:.2em; color:#8d9fb9; }
.portal-secondary { display:flex; flex-wrap:wrap; gap:14px 24px; }
.portal-secondary a { color:#b5c4d9; font-size:.68rem; text-decoration:none; padding:6px 0; }
.portal-secondary a:hover { color:#fff; text-decoration:underline; }
@keyframes portal-appear { from { opacity:0; transform:scale(1.015); } to { opacity:1; transform:scale(1); } }
@media (max-width:900px) {
  .portal-home .site-header { padding:14px 18px; height:72px; flex-wrap:nowrap; }
  .portal-home .portal-brand { max-width:160px; font-size:.65rem; line-height:1.6; }
  .portal-home .hero { min-height:100svh; display:flex; flex-direction:column; padding:95px 0 110px; gap:30px; }
  .landing-hero-art { position:relative; width:100%; }
  .landing-hero-art img { width:100%; height:auto; aspect-ratio:1672/941; }
  .hero-mobile-name { display:block; margin:0 22px; z-index:3; color:#dbe6f5;
    font:700 clamp(1.8rem,7vw,3rem)/1.3 "Cinzel",serif; text-align:center; }
  .portal-top { padding:20px 24px; }
  .portal-content { padding:24px; }
  .portal-caption { display:none; }
  .portal-navigation { width:100%; }
  .portal-link { font-size:clamp(1.6rem,5vw,2.5rem); gap:10px; }
  .portal-footer { margin:0 24px; }
}
/* Art-directed portrait composition for upright mobile screens. */
@media (max-width:900px) and (orientation:portrait) {
  .portal-home .hero { padding:0; gap:0; }
  .portal-home .landing-hero-art { position:absolute; inset:0; width:100%; height:100%; }
  .portal-home .landing-hero-art img { width:100%; height:100%; aspect-ratio:auto;
    object-fit:cover; object-position:50% 35%; }
  .portal-home .hero-overlay { background:linear-gradient(180deg,#02050a55,transparent 25%,transparent 55%,#02050ae6); }
  .portal-home .hero-mobile-name { position:absolute; left:20px; right:20px; bottom:110px;
    margin:0; font-size:clamp(1.65rem,6.6vw,2.65rem); text-shadow:0 2px 18px #000; }
}
@media (max-width:540px) {
  .portal-links { grid-template-columns:1fr; row-gap:0; }
  .portal-link { font-size:1.85rem; padding:9px 0; }
  .portal-eyebrow { margin-bottom:18px; }
  .portal-top { padding:18px 24px; }
  .portal-identity { font-size:.65rem; max-width:160px; line-height:1.6; }
  .portal-content { padding-top:18px; padding-bottom:18px; }
  .portal-footer { padding:18px 0; }
}
@media (prefers-reduced-motion:reduce) {
  .cinematic-portal[open] { animation:none; }
  .portal-art, .portal-link, .portal-trigger, .portal-close { transition:none; }
  .portal-art, .portal-link.is-previewed { transform:none; }
}
