  :root{
    --ink:       #17110B;
    --ink-soft:  #241A11;
    --maroon:    #3E1B14;
    --maroon-soft:#4A2118;
    --paper:     #F1E9D8;
    --paper-dim: #E4D8BE;
    --blush:     #EAD6C2; /* faint red-tinted paper, for section rhythm */
    --red:       #C1281B; /* was #AE2A1E — more saturated cinnabar */
    --red-deep:  #8A1810; /* was #7A1B12 */
    --gold:      #A9822F;
    --ink-text:  #241C16;
    --paper-text:#F3ECDD;
    --max: 880px;
  }

  .masthead-bar{
    height:6px;
    background:var(--red);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink-text);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.65;
    font-size:17px;
  }

  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:600;
    color:var(--ink-text);
    margin:0 0 .5em;
    letter-spacing:.01em;
  }

  a{color:var(--red); text-decoration:none;}
  a:hover{color:var(--red-deep);}

  :focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
  }

  .wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}

  .rule{
    border:none;
    height:1px;
    background:linear-gradient(to right, transparent, var(--gold), transparent);
    margin:0;
  }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--ink);
    color:var(--paper-text);
    padding:clamp(56px, 10vw, 108px) 24px clamp(48px, 8vw, 88px);
    text-align:center;
    position:relative;
  }
  .lang-switch{
    position:absolute;
    top:16px;
    right:20px;
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.05em;
  }
  .lang-switch a{
    color:var(--paper-text);
    opacity:.6;
  }
  .lang-switch a:hover{opacity:1;}
  .lang-switch a.current{
    opacity:1;
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-color:var(--gold);
  }
  .lang-switch span{opacity:.4; margin:0 2px;}
  .seal{
    width:96px; height:96px;
    margin:0 auto 28px;
    border-radius:6px;
    background:var(--red);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 0 0 1px rgba(169,130,47,.55), 0 10px 30px rgba(0,0,0,.4);
  }
  .seal span{
    font-family:'Noto Sans SC', sans-serif;
    font-weight:900;
    font-size:32px;
    line-height:1;
    color:var(--paper-text);
    writing-mode:vertical-rl;
    letter-spacing:3px;
  }
  .hero h1{
    color:var(--paper-text);
    font-size:clamp(2.6rem, 7vw, 4.4rem);
    letter-spacing:.06em;
    margin-bottom:.15em;
  }
  .hero .sub{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:500;
    color:var(--gold);
    font-size:clamp(1.05rem, 2.4vw, 1.35rem);
    margin-bottom:1.6em;
  }
  .hero p.lead{
    max-width:560px;
    margin:0 auto 2em;
    color:var(--paper-text);
    opacity:.88;
    font-size:1.05rem;
  }
  .btn{
    display:inline-block;
    padding:14px 34px;
    background:var(--red);
    color:var(--paper-text);
    font-family:'IBM Plex Mono', monospace;
    font-size:.85rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    border-radius:2px;
    transition:background .15s ease;
  }
  .btn:hover{background:var(--red-deep); color:var(--paper-text);}

  /* ---------- SECTIONS ---------- */
  section{padding:clamp(52px, 9vw, 92px) 0;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:.78rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--red);
    margin-bottom:.9em;
    display:block;
  }
  section h2{font-size:clamp(1.7rem, 4vw, 2.3rem);}

  .lede{max-width:640px; font-size:1.05rem;}

  /* lineage chain */
  .lineage{
    list-style:none;
    margin:2.2em 0 0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:0;
    max-width:520px;
  }
  .lineage li{
    position:relative;
    padding:14px 0 14px 28px;
    border-left:1px solid var(--gold);
  }
  .lineage li::before{
    content:'';
    position:absolute;
    left:-4px; top:22px;
    width:7px; height:7px;
    border-radius:50%;
    background:var(--red);
  }
  .lineage .who{font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem;}
  .lineage .role{font-family:'IBM Plex Mono', monospace; font-size:.78rem; color:var(--red-deep); letter-spacing:.03em;}
  .lineage li.you{border-left-color:var(--red);}
  .lineage li.you::before{background:var(--gold); width:9px; height:9px; left:-5px;}

  .lineage-photo{
    margin:2em 0 0;
    max-width:640px;
  }
  .lineage-photo img{
    max-width:100%;
    height:auto;
    display:block;
    border-radius:2px;
    box-shadow:0 6px 20px rgba(23,17,11,.18);
  }
  .lineage-photo figcaption{
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.03em;
    color:var(--red-deep);
    margin-top:.7em;
  }

  .reading{
    margin-top:2.6em;
    padding-top:1.8em;
    border-top:1px solid rgba(169,130,47,.4);
    max-width:520px;
  }
  .reading-title{
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--red-deep);
  }
  .reading ul{
    list-style:none;
    margin:.9em 0 0;
    padding:0;
    font-size:.92rem;
  }
  .reading li{padding:4px 0; color:#463a2c;}

  /* practice stages */
  .stages{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
    gap:1px;
    background:var(--gold);
    margin-top:2em;
    border:1px solid var(--gold);
  }
  .stage{
    background:var(--paper);
    padding:20px 18px;
  }
  .stage .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:.75rem;
    color:var(--red);
  }
  .stage h3{font-size:1.02rem; margin:.35em 0 .25em;}
  .stage p{font-size:.88rem; margin:0; color:#463a2c;}

  /* courses */
  .locations{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
    margin-top:2.4em;
  }
  @media (max-width:640px){.locations{grid-template-columns:1fr;}}

  .loc{
    background:linear-gradient(160deg, var(--maroon-soft), var(--maroon));
    color:var(--paper-text);
    padding:30px 28px;
    border-radius:2px;
  }
  .loc.tbd{background:var(--paper-dim); color:var(--ink-text); border:1px dashed var(--gold);}
  .loc h3{
    color:inherit;
    font-size:1.3rem;
    margin-bottom:.15em;
  }
  .loc .place{
    font-family:'IBM Plex Mono', monospace;
    font-size:.82rem;
    color:var(--gold);
    margin-bottom:1.1em;
    display:block;
  }
  .loc.tbd .place{color:var(--red-deep);}
  .dates{list-style:none; margin:0 0 1.1em; padding:0;}
  .dates li{
    font-family:'IBM Plex Mono', monospace;
    font-size:.92rem;
    padding:6px 0;
    border-bottom:1px solid rgba(241,233,216,.14);
  }
  .loc.tbd .dates li{border-bottom:1px solid rgba(36,28,22,.14);}
  .loc .price{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:1.5rem;
    margin-top:.4em;
  }
  .loc .price span{
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    font-size:.7rem;
    opacity:.7;
    margin-left:4px;
  }
  .note{font-size:.85rem; opacity:.8; margin-top:.6em;}

  /* teacher */
  .teacher{
    display:flex;
    gap:32px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .teacher .badge{
    font-family:'IBM Plex Mono', monospace;
    font-size:.75rem;
    letter-spacing:.04em;
    display:inline-block;
    border:1px solid var(--red);
    color:var(--red-deep);
    padding:5px 12px;
    border-radius:2px;
    margin-top:1em;
    margin-right:10px;
  }
  .badge-lang{border-color:var(--gold); color:var(--gold);}

  /* contact */
  .contact-box{
    background:linear-gradient(160deg, var(--maroon-soft), var(--maroon));
    color:var(--paper-text);
    padding:clamp(32px,6vw,56px);
    text-align:center;
    border-radius:2px;
  }
  .contact-box a.mail{
    font-family:'Fraunces', serif;
    font-size:clamp(1.3rem,3vw,1.7rem);
    font-weight:600;
    color:var(--gold);
  }
  .contact-box a.mail:hover{color:var(--paper-text);}
  .contact-box p{opacity:.85; max-width:480px; margin:1em auto 0;}

  .legal{
    background:var(--paper-dim);
    padding:clamp(40px,7vw,64px) 0;
  }
  .legal h2{font-size:1.3rem;}
  .legal dl{
    display:grid;
    grid-template-columns:max-content 1fr;
    gap:10px 24px;
    margin:1.6em 0 0;
    font-size:.88rem;
  }
  .legal dt{
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--red-deep);
    white-space:nowrap;
    padding-top:2px;
  }
  .legal dd{margin:0; color:#463a2c;}
  @media (max-width:560px){
    .legal dl{grid-template-columns:1fr;}
    .legal dt{margin-top:.6em;}
  }
  .legal .object{
    font-size:.85rem;
    line-height:1.6;
    color:#463a2c;
    max-width:640px;
    margin-top:1.6em;
    padding-top:1.4em;
    border-top:1px solid rgba(169,130,47,.4);
  }

  .network-cols{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:2.4em;
    margin-top:1.8em;
  }
  @media (max-width:560px){.network-cols{grid-template-columns:1fr;}}
  .network-cols ul{list-style:none; margin:.8em 0 0; padding:0; font-size:.92rem;}
  .network-cols li{padding:4px 0;}

  footer{
    background:var(--ink-soft);
    color:var(--paper-text);
    padding:36px 24px;
    text-align:center;
  }
  footer .seal-mini{
    font-family:'Noto Sans SC', sans-serif;
    font-weight:900;
    color:var(--red);
    font-size:1rem;
    letter-spacing:3px;
  }
  footer p{
    font-size:.8rem;
    opacity:.65;
    margin:.6em 0 0;
    font-family:'IBM Plex Mono', monospace;
  }
