:root{--ink:#151718;--soft:#252829;--red:#e23b32;--gold:#e8b45f;--cream:#f3eee5;--paper:#fbf9f5;--white:#fff;--muted:#6f716f;--line:rgba(21,23,24,.14);--font:"Nunito",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--font)}body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 8%,rgba(232,180,95,.14),transparent 23%),radial-gradient(circle at 90% 30%,rgba(226,59,50,.08),transparent 25%)}a{color:inherit;text-decoration:none}img{max-width:100%}a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}::selection{background:var(--red);color:#fff}
.scroll-progress{position:fixed;z-index:100;inset:0 0 auto;height:3px;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--gold),var(--red));transform:scaleX(0);transform-origin:left}
.site-header{width:min(100% - 48px,1320px);height:90px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:rgba(251,249,245,.9);backdrop-filter:blur(18px)}.brand{display:inline-flex;width:fit-content;align-items:center;gap:12px}.brand img{width:54px;height:54px;padding:3px;object-fit:contain;border:1px solid var(--line);border-radius:50%;background:#fff}.brand>span{font-size:12px;line-height:1.05;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.brand small{display:block;margin-top:5px;color:var(--red);font-size:9px;letter-spacing:.18em}.desktop-nav{display:flex;gap:32px}.desktop-nav a{padding:12px 0;position:relative;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.desktop-nav a:after{content:"";position:absolute;left:0;bottom:5px;width:0;height:2px;background:var(--red);transition:width .2s}.desktop-nav a:hover:after,.desktop-nav a.active:after{width:100%}.nav-cta{justify-self:end;display:inline-flex;align-items:center;gap:14px;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.nav-cta span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff}.mobile-menu{display:none}
.hero{width:min(100% - 48px,1320px);min-height:760px;margin:0 auto;display:grid;grid-template-columns:52% 48%;grid-template-rows:1fr 62px;position:relative}.hero-copy{padding:100px 5vw 72px 0;position:relative;z-index:2}.eyebrow{margin:0 0 22px;display:flex;align-items:center;gap:12px;color:var(--red);font-size:10px;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.eyebrow:before{content:"";width:34px;height:2px;background:currentColor}h1,h2,h3{margin:0}h1,h2{font-weight:900;letter-spacing:-.055em}h1{max-width:780px;font-size:clamp(58px,6.1vw,94px);line-height:.94}h1 em,h2 em{color:var(--red);font-style:normal}.hero-lead{max-width:590px;margin:30px 0;color:#585a58;font-size:18px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:12px}.button{min-height:54px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:30px;border-radius:100px;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px)}.button-primary{background:var(--red);color:#fff;box-shadow:0 10px 30px rgba(226,59,50,.24)}.button-ghost{border:1px solid var(--line);background:rgba(255,255,255,.5)}.hero-points{max-width:620px;margin:54px 0 0;padding:24px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid var(--line);list-style:none}.hero-points li{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.hero-points b{display:block;margin-bottom:7px;color:var(--red);font-size:9px;letter-spacing:.16em}
.hero-visual{min-height:690px;position:relative;overflow:hidden;isolation:isolate;border-radius:0 0 180px 180px}.hero-visual:after{content:"";position:absolute;z-index:-3;inset:0;background:linear-gradient(145deg,#f2dfbf,#e8b45f 55%,#cf8a31)}.hero-shape{position:absolute;border-radius:50%}.shape-one{z-index:-2;width:530px;height:530px;right:-170px;top:80px;border:90px solid rgba(255,255,255,.2)}.shape-two{z-index:-1;width:280px;height:280px;left:40px;bottom:80px;background:var(--red)}.hero-coach{position:absolute;bottom:0;object-fit:contain;filter:drop-shadow(0 25px 25px rgba(36,22,6,.26))}.hero-coach-back{z-index:1;width:55%;max-height:590px;left:5%}.hero-coach-front{z-index:2;width:59%;max-height:590px;right:0}.hero-stamp{position:absolute;z-index:3;right:28px;top:28px;width:120px;height:120px;display:grid;place-content:center;text-align:center;border:2px solid var(--ink);border-radius:50%;transform:rotate(7deg)}.hero-stamp strong{font-size:24px;font-weight:900}.hero-stamp span{font-size:7px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.vertical-word{position:absolute;z-index:-1;left:-36px;top:270px;margin:0;color:rgba(255,255,255,.37);font-size:70px;font-weight:900;transform:rotate(-90deg)}.hero-marquee{grid-column:1/-1;margin-inline:calc(50% - 50vw);overflow:hidden;display:flex;align-items:center;background:var(--ink);color:#fff}.hero-marquee div{width:max-content;padding-left:2vw;white-space:nowrap;font-size:14px;font-weight:900;letter-spacing:.16em}.hero-marquee i{padding:0 24px;color:var(--gold);font-style:normal}
.section{width:min(100% - 48px,1320px);margin:0 auto;padding:120px 0}.section-title{display:inline-block;vertical-align:top;width:64%}.section-title h2,.principle-intro h2,.contact h2{font-size:clamp(52px,5.4vw,78px);line-height:.95}.section-intro{width:34%;max-width:420px;margin:45px 0 0;display:inline-block;vertical-align:top;color:var(--muted);font-size:16px;line-height:1.75}
.program-grid{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.program-card{min-height:480px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;border-radius:28px}.program-dark{background:var(--ink);color:#fff}.program-red{background:var(--red);color:#fff}.program-cream{border:1px solid var(--line);background:var(--cream)}.program-number{align-self:flex-start;padding:8px 11px;border:1px solid;border-radius:100px;font-size:8px;font-weight:900;letter-spacing:.15em;opacity:.65}.program-icon{position:absolute;right:18px;top:55px;color:rgba(255,255,255,.09);font-size:150px;font-weight:900;line-height:1}.program-cream .program-icon{color:rgba(21,23,24,.06)}.program-coach{margin:0 0 10px;font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;opacity:.65}.program-card h3{font-size:clamp(38px,3.3vw,54px);font-weight:900;letter-spacing:-.05em}.program-card div>p:last-child{margin:18px 0 0;font-size:14px;line-height:1.7;opacity:.72}.program-card>a{padding-top:20px;display:flex;justify-content:space-between;border-top:1px solid;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.schedule{padding:110px max(24px,calc((100vw - 1320px)/2));background:var(--cream)}.schedule-heading{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:50px}.schedule-heading h2{font-size:clamp(52px,5.4vw,78px);line-height:.95}.schedule-heading>p{max-width:400px;margin:0 0 5px;color:var(--muted);font-size:16px;line-height:1.75}.schedule-grid{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.schedule-card{padding:34px;border-radius:28px;background:#fff;box-shadow:0 22px 60px rgba(21,23,24,.07)}.schedule-card-top{min-height:150px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.schedule-card-top>div{order:-1}.schedule-card-top p{margin:0 0 10px;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.schedule-card h3{font-size:clamp(40px,4vw,58px);font-weight:900;letter-spacing:-.055em}.schedule-mark{width:70px;height:70px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--cream);font-size:30px;font-weight:900}.schedule-muay-thai{background:var(--ink);color:#fff}.schedule-muay-thai .schedule-mark{background:var(--red)}.time-row{min-height:112px;padding:24px 0;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:18px;border-top:1px solid var(--line)}.schedule-muay-thai .time-row{border-color:rgba(255,255,255,.15)}.time-row span{display:block;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.time-row small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.schedule-muay-thai .time-row small{color:rgba(255,255,255,.48)}.time-slots{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.time-slots time{padding:12px 14px;border:1px solid var(--line);border-radius:100px;font-size:14px;font-weight:900;white-space:nowrap}.schedule-muay-thai .time-slots time{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05)}.time-slots b{color:var(--red);font-size:8px;letter-spacing:.12em}.schedule-note{margin-top:18px;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid rgba(21,23,24,.1);border-radius:24px}.schedule-note p{margin:0;color:var(--muted);font-size:14px}
.principles{padding:110px max(24px,calc((100vw - 1320px)/2));display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;position:relative;overflow:hidden;background:var(--ink);color:#fff}.principles:after{content:"力";position:absolute;right:-50px;bottom:-170px;color:rgba(255,255,255,.025);font-size:520px;font-weight:900;line-height:1}.eyebrow-light{color:var(--gold)}.principle-intro,.principle-list{position:relative;z-index:1}.principle-intro h2 em{color:var(--gold)}.principle-list{border-top:1px solid rgba(255,255,255,.16)}.principle-list article{padding:30px 0;display:grid;grid-template-columns:46px 1fr;gap:24px;border-bottom:1px solid rgba(255,255,255,.16)}.principle-list article>span{color:var(--red);font-size:9px;font-weight:900;letter-spacing:.15em}.principle-list h3{font-size:25px;font-weight:900}.principle-list p{margin:8px 0 0;color:rgba(255,255,255,.58);font-size:14px;line-height:1.65}
.coach-grid{margin-top:64px;display:grid;gap:18px}.coach-card{min-height:500px;display:grid;grid-template-columns:44% 56%;overflow:hidden;border:1px solid var(--line);border-radius:30px;background:#fff}.coach-card-reverse{grid-template-columns:56% 44%}.coach-card-reverse .coach-photo{grid-column:2;grid-row:1}.coach-card-reverse .coach-copy{grid-column:1;grid-row:1}.coach-photo{min-height:500px;position:relative;overflow:hidden}.coach-photo-red{background:linear-gradient(145deg,#ef665d,#b5231d)}.coach-photo-gold{background:linear-gradient(145deg,#f4cf91,#c77e24)}.coach-photo:before{content:"";position:absolute;z-index:1;inset:20px;border:1px solid rgba(255,255,255,.45);border-radius:20px;pointer-events:none}.coach-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9);transition:transform .45s}.coach-card:hover .coach-photo img{transform:scale(1.035)}.coach-photo span{position:absolute;z-index:2;left:36px;bottom:34px;padding:9px 12px;border-radius:100px;background:rgba(21,23,24,.85);color:#fff;font-size:8px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.coach-copy{padding:64px clamp(36px,6vw,90px);display:flex;flex-direction:column;justify-content:center}.coach-copy>p{margin:0 0 22px;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.coach-copy h3{font-size:clamp(56px,6vw,88px);font-weight:900;line-height:.83;letter-spacing:-.07em}.coach-copy ul{margin:36px 0 0;padding:22px 0 0;display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);list-style:none}.coach-copy li{padding:8px 12px;border:1px solid var(--line);border-radius:100px;font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.contact{display:grid;grid-template-columns:1fr 1fr;background:var(--red);color:#fff}.contact-copy{padding:100px max(24px,calc((100vw - 1320px)/2));padding-right:7vw}.contact-copy h2 em{color:var(--ink)}.contact-copy>p:not(.eyebrow){max-width:510px;margin:28px 0;color:rgba(255,255,255,.75);font-size:16px;line-height:1.75}.button-light{background:#fff;color:var(--ink)}.contact-details{padding:70px max(24px,calc((100vw - 1320px)/2)) 70px 5vw;display:grid;grid-template-columns:1fr 1fr;background:var(--ink)}.contact-details>div{min-height:150px;margin:-1px 0 0 -1px;padding:28px;border:1px solid rgba(255,255,255,.14)}.contact-details span{display:block;margin-bottom:18px;color:var(--gold);font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.contact-details p,.contact-details a{font-size:13px;line-height:1.65}.contact-details a{border-bottom:1px solid rgba(255,255,255,.42)}.contact-details .contact-phone{border:0;font-size:24px;font-weight:900}
footer{min-height:120px;padding:0 max(24px,calc((100vw - 1320px)/2));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;background:var(--cream)}footer>p{margin:0;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}footer>p:last-child{justify-self:end}.js .reveal-target{opacity:0;transform:translateY(24px);transition:opacity .7s ease var(--reveal-delay,0ms),transform .7s ease var(--reveal-delay,0ms)}.js .reveal-target.is-visible{opacity:1;transform:none}.site-header.is-scrolled{box-shadow:0 12px 35px rgba(21,23,24,.07)}
@media(max-width:1000px){.site-header{grid-template-columns:1fr auto}.desktop-nav,.nav-cta{display:none}.mobile-menu{display:block;justify-self:end;position:relative}.mobile-menu summary{padding:10px 15px;list-style:none;cursor:pointer;border:1px solid var(--ink);border-radius:100px;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;top:50px;right:0;width:220px;padding:12px;display:grid;border-radius:16px;background:var(--ink);color:#fff;box-shadow:0 18px 40px rgba(21,23,24,.2)}.mobile-menu nav a{padding:13px;border-bottom:1px solid rgba(255,255,255,.12);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.hero{grid-template-columns:55% 45%}.hero-visual{min-height:630px;border-radius:0 0 110px 110px}.program-grid{grid-template-columns:1fr 1fr}.program-card:last-child{grid-column:1/-1;min-height:380px}.schedule-grid{grid-template-columns:1fr}.coach-card,.coach-card-reverse{grid-template-columns:46% 54%}}
@media(max-width:720px){.site-header{width:calc(100% - 32px);height:74px}.brand img{width:46px;height:46px}.brand>span{display:none}.hero{width:100%;min-height:auto;grid-template-columns:1fr;grid-template-rows:auto 480px 54px}.hero-copy{padding:62px 20px 48px}h1{font-size:clamp(50px,14vw,72px)}.hero-lead{font-size:16px}.hero-actions{align-items:stretch;flex-direction:column}.hero-points{margin-top:42px;gap:8px}.hero-points li{font-size:8px}.hero-visual{min-height:480px;border-radius:0}.hero-stamp{width:96px;height:96px}.hero-marquee div{font-size:11px}.section{width:calc(100% - 40px);padding:86px 0}.section-title,.section-intro{width:100%;display:block}.section-title h2,.principle-intro h2,.contact h2{font-size:clamp(46px,13vw,64px)}.section-intro{margin-top:24px}.program-grid{margin-top:44px;grid-template-columns:1fr}.program-card,.program-card:last-child{min-height:410px;grid-column:auto}.schedule{padding:86px 20px}.schedule-heading{grid-template-columns:1fr;align-items:start;gap:24px}.schedule-heading h2{font-size:clamp(46px,13vw,64px)}.schedule-grid{margin-top:44px}.schedule-card{padding:26px 22px}.schedule-card-top{min-height:135px}.schedule-mark{width:54px;height:54px;font-size:24px}.time-row{grid-template-columns:1fr;gap:16px}.time-slots{justify-content:flex-start}.schedule-note{align-items:flex-start;flex-direction:column}.principles{padding:86px 20px;grid-template-columns:1fr;gap:52px}.coach-grid{margin-top:44px}.coach-card,.coach-card-reverse{grid-template-columns:1fr}.coach-card-reverse .coach-photo,.coach-card-reverse .coach-copy{grid-column:1;grid-row:auto}.coach-photo{min-height:390px}.coach-copy{padding:48px 28px}.contact{grid-template-columns:1fr}.contact-copy,.contact-details{padding:82px 20px}.contact-details{grid-template-columns:1fr}footer{padding-top:36px;padding-bottom:36px;grid-template-columns:1fr;text-align:center}footer .brand,footer>p:last-child{justify-self:center}footer .brand>span{display:block;text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}

/* Mobile navigation: keep every destination reachable with a comfortable touch target. */
@media (max-width: 720px) {
  .mobile-menu { width: auto; }
  .mobile-menu summary { min-width: 80px; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; }
  .mobile-menu summary::after { content: "+"; color: var(--red); font-size: 17px; line-height: 1; }
  .mobile-menu[open] summary { border-color: var(--red); background: var(--ink); color: var(--white); }
  .mobile-menu[open] summary::after { content: "−"; color: var(--gold); }
  .mobile-menu nav { top: 52px; right: 0; width: min(288px, calc(100vw - 32px)); padding: 8px; border-radius: 20px; }
  .mobile-menu nav a { min-height: 48px; display: flex; align-items: center; padding: 14px 16px; border-radius: 12px; }
  .mobile-menu nav a:last-child { margin-top: 5px; border: 0; background: var(--red); color: var(--white); }
  .mobile-menu nav a:focus-visible, .mobile-menu nav a:hover { background: rgba(255,255,255,.12); }
  .mobile-menu nav a:last-child:focus-visible, .mobile-menu nav a:last-child:hover { background: var(--gold); color: var(--ink); }
}

/* Compact phones: preserve the hero's hierarchy without crowding the artwork. */
@media (max-width: 480px) {
  .hero-copy { padding: 48px 16px 40px; }
  .eyebrow { margin-bottom: 18px; font-size: 9px; letter-spacing: .17em; }
  .eyebrow::before { width: 24px; }
  h1 { font-size: clamp(46px, 13.5vw, 62px); letter-spacing: -.065em; }
  .hero-lead { margin: 24px 0; font-size: 15px; line-height: 1.65; }
  .hero-actions { gap: 10px; }
  .hero-actions .button { width: 100%; min-height: 52px; padding-inline: 18px; }
  .hero-points { margin-top: 34px; padding-top: 18px; gap: 6px; }
  .hero-points li { font-size: 7px; line-height: 1.45; letter-spacing: .03em; }
  .hero-points b { margin-bottom: 5px; font-size: 8px; }
  .hero { grid-template-rows: auto 420px 50px; }
  .hero-visual { min-height: 420px; }
  .shape-one { width: 360px; height: 360px; right: -142px; top: 34px; border-width: 56px; }
  .shape-two { width: 190px; height: 190px; left: 12px; bottom: 42px; }
  .hero-coach-back { width: 59%; left: -1%; max-height: 396px; }
  .hero-coach-front { width: 65%; right: -4%; max-height: 400px; }
  .hero-stamp { top: 18px; right: 16px; width: 80px; height: 80px; border-width: 1px; }
  .hero-stamp strong { font-size: 17px; }
  .hero-stamp span { font-size: 5px; }
  .vertical-word { display: none; }
  .hero-marquee div { font-size: 9px; letter-spacing: .12em; }
  .hero-marquee i { padding-inline: 15px; }

  .section { width: calc(100% - 32px); padding-block: 68px; }
  .section-title h2, .principle-intro h2, .contact h2, .schedule-heading h2 { font-size: clamp(42px, 12.5vw, 56px); }
  .section-intro, .schedule-heading > p { font-size: 14px; line-height: 1.65; }
  .program-grid, .coach-grid, .schedule-grid { margin-top: 34px; gap: 12px; }
  .program-card, .program-card:last-child { min-height: 360px; padding: 24px 20px; border-radius: 22px; }
  .program-card h3 { font-size: 40px; }
  .program-card div > p:last-child { max-width: 270px; font-size: 13px; }
  .program-icon { right: 12px; top: 42px; font-size: 118px; }

  .schedule { padding: 68px 16px; }
  .schedule-card { padding: 22px 18px; border-radius: 22px; }
  .schedule-card-top { min-height: auto; margin-bottom: 28px; gap: 12px; }
  .schedule-card-top p { max-width: 190px; font-size: 8px; line-height: 1.5; }
  .schedule-card h3 { font-size: 38px; }
  .schedule-mark { width: 46px; height: 46px; font-size: 20px; }
  .time-row { min-height: 0; padding: 20px 0; gap: 12px; }
  .time-row span { font-size: 10px; }
  .time-row small { font-size: 9px; }
  .time-slots { width: 100%; gap: 6px; }
  .time-slots time { flex: 1 1 104px; padding: 10px 7px; font-size: 12px; text-align: center; }
  .schedule-note { margin-top: 12px; padding: 20px; border-radius: 18px; gap: 16px; }
  .schedule-note .button { width: 100%; }

  .principles { padding: 68px 16px; gap: 40px; }
  .principle-list article { grid-template-columns: 32px 1fr; gap: 14px; padding: 24px 0; }
  .principle-list h3 { font-size: 21px; }
  .principle-list p { font-size: 13px; }
  .coach-photo { min-height: 330px; }
  .coach-photo span { left: 20px; bottom: 20px; max-width: calc(100% - 40px); }
  .coach-copy { padding: 38px 22px; }
  .coach-copy h3 { font-size: clamp(48px, 14vw, 64px); }
  .coach-copy ul { margin-top: 28px; gap: 6px; }
  .coach-copy li { padding: 7px 9px; font-size: 7px; }

  .contact-copy, .contact-details { padding: 68px 16px; }
  .contact-copy > p:not(.eyebrow) { font-size: 14px; }
  .contact-copy .button { width: 100%; }
  .contact-details > div { min-height: 0; padding: 22px 18px; }
  .contact-details .contact-phone { font-size: 21px; }
  footer { min-height: 0; padding: 28px 16px; gap: 16px; }
  footer > p { font-size: 7px; line-height: 1.6; }
}
