:root {
      color-scheme: light;
      --ink:#111111;
      --paper:#ffffff;
      --soft:#f2f2f0;
      --line:#d9d9d6;
      --red:#c91d22;
      --green:#06c755;
      --muted:#656565;
      --max:1160px;
    }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body {
      margin:0;
      color:var(--ink);
      background:var(--paper);
      font-size:16px;
      font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
      -webkit-font-smoothing:antialiased;
    }
    img { display:block; width:100%; max-width:100%; height:auto; }
    a { color:inherit; }
    .wrap { width:min(calc(100% - 48px),var(--max)); margin-inline:auto; }
    h1,h2,h3,p,summary,.factor,.schedule-row strong {
      line-break:strict;
      word-break:normal;
      word-break:auto-phrase;
      overflow-wrap:normal;
    }
    h1,h2,h3 { text-wrap:balance; }
    p,summary,.lead { text-wrap:pretty; }
    .title-line { display:block; width:max-content; max-width:100%; white-space:nowrap; }
    .stack-line { display:block; }
    .seo-intro {
      margin:54px auto 0;
      padding:24px 28px;
      color:#3f3f3f;
      background:var(--soft);
      border-left:4px solid var(--red);
      font-size:1rem;
      line-height:1.9;
    }
    .eyebrow {
      margin:0 0 16px;
      color:var(--red);
      font:800 .78rem/1.4 Arial,Helvetica,sans-serif;
      letter-spacing:.19em;
      text-transform:uppercase;
    }
    .section-title {
      margin:0;
      font-size:clamp(2rem,4vw,4rem);
      line-height:1.13;
      letter-spacing:-.055em;
    }
    .lead {
      margin:24px 0 0;
      color:var(--muted);
      font-size:1.02rem;
      line-height:2;
    }
    .site-header {
      position:relative;
      z-index:10;
      border-top:5px solid var(--ink);
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.97);
    }
    .header-inner {
      min-height:92px;
      display:grid;
      grid-template-columns:auto 1fr auto;
      align-items:center;
      gap:36px;
    }
    .academy-brand {
      text-decoration:none;
      font:900 1.35rem/1 Arial,Helvetica,sans-serif;
      letter-spacing:.08em;
      white-space:nowrap;
    }
    .academy-brand small {
      display:block;
      margin-top:9px;
      color:var(--muted);
      font:500 .75rem/1.3 "Noto Sans JP","Yu Gothic",sans-serif;
      letter-spacing:.14em;
    }
    .program-mark {
      justify-self:start;
      padding-left:24px;
      border-left:1px solid var(--line);
      font:900 .9rem/1 Arial,Helvetica,sans-serif;
      letter-spacing:.12em;
    }
    .program-mark::before {
      content:"";
      display:inline-block;
      width:9px;
      height:9px;
      margin-right:8px;
      background:var(--red);
      transform:skewX(-18deg);
    }
    nav { display:flex; gap:26px; }
    nav a {
      color:#3d3d3d;
      font-size:.78rem;
      font-weight:700;
      letter-spacing:.08em;
      text-decoration:none;
    }
    .hero {
      position:relative;
      overflow:hidden;
      color:#fff;
      background:var(--ink);
    }
    .hero::after {
      content:"";
      position:absolute;
      inset:auto -8% -170px 44%;
      height:300px;
      background:var(--red);
      transform:skewY(-9deg);
      opacity:.96;
      pointer-events:none;
    }
    .hero-grid {
      position:relative;
      z-index:1;
      min-height:0;
      display:grid;
      grid-template-columns:1.02fr .98fr;
      align-items:center;
      gap:54px;
      padding-block:72px;
    }
    .hero-copy {
      padding:42px 0;
      align-self:center;
    }
    .hero .eyebrow { color:#fff; }
    .hero-kicker {
      display:inline-block;
      margin-bottom:25px;
      padding:8px 12px;
      color:#fff;
      background:var(--red);
      font-size:.82rem;
      font-weight:800;
      letter-spacing:.08em;
      transform:skewX(-8deg);
    }
    .hero h1 {
      margin:0;
      font-size:clamp(3rem,5.35vw,5.3rem);
      line-height:1.03;
      letter-spacing:-.075em;
    }
    .hero h1 em {
      display:block;
      color:var(--red);
      font-style:normal;
    }
    .hero-sub {
      max-width:520px;
      margin:30px 0 0;
      color:#d3d3d3;
      font-size:1rem;
      line-height:1.9;
    }
    .hero-media {
      position:relative;
      min-height:0;
      display:flex;
      align-items:center;
      justify-content:center;
      padding-left:12px;
      background:transparent;
    }
    .hero-media img {
      width:auto;
      max-width:100%;
      max-height:820px;
      height:auto;
      object-fit:contain;
    }
    .hero-wordmark { display:none; }
    .quick-info {
      position:relative;
      z-index:3;
      margin-top:-36px;
    }
    .quick-card {
      display:grid;
      grid-template-columns:repeat(3,1fr) 1.28fr;
      min-height:138px;
      background:#fff;
      border:1px solid var(--line);
      box-shadow:0 20px 55px rgba(0,0,0,.12);
    }
    .fact {
      padding:30px 30px 26px;
      border-right:1px solid var(--line);
    }
    .fact span {
      display:block;
      margin-bottom:11px;
      color:var(--muted);
      font:.68rem/1 Arial,Helvetica,sans-serif;
      letter-spacing:.16em;
    }
    .fact strong {
      display:block;
      font-size:1.3rem;
      line-height:1.35;
    }
    .fact strong b {
      color:var(--red);
      font-size:1.8em;
    }
    .quick-cta {
      display:flex;
      align-items:center;
      justify-content:center;
      padding:24px;
      color:#fff;
      background:var(--red);
      font-size:1rem;
      font-weight:800;
      letter-spacing:.06em;
      text-align:center;
      text-decoration:none;
    }
    .quick-cta span::after { content:"  ↗"; }
    .section { padding:120px 0; }
    .about-grid {
      display:grid;
      grid-template-columns:1fr .88fr;
      gap:86px;
      align-items:center;
    }
    .poster-frame {
      position:relative;
      padding:26px;
      background:var(--soft);
    }
    .poster-frame::before {
      content:"";
      position:absolute;
      top:-18px;
      right:-18px;
      width:94px;
      height:94px;
      border-top:6px solid var(--red);
      border-right:6px solid var(--red);
    }
    .poster-frame img { width:100%; }
    .about-note {
      margin-top:34px;
      padding-left:22px;
      border-left:4px solid var(--red);
      font-size:1.18rem;
      font-weight:800;
      line-height:1.65;
    }
    .mission {
      position:relative;
      overflow:hidden;
      color:#fff;
      background:#111;
    }
    .mission-grid {
      min-height:0;
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      align-items:center;
      gap:70px;
      padding-block:78px;
    }
    .mission-media {
      position:relative;
      min-height:0;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:visible;
    }
    .mission-media img {
      width:auto;
      max-width:100%;
      max-height:790px;
      height:auto;
      object-fit:contain;
    }
    .mission-copy {
      position:relative;
      z-index:1;
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:56px 0;
    }
    .mission-copy .eyebrow { color:#ef3237; }
    .mission-copy .section-title { max-width:580px; }
    .mission-copy .lead { max-width:570px; color:#cfcfcf; }
    .principles {
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:22px;
      margin-top:50px;
    }
    .principle {
      padding:22px;
      border:1px solid #4a4a4a;
    }
    .principle b {
      display:block;
      color:var(--red);
      font:900 1.25rem/1 Arial,Helvetica,sans-serif;
      letter-spacing:.08em;
    }
    .principle span {
      display:block;
      margin-top:10px;
      color:#fff;
      font-size:.95rem;
      font-weight:700;
    }
    .method-head {
      display:grid;
      grid-template-columns:.8fr 1.2fr;
      gap:70px;
      align-items:end;
      margin-bottom:58px;
    }
    .method-head .lead { margin:0; }
    .direction-grid {
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:22px;
    }
    .direction-card {
      position:relative;
      overflow:visible;
      min-height:0;
      color:#fff;
      background:#111;
    }
    .direction-image {
      position:relative;
      height:auto;
      overflow:visible;
    }
    .direction-image img {
      width:100%;
      height:auto;
      object-fit:contain;
    }
    .direction-copy {
      position:relative;
      z-index:1;
      display:flex;
      min-height:0;
      flex-direction:column;
      justify-content:flex-start;
      padding:28px 28px 34px;
    }
    .direction-no {
      display:none;
    }
    .direction-copy h3 {
      margin:0;
      font-size:1.45rem;
      line-height:1.5;
    }
    .direction-copy p {
      margin:18px 0 0;
      color:#c8c8c8;
      font-size:1rem;
      line-height:1.85;
    }
    .program-section { background:var(--soft); }
    .program-grid {
      display:grid;
      grid-template-columns:.92fr 1.08fr;
      gap:76px;
      align-items:center;
    }
    .program-poster {
      padding:18px;
      background:#fff;
      box-shadow:0 18px 45px rgba(0,0,0,.08);
    }
    .factor-list {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:0;
      margin-top:38px;
      border-top:1px solid #bbb;
    }
    .factor {
      padding:22px 14px 22px 0;
      border-bottom:1px solid #bbb;
      font-weight:800;
      line-height:1.55;
    }
    .factor:nth-child(odd) { border-right:1px solid #bbb; }
    .factor:nth-child(even) { padding-left:22px; }
    .factor b {
      display:inline-block;
      min-width:34px;
      color:var(--red);
      font:900 .82rem/1 Arial,Helvetica,sans-serif;
    }
    .coaches {
      color:#fff;
      background:#111;
    }
    .coaches-head {
      display:flex;
      justify-content:space-between;
      gap:40px;
      align-items:end;
      margin-bottom:50px;
    }
    .coaches-head p {
      max-width:440px;
      margin:0;
      color:#c9c9c9;
      line-height:1.85;
    }
    .coach-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:32px;
    }
    .coach-card {
      padding:14px;
      background:#fff;
      border-top:6px solid var(--red);
    }
    .coach-card img { width:100%; }
    .trial {
      position:relative;
      overflow:hidden;
      background:var(--red);
    }
    .trial::before {
      content:"";
      position:absolute;
      inset:0 55% 0 0;
      background:#111;
      transform:skewX(-8deg);
      transform-origin:bottom;
    }
    .trial-grid {
      position:relative;
      display:grid;
      grid-template-columns:.92fr 1.08fr;
      gap:76px;
      align-items:center;
    }
    .trial-poster {
      max-width:500px;
      padding:14px;
      background:#fff;
      box-shadow:0 20px 45px rgba(0,0,0,.25);
    }
    .trial-copy { color:#fff; }
    .trial-copy .eyebrow { color:#fff; }
    .trial-copy .section-title { max-width:530px; }
    .trial-facts {
      display:grid;
      grid-template-columns:1fr 1fr;
      margin:34px 0;
      border-top:1px solid rgba(255,255,255,.45);
      border-left:1px solid rgba(255,255,255,.45);
    }
    .trial-fact {
      padding:18px;
      border-right:1px solid rgba(255,255,255,.45);
      border-bottom:1px solid rgba(255,255,255,.45);
    }
    .trial-fact span {
      display:block;
      margin-bottom:8px;
      font-size:.78rem;
      letter-spacing:.12em;
    }
    .trial-fact strong { font-size:1.05rem; }
    .line-button {
      display:inline-flex;
      min-height:62px;
      padding:0 32px;
      align-items:center;
      justify-content:center;
      color:#fff;
      background:var(--green);
      border:2px solid #fff;
      border-radius:999px;
      font-weight:800;
      text-decoration:none;
      box-shadow:6px 6px 0 #111;
    }
    .details-section { background:#fff; }
    .details-grid {
      display:grid;
      grid-template-columns:.95fr 1.05fr;
      gap:28px;
    }
    .info-card {
      position:relative;
      overflow:hidden;
      padding:48px;
      border:1px solid var(--line);
      background:var(--soft);
    }
    .info-card.dark { color:#fff; background:#111; border-color:#111; }
    .info-card h3 {
      margin:0 0 28px;
      font-size:clamp(1.6rem,3vw,2.5rem);
      line-height:1.25;
    }
    .price-main {
      margin:0 0 24px;
      padding:22px 0;
      border-top:1px solid #555;
      border-bottom:1px solid #555;
    }
    .price-main span { display:block; color:#c8c8c8; font-size:.86rem; }
    .price-main strong { display:block; margin-top:8px; font-size:2.25rem; }
    .price-main strong b { color:var(--red); font-size:1.45em; }
    .mini-price {
      display:flex;
      justify-content:space-between;
      gap:20px;
      padding:14px 0;
      border-bottom:1px solid #444;
      font-weight:700;
    }
    .schedule-row {
      display:grid;
      grid-template-columns:92px 1fr;
      gap:20px;
      padding:17px 0;
      border-bottom:1px solid #c9c9c6;
      line-height:1.7;
    }
    .schedule-row span {
      color:var(--red);
      font-size:.75rem;
      font-weight:800;
      letter-spacing:.08em;
    }
    .schedule-row strong { font-size:1rem; }
    .faq-section { padding-top:105px; background:var(--soft); }
    .faq-layout {
      display:grid;
      grid-template-columns:.65fr 1.35fr;
      gap:80px;
      align-items:start;
    }
    .faq-layout .section-title { position:sticky; top:30px; }
    details { border-top:1px solid #bdbdbb; }
    details:last-child { border-bottom:1px solid #bdbdbb; }
    summary {
      list-style:none;
      cursor:pointer;
      display:grid;
      grid-template-columns:42px 1fr 24px;
      gap:10px;
      align-items:start;
      padding:26px 0;
      font-size:1rem;
      font-weight:800;
      line-height:1.65;
    }
    summary::-webkit-details-marker { display:none; }
    summary::before {
      content:"Q";
      color:var(--red);
      font:900 1.25rem/1.5 Arial,Helvetica,sans-serif;
    }
    summary::after { content:"＋"; color:#777; font-size:1.25rem; }
    details[open] summary::after { content:"−"; }
    .answer {
      padding:0 0 28px 52px;
      color:#555;
      font-size:.98rem;
      line-height:1.95;
    }
    .answer p { margin:0 0 1em; }
    .answer p:last-child { margin-bottom:0; }
    .access {
      padding:90px 0;
      color:#fff;
      background:var(--red);
    }
    .access-grid {
      display:grid;
      grid-template-columns:.72fr 1.28fr;
      gap:90px;
      align-items:center;
    }
    .access .eyebrow { color:#fff; }
    .access-address {
      padding:34px;
      color:var(--ink);
      background:#fff;
      box-shadow:8px 8px 0 #111;
    }
    .access-address p { margin:0 0 10px; line-height:1.8; }
    .access-address strong { font-size:1.15rem; }
    .academy-footer {
      padding:70px 0 120px;
      color:#fff;
      background:#080808;
    }
    .footer-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:80px;
      align-items:end;
    }
    .footer-academy {
      margin:0;
      font:900 clamp(1.9rem,4vw,3.7rem)/1 Arial,Helvetica,sans-serif;
      letter-spacing:.06em;
    }
    .footer-copy {
      margin:22px 0 0;
      color:#bdbdbd;
      font-size:.94rem;
      line-height:1.9;
    }
    .footer-program { text-align:right; }
    .footer-program strong {
      display:block;
      font:900 1.4rem/1 Arial,Helvetica,sans-serif;
      letter-spacing:.13em;
    }
    .footer-program p { margin:12px 0 0; color:#aaa; font-size:.82rem; }
    .floating-line {
      position:fixed;
      z-index:20;
      right:18px;
      bottom:18px;
      display:flex;
      min-width:152px;
      min-height:50px;
      padding:0 20px;
      align-items:center;
      justify-content:center;
      color:#fff;
      background:var(--green);
      border:2px solid #fff;
      border-radius:999px;
      box-shadow:0 10px 28px rgba(0,0,0,.25);
      font-size:.86rem;
      font-weight:800;
      text-decoration:none;
    }
    @media (max-width:900px) {
      .wrap { width:min(calc(100% - 36px),var(--max)); }
      .header-inner { grid-template-columns:1fr auto; gap:18px; min-height:78px; }
      .program-mark { justify-self:end; padding-left:18px; }
      nav { display:none; }
      .hero-grid { min-height:auto; grid-template-columns:1fr; gap:38px; padding-block:44px 92px; }
      .hero-copy { order:2; padding:0; }
      .hero-media { min-height:0; padding:0; }
      .hero-media img { width:min(100%,560px); max-height:none; }
      .quick-card { grid-template-columns:repeat(3,1fr); }
      .quick-cta { grid-column:1/-1; min-height:72px; }
      .section { padding:88px 0; }
      .about-grid,.program-grid,.trial-grid,.details-grid,.faq-layout,.access-grid,.footer-grid { grid-template-columns:1fr; }
      .about-grid,.program-grid,.trial-grid,.faq-layout,.access-grid { gap:48px; }
      .mission-grid { grid-template-columns:1fr; gap:44px; padding-block:70px 82px; }
      .mission-media { min-height:0; }
      .mission-media img { width:min(100%,560px); max-height:none; }
      .mission-copy { padding:0 18px; }
      .method-head { grid-template-columns:1fr; gap:24px; }
      .direction-grid { grid-template-columns:1fr; }
      .direction-card,.direction-copy { min-height:0; }
      .direction-image { height:auto; }
      .coach-grid { gap:18px; }
      .trial::before { inset:0 0 58% 0; transform:skewY(-5deg); }
      .trial-poster { margin:auto; }
      .faq-layout .section-title { position:static; }
      .footer-program { text-align:left; }
    }
    @media (max-width:620px) {
      .wrap { width:min(calc(100% - 28px),var(--max)); }
      .header-inner { min-height:82px; gap:10px; }
      .academy-brand { font-size:1rem; }
      .academy-brand small { font-size:.75rem; line-height:1.45; letter-spacing:.04em; }
      .program-mark { font-size:.75rem; padding-left:8px; }
      .hero-grid { gap:34px; padding-block:28px 76px; }
      .hero-media { min-height:0; }
      .hero-copy { padding:0; }
      .hero h1 { font-size:clamp(2.65rem,12vw,3.45rem); line-height:1.08; letter-spacing:-.06em; }
      .hero-sub { font-size:1.06rem; line-height:1.9; }
      .hero-kicker { font-size:.9rem; }
      .eyebrow { font-size:.82rem; }
      .quick-info { margin-top:-24px; }
      .seo-intro { margin-top:40px; padding:22px 20px; font-size:1.04rem; line-height:1.95; }
      .quick-card { grid-template-columns:1fr 1fr; }
      .fact { padding:22px 18px; }
      .fact span { font-size:.78rem; }
      .fact strong { font-size:1.2rem; }
      .fact:nth-child(2) { border-right:0; }
      .fact:nth-child(3) { grid-column:1/-1; border-top:1px solid var(--line); border-right:0; text-align:center; }
      .quick-cta { grid-column:1/-1; }
      .section { padding:76px 0; }
      .section-title { font-size:clamp(2rem,8.65vw,2.65rem); line-height:1.2; letter-spacing:-.045em; }
      .lead { font-size:1.06rem; line-height:1.95; }
      .about-grid { gap:42px; }
      .poster-frame { padding:12px; }
      .poster-frame::before { top:-10px; right:-10px; width:65px; height:65px; border-width:4px; }
      .mission-media { min-height:0; }
      .mission-copy { padding:0; }
      .principles { grid-template-columns:1fr; margin-top:34px; }
      .principle span { font-size:1rem; }
      .direction-copy { padding:25px 22px 30px; }
      .direction-copy h3 { font-size:1.42rem; }
      .direction-copy p { font-size:1.03rem; line-height:1.9; }
      .factor-list { grid-template-columns:1fr; }
      .factor:nth-child(odd) { border-right:0; }
      .factor:nth-child(even) { padding-left:0; }
      .coaches-head { display:block; }
      .coaches-head p { margin-top:22px; }
      .coach-grid { grid-template-columns:1fr; }
      .trial-grid { gap:42px; }
      .trial-facts { grid-template-columns:1fr; }
      .info-card { padding:34px 24px; }
      .schedule-row { grid-template-columns:1fr; gap:8px; }
      .schedule-row span { font-size:.8rem; }
      .schedule-row strong { font-size:1.05rem; }
      .faq-section { padding-top:72px; }
      .faq-layout { gap:34px; }
      summary { grid-template-columns:32px 1fr 18px; padding:22px 0; font-size:1.06rem; line-height:1.75; }
      .answer { padding-left:42px; font-size:1.04rem; line-height:2; }
      .access { padding:72px 0; }
      .access-address { padding:27px 22px; }
      .academy-footer { padding:58px 0 100px; }
      .footer-grid { gap:36px; }
      .footer-copy { font-size:1rem; }
      .footer-program p { font-size:.86rem; line-height:1.7; }
      .floating-line { right:10px; bottom:10px; min-width:154px; min-height:52px; font-size:.95rem; }
    }
    @media (max-width:340px) {
      .wrap { width:min(calc(100% - 24px),var(--max)); }
      .header-inner { grid-template-columns:1fr; gap:9px; padding-block:14px; }
      .program-mark { justify-self:start; padding-left:0; border-left:0; }
      .hero h1 { font-size:2.4rem; }
      .section-title { font-size:1.75rem; }
      .quick-card { grid-template-columns:1fr; }
      .fact { border-right:0; border-bottom:1px solid var(--line); text-align:left; }
      .fact:nth-child(3) { grid-column:auto; border-top:0; text-align:left; }
    }
