:root{
  --ink:#141414;
  --ink-2:#25211f;
  --paper:#f3eee4;
  --paper-2:#e8dfcf;
  --red:#7d1b1b;
  --red-dark:#561313;
  --brass:#b08a4f;
  --muted:#6b645b;
  --line:rgba(20,20,20,.14);
  --white:#fffdf8;
  --shadow:0 18px 44px rgba(0,0,0,.12);
  --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1160px,calc(100% - 38px));margin:0 auto}
.topbar{
  background:rgba(18,18,18,.98);
  color:#eee7dc;
  border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky;top:0;z-index:50;
}
.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-weight:850;letter-spacing:.08em;text-transform:uppercase;font-size:.92rem}
.brand-mark{
  width:42px;height:42px;border-radius:999px;overflow:hidden;background:#fff;display:grid;place-items:center;border:1px solid rgba(255,255,255,.15)
}
.brand-mark img{width:100%;height:100%;object-fit:cover}
.brand-text small{display:block;font-size:.72rem;letter-spacing:.16em;color:#cfb482}
.navlinks{display:flex;gap:24px;align-items:center}
.navlinks a{text-decoration:none;font-size:.94rem;color:#e8e1d7}
.navlinks a:hover,.navlinks a[aria-current="page"]{color:white}
.menu{display:none;background:none;border:1px solid rgba(255,255,255,.22);color:#fff;padding:8px 11px;border-radius:2px}

.hero{
  color:white;
  background:
    linear-gradient(120deg,rgba(0,0,0,.90),rgba(0,0,0,.62)),
    radial-gradient(circle at 78% 24%,rgba(176,138,79,.22),transparent 30%),
    linear-gradient(135deg,#191817,#35302b);
  border-bottom:5px solid var(--red);
}
.hero-grid{
  min-height:76vh;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:44px;
  align-items:center;
  padding:70px 0;
}
.eyebrow{color:#d9bf91;text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;font-weight:850}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.08;margin-top:0}
h1{font-size:clamp(3rem,8vw,6.6rem);letter-spacing:-.048em;margin:.18em 0}
h2{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:18px}
h3{font-size:1.4rem}
.hero p{font-size:clamp(1.05rem,2vw,1.28rem);max-width:740px;color:#eee8df}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0}
.hero-badges span{border:1px solid rgba(255,255,255,.2);padding:8px 11px;background:rgba(255,255,255,.05);font-size:.86rem}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 20px;border-radius:3px;
  text-decoration:none;font-weight:800;letter-spacing:.02em;border:1px solid transparent
}
.btn-primary{background:var(--red);color:white}
.btn-primary:hover{background:var(--red-dark)}
.btn-ghost{border-color:rgba(255,255,255,.46);color:white}
.btn-ghost:hover{background:rgba(255,255,255,.08)}
.btn-light{border-color:var(--line);background:var(--white);color:var(--ink)}
.btn-light:hover{box-shadow:var(--shadow)}

.photo-frame{
  background:#efe7d7;
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 22px 50px rgba(0,0,0,.18);
}
.photo-frame img{width:100%;height:100%;object-fit:cover}
.hero-photo{aspect-ratio:4/5}
.hero-photo img{object-position:center 18%}

.info-strip{background:var(--white);border-bottom:1px solid var(--line)}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.info-item{padding:25px 22px;border-right:1px solid var(--line)}
.info-item:last-child{border-right:0}
.label{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:850;color:#756b5f}
.value{font-size:1.03rem;font-weight:850;margin-top:3px}
.subvalue{font-size:.86rem;color:var(--muted);margin-top:2px}

.section{padding:88px 0}
.section.alt{background:var(--white)}
.section.dark{background:var(--ink-2);color:#f3ede4}
.lede{max-width:780px;font-size:1.1rem;color:#5c554d}
.dark .lede{color:#d4ccc1}
.kicker{color:var(--red);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:900}
.dark .kicker{color:#d4b27c}

.grid-2{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}
.card{background:var(--white);border:1px solid var(--line);padding:28px;box-shadow:0 8px 25px rgba(0,0,0,.03);border-radius:var(--radius)}
.card h3{margin-bottom:8px}
.card p{margin:0;color:#615b54}
.dark .card{background:#2e2b29;border-color:rgba(255,255,255,.12)}
.dark .card p{color:#d7d0c8}
.stat{font-family:Georgia,serif;font-size:2.5rem;line-height:1;margin-bottom:8px}

.kun{counter-reset:kun;display:grid;gap:12px;margin-top:34px}
.kun-item{counter-increment:kun;display:grid;grid-template-columns:58px 1fr;gap:18px;padding:22px 0;border-top:1px solid rgba(255,255,255,.14)}
.kun-item::before{content:counter(kun,decimal-leading-zero);font-family:Georgia,serif;font-size:1.6rem;color:#cdaa72}
.kun-item h3{margin:0 0 4px;font-size:1.22rem}
.kun-item p{margin:0;color:#d7d0c8}

.page-hero{background:linear-gradient(130deg,#181716,#332d29);color:white;padding:88px 0 72px;border-bottom:4px solid var(--red)}
.page-hero h1{font-size:clamp(2.8rem,7vw,5.4rem);margin:.18em 0 .1em}
.page-hero p{max-width:740px;color:#ddd6cc;font-size:1.1rem}

.detail-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.detail{background:var(--white);padding:23px 24px;display:grid;grid-template-columns:220px 1fr;gap:22px}
.detail strong{font-family:Georgia,serif;font-size:1.08rem}
.notice{background:#efe3d0;border-left:4px solid var(--brass);padding:18px 20px;margin:28px 0;border-radius:2px}
.links{display:flex;gap:12px;flex-wrap:wrap}
.link-card{flex:1 1 230px;background:var(--white);border:1px solid var(--line);padding:22px;text-decoration:none;border-radius:var(--radius)}
.link-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact-card{background:var(--white);border:1px solid var(--line);padding:28px;border-radius:var(--radius)}
.contact-card h3{margin-bottom:8px}
.contact-card p{margin:.35rem 0}
.map-wrap{margin-top:26px;border:1px solid var(--line);background:var(--white);padding:8px;border-radius:var(--radius)}
.map-wrap iframe{width:100%;height:380px;border:0;display:block;border-radius:6px}

.cost-box{background:var(--white);border:1px solid var(--line);padding:30px;margin-top:26px;border-radius:var(--radius)}
.cost-box h3{font-size:1.7rem;margin-bottom:8px}
.cost-box ul{margin:12px 0 0;padding-left:22px}
.cost-box li{margin:.55rem 0}

.wordmark-wrap{
  display:flex;justify-content:center;align-items:center;
  background:var(--paper-2);padding:22px;border:1px solid var(--line);border-radius:var(--radius)
}
.wordmark-wrap img{max-width:420px;width:100%;height:auto}

.side-photo{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--white)}
.side-photo img{width:100%;height:auto;display:block}
.photo-caption{font-size:.86rem;color:var(--muted);padding:10px 14px;background:var(--white);border-top:1px solid var(--line)}

footer{background:#111;color:#d8d0c5;padding:44px 0}
.footer-grid{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}
footer a{color:#fff}
.small{font-size:.88rem;color:#9f978d}

@media(max-width:960px){
  .info-grid{grid-template-columns:repeat(2,1fr)}
  .info-item:nth-child(2){border-right:0}
  .info-item:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .hero-grid,.grid-2{grid-template-columns:1fr}
}
@media(max-width:820px){
  .menu{display:block}
  .navlinks{display:none;position:absolute;top:76px;left:0;right:0;background:#171717;padding:18px 20px 24px;flex-direction:column;align-items:flex-start;border-top:1px solid rgba(255,255,255,.1)}
  .navlinks.open{display:flex}
  .card-grid,.contact-grid{grid-template-columns:1fr}
  .detail{grid-template-columns:1fr;gap:4px}
  .section{padding:64px 0}
  .hero-grid{min-height:auto;padding:60px 0}
  .footer-grid{flex-direction:column}
}
@media(max-width:540px){
  .info-grid{grid-template-columns:1fr}
  .info-item{border-right:0!important;border-bottom:1px solid var(--line)}
  .info-item:last-child{border-bottom:0}
  .brand-text span{font-size:.78rem}
}

.instructor-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:34px;
}
.instructor-card{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:24px;
  align-items:center;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 8px 25px rgba(0,0,0,.04);
}
.instructor-card img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
}
.instructor-copy{padding:26px 26px 26px 0}
.instructor-copy h3{margin-bottom:6px;font-size:1.7rem}
.instructor-copy p{margin:.4rem 0}
.rank{
  font-weight:850;
  color:var(--red);
  letter-spacing:.01em;
}
@media(max-width:900px){
  .instructor-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .instructor-card{grid-template-columns:1fr}
  .instructor-card img{min-height:0;max-height:520px;object-position:center 15%}
  .instructor-copy{padding:0 24px 24px}
}

/* ---------------- Student Resources ---------------- */
.resource-jump{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:24px;
}
.resource-jump a{
  color:#fff;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.28);
  padding:9px 13px;
  background:rgba(255,255,255,.05);
}
.resource-jump a:hover{background:rgba(255,255,255,.1)}

.resources-teaser{background:linear-gradient(135deg,#eee4d4,#f8f3e9)}
.resource-mini-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.mini-resource{
  min-height:130px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:22px;
  border:1px solid var(--line);
  background:var(--white);
  border-radius:var(--radius);
}
.mini-resource strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  line-height:1;
  color:var(--red);
}
.mini-resource span{
  font-weight:750;
  margin-top:8px;
}

.resource-heading{
  margin:48px 0 18px;
  font-size:1.7rem;
}
.video-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.video-grid.single-video{grid-template-columns:minmax(0,560px)}
.video-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.video-embed{
  position:relative;
  aspect-ratio:16/9;
  background:#0d0d0d;
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.video-copy{padding:20px 22px 22px}
.video-copy h3{margin:8px 0 7px}
.video-copy p{margin:0;color:var(--muted)}
.resource-tag{
  display:inline-block;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.67rem;
  font-weight:900;
  color:var(--red);
}

.document-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:34px;
}
.document-card{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:18px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
}
.document-card h3{margin:0 0 7px}
.document-card p{margin:0 0 12px;color:var(--muted)}
.doc-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#2c4b78;
  color:#fff;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.05em;
}
.text-link{
  color:var(--red);
  font-weight:800;
  text-decoration:none;
}
.text-link:hover{text-decoration:underline}

.quick-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:30px;
}
.quick-card{
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.035);
  padding:20px;
  min-height:104px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.quick-card span{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.15rem;
  color:#fff;
}
.quick-card strong{
  color:#d2b784;
  font-size:.84rem;
  margin-top:4px;
}

@media(max-width:900px){
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .video-grid,.video-grid.single-video,.document-grid{grid-template-columns:1fr}
  .resource-mini-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .quick-grid,.resource-mini-grid{grid-template-columns:1fr}
  .document-card{grid-template-columns:1fr}
}

/* ================= Okinawan Flare Pass ================= */

:root{
  --sun:#b53a2f;
  --sand:#efe5d4;
  --ink-soft:#3c332a;
}

body{
  background:
    radial-gradient(circle at 12% 8%, rgba(176,138,79,.08), transparent 22%),
    radial-gradient(circle at 88% 12%, rgba(125,27,27,.06), transparent 18%),
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0)),
    var(--paper);
}

.topbar{
  box-shadow:0 10px 26px rgba(0,0,0,.14);
}

.brand-text span{
  position:relative;
}
.brand-text span:after{
  content:"";
  display:block;
  width:52px;
  height:2px;
  margin-top:4px;
  background:linear-gradient(90deg, var(--brass), transparent);
}

.hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(120deg,rgba(0,0,0,.90),rgba(0,0,0,.62)),
    radial-gradient(circle at 74% 20%, rgba(181,58,47,.16), transparent 24%),
    linear-gradient(135deg,#171615,#332d29);
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.14;
  background-image:
    radial-gradient(circle at 10px 10px, rgba(255,255,255,.22) 1.4px, transparent 1.6px);
  background-size:26px 26px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.85), rgba(0,0,0,.25));
}
.hero:after{
  content:"";
  position:absolute;
  right:-120px;
  top:-80px;
  width:430px;
  height:430px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(181,58,47,.28), rgba(181,58,47,.08) 45%, transparent 68%);
  filter:blur(2px);
}
.hero-grid > div:first-child{
  position:relative;
  z-index:2;
}
.hero-grid > div:first-child:before{
  content:"";
  position:absolute;
  left:-18px;
  top:-26px;
  width:92px;
  height:92px;
  border-radius:50%;
  background:rgba(181,58,47,.14);
  z-index:-1;
}

.hero-badges span{
  border-radius:999px;
  padding:8px 13px;
  backdrop-filter: blur(3px);
}

.photo-frame{
  position:relative;
  border:1px solid rgba(255,255,255,.16);
}
.photo-frame:after,
.side-photo:after{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(176,138,79,.35);
  pointer-events:none;
  border-radius:calc(var(--radius) - 2px);
}
.side-photo{
  position:relative;
}

.info-strip{
  position:relative;
}
.info-strip:before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:4px;
  background:linear-gradient(90deg, var(--red), var(--brass), var(--red));
}
.info-item{
  background:
    linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.98));
}
.value{color:var(--ink-soft)}

.section h2, .page-hero h1{
  position:relative;
}
.section h2:after{
  content:"";
  display:block;
  width:96px;
  height:3px;
  margin-top:14px;
  background:linear-gradient(90deg, var(--red), var(--brass), transparent);
}

.page-hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(130deg,#181716,#302923);
}
.page-hero:before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.11;
  background:
    radial-gradient(circle at 8px 8px, rgba(255,255,255,.2) 1.2px, transparent 1.4px);
  background-size:24px 24px;
}
.page-hero .wrap{position:relative; z-index:1}

.kicker{
  position:relative;
  padding-left:16px;
}
.kicker:before{
  content:"";
  position:absolute;
  left:0;
  top:.25em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--brass);
}

.card,
.contact-card,
.document-card,
.video-card,
.cost-box,
.link-card,
.detail-list,
.wordmark-wrap,
.map-wrap,
.instructor-card,
.mini-resource{
  box-shadow:0 12px 28px rgba(0,0,0,.055);
}

.card,
.contact-card,
.document-card,
.video-card,
.instructor-card,
.link-card{
  position:relative;
}
.card:before,
.contact-card:before,
.document-card:before,
.video-card:before,
.instructor-card:before,
.link-card:before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:4px;
  background:linear-gradient(90deg, var(--red), var(--brass));
}

.section.alt{
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.93)),
    var(--white);
}

.resources-teaser{
  background:
    radial-gradient(circle at 80% 18%, rgba(181,58,47,.10), transparent 20%),
    linear-gradient(135deg,#eee4d4,#f8f3e9);
}

.quote-panel{
  background:
    linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.92));
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:0 12px 12px 0;
  box-shadow:0 12px 28px rgba(0,0,0,.05);
  position:relative;
}
.quote-panel:before{
  content:"Okinawa";
  position:absolute;
  right:18px;
  top:16px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.95rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(166,124,59,.56);
}

.wordmark-wrap{
  background:
    linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,.95)),
    var(--paper-2);
}
.wordmark-wrap img{
  filter: drop-shadow(0 8px 14px rgba(0,0,0,.09));
}

.kun-item{
  position:relative;
}
.kun-item:after{
  content:"";
  position:absolute;
  left:58px;
  right:0;
  bottom:-6px;
  height:1px;
  background:linear-gradient(90deg, rgba(210,183,132,.35), transparent);
}
.kun-item:last-child:after{display:none}

.resource-jump a{
  border-radius:999px;
}
.resource-tag{
  padding:3px 8px;
  background:rgba(125,27,27,.08);
  border-radius:999px;
}

.doc-icon{
  background:
    linear-gradient(180deg, #355885, #294469);
}

.quick-card{
  border-radius:10px;
}

.text-link{
  position:relative;
}
.text-link:after{
  content:"";
  display:block;
  width:100%;
  max-width:92px;
  height:2px;
  margin-top:4px;
  background:linear-gradient(90deg, var(--red), transparent);
}

.btn-primary,
.btn-light,
.btn-ghost{
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn-primary:hover,
.btn-light:hover,
.btn-ghost:hover{
  transform:translateY(-1px);
}
.btn-primary:hover,
.btn-light:hover{
  box-shadow:0 10px 18px rgba(0,0,0,.1);
}

/* Heritage strip */
.heritage-band{
  background:linear-gradient(90deg, #efe4d1, #fbf7ef, #efe4d1);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.heritage-grid{
  display:grid;
  grid-template-columns:120px 1fr auto;
  gap:22px;
  align-items:center;
  padding:22px 0;
}
.heritage-mark{
  width:88px;
  height:88px;
  border-radius:50%;
  overflow:hidden;
  border:1px solid rgba(176,138,79,.45);
  background:#fff;
  box-shadow:0 8px 18px rgba(0,0,0,.05);
}
.heritage-copy h3{
  margin:0 0 6px;
  font-size:1.5rem;
}
.heritage-copy p{
  margin:0;
  color:var(--muted);
}
.heritage-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:999px;
  font-weight:800;
  letter-spacing:.03em;
}

@media(max-width:860px){
  .heritage-grid{
    grid-template-columns:1fr;
    text-align:center;
    justify-items:center;
  }
}

/* ================= V7 Disciplined Dark Okinawan Pass ================= */

:root{
  --ink:#0f0f10;
  --ink-2:#181514;
  --ink-3:#221c18;
  --paper:#ece2d2;
  --paper-2:#dfd1bc;
  --red:#6f1717;
  --red-dark:#471010;
  --brass:#b48b4e;
  --brass-soft:#d4b27a;
  --white:#fffaf3;
}

body{
  background:
    linear-gradient(90deg, rgba(0,0,0,.028) 0, rgba(0,0,0,0) 8%, rgba(0,0,0,0) 92%, rgba(0,0,0,.028) 100%),
    radial-gradient(circle at 84% 9%, rgba(180,139,78,.08), transparent 18%),
    radial-gradient(circle at 10% 16%, rgba(111,23,23,.055), transparent 17%),
    var(--paper);
  color:#191513;
}

.topbar{
  background:
    linear-gradient(180deg, rgba(10,10,10,.985), rgba(22,19,17,.985));
  border-bottom:1px solid rgba(212,178,122,.18);
}

.brand-mark{
  box-shadow:0 0 0 2px rgba(180,139,78,.16), 0 6px 16px rgba(0,0,0,.24);
}
.navlinks a{
  position:relative;
}
.navlinks a:after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:0;
  height:2px;
  background:linear-gradient(90deg, var(--brass), var(--red));
  transition:width .18s ease;
}
.navlinks a:hover:after,
.navlinks a[aria-current="page"]:after{
  width:100%;
}

.hero{
  background:
    linear-gradient(125deg, rgba(0,0,0,.92), rgba(14,12,11,.78)),
    linear-gradient(0deg, rgba(180,139,78,.06), rgba(180,139,78,0)),
    linear-gradient(135deg,#121111,#27211d);
}
.hero:before{
  opacity:.11;
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size:30px 30px;
}
.hero:after{
  right:-90px;
  top:-40px;
  width:480px;
  height:480px;
  background:radial-gradient(circle, rgba(111,23,23,.36), rgba(111,23,23,.10) 48%, transparent 69%);
}
.hero-grid{
  gap:56px;
}
.hero-grid > div:first-child:before{
  width:120px;
  height:120px;
  background:rgba(180,139,78,.10);
}

.photo-frame,
.side-photo,
.instructor-card,
.card,
.contact-card,
.document-card,
.video-card,
.link-card,
.mini-resource{
  border-color:rgba(42,31,22,.22);
}

.photo-frame{
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0)),
    #161311;
  box-shadow:0 24px 54px rgba(0,0,0,.24);
}
.photo-frame:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(180,139,78,.10), transparent 30%),
    linear-gradient(90deg, rgba(255,255,255,.03), transparent 20%, transparent 80%, rgba(255,255,255,.03));
  pointer-events:none;
}
.hero-photo img{
  filter:saturate(.94) contrast(1.03);
}

.info-strip{
  background:
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.98));
}
.info-strip:before{
  height:5px;
}
.info-item{
  position:relative;
}
.info-item:after{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  bottom:12px;
  height:1px;
  background:linear-gradient(90deg, rgba(180,139,78,.35), transparent);
}

