:root{
  --navy:#0B1424;--night:#060B16;--gold:#F5B942;--ink:#0B1424;--white:#fff;
  --steel:#A9B8CE;--rule:rgba(255,255,255,.2);
  --display:"Big Shoulders Display","Barlow Condensed",Impact,sans-serif;
  --body:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(20px,5vw,72px);--max:1320px;--ease:cubic-bezier(.2,.9,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--navy);color:var(--white);font:450 1.0625rem/1.65 var(--body);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:10px 16px;font-weight:700;z-index:100}
.skip:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{text-wrap:balance;font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.88;margin:0;letter-spacing:.005em}
h1{font-size:clamp(2.9rem,10.6vw,9rem)}
h2{font-size:clamp(2.6rem,7vw,6.4rem)}
h3{font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:.95}
p{margin:0 0 1em;max-width:62ch}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}

/* header */
.header{position:sticky;top:0;z-index:50;background:var(--navy);border-bottom:2px solid var(--gold)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px;transition:height .25s}
.header.is-scrolled .wrap{height:60px}
.logo{display:block;height:100%;padding-block:8px}
.logo img{height:100%;width:auto}
.nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,38px);font-weight:700;font-size:.95rem}
.nav a{text-decoration:none;position:relative;padding-block:6px}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:not(.btn):hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.menu-btn{display:none;background:none;border:2px solid var(--white);color:var(--white);font:800 .9rem var(--body);padding:9px 14px;cursor:pointer}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 26px;background:var(--gold);color:var(--ink);border:2px solid var(--gold);font:800 1rem/1 var(--body);text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translate(-4px,-4px);box-shadow:4px 4px 0 var(--white)}
.btn:active{transform:none;box-shadow:none}
.btn.ghost{background:transparent;color:var(--white);border-color:var(--white)}
.btn.ghost:hover{box-shadow:4px 4px 0 var(--gold)}
.btn.sm{padding:11px 18px;font-size:.9rem}
.cta-row{display:flex;flex-wrap:wrap;gap:14px}

/* hero */
.hero{position:relative;overflow:hidden;padding:clamp(36px,7vw,96px) 0 clamp(70px,10vw,130px)}
.hero-ghost{position:absolute;right:-3vw;top:-2vw;margin:0;font:800 clamp(16rem,46vw,46rem)/.78 var(--display);color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.1);pointer-events:none;user-select:none;transform:translate3d(0,calc(var(--sy,0)*-.12px),0);will-change:transform}
.hero .wrap{position:relative}
.hero .grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--pad);align-items:start;margin-top:clamp(20px,3vw,44px)}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.04em}
.hero h1 .line>span{display:block;transform:translateY(110%);animation:rise .85s var(--ease) forwards;animation-delay:calc(.08s + var(--i)*.13s)}
@keyframes rise{to{transform:none}}
.lede{font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.5;max-width:46ch;margin:0 0 clamp(20px,3vw,32px)}
.photo{position:relative;width:clamp(230px,26vw,340px);margin:0 18px 18px 0}
.photo::before{content:"";position:absolute;inset:18px -18px -18px 18px;background:var(--gold);transform-origin:bottom right;animation:block .8s .45s var(--ease) both}
@keyframes block{from{transform:scale(0)}}
.photo img{position:relative;width:100%}
.badge{position:absolute;left:-64px;bottom:-44px;width:150px;height:150px;z-index:2}
.badge .ring{transform-box:fill-box;transform-origin:50% 50%;animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hero.sub{padding-bottom:clamp(60px,8vw,110px)}
.hero.sub h1{font-size:clamp(3.2rem,11vw,9.5rem)}
.hero.sub .photo{width:clamp(200px,22vw,300px)}

/* ticker band */
.band{position:relative;z-index:3;background:var(--gold);color:var(--ink);overflow:hidden;transform:rotate(-1.8deg);margin-inline:-3vw;padding-block:clamp(10px,1.6vw,20px);border-block:3px solid var(--white)}
.track{display:flex;width:max-content;animation:marquee 30s linear infinite}
.band.rev{transform:rotate(1.8deg)}
.band.rev .track{animation-direction:reverse}
.grp{display:flex;flex:none}
.grp span{display:flex;align-items:center;font:800 clamp(2.4rem,6vw,5.5rem)/1 var(--display);text-transform:uppercase;white-space:nowrap}
.grp span::after{content:"";width:.32em;height:.32em;background:var(--ink);margin-inline:.6em;transform:rotate(45deg)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* sections */
.section{padding-block:clamp(72px,11vw,150px)}
.section.alt{background:var(--gold);color:var(--ink)}
.section.deep{background:var(--night)}
.lead{font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.5;margin-top:clamp(18px,2.4vw,30px);max-width:52ch}

/* service rows */
.rows{margin-top:clamp(32px,5vw,64px);border-bottom:2px solid var(--white)}
.row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--pad);align-items:center;padding-block:clamp(26px,3.6vw,52px);padding-inline:max(var(--pad),calc((100% - var(--max))/2 + var(--pad)));border-top:2px solid var(--white);text-decoration:none;color:var(--white);overflow:hidden;isolation:isolate;transition:color .3s}
.row::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);transition:transform .35s var(--ease);z-index:-1}
.row:hover,.row:focus-visible{color:var(--ink)}
.row:hover::before,.row:focus-visible::before{transform:none}
.row h3{font-size:clamp(2.4rem,7.4vw,6.8rem);line-height:.9}
.row p{margin:14px 0 0;max-width:48ch;font-size:1.02rem}
.row figure{margin:0;width:clamp(96px,16vw,220px);aspect-ratio:3/4;overflow:hidden;transition:transform .35s var(--ease)}
.row figure img{width:100%;height:100%;object-fit:cover}
.row:hover figure,.row:focus-visible figure{transform:rotate(-5deg) scale(1.06)}

