
:root{--ink:#171717;--paper:#faf8f4;--paper2:#f2eee8;--fuji:#d8a5f0;--fuji2:#8d5aae;--muted:#726a65;--line:#ded6cd;--black:#050505;--gold:#bca66a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Times New Roman','Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;line-height:1.9}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{position:fixed;z-index:30;top:0;left:0;right:0;min-height:72px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:linear-gradient(to bottom,rgba(0,0,0,.62),rgba(0,0,0,0));letter-spacing:.08em}.brand{font-size:17px;font-weight:600;white-space:nowrap}.nav{display:flex;gap:24px;font-size:14px;align-items:center}.nav a,.sns a{opacity:.9}.nav a:hover,.sns a:hover{color:var(--fuji)}.sns{display:flex;gap:14px;font-size:12px;text-transform:uppercase;align-items:center;margin-left:18px}.header-right{display:flex;align-items:center}.hero{min-height:100svh;background-image:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,.08) 100%),url('assets/hero.jpg');background-size:cover;background-position:center;display:flex;align-items:center;padding:120px 7vw;color:#fff;overflow:hidden}.hero-inner{max-width:1040px}.eyebrow{font-family:Georgia,serif;letter-spacing:.34em;text-transform:uppercase;font-size:13px;color:rgba(255,255,255,.76);margin-bottom:26px}.hero h1{font-size:clamp(54px,7.2vw,126px);line-height:1.08;margin:0 0 34px;font-weight:400;letter-spacing:.035em}.hero h1 span{display:block;white-space:nowrap}.lead{font-size:clamp(22px,2.65vw,42px);line-height:1.65;letter-spacing:.12em;border-bottom:1px solid var(--fuji);display:inline-block;padding-bottom:8px}.hero-actions{margin-top:46px;display:flex;gap:16px;flex-wrap:wrap}.btn{display:inline-block;border:1px solid currentColor;padding:12px 24px;letter-spacing:.12em;font-size:14px}.btn.primary{background:rgba(216,165,240,.14);border-color:var(--fuji)}.btn:hover{background:var(--fuji);color:#111}.section{padding:110px 7vw}.section.alt{background:#fff}.section.black{background:#050505;color:#fff}.section-head{max-width:1080px;margin:0 auto 56px}.section-label{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--fuji2);margin-bottom:14px}.section h2{font-size:clamp(34px,5vw,72px);line-height:1.25;font-weight:400;margin:0}.section h3{font-size:clamp(24px,3vw,42px);font-weight:400;line-height:1.5;margin:0 0 22px}.grid-2{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}.text p{font-size:18px;margin:0 0 18px}.feature-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.feature{border:1px solid var(--line);padding:30px 24px;background:rgba(255,255,255,.58)}.feature b{display:block;font-size:20px;margin-bottom:10px}.timeline,.award-list{max-width:980px;margin:0 auto;border-top:1px solid var(--line)}.tl,.award{display:grid;grid-template-columns:130px 1fr;gap:30px;border-bottom:1px solid var(--line);padding:24px 0}.tl-year,.award-year{font-size:22px;color:var(--fuji2)}.cards{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:#fff;border:1px solid var(--line);overflow:hidden}.card-img{aspect-ratio:4/3;background:#111;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.card:hover img{transform:scale(1.04)}.card-body{padding:28px}.card .year{color:var(--fuji2);letter-spacing:.16em}.card h3{font-size:26px;margin:6px 0 10px}.gallery-grid{max-width:1220px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.album-card{background:#fff;border:1px solid var(--line);overflow:hidden}.album-card .thumb{aspect-ratio:4/3;overflow:hidden;background:#111}.album-card .thumb img{width:100%;height:100%;object-fit:cover}.album-card .body{padding:22px}.album-card h3{font-size:24px;margin:0 0 8px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.photo-grid.big{grid-template-columns:repeat(4,1fr)}.photo-grid button{border:0;padding:0;background:none;cursor:pointer}.photo-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}.album-section{max-width:1220px;margin:0 auto 90px}.album-title{border-top:1px solid var(--line);padding-top:40px}.notice{max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:40px}.contact-box{max-width:980px;margin:0 auto;text-align:center;border:1px solid rgba(216,165,240,.55);padding:56px;background:rgba(216,165,240,.08)}.footer{padding:44px 7vw;background:#050505;color:#fff;font-size:13px;letter-spacing:.08em}.footer .sns{margin:12px 0 0}.page-hero{padding:150px 7vw 80px;background:#050505;color:#fff}.page-hero h1{font-size:clamp(46px,7vw,100px);font-weight:400;margin:0}.work-detail{max-width:1120px;margin:0 auto;padding:90px 7vw;border-bottom:1px solid var(--line)}.work-visual{margin:0 auto 48px;max-width:1180px}.work-visual img{width:100%;max-height:72vh;object-fit:cover}.meta{display:grid;grid-template-columns:160px 1fr;gap:12px;border-top:1px solid var(--line);max-width:760px;margin-top:28px}.meta div{border-bottom:1px solid var(--line);padding:10px 0}.coming{padding:60px;text-align:center;border:1px dashed var(--fuji2);background:rgba(216,165,240,.08)}.lesson-cards{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.lesson-card{background:#fff;border:1px solid var(--line);padding:28px}.fee-table{max-width:800px;margin:50px auto 0;border-top:1px solid var(--line)}.fee-row{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);padding:16px 0}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:99;display:none;align-items:center;justify-content:center;padding:28px}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:86vh;object-fit:contain}.lightbox button{position:absolute;top:20px;right:24px;background:none;border:1px solid #fff;color:#fff;padding:8px 14px;cursor:pointer}@media(max-width:1050px){.nav{display:none}.sns{display:none}.site-header{padding:0 22px}.hero{background-image:linear-gradient(to bottom,rgba(0,0,0,.45),rgba(0,0,0,.62)),url('assets/hero.jpg');padding:110px 28px}.grid-2,.feature-grid,.cards,.gallery-grid,.lesson-cards{grid-template-columns:1fr}.section{padding:76px 28px}.tl,.award{grid-template-columns:1fr;gap:4px}.hero h1{font-size:clamp(44px,13vw,72px)}.lead{font-size:25px}.brand{font-size:15px}.page-hero{padding:130px 28px 60px}.work-detail{padding:60px 28px}.meta{grid-template-columns:1fr}.contact-box{padding:36px 20px}.photo-grid,.photo-grid.big{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.photo-grid,.photo-grid.big{grid-template-columns:1fr}.hero h1{font-size:41px;letter-spacing:.02em}.fee-row{grid-template-columns:1fr}.brand{font-size:14px}}


/* v9 brand polish */
.brand{display:flex;align-items:center;gap:10px}.brand-logo{width:34px;height:34px;object-fit:contain;filter:brightness(0) invert(1);opacity:.92}.menu-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.55);color:#fff;font-size:18px;padding:4px 9px}.hero-slider{position:relative;background:none}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:72% center;opacity:0;animation:heroFade 32s infinite;transform:scale(1);z-index:0}.slide-a{background-image:url('assets/hero_slide_1.jpg');animation-delay:0s;background-position:72% center}.slide-b{background-image:url('assets/hero.jpg');animation-delay:8s;background-position:68% center}.slide-c{background-image:url('assets/hero_slide_3.jpg');animation-delay:16s;background-position:74% center}.slide-d{background-image:url('assets/hero_slide_4.jpg');animation-delay:24s;background-position:70% center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,7,.94) 0%,rgba(5,5,7,.86) 24%,rgba(5,5,7,.58) 42%,rgba(5,5,7,.18) 62%,rgba(5,5,7,0) 78%),linear-gradient(to bottom,rgba(0,0,0,.38) 0%,rgba(0,0,0,.06) 40%,rgba(0,0,0,.46) 100%);z-index:1}.hero-inner{position:relative;z-index:2;max-width:min(780px,52vw)}.hero h1 span{max-width:100%;white-space:normal}.profile-panel{padding-top:90px;padding-bottom:90px}.profile-grid{grid-template-columns:.9fr 1.1fr}.profile-grid img{max-height:72vh;width:100%;object-fit:cover;object-position:center 40%}.profile-copy{font-size:20px}.credentials{margin-top:32px;border-top:1px solid rgba(216,165,240,.5);padding-top:22px;display:grid;gap:6px}.credentials p{margin:0;font-size:16px;letter-spacing:.06em}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer-brand{display:flex;align-items:center;gap:12px}.footer-logo{width:44px;height:44px;filter:brightness(0) invert(1);opacity:.9}.copyright{opacity:.72}.site-header.scrolled{background:rgba(0,0,0,.75);backdrop-filter:blur(10px)}
@keyframes heroFade{0%{opacity:0;transform:scale(1)}4%{opacity:1}25%{opacity:1;transform:scale(1.055)}29%{opacity:0;transform:scale(1.06)}100%{opacity:0}}
@media(max-width:1050px){.menu-toggle{display:block}.header-right{display:none;position:absolute;top:72px;left:0;right:0;background:rgba(0,0,0,.92);padding:20px 28px}.nav-open .header-right{display:block}.nav-open .nav,.nav-open .header-right .sns{display:grid;gap:14px;margin-left:0}.hero-bg,.slide-a,.slide-b,.slide-c,.slide-d{background-position:center center}.hero-shade{background:linear-gradient(to bottom,rgba(0,0,0,.48),rgba(0,0,0,.72))}.hero-inner{max-width:100%}.brand-logo{width:28px;height:28px}.profile-grid{grid-template-columns:1fr}.footer{display:block}.footer .sns{display:flex;margin-top:18px}.copyright{margin-top:18px}}

/* v11 hero relayout: keep faces away from title */
@media (min-width:1051px){
  .hero.hero-slider{
    position:relative;
    min-height:100svh;
    background:#050507;
    display:flex;
    align-items:center;
    padding:118px 7vw 92px;
    isolation:isolate;
  }
  .hero.hero-slider .hero-bg{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:30%;
    width:auto;
    height:auto;
    background-size:cover;
    background-repeat:no-repeat;
    opacity:0;
    animation:heroFade 36s infinite;
    transform:scale(1.015);
    z-index:0;
  }
  .hero.hero-slider .slide-a{
    background-position:58% center;
    animation-delay:0s;
  }
  .hero.hero-slider .slide-b{
    background-position:60% center;
    animation-delay:9s;
  }
  .hero.hero-slider .slide-c{
    background-position:58% center;
    animation-delay:18s;
  }
  .hero.hero-slider .slide-d{
    background-position:57% center;
    animation-delay:27s;
  }
  .hero.hero-slider .hero-shade{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      radial-gradient(circle at 74% 48%, rgba(0,0,0,0) 0%, rgba(0,0,0,.08) 34%, rgba(0,0,0,.48) 100%),
      linear-gradient(90deg,
        rgba(3,3,5,1) 0%,
        rgba(3,3,5,.99) 30%,
        rgba(3,3,5,.92) 42%,
        rgba(3,3,5,.62) 55%,
        rgba(3,3,5,.26) 68%,
        rgba(3,3,5,.08) 82%,
        rgba(3,3,5,.42) 100%),
      linear-gradient(to bottom, rgba(0,0,0,.50) 0%, rgba(0,0,0,.04) 40%, rgba(0,0,0,.58) 100%);
  }
  .hero.hero-slider .hero-inner{
    position:relative;
    z-index:2;
    width:min(720px,43vw);
    max-width:min(720px,43vw);
    margin-left:0;
    padding-top:18px;
  }
  .hero.hero-slider .eyebrow{
    font-size:13px;
    letter-spacing:.34em;
    color:rgba(216,165,240,.92);
  }
  .hero.hero-slider h1{
    font-size:clamp(58px,5.9vw,108px);
    line-height:1.12;
    letter-spacing:.04em;
    margin-bottom:30px;
  }
  .hero.hero-slider h1 span{
    display:block;
    white-space:nowrap;
  }
  .hero.hero-slider .lead{
    font-size:clamp(24px,2.25vw,38px);
    letter-spacing:.12em;
  }
  .hero.hero-slider .hero-actions{
    margin-top:38px;
  }
}