.section.alt{
  background:
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.96)),
    var(--white);
}
.section.dark{
  background:
    linear-gradient(180deg, #1f1916, #161311);
  color:#f2eadf;
  border-top:1px solid rgba(212,178,122,.08);
  border-bottom:1px solid rgba(212,178,122,.08);
}
.section.dark .lede{
  color:#d8cec2;
}
.section.dark h2:after{
  background:linear-gradient(90deg, var(--brass-soft), var(--red), transparent);
}

.kicker{
  letter-spacing:.2em;
}

.card:before,
.contact-card:before,
.document-card:before,
.video-card:before,
.instructor-card:before,
.link-card:before{
  height:3px;
}
.card:hover,
.link-card:hover,
.document-card:hover,
.video-card:hover,
.instructor-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(0,0,0,.08);
}

.instructor-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.98));
}
.instructor-copy h3{
  letter-spacing:.01em;
}
.rank{
  display:inline-block;
  padding:5px 10px;
  background:rgba(111,23,23,.06);
  border-left:3px solid var(--brass);
}

.heritage-band{
  background:
    linear-gradient(90deg, rgba(180,139,78,.08), rgba(255,255,255,.65), rgba(180,139,78,.08));
}
.heritage-badge{
  background:
    linear-gradient(180deg, #fffefc, #f4ece1);
  border-color:rgba(42,31,22,.16);
  box-shadow:0 10px 20px rgba(0,0,0,.05);
}

.quote-panel{
  font-size:1.22rem;
}

.kun{
  gap:16px;
}
.kun-item{
  padding:22px 18px 22px 0;
  border-top:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.02), transparent);
}
.kun-item::before{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(212,178,122,.26);
  border-radius:50%;
  font-size:1rem;
  margin-top:4px;
}
.kun-item h3{
  text-transform:none;
  letter-spacing:.01em;
}
.kun-item p{
  color:#d9cfc2;
}
.kun-item:after{
  left:0;
  background:linear-gradient(90deg, rgba(212,178,122,.28), transparent 72%);
}

