/* Shared entrance styles. Run scripts/campus/sync-theme.py after edits. */
.hc-entry {
  --hc-ink: #f8f5ed; --hc-muted: #d2d7d4; --hc-night: #101e22;
  --hc-ease: cubic-bezier(.23, 1, .32, 1);
  position: relative; isolation: isolate; display: flex; flex-direction: column;
  min-height: 100svh; margin: 0; overflow-x: clip;
  background: var(--hc-night); color: var(--hc-ink);
  font-family: var(--font-inter, 'Inter'), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
}
.hc-entry *, .hc-entry *::before, .hc-entry *::after { box-sizing: border-box; }
.hc-entry ::selection { background: #f8f5ed; color: #101e22; }
.hc-scene { position: fixed; inset: 0; z-index: -2; background: #101e22 url('./campus-dusk.png') 59% center / cover no-repeat; animation: hc-scene-arrive 1100ms var(--hc-ease) backwards; }
.hc-scene::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #08131699, #08131644 36%, #08131600 67%), linear-gradient(0deg, #081316b3, transparent 35%, transparent 82%, #08131633); }
.hc-departure .hc-scene { background-image: url('./campus-farewell.png'); background-position: 60% center; }
.hc-masthead { display: flex; align-items: center; justify-content: space-between; padding: 36px 4.7vw; position: relative; z-index: 2; gap: 24px; }
.hc-brand { display: inline-flex; align-items: center; gap: 20px; color: var(--hc-ink); text-decoration: none; line-height: 1; }
.hc-brand-logo { display: block; width: 160px; height: auto; }
.hc-brand-campus { font-size: 11px; font-weight: 400; letter-spacing: .02em; display: block; border-left: 1px solid #f8f5ed45; padding-left: 20px; line-height: 23px; }
.hc-welcome-content { width: min(540px, 62vw); margin: auto 0 5vh; padding: 90px 0 28px 7.5vw; animation: hc-content-arrive 600ms 100ms var(--hc-ease) backwards; }
.hc-eyebrow { margin: 0 0 22px; font-size: 10px; line-height: 1.5; letter-spacing: .15em; text-transform: uppercase; font-weight: 500; }
.hc-welcome h1 { margin: 0; font-size: clamp(32px, 3.15vw, 48px); font-weight: 400; letter-spacing: -.047em; line-height: 1.16; }
.hc-entry-action { margin-top: 30px; }
.hc-departure-note { margin: 19px 0 0; max-width: 330px; color: var(--hc-muted); font-size: 14px; line-height: 1.7; text-wrap: pretty; }
.hc-exit-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.hc-stay-link { display: inline-flex; align-items: center; min-height: 46px; color: var(--hc-ink); font-size: 13px; text-underline-offset: 5px; }
.hc-departure .hc-enter-button { text-decoration: none; }
.hc-enter-button { display: inline-flex; align-items: center; justify-content: center; min-width: 128px; min-height: 46px; padding: 12px 26px; background: var(--hc-ink); border: 1px solid var(--hc-ink); border-radius: 7px; color: var(--hc-night); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; transition: background var(--motion-fast, 150ms), transform var(--motion-fast, 150ms) var(--hc-ease); }
.hc-enter-button:active { transform: scale(.98); }
.hc-enter-button:disabled { opacity: .75; cursor: wait; }
.hc-entry :is(a, button, input, select):focus-visible { outline: 3px solid #b3d9ff; outline-offset: 5px; }
.hc-error { max-width: 340px; font-size: 13px; line-height: 1.6; color: #ffcec2; margin: 0 0 18px; }
form .hc-error { margin: 14px 0 0; }
.hc-preview-link { display: block; margin-top: 16px; color: var(--hc-ink); font-size: 12px; text-underline-offset: 4px; }
.hc-floor { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 4.7vw 27px; font-size: 10px; line-height: 1.5; color: #d5ddd7; }
@media (hover: hover) and (pointer: fine) { .hc-enter-button:not(:disabled):hover { background: #fff; transform: translateY(-1px); } }
@keyframes hc-scene-arrive { from { opacity: .4; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }
@keyframes hc-content-arrive { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 1600px) { .hc-welcome-content { padding-left: 7.5vw; width: 680px; } }
@media (max-width: 760px) {
  .hc-masthead { padding: 28px; gap: 15px; }
  .hc-brand { gap: 14px; }
  .hc-brand-logo { width: 132px; }
  .hc-brand-campus { padding-left: 14px; font-size: 10px; }
  .hc-scene { background-position: 65% center; }
  .hc-departure .hc-scene { background-position: 76% center; }
  .hc-scene::after { background: linear-gradient(0deg, #081316e8, #081316aa 28%, #08131611 70%, #08131633); }
  .hc-welcome-content { width: 100%; margin-top: auto; margin-bottom: 3vh; padding: 160px 28px 32px; }
  .hc-welcome h1 { font-size: clamp(32px, 8.5vw, 42px); line-height: 1.18; }
  .hc-entry-action { margin-top: 25px; }
  .hc-floor { padding: 18px 28px 24px; font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .hc-entry *, .hc-entry *::before, .hc-entry *::after { animation: none !important; transition-duration: 0s !important; }
  .hc-enter-button:active, .hc-enter-button:not(:disabled):hover { transform: none; }
}

.hc-floor nav { display: flex; flex-wrap: wrap; gap: 4px 18px; justify-content: flex-end; }
.hc-floor nav a { display: inline-flex; align-items: center; min-height: 32px; color: inherit; font-size: 11px; text-decoration: none; }
.hc-floor nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:480px) { .hc-floor { align-items: flex-start; gap: 8px; } .hc-floor nav { gap: 0 12px; } }
