:root{
    --carbon:#111214;
    --charcoal:#1a1a1a;
    --crimson:#8e1b1b;
    --steel:#545a61;
    --rice:#eae2d0;
    --hairline:#2a2a29;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--carbon);
    color:var(--rice);
    font-family:'Inter', sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  .serif{ font-family:'Playfair Display', serif; }

  @keyframes fadeUp{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }
  .fade{ animation:fadeUp 1s ease both; }
  .fade-delay{ animation:fadeUp 1.1s ease 0.15s both; }
  @media (prefers-reduced-motion:reduce){ .fade,.fade-delay{ animation:none; } html{scroll-behavior:auto;} }

  /* ===== NAV ===== */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:150;
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 32px;
    background:rgba(17,18,20,0.85);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--hairline);
  }
  .nav-brand{ font-family:'Playfair Display', serif; font-size:30px; letter-spacing:0.04em; color:var(--rice); }
  .nav-brand span{ color:var(--crimson); }
  .nav-links{ display:flex; align-items:center; gap:26px; }
  .nav-links a{ font-size:13px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--rice); }
  .nav-links a:hover{ color:var(--crimson); }
  .nav-kanji{ font-family:'Playfair Display', serif; font-size:22px; letter-spacing:0.15em; color:var(--crimson); margin-left:4px; }
  .nav-cta{
    font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    border:1px solid var(--crimson); color:var(--rice);
    padding:10px 18px;
  }
  .nav-cta:hover{ background:var(--crimson); }
  .nav-mobile-cta{ display:none; }

  /* ===== HAMBURGER MENU (mobile) ===== */
  .nav-toggle{
    display:none;
    background:none; border:none; color:var(--rice);
    font-size:26px; line-height:1; cursor:pointer;
    padding:4px 6px; margin-left:12px;
  }
  .nav-backdrop{
    position:fixed; inset:0;
    background:rgba(10,10,10,0.7);
    z-index:110;
    opacity:0; pointer-events:none;
    transition:opacity .25s ease;
  }
  .nav-backdrop.nav-open{ opacity:1; pointer-events:auto; }

  @media (max-width:900px){
    .nav-toggle{ display:block; }
    .nav-links{
      display:flex !important;
      flex-direction:column;
      align-items:flex-start;
      gap:26px;
      position:fixed;
      top:0; right:-85%;
      width:78%; max-width:320px;
      height:100vh;
      background:#111214;
      border-left:1px solid var(--hairline);
      padding:90px 32px 32px;
      z-index:120;
      transition:right .3s ease;
      overflow-y:auto;
    }
    .nav-links.nav-open{ right:0; }
    .nav-links a{ font-size:16px; }
    .nav-brand{ font-size:19px; }
    .nav-cta{ display:none; }
    .nav-cta-group{ display:none !important; }
    .nav-links .nav-mobile-cta{
      display:block;
      margin-top:12px;
      background:var(--crimson);
      color:var(--rice);
      padding:14px 20px;
      font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
      text-align:center;
      width:100%;
    }
  }

  /* ===== HERO ===== */
  .hero{
    position:relative; min-height:100vh;
    display:flex; align-items:flex-end;
    padding:64px 32px 88px;
    background:
      linear-gradient(180deg, rgba(17,18,20,0.18) 0%, rgba(17,18,20,0.58) 60%, rgba(17,18,20,0.97) 100%),
      url('photos/hero-outdoor-lineup.jpg') center 30% / cover no-repeat;
  }
  .hero-inner{ max-width:620px; }
  .hero .eyebrow{ font-size:18px; letter-spacing:0.16em; text-transform:uppercase; color:#5c1015; font-weight:700; margin-bottom:18px; display:block; }
  .hero h1{ font-size:clamp(32px,5.5vw,54px); font-weight:700; color:var(--rice); line-height:1.08; margin-bottom:16px; margin-top:-144px; text-shadow:0 4px 24px rgba(0,0,0,0.55), 0 0 40px rgba(142,27,27,0.25); }
  .hero .sub{ font-size:16px; letter-spacing:0.02em; color:var(--steel); margin-bottom:20px; text-transform:uppercase; }
  .hero .support{ font-size:15px; color:#c9c3b4; max-width:440px; margin-bottom:34px; }
  .hero .support strong{ color:var(--rice); font-weight:600; }
  .cta-row{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
  .btn-primary{
    background:var(--crimson); color:var(--rice);
    font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    padding:16px 28px; border:1px solid var(--crimson);
    transition:background .2s ease;
  }
  .btn-primary:hover{ background:#701515; }
  .btn-ghost{
    font-size:13px; letter-spacing:0.04em; color:var(--rice);
    border-bottom:1px solid var(--steel); padding:15px 2px;
  }
  .btn-ghost:hover{ border-color:var(--rice); }

  /* ===== SECTION SHELL ===== */
  section{ padding:100px 32px; }
  .inner{ max-width:1040px; margin:0 auto; }
  .head{ margin-bottom:56px; max-width:600px; }
  .head .eyebrow{ font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--crimson); margin-bottom:14px; display:block; }
  .head h2{ font-size:clamp(28px,4vw,40px); font-weight:600; color:var(--rice); }
  .head p{ color:var(--steel); margin-top:14px; font-size:15px; }

  /* ===== TRUST STRIP ===== */
  .trust{ padding:48px 32px; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); background:var(--charcoal); }
  .trust-row{ max-width:1040px; margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px; }
  .trust-item{ font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--rice); text-align:center; flex:1; min-width:140px; }

  /* ===== FOUNDER / LEGACY ===== */
  .legacy-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center; }
  .legacy-grid img{ width:100%; filter:grayscale(60%) contrast(1.05); border:1px solid var(--hairline); }
  .legacy-grid h3{ font-family:'Playfair Display', serif; font-size:26px; color:var(--rice); margin-bottom:6px; }
  .legacy-grid .role{ color:var(--crimson); font-size:13px; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:20px; }
  .legacy-grid p{ color:#c9c3b4; font-size:15px; margin-bottom:20px; }
  .legacy-list{ list-style:none; }
  .legacy-list li{ font-size:14px; color:var(--rice); padding:10px 0; border-top:1px solid var(--hairline); }
  .legacy-list li:first-child{ border-top:none; }
  @media (max-width:800px){ .legacy-grid{ grid-template-columns:1fr; } }

  /* ===== CREDENTIALS ===== */
  .cred-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
  .cred-card{ background:var(--carbon); padding:36px 24px; text-align:center; }
  .cred-num{ font-family:'Playfair Display', serif; font-size:44px; color:var(--crimson); font-weight:700; }
  .cred-label{ font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--steel); margin-top:8px; }
  @media (max-width:700px){ .cred-grid{ grid-template-columns:1fr 1fr; } }

  /* ===== TRAINING PROGRAMS ===== */
  .program-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
  .program-card{ background:var(--charcoal); padding:32px 26px; }
  .program-icon{ width:22px; height:22px; margin-bottom:20px; }
  .program-card h3{ font-family:'Playfair Display', serif; font-size:18px; color:var(--rice); margin-bottom:10px; }
  .program-card p{ font-size:13.5px; color:var(--steel); margin-bottom:18px; }
  .program-link{ font-size:12px; letter-spacing:0.05em; text-transform:uppercase; color:var(--crimson); border-bottom:1px solid var(--crimson); padding-bottom:2px; }
  @media (max-width:800px){ .program-grid{ grid-template-columns:1fr; } }

  /* ===== TESTIMONIAL ===== */
  .testimonial{ text-align:center; background:var(--charcoal); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
  .testimonial-inner{ max-width:680px; margin:0 auto; }
  .quote{ font-family:'Playfair Display', serif; font-style:italic; font-size:22px; color:var(--rice); line-height:1.5; margin-bottom:24px; }
  .quote-author{ font-size:13px; letter-spacing:0.04em; color:var(--rice); }
  .quote-platform{ font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--steel); margin-top:4px; }
  .read-more{ display:inline-block; margin-top:28px; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; border:1px solid var(--steel); padding:12px 22px; color:var(--rice); }
  .read-more:hover{ border-color:var(--rice); }

  /* ===== INTEREST FORM ===== */
  .interest-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
  .interest-grid p{ color:var(--steel); font-size:15px; max-width:400px; }
  form{ display:flex; flex-direction:column; gap:14px; }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  label{ display:block; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--steel); margin-bottom:6px; }
  input, select{
    width:100%; background:var(--carbon); border:1px solid var(--hairline);
    color:var(--rice); padding:13px 14px; font-size:14px; font-family:'Inter', sans-serif;
  }
  input:focus, select:focus{ outline:none; border-color:var(--crimson); }
  .submit-btn{
    background:var(--crimson); color:var(--rice); border:none;
    font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    padding:16px; cursor:pointer; margin-top:6px;
  }
  .submit-btn:hover{ background:#701515; }
  @media (max-width:800px){ .interest-grid{ grid-template-columns:1fr; gap:32px; } }

  /* ===== FOOTER ===== */
  footer{ padding:48px 32px 32px; text-align:center; }
  .footer-brand{ font-family:'Playfair Display', serif; font-size:17px; margin-bottom:18px; }
  .footer-brand span{ color:var(--crimson); }
  .footer-links{ display:flex; justify-content:center; gap:20px; flex-wrap:wrap; margin-bottom:18px; }
  .footer-links a{ font-size:12px; letter-spacing:0.05em; text-transform:uppercase; color:var(--steel); }
  .footer-links a:hover{ color:var(--rice); }
  .footer-meta{ font-size:12px; color:var(--steel); }

  /* ===== SCROLL REVEAL ===== */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
  .reveal-visible{ opacity:1; transform:translateY(0); }

  /* ===== PARALLAX (desktop only, respects reduced motion) ===== */
  @media (prefers-reduced-motion: no-preference) and (min-width:900px){
    .hero, .page-hero{ background-attachment:fixed; }
  }

  /* ===== FULL-BLEED SECTIONS ===== */
  .full-bleed{
    width:100vw;
    position:relative;
    left:50%; right:50%;
    margin-left:-50vw; margin-right:-50vw;
  }
  .full-bleed .inner{ max-width:1400px; }
  .full-bleed .cred-grid,
  .full-bleed .program-grid{
    grid-template-columns:repeat(3,1fr);
  }
  @media (max-width:1100px){
    .full-bleed .cred-grid, .full-bleed .program-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:700px){
    .full-bleed .cred-grid, .full-bleed .program-grid{ grid-template-columns:1fr; }
  }

  /* ===== VERTICAL KANJI STRIP (right edge) — individual upright characters, stacked ===== */
  .side-kanji-wrap{
    position:fixed;
    top:50%; right:20px;
    transform:translateY(-50%);
    z-index:40;
    pointer-events:none;
  }
  .side-kanji{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
  }
  .side-kanji span{
    display:block;
    font-family:'Playfair Display', serif;
    font-size:clamp(38px, 7vw, 90px);
    line-height:1;
    color:#8e1b1b;
    opacity:0.85;
  }
  @media (max-width:900px){ .side-kanji-wrap{ display:none; } }

  /* ===== LIGHTBOX ===== */
  .lightbox-overlay{
    position:fixed; inset:0;
    background:rgba(10,10,10,0.95);
    display:flex; align-items:center; justify-content:center;
    z-index:200;
    opacity:0; pointer-events:none;
    transition:opacity .25s ease;
    padding:40px;
  }
  .lightbox-overlay.lightbox-open{ opacity:1; pointer-events:auto; }
  .lightbox-img{
    max-width:92vw; max-height:88vh;
    object-fit:contain;
    box-shadow:0 20px 60px rgba(0,0,0,0.6);
    border:1px solid var(--hairline);
  }
  .lightbox-close{
    position:absolute; top:24px; right:32px;
    background:none; border:1px solid var(--steel);
    color:var(--rice);
    font-size:28px; line-height:1;
    width:44px; height:44px;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox-close:hover{ border-color:var(--crimson); color:var(--crimson); }

  /* ===== PHOTO CAROUSEL (scroll-snap, native touch swipe) ===== */
  .gallery-carousel{
    display:flex;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding-bottom:14px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:var(--crimson) var(--charcoal, #1a1a1a);
  }
  .gallery-carousel::-webkit-scrollbar{ height:6px; }
  .gallery-carousel::-webkit-scrollbar-thumb{ background:var(--crimson); }
  .gallery-carousel .gallery-item{
    flex:0 0 auto;
    width:280px;
    scroll-snap-align:start;
  }
  @media (max-width:600px){
    .gallery-carousel .gallery-item{ width:78vw; }
  }