.wordmark-wrap{
  background:
    linear-gradient(180deg, rgba(255,255,255,.54), rgba(255,255,255,.92)),
    var(--paper-2);
}

.btn-primary{
  background:linear-gradient(180deg, #7d1b1b, #5f1414);
}
.btn-light{
  background:linear-gradient(180deg, #fffefb, #f0e7d8);
}
.btn-ghost{
  border-color:rgba(255,255,255,.32);
}
.btn-primary,
.btn-light,
.btn-ghost{
  letter-spacing:.04em;
}

.resource-jump a,
.hero-badges span,
.resource-tag,
.heritage-badge{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.76rem;
}

.resources-teaser{
  background:
    radial-gradient(circle at 80% 18%, rgba(111,23,23,.10), transparent 20%),
    linear-gradient(135deg,#ecdfcd,#f6efe4);
}

.mini-resource{
  min-height:122px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.99));
}
.mini-resource strong{
  color:var(--red);
}

.video-card,
.document-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.99));
}

.quick-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  border:1px solid rgba(212,178,122,.14);
}
.quick-card strong{
  letter-spacing:.06em;
}

.map-wrap,
.cost-box,
.detail-list{
  box-shadow:0 16px 28px rgba(0,0,0,.05);
}

footer{
  background:
    linear-gradient(180deg, #11100f, #0b0b0b);
  border-top:1px solid rgba(212,178,122,.10);
}

.lineage-strip{
  background:
    linear-gradient(90deg, #1b1614, #241c18, #1b1614);
  color:#f2ebdf;
  border-top:1px solid rgba(212,178,122,.10);
  border-bottom:1px solid rgba(212,178,122,.10);
}
.lineage-row{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  gap:14px;
  align-items:center;
  padding:28px 0;
}
.lineage-node{
  text-align:center;
  padding:16px 18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(212,178,122,.12);
  border-radius:10px;
}
.lineage-node strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.15rem;
  color:#fff;
}
.lineage-node span{
  display:block;
  margin-top:5px;
  color:#d2c6b8;
  font-size:.92rem;
}
.lineage-arrow{
  color:var(--brass-soft);
  font-size:1.3rem;
  font-weight:900;
}

@media(max-width:860px){
  .lineage-row{
    grid-template-columns:1fr;
    gap:10px;
  }
  .lineage-arrow{
    text-align:center;
    transform:rotate(90deg);
  }
}

/* ================= V8 Instructor Biography Pass ================= */

.instructor-intro{
  display:grid;
  grid-template-columns:320px 1fr;
  gap:42px;
  align-items:start;
  margin-top:34px;
}
.instructor-intro + .instructor-intro{
  margin-top:70px;
  padding-top:70px;
  border-top:1px solid var(--line);
}
.instructor-portrait{
  position:sticky;
  top:104px;
}
.instructor-portrait .side-photo{
  box-shadow:0 20px 42px rgba(0,0,0,.12);
}
.bio-rank{
  display:inline-block;
  margin:2px 0 18px;
  padding:7px 11px;
  background:rgba(111,23,23,.07);
  border-left:3px solid var(--brass);
  color:var(--red);
  font-weight:900;
  letter-spacing:.02em;
}
.bio-copy p{
  margin:0 0 1.15rem;
  color:#443d36;
}
.bio-copy p:first-of-type{
  font-size:1.07rem;
}
.bio-callouts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:24px 0 28px;
}
.bio-callout{
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.99));
  border:1px solid var(--line);
  border-top:3px solid var(--brass);
  border-radius:8px;
  padding:16px;
}
.bio-callout strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.06rem;
  margin-bottom:4px;
}
.bio-callout span{
  color:var(--muted);
  font-size:.9rem;
}
.bio-quote{
  margin:28px 0 0;
  padding:22px 24px;
  background:linear-gradient(90deg, rgba(111,23,23,.06), rgba(176,139,78,.05));
  border-left:4px solid var(--red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.15rem;
  color:#2f2924;
}
.photo-rail{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:34px;
}
.photo-rail figure{
  margin:0;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:var(--white);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
}
.photo-rail img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.photo-rail figcaption{
  padding:10px 12px;
  font-size:.82rem;
  color:var(--muted);
}
.legacy-note{
  margin-top:34px;
  background:#1d1815;
  color:#efe6d9;
  border:1px solid rgba(212,178,122,.13);
  border-radius:10px;
  padding:24px;
}
.legacy-note strong{
  color:#fff;
}
.legacy-note p{
  margin:.35rem 0 0;
  color:#d8cec0;
}

@media(max-width:900px){
  .instructor-intro{
    grid-template-columns:1fr;
  }
  .instructor-portrait{
    position:static;
    max-width:430px;
  }
  .bio-callouts{
    grid-template-columns:1fr;
  }
}
@media(max-width:680px){
  .photo-rail{
    grid-template-columns:1fr;
  }
}

/* ================= V9 Dojo Photo Strip ================= */
.photo-rail.lead{
  margin-top:28px;
}
.photo-rail.featured img{
  aspect-ratio:4/3;
  object-position:center;
}
.photo-rail.featured figure{
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.99));
}
.photo-rail.featured figcaption{
  line-height:1.5;
}
.photo-rail-intro{
  margin-top:26px;
  color:var(--muted);
  max-width:760px;
}


