:root{ scroll-behavior: smooth; }
  body{ font-family: 'Inter', sans-serif; background-color:#1A1714; color:#F4EEE3; }

  .font-display{ font-family:'Fraunces','serif'; }
  .font-label{ font-family:'Oswald','sans-serif'; letter-spacing:.18em; text-transform:uppercase; }

  /* Grain overlay */
  .grain{
    position:fixed; inset:0; pointer-events:none; z-index:60; opacity:.05; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* Brushed plate */
  .plate{
    position:relative; overflow:hidden;
    background:
      repeating-linear-gradient(100deg, rgba(255,255,255,.025) 0px, rgba(255,255,255,.025) 1px, transparent 1px, transparent 3px),
      linear-gradient(165deg, #26211D 0%, #171310 70%);
    border:1px solid rgba(244,238,227,.08);
    border-radius:4px;
  }
  .rivet{
    position:absolute; width:9px; height:9px; border-radius:50%;
    background: radial-gradient(circle at 35% 35%, #E0B387, #8A5A37 70%, #5b3a22 100%);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.35);
  }
  .rivet-tl{ top:14px; left:14px; }
  .rivet-tr{ top:14px; right:14px; }
  .rivet-bl{ bottom:14px; left:14px; }
  .rivet-br{ bottom:14px; right:14px; }

  /* Display sizing */
  .display-hero{ font-size:clamp(3.2rem, 10vw, 8.5rem); line-height:0.98; }
  .display-1{ font-size:clamp(2.4rem, 6vw, 4.5rem); line-height:1.05; }
  .display-2{ font-size:clamp(1.8rem, 4vw, 3rem); line-height:1.1; }

  /* Dashed divider matching wordmark */
  .dash-label{ display:flex; align-items:center; gap:.85rem; }
  .dash-label::before, .dash-label.center::after{ content:''; display:block; height:1px; width:2.25rem; background:#C28457; }
  .dash-label.center::before{ width:2.25rem; }
  .dash-label.left-only::after{ display:none; }

  /* Reveal animation */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity 0.9s cubic-bezier(.22,.61,.36,1), transform 0.9s cubic-bezier(.22,.61,.36,1); }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }


  /* Nav */
  #nav{ transition: background-color .4s ease, border-color .4s ease, padding .4s ease; }
  #nav.scrolled{ background-color: rgba(16,13,11,.9); backdrop-filter: blur(8px); border-bottom:1px solid rgba(244,238,227,.08); }

  .btn-brass{ background:#C28457; color:#1A1714; }
  .btn-brass:hover{ background:#E0B387; }
  .btn-outline{ border:1px solid rgba(244,238,227,.45); color:#F4EEE3; }
  .btn-outline:hover{ border-color:#C28457; color:#E0B387; }

  /* Form */
  .field input, .field select, .field textarea{
    background:transparent; border:none; border-bottom:1px solid rgba(244,238,227,.3);
    color:#F4EEE3; width:100%; padding:.6rem .1rem; outline:none; font-family:'Inter',sans-serif;
  }
  .field input::placeholder, .field textarea::placeholder{ color:rgba(244,238,227,.35); }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:#C28457; }
  .field select option{ background:#1A1714; }

  /* Honeypot spam trap — off-screen for humans, still reachable by simple bots */
  .hp-field{
    position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none;
  }

  .field-hint{
    display:block; margin-top:.4rem; font-family:'Inter',sans-serif;
    font-size:11px; color:rgba(244,238,227,.35); transition:color .2s ease;
  }
  /* Only flag as an error once the user has actually typed something invalid —
     not on a pristine empty required field. */
  .field input:invalid:not(:placeholder-shown){ border-bottom-color:#C2584F; }
  .field input:invalid:not(:placeholder-shown) + .field-hint{ color:#D98A80; }

  /* Hamburger */
  .hamburger-line{
    display:block; width:24px; height:1.5px; background:#F4EEE3; border-radius:2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  #menu-btn.open .hamburger-line:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
  #menu-btn.open .hamburger-line:nth-child(2){ opacity:0; }
  #menu-btn.open .hamburger-line:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

  /* Mobile menu */
  .mobile-menu{
    opacity:0; pointer-events:none;
    transition: opacity 0.35s ease;
  }
  .mobile-menu.open{
    opacity:1; pointer-events:auto;
  }
  .mobile-nav-link{
    font-family:'Oswald','sans-serif'; letter-spacing:.18em; text-transform:uppercase;
    font-size:1.6rem; color:#F4EEE3; padding:.75rem 0;
    border-bottom:1px solid rgba(244,238,227,.08);
    transition: color 0.2s ease;
  }
  .mobile-nav-link:hover{ color:#C28457; }

  @media (prefers-reduced-motion: reduce){
    .reveal{ transition:none; opacity:1; transform:none; }
  }

  /* ---- Hero carousel ---- */
  .hero-carousel{ position:absolute; inset:0; z-index:0; }
  .hero-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; }
  .hero-slide.active{ opacity:1; z-index:1; }
  .hero-slide picture, .hero-slide img{ display:block; width:100%; height:100%; object-fit:cover; }
  .hero-dots{
    position:absolute; z-index:10; left:50%; bottom:1.75rem; transform:translateX(-50%);
    display:flex; gap:.6rem;
  }
  @media (min-width:768px){ .hero-dots{ bottom:2.5rem; } }
  .hero-dot{
    width:8px; height:8px; padding:0; border-radius:50%; border:none; cursor:pointer;
    background:rgba(244,238,227,.35); transition:background .3s ease, transform .3s ease;
  }
  .hero-dot:hover{ background:rgba(244,238,227,.6); }
  .hero-dot.active{ background:#C28457; transform:scale(1.3); }
  @media (prefers-reduced-motion: reduce){
    .hero-slide{ transition:none; }
  }

  .hero-arrow{
    position:absolute; top:50%; z-index:10; transform:translateY(-50%);
    width:40px; height:40px; display:flex; align-items:center; justify-content:center;
    border-radius:50%; border:1px solid rgba(244,238,227,.35); background:rgba(16,13,11,.35);
    color:#F4EEE3; cursor:pointer; backdrop-filter:blur(2px);
    opacity:.6; transition:opacity .3s ease, border-color .3s ease, background .3s ease;
  }
  .hero-arrow:hover, .hero-arrow:focus-visible{
    opacity:1; border-color:#C28457; background:rgba(16,13,11,.55);
  }
  .hero-arrow-prev{ left:1rem; }
  .hero-arrow-next{ right:1rem; }
  @media (min-width:768px){
    .hero-arrow{ width:48px; height:48px; }
    .hero-arrow-prev{ left:2rem; }
    .hero-arrow-next{ right:2rem; }
  }

  /* ---- Model quick-view grid ---- */
  .model-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:.65rem; margin-bottom:4rem;
  }
  @media (min-width:640px){ .model-grid{ grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:5rem; } }
  .model-tile{
    position:relative; display:block; aspect-ratio:1/1; overflow:hidden; border-radius:14px;
    background:#15120f;
  }
  .model-tile picture, .model-tile img{
    display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s ease;
  }
  .model-tile::after{
    content:''; position:absolute; inset:0; z-index:1; opacity:.55; transition:opacity .35s ease;
    background:linear-gradient(180deg, rgba(16,13,11,0) 40%, rgba(16,13,11,.9) 100%);
  }
  .model-tile-caption{
    position:absolute; left:0; right:0; bottom:0; z-index:2; padding:.8rem .85rem;
    display:flex; flex-direction:column; gap:.1rem;
  }
  .model-tile-name{
    font-family:'Oswald','sans-serif'; letter-spacing:.08em; text-transform:uppercase;
    font-size:19px; font-weight:500; color:#F4EEE3; opacity:.95; transition:opacity .35s ease;
  }
  .model-tile-cap{
    display:block; font-family:'Oswald','sans-serif'; letter-spacing:.1em; text-transform:uppercase;
    font-size:14px; color:#E0B387; opacity:0; max-height:0; overflow:hidden;
    transition:opacity .35s ease, max-height .35s ease;
  }
  .model-tile:hover img, .model-tile:focus-visible img{ transform:scale(1.07); }
  .model-tile:hover::after, .model-tile:focus-visible::after{ opacity:.85; }
  .model-tile:hover .model-tile-cap, .model-tile:focus-visible .model-tile-cap{ opacity:1; max-height:24px; }
  @media (prefers-reduced-motion: reduce){
    .model-tile img{ transition:none; }
  }

  /* Offset anchored scrolling so the fixed nav doesn't cover the target.
     Nav is h-20 (80px) on mobile, lg:h-28 (112px) on desktop — match that plus a little breathing room. */
  #bullet, #titan, #magnus, #prime, #alpha, #supreme{ scroll-margin-top:6.5rem; }
  @media (min-width:1024px){
    #bullet, #titan, #magnus, #prime, #alpha, #supreme{ scroll-margin-top:8.5rem; }
  }

  /* ---- Gallery: deliberate grid, not accidental masonry ---- */
  .gallery-grid{
    display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; gap:.65rem;
  }
  .gallery-tile{ position:relative; overflow:hidden; border-radius:14px; background:#15120f; }
  .gallery-tile picture, .gallery-tile img{ display:block; width:100%; height:100%; object-fit:cover; }
  @media (min-width:640px){
    .gallery-grid{ grid-auto-rows:200px; gap:.85rem; }
  }
  @media (min-width:1024px){
    .gallery-grid{ grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:1rem; }
    .gallery-grid .g-2x2{ grid-column:span 2; grid-row:span 2; }
    .gallery-grid .g-2x1{ grid-column:span 2; }
    .gallery-grid .g-1x2{ grid-row:span 2; }
  }

  /* ---- Heritage: deliberate grid + closing tagline (was masonry + awkward quote card) ---- */
  .heritage-grid{
    display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; gap:.65rem;
  }
  .heritage-tile{ position:relative; overflow:hidden; border-radius:14px; background:#e7ded0; }
  .heritage-tile picture, .heritage-tile img{ display:block; width:100%; height:100%; object-fit:cover; }
  @media (min-width:640px){
    .heritage-grid{ grid-auto-rows:210px; gap:.85rem; }
  }
  @media (min-width:1024px){
    .heritage-grid{ grid-template-columns:repeat(3,1fr); grid-auto-rows:230px; gap:1rem; }
    .heritage-grid .h-2x1{ grid-column:span 2; }
    .heritage-grid .h-1x2{ grid-row:span 2; }
  }
  .heritage-tagline{
    margin-top:3.5rem; padding-top:3rem; border-top:1px solid rgba(26,23,20,.1);
    text-align:center;
  }
  @media (min-width:1024px){ .heritage-tagline{ margin-top:4.5rem; padding-top:3.5rem; } }
  .heritage-tagline-rule{
    display:block; width:2.5rem; height:1px; background:#9C4423; margin:0 auto 1.5rem;
  }
  .heritage-tagline-text{
    font-family:'Fraunces','serif'; font-style:italic; font-weight:500;
    font-size:clamp(1.5rem, 3.4vw, 2.5rem); line-height:1.25;
    max-width:38rem; margin:0 auto; color:#1A1714;
  }

  /* ---- Accessibility & cream-section contrast fixes ---- */

  /* Skip link: hidden until focused by keyboard users */
  .skip-link{
    position:absolute; left:1rem; top:-3rem; z-index:70;
    background:#C28457; color:#1A1714; padding:.6rem 1rem;
    font-family:'Oswald','sans-serif'; letter-spacing:.14em; text-transform:uppercase; font-size:12px;
    transition: top .2s ease;
  }
  .skip-link:focus{ top:1rem; }

  /* Visible keyboard focus everywhere (was missing entirely) */
  a:focus-visible, button:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible{
    outline:2px solid #C28457; outline-offset:3px;
  }

  /* Brass on the light cream sections only fails WCAG AA at 2.7:1.
     Scope a darker ember (5.5:1) to cream sections without touching markup. */
  .bg-cream .text-brass{ color:#9C4423; }
  .bg-cream .dash-label::before,
  .bg-cream .dash-label.center::after,
  .bg-cream .dash-label.center::before{ background:#9C4423; }