/* method: teach / train / proof */
.proof{background:var(--night)}
.proof .stage{padding-block:clamp(72px,11vw,150px)}
.items{list-style:none;margin:0;padding:0}
.item{border-top:2px solid var(--rule)}
.word{display:block;color:var(--gold);font:800 clamp(4.4rem,19vw,17rem)/.85 var(--display);text-transform:uppercase;transition:color .4s,transform .5s var(--ease)}
.note-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .5s var(--ease)}
.note-wrap>div{overflow:hidden;min-height:0}
.note{font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.4;max-width:36ch;margin:.4em 0 .6em}
.progress{height:4px;background:var(--rule);margin-top:clamp(16px,2vw,28px);display:none}
.progress i{display:block;height:100%;background:var(--gold);width:calc(var(--p,0)*100%)}
.proof.is-pinned{height:320vh}
.proof.is-pinned .stage{position:sticky;top:0;height:100vh;height:100svh;padding-block:76px 0;display:flex;align-items:center}
.proof.is-pinned .stage .wrap{width:100%}
.proof.is-pinned .progress{display:block}
.is-pinned .word{color:rgba(255,255,255,.18)}
.is-pinned .item.is-on .word{color:var(--gold);transform:translateX(1.2vw)}
.is-pinned .note-wrap{grid-template-rows:0fr}
.is-pinned .item.is-on .note-wrap{grid-template-rows:1fr}

/* about / split */
.about-grid,.split{display:grid;gap:clamp(32px,6vw,96px);align-items:center}
.about-grid{grid-template-columns:auto minmax(0,1fr)}
.split{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}
.split h2{font-size:clamp(2.4rem,5.4vw,5rem)}
.checks{list-style:none;padding:0;margin:28px 0 0}
.checks li{padding:14px 0 14px 34px;border-top:2px solid var(--rule);position:relative;font-weight:600}
.checks li:last-child{border-bottom:2px solid var(--rule)}
.checks li::before{content:"";position:absolute;left:0;top:1.35em;width:14px;height:14px;background:var(--gold);transform:rotate(45deg)}

/* areas */
.cities{list-style:none;padding:0;margin:clamp(28px,4vw,56px) 0 0;display:flex;flex-wrap:wrap;gap:0 .45em}
.cities li{font:800 clamp(3rem,10vw,9rem)/1 var(--display);text-transform:uppercase;transition:transform .25s var(--ease),color .25s}
.cities li:not(:last-child)::after{content:"";display:inline-block;width:.16em;height:.16em;background:var(--ink);transform:rotate(45deg);margin:0 .12em 0 .42em;vertical-align:.28em}
.cities li:hover{color:var(--white);transform:skewX(-8deg)}
.alt .btn{background:var(--ink);color:var(--white);border-color:var(--ink)}
.alt .btn:hover{box-shadow:4px 4px 0 var(--white)}