/* ================= V10.5 Photoreal Video Hero ================= */
.video-hero .hero-video{
  transform:scaleX(-1);
}

.video-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#111;
}
.video-hero .hero-grid,
.video-hero .hero-grid > div:first-child,
.video-hero .hero-photo{
  position:relative;
  z-index:2;
}
.video-hero .hero-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  transform:translate3d(0,0,0) scale(1.06);
  transform-origin:center center;
  will-change:transform;
}
.video-hero .hero-video{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:saturate(.84) contrast(.95) brightness(.82);
}
.video-hero:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg, rgba(7,8,9,.80) 0%, rgba(7,8,9,.66) 28%, rgba(7,8,9,.50) 53%, rgba(7,8,9,.60) 100%),
    linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.30));
}
.video-hero:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 82% 20%, rgba(176,138,79,.18), transparent 24%),
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.18) 100%);
  pointer-events:none;
}
.video-hero .hero-grid{
  min-height:78vh;
}
.video-hero .hero-grid > div:first-child{
  max-width:760px;
}
.video-hero .hero-grid > div:first-child:before{
  background:rgba(176,138,79,.08);
}
.video-hero .hero-badges span{
  background:rgba(20,20,20,.20);
  border-color:rgba(255,255,255,.20);
  backdrop-filter:blur(5px);
}
.video-hero .hero-photo{
  background:rgba(17,15,14,.64);
  border-color:rgba(255,255,255,.14);
  backdrop-filter:blur(3px);
  justify-self:end;
  max-width:460px;
}
.video-hero .hero-photo img{
  filter:saturate(.94) contrast(1.03);
}

