:root { --evfr-sky:#a9c4dc; --evfr-sky-soft:#dce9f3; --evfr-navy:#1b3f6b; --evfr-navy-deep:#102f53; --evfr-gold:#b59a5d; --evfr-paper:#f7f8f6; --evfr-text:#1d2d3d; --evfr-white:#fff; }
* { box-sizing:border-box; }
html { overflow-x:hidden; }
body { margin:0; overflow-x:hidden; color:var(--evfr-text); background:var(--evfr-paper); font-family:Inter,Segoe UI,Arial,sans-serif; line-height:1.65; }
a { color:var(--evfr-navy); text-underline-offset:3px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid var(--evfr-gold); outline-offset:3px; }
.page-banner {
    position: relative;
    height: 600px;
    overflow: hidden;
    background-color: var(--evfr-sky-soft);
    background-position: top left;
    background-repeat: no-repeat;
    background-size: cover;
    color: var(--evfr-white);
    isolation: isolate;
}
.page-banner::before { position:absolute; z-index:0; inset:0; content:""; pointer-events:none; }
.crew-verification-banner { width:100%; overflow:hidden; background:var(--evfr-sky-soft); }
.crew-verification-banner img { display:block; width:100%; height:auto; }
.crew-verification { min-height:clamp(260px,38vw,520px); max-width:760px; margin:0 auto; padding:clamp(2rem,8vw,7rem) 1.5rem; color:var(--evfr-navy); font-size:clamp(1.25rem,2.5vw,1.75rem); font-weight:600; line-height:1.55; }
.page-banner-header { position:absolute; z-index:2; top:120px; right:0; left:0; height:60px; background:transparent; }
.page-banner-header .navbar { height:100%; padding:0; }
.evfr-nav-wrap { height:60px; max-width:1440px; padding-right:clamp(1rem,3vw,3rem); padding-left:clamp(1rem,3vw,3rem); }
.navbar-brand { position:absolute; top:-120px; left:clamp(1rem,3vw,3rem); width:250px; height:120px; opacity:0; }
.navbar-brand:hover { color:var(--evfr-navy); }
.brand-mark, .brand-subtitle { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.navbar-toggler { border-color:rgba(27,63,107,.35); color:var(--evfr-navy); }
.navbar-toggler-icon { filter:invert(22%) sepia(28%) saturate(1657%) hue-rotate(169deg) brightness(85%) contrast(92%); }
.navbar-nav { align-items:center; gap:.12rem; }
.nav-link { position:relative; color:var(--evfr-navy); font-size:.81rem; font-weight:800; padding:.58rem .5rem !important; text-decoration:none; white-space:nowrap; }
.nav-link::after { position:absolute; right:.5rem; bottom:.28rem; left:.5rem; height:2px; background:var(--evfr-gold); content:""; opacity:0; transform:scaleX(.45); transition:opacity .18s ease, transform .18s ease; }
.nav-link:hover, .nav-link.active { color:var(--evfr-navy-deep); }
.nav-link:hover::after, .nav-link.active::after { opacity:1; transform:scaleX(1); }
.page-banner-content { position:relative; z-index:1; display:flex; height:480px; flex-direction:column; justify-content:flex-end; padding-top:3rem; padding-bottom:clamp(2.75rem,6vw,5.5rem); }
.page-banner-content h1 { max-width:1100px; margin:0; color:var(--evfr-white); font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-size:clamp(2.7rem,5vw,5.2rem); font-weight:400; letter-spacing:.025em; line-height:.98; text-shadow:0 2px 16px rgba(0,0,0,.35); }
.page-banner-content p:not(.eyebrow) { max-width:680px; margin:1.25rem 0 0; font-size:clamp(1rem,2vw,1.3rem); text-shadow:0 1px 10px rgba(0,0,0,.42); }
.eyebrow { margin:0 0 .5rem; color:#f4dfab; font-size:.78rem; font-weight:800; letter-spacing:.16em; text-shadow:0 1px 8px rgba(0,0,0,.3); text-transform:uppercase; }
.section-shell { padding:clamp(3.5rem,8vw,7rem) 0; }
.intro-section { background:var(--evfr-white); }
.narrow-copy { max-width:850px; }
.narrow-copy h2 { color:var(--evfr-navy-deep); font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-size:clamp(2rem,4vw,3.2rem); font-weight:400; letter-spacing:.02em; }
.lead { color:var(--evfr-navy-deep); font-size:1.25rem; }
.quick-links { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin-top:2rem; }
.quick-links a, .button-link { border-bottom:3px solid var(--evfr-gold); font-weight:800; text-decoration:none; }
.card-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:2rem; }
.info-card { background:var(--evfr-white); border-top:5px solid var(--evfr-gold); box-shadow:0 10px 28px rgba(15,45,79,.1); padding:1.7rem; }
.info-card h2 { color:var(--evfr-navy-deep); font-size:1.35rem; font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-weight:400; letter-spacing:.025em; }
.info-card p { margin-bottom:0; }
.gallery-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.gallery-card { margin:0; overflow:hidden; background:var(--evfr-white); box-shadow:0 8px 25px rgba(15,45,79,.11); }
.gallery-card img { aspect-ratio:10/7; display:block; object-fit:cover; width:100%; }
.gallery-card figcaption { display:flex; flex-direction:column; padding:1rem 1.1rem; color:var(--evfr-navy-deep); }
.members-only-empty { min-height:40vh; background:var(--evfr-paper); padding:clamp(3rem,7vw,5rem) 1rem; }
.members-only-panel { max-width:420px; margin:0 auto; padding:clamp(1.5rem,4vw,2.5rem); border:1px solid rgba(27,63,107,.14); border-radius:1rem; background:var(--evfr-white); box-shadow:0 12px 30px rgba(16,47,83,.1); }
.crew-login-form { display:grid; gap:1.25rem; }
.crew-login-form div { display:grid; gap:.45rem; }
.crew-login-form label { color:var(--evfr-navy-deep); font-size:.86rem; font-weight:800; }
.crew-login-form input { width:100%; padding:.72rem .8rem; border:1px solid rgba(27,63,107,.3); border-radius:.55rem; color:var(--evfr-text); }
.crew-login-form input:focus { border-color:var(--evfr-navy); box-shadow:0 0 0 .2rem rgba(27,63,107,.15); outline:0; }
.crew-login-button { width:100%; border:0; border-radius:.55rem; background:var(--evfr-navy); color:var(--evfr-white); font-weight:800; padding:.78rem 1rem; }
.crew-login-button:hover { background:var(--evfr-navy-deep); }
.crew-login-error { margin:0 0 1.25rem; color:#a72b2b; font-weight:700; }
.site-footer { background:var(--evfr-navy-deep); color:var(--evfr-white); padding:1.5rem 0; font-size:.88rem; }
.footer-links { display:flex; flex-wrap:wrap; gap:.75rem; }
.footer-links a { color:var(--evfr-white); }
.error-page { min-height:48vh; display:flex; flex-direction:column; justify-content:center; }
@media (max-width: 991px) {
    .page-banner { height:520px; background-position:left center; }
    .page-banner-header { top:104px; }
    .page-banner-header, .evfr-nav-wrap { height:52px; }
    .page-banner-header .navbar { position:relative; }
    .navbar-brand { top:-104px; height:104px; }
    .navbar-toggler { margin-left:auto; }
    .navbar-collapse { position:absolute; z-index:3; top:calc(100% + .45rem); right:1rem; left:1rem; padding:1rem; border:1px solid rgba(27,63,107,.14); border-radius:.75rem; background:rgba(255,255,255,.98); box-shadow:0 14px 30px rgba(16,47,83,.16); }
    .navbar-nav { align-items:stretch; gap:0; }
    .nav-link { padding:.68rem .4rem !important; }
    .nav-link::after { right:auto; bottom:.25rem; left:.4rem; width:2.5rem; transform:scaleX(.45); transform-origin:left; }
    .page-banner-content { height:424px; padding-bottom:3rem; }
}
@media (max-width: 640px) {
    .page-banner { height:440px; background-position:left center; }
    .page-banner-header { top:88px; }
    .page-banner-header, .evfr-nav-wrap { height:44px; }
    .navbar-brand { top:-88px; height:88px; }
    .page-banner-content { height:352px; padding-right:1rem; padding-left:1rem; padding-bottom:2rem; }
    .page-banner-content h1 { font-size:clamp(2.35rem,12vw,3.7rem); }
    .page-banner-content p:not(.eyebrow) { font-size:1rem; }
    .card-grid, .gallery-grid { grid-template-columns:1fr; }
    .section-shell { padding-right:1rem; padding-left:1rem; }
}