@keyframes heroFade{
  0%{opacity:0;transform:scale(1.015)}
  5%{opacity:1}
  26%{opacity:1;transform:scale(1.065)}
  31%{opacity:0;transform:scale(1.075)}
  100%{opacity:0;transform:scale(1.015)}
}

@media(max-width:1050px){
  .hero.hero-slider .hero-bg,
  .hero.hero-slider .slide-a,
  .hero.hero-slider .slide-b,
  .hero.hero-slider .slide-c,
  .hero.hero-slider .slide-d{
    left:0;
    background-position:center center;
  }
}

/* v12 fixed hero: photo first, text on a translucent black panel */
.hero.hero-fixed{
  position:relative;
  min-height:100svh;
  background:#050507;
  display:flex;
  align-items:center;
  padding:118px 7vw 92px;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.hero.hero-fixed .hero-bg{
  position:absolute;
  inset:0;
  background-image:url('assets/hero.jpg');
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center center;
  opacity:1;
  animation:none;
  transform:none;
  z-index:0;
}
.hero.hero-fixed .hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 66% 50%, rgba(0,0,0,0) 0%, rgba(0,0,0,.08) 42%, rgba(0,0,0,.36) 100%),
    linear-gradient(90deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.18) 34%, rgba(0,0,0,.04) 62%, rgba(0,0,0,.18) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.52) 0%, rgba(0,0,0,.02) 36%, rgba(0,0,0,.50) 100%);
}
.hero.hero-fixed .hero-panel{
  position:relative;
  z-index:2;
  width:min(650px,45vw);
  max-width:min(650px,45vw);
  margin-left:0;
  padding:34px 42px 38px;
  background:linear-gradient(135deg, rgba(0,0,0,.58), rgba(0,0,0,.34));
  border:1px solid rgba(216,165,240,.28);
  border-left:2px solid rgba(216,165,240,.72);
  box-shadow:0 28px 90px rgba(0,0,0,.40);
  backdrop-filter:blur(4px);
}
.hero.hero-fixed .eyebrow{
  color:rgba(216,165,240,.92);
  font-size:12px;
  letter-spacing:.32em;
  margin-bottom:22px;
}
.hero.hero-fixed h1{
  font-size:clamp(52px,5.15vw,92px);
  line-height:1.13;
  letter-spacing:.04em;
  margin:0 0 26px;
}
.hero.hero-fixed h1 span{
  display:block;
  white-space:nowrap;
}
.hero.hero-fixed .lead{
  font-size:clamp(22px,2.05vw,34px);
  letter-spacing:.12em;
  line-height:1.55;
  border-bottom:1px solid rgba(216,165,240,.86);
}
.hero.hero-fixed .hero-actions{
  margin-top:34px;
}
@media(max-width:1050px){
  .hero.hero-fixed{
    min-height:92svh;
    padding:104px 24px 64px;
    align-items:flex-end;
  }
  .hero.hero-fixed .hero-bg{
    background-position:center center;
  }
  .hero.hero-fixed .hero-shade{
    background:
      linear-gradient(to bottom, rgba(0,0,0,.22) 0%, rgba(0,0,0,.12) 36%, rgba(0,0,0,.76) 100%),
      linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,.08));
  }
  .hero.hero-fixed .hero-panel{
    width:100%;
    max-width:100%;
    padding:24px 24px 28px;
    background:linear-gradient(135deg, rgba(0,0,0,.66), rgba(0,0,0,.42));
  }
  .hero.hero-fixed h1{
    font-size:clamp(40px,11vw,64px);
  }
  .hero.hero-fixed h1 span{
    white-space:normal;
  }
  .hero.hero-fixed .lead{
    font-size:22px;
  }
}


/* v13 final polish: fixed gold-eboshi hero with translucent title panel */
.hero.hero-fixed{
  position:relative;
  min-height:100svh;
  background:none !important;
  padding:120px 7vw;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero.hero-fixed .hero-bg{
  position:absolute;
  inset:0;
  background-image:url('assets/hero.jpg') !important;
  background-size:cover;
  background-position:58% center;
  transform:scale(1.02);
  z-index:0;
}
.hero.hero-fixed .hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(0,0,0,.50) 0%,rgba(0,0,0,.24) 34%,rgba(0,0,0,.05) 58%,rgba(0,0,0,0) 78%),
    linear-gradient(to bottom,rgba(0,0,0,.36) 0%,rgba(0,0,0,.06) 42%,rgba(0,0,0,.40) 100%);
}
.hero.hero-fixed .hero-panel{
  position:relative;
  z-index:2;
  max-width:min(760px,48vw);
  padding:42px 46px 44px;
  border:1px solid rgba(255,255,255,.20);
  background:rgba(0,0,0,.34);
  backdrop-filter:blur(2px);
  box-shadow:0 22px 80px rgba(0,0,0,.22);
}
.hero.hero-fixed h1{
  font-size:clamp(56px,6.4vw,116px);
  line-height:1.08;
  margin-bottom:30px;
}
.hero.hero-fixed h1 span{white-space:nowrap;}
.hero.hero-fixed .lead{
  font-size:clamp(22px,2.25vw,36px);
}
@media(max-width:1050px){
  .hero.hero-fixed{padding:110px 28px;}
  .hero.hero-fixed .hero-bg{background-position:center center;}
  .hero.hero-fixed .hero-shade{background:linear-gradient(to bottom,rgba(0,0,0,.42),rgba(0,0,0,.64));}
  .hero.hero-fixed .hero-panel{max-width:100%;padding:32px 24px;background:rgba(0,0,0,.44);}
  .hero.hero-fixed h1{font-size:clamp(42px,12vw,72px);}
  .hero.hero-fixed h1 span{white-space:normal;}
}

/* v14 hero face-visible: keep the image powerful, but move the face clear of the title panel */
.hero.hero-fixed .hero-bg{
  background-image:url('assets/hero_composed.jpg') !important;
  background-size:cover !important;
  background-position:center center !important;
  transform:none !important;
}
.hero.hero-fixed .hero-shade{
  background:
    linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.32) 36%,rgba(0,0,0,.08) 60%,rgba(0,0,0,.05) 100%),
    linear-gradient(to bottom,rgba(0,0,0,.42) 0%,rgba(0,0,0,.04) 42%,rgba(0,0,0,.44) 100%) !important;
}
.hero.hero-fixed .hero-panel{
  max-width:min(760px,46vw);
  background:linear-gradient(135deg,rgba(0,0,0,.46),rgba(0,0,0,.28));
  border:1px solid rgba(255,255,255,.18);
  border-left:1px solid rgba(216,165,240,.62);
  backdrop-filter:blur(2px);
}
@media(max-width:1050px){
  .hero.hero-fixed .hero-bg{
    background-image:url('assets/hero.jpg') !important;
    background-position:center 30% !important;
  }
}