@media(max-width:960px){
  .video-hero .hero-grid{
    min-height:auto;
  }
  .video-hero:before{
    background:
      linear-gradient(180deg, rgba(7,8,9,.76) 0%, rgba(7,8,9,.58) 38%, rgba(7,8,9,.74) 100%),
      linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.26));
  }
  .video-hero .hero-photo{
    max-width:520px;
    justify-self:stretch;
  }
}
@media(max-width:620px){
  .video-hero .hero-media{
    transform:translate3d(0,0,0) scale(1.03);
  }
  .video-hero .hero-video{
    object-position:60% center;
  }
}
@media(prefers-reduced-motion: reduce){
  .video-hero .hero-media{
    transform:none !important;
  }
}


/* Tasteful text selection */
::selection{
  background:rgba(176,138,79,.22);
  color:inherit;
}


/* ================= V10.6 Heritage Hero + Loop Fade ================= */
.video-hero .hero-video{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1.35s ease-in-out;
}
.video-hero .hero-video.is-visible{
  opacity:1;
}

.hero-heritage-card{
  aspect-ratio:auto;
  display:grid;
  grid-template-rows:auto 1fr;
  align-content:start;
  gap:22px;
  padding:28px 28px 30px;
  background:rgba(17,15,14,.52);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(4px);
  max-width:470px;
  justify-self:end;
}
.heritage-card-mark{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 10px 0;
}
.heritage-card-mark img{
  width:min(230px, 72%);
  height:auto;
  aspect-ratio:1/1;
  object-fit:contain;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.22));
}
.hero-heritage-copy{
  display:grid;
  gap:10px;
}
.hero-heritage-copy h3{
  margin:0;
  font-size:2rem;
  color:#fff6ea;
}
.hero-heritage-copy p{
  margin:0;
  font-size:1rem;
  color:#e8ded1;
  line-height:1.65;
}
.hero-heritage-card .heritage-badge{
  justify-self:start;
  margin-top:6px;
  padding:0 22px;
  min-height:50px;
  background:linear-gradient(180deg, #fffefc, #efe5d6);
  border:1px solid rgba(67,48,28,.18);
  color:#2f2217;
  box-shadow:0 12px 26px rgba(0,0,0,.14);
  text-shadow:none;
}

@media(max-width:960px){
  .hero-heritage-card{
    max-width:560px;
    justify-self:stretch;
  }
  .heritage-card-mark img{
    width:min(200px, 55%);
  }
}
@media(max-width:620px){
  .hero-heritage-card{
    padding:24px 22px 24px;
    gap:18px;
  }
  .hero-heritage-copy h3{
    font-size:1.65rem;
  }
}


/* ================= V10.6.1 Headshot Swap ================= */
.section-headshot-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--paper-2);
  padding:18px;
  min-height:100%;
}
.section-headshot{
  width:100%;
  max-width:420px;
  aspect-ratio:4 / 5;
  object-fit:cover;
  object-position:center 18%;
  border-radius:calc(var(--radius) - 6px);
  box-shadow:0 12px 28px rgba(0,0,0,.12);
}
@media(max-width:960px){
  .section-headshot-wrap{
    max-width:520px;
    justify-self:start;
  }
}
@media(max-width:620px){
  .section-headshot-wrap{
    padding:14px;
  }
}


/* ================= V10.6.4 Button readability fix ================= */
.hero-heritage-card .heritage-badge,
.hero-heritage-card .heritage-badge *{
  color:#2f2217 !important;
}


/* ---------------- Website QR Code ---------------- */
.qr-card{
  margin-top:26px;
  display:grid;
  grid-template-columns:280px 1fr;
  gap:28px;
  align-items:center;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:0 8px 25px rgba(0,0,0,.04);
}
.qr-box{
  display:flex;
  justify-content:center;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px;
}
.qr-box img{
  width:min(100%,260px);
  height:auto;
  image-rendering:auto;
}
.qr-copy h3{margin-bottom:8px}
.qr-copy p{margin:.35rem 0}
@media(max-width:820px){
  .qr-card{grid-template-columns:1fr;justify-items:center;text-align:center}
  .qr-copy .actions{justify-content:center}
}
