  :root{
    --bg: #0a0c0e;
    --bg-raised: #12161a;
    --bg-card: #161b20;
    --line: rgba(255,255,255,0.09);
    --line-strong: rgba(255,255,255,0.18);
    --red: #b90605;
    --red-bright: #e0201c;
    --text: #edeef0;
    --text-dim: #9aa1a8;
    --text-faint: #5c6470;
    --mono: 'IBM Plex Mono', monospace;
    --display: 'Oswald', sans-serif;
    --body: 'IBM Plex Sans', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background: var(--bg);
    color: var(--text);
    font-family: var(--body);
    line-height:1.6;
    overflow-x:hidden;
  }
  body::before{
    content:"";
    position:fixed; inset:0;
    background-image:
      radial-gradient(circle at 15% 20%, rgba(185,6,5,0.06), transparent 40%),
      radial-gradient(circle at 85% 75%, rgba(185,6,5,0.05), transparent 40%);
    pointer-events:none;
    z-index:0;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-family: var(--mono);
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color: var(--red-bright);
    display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:""; width:22px; height:1px; background: var(--red-bright);}
  h1,h2,h3,h4{font-family:var(--display); text-transform:uppercase; letter-spacing:.01em; font-weight:600;}

  /* ===== NAV ===== */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background: rgba(10,12,14,0.85);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{display:flex; align-items:center; justify-content:space-between; height:72px;}
  .brand{display:flex; align-items:center; gap:14px;}
  .brand img{
    height:52px; width:52px; border-radius:50%;
    border:2px solid var(--red-bright);
    box-shadow: 0 0 0 3px rgba(185,6,5,0.18), 0 0 18px rgba(224,32,28,0.45);
    transition: box-shadow .25s;
  }
  .brand:hover img{ box-shadow: 0 0 0 3px rgba(185,6,5,0.3), 0 0 26px rgba(224,32,28,0.65); }
  .brand-text{font-family:var(--display); font-size:19px; letter-spacing:.05em; font-weight:700;}
  .brand-text b{color:var(--red-bright);}
  .brand-sub{font-family:var(--mono); font-size:10px; letter-spacing:.16em; color:var(--red-bright); text-transform:uppercase; margin-top:2px; font-weight:600;}
  .nav-links{display:flex; gap:34px; align-items:center;}
  .nav-links a{
    font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--text-dim); position:relative; padding:4px 0;
    transition:color .2s;
  }
  .nav-links a:hover{color:var(--text);}
  .nav-links a.portal-link{color:var(--red-bright); border:1px solid rgba(185,6,5,0.4); padding:8px 16px; border-radius:2px;}
  .nav-links a.portal-link:hover{background:rgba(185,6,5,0.12); border-color:var(--red-bright);}
  .nav-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
  .nav-toggle span{width:22px; height:2px; background:var(--text);}

  /* ===== HERO ===== */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; align-items:center;
    padding-top:100px;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(10,12,14,0.55) 0%, rgba(10,12,14,0.88) 55%, var(--bg) 100%), url('../assets/hero-bg.jpg') center 30%/cover no-repeat;
    z-index:0;
  }
  .hero-grid{
    position:absolute; inset:0; z-index:1;
    background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(ellipse at 30% 40%, black 0%, transparent 68%);
  }
  .hero .wrap{position:relative; z-index:2;}
  .hero-content{max-width:760px; padding:60px 0 120px;}
  .hero-logo-lockup{display:flex; align-items:center; gap:22px; margin-bottom:38px;}
  .hero-logo{
    height:104px; width:104px; border-radius:50%;
    border:2px solid var(--red-bright);
    box-shadow: 0 0 0 5px rgba(185,6,5,0.16), 0 0 40px rgba(224,32,28,0.5);
    flex-shrink:0;
  }
  .hero-tagline{
    font-family:var(--display); font-weight:700;
    font-size:clamp(22px, 3.2vw, 34px);
    letter-spacing:.06em;
    color:#fff;
    text-shadow: 0 0 18px rgba(224,32,28,0.65), 0 0 2px rgba(255,255,255,0.4);
    line-height:1.1;
  }
  .hero-tagline-comma{color:var(--red-bright);}
  .hero-content .eyebrow{margin-bottom:22px;}
  .hero-content h1{
    font-size:clamp(24px, 3.4vw, 40px);
    line-height:1.22;
    margin-bottom:14px;
    letter-spacing:.02em;
  }
  .rogue-red{color:var(--red-bright);}
  .cap-red{color:var(--red-bright);}
  .small-cap{font-size:0.66em; text-transform:uppercase;}
  .hero-content p.lede{
    font-size:18px; color:var(--text-dim); max-width:560px; margin-bottom:34px;
  }
  .badge-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:44px;}
  .badge{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
    border:1px solid var(--line-strong); padding:7px 13px; border-radius:2px; color:var(--text-dim);
  }
  .cta-row{display:flex; gap:16px; flex-wrap:wrap;}
  .btn{
    font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
    padding:15px 28px; border-radius:2px; display:inline-flex; align-items:center; gap:10px;
    transition: all .2s;
  }
  .btn-primary{background:var(--red); color:#fff; border:1px solid var(--red);}
  .btn-primary:hover{background:var(--red-bright); border-color:var(--red-bright);}
  .btn-ghost{border:1px solid var(--line-strong); color:var(--text);}
  .btn-ghost:hover{border-color:var(--text-dim); background:rgba(255,255,255,0.03);}

  .scan-line{
    position:absolute; left:0; right:0; height:1px;
    background: linear-gradient(90deg, transparent, var(--red-bright), transparent);
    opacity:0.6;
    animation: scan 7s linear infinite;
  }
  @keyframes scan{
    0%{top:10%; opacity:0;}
    5%{opacity:.6;}
    95%{opacity:.6;}
    100%{top:95%; opacity:0;}
  }

  /* ===== SECTION shared ===== */
  section{position:relative; z-index:1; padding:110px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .eyebrow{margin-bottom:16px;}
  .section-head h2{font-size:clamp(28px,3.4vw,42px); line-height:1.08;}
  .section-head p{color:var(--text-dim); margin-top:16px; font-size:15.5px;}
  .divider{height:1px; background:var(--line); width:100%;}

  /* ===== ABOUT ===== */
  .about{background:var(--bg-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:start;}
  .about-copy p{color:var(--text-dim); margin-bottom:18px; font-size:15.5px;}
  .about-copy strong{color:var(--text); font-weight:600;}
  .stat-block{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:36px;}
  .stat{background:var(--bg-raised); padding:24px;}
  .stat .num{font-family:var(--display); font-size:32px; color:var(--red-bright);}
  .stat .label{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); margin-top:6px;}
  .about-figure{position:relative; border:1px solid var(--line-strong); aspect-ratio: 4/5; overflow:hidden;}
  .about-figure img{width:100%; height:100%; object-fit:cover; filter:grayscale(35%) contrast(1.05);}
  .about-figure .corner{position:absolute; width:18px; height:18px; border-color:var(--red-bright); border-style:solid; border-width:0;}
  .about-figure .corner.tl{top:10px; left:10px; border-top-width:2px; border-left-width:2px;}
  .about-figure .corner.br{bottom:10px; right:10px; border-bottom-width:2px; border-right-width:2px;}
  .about-figure figcaption{
    position:absolute; bottom:0; left:0; right:0; padding:14px 16px;
    background:linear-gradient(0deg, rgba(0,0,0,0.85), transparent);
    font-family:var(--mono); font-size:10px; letter-spacing:.06em; color:var(--text-dim); text-transform:uppercase;
  }

  /* ===== SERVICES ===== */
  .services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .service-card{background:var(--bg); padding:34px 30px; position:relative; transition:background .25s;}
  .service-card:hover{background:var(--bg-card);}
  .service-card .idx{font-family:var(--mono); font-size:11px; color:var(--text-faint); margin-bottom:18px; display:block;}
  .service-card h3{font-size:17px; margin-bottom:12px; letter-spacing:.02em;}
  .service-card p{color:var(--text-dim); font-size:14px;}
  .service-card::before{
    content:""; position:absolute; top:0; left:0; width:0; height:2px; background:var(--red-bright);
    transition:width .3s;
  }
  .service-card:hover::before{width:100%;}

  /* ===== AIRCRAFT STRIP ===== */
  .strip{
    position:relative; height:340px; overflow:hidden;
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .strip img{width:100%; height:100%; object-fit:cover; filter:grayscale(55%) brightness(.55) contrast(1.1);}
  .strip-overlay{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    background:linear-gradient(180deg, rgba(10,12,14,0.35), rgba(10,12,14,0.75));
  }
  .strip-overlay .eyebrow{justify-content:center; margin-bottom:14px;}
  .strip-overlay h3{font-size:clamp(22px,3vw,34px); max-width:680px; color:var(--text);}
  .partner-logos{display:flex; align-items:center; justify-content:center; gap:32px; margin-top:28px;}
  .partner-logos img{height:64px; width:64px; object-fit:contain; filter:drop-shadow(0 2px 8px rgba(0,0,0,0.5));}

  /* ===== LEADERSHIP ===== */
  .leader-grid{display:grid; grid-template-columns:280px 1fr; gap:56px; align-items:start;}
  .leader-photo{
    border:1px solid var(--line-strong); aspect-ratio:3/4; background:var(--bg-card);
    display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
  }
  .leader-photo .initials{font-family:var(--display); font-size:64px; color:var(--line-strong);}
  .leader-photo .corner{position:absolute; width:16px; height:16px; border-color:var(--red-bright); border-style:solid; border-width:0;}
  .leader-photo .corner.tl{top:8px; left:8px; border-top-width:2px; border-left-width:2px;}
  .leader-photo .corner.br{bottom:8px; right:8px; border-bottom-width:2px; border-right-width:2px;}
  .leader-name{font-size:26px; margin-bottom:4px;}
  .leader-title{font-family:var(--mono); font-size:12px; color:var(--red-bright); letter-spacing:.08em; text-transform:uppercase; margin-bottom:22px;}
  .leader-bio p{color:var(--text-dim); font-size:15px; margin-bottom:14px;}
  .cred-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}

  /* ===== CONTACT ===== */
  .contact{background:var(--bg-raised); border-top:1px solid var(--line);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
  .contact-item{padding:22px 0; border-bottom:1px solid var(--line);}
  .contact-item .label{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); margin-bottom:8px;}
  .contact-item .value{font-size:17px;}
  .contact-item a.value:hover{color:var(--red-bright);}

  /* ===== PORTAL ===== */
  .portal{background:var(--bg-raised); border-top:1px solid var(--line);}
  .portal-box{
    max-width:460px; margin:0 auto; text-align:center;
    border:1px solid var(--line-strong); padding:52px 40px; background:var(--bg-card); position:relative;
  }
  .portal-box .corner{position:absolute; width:16px; height:16px; border-color:var(--red-bright); border-style:solid; border-width:0;}
  .portal-box .corner.tl{top:-1px; left:-1px; border-top-width:2px; border-left-width:2px;}
  .portal-box .corner.br{bottom:-1px; right:-1px; border-bottom-width:2px; border-right-width:2px;}
  .lock-icon{font-family:var(--display); font-size:34px; color:var(--red-bright); margin-bottom:18px;}
  .portal-box h3{font-size:20px; margin-bottom:10px;}
  .portal-box p.hint{color:var(--text-faint); font-size:13px; margin-bottom:26px;}
  .portal-box input{
    width:100%; background:var(--bg); border:1px solid var(--line-strong); color:var(--text);
    padding:13px 16px; font-family:var(--mono); font-size:14px; margin-bottom:14px; border-radius:2px;
    letter-spacing:.05em;
  }
  .portal-box input:focus{outline:none; border-color:var(--red-bright);}
  .portal-error{color:var(--red-bright); font-family:var(--mono); font-size:12px; min-height:18px; margin-bottom:8px;}
  .portal-content{display:none;}
  .portal-content.active{display:block;}
  .portal-locked.hidden{display:none;}
  .policy-doc{
    max-width:760px; margin:0 auto; text-align:left; border:1px solid var(--line); background:var(--bg-card); padding:40px;
  }
  .policy-doc h3{color:var(--red-bright); font-size:14px; margin:26px 0 10px; letter-spacing:.05em;}
  .policy-doc h3:first-child{margin-top:0;}
  .policy-doc p, .policy-doc li{color:var(--text-dim); font-size:14.5px; margin-bottom:8px;}
  .policy-doc ul{padding-left:20px; margin-bottom:14px;}
  .policy-doc textarea{
    width:100%; min-height:260px; background:var(--bg); border:1px solid var(--line-strong); color:var(--text);
    font-family:var(--body); font-size:14px; padding:16px; border-radius:2px; margin-top:10px; resize:vertical;
  }
  .admin-row{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; flex-wrap:wrap; gap:12px;}
  .admin-row .who{font-family:var(--mono); font-size:11px; color:var(--text-faint); text-transform:uppercase;}
  .small-btn{font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; padding:9px 16px; border:1px solid var(--line-strong); border-radius:2px; cursor:pointer; background:transparent; color:var(--text-dim);}
  .small-btn:hover{border-color:var(--red-bright); color:var(--text);}
  .small-btn.primary{background:var(--red); border-color:var(--red); color:#fff;}
  .small-btn.primary:hover{background:var(--red-bright);}
  .save-msg{font-family:var(--mono); font-size:11px; color:var(--red-bright); margin-top:10px; min-height:16px;}

  /* ===== FOOTER ===== */
  footer{padding:48px 0; border-top:1px solid var(--line);}
  .footer-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
  .footer-brand{display:flex; align-items:center; gap:14px;}
  .footer-brand img{
    height:44px; width:44px; border-radius:50%;
    border:2px solid var(--red-bright);
    box-shadow: 0 0 14px rgba(224,32,28,0.4);
    opacity:1;
  }
  .footer-text{font-family:var(--mono); font-size:11px; color:var(--text-faint); letter-spacing:.04em;}
  .footer-tag{font-family:var(--mono); font-size:10px; color:var(--text-faint); letter-spacing:.14em; text-transform:uppercase; margin-top:6px;}

  @media (max-width: 880px){
    .nav-links{position:fixed; top:72px; left:0; right:0; bottom:0; background:var(--bg); flex-direction:column; padding:40px 32px; gap:26px; transform:translateX(100%); transition:transform .3s; align-items:flex-start;}
    .nav-links.open{transform:translateX(0);}
    .nav-toggle{display:flex;}
    .about-grid, .leader-grid, .contact-grid{grid-template-columns:1fr;}
    .services-grid{grid-template-columns:1fr;}
    .stat-block{grid-template-columns:1fr;}
    .wrap{padding:0 20px;}
    .hero-logo-lockup{flex-direction:column; align-items:flex-start; gap:14px;}
    .hero-logo{height:80px; width:80px;}
    .partner-logos{gap:18px;}
    .partner-logos img{height:44px; width:44px;}
  }

  /* ===================================================================
     iOS / SAFARI COMPATIBILITY
     Added after the v45 split. Everything here is additive — it only
     changes behaviour on Safari and touch devices. Desktop is untouched.
     =================================================================== */

  /* 1. Frosted nav bar.
        Safari needed the -webkit- prefix until version 18. Without it the
        header is flat translucent and page content shows through sharply
        as you scroll. Free to include; harmless on browsers that ignore it. */
  header{
    -webkit-backdrop-filter: blur(10px);
  }

  /* 2. Hero height.
        On iOS, 100vh means "viewport with the address bar hidden", which is
        taller than what you can actually see on load. The hero overflowed
        the screen and pushed the headline down out of view. 100svh is the
        small viewport height — what's genuinely visible. The plain 100vh
        line stays first as a fallback for anything that predates svh. */
  .hero{
    min-height: 100vh;
    min-height: 100svh;
  }

  /* 3. Stop iOS resizing text on rotation.
        Safari inflates font sizes when you turn the phone landscape, which
        breaks the display headings. */
  html{
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  /* 4. Anchor links land below the fixed header instead of underneath it. */
  html{
    scroll-padding-top: 84px;
  }

  /* 5. Touch devices only (pointer:coarse = finger, not mouse). */
  @media (pointer: coarse){

    /* 5a. THE BIG ONE. iOS force-zooms the entire page when you focus an
           input smaller than 16px, and it does not zoom back out afterwards.
           Tapping ACCESS CODE on the portal left the site stuck zoomed in.
           16px is the threshold; it must be exactly this or larger. */
    .portal-box input,
    .policy-doc textarea{
      font-size: 16px;
    }

    /* 5b. Remove the grey flash box iOS draws over links and buttons on tap. */
    a, button, .btn, .small-btn{
      -webkit-tap-highlight-color: transparent;
    }

    /* 5c. Mobile menu panel used bottom:0, which on iOS sits underneath the
           Safari toolbar and cut off the last nav links. */
    .nav-links{
      height: calc(100svh - 72px);
      bottom: auto;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
  }