/* v15 hero refine: title fully inside translucent panel, sharp hero image */
.hero.hero-fixed{
  position:relative;
  min-height:100svh;
  padding:118px 7vw 76px;
  display:flex;
  align-items:center;
  color:#fff;
  background:#050505;
  overflow:hidden;
}
.hero.hero-fixed .hero-bg{
  position:absolute;
  inset:0;
  background-image:url('assets/hero.jpg') !important;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  transform:none;
  filter:none !important;
  opacity:1;
}
.hero.hero-fixed .hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.50) 0%,rgba(0,0,0,.26) 36%,rgba(0,0,0,.06) 58%,rgba(0,0,0,0) 76%),
    linear-gradient(to bottom,rgba(0,0,0,.28) 0%,rgba(0,0,0,.03) 48%,rgba(0,0,0,.32) 100%);
  z-index:1;
}
.hero.hero-fixed .hero-panel{
  position:relative;
  z-index:2;
  width:min(720px,42vw);
  max-width:720px;
  padding:54px 58px 50px;
  background:rgba(0,0,0,.54);
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.hero.hero-fixed .eyebrow{
  font-size:12px;
  letter-spacing:.34em;
  color:var(--fuji);
  margin-bottom:24px;
}
.hero.hero-fixed h1{
  font-size:clamp(56px,5.4vw,92px);
  line-height:1.12;
  letter-spacing:.035em;
  margin:0 0 30px;
}
.hero.hero-fixed h1 span{
  display:block;
  white-space:nowrap;
}
.hero.hero-fixed .lead{
  font-size:clamp(24px,2.15vw,35px);
  letter-spacing:.12em;
  line-height:1.55;
}
.hero.hero-fixed .hero-actions{
  margin-top:36px;
}
@media(max-width:1050px){
  .hero.hero-fixed{
    padding:110px 28px 62px;
  }
  .hero.hero-fixed .hero-bg{
    background-position:center center;
  }
  .hero.hero-fixed .hero-shade{
    background:linear-gradient(to bottom,rgba(0,0,0,.40),rgba(0,0,0,.58));
  }
  .hero.hero-fixed .hero-panel{
    width:100%;
    max-width:680px;
    padding:34px 26px;
    background:rgba(0,0,0,.56);
  }
  .hero.hero-fixed h1{
    font-size:clamp(42px,11vw,72px);
  }
  .hero.hero-fixed h1 span{
    white-space:normal;
  }
  .hero.hero-fixed .lead{
    font-size:clamp(22px,6vw,30px);
  }
}

/* v16 hero full-face: keep the gold-eboshi figure fully visible and avoid cropping the face */
.hero.hero-fixed{
  background:#050505;
}
.hero.hero-fixed .hero-bg{
  background-image:url('assets/hero_fullface.jpg') !important;
  background-size:cover !important;
  background-position:center center !important;
  filter:none !important;
  opacity:1 !important;
}
.hero.hero-fixed .hero-shade{
  background:
    linear-gradient(90deg,rgba(0,0,0,.44) 0%,rgba(0,0,0,.28) 31%,rgba(0,0,0,.08) 52%,rgba(0,0,0,0) 72%),
    linear-gradient(to bottom,rgba(0,0,0,.22) 0%,rgba(0,0,0,.02) 48%,rgba(0,0,0,.28) 100%) !important;
}
.hero.hero-fixed .hero-panel{
  width:min(760px,44vw);
  max-width:760px;
  padding:52px 58px 48px;
  background:rgba(0,0,0,.58);
}
.hero.hero-fixed h1{
  font-size:clamp(52px,5.05vw,86px);
  line-height:1.12;
}
@media(max-width:1050px){
  .hero.hero-fixed .hero-bg{
    background-image:url('assets/hero.jpg') !important;
    background-size:cover !important;
    background-position:center 28% !important;
  }
  .hero.hero-fixed .hero-panel{
    width:100%;
    max-width:680px;
    padding:34px 26px;
  }
  .hero.hero-fixed h1{
    font-size:clamp(42px,11vw,72px);
  }
}

/* v17: clean fixed hero. Single image only, full face visible, no duplicated/cropped face, no right-side blur. */
.hero.hero-fixed{
  position:relative;
  min-height:100svh;
  padding:120px 7vw;
  background:#090706 !important;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero.hero-fixed .hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:1 !important;
  transform:none !important;
  animation:none !important;
  background-image:url('assets/hero_clean.jpg') !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  filter:none !important;
}
.hero.hero-fixed .hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.56) 0%,
      rgba(0,0,0,.34) 26%,
      rgba(0,0,0,.08) 45%,
      rgba(0,0,0,0) 66%),
    linear-gradient(to bottom,
      rgba(0,0,0,.38) 0%,
      rgba(0,0,0,0) 32%,
      rgba(0,0,0,.20) 100%) !important;
}
.hero.hero-fixed .hero-panel{
  position:relative;
  z-index:2;
  width:min(650px,44vw);
  max-width:min(650px,44vw);
  margin-left:0;
  padding:54px 56px 48px;
  background:rgba(0,0,0,.60);
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.hero.hero-fixed .eyebrow{
  font-size:12px;
  letter-spacing:.32em;
  color:var(--fuji);
  margin-bottom:24px;
}
.hero.hero-fixed h1{
  font-size:clamp(52px,4.7vw,84px);
  line-height:1.18;
  letter-spacing:.045em;
  margin:0 0 28px;
}
.hero.hero-fixed h1 span{
  display:block;
  white-space:nowrap;
}
.hero.hero-fixed .lead{
  font-size:clamp(24px,2.2vw,34px);
  line-height:1.72;
  letter-spacing:.12em;
}
.hero.hero-fixed .hero-actions{
  margin-top:36px;
}
.news-list{
  display:grid;
  gap:22px;
}
.news-item{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:22px;
  padding:0 0 22px;
  border-bottom:1px solid var(--line);
}
.news-item:last-child{border-bottom:0;padding-bottom:0;}
.news-date{color:var(--fuji2);letter-spacing:.12em;font-size:16px;}
.news-title{font-size:20px;line-height:1.7;}
.news-desc{margin:.35em 0 0;color:var(--muted);font-size:15px;}
.news-flyer{margin-top:18px;max-width:220px;border:1px solid var(--line);background:#fff;padding:6px;}
.news-flyer img{width:100%;height:auto;}
@media(max-width:1050px){
  .hero.hero-fixed{padding:110px 28px;background:#090706 !important;}
  .hero.hero-fixed .hero-bg{
    background-image:url('assets/hero.jpg') !important;
    background-size:cover !important;
    background-position:58% center !important;
  }
  .hero.hero-fixed .hero-shade{background:linear-gradient(to bottom,rgba(0,0,0,.32),rgba(0,0,0,.66)) !important;}
  .hero.hero-fixed .hero-panel{width:100%;max-width:100%;padding:32px 24px;background:rgba(0,0,0,.58);}
  .hero.hero-fixed h1{font-size:clamp(40px,11.5vw,68px);}
  .hero.hero-fixed h1 span{white-space:normal;}
  .news-item{grid-template-columns:1fr;gap:4px;}
}


/* v18: final hero, SNS icons, performance archive */
.site-header{background:linear-gradient(to bottom,rgba(0,0,0,.74),rgba(0,0,0,0));}
.sns-icons{gap:12px;margin-left:20px}.sns-icon{width:28px;height:28px;border:1px solid rgba(255,255,255,.36);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#fff;opacity:.92;transition:.25s}.sns-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}.sns-icon svg path{fill:currentColor;stroke:none}.sns-icon:hover{color:var(--fuji);border-color:var(--fuji);background:rgba(216,165,240,.12)}
.hero.hero-fixed{position:relative;min-height:100svh;padding:120px 7vw;background:#070606 !important;display:flex;align-items:center;overflow:hidden;color:#fff}.hero.hero-fixed .hero-bg{position:absolute;inset:0;z-index:0;opacity:1!important;transform:none!important;animation:none!important;background-image:url('assets/hero.jpg')!important;background-size:cover!important;background-position:center 8%!important;background-repeat:no-repeat!important;filter:none!important}.hero.hero-fixed .hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.55) 28%,rgba(0,0,0,.20) 47%,rgba(0,0,0,.02) 66%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,.38) 0%,rgba(0,0,0,0) 34%,rgba(0,0,0,.22) 100%)!important}.hero.hero-fixed .hero-panel{position:relative;z-index:2;width:min(640px,42vw);max-width:640px;margin-left:0;padding:48px 54px 46px;background:rgba(0,0,0,.62);border:0;box-shadow:none;backdrop-filter:none}.hero.hero-fixed .eyebrow{font-size:12px;letter-spacing:.31em;color:var(--fuji);margin-bottom:22px}.hero.hero-fixed h1{font-size:clamp(46px,4.45vw,78px);line-height:1.16;letter-spacing:.045em;margin:0 0 26px}.hero.hero-fixed h1 span{display:block;white-space:nowrap}.hero.hero-fixed .lead{font-size:clamp(22px,2.05vw,32px);line-height:1.62;letter-spacing:.12em}.hero-subcopy{font-size:15px;line-height:2;color:rgba(255,255,255,.82);margin:18px 0 0;letter-spacing:.08em;max-width:520px}.hero.hero-fixed .hero-actions{margin-top:32px}.news-link a{color:var(--fuji2);letter-spacing:.08em}.page-lead{font-size:18px;color:rgba(255,255,255,.78);max-width:760px}.upcoming-card{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr minmax(260px,380px);gap:46px;align-items:center;border:1px solid var(--line);background:#fff;padding:38px}.upcoming-copy h3{font-size:clamp(34px,4vw,58px);font-weight:400;margin:.1em 0}.upcoming-copy p{font-size:18px}.upcoming-flyer{background:#fff;border:1px solid var(--line);padding:8px}.performance-archive{max-width:1080px;margin:0 auto}.performance-year{margin-bottom:62px}.performance-year h2{font-size:44px;color:var(--fuji2);border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}.performance-list{display:grid;gap:14px}.performance-card{display:grid;grid-template-columns:150px 1fr;gap:26px;background:#fff;border:1px solid var(--line);padding:22px 24px}.performance-date{color:var(--fuji2);letter-spacing:.13em;font-size:15px}.performance-main h3{font-size:24px;margin:0 0 4px;font-weight:400}.performance-main p{margin:0;color:var(--muted)}.performance-note{margin-top:6px!important;color:#403936!important;font-size:14px}.footer .sns-icons{margin-left:0}
@media(max-width:1050px){.sns-icons{display:flex!important;margin-left:0;margin-top:14px}.nav-open .header-right .sns-icons{display:flex}.hero.hero-fixed{min-height:92svh;padding:110px 28px 62px;align-items:flex-end}.hero.hero-fixed .hero-bg{background-size:cover!important;background-position:57% 16%!important}.hero.hero-fixed .hero-shade{background:linear-gradient(to bottom,rgba(0,0,0,.18),rgba(0,0,0,.72))!important}.hero.hero-fixed .hero-panel{width:100%;max-width:100%;padding:30px 24px;background:rgba(0,0,0,.62)}.hero.hero-fixed h1{font-size:clamp(40px,10.8vw,66px)}.hero.hero-fixed h1 span{white-space:normal}.hero-subcopy{font-size:14px}.upcoming-card{grid-template-columns:1fr;padding:24px}.performance-card{grid-template-columns:1fr;gap:4px}.performance-year h2{font-size:36px}}


/* v19: hero uses one sharp portrait image only. No duplicated/cropped face, no right blur. */
.hero.hero-fixed{
  min-height:100svh;
  padding:120px 7vw 78px;
  align-items:center;
  background:#070606 !important;
}
.hero.hero-fixed .hero-bg{
  background-image:url('assets/portrait.jpg') !important;
  background-size:cover !important;
  background-position:62% top !important;
  background-repeat:no-repeat !important;
  filter:none !important;
  transform:none !important;
  opacity:1 !important;
}
.hero.hero-fixed .hero-shade{
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.70) 0%,
      rgba(0,0,0,.58) 28%,
      rgba(0,0,0,.22) 46%,
      rgba(0,0,0,.04) 61%,
      rgba(0,0,0,0) 100%),
    linear-gradient(to bottom,
      rgba(0,0,0,.34) 0%,
      rgba(0,0,0,.02) 42%,
      rgba(0,0,0,.24) 100%) !important;
}
.hero.hero-fixed .hero-panel{
  width:min(640px,41vw);
  max-width:640px;
  padding:48px 54px 46px;
  background:rgba(0,0,0,.64);
}
.hero.hero-fixed h1{
  font-size:clamp(46px,4.35vw,76px);
  line-height:1.16;
}

/* v19: profile page no longer repeats the name in a separate black hero block. */
.profile-main{
  padding-top:150px;
}
.profile-main .profile-grid{
  align-items:center;
}
.profile-main h2{
  margin-bottom:14px;
}

/* v19: subtle news badge */
.news-title{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.news-badge{
  display:inline-flex;
  align-items:center;
  height:24px;
  padding:0 10px;
  border:1px solid var(--fuji2);
  color:var(--fuji2);
  font-size:11px;
  letter-spacing:.16em;
  line-height:1;
}

@media(max-width:1050px){
  .hero.hero-fixed{
    min-height:92svh;
    padding:110px 28px 62px;
    align-items:flex-end;
  }
  .hero.hero-fixed .hero-bg{
    background-image:url('assets/portrait.jpg') !important;
    background-position:58% top !important;
  }
  .hero.hero-fixed .hero-panel{
    width:100%;
    max-width:100%;
    padding:30px 24px;
    background:rgba(0,0,0,.66);
  }
  .profile-main{
    padding-top:110px;
  }
}


/* v20 final: original gold-eboshi photo, no duplicated/blurred background, face visible */
.hero.hero-fixed{
  position:relative;
  min-height:100svh;
  padding:120px 7vw;
  background:#050505 !important;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero.hero-fixed .hero-bg{
  background:none !important;
  opacity:1 !important;
  animation:none !important;
  transform:none !important;
  filter:none !important;
}
.hero.hero-fixed .hero-photo{
  position:absolute;
  z-index:0;
  top:0;
  right:5vw;
  height:112%;
  width:auto;
  max-width:none;
  object-fit:contain;
  object-position:top center;
  filter:none;
}
.hero.hero-fixed .hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.68) 0%,
      rgba(0,0,0,.50) 26%,
      rgba(0,0,0,.22) 44%,
      rgba(0,0,0,.04) 66%,
      rgba(0,0,0,0) 82%),
    linear-gradient(to bottom,
      rgba(0,0,0,.28) 0%,
      rgba(0,0,0,0) 42%,
      rgba(0,0,0,.18) 100%) !important;
}
.hero.hero-fixed .hero-panel{
  position:relative;
  z-index:2;
  width:min(650px,43vw);
  max-width:min(650px,43vw);
  margin-left:0;
  padding:50px 56px 46px;
  background:rgba(0,0,0,.64);
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.hero.hero-fixed .eyebrow{
  white-space:nowrap;
  font-size:12px;
  letter-spacing:.30em;
  color:var(--fuji);
  margin-bottom:22px;
}
.hero.hero-fixed h1{
  font-size:clamp(48px,4.45vw,80px);
  line-height:1.18;
  letter-spacing:.045em;
  margin:0 0 26px;
}
.hero.hero-fixed h1 span{display:block;white-space:nowrap;}
.hero.hero-fixed .lead{
  font-size:clamp(23px,2.05vw,32px);
  line-height:1.72;
  letter-spacing:.12em;
}
.hero.hero-fixed .hero-actions{margin-top:34px;}
.hero-subcopy{font-size:16px;line-height:1.9;max-width:560px;margin:22px 0 0;color:rgba(255,255,255,.86);}
.sns-icons{gap:10px;}
.sns-icon{width:34px;height:34px;border:1px solid rgba(255,255,255,.52);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;opacity:.9;transition:.25s ease;}
.sns-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.sns-icon:hover{color:var(--fuji);border-color:var(--fuji);background:rgba(216,165,240,.10);}
.news-badge{display:inline-block;vertical-align:middle;margin-right:.7em;padding:.1em .65em;border:1px solid var(--fuji2);border-radius:999px;color:var(--fuji2);font-size:.62em;letter-spacing:.18em;line-height:1.8;}
@media(max-width:1050px){
  .hero.hero-fixed{padding:112px 28px;background:#050505 !important;}
  .hero.hero-fixed .hero-photo{right:-12vw;height:100%;opacity:.72;}
  .hero.hero-fixed .hero-shade{background:linear-gradient(to bottom,rgba(0,0,0,.62),rgba(0,0,0,.74)) !important;}
  .hero.hero-fixed .hero-panel{width:100%;max-width:680px;padding:34px 26px;background:rgba(0,0,0,.62);}
  .hero.hero-fixed .eyebrow{white-space:normal;font-size:11px;letter-spacing:.24em;}
  .hero.hero-fixed h1{font-size:clamp(42px,11vw,72px);}
  .hero.hero-fixed h1 span{white-space:normal;}
  .hero-subcopy{font-size:14px;}
}

/* v21: lock the TOP to the requested composition. Use the same wide hero image only. */
.hero.hero-fixed{
  position:relative !important;
  min-height:100svh !important;
  padding:120px 7vw !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
  background:#050505 !important;
  color:#fff !important;
}
.hero.hero-fixed .hero-photo{
  display:none !important;
}
.hero.hero-fixed .hero-bg{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  display:block !important;
  background-image:url('assets/hero_clean.jpg') !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
  animation:none !important;
}
.hero.hero-fixed .hero-shade{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.38) 0%,
      rgba(0,0,0,.24) 28%,
      rgba(0,0,0,.08) 45%,
      rgba(0,0,0,0) 64%) !important;
}
.hero.hero-fixed .hero-panel{
  position:relative !important;
  z-index:2 !important;
  width:min(630px,42vw) !important;
  max-width:min(630px,42vw) !important;
  margin-left:0 !important;
  padding:48px 52px 44px !important;
  background:rgba(0,0,0,.66) !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}
.hero.hero-fixed .eyebrow{
  white-space:normal !important;
  font-size:11px !important;
  line-height:1.9 !important;
  letter-spacing:.30em !important;
  color:var(--fuji) !important;
  margin-bottom:22px !important;
}
.hero.hero-fixed h1{
  font-size:clamp(46px,4.15vw,76px) !important;
  line-height:1.18 !important;
  letter-spacing:.045em !important;
  margin:0 0 26px !important;
}
.hero.hero-fixed h1 span{
  display:block !important;
  white-space:nowrap !important;
}
.hero.hero-fixed .lead{
  font-size:clamp(22px,2vw,31px) !important;
  line-height:1.72 !important;
  letter-spacing:.12em !important;
}
.hero.hero-fixed .hero-subcopy{
  font-size:15px !important;
  line-height:1.95 !important;
  max-width:520px !important;
  margin:20px 0 0 !important;
  color:rgba(255,255,255,.84) !important;
}
.hero.hero-fixed .hero-actions{margin-top:32px !important;}
@media(max-width:1050px){
  .hero.hero-fixed{
    min-height:92svh !important;
    padding:110px 28px 62px !important;
    align-items:flex-end !important;
  }
  .hero.hero-fixed .hero-bg{
    background-image:url('assets/hero_clean.jpg') !important;
    background-size:cover !important;
    background-position:58% center !important;
  }
  .hero.hero-fixed .hero-shade{
    background:linear-gradient(to bottom,rgba(0,0,0,.18),rgba(0,0,0,.72)) !important;
  }
  .hero.hero-fixed .hero-panel{
    width:100% !important;
    max-width:680px !important;
    padding:32px 24px !important;
    background:rgba(0,0,0,.66) !important;
  }
  .hero.hero-fixed h1{font-size:clamp(40px,10.8vw,66px) !important;}
  .hero.hero-fixed h1 span{white-space:normal !important;}
  .hero.hero-fixed .hero-subcopy{font-size:14px !important;}
}


/* v22 exact top: match the supplied screenshot, do not swap/crop the hero photo */
.hero.hero-exact{
  position:relative;
  min-height:100svh;
  padding:0;
  display:block;
  color:#fff;
  overflow:hidden;
  background-image:url('assets/hero.jpg');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.hero.hero-exact::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.08) 48%,rgba(0,0,0,0) 78%);
  pointer-events:none;
}
.hero.hero-exact .hero-bg,.hero.hero-exact .fixed-hero-bg,.hero.hero-exact .hero-photo,.hero.hero-exact .hero-shade{display:none!important;}
.hero.hero-exact .hero-panel{
  position:absolute;
  left:clamp(24px,2.7vw,52px);
  top:clamp(110px,17vh,150px);
  width:min(39vw,390px);
  min-width:360px;
  max-width:420px;
  padding:clamp(32px,3.2vw,50px) clamp(28px,3.2vw,44px);
  background:rgba(0,0,0,.68);
  z-index:2;
  max-width:none;
}
.hero.hero-exact .eyebrow{
  margin:0 0 24px;
  color:#d8a5f0;
  font-size:clamp(10px,1.04vw,13px);
  line-height:1.65;
  letter-spacing:.28em;
}
.hero.hero-exact .eyebrow span{display:block;}
.hero.hero-exact h1{
  margin:0 0 22px;
  font-size:clamp(42px,4.2vw,64px);
  line-height:1.24;
  letter-spacing:.04em;
}
.hero.hero-exact h1 span{display:block;white-space:nowrap;}
.hero.hero-exact .lead{
  margin-top:0;
  font-size:clamp(22px,2.35vw,34px);
  line-height:1.55;
  letter-spacing:.12em;
  padding-bottom:14px;
  border-bottom:1px solid rgba(216,165,240,.75);
}
.hero.hero-exact .hero-actions{margin-top:36px;gap:14px;}
.hero.hero-exact .btn{font-size:13px;padding:11px 23px;}
.hero.hero-exact .scroll-mark{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  z-index:2;
  font-size:12px;
  letter-spacing:.18em;
  opacity:.9;
}
.hero.hero-exact .scroll-mark::before{
  content:"";
  display:block;
  width:1px;height:34px;background:rgba(255,255,255,.7);
  margin:0 auto 8px;
}
@media(max-width:1050px){
  .hero.hero-exact{background-position:center center;min-height:78svh;}
  .hero.hero-exact .hero-panel{left:24px;right:24px;top:auto;bottom:64px;width:auto;min-width:0;max-width:none;padding:30px 26px;}
  .hero.hero-exact h1{font-size:42px;}
  .hero.hero-exact .lead{font-size:24px;}
}
@media(max-width:520px){
  .hero.hero-exact{background-position:58% center;min-height:86svh;}
  .hero.hero-exact .hero-panel{left:18px;right:18px;bottom:44px;}
  .hero.hero-exact h1{font-size:34px;}
  .hero.hero-exact .eyebrow{font-size:10px;letter-spacing:.18em;}
  .hero.hero-exact .hero-actions{display:grid;}
}
/* v22 performance refinement: keep uploaded flyer image as-is */
.upcoming-card-refined{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr minmax(320px,430px);
  gap:72px;
  align-items:center;
}
.upcoming-card-refined .upcoming-copy{padding:40px 0;}
.upcoming-card-refined .accent-date{
  color:var(--fuji2);
  font-size:28px;
  letter-spacing:.14em;
  margin-bottom:22px;
}
.upcoming-card-refined h3{font-size:clamp(48px,6vw,88px);line-height:1.05;margin:0 0 22px;}
.upcoming-card-refined .venue-large{font-size:clamp(32px,4vw,56px);line-height:1.2;margin:0 0 28px;}
.event-facts{margin-top:32px;border-top:1px solid var(--line);}
.event-facts p{display:grid;grid-template-columns:7em 1fr;gap:18px;margin:0;padding:12px 0;border-bottom:1px solid var(--line);font-size:18px;}
.event-facts span{color:var(--fuji2);letter-spacing:.16em;}
.upcoming-card-refined .upcoming-flyer{background:#fff;border:1px solid var(--line);padding:10px;box-shadow:0 18px 44px rgba(0,0,0,.08);}
.upcoming-card-refined .upcoming-flyer img{width:100%;height:auto;display:block;}
@media(max-width:900px){.upcoming-card-refined{grid-template-columns:1fr;gap:36px}.upcoming-card-refined .upcoming-flyer{max-width:460px;margin:0 auto}.event-facts p{grid-template-columns:1fr;gap:2px}}


/* v23: definitive TOP. Use the original gold-eboshi photo as an actual image, not a fragile CSS background. */
.hero-v23{
  position:relative;
  min-height:100svh;
  height:100svh;
  overflow:hidden;
  color:#fff;
  background:#050505;
}
.hero-v23-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:66% center;
  z-index:0;
}
.hero-v23-veil{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.44) 0%, rgba(0,0,0,.05) 36%, rgba(0,0,0,.16) 100%),
    linear-gradient(90deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.24) 38%, rgba(0,0,0,0) 72%);
}
.hero-v23-panel{
  position:absolute;
  z-index:2;
  left:clamp(28px,3.1vw,58px);
  top:clamp(112px,17vh,154px);
  width:min(40vw,430px);
  min-width:390px;
  padding:clamp(34px,3.4vw,54px) clamp(30px,3.4vw,46px);
  background:rgba(0,0,0,.68);
}
.hero-v23 .eyebrow{
  margin:0 0 24px;
  color:#d8a5f0;
  font-size:clamp(10px,1.02vw,13px);
  line-height:1.65;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.hero-v23 .eyebrow span{display:block;}
.hero-v23 h1{
  margin:0 0 22px;
  font-size:clamp(42px,4.35vw,68px);
  line-height:1.22;
  font-weight:400;
  letter-spacing:.04em;
}
.hero-v23 h1 span{display:block;white-space:nowrap;}
.hero-v23 .lead{
  margin-top:0;
  font-size:clamp(22px,2.35vw,34px);
  line-height:1.55;
  letter-spacing:.12em;
  padding-bottom:14px;
  border-bottom:1px solid rgba(216,165,240,.75);
  display:inline-block;
}
.hero-v23 .hero-actions{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;}
.hero-v23 .btn{font-size:13px;padding:11px 23px;}
.hero-v23 .scroll-mark{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  z-index:2;
  font-size:12px;
  letter-spacing:.18em;
  opacity:.9;
}
.hero-v23 .scroll-mark::before{
  content:"";
  display:block;
  width:1px;
  height:34px;
  background:rgba(255,255,255,.7);
  margin:0 auto 8px;
}
@media(max-width:1050px){
  .hero-v23{min-height:86svh;height:86svh;}
  .hero-v23-image{object-position:62% center;}
  .hero-v23-veil{background:linear-gradient(to bottom,rgba(0,0,0,.42),rgba(0,0,0,.68));}
  .hero-v23-panel{left:24px;right:24px;top:auto;bottom:64px;width:auto;min-width:0;max-width:none;padding:30px 26px;}
  .hero-v23 h1{font-size:42px;}
  .hero-v23 h1 span{white-space:normal;}
  .hero-v23 .lead{font-size:24px;}
}
@media(max-width:520px){
  .hero-v23{min-height:88svh;height:88svh;}
  .hero-v23-image{object-position:58% center;}
  .hero-v23-panel{left:18px;right:18px;bottom:44px;}
  .hero-v23 h1{font-size:34px;}
  .hero-v23 .eyebrow{font-size:10px;letter-spacing:.18em;}
  .hero-v23 .hero-actions{display:grid;}
}


/* v24 exact-sample lock: do not change uploaded images. TOP follows the supplied sample layout. */
.hero-v23{
  position:relative;
  min-height:100svh;
  height:100svh;
  background:#050505;
  overflow:hidden;
  color:#fff;
}
.hero-v23-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
  filter:none !important;
  transform:none !important;
}
.hero-v23-veil{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.34) 0%, rgba(0,0,0,.02) 50%, rgba(0,0,0,.24) 100%),
    linear-gradient(90deg, rgba(0,0,0,.16) 0%, rgba(0,0,0,.05) 42%, rgba(0,0,0,0) 100%);
}
.hero-v23-panel{
  position:absolute;
  z-index:2;
  left:6.8vw;
  top:18vh;
  width:min(540px,42vw);
  padding:42px 38px 38px;
  background:rgba(0,0,0,.66);
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.hero-v23 .eyebrow{
  font-size:11px;
  line-height:1.7;
  letter-spacing:.28em;
  color:var(--fuji);
  margin-bottom:22px;
}
.hero-v23 .eyebrow span{display:block;white-space:nowrap;}
.hero-v23 h1{
  font-size:clamp(42px,3.45vw,64px);
  line-height:1.22;
  letter-spacing:.04em;
  font-weight:400;
  margin:0 0 24px;
}
.hero-v23 h1 span{display:block;white-space:nowrap;}
.hero-v23 .lead{
  display:inline-block;
  font-size:clamp(22px,2vw,30px);
  line-height:1.55;
  letter-spacing:.12em;
  border-bottom:1px solid rgba(216,165,240,.78);
  padding-bottom:8px;
}
.hero-v23 .hero-actions{
  margin-top:34px;
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.hero-v23 .btn{
  font-size:13px;
  padding:10px 23px;
}
.hero-v23 .scroll-mark{
  position:absolute;
  z-index:2;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  font-size:12px;
  letter-spacing:.18em;
  color:#fff;
}
.hero-v23 .scroll-mark::before{
  content:"";
  display:block;
  width:1px;
  height:42px;
  background:rgba(255,255,255,.55);
  margin:0 auto 8px;
}
@media(max-width:1050px){
  .hero-v23{height:92svh;min-height:92svh;}
  .hero-v23-image{object-position:center center;}
  .hero-v23-veil{background:linear-gradient(to bottom,rgba(0,0,0,.22),rgba(0,0,0,.70));}
  .hero-v23-panel{left:24px;right:24px;bottom:56px;top:auto;width:auto;padding:30px 24px;}
  .hero-v23 h1{font-size:clamp(38px,10vw,60px);}
  .hero-v23 h1 span{white-space:normal;}
}
@media(max-width:520px){
  .hero-v23-panel{left:18px;right:18px;bottom:44px;padding:26px 20px;}
  .hero-v23 .eyebrow{font-size:10px;letter-spacing:.18em;}
  .hero-v23 h1{font-size:34px;}
  .hero-v23 .lead{font-size:22px;}
  .hero-v23 .hero-actions{display:grid;}
}

/* v24 performance announcement: match the provided clean card style, using the uploaded flyer as-is. */
.performance-upcoming-section{background:#fff;}
.upcoming-card-refined{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr minmax(330px,420px);
  gap:72px;
  align-items:center;
  border:1px solid var(--line);
  background:#fff;
  padding:54px 56px;
}
.upcoming-copy .accent-date{
  color:var(--fuji2);
  letter-spacing:.18em;
  font-size:20px;
  margin-bottom:18px;
}
.upcoming-copy h3{
  font-size:clamp(56px,5.2vw,88px);
  line-height:1.08;
  font-weight:400;
  margin:0 0 12px;
}
.upcoming-copy .venue-large{
  font-size:clamp(32px,3.2vw,50px);
  line-height:1.35;
  margin:0 0 26px;
}
.upcoming-copy .event-intro{
  font-size:18px;
  line-height:2;
  margin:28px 0 34px;
  max-width:520px;
}
.event-facts{
  margin-top:32px;
  display:grid;
  gap:14px;
  border:0;
}
.event-facts p{
  margin:0;
  padding:0;
  border:0;
  display:grid;
  grid-template-columns:86px 1fr;
  gap:18px;
  align-items:start;
  font-size:18px;
  line-height:1.8;
}
.event-facts span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:2px 10px;
  background:var(--fuji2);
  color:#fff;
  letter-spacing:.18em;
  font-size:14px;
}
.upcoming-flyer{
  background:#fff;
  border:1px solid var(--line);
  padding:10px;
  box-shadow:none;
}
.upcoming-flyer img{
  width:100%;
  height:auto;
  display:block;
}
.upcoming-copy .btn{
  margin-top:28px;
  min-width:310px;
  text-align:center;
  color:var(--fuji2);
  border-color:var(--fuji2);
  font-size:18px;
  padding:18px 26px;
}
@media(max-width:900px){
  .upcoming-card-refined{grid-template-columns:1fr;gap:36px;padding:30px 24px;}
  .upcoming-card-refined .upcoming-flyer{max-width:440px;margin:0 auto;}
  .event-facts p{grid-template-columns:1fr;gap:6px;}
  .upcoming-copy .btn{min-width:0;width:100%;}
}

/* v25 lock: follow the supplied TOP sample exactly. Do not swap hero image or crop into face. */
.hero-v23{
  position:relative;
  height:100svh;
  min-height:100svh;
  background:#050505;
  overflow:hidden;
  color:#fff;
}
.hero-v23-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
  filter:none !important;
  transform:none !important;
}
.hero-v23-veil{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(to bottom,rgba(0,0,0,.30),rgba(0,0,0,.04) 45%,rgba(0,0,0,.18));
}
.hero-v23-panel{
  position:absolute;
  z-index:2;
  left:clamp(26px,2.7vw,52px);
  top:17.4vh;
  width:min(39.5vw,408px);
  min-width:378px;
  padding:clamp(32px,3.1vw,48px) clamp(30px,3vw,40px) clamp(30px,3vw,42px);
  background:rgba(0,0,0,.70);
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.hero-v23 .eyebrow{
  margin:0 0 22px;
  color:var(--fuji);
  font-size:clamp(10px,.88vw,12px);
  line-height:1.65;
  letter-spacing:.26em;
  text-transform:uppercase;
}
.hero-v23 .eyebrow span{display:block;white-space:nowrap;}
.hero-v23 h1{
  margin:0 0 22px;
  font-size:clamp(40px,3.38vw,58px);
  line-height:1.22;
  font-weight:400;
  letter-spacing:.035em;
}
.hero-v23 h1 span{display:block;white-space:nowrap;}
.hero-v23 .lead{
  display:inline-block;
  font-size:clamp(22px,2vw,30px);
  line-height:1.6;
  letter-spacing:.12em;
  border-bottom:1px solid rgba(216,165,240,.78);
  padding-bottom:10px;
}
.hero-v23 .hero-actions{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;}
.hero-v23 .btn{font-size:13px;padding:10px 23px;}
.hero-v23 .scroll-mark{position:absolute;z-index:2;left:50%;bottom:28px;transform:translateX(-50%);font-size:12px;letter-spacing:.18em;color:#fff;}
.hero-v23 .scroll-mark::before{content:"";display:block;width:1px;height:42px;background:rgba(255,255,255,.55);margin:0 auto 8px;}

/* v25 performance: keep purple role labels on one line */
.event-facts p{
  grid-template-columns:112px 1fr !important;
  align-items:center !important;
  column-gap:22px !important;
}
.event-facts span{
  min-width:108px !important;
  white-space:nowrap !important;
  letter-spacing:.12em !important;
  padding:4px 12px !important;
}

@media(max-width:1050px){
  .hero-v23{height:92svh;min-height:92svh;}
  .hero-v23-image{object-position:center center;}
  .hero-v23-veil{background:linear-gradient(to bottom,rgba(0,0,0,.22),rgba(0,0,0,.70));}
  .hero-v23-panel{left:24px;right:24px;bottom:56px;top:auto;width:auto;min-width:0;padding:30px 24px;}
  .hero-v23 h1{font-size:clamp(38px,10vw,60px);}
  .hero-v23 h1 span{white-space:normal;}
  .event-facts p{grid-template-columns:1fr !important;gap:6px !important;}
  .event-facts span{width:max-content;}
}
@media(max-width:520px){
  .hero-v23-panel{left:18px;right:18px;bottom:44px;padding:26px 20px;}
  .hero-v23 .eyebrow{font-size:10px;letter-spacing:.18em;}
  .hero-v23 h1{font-size:34px;}
  .hero-v23 .lead{font-size:22px;}
  .hero-v23 .hero-actions{display:grid;}
}

/* v27: TOPを見本どおり「写真全面＋黒パネル重ね」に固定。左右ぼかし・分割・複製は一切しない */
@media (min-width: 901px){
  .site-header{
    background:linear-gradient(to bottom, rgba(0,0,0,.72), rgba(0,0,0,.26) 66%, rgba(0,0,0,0));
    backdrop-filter:none;
  }
  .hero-v23{
    position:relative;
    height:100svh;
    min-height:690px;
    width:100%;
    overflow:hidden;
    background:#050505 url('assets/hero_bg_exact.png') center center / cover no-repeat;
    color:#fff;
  }
  .hero-v23-image,
  .hero-v23-veil{display:none!important;}
  .hero-v23-panel{
    position:absolute;
    z-index:2;
    left:clamp(28px, 2.3vw, 44px);
    top:clamp(150px, 18vh, 185px);
    width:min(614px, 40vw);
    min-width:520px;
    padding:54px 55px 49px;
    background:rgba(0,0,0,.76);
    border:0;
    box-shadow:none;
    backdrop-filter:none;
  }
  .hero-v23 .eyebrow{
    display:block;
    margin:0 0 28px;
    color:var(--fuji);
    font-size:13px;
    line-height:1;
    letter-spacing:.31em;
    white-space:nowrap;
  }
  .hero-v23 .eyebrow span{display:inline!important;white-space:nowrap;}
  .hero-v23 .eyebrow span + span::before{content:' ';}
  .hero-v23 h1{
    margin:0 0 30px;
    font-weight:400;
    font-size:clamp(54px, 5.05vw, 82px);
    line-height:1.15;
    letter-spacing:.035em;
  }
  .hero-v23 h1 span{display:block;white-space:nowrap;}
  .hero-v23 .lead{
    display:inline-block;
    margin:0;
    padding:0 0 13px;
    border-bottom:1px solid rgba(216,165,240,.85);
    font-size:clamp(25px, 2.05vw, 34px);
    line-height:1.55;
    letter-spacing:.11em;
  }
  .hero-v23 .hero-actions{margin-top:36px;display:flex;gap:20px;flex-wrap:nowrap;}
  .hero-v23 .btn{min-width:185px;text-align:center;font-size:14px;padding:11px 22px;}
  .hero-v23 .scroll-mark{
    position:absolute;
    z-index:2;
    left:50%;
    bottom:28px;
    transform:translateX(-50%);
    font-size:12px;
    letter-spacing:.24em;
    color:#fff;
  }
  .hero-v23 .scroll-mark::before{content:"";display:block;width:1px;height:46px;background:rgba(255,255,255,.56);margin:0 auto 9px;}
}

/* v27: 公演情報の紫ラベルは絶対に一行 */
.event-facts p{display:grid;grid-template-columns:128px 1fr;align-items:start;gap:22px;margin:14px 0;}
.event-facts span{display:inline-flex;align-items:center;justify-content:center;min-width:108px;width:108px;white-space:nowrap;word-break:keep-all;line-break:strict;background:var(--fuji2);color:#fff;padding:7px 12px;letter-spacing:.08em;}

@media(max-width:900px){
  .hero-v23{height:92svh;min-height:650px;background:#050505 url('assets/hero_bg_exact.png') center center / cover no-repeat;}
  .hero-v23-image,.hero-v23-veil{display:none!important;}
  .hero-v23-panel{left:22px;right:22px;bottom:54px;top:auto;width:auto;min-width:0;padding:30px 24px;background:rgba(0,0,0,.76);}
  .hero-v23 .eyebrow{font-size:10px;letter-spacing:.18em;}
  .hero-v23 .eyebrow span{display:block!important;}
  .hero-v23 h1{font-size:clamp(36px,10vw,58px);}
  .hero-v23 h1 span{white-space:normal;}
  .hero-v23 .lead{font-size:22px;}
  .hero-v23 .hero-actions{display:grid;gap:12px;}
  .hero-v23 .btn{min-width:0;width:100%;}
  .event-facts p{grid-template-columns:112px 1fr;gap:16px;}
  .event-facts span{width:104px;min-width:104px;}
}

/* v28: 左パネル内の文字二重表示を解消。
   背景画像に焼き込まれている旧テキストを、パネルで完全に隠してから現在の文字だけを表示する。 */
@media (min-width: 901px){
  .hero-v23-panel{
    background:rgba(0,0,0,.94) !important;
  }
  .hero-v23-panel .eyebrow,
  .hero-v23-panel h1,
  .hero-v23-panel .lead,
  .hero-v23-panel .hero-actions{
    position:relative;
    z-index:3;
  }
}

/* v29 final correction: full-width hero image + one translucent black panel. No split layout, no blur, no duplicate text. */
.hero-v23{position:relative!important;height:100svh!important;min-height:760px!important;overflow:hidden!important;color:#fff!important;background:#050505!important;}
.hero-v23-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;z-index:0!important;opacity:1!important;filter:none!important;transform:none!important;}
.hero-v23-veil{position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none!important;background:linear-gradient(to bottom,rgba(0,0,0,.28) 0%,rgba(0,0,0,.02) 36%,rgba(0,0,0,.24) 100%)!important;filter:none!important;backdrop-filter:none!important;}
.hero-v23-panel{position:absolute!important;z-index:4!important;left:42px!important;top:19.5vh!important;width:640px!important;max-width:calc(100vw - 84px)!important;min-width:0!important;padding:54px 58px 54px!important;background:rgba(0,0,0,.78)!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;color:#fff!important;}
.hero-v23 .eyebrow{margin:0 0 34px!important;color:#d8a5f0!important;font-size:14px!important;line-height:1.8!important;letter-spacing:.30em!important;text-transform:uppercase!important;}
.hero-v23 .eyebrow span{display:block!important;white-space:nowrap!important;}
.hero-v23 h1{margin:0 0 34px!important;font-size:clamp(52px,4.9vw,82px)!important;line-height:1.17!important;letter-spacing:.045em!important;font-weight:400!important;color:#fff!important;text-shadow:none!important;}
.hero-v23 h1 span{display:block!important;white-space:nowrap!important;}
.hero-v23 .lead{display:inline-block!important;margin:0!important;padding-bottom:18px!important;border-bottom:1px solid rgba(216,165,240,.75)!important;font-size:clamp(28px,2.15vw,38px)!important;line-height:1.55!important;letter-spacing:.12em!important;color:#fff!important;}
.hero-v23 .hero-actions{margin-top:34px!important;display:flex!important;gap:18px!important;flex-wrap:wrap!important;}
.hero-v23 .btn{min-width:184px!important;text-align:center!important;padding:12px 22px!important;font-size:14px!important;letter-spacing:.08em!important;background:rgba(0,0,0,.08)!important;border:1px solid rgba(255,255,255,.78)!important;color:#fff!important;}
.hero-v23 .btn.primary{border-color:#d8a5f0!important;background:rgba(216,165,240,.11)!important;}
.hero-v23 .scroll-mark{position:absolute!important;z-index:5!important;left:50%!important;bottom:28px!important;transform:translateX(-50%)!important;color:#fff!important;font-size:12px!important;letter-spacing:.22em!important;}
.hero-v23 .scroll-mark::before{content:""!important;display:block!important;width:1px!important;height:42px!important;background:rgba(255,255,255,.55)!important;margin:0 auto 8px!important;}
.site-header{background:linear-gradient(to bottom,rgba(0,0,0,.70),rgba(0,0,0,.25) 72%,rgba(0,0,0,0))!important;}
@media(max-width:1050px){.hero-v23{height:92svh!important;min-height:680px!important;}.hero-v23-image{object-position:62% center!important;}.hero-v23-panel{left:24px!important;right:24px!important;bottom:64px!important;top:auto!important;width:auto!important;max-width:none!important;padding:32px 26px!important;background:rgba(0,0,0,.80)!important;}.hero-v23 h1{font-size:clamp(38px,10vw,58px)!important;}.hero-v23 h1 span{white-space:normal!important;}.hero-v23 .eyebrow{font-size:10px!important;letter-spacing:.18em!important;}.hero-v23 .lead{font-size:23px!important;}.hero-v23 .hero-actions{display:grid!important;gap:12px!important;}.hero-v23 .btn{width:100%!important;}}
.performance-role-row,.role-row{display:grid!important;grid-template-columns:128px 1fr!important;gap:20px!important;align-items:start!important;margin:16px 0!important;}.performance-role-label,.role-label{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:118px!important;width:118px!important;padding:9px 12px!important;background:#8d5aae!important;color:#fff!important;white-space:nowrap!important;word-break:keep-all!important;line-height:1.2!important;letter-spacing:.08em!important;}.performance-role-text,.role-text{font-size:20px!important;line-height:1.9!important;}

/* v30: final visible correction. Background has no baked title; HTML creates the only panel/text. */
.hero-v23-image{content:url('assets/hero.jpg') !important; object-fit:cover !important; object-position:center center !important; filter:none !important; opacity:1 !important; transform:none !important;}
.hero-v23-panel{background:rgba(0,0,0,.58) !important; left:40px !important; top:18.7vh !important; width:620px !important; padding:48px 54px 46px !important;}
.hero-v23 .eyebrow{font-size:13px !important; letter-spacing:.30em !important; line-height:1.7 !important; margin-bottom:30px !important;}
.hero-v23 h1{font-size:clamp(52px,4.7vw,78px) !important; line-height:1.18 !important; margin-bottom:34px !important;}
.hero-v23 .lead{font-size:clamp(28px,2.05vw,36px) !important; line-height:1.58 !important; padding-bottom:16px !important;}
.hero-v23 .hero-actions{margin-top:32px !important; gap:16px !important;}
.site-header{background:rgba(0,0,0,.58) !important;}

/* v31: corrected hero using the original photo only, no baked screenshot/no blur/no split. */
:root{
  --black:#241d26;
  --paper2:#f4f0eb;
}
body{background:#f7f3ee;}
.page-hero,.section.black{background:#241d26!important;}
.site-header{background:rgba(18,14,20,.66)!important;}
.hero-v23{
  position:relative!important;
  height:100svh!important;
  min-height:720px!important;
  overflow:hidden!important;
  background:#241d26!important;
  color:#fff!important;
}
.hero-v23-image{
  content:normal!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  z-index:0!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
}
.hero-v23-veil{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:linear-gradient(to bottom,rgba(0,0,0,.20) 0%,rgba(0,0,0,.02) 44%,rgba(0,0,0,.24) 100%)!important;
  pointer-events:none!important;
  filter:none!important;
  backdrop-filter:none!important;
}
.hero-v23-panel{
  position:absolute!important;
  z-index:3!important;
  left:clamp(28px,2.7vw,52px)!important;
  top:17.5vh!important;
  width:min(39.5vw,408px)!important;
  min-width:378px!important;
  max-width:calc(100vw - 56px)!important;
  padding:clamp(32px,3.1vw,48px) clamp(30px,3vw,40px) clamp(30px,3vw,42px)!important;
  background:rgba(0,0,0,.62)!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.hero-v23 .eyebrow{
  margin:0 0 22px!important;
  color:#d8a5f0!important;
  font-size:clamp(10px,.88vw,12px)!important;
  line-height:1.65!important;
  letter-spacing:.26em!important;
}
.hero-v23 .eyebrow span{display:block!important;white-space:nowrap!important;}
.hero-v23 h1{
  margin:0 0 22px!important;
  font-size:clamp(40px,3.38vw,58px)!important;
  line-height:1.22!important;
  font-weight:400!important;
  letter-spacing:.035em!important;
  color:#fff!important;
  text-shadow:none!important;
}
.hero-v23 h1 span{display:block!important;white-space:nowrap!important;}
.hero-v23 .lead{
  display:inline-block!important;
  margin:0!important;
  font-size:clamp(22px,2vw,30px)!important;
  line-height:1.6!important;
  letter-spacing:.12em!important;
  border-bottom:1px solid rgba(216,165,240,.78)!important;
  padding-bottom:10px!important;
  color:#fff!important;
}
.hero-v23 .hero-actions{margin-top:34px!important;display:flex!important;gap:14px!important;flex-wrap:wrap!important;}
.hero-v23 .btn{font-size:13px!important;padding:10px 23px!important;min-width:0!important;text-align:center!important;background:rgba(0,0,0,.08)!important;border:1px solid rgba(255,255,255,.72)!important;color:#fff!important;}
.hero-v23 .btn.primary{border-color:#d8a5f0!important;background:rgba(216,165,240,.12)!important;}
.hero-v23 .scroll-mark{position:absolute!important;z-index:3!important;left:50%!important;bottom:28px!important;transform:translateX(-50%)!important;font-size:12px!important;letter-spacing:.18em!important;color:#fff!important;}
.hero-v23 .scroll-mark::before{content:""!important;display:block!important;width:1px!important;height:42px!important;background:rgba(255,255,255,.55)!important;margin:0 auto 8px!important;}
@media(max-width:1050px){
  .hero-v23{height:92svh!important;min-height:650px!important;}
  .hero-v23-image{object-position:center center!important;}
  .hero-v23-veil{background:linear-gradient(to bottom,rgba(0,0,0,.22),rgba(0,0,0,.70))!important;}
  .hero-v23-panel{left:24px!important;right:24px!important;bottom:56px!important;top:auto!important;width:auto!important;min-width:0!important;padding:30px 24px!important;background:rgba(0,0,0,.66)!important;}
  .hero-v23 h1{font-size:clamp(38px,10vw,60px)!important;}
  .hero-v23 h1 span{white-space:normal!important;}
  .hero-v23 .eyebrow{font-size:10px!important;letter-spacing:.18em!important;}
  .hero-v23 .lead{font-size:22px!important;}
  .hero-v23 .hero-actions{display:grid!important;gap:12px!important;}
  .hero-v23 .btn{width:100%!important;}
}

/* v32 FINAL: ONLY fix index hero display. Do not use design screenshot as an image. */
:root{
  --black:#241d26;
}
body{background:#faf8f4;}
.section.black,.page-hero,.footer{background:#241d26;}
.site-header{background:linear-gradient(to bottom,rgba(20,16,22,.82),rgba(20,16,22,.22));}

.hero-v23{
  position:relative!important;
  height:100svh!important;
  min-height:760px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:#241d26!important;
}
.hero-v23-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:right center!important;
  z-index:0!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  background:#241d26!important;
}
.hero-v23-veil{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(to bottom,rgba(36,29,38,.10),rgba(36,29,38,.04) 55%,rgba(36,29,38,.14))!important;
  filter:none!important;
  backdrop-filter:none!important;
}
.hero-v23-panel{
  position:absolute!important;
  z-index:4!important;
  left:56px!important;
  top:18vh!important;
  width:660px!important;
  max-width:calc(100vw - 112px)!important;
  min-width:0!important;
  padding:56px 64px 56px!important;
  background:rgba(0,0,0,.58)!important;
  border:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  color:#fff!important;
}
.hero-v23 .eyebrow{
  margin:0 0 30px!important;
  color:#d8a5f0!important;
  font-size:13px!important;
  line-height:1.75!important;
  letter-spacing:.28em!important;
  text-transform:uppercase!important;
}
.hero-v23 .eyebrow span{display:block!important;white-space:nowrap!important;}
.hero-v23 h1{
  margin:0 0 30px!important;
  font-size:clamp(54px,4.7vw,78px)!important;
  line-height:1.18!important;
  letter-spacing:.035em!important;
  font-weight:400!important;
  color:#fff!important;
  text-shadow:none!important;
}
.hero-v23 h1 span{display:block!important;white-space:nowrap!important;}
.hero-v23 .lead{
  margin:0!important;
  padding:0 0 14px!important;
  display:inline-block!important;
  font-size:clamp(28px,2.05vw,38px)!important;
  line-height:1.65!important;
  letter-spacing:.10em!important;
  border-bottom:1px solid rgba(216,165,240,.85)!important;
  color:#fff!important;
  text-shadow:none!important;
}
.hero-v23 .hero-actions{margin-top:36px!important;display:flex!important;gap:18px!important;flex-wrap:nowrap!important;}
.hero-v23 .btn{min-width:185px!important;text-align:center!important;font-size:14px!important;padding:12px 22px!important;}
.hero-v23 .scroll-mark{position:absolute!important;z-index:4!important;left:50%!important;bottom:28px!important;transform:translateX(-50%)!important;font-size:12px!important;letter-spacing:.18em!important;color:#fff!important;}
.hero-v23 .scroll-mark::before{content:"";display:block;width:1px;height:44px;background:rgba(255,255,255,.58);margin:0 auto 8px;}

/* keep profile block using the front-facing gold eboshi portrait */
#kiyotsugu img{object-fit:cover;object-position:center center;}

@media(max-width:1050px){
  .hero-v23{height:auto!important;min-height:920px!important;background:#241d26!important;}
  .hero-v23-image{object-fit:contain!important;object-position:center top!important;height:56vh!important;min-height:430px!important;bottom:auto!important;background:#241d26!important;}
  .hero-v23-veil{background:linear-gradient(to bottom,rgba(36,29,38,.08),rgba(36,29,38,.60) 52%,rgba(36,29,38,.96))!important;}
  .hero-v23-panel{left:24px!important;right:24px!important;top:52vh!important;bottom:auto!important;width:auto!important;max-width:none!important;padding:32px 28px!important;background:rgba(0,0,0,.62)!important;}
  .hero-v23 h1{font-size:clamp(38px,9vw,60px)!important;}
  .hero-v23 h1 span{white-space:normal!important;}
  .hero-v23 .eyebrow{font-size:10px!important;letter-spacing:.18em!important;}
  .hero-v23 .lead{font-size:24px!important;}
  .hero-v23 .hero-actions{display:grid!important;gap:12px!important;}
  .hero-v23 .btn{width:100%!important;min-width:0!important;}
}

/* v33 FINAL: index hero background must fill the screen. No black margins. Title box only. */
.hero-v23{
  position:relative!important;
  height:100svh!important;
  min-height:720px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:transparent!important;
}
.hero-v23-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
  object-position:center top!important;
  z-index:0!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  background:transparent!important;
}
.hero-v23-veil{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(to bottom,rgba(0,0,0,.12),rgba(0,0,0,.02) 45%,rgba(0,0,0,.18))!important;
  filter:none!important;
  backdrop-filter:none!important;
}
.hero-v23-panel{
  position:absolute!important;
  z-index:4!important;
  left:clamp(24px,4.4vw,72px)!important;
  top:clamp(118px,16vh,160px)!important;
  width:min(38vw,560px)!important;
  max-width:calc(100vw - 48px)!important;
  min-width:0!important;
  padding:28px 34px!important;
  background:rgba(0,0,0,.62)!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  color:#fff!important;
}
.hero-v23 .eyebrow,
.hero-v23 .lead,
.hero-v23 .hero-actions{
  display:none!important;
}
.hero-v23 h1{
  margin:0!important;
  font-size:clamp(42px,4vw,72px)!important;
  line-height:1.22!important;
  letter-spacing:.035em!important;
  font-weight:400!important;
  color:#fff!important;
  text-shadow:none!important;
}
.hero-v23 h1 span{
  display:block!important;
  white-space:nowrap!important;
}
.hero-v23 .scroll-mark{
  position:absolute!important;
  z-index:4!important;
  left:50%!important;
  bottom:28px!important;
  transform:translateX(-50%)!important;
  font-size:12px!important;
  letter-spacing:.18em!important;
  color:#fff!important;
}
.hero-v23 .scroll-mark::before{
  content:""!important;
  display:block!important;
  width:1px!important;
  height:44px!important;
  background:rgba(255,255,255,.58)!important;
  margin:0 auto 8px!important;
}
@media(max-width:1050px){
  .hero-v23{
    height:100svh!important;
    min-height:640px!important;
    background:transparent!important;
  }
  .hero-v23-image{
    height:100%!important;
    min-height:0!important;
    object-fit:cover!important;
    object-position:center top!important;
    background:transparent!important;
  }
  .hero-v23-veil{
    background:linear-gradient(to bottom,rgba(0,0,0,.08),rgba(0,0,0,.03) 48%,rgba(0,0,0,.22))!important;
  }
  .hero-v23-panel{
    left:22px!important;
    right:22px!important;
    top:auto!important;
    bottom:70px!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    padding:24px 26px!important;
    background:rgba(0,0,0,.64)!important;
  }
  .hero-v23 h1{
    font-size:clamp(36px,9.4vw,56px)!important;
    line-height:1.24!important;
  }
  .hero-v23 h1 span{white-space:normal!important;}
}
@media(max-width:520px){
  .hero-v23{min-height:620px!important;}
  .hero-v23-panel{bottom:72px!important;padding:22px 22px!important;}
  .hero-v23 h1{font-size:clamp(34px,10vw,46px)!important;}
}

/* v34 FINAL: wide hero image, title panel on the right, no black margins. */
.hero-v23{
  position:relative!important;
  height:100svh!important;
  min-height:720px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:#050505!important;
}
.hero-v23-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
  object-position:center center!important;
  z-index:0!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
}
.hero-v23-veil{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    linear-gradient(to bottom,rgba(0,0,0,.26),rgba(0,0,0,.02) 46%,rgba(0,0,0,.24)),
    linear-gradient(270deg,rgba(0,0,0,.54) 0%,rgba(0,0,0,.36) 24%,rgba(0,0,0,.10) 48%,rgba(0,0,0,0) 70%)!important;
}
.hero-v23-panel{
  position:absolute!important;
  z-index:4!important;
  left:auto!important;
  right:clamp(32px,6vw,112px)!important;
  top:clamp(124px,20vh,188px)!important;
  bottom:auto!important;
  width:min(500px,34vw)!important;
  min-width:380px!important;
  max-width:500px!important;
  padding:30px 34px!important;
  background:rgba(0,0,0,.66)!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  color:#fff!important;
}
.hero-v23 .eyebrow,
.hero-v23 .lead,
.hero-v23 .hero-actions{
  display:none!important;
}
.hero-v23 h1{
  margin:0!important;
  font-size:clamp(40px,3.25vw,60px)!important;
  line-height:1.24!important;
  letter-spacing:.035em!important;
  font-weight:400!important;
  color:#fff!important;
  text-shadow:none!important;
}
.hero-v23 h1 span{
  display:block!important;
  white-space:nowrap!important;
}
@media(max-width:1050px){
  .hero-v23{
    height:100svh!important;
    min-height:640px!important;
  }
  .hero-v23-image{
    object-position:38% center!important;
  }
  .hero-v23-veil{
    background:linear-gradient(to bottom,rgba(0,0,0,.12),rgba(0,0,0,.04) 48%,rgba(0,0,0,.72))!important;
  }
  .hero-v23-panel{
    left:22px!important;
    right:22px!important;
    top:auto!important;
    bottom:70px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:24px 26px!important;
  }
  .hero-v23 h1{
    font-size:clamp(36px,9.4vw,56px)!important;
    line-height:1.24!important;
  }
  .hero-v23 h1 span{
    white-space:normal!important;
  }
}
@media(max-width:520px){
  .hero-v23{
    min-height:620px!important;
  }
  .hero-v23-image{
    object-position:34% center!important;
  }
  .hero-v23-panel{
    left:18px!important;
    right:18px!important;
    bottom:72px!important;
    padding:22px 22px!important;
  }
  .hero-v23 h1{
    font-size:clamp(34px,10vw,46px)!important;
  }
}

/* v36 FINAL: top buttons turn purple on hover. */
.hero-v23 .btn{
  transition:background-color .25s ease,color .25s ease,border-color .25s ease!important;
}
.hero-v23 .btn:hover,
.hero-v23 .btn:focus-visible{
  background:#d8a5f0!important;
  border-color:#d8a5f0!important;
  color:#111!important;
}

/* v37 FINAL: buttons are purple only on hover; hero photo is slightly closer. */
.hero-v23-image{
  transform:scale(1.10)!important;
  transform-origin:36% 44%!important;
}
.hero-v23 .btn,
.hero-v23 .btn.primary{
  background:rgba(0,0,0,.08)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  color:#fff!important;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease!important;
}
.hero-v23 .btn:hover,
.hero-v23 .btn:focus-visible,
.hero-v23 .btn.primary:hover,
.hero-v23 .btn.primary:focus-visible{
  background:#d8a5f0!important;
  border-color:#d8a5f0!important;
  color:#111!important;
}
@media(max-width:1050px){
  .hero-v23-image{
    transform:scale(1.06)!important;
    transform-origin:36% 44%!important;
  }
}

/* v38 FINAL: closer hero crop while keeping the fan visible. */
.hero-v23-image{
  transform:scale(1.55)!important;
  transform-origin:36% 34%!important;
}
@media(max-width:1050px){
  .hero-v23-image{
    transform:scale(1.12)!important;
    transform-origin:34% 36%!important;
  }
}

/* v36: hero buttons turn purple on hover. */
.hero-v23 .btn{
  transition:background-color .25s ease,color .25s ease,border-color .25s ease!important;
}
.hero-v23 .btn:hover,
.hero-v23 .btn:focus-visible{
  background:#d8a5f0!important;
  border-color:#d8a5f0!important;
  color:#111!important;
}

/* v35 FINAL: keep right-side placement, restore the original title typography. */
.hero-v23{
  position:relative!important;
  height:100svh!important;
  min-height:720px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:#050505!important;
}
.hero-v23-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  z-index:0!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
}
.hero-v23-veil{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    linear-gradient(to bottom,rgba(0,0,0,.28),rgba(0,0,0,.03) 46%,rgba(0,0,0,.26)),
    linear-gradient(270deg,rgba(0,0,0,.64) 0%,rgba(0,0,0,.44) 28%,rgba(0,0,0,.12) 52%,rgba(0,0,0,0) 72%)!important;
}
.hero-v23-panel{
  position:absolute!important;
  z-index:4!important;
  left:auto!important;
  right:clamp(32px,5.2vw,96px)!important;
  top:clamp(108px,15vh,148px)!important;
  bottom:auto!important;
  width:min(600px,40vw)!important;
  min-width:520px!important;
  max-width:600px!important;
  padding:42px 48px 44px!important;
  background:rgba(0,0,0,.66)!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  color:#fff!important;
}
.hero-v23 .eyebrow{
  display:block!important;
  margin:0 0 26px!important;
  color:#d8a5f0!important;
  font-size:12px!important;
  line-height:1.7!important;
  letter-spacing:.30em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
.hero-v23 .eyebrow span{
  display:inline!important;
  white-space:nowrap!important;
}
.hero-v23 .eyebrow span + span::before{
  content:" ";
}
.hero-v23 h1{
  margin:0 0 30px!important;
  font-size:clamp(56px,4.45vw,76px)!important;
  line-height:1.18!important;
  letter-spacing:.035em!important;
  font-weight:400!important;
  color:#fff!important;
  text-shadow:10px 10px 0 rgba(255,255,255,.055)!important;
}
.hero-v23 h1 span{
  display:block!important;
  white-space:nowrap!important;
}
.hero-v23 .lead{
  display:inline-block!important;
  margin:0!important;
  padding:0 0 14px!important;
  font-size:clamp(28px,2.05vw,36px)!important;
  line-height:1.65!important;
  letter-spacing:.10em!important;
  border-bottom:1px solid rgba(216,165,240,.85)!important;
  color:#fff!important;
}
.hero-v23 .hero-actions{
  display:flex!important;
  gap:18px!important;
  flex-wrap:nowrap!important;
  margin-top:36px!important;
}
.hero-v23 .btn{
  display:inline-block!important;
  min-width:185px!important;
  text-align:center!important;
  font-size:14px!important;
  padding:12px 22px!important;
}
@media(max-width:1050px){
  .hero-v23{
    height:100svh!important;
    min-height:640px!important;
  }
  .hero-v23-image{
    object-position:38% center!important;
  }
  .hero-v23-veil{
    background:linear-gradient(to bottom,rgba(0,0,0,.12),rgba(0,0,0,.04) 48%,rgba(0,0,0,.72))!important;
  }
  .hero-v23-panel{
    left:22px!important;
    right:22px!important;
    top:auto!important;
    bottom:70px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:30px 26px!important;
  }
  .hero-v23 .eyebrow{
    font-size:10px!important;
    letter-spacing:.18em!important;
    white-space:normal!important;
  }
  .hero-v23 .eyebrow span{
    display:block!important;
  }
  .hero-v23 .eyebrow span + span::before{
    content:"";
  }
  .hero-v23 h1{
    font-size:clamp(38px,10vw,60px)!important;
    line-height:1.22!important;
  }
  .hero-v23 h1 span{
    white-space:normal!important;
  }
  .hero-v23 .lead{
    font-size:clamp(22px,6vw,28px)!important;
  }
  .hero-v23 .hero-actions{
    display:grid!important;
    gap:12px!important;
  }
  .hero-v23 .btn{
    width:100%!important;
    min-width:0!important;
  }
}
@media(max-width:520px){
  .hero-v23{
    min-height:620px!important;
  }
  .hero-v23-image{
    object-position:34% center!important;
  }
  .hero-v23-panel{
    left:18px!important;
    right:18px!important;
    bottom:44px!important;
    padding:26px 22px!important;
  }
  .hero-v23 h1{
    font-size:clamp(34px,10vw,46px)!important;
  }
}

/* v36 REAL FINAL: top buttons turn purple on hover. */
.hero-v23 .btn{
  transition:background-color .25s ease,color .25s ease,border-color .25s ease!important;
}
.hero-v23 .btn:hover,
.hero-v23 .btn:focus-visible{
  background:#d8a5f0!important;
  border-color:#d8a5f0!important;
  color:#111!important;
}

/* v37 REAL FINAL: buttons are purple only on hover; hero photo is slightly closer. */
.hero-v23-image{
  transform:scale(1.10)!important;
  transform-origin:36% 44%!important;
}
.hero-v23 .btn,
.hero-v23 .btn.primary{
  background:rgba(0,0,0,.08)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  color:#fff!important;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease!important;
}
.hero-v23 .btn:hover,
.hero-v23 .btn:focus-visible,
.hero-v23 .btn.primary:hover,
.hero-v23 .btn.primary:focus-visible{
  background:#d8a5f0!important;
  border-color:#d8a5f0!important;
  color:#111!important;
}
@media(max-width:1050px){
  .hero-v23-image{
    transform:scale(1.06)!important;
    transform-origin:36% 44%!important;
  }
}

/* v38 REAL FINAL: closer hero crop while keeping the fan visible. */
.hero-v23-image{
  transform:scale(1.55)!important;
  transform-origin:36% 34%!important;
}
@media(max-width:1050px){
  .hero-v23-image{
    transform:scale(1.12)!important;
    transform-origin:34% 36%!important;
  }
}


/* v40 FINAL: profile photo swapped, inner page hero tightened, lesson CTA title smaller. */
.profile-grid img{object-position:center center!important;aspect-ratio:4/3!important;}
.page-hero{padding:118px 7vw 42px!important;}
.page-hero h1{font-size:clamp(40px,5.6vw,84px)!important;line-height:1.12!important;}
.page-hero p{margin:16px 0 0!important;font-size:18px!important;}
.contact-box h2{font-size:clamp(28px,4.2vw,56px)!important;line-height:1.28!important;}
@media(max-width:1050px){
  .page-hero{padding:108px 28px 34px!important;}
  .page-hero h1{font-size:clamp(34px,9vw,58px)!important;}
  .page-hero p{font-size:16px!important;}
  .contact-box h2{font-size:clamp(26px,8vw,42px)!important;}
}


/* v42 FINAL: site-wide Fuji-and-fan icon */
.brand-logo,
.footer-logo{
  filter:none!important;
  opacity:1!important;
  border-radius:999px!important;
  object-fit:cover!important;
  background:#17111c!important;
}

.brand-logo{
  width:36px!important;
  height:36px!important;
}

.footer-logo{
  width:46px!important;
  height:46px!important;
}
