
  :root{
    --ink:#0f2740;
    --ink-2:#173352;
    --red:#e8271f;
    --cream:#f4f0e7;
    --cream-2:#eae4d5;
    --asphalt:#15191e;
    --asphalt-2:#1f242b;
    --slate:#465565;
    --slate-soft:#8794a0;
    --line-light: rgba(15,39,64,.14);
    --line-dark: rgba(244,240,231,.14);
    --paper:#f4f0e7;
    --paper-text:#171b20;
    --on-dark:#f4f0e7;
    --on-dark-soft:#aab4bd;
    --focus:#e8271f;
    --accent-text:#c81f18;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#12151a;
      --paper-text:#eee9de;
      --cream:#171b20;
      --cream-2:#1c2127;
      --line-light: rgba(238,233,222,.14);
      --slate:#9aa6b1;
      --accent-text:#ff8a83;
    }
  }
  :root[data-theme="dark"]{
    --paper:#12151a;
    --paper-text:#eee9de;
    --cream:#171b20;
    --cream-2:#1c2127;
    --line-light: rgba(238,233,222,.14);
    --slate:#9aa6b1;
    --accent-text:#ff8a83;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--paper-text);
    font-family:"Source Sans 3", "Segoe UI", Arial, sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  h1,h2,h3{
    font-family:"Big Shoulders Display","Arial Narrow",sans-serif;
    text-transform:uppercase;
    letter-spacing:.01em;
    text-wrap:balance;
    margin:0;
    font-weight:800;
  }
  .mono{font-family:"JetBrains Mono", ui-monospace, monospace;}
  .eyebrow{
    font-family:"JetBrains Mono", ui-monospace, monospace;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:.78rem;
    color:var(--accent-text);
    font-weight:600;
  }
  .wrap{
    max-width:1160px;
    margin:0 auto;
    padding-inline:24px;
  }
  section{padding-block:88px;}
  @media (max-width:640px){
    section{padding-block:56px;}
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:"JetBrains Mono", ui-monospace, monospace;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-size:.82rem;
    font-weight:600;
    padding:14px 24px;
    border:1.5px solid currentColor;
    text-decoration:none;
    cursor:pointer;
    background:none;
    transition:transform .15s ease, background .15s ease, color .15s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{
    background:var(--red);
    border-color:var(--red);
    color:#fff;
  }
  .btn-primary:hover{background:#c91d16;}
  .btn-ghost-dark{
    color:var(--on-dark);
    border-color:rgba(244,240,231,.5);
  }
  .btn-ghost-dark:hover{background:rgba(244,240,231,.1);}
  .btn-sm{padding:9px 14px; font-size:.72rem;}
  .btn:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, button:focus-visible{
    outline:2px solid var(--focus);
    outline-offset:2px;
  }

  /* header */
  header{
    position:sticky; top:0; z-index:40;
    background:var(--asphalt);
    border-bottom:1px solid var(--line-dark);
  }
  .nav-inner{
    max-width:1160px; margin:0 auto; padding:14px 24px;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    position:relative;
  }
  .logo-img{height:32px; width:auto;}
  nav ul{
    display:flex; gap:26px; list-style:none; margin:0; padding:0;
  }
  nav a{
    font-family:"JetBrains Mono", ui-monospace, monospace;
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--on-dark-soft);
    text-decoration:none;
  }
  nav a:hover{color:var(--on-dark);}
  .nav-right{display:flex; align-items:center; gap:12px;}
  .nav-cta{display:none;}
  @media (min-width:760px){ .nav-cta{display:inline-flex;} }
  .burger{
    display:none;
    background:none;border:1px solid var(--line-dark);color:var(--on-dark);
    padding:8px 12px; font-family:"JetBrains Mono",monospace; font-size:.78rem;
    text-transform:uppercase; letter-spacing:.08em; cursor:pointer;
  }
  @media (max-width:759px){
    nav ul{display:none;}
    .burger{display:inline-flex;}
  }
  nav.open ul{
    display:flex; flex-direction:column; gap:16px;
    position:absolute; top:100%; left:0; right:0;
    background:var(--asphalt); padding:20px 24px 28px;
    border-bottom:1px solid var(--line-dark);
  }
  #langToggle{
    color:var(--on-dark); border-color:rgba(244,240,231,.5);
    min-width:44px; justify-content:center;
  }

  /* hero */
  .hero{
    position:relative;
    background:var(--asphalt) url("/assets/img/hero.jpg") center 58% / cover no-repeat;
    color:var(--on-dark);
  }
  @media (max-width:640px){
    .hero{ background-position: 58% 50%; }
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      linear-gradient(100deg, rgba(15,20,24,.93) 0%, rgba(15,20,24,.88) 36%, rgba(15,20,24,.58) 58%, rgba(15,20,24,.24) 78%, rgba(15,20,24,.06) 100%),
      linear-gradient(180deg, rgba(15,20,24,.18) 0%, rgba(15,20,24,.05) 40%, rgba(15,20,24,.6) 100%);
  }
  .hero-inner{
    position:relative;
    max-width:1160px; margin:0 auto; padding:110px 24px 90px;
  }
  @media (max-width:640px){ .hero-inner{padding:70px 24px 60px;} }
  .hero h1{
    font-size:clamp(2.4rem, 6.2vw, 4.6rem);
    line-height:1.02;
    max-width:14ch;
  }
  .hero .lede{
    margin-top:22px;
    max-width:46ch;
    font-size:1.14rem;
    color:var(--on-dark-soft);
  }
  .hero .cta-row{
    display:flex; gap:16px; margin-top:38px; flex-wrap:wrap;
  }
  .hero .manifest-strip{
    margin-top:64px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:rgba(244,240,231,.18);
    border:1px solid rgba(244,240,231,.18);
    max-width:640px;
  }
  @media (max-width:600px){ .hero .manifest-strip{grid-template-columns:1fr;} }
  .manifest-strip div{
    background:rgba(15,20,24,.55);
    padding:16px 18px;
  }
  .manifest-strip .k{
    font-family:"JetBrains Mono",monospace;
    font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
    color:var(--on-dark-soft);
  }
  .manifest-strip .v{
    font-family:"Big Shoulders Display",sans-serif;
    font-weight:700; font-size:1.15rem; margin-top:4px;
  }

  /* section heads */
  .head{
    display:flex; align-items:baseline; justify-content:space-between;
    gap:24px; margin-bottom:48px; flex-wrap:wrap;
  }
  .head h2{font-size:clamp(1.9rem,4vw,2.7rem);}
  .head .eyebrow{display:block; margin-bottom:10px;}
  .head p{max-width:38ch; color:var(--slate); margin:0;}

  /* services */
  .services-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:1px;
    background:var(--line-light);
    border:1px solid var(--line-light);
  }
  @media (max-width:700px){ .services-grid{grid-template-columns:1fr;} }
  .svc{
    background:var(--paper); padding:40px;
  }
  .svc .tag{
    font-family:"JetBrains Mono",monospace; font-size:.72rem;
    letter-spacing:.1em; color:var(--red); text-transform:uppercase;
  }
  .svc h3{font-size:1.6rem; margin-top:10px;}
  .svc p{color:var(--slate); margin-top:14px; max-width:36ch;}

  /* fleet */
  .fleet-section{background:var(--cream);}
  .fleet-grid{
    display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;
  }
  @media (max-width:800px){ .fleet-grid{grid-template-columns:1fr; gap:36px;} }
  .fleet-photos{
    display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr 1fr;
    gap:14px; aspect-ratio:6/5;
  }
  .fleet-photos img{width:100%; height:100%; object-fit:cover; cursor:zoom-in;}
  .fleet-photos .p1{grid-row:1/3;}
  @media (max-width:520px){
    .fleet-photos{grid-template-columns:1fr; grid-template-rows:none; aspect-ratio:auto;}
    .fleet-photos .p1{grid-row:auto; aspect-ratio:4/3;}
    .fleet-photos .p2, .fleet-photos .p3{aspect-ratio:4/3;}
  }
  .lightbox{
    position:fixed; inset:0; z-index:100;
    background:rgba(10,12,15,.92);
    display:flex; align-items:center; justify-content:center;
    padding:32px;
  }
  .lightbox[hidden]{display:none;}
  .lightbox img{max-width:100%; max-height:90vh; width:auto; object-fit:contain;}
  .lightbox-close{
    position:absolute; top:20px; right:24px;
    background:none; border:1px solid rgba(244,240,231,.5); color:var(--on-dark);
    font-family:"JetBrains Mono",monospace; font-size:.78rem; letter-spacing:.08em;
    text-transform:uppercase; padding:8px 14px; cursor:pointer;
  }
  .manifest-card{
    border:1px solid var(--line-light);
    background:var(--paper);
  }
  .manifest-card .row{
    display:flex; justify-content:space-between; gap:16px;
    padding:16px 22px;
    border-bottom:1px solid var(--line-light);
    font-family:"JetBrains Mono",monospace;
    font-size:.86rem;
  }
  .manifest-card .row:last-child{border-bottom:none;}
  .manifest-card .row .k{color:var(--slate);}
  .manifest-card .row .v{font-weight:600; text-align:right;}
  .manifest-card .head-row{
    background:var(--ink); color:var(--on-dark);
    padding:14px 22px;
    font-family:"JetBrains Mono",monospace;
    font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  }
  .fleet-text p{color:var(--slate); max-width:42ch; margin-top:16px;}

  /* about quote */
  .about-section{
    background:var(--asphalt); color:var(--on-dark);
  }
  .about-grid{
    display:grid; grid-template-columns:1fr 1.4fr; gap:56px; align-items:start;
  }
  @media (max-width:800px){ .about-grid{grid-template-columns:1fr;} }
  .about-grid blockquote{
    margin:0; font-family:"Big Shoulders Display",sans-serif;
    font-size:clamp(1.5rem,3vw,2rem); font-weight:700; line-height:1.15;
    text-transform:none; letter-spacing:0;
  }
  .about-grid .cite{
    margin-top:18px; font-family:"JetBrains Mono",monospace; font-size:.78rem;
    color:var(--on-dark-soft); letter-spacing:.05em; text-transform:uppercase;
  }
  .about-grid .copy p{color:var(--on-dark-soft); max-width:52ch;}
  .about-grid .copy p+p{margin-top:16px;}

  /* routes */
  .routes-section{background:var(--paper);}
  .route-strip{
    display:flex; flex-wrap:wrap; gap:1px;
    background:var(--line-light); border:1px solid var(--line-light);
  }
  .route-cell{
    background:var(--paper);
    flex:1 1 150px;
    padding:22px 20px;
    position:relative;
  }
  .route-cell .code{
    font-family:"JetBrains Mono",monospace; font-size:1.6rem; font-weight:700;
    color:var(--paper-text);
  }
  .route-cell .name{
    margin-top:6px; font-size:.85rem; color:var(--slate);
  }
  .route-cell.base{background:var(--ink); }
  .route-cell.base .code, .route-cell.base .name{color:var(--on-dark);}
  .route-note{
    margin-top:28px; color:var(--slate); max-width:56ch; font-size:.95rem;
  }

  /* contact */
  .contact-section{background:var(--ink); color:var(--on-dark);}
  .contact-grid{
    display:grid; grid-template-columns:1fr 1.2fr; gap:56px;
  }
  @media (max-width:800px){ .contact-grid{grid-template-columns:1fr; gap:40px;} }
  .contact-info dl{margin:28px 0 0; padding:0;}
  .contact-info .item{
    padding:16px 0; border-top:1px solid var(--line-dark);
  }
  .contact-info .item:first-child{border-top:none;}
  .contact-info dt{
    font-family:"JetBrains Mono",monospace; font-size:.7rem; letter-spacing:.1em;
    text-transform:uppercase; color:var(--on-dark-soft); margin:0;
  }
  .contact-info dd{margin:6px 0 0; font-size:1.05rem;}
  .contact-info a{text-decoration:none; border-bottom:1px solid rgba(244,240,231,.35);}
  .contact-info a:hover{border-color:var(--on-dark);}

  form{display:flex; flex-direction:column; gap:18px;}
  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{
    font-family:"JetBrains Mono",monospace; font-size:.72rem; letter-spacing:.08em;
    text-transform:uppercase; color:var(--on-dark-soft);
  }
  .field input, .field textarea{
    background:rgba(244,240,231,.06);
    border:1px solid rgba(244,240,231,.3);
    color:var(--on-dark);
    padding:13px 14px;
    font-family:"Source Sans 3",sans-serif;
    font-size:1rem;
    resize:vertical;
  }
  .field input::placeholder, .field textarea::placeholder{color:rgba(244,240,231,.4);}
  .row2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  @media (max-width:520px){ .row2{grid-template-columns:1fr;} }
  .form-msg{
    font-family:"JetBrains Mono",monospace; font-size:.85rem; min-height:1.2em;
  }
  .form-msg.ok{color:#8fd19e;}
  .form-msg.err{color:#f2a1a1;}

  footer{
    background:var(--asphalt); color:var(--on-dark-soft);
    padding:32px 0;
    font-family:"JetBrains Mono",monospace; font-size:.78rem;
  }
  .footer-inner{
    max-width:1160px; margin:0 auto; padding:0 24px;
    display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
    align-items:center;
  }
  .footer-inner img{height:18px; opacity:.9;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }
