:root { color-scheme: light; font-family: Georgia, 'Times New Roman', serif; background: #fffdf2; }
* { box-sizing: border-box; }
html { margin: 0; overflow-x: hidden; }
body { margin: 0; min-width: 280px; }
body.at-gates { overflow: hidden; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.gate-page { position: fixed; inset: 0; z-index: 2; display: grid; place-items: center; background: #e6f4ff; overflow: hidden; }
.gate-scene { position: relative; width: min(100vw, calc(100svh * 1672 / 941)); aspect-ratio: 1672 / 941; transform-origin: 50% 62%; }
.gate-art, .campus-page img, .books-page img { display: block; width: 100%; height: auto; }
.magic-lines, .sparkles { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.magic-lines { opacity: 0; transition: opacity 300ms; }
.magic-lines path { fill: none; stroke: #ffe79c; stroke-linecap: round; }
.soft-glow path { stroke-width: 24; }
.fine-glow path { stroke: #fff9dc; stroke-width: 2; }
.portal-glow { position: absolute; z-index: 1; left: 37.15%; top: 31.5%; width: 25.7%; height: 59%; overflow: hidden; pointer-events: none; opacity: 0; border-radius: 48% 48% 10% 10% / 25% 25% 5% 5%; transform: scale(.92); transform-origin: 50% 55%; mix-blend-mode: screen; }
.portal-core, .portal-shimmer { position: absolute; inset: 0; display: block; }
.portal-core { background: radial-gradient(ellipse at 50% 48%, rgba(255,255,255,.98) 0 8%, rgba(214,244,255,.90) 24%, rgba(125,211,252,.58) 52%, rgba(64,155,220,.18) 74%, transparent 100%); filter: blur(8px); }
.portal-shimmer { background: linear-gradient(105deg, transparent 0 26%, rgba(255,255,255,.78) 42%, rgba(202,239,255,.32) 53%, transparent 72%); transform: translateX(-115%); filter: blur(3px); }
.enter-button { position: absolute; left: 41.2%; top: 59.15%; width: 17.3%; height: 6.4%; min-height: 26px; padding: 0; background: transparent; border: 0; border-radius: 999px; cursor: pointer; transition: box-shadow 250ms, background 250ms; -webkit-tap-highlight-color: transparent; }
.enter-button::before { content: ''; position: absolute; inset: -7px; border-radius: inherit; }
.enter-button:hover, .enter-button:focus-visible { outline: 3px solid #fff3b4; outline-offset: 3px; box-shadow: 0 0 18px 5px #ffd969, 0 0 45px 12px #ffedb288; }
.gate-scene:has(.enter-button:hover) .magic-lines, .gate-scene:has(.enter-button:focus-visible) .magic-lines { opacity: .2; }
.enter-button[aria-busy="true"] { cursor: progress; box-shadow: 0 0 18px 6px #ffd969; }
.entry-status { position: absolute; top: 67%; left: 30%; width: 40%; margin: 0; padding: 7px 12px; text-align: center; font: 600 clamp(11px, 1.2vw, 18px)/1.35 Georgia, serif; color: #0f2c46; background: #fffdf3ed; border-radius: 12px; }
.entry-status:empty { display: none; }
.sparkle { position: absolute; width: var(--size); aspect-ratio: 1; opacity: 0; background: #fffad1; clip-path: polygon(50% 0, 61% 36%, 100% 50%, 61% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); filter: drop-shadow(0 0 4px #ffd65f); }
.is-entering .sparkle { animation: sparkle 1100ms var(--delay) ease-out both; }
.is-entering .magic-lines { animation: illuminate 1500ms ease-in-out both; }
.is-entering .enter-button { animation: button-magic 900ms ease-out both; }
.is-entering .portal-glow { animation: portal-open 2400ms ease-in-out both; }
.is-entering .portal-shimmer { animation: portal-sweep 900ms 650ms ease-in-out both; }
.is-entering .gate-scene { animation: forward 2400ms ease-in-out both; }
.is-entering.gate-page { animation: dissolve 2400ms ease-in-out both; }
.campus-page { width: 100%; min-height: 100svh; padding: 14px 0 0; background: #edf7fb; }
.campus-scene { position: relative; width: min(calc(100% - 28px), 1520px); margin: 0 auto; isolation: isolate; }
.panel-link { position: absolute; z-index: 2; width: 31.75%; height: 19.1%; padding: 0; border: 0; border-radius: 6px; background: transparent; cursor: pointer; transition: box-shadow 200ms, background 200ms; }
.panel-1, .panel-2, .panel-3 { top: 54.75%; }
.panel-4, .panel-5, .panel-6 { top: 74.82%; }
.panel-1, .panel-4 { left: 1.05%; }
.panel-2, .panel-5 { left: 34.10%; }
.panel-3, .panel-6 { left: 67.15%; }
.panel-link:hover { background: rgba(255,249,207,.08); box-shadow: inset 0 0 0 4px #f3c85e, 0 0 18px 4px #eec25f; }
.panel-link:focus-visible { outline: 4px solid #fff1a8; outline-offset: -7px; box-shadow: inset 0 0 0 4px #0b3b56, 0 0 20px 6px #edbb4d; }
.campus-back { position: fixed; z-index: 4; top: 12px; left: 12px; min-height: 44px; padding: .65rem 1rem; border: 2px solid #e8bd4f; border-radius: 999px; color: #fff8d7; background: #083b5ce6; font: 700 clamp(.8rem, 1.1vw, 1rem)/1.1 Georgia, serif; box-shadow: 0 4px 16px #092e4b55; cursor: pointer; }
.campus-back:hover, .campus-back:focus-visible { background: #0b4d75; outline: 3px solid #fff1a8; outline-offset: 3px; }
.books-page { min-height: 100svh; background: #edf7ff; display: grid; place-items: start center; }
.books-scene { position: relative; width: min(100vw, calc(100svh * 16 / 9)); aspect-ratio: 16 / 9; margin-inline: auto; }
.books-back { position: absolute; z-index: 2; top: 1.5%; left: 1.2%; min-height: 44px; padding: .65rem 1rem; border: 2px solid #e8bd4f; border-radius: 999px; color: #fff8d7; background: #083b5cdd; font: 700 clamp(.8rem, 1.1vw, 1rem)/1.1 Georgia, serif; box-shadow: 0 4px 16px #092e4b55; cursor: pointer; }
.books-back:hover, .books-back:focus-visible { background: #0b4d75; outline: 3px solid #fff1a8; outline-offset: 3px; }
.book-action, .mystery-action { position: absolute; z-index: 1; padding: 0; border: 0; border-radius: 999px; background: transparent; cursor: pointer; transition: box-shadow 180ms, background 180ms; }
.book-action:hover, .mystery-action:hover { background: #fff4ad20; box-shadow: 0 0 15px 4px #f3c64b; }
.book-action:focus-visible, .mystery-action:focus-visible { outline: 4px solid #fff4af; outline-offset: -3px; box-shadow: 0 0 0 3px #0b3b56, 0 0 20px 6px #eabc42; }
.book-action { width: 12.85%; height: 3.5%; }
.book-action.read { top: 65.35%; }
.book-action.buy { top: 69.35%; }
.book-1 { left: 18.1%; }
.book-2 { left: 35.0%; }
.book-3 { left: 51.8%; }
.book-4 { left: 68.7%; }
.mystery-action { left: 58.6%; top: 83.7%; width: 19.2%; height: 5.5%; }
.mobile-book-controls { display: none; }
.book-dialog { width: min(92vw, 520px); padding: 2rem; border: 3px solid #d5a933; border-radius: 24px; color: #12334d; background: #fffdf2; box-shadow: 0 24px 90px #07263e88; text-align: center; }
.book-dialog::backdrop { background: #061e31a6; backdrop-filter: blur(3px); }
.book-dialog h2 { margin: .6rem 0 .8rem; color: #063d25; font-size: clamp(1.5rem, 4vw, 2.2rem); }
.book-dialog p { font-size: 1rem; line-height: 1.55; }
.dialog-crest { display: grid; place-items: center; width: 64px; aspect-ratio: 1; margin: 0 auto; border: 3px solid #e3b84b; border-radius: 50%; color: #ffe487; background: #0b3b56; font-weight: 700; }
.dialog-status { padding: .8rem; border-radius: 12px; background: #eef5e8; }
.dialog-close { min-height: 44px; padding: .7rem 1.2rem; border: 2px solid #e0b444; border-radius: 999px; color: #fff8dc; background: #0b3b56; font: 700 1rem Georgia, serif; cursor: pointer; }
.dialog-close:hover, .dialog-close:focus-visible { background: #12557a; outline: 3px solid #e8bd4f; outline-offset: 3px; }
.no-script { position: fixed; bottom: 0; z-index: 4; padding: 12px; margin: 0; width: 100%; text-align: center; background: #fffdf2; }
@keyframes sparkle { 0% { opacity: 0; transform: translateY(4px) scale(.1) rotate(-15deg); } 25% { opacity: 1; } 65% { opacity: .9; } 100% { opacity: 0; transform: translateY(-24px) scale(1.3) rotate(25deg); } }
@keyframes illuminate { 0% { opacity: 0; } 25% { opacity: .65; } 65% { opacity: 1; } 100% { opacity: 0; } }
@keyframes button-magic { 0% { box-shadow: 0 0 0 #ffe490; } 35% { box-shadow: 0 0 22px 10px #ffdf78, 0 0 55px 22px #fff4bca8; background: #fff5cf22; } 100% { box-shadow: 0 0 50px 16px #fff2c900; } }
@keyframes portal-open { 0%, 8% { opacity: 0; transform: scale(.90); } 24% { opacity: .34; } 58% { opacity: .92; transform: scale(1); } 78% { opacity: .72; } 100% { opacity: 0; transform: scale(1.12); } }
@keyframes portal-sweep { 0% { transform: translateX(-115%); opacity: 0; } 35% { opacity: .85; } 100% { transform: translateX(115%); opacity: 0; } }
@keyframes forward { 0%, 40% { transform: scale(1); } 80%, 100% { transform: scale(1.10); } }
@keyframes dissolve { 0%, 56% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
  .is-entering .sparkle, .is-entering .magic-lines, .is-entering .portal-glow, .is-entering .portal-shimmer, .is-entering .gate-scene, .is-entering .enter-button { animation: none; }
  .is-entering .portal-glow { opacity: .18; }
  .is-entering.gate-page { animation: gentle-dissolve 250ms linear both; }
  @keyframes gentle-dissolve { from { opacity: 1; } to { opacity: 0; } }
}
@media (max-aspect-ratio: 4 / 5) {
  .books-page { display: block; min-height: 100svh; overflow-x: hidden; padding-top: max(62px, calc(env(safe-area-inset-top) + 52px)); background: linear-gradient(#dcedf7, #fffaf0 33rem); }
  .books-scene { width: 100vw; min-width: 0; aspect-ratio: 16 / 9; margin: 0; }
  .books-back { position: fixed; top: max(10px, env(safe-area-inset-top)); left: max(10px, env(safe-area-inset-left)); font-size: .9rem; }
  .book-action, .mystery-action { display: none; }
  .mobile-book-controls { display: grid; gap: .8rem; width: min(100% - 1.25rem, 520px); margin: .8rem auto 2rem; padding: 1rem; border: 2px solid #d7ad47; border-radius: 18px; background: #fffaf0f2; box-shadow: 0 10px 28px #0a365029; }
  .mobile-book-controls h2 { margin: 0; color: #073f29; text-align: center; font-size: 1.45rem; }
  .mobile-book-controls article { padding: .85rem; border: 1px solid #dfbc67; border-radius: 12px; background: #fffef9; }
  .mobile-book-controls h3 { margin: 0 0 .65rem; color: #123c59; font-size: 1rem; line-height: 1.25; }
  .mobile-book-controls article div { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
  .mobile-book-controls button { min-height: 46px; padding: .6rem .5rem; border: 2px solid #ddb448; border-radius: 999px; color: #fff8dc; background: #0b4365; font: 700 .88rem/1.15 Georgia, serif; box-shadow: 0 3px 9px #092e4b33; cursor: pointer; }
  .mobile-book-controls button:hover, .mobile-book-controls button:focus-visible { background: #126088; outline: 3px solid #f1cc69; outline-offset: 2px; }
  .mobile-book-controls .mobile-mystery { width: 100%; color: #fff9de; background: #784027; }
  .book-dialog { max-height: calc(100svh - 1.25rem); overflow: auto; padding: 1.35rem; }
}

@media (max-width: 380px) and (orientation: portrait) {
  .mobile-book-controls article div { grid-template-columns: 1fr; }
}

/* Keep the approved hero and button artwork proportional while fitting the hero
   plus the complete first row into the opening desktop viewport. */
.campus-scene { width: min(calc(100% - 28px), 1520px); margin: 0 auto; }
.campus-banner {
  display: grid;
  grid-template-columns: minmax(340px, .55fr) minmax(0, .45fr);
  align-items: stretch;
  overflow: hidden;
  border: 3px solid #d4a836;
  border-radius: 28px 28px 10px 10px;
  background: #fffdf2;
  box-shadow: 0 14px 34px #0a36502b;
}
.campus-banner-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.4rem, 4vw, 4rem);
  color: #12364d;
  background:
    radial-gradient(circle at 12% 16%, #e6bc4d66 0 2px, transparent 3px),
    linear-gradient(135deg, #fffef8, #fff6dc);
  background-size: 62px 62px, auto;
}
.campus-eyebrow { margin: 0 0 .65rem; color: #a0332b; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.campus-banner-copy h2 { margin: 0; color: #092f50; font-size: clamp(2rem, 4.2vw, 4.25rem); line-height: .98; }
.campus-banner-copy > p:not(.campus-eyebrow) { margin: 1rem 0; font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.45; }
.meet-author-link { color: #0b6548; font-weight: 700; line-height: 1.35; text-underline-offset: .2em; }
.campus-hero {
  display: grid;
  place-items: center;
  min-width: 0;
  height: 100%;
  background: #eaf7ff;
}
.campus-hero #campus-art {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: none;
}
.campus-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; padding: 18px 0 40px; background: transparent; }
.campus-grid .panel-link { position: relative; top: auto; left: auto; width: 100%; height: auto; display: block; align-self: start; overflow: hidden; }
.campus-grid .panel-link img { width: 100%; height: auto; filter: none; opacity: 1; }

.newsletter-section {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  margin: 0 18px 42px;
  padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.25rem, 5vw, 4.5rem) clamp(1.7rem, 4vw, 3.2rem);
  border: 3px solid #d7a935;
  border-radius: 28px;
  color: #12364d;
  background:
    radial-gradient(circle at 12% 14%, #f7d97955 0 3px, transparent 4px),
    radial-gradient(circle at 90% 82%, #d7a93533 0 2px, transparent 3px),
    linear-gradient(135deg, #fffef7, #fff8e5 56%, #edf7f3);
  background-size: 82px 82px, 66px 66px, auto;
  box-shadow: 0 14px 36px #0a365022, inset 0 0 0 6px #fffdf2, inset 0 0 0 8px #ecc65e;
}
.newsletter-section::before,
.newsletter-section::after { content: '❄'; position: absolute; color: #d6a326; font-size: clamp(2rem, 4vw, 4rem); opacity: .78; }
.newsletter-section::before { left: 2.3%; bottom: 5%; }
.newsletter-section::after { right: 2.3%; top: 8%; }
.newsletter-ribbon { position: absolute; top: 0; left: 50%; translate: -50% -48%; padding: .55rem 2rem; border: 2px solid #e0b749; border-radius: 999px; color: #fff7d8; background: #0b3b56; box-shadow: 0 5px 14px #0a2b4233; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.newsletter-copy { align-self: center; padding: .5rem 0 .5rem clamp(.5rem, 2vw, 1.5rem); }
.newsletter-kicker { margin: 0 0 .55rem; color: #9e2f27; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.newsletter-copy h2 { margin: 0 0 1rem; color: #092f50; font-size: clamp(2rem, 4.2vw, 3.7rem); line-height: .98; }
.newsletter-copy p { max-width: 34rem; margin: 0 0 1rem; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.55; }
.newsletter-copy .newsletter-promise { color: #126040; font-weight: 700; }
.next-chapters { display: grid; align-content: center; gap: 1rem; }
.next-chapters a { display: grid; gap: .35rem; min-height: 104px; padding: 1.2rem 1.4rem; border: 2px solid #d5ad52; border-radius: 18px; color: #123b58; background: #fffef9; text-decoration: none; box-shadow: 0 7px 18px #103c541c; }
.next-chapters a:hover, .next-chapters a:focus-visible { outline: 3px solid #e8bc52; outline-offset: 3px; background: #fff6d9; }
.next-chapters strong { color: #064b36; font-size: 1.2rem; }
.next-chapters span { line-height: 1.45; }
.newsletter-form { padding: clamp(1rem, 2.5vw, 1.6rem); border: 1px solid #dcb75b; border-radius: 20px; background: #fffef9e8; box-shadow: 0 8px 24px #103c5420; }
.newsletter-form fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 0 0 1rem; padding: 0; border: 0; }
.newsletter-form legend { grid-column: 1 / -1; width: 100%; margin-bottom: .65rem; color: #0b3b56; font-weight: 700; font-size: 1.05rem; }
.newsletter-form fieldset label { display: grid; grid-template-columns: auto 1fr; gap: .65rem; align-items: start; padding: .75rem; border: 1px solid #e2c777; border-radius: 12px; background: #fffdf5; cursor: pointer; }
.newsletter-form input[type="checkbox"] { width: 1.15rem; height: 1.15rem; margin-top: .12rem; accent-color: #126040; }
.newsletter-form strong, .newsletter-form small { display: block; }
.newsletter-form strong { color: #123b58; font-size: .96rem; line-height: 1.2; }
.newsletter-form small { margin-top: .2rem; color: #4d6675; font-size: .78rem; line-height: 1.3; }
.newsletter-fields { display: grid; grid-template-columns: .75fr 1.25fr; gap: .75rem; }
.newsletter-fields label > span { display: block; margin: 0 0 .35rem .2rem; color: #123b58; font-weight: 700; }
.newsletter-fields input { width: 100%; min-height: 48px; padding: .7rem .85rem; border: 2px solid #b9c7cd; border-radius: 10px; color: #102f43; background: #fff; font: 1rem Georgia, serif; }
.newsletter-fields input:focus { outline: 3px solid #f0cf6f; outline-offset: 2px; border-color: #0d5b42; }
.adult-confirm { display: grid; grid-template-columns: auto 1fr; gap: .65rem; align-items: start; margin: 1rem 0; color: #29485b; font-size: .92rem; line-height: 1.4; cursor: pointer; }
.newsletter-submit { display: block; width: min(100%, 360px); min-height: 50px; margin: 0 auto; padding: .75rem 1.2rem; border: 3px solid #e2b643; border-radius: 999px; color: #fff9dc; background: #09613f; box-shadow: 0 4px 0 #06462f, 0 8px 16px #11384d24; font: 700 1.06rem Georgia, serif; cursor: pointer; }
.newsletter-submit:hover, .newsletter-submit:focus-visible { background: #0b7750; outline: 3px solid #ffe58b; outline-offset: 3px; }
.newsletter-note, .newsletter-status { margin: .75rem 0 0; text-align: center; font-size: .84rem; line-height: 1.35; }
.newsletter-note { color: #58707c; }
.newsletter-status { min-height: 1.2em; color: #09613f; font-weight: 700; }
@media (max-width: 1020px) {
  .campus-banner { grid-template-columns: minmax(240px, .4fr) minmax(0, .6fr); }
  .campus-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
}
@media (max-width: 820px) {
  .newsletter-section { grid-template-columns: 1fr; margin-inline: 12px; }
  .newsletter-copy { padding: 0; text-align: center; }
  .newsletter-copy p { margin-inline: auto; }
}
@media (max-width: 560px) {
  .newsletter-section { padding: 2.8rem .85rem 1.25rem; border-radius: 20px; }
  .newsletter-section::before, .newsletter-section::after { display: none; }
  .newsletter-ribbon { width: max-content; max-width: calc(100% - 2rem); font-size: .82rem; }
  .newsletter-form fieldset, .newsletter-fields { grid-template-columns: 1fr; }
  .newsletter-copy h2 { font-size: 2.15rem; }
}

/* Keep the full approved scene visible while the first card row enters the desktop viewport. */
.campus-tone-definitions { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.campus-banner-copy { padding:clamp(1rem,2.1vw,1.8rem); }
.campus-banner-copy h2 { font-size:clamp(1.7rem,3.1vw,3rem); line-height:1.03; }
/* Lift shadows and midtones while preserving white snow and crisp source detail. */
.campus-hero #campus-art { width:min(100%,480px); height:auto; filter:url("#npa-campus-tone"); }
.campus-grid { gap:clamp(8px,1.25vw,18px); padding-top:clamp(8px,1.25vw,18px); }
.mobile-panel-label { display:none; }

/* Keep the same six destinations in two rows of three on phones. */
@media (max-width:720px), (max-width:1020px) and (max-height:560px) {
  .campus-page { padding-top:0; }
  .campus-scene { width:100%; }
  .campus-banner { grid-template-columns:minmax(0,.58fr) minmax(0,.42fr); gap:0; border-width:0 0 2px; border-radius:0; }
  .campus-banner-copy { padding:.65rem .6rem; }
  .campus-eyebrow { margin:0 0 .3rem; font-size:.62rem; line-height:1.25; letter-spacing:.035em; }
  .campus-banner-copy h2 { font-size:clamp(1.05rem,4.4vw,1.4rem); line-height:1.12; }
  .campus-banner-copy > p:not(.campus-eyebrow) { margin:.4rem 0; font-size:.78rem; line-height:1.3; }
  .campus-banner-copy .meet-author-link { font-size:.75rem; line-height:1.3; }
  .campus-hero { height:auto; min-height:0; padding:.4rem .2rem; }
  .campus-hero #campus-art { width:auto; max-width:100%; height:auto; max-height:150px; object-fit:contain; }
  .campus-back { position:static; display:inline-flex; align-items:center; min-height:36px; margin:.4rem .5rem 0; padding:.4rem .65rem; font-size:.72rem; box-shadow:none; }
  .campus-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:8px 8px 24px; }
  .campus-grid .panel-link { display:flex; flex-direction:column; min-width:0; height:100%; align-self:stretch; border:1px solid #d4a836; border-radius:8px; color:#043414; background:#fffaf0; text-decoration:none; }
  .campus-grid .panel-link img { flex:none; }
  .mobile-panel-label { display:flex; align-items:center; justify-content:center; flex:1; min-height:2.8em; padding:.35rem .2rem; font-size:clamp(.72rem,3vw,.86rem); font-weight:700; line-height:1.15; text-align:center; overflow-wrap:anywhere; }
}

/* The gate is the entrance; book news supports it below the illustration. */
body.at-gates { overflow:auto; }
.gate-page {
  position:relative;
  inset:auto;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 0;
  overflow:hidden;
}
.gate-scene { flex:none; width:min(100%,max(320px,calc((100svh - 156px) * 1672 / 941))); }
.gate-introduction { flex:none; width:min(100% - 2rem,1100px); color:#043414; text-align:center; }
.gate-imprint { margin:0 0 .25rem; color:#7d352f; font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.gate-description { margin:0; font-size:clamp(.9rem,1.5vw,1.05rem); line-height:1.4; }
.gate-page .enter-button {
  left:50%;
  top:62.35%;
  width:clamp(176px,18%,280px);
  height:auto;
  min-height:44px;
  padding:.55rem .85rem;
  transform:translate(-50%,-50%);
  border:2px solid #d3ac4e;
  color:#fff9e8;
  background:#8c292e;
  font:700 clamp(.85rem,1.3vw,1.1rem)/1.2 Georgia,serif;
  text-align:center;
}
.gate-page .enter-button:hover { background:#752026; }
.gate-page .entry-status { top:calc(62.35% + 32px); left:20%; width:60%; }
.gate-release { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0 1.4rem; width:min(100% - 2rem,1200px); color:#043414; text-align:center; font-size:.9rem; line-height:1.4; }
.gate-release p { margin:0; }
.gate-support-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0 1.2rem; }
.gate-support-links a { display:inline-flex; align-items:center; min-height:44px; color:#315b4d; text-underline-offset:.2em; }
.gate-support-links a:focus-visible { outline:3px solid #b17c18; outline-offset:3px; border-radius:2px; }

/* Lead directly from the welcome to the six Academy destinations. */
.academy-home .campus-back { position:static; display:inline-flex; align-items:center; min-height:44px; margin:0 0 .35rem; padding:.35rem .5rem; border:0; border-radius:4px; color:#315b4d; background:transparent; box-shadow:none; font-size:.88rem; }
.academy-home .campus-back:hover { color:#043414; text-decoration:underline; text-underline-offset:.2em; }
.academy-home .campus-back:focus-visible { outline:3px solid #b17c18; outline-offset:0; }
.academy-home .campus-banner-copy { padding:clamp(.9rem,2vw,1.65rem); }
.academy-home .campus-banner-copy h2 { font-size:clamp(1.65rem,2.7vw,2.5rem); line-height:1.08; }
.academy-home .campus-banner-copy > p:not(.campus-eyebrow) { margin:.7rem 0 0; }
.academy-home .campus-hero #campus-art { width:min(100%,360px); }
.academy-home .campus-grid { padding-bottom:clamp(20px,2.5vw,36px); }
.academy-home .academy-news-compact { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.65rem 2rem; margin:0 0 2rem; padding:1rem 1.3rem; border:0; border-top:1px solid #c2cfc5; border-radius:0; background:transparent; }
.academy-news-compact > div { flex:1 1 420px; }
.academy-home .academy-news-compact h2 { margin:.25rem 0 .4rem; font-size:1.4rem; }
.academy-news-compact .news-summary { margin:0; max-width:44rem; font-size:1rem; line-height:1.45; }
.news-actions { display:flex; flex-wrap:wrap; gap:0 1.5rem; align-items:center; }
.news-actions a { display:inline-flex; align-items:center; min-height:44px; }
.academy-home .launch-site-footer { padding:1rem; font-size:.85rem; }
.academy-home .launch-site-footer > p { margin:.4rem 0; }
.home-footer-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0 1.5rem; }
.home-footer-links a { display:inline-flex; align-items:center; min-height:44px; color:#fff4bd; text-underline-offset:.2em; }
.home-footer-links a:focus-visible { outline:3px solid #fff4bd; outline-offset:3px; }
@media(max-width:720px), (max-width:1020px) and (max-height:560px) {
  .academy-home .campus-back { margin:0 .4rem .2rem; font-size:.8rem; }
  .academy-home .campus-banner-copy { padding:.65rem .6rem; }
  .academy-home .campus-banner-copy h2 { font-size:clamp(1.05rem,4.4vw,1.4rem); line-height:1.12; }
  .academy-home .campus-banner-copy > p:not(.campus-eyebrow) { margin:.4rem 0 0; }
  .academy-home .campus-hero #campus-art { width:auto; max-width:100%; max-height:150px; }
  .academy-home .academy-news-compact { margin:0 .5rem 1.2rem; padding:1rem .5rem; }
}
@media(max-width:560px) {
  .gate-page { gap:12px; }
  .gate-scene { width:100%; }
  .gate-release { max-width:30rem; }
  .gate-release p { flex-basis:100%; }
  .gate-support-links { column-gap:1.5rem; }
}
@media(max-height:520px) and (min-width:561px) {
  .gate-page { min-height:auto; }
  .gate-scene { width:min(100%,max(480px,calc((100svh - 140px) * 1672 / 941))); }
}