/* faq */
.faq{margin-top:clamp(28px,4vw,56px)}
.faq details{border-top:2px solid var(--rule)}
.faq details:last-child{border-bottom:2px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font:800 clamp(1.15rem,2vw,1.5rem)/1.25 var(--body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:800 2.4rem/1 var(--display);color:var(--gold);transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding-bottom:22px;margin:0;color:var(--steel)}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px)}
.contact ul{list-style:none;padding:0;margin:28px 0 0}
.contact li{padding:12px 0;border-top:2px solid var(--rule);font-weight:600}
.contact li:last-child{border-bottom:2px solid var(--rule)}
.contact li a{text-decoration:none;font-size:1.3rem}
.contact li a:hover{color:var(--gold)}
form{display:grid;gap:22px}
label{display:grid;gap:8px;font-weight:700;font-size:.95rem}
input,select,textarea{font:inherit;color:var(--white);background:transparent;border:0;border-bottom:3px solid var(--white);padding:12px 2px;border-radius:0;width:100%}
select option{color:#000}
textarea{min-height:140px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:0;border-bottom-color:var(--gold);background:rgba(245,185,66,.08)}
#form-note{margin:0;color:var(--steel);font-size:.95rem}

/* footer + mobile bar */
footer{background:var(--night);border-top:2px solid var(--gold);padding-block:clamp(48px,7vw,88px) 40px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,72px)}
footer img{width:90px;height:auto;margin-bottom:18px}
footer h2{font-size:1.5rem;color:var(--gold);margin-bottom:14px}
footer ul{list-style:none;padding:0;margin:0}
footer li{padding:5px 0}
footer a{text-decoration:none}
footer a:hover{color:var(--gold)}
.tag{font:800 1.8rem/1 var(--display);text-transform:uppercase;margin:0 0 12px}
.legal{margin:clamp(32px,5vw,56px) 0 0;color:var(--steel);font-size:.9rem;max-width:none}
.mobile-cta{display:none;position:fixed;left:0;right:0;bottom:0;box-sizing:border-box;align-items:center;z-index:60;background:var(--navy);border-top:2px solid var(--gold);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px;transform:translateY(110%);transition:transform .3s var(--ease)}
.mobile-cta.is-visible{transform:none}
.mobile-cta a{flex:1 1 0;min-width:0;box-sizing:border-box;text-align:center;padding:11px 4px;font-size:.84rem;line-height:1.1;white-space:nowrap;overflow:hidden;font-weight:800;text-decoration:none;background:var(--gold);color:var(--ink)}
.mobile-cta a:first-child{flex:.8 1 0;background:transparent;color:var(--white);border:2px solid var(--white)}

@media (max-width:900px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);border-bottom:2px solid var(--gold);padding:8px var(--pad) 20px}
  .nav.is-open{display:flex}
  .nav a{padding:14px 0;border-top:1px solid var(--rule)}
  .nav a::after{display:none}
  .nav .btn{margin-top:14px;border-top:2px solid var(--gold)}
  .hero .grid,.about-grid,.split,.contact-grid,.foot-grid{grid-template-columns:1fr}
  .hero .photo{justify-self:start;margin-top:20px}
  .badge{left:auto;right:-14px;bottom:-34px;width:120px;height:120px}
  .hero .photo,.hero.sub .photo{width:calc(100% - 18px);max-width:380px}
  .row{grid-template-columns:minmax(0,1fr);gap:20px}
  .row figure{order:-1;width:100%;aspect-ratio:16/10}
  .row h3{font-size:clamp(2.2rem,11vw,4rem)}
  .row:hover figure,.row:focus-visible figure{transform:none}
}
@media (max-width:760px){
  html,body{overflow-x:clip}
  .cities{gap:0 .3em}
  .cities li{font-size:clamp(2.2rem,9.4vw,3.4rem)}
  .cities li:not(:last-child)::after{margin:0 0 0 .3em}
  .proof .stage{padding-block:56px}
  .mobile-cta{display:flex}
  footer{padding-bottom:100px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hero h1 .line>span{transform:none}
  .hero-ghost{transform:none}
}

.gallery{display:grid;gap:14px;margin-top:clamp(24px,4vw,48px);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.gallery figure{margin:0;overflow:hidden;aspect-ratio:4/3;background:var(--night)}
.gallery.g1{grid-template-columns:minmax(0,520px)}
.gallery.g1 figure{aspect-ratio:3/4}
.gallery img{width:100%;height:100%;object-fit:cover}
.logo img{object-fit:contain}
