:root{--black:#080808;--ink:#111;--paper:#f4f2ed;--white:#fff;--red:#e21b23;--muted:#a8a8a8;--line:#292929;--display:"Barlow Condensed",Impact,sans-serif;--body:Inter,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--white);font-family:var(--body);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}.skip-link{position:absolute;left:-9999px;top:1rem;background:#fff;color:#000;padding:.75rem 1rem;z-index:100}.skip-link:focus{left:1rem}.site-header{height:82px;padding:0 clamp(1.25rem,4vw,4.5rem);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #242424;position:absolute;inset:0 0 auto;z-index:20}.brand{display:flex;align-items:center;gap:.75rem;font-family:var(--display);font-weight:800;font-size:1.3rem;letter-spacing:.07em}.brand b{color:var(--red)}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--red);color:#fff;font-family:var(--display);font-weight:900;font-style:italic;transform:skew(-8deg);font-size:1.5rem}.site-nav{display:flex;align-items:center;gap:2rem;text-transform:uppercase;font-weight:700;font-size:.82rem;letter-spacing:.08em}.site-nav a:not(.nav-cta):hover{color:var(--red)}.nav-cta{background:var(--red);padding:.72rem 1rem}.nav-cta:hover{background:#ff2a33}.menu-button{display:none;border:1px solid #555;color:#fff;background:transparent;padding:.55rem .8rem;font:700 .8rem var(--body);text-transform:uppercase}
.hero{min-height:790px;height:100vh;position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.37fr);align-items:end;padding:clamp(8rem,13vh,10rem) clamp(1.25rem,7vw,8rem) clamp(4rem,8vh,6rem);background-image:linear-gradient(90deg,rgba(3,3,3,.98) 0%,rgba(3,3,3,.86) 42%,rgba(3,3,3,.42) 70%,rgba(3,3,3,.68) 100%),linear-gradient(0deg,rgba(226,27,35,.16),rgba(226,27,35,.03)),url("assets/coach-barbell.jpeg");background-size:cover;background-position:center 38%}.hero:after{content:"R";position:absolute;right:1.5%;bottom:-20%;font:900 clamp(36rem,60vw,70rem)/.72 var(--display);font-style:italic;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.06);z-index:0}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to right,black,transparent 78%)}.hero-copy{position:relative;z-index:2;max-width:780px}.eyebrow{display:flex;align-items:center;gap:.7rem;color:var(--red);font-weight:800;letter-spacing:.16em;font-size:.78rem;margin:0 0 1.25rem}.eyebrow span{width:30px;height:3px;background:currentColor}.eyebrow.light{color:#fff}.hero h1,.section h2{font-family:var(--display);font-size:clamp(5rem,12.6vw,10.5rem);font-weight:900;letter-spacing:.015em;line-height:1;margin:0;text-transform:uppercase}.hero h1 em,.section h2 em{color:var(--red);font-style:italic}.hero-lede{font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:620px;color:#e3e3e3;margin:2rem 0;text-shadow:0 2px 15px #000}.hero-actions{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.8rem;min-width:230px;text-transform:uppercase;font:800 .83rem var(--body);letter-spacing:.08em;padding:1.05rem 1.2rem;border:1px solid transparent;transition:.2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--red)}.button-light{background:#fff;color:#111}.text-link{font-size:.9rem;font-weight:700;border-bottom:1px solid #999;padding:.4rem 0;text-shadow:0 2px 10px #000}.hero-stat{position:relative;z-index:2;border-left:4px solid var(--red);padding-left:1.4rem;margin-bottom:1.2rem;text-shadow:0 2px 12px #000}.hero-stat strong{display:block;font:900 clamp(4rem,7vw,7rem)/.8 var(--display)}.hero-stat span{display:block;max-width:150px;color:#ddd;font-size:.85rem;line-height:1.3;margin-top:.7rem}.vertical-note{position:absolute;right:1.4rem;top:52%;z-index:2;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.64rem;letter-spacing:.15em;color:#ccc;text-shadow:0 2px 10px #000}.marquee{overflow:hidden;background:var(--red);color:#fff;padding:.55rem 0;white-space:nowrap}.marquee div{font:800 1.4rem var(--display);letter-spacing:.08em;word-spacing:1rem;animation:ticker 24s linear infinite}.marquee i{color:#111}@keyframes ticker{to{transform:translateX(-50%)}}
.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,7vw,8rem)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:4rem}.section-heading h2,.why h2,.coach h2,.contact h2{font-size:clamp(3.8rem,8vw,7.5rem);line-height:1.05}.classes{background-image:linear-gradient(rgba(244,242,237,.93),rgba(244,242,237,.97)),url("assets/strength-squat.jpeg");background-size:cover;background-position:center 38%;color:var(--ink)}.class-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #d0cec8;box-shadow:0 25px 80px #0003}.class-card{min-height:450px;padding:2rem;border-right:1px solid #d0cec8;display:flex;flex-direction:column;transition:.25s;background:rgba(244,242,237,.86);backdrop-filter:blur(4px)}.class-card:last-child{border:0}.class-card:hover{transform:translateY(-8px);box-shadow:0 14px 40px #0002;background:rgba(255,255,255,.96)}.card-number{font:800 1rem var(--display);color:#888}.class-card h3{font:800 3rem var(--display);text-transform:uppercase;margin:auto 0 1rem;line-height:1.1;letter-spacing:.015em}.class-card p{color:#565656;line-height:1.55}.class-card ul{list-style:none;padding:1rem 0 0;margin:.5rem 0 0;border-top:1px solid #ccc;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.class-card li{padding:.26rem 0}.class-card li:before{content:"+";color:var(--red);margin-right:.5rem}.red-card{background:rgba(226,27,35,.94);color:#fff;border-color:var(--red)}.red-card:hover{background:var(--red)}.red-card p,.red-card .card-number{color:#fff}.red-card ul{border-color:#ffffff66}.red-card li:before{color:#111}
.why{display:grid;grid-template-columns:1.12fr .88fr;padding:0;background:#0d0d0d}.why-panel{padding:clamp(5rem,9vw,8rem) clamp(1.25rem,7vw,8rem);background:var(--red);clip-path:polygon(0 0,94% 0,100% 50%,94% 100%,0 100%)}.why-panel h2 em{color:#111}.why-panel>p:not(.eyebrow){max-width:650px;font-size:1.08rem;margin:2rem 0;color:#fff}.standards{padding:clamp(5rem,9vw,8rem) clamp(1.25rem,5vw,6rem);display:flex;flex-direction:column;justify-content:center}.standard{display:grid;grid-template-columns:65px 1fr;gap:1.1rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}.standard strong{font:800 1.2rem var(--display);color:var(--red)}.standard h3{font:800 2rem var(--display);text-transform:uppercase;margin:0}.standard p{color:#9d9d9d;margin:.25rem 0 0;font-size:.92rem}
.coach{background:var(--paper);color:var(--ink);display:grid;grid-template-columns:.75fr 1.25fr;align-items:center;gap:clamp(3rem,7vw,9rem)}.coach-badge{aspect-ratio:1;max-width:500px;width:100%;border-radius:50%;background:var(--black);display:grid;place-content:center;text-align:center;position:relative;box-shadow:20px 20px 0 var(--red);transform:rotate(-4deg)}.coach-badge:before,.coach-badge:after{content:"";position:absolute;border:2px solid #fff2;border-radius:50%;inset:6%}.coach-badge:after{inset:14%;border-style:dashed}.coach-badge span{color:#fff;font:700 1.2rem var(--display);letter-spacing:.5em}.coach-badge strong{color:var(--red);font:italic 900 clamp(4.5rem,8vw,8rem)/.8 var(--display)}.coach-copy .lead{font-size:1.2rem;font-weight:700;max-width:720px}.coach-copy>p:not(.eyebrow):not(.lead){color:#555;max-width:720px}.coach-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem}.coach-stats div{border-top:3px solid var(--red);padding-top:1rem}.coach-stats strong{display:block;font:900 2.8rem var(--display)}.coach-stats span{font-size:.76rem;color:#666;line-height:1.35;display:block}
.contact{background-image:linear-gradient(90deg,rgba(201,10,18,.98) 0%,rgba(226,27,35,.90) 48%,rgba(120,0,5,.78) 100%),url("assets/hybrid-run.jpeg");background-size:cover;background-position:center 40%;display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,10rem);align-items:center}.contact h2 em{color:#111}.contact-copy>p:not(.eyebrow){max-width:570px;text-shadow:0 2px 10px #760006}.contact-actions{border-top:1px solid #ffffffaa;background:rgba(20,0,0,.18);padding:0 1.25rem;backdrop-filter:blur(5px)}.contact-row{display:grid;grid-template-columns:110px 1fr 30px;align-items:center;gap:1rem;padding:1.35rem 0;border-bottom:1px solid #ffffffaa;transition:.2s}.contact-row:hover{padding-left:.7rem;background:#00000018}.contact-row span{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.contact-row strong{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,2rem)}.contact-row b{font-size:1.4rem}.location{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-top:1.4rem}footer{min-height:120px;padding:2rem clamp(1.25rem,7vw,8rem);display:flex;align-items:center;justify-content:space-between;color:#888;font-size:.78rem}footer p{margin:0}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1000px){.class-grid{grid-template-columns:repeat(2,1fr)}.class-card:nth-child(2){border-right:0}.class-card:nth-child(-n+2){border-bottom:1px solid #d0cec8}.why{grid-template-columns:1fr}.why-panel{clip-path:none}.coach{grid-template-columns:1fr}.coach-badge{max-width:340px}.contact{grid-template-columns:1fr}.vertical-note{display:none}}
@media(max-width:720px){.site-header{height:70px}.menu-button{display:block}.site-nav{display:none;position:absolute;top:70px;left:0;right:0;background:#0b0b0b;flex-direction:column;align-items:stretch;gap:0;padding:1rem 1.25rem;border-bottom:1px solid #333}.site-nav.open{display:flex}.site-nav a{padding:1rem}.hero{min-height:720px;height:auto;grid-template-columns:1fr;padding-top:8rem;background-position:64% center;background-image:linear-gradient(90deg,rgba(3,3,3,.96) 0%,rgba(3,3,3,.82) 60%,rgba(3,3,3,.58) 100%),url("assets/coach-barbell.jpeg")}.hero h1{font-size:clamp(3rem,17vw,7rem)}.hero-stat{margin-top:3rem}.hero-actions{align-items:stretch;flex-direction:column;gap:1rem}.button{width:100%}.class-grid{grid-template-columns:1fr}.class-card,.class-card:nth-child(2){border-right:0;border-bottom:1px solid #d0cec8;min-height:340px}.class-card h3{margin-top:3rem}.coach-stats{grid-template-columns:1fr}.coach-stats div{display:grid;grid-template-columns:80px 1fr;align-items:center}.contact{background-position:42% center}.contact-row{grid-template-columns:86px 1fr 20px}.contact-row strong{overflow-wrap:anywhere}footer{flex-direction:column;align-items:flex-start;gap:1.2rem}.marquee div{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee div{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* Athlete photo backgrounds */
.hero{background-image:linear-gradient(90deg,rgba(3,3,3,.98) 0%,rgba(3,3,3,.86) 38%,rgba(3,3,3,.32) 70%,rgba(3,3,3,.50) 100%),linear-gradient(0deg,rgba(226,27,35,.18),rgba(226,27,35,.02)),url("assets/rhino-overhead.jpg");background-position:center center}
.classes{background-image:linear-gradient(rgba(244,242,237,.91),rgba(244,242,237,.97)),url("assets/rhino-deadlift.jpg");background-position:center 52%}
.standards{background-image:linear-gradient(rgba(6,6,6,.86),rgba(6,6,6,.94)),url("assets/rhino-bike-bw.jpg");background-size:cover;background-position:center}
.coach-badge{background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.72)),url("assets/rhino-bike-color.jpg");background-size:cover;background-position:center;place-content:end center;padding-bottom:14%}
.coach-badge span{color:#fff;text-shadow:0 3px 12px #000}.coach-badge strong{text-shadow:0 3px 18px #000}
.contact{background-image:linear-gradient(90deg,rgba(201,10,18,.98) 0%,rgba(226,27,35,.90) 48%,rgba(70,0,3,.76) 100%),url("assets/rhino-ropes.jpg");background-position:center 42%}
@media(max-width:720px){.hero{background-position:58% center;background-image:linear-gradient(90deg,rgba(3,3,3,.96) 0%,rgba(3,3,3,.80) 66%,rgba(3,3,3,.48) 100%),url("assets/rhino-overhead.jpg")}.classes{background-position:55% center}.standards{background-position:center}.coach-badge{background-position:center}.contact{background-position:58% center}}

/* Expanded class information */
.class-grid{grid-template-columns:repeat(2,1fr)}
.class-card{min-height:440px}
.class-card:nth-child(even){border-right:0}
.class-card:nth-child(-n+2){border-bottom:1px solid #d0cec8}
.class-card h3{margin:2.5rem 0 1rem}
.class-card ul{margin-top:auto}
.class-best{margin:1rem 0 0;padding:.85rem 1rem;border-left:3px solid var(--red);background:rgba(255,255,255,.68);font-size:.86rem;line-height:1.45;color:#333}
.red-card .class-best{border-left-color:#111;background:rgba(0,0,0,.16);color:#fff}
@media(max-width:720px){.class-grid{grid-template-columns:1fr}.class-card{min-height:0;border-right:0}.class-card:nth-child(-n+3){border-bottom:1px solid #d0cec8}.class-card h3{margin:2.5rem 0 1rem}}

/* Schedule */
.schedule{background:#0b0b0b;color:#fff;position:relative;overflow:hidden}
.schedule:before{content:"WEEKLY";position:absolute;right:-1rem;top:1rem;font:900 clamp(8rem,18vw,18rem)/1 var(--display);color:transparent;-webkit-text-stroke:1px #ffffff0c;pointer-events:none}
.schedule-heading,.pricing-heading{align-items:end;gap:3rem}
.schedule-heading>p,.pricing-heading>p{max-width:420px;color:#aaa;margin:0}
.schedule-wrap{position:relative;overflow-x:auto;border:1px solid #2d2d2d;box-shadow:0 24px 60px #0008}
.schedule-table{width:100%;min-width:980px;border-collapse:collapse;background:#111}
.schedule-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.schedule-table th,.schedule-table td{padding:1.1rem 1rem;border-right:1px solid #2d2d2d;border-bottom:1px solid #2d2d2d;text-align:left}
.schedule-table thead th{background:var(--red);font:800 1.15rem var(--display);text-transform:uppercase;letter-spacing:.05em}
.schedule-table tbody th{width:180px;color:#aaa;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}
.schedule-table td{font-size:.9rem}
.schedule-table td b{font-family:var(--display);font-size:1.15rem;text-transform:uppercase}
.schedule-table td small{display:block;color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.schedule-table .open-gym-row td{background:#1c1c1c;color:#bdbdbd;font-weight:800;text-transform:uppercase;letter-spacing:.12em;text-align:center}
.weekend-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:1rem;margin-top:1rem}
.weekend-card{border:1px solid #333;padding:2rem;background:#111}
.day-label{margin:0 0 1.2rem;color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}
.saturday{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.saturday .day-label{grid-column:1/-1}
.saturday div{border-left:3px solid var(--red);padding-left:1rem}
.saturday time{display:block;color:#aaa;font-size:.82rem}
.saturday strong,.sunday>strong{font:800 2.2rem var(--display);text-transform:uppercase}
.sunday>strong{color:var(--red)}
.sunday p:last-child{color:#999;margin:.4rem 0 0}

/* Pricing */
.pricing{background:var(--paper);color:var(--ink)}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #d1cfc8}
.price-card{min-height:330px;padding:2rem;display:flex;flex-direction:column;border-right:1px solid #d1cfc8;border-bottom:1px solid #d1cfc8;background:#fff}
.price-card:nth-child(3n){border-right:0}.price-card:nth-child(n+4){border-bottom:0}
.price-label{color:var(--red);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.2rem}
.price-card h3{font:800 2.1rem/1.15 var(--display);text-transform:uppercase;margin:0}
.price{font:900 clamp(4rem,7vw,6.5rem)/1 var(--display);margin:1rem 0 .25rem;letter-spacing:0}
.price-card>p:not(.price-label){color:#666;margin:.25rem 0 1.5rem}
.price-link{margin-top:auto;border-top:1px solid #ddd;padding-top:1rem;color:var(--red);font-weight:800;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;display:flex;justify-content:space-between}
.trial-card{background:#111;color:#fff}.trial-card>p:not(.price-label){color:#bbb}.trial-card .price-link{border-color:#333}
.featured-price{background:var(--red);color:#fff}.featured-price .price-label,.featured-price>p:not(.price-label),.featured-price .price-link{color:#fff}.featured-price .price-link{border-color:#ffffff66}
.foundation-offer{margin-top:1rem;padding:1.5rem 2rem;background:#111;color:#fff;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:2rem;border-left:6px solid var(--red)}
.foundation-offer span{display:block;color:var(--red);font-weight:900;font-size:.75rem;letter-spacing:.14em}.foundation-offer strong{display:block;font:800 2rem var(--display)}.foundation-offer p{color:#aaa;margin:0}.foundation-offer .button{min-width:210px}

@media(max-width:1000px){.price-grid{grid-template-columns:repeat(2,1fr)}.price-card,.price-card:nth-child(3n){border-right:1px solid #d1cfc8;border-bottom:1px solid #d1cfc8}.price-card:nth-child(2n){border-right:0}.price-card:nth-child(n+5){border-bottom:0}.foundation-offer{grid-template-columns:1fr 1fr}.foundation-offer .button{grid-column:1/-1;width:max-content}}
@media(max-width:720px){.schedule-heading,.pricing-heading{display:block}.schedule-heading>p,.pricing-heading>p{margin-top:1.5rem}.schedule-wrap:after{content:"Swipe to see the full week →";display:block;position:sticky;left:0;padding:.7rem 1rem;background:#202020;color:#bbb;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.weekend-grid{grid-template-columns:1fr}.saturday{grid-template-columns:1fr}.saturday .day-label{grid-column:auto}.price-grid{grid-template-columns:1fr}.price-card,.price-card:nth-child(2n),.price-card:nth-child(3n),.price-card:nth-child(n+5){border-right:0;border-bottom:1px solid #d1cfc8}.price-card:last-child{border-bottom:0}.foundation-offer{grid-template-columns:1fr;gap:1rem}.foundation-offer .button{grid-column:auto;width:100%}}

/* Online membership payment */
.button-outline{border-color:#fff;background:rgba(0,0,0,.38);backdrop-filter:blur(4px)}
.button-outline:hover{background:#fff;color:#111}
.payment-row{background:#fff;color:#111;padding-left:1rem;padding-right:1rem}
.payment-row:hover{background:#111;color:#fff}
.payment-row span{color:var(--red);font-weight:800}
@media(max-width:720px){.hero-actions .button-outline{width:100%}.payment-row{margin-top:.75rem}}

/* Keep display lettering legible and give longer headings room to wrap. */
.section h2{overflow-wrap:normal}
.section-heading{gap:2rem;flex-wrap:wrap}
.section-heading>*{min-width:0;max-width:100%}
.hero{height:auto;min-height:max(790px,100svh)}
.hero-copy,.coach-copy,.contact-copy,.why-panel{min-width:0}
.class-card h3,.standard h3,.price-card h3{letter-spacing:.015em;line-height:1.15}
.hero-stat strong,.coach-badge strong{line-height:1;letter-spacing:.015em}
@media(max-width:720px){
  .hero{min-height:720px}
  .section h2{font-size:clamp(2.25rem,10.5vw,4.5rem)}
  .section-heading{align-items:flex-start;gap:1rem}
}
