:root{
  --background:#EDEAE4;--foreground:#0E0E0E;
  --brand:#1E1E1E;--brand-deep:#0E0E0E;--brand-light:#8C877F;--accent-teal:#5E5A54;
  --surface:#E4E0D9;--surface-card:#F3F1ED;--ink:#0E0E0E;--ink-soft:#4A4743;
  --ghost:#CFCAC2;--hairline:#D9D4CC;--on-brand:#ffffff;
  --radius-card:1.5rem;--radius-card-lg:2rem;--radius-pill:62.5rem;
}
html{font-size:16px}
@media (max-width:1920px){html{font-size:0.833333vw}}
@media (max-width:1440px){html{font-size:1.111111vw}}
@media (max-width:1024px){html{font-size:1.5625vw}}
@media (max-width:640px){html{font-size:4.444444vw}}
html.locked{position:relative;overflow:hidden;height:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none;padding:0}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
input,textarea{font:inherit;color:inherit}
body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;min-height:100vh;background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;line-height:1.5}
:focus-visible{outline:2px solid var(--brand-light);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
main{width:100%;overflow-x:clip;padding:.5rem}
@media (min-width:640px){main{padding:.75rem}}
.med{font-weight:500}
.tight{letter-spacing:-0.025em}
.ico{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* reveal clip primitives */
.rv-line{display:block;overflow:hidden;padding-bottom:.14em}
.rv-word{display:inline-block;overflow:hidden;vertical-align:top;padding:.1em 0 .14em;margin:-.1em 0 -.14em}
.rv-in{display:inline-block;will-change:transform}
.rv-line .rv-in{display:block}
.rv-fade{display:inline-block}

/* shared */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft)}
.eyebrow i{width:.375rem;height:.375rem;border-radius:var(--radius-pill);background:var(--brand)}
.eyebrow.light{color:rgba(255,255,255,.7)}
.eyebrow.light i{background:var(--brand-light)}
.pill{display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius-pill);padding:.875rem 1.75rem;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;transition:background .25s,color .25s}
.pill .ico{width:1rem;height:1rem}
.pill--light{background:#fff;color:var(--brand-deep)}
.pill--light:hover{background:var(--brand-light);color:#fff}
.pill--solid{background:var(--ink);color:#fff}
.pill--solid:hover{background:var(--brand-deep)}
.arrow-btn{display:grid;place-items:center;width:3rem;height:3rem;border-radius:var(--radius-pill);border:1px solid var(--hairline);transition:background .25s,color .25s,border-color .25s}
@media (min-width:640px){.arrow-btn{width:3.5rem;height:3.5rem}}
.arrow-btn .ico-w{display:grid;place-items:center}
.arrow-btn svg{width:1.25rem;height:1.25rem}
.arrow-btn.outline{color:var(--ink)}
.arrow-btn.outline:hover{border-color:var(--ink)}
.arrow-btn.solid{background:var(--ink);border-color:var(--ink);color:#fff}
.arrow-btn.solid:hover{background:var(--brand-deep)}
.dots{display:flex;gap:.5rem}
.dot{padding:.375rem}
.dot span{display:block;height:.375rem;width:.375rem;border-radius:var(--radius-pill);background:var(--ghost);transition:width .35s,background .35s}
.dot[aria-current="true"] span{width:1.25rem;background:var(--ink)}
.dots.light .dot span{background:rgba(255,255,255,.4)}
.dots.light .dot[aria-current="true"] span{background:#fff}
.brand{display:inline-flex;white-space:nowrap;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em}
.brand svg{flex:none;width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

/* hero */
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius-card-lg);background:var(--brand-deep);color:#fff;display:flex;flex-direction:column;height:calc(100svh - 1rem);min-height:36rem}
@media (min-width:640px){.hero{height:calc(100svh - 1.5rem)}}
.plate{position:absolute;inset:0;z-index:-10}
.plate-layer{position:absolute;left:0;right:0;top:-16%;height:132%;width:100%;will-change:transform}
.plate-layer img{width:100%;height:100%;object-fit:cover}
.plate-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(14,14,14,.65),rgba(14,14,14,.35),rgba(14,14,14,.75))}
.hdr{display:flex;align-items:center;padding:1.5rem 1.5rem 0;font-size:.75rem}
@media (min-width:640px){.hdr{padding:2rem 2.5rem 0}}
.hdr-l{flex:1;display:none;gap:2rem}
@media (min-width:1024px){.hdr-l{display:flex}}
.hdr-l a{opacity:.9;transition:opacity .2s}.hdr-l a:hover{opacity:1}
.hdr-c{flex:1;display:flex}
@media (min-width:1024px){.hdr-c{justify-content:center}}
.hdr-r{flex:1;display:flex;justify-content:flex-end;align-items:center;gap:1rem}
@media (min-width:640px){.hdr-r{gap:1.25rem}}
.book-link{display:none;text-transform:uppercase;letter-spacing:.025em}
.book-link:hover{text-decoration:underline}
@media (min-width:640px){.book-link{display:inline}}
.burger{display:grid;place-content:center;gap:5px;width:2.5rem;height:2.5rem;border-radius:var(--radius-pill);background:rgba(255,255,255,.15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s}
.burger:hover{background:rgba(255,255,255,.25)}
.burger i{display:block;width:1rem;height:1px;background:#fff}
.hero-title{padding:1rem 1.5rem 0}
@media (min-width:640px){.hero-title{padding:1rem 2.5rem 0}}
.hero-title h1{font-size:12.5vw;font-weight:500;text-transform:uppercase;line-height:.85;letter-spacing:-0.02em;white-space:nowrap}
.hero-bot{margin-top:auto;padding:0 1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:640px){.hero-bot{padding:0 2.5rem 2.5rem;flex-direction:row;justify-content:space-between;align-items:flex-end}}
.tagline{font-size:2.4rem;font-weight:500;text-transform:uppercase;line-height:.95;letter-spacing:-0.025em;color:rgba(255,255,255,.85)}
.hero-right{display:flex;align-items:flex-end;gap:1rem}
.slider{display:none;width:16rem;flex-direction:column;gap:.75rem}
@media (min-width:768px){.slider{display:flex}}
.glass{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.1);padding:.75rem;border-radius:var(--radius-card);box-shadow:0 .75rem 2rem rgba(14,14,14,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.slider-stack{display:grid}
.cc{grid-area:1/1;display:flex;gap:.75rem;align-items:center}
.cc img{width:3.5rem;height:3.5rem;border-radius:.75rem;object-fit:cover;flex:none}
.cc b{display:block;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}
.cc span.t{display:block;font-size:.7rem;text-transform:uppercase;opacity:.8}
.cc u{display:inline-block;font-size:.65rem;margin-top:.25rem}
.member{display:flex;gap:.75rem;align-items:stretch;width:100%;max-width:20rem}
@media (min-width:640px){.member{max-width:15rem}}
.member-l{flex:1;display:flex;flex-direction:column;justify-content:space-between}
.member-l strong{font-size:1.875rem;font-weight:500;line-height:1}
.avs{display:flex}
.avs i{width:1.25rem;height:1.25rem;border-radius:var(--radius-pill);border:1px solid rgba(14,14,14,.4)}
.avs i+i{margin-left:-.5rem}
.member-l small{font-size:.65rem;opacity:.8;margin-top:.5rem}
.member img{width:4rem;aspect-ratio:3/4;object-fit:cover;border-radius:.75rem}

/* trust */
.trust{position:relative;isolation:isolate;overflow:hidden;background:var(--background);padding:4rem 1.5rem}
@media (min-width:640px){.trust{padding:5rem 2.5rem}}
.badges{position:relative;z-index:20;display:flex;flex-direction:column;gap:1.5rem;justify-content:space-between}
@media (min-width:640px){.badges{flex-direction:row;align-items:flex-start}}
.pct{width:7rem;height:7rem;border-radius:var(--radius-pill);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
@media (min-width:640px){.pct{width:8rem;height:8rem}}
.pct b{font-size:1.5rem;font-weight:500;line-height:1.1}
.pct small{font-size:.6rem;color:var(--ink-soft);max-width:7em;line-height:1.25}
.bcard{display:flex;gap:1rem;max-width:28rem;border-radius:var(--radius-card);background:var(--surface);padding:1.25rem}
@media (min-width:640px){.bcard{gap:1.25rem;padding:1.5rem}}
.bcard .chip{align-self:flex-start;border-radius:.75rem;background:var(--background);padding:.5rem 1rem;font-size:1.25rem;font-weight:500}
.bcard h3{font-size:1.125rem;font-weight:500}
.bcard p{font-size:.75rem;color:var(--ink-soft);line-height:1.625;margin-top:.5rem}
.ghost{position:relative;z-index:0;pointer-events:none;user-select:none;max-width:88rem;margin:3rem auto 0;font-size:8.2vw;font-weight:500;text-transform:uppercase;line-height:1.02;letter-spacing:-0.025em}
.ghost .row{display:flex;justify-content:space-between}
.gw{display:inline-block;color:var(--ghost)}
.gw.ink{color:var(--ink)}
.gw .rv-clip{display:block;overflow:hidden;padding-bottom:.12em}
.gw .rv-clip span{display:block}
.coach-wrap{position:relative;z-index:10;display:flex;justify-content:center;margin-top:2rem}
@media (min-width:640px){.coach-wrap{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-50%)}}
.coach{position:relative;width:13rem;aspect-ratio:3/4;border-radius:var(--radius-card);background:var(--brand);overflow:hidden}
@media (min-width:640px){.coach{width:16rem}}
.coach img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.glass-cap{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;border-radius:.75rem;background:rgba(14,14,14,.4);color:#fff;padding:.5rem .75rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.glass-cap b{display:block;font-size:.875rem;font-weight:500}
.glass-cap span{display:block;font-size:.65rem;opacity:.8}
.ctrls{position:relative;z-index:20;margin-top:3rem;display:flex;justify-content:space-between;align-items:center}
@media (min-width:640px){.ctrls{margin-top:6rem}}

/* programs */
.programs{background:var(--surface);padding:6rem 1.5rem}
@media (min-width:640px){.programs{padding:6rem 2.5rem}}
.h2{font-size:3rem;font-weight:500;line-height:.95;letter-spacing:-0.025em;margin-top:1rem}
.plist{margin-top:3.5rem}
.plist>li{border-top:1px solid var(--hairline)}
.plist>li:last-child{border-bottom:1px solid var(--hairline)}
.prog{display:block;transition:background .2s}
.prog:focus-visible{background:var(--background)}
.prog-in{display:flex;align-items:center;gap:1.5rem;padding:1.75rem 0}
.prog .n{width:2.5rem;font-size:.875rem;font-weight:500;color:var(--ink-soft);flex:none}
.prog .m{flex:1}
.prog h3{font-size:1.5rem;font-weight:500;letter-spacing:-0.025em}
@media (min-width:640px){.prog h3{font-size:1.875rem}}
.prog p{font-size:.875rem;color:var(--ink-soft)}
.prog .circ{width:2.75rem;height:2.75rem;border-radius:var(--radius-pill);border:1px solid var(--hairline);display:grid;place-items:center;overflow:hidden;flex:none}
.prog .circ svg{width:1.25rem;height:1.25rem}

/* facilities */
.fac{background:var(--background);border-radius:var(--radius-card-lg);margin-top:-2.5rem;padding:4rem 1.5rem 5rem;position:relative}
@media (min-width:640px){.fac{padding:4rem 2.5rem 5rem}}
.fac-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:end}
@media (min-width:768px){.fac-grid{grid-template-columns:1fr 1fr}}
.fac-intro{max-width:24rem}
.fac-icon{width:4rem;height:4rem;border-radius:var(--radius-card);object-fit:cover}
.fac-intro .h2{margin-top:1.5rem}
.fac-body{font-size:.875rem;color:var(--ink-soft);max-width:20rem;margin-top:1.5rem}
.courts{display:flex;align-items:flex-end;gap:1.25rem}
.courts>figure{flex:1}
.courts>figure:nth-child(2){margin-bottom:2rem}
.court{position:relative;aspect-ratio:3/4;border-radius:var(--radius-card);overflow:hidden;background:var(--surface)}
.court img{width:100%;height:100%;object-fit:cover}
.court .glass-cap{padding:.75rem 1rem;color:#fff}
.court .glass-cap span{opacity:.85}
.court .glass-cap.blue{background:rgba(94,90,84,.55)}

/* stats */
.stats{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:5rem 1.5rem}
@media (min-width:640px){.stats{padding:5rem 2.5rem}}
.stats .h2{margin-top:1rem}
.sgrid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:2rem;row-gap:3rem;margin-top:4rem}
@media (min-width:1024px){.sgrid{grid-template-columns:repeat(4,1fr)}}
.stat{border-top:1px solid rgba(255,255,255,.2);padding-top:1.25rem}
.sv{display:block;font-size:3.75rem;font-weight:500;letter-spacing:-0.025em;line-height:1.1}
@media (min-width:640px){.sv{font-size:4.5rem}}
.sl{display:block;font-size:.875rem;color:rgba(255,255,255,.65);margin-top:.75rem}

/* testimonials */
.testi{background:var(--background);padding:5rem 1.5rem}
@media (min-width:640px){.testi{padding:6rem 2.5rem}}
.tgrid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:3.5rem}
@media (min-width:768px){.tgrid{grid-template-columns:repeat(3,1fr)}}
.tgrid>li{display:flex}
.tcard{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;border-radius:var(--radius-card);background:var(--surface);padding:1.75rem}
.tcard .q{font-size:2.25rem;color:var(--brand);line-height:1}
.tcard blockquote{font-size:1.125rem;line-height:1.625;color:var(--ink);margin-top:1rem}
.tcard figcaption{border-top:1px solid var(--hairline);padding-top:1rem;margin-top:1.5rem}
.tcard figcaption b{display:block;font-weight:500}
.tcard figcaption span{font-size:.875rem;color:var(--ink-soft)}

/* footer */
.foot{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:3.5rem 1.5rem}
@media (min-width:640px){.foot{padding:4rem 2.5rem}}
.cta{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:3.5rem;display:flex;flex-direction:column;gap:2rem}
@media (min-width:640px){.cta{flex-direction:row;justify-content:space-between;align-items:flex-end}}
.cta-t{font-size:3.75rem;font-weight:500;line-height:.92;letter-spacing:-0.025em;margin-top:1rem}
.fcols{display:grid;grid-template-columns:1fr;gap:2.5rem;padding:3.5rem 0}
@media (min-width:768px){.fcols{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.fbrand{max-width:20rem}
.fbrand .brand{font-size:1.125rem}
.fbrand p{font-size:.875rem;color:rgba(255,255,255,.65);margin-top:1rem}
.fbrand address{font-style:normal;margin-top:1.5rem;color:rgba(255,255,255,.8);font-size:.875rem;display:flex;flex-direction:column;gap:.25rem}
.fbrand address a:hover{color:#fff}
.fbrand address span{color:rgba(255,255,255,.55)}
.fnav h4{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.fnav ul{margin-top:1rem;font-size:.875rem;color:rgba(255,255,255,.8);display:flex;flex-direction:column;gap:.75rem}
.fnav a:hover,.fbar a:hover{color:#fff}
.fbar{border-top:1px solid rgba(255,255,255,.15);padding-top:2rem;font-size:.875rem;color:rgba(255,255,255,.6);display:flex;flex-direction:column;gap:1.25rem}
@media (min-width:640px){.fbar{flex-direction:row;justify-content:space-between;align-items:center}}
.fbar ul{display:flex;gap:1.25rem}

/* overlays */
.overlay{position:fixed;inset:0;visibility:hidden;pointer-events:none}
.overlay.open{visibility:visible;pointer-events:auto}
.overlay.closing{pointer-events:none}
#modal{z-index:90;display:flex;align-items:flex-end;justify-content:center;padding:.75rem}
@media (min-width:640px){#modal{align-items:center;padding:1.5rem}}
#modal .bd{position:absolute;inset:0;background:rgba(14,14,14,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.panel{position:relative;width:100%;max-height:92svh;overflow-y:auto;border-radius:var(--radius-card-lg);background:var(--surface-card);padding:1.5rem;color:var(--ink);box-shadow:0 2rem 5rem rgba(14,14,14,.35)}
@media (min-width:640px){.panel{max-width:32rem;padding:2rem}}
.ph{display:flex;justify-content:space-between;align-items:flex-start}
.ph h2{font-size:2.25rem;font-weight:500;line-height:.95;letter-spacing:-0.025em;margin-top:.75rem}
@media (min-width:640px){.ph h2{font-size:3rem}}
.xbtn{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-pill);background:var(--surface);flex:none;transition:background .2s}
.xbtn:hover{background:var(--hairline)}
.xbtn svg{width:1.25rem;height:1.25rem}
.xbtn.dk{background:rgba(255,255,255,.15)}.xbtn.dk:hover{background:rgba(255,255,255,.25)}
form{margin-top:1.75rem;display:flex;flex-direction:column;gap:1rem}
.fld label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin-bottom:.5rem}
.fld input,.fld textarea{width:100%;border-radius:.75rem;border:1px solid var(--hairline);background:var(--background);padding:.75rem 1rem;font-size:.875rem;outline:0;resize:vertical}
.fld input:focus,.fld textarea:focus{border-color:var(--brand-light);box-shadow:0 0 0 2px rgba(140,135,127,.35)}
.sbtn{align-self:flex-start;border-radius:var(--radius-pill);background:var(--ink);color:#fff;padding:.875rem 1.75rem;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;transition:background .2s,opacity .2s}
.sbtn:hover{background:var(--brand-deep)}
.sbtn:disabled{opacity:.6;cursor:default}
.ok{margin-top:2rem;border-radius:var(--radius-card);background:var(--surface);padding:1.5rem;text-align:center;display:none}
.ok .tick{width:3rem;height:3rem;margin:0 auto;border-radius:var(--radius-pill);background:var(--brand);color:#fff;display:grid;place-items:center}
.ok .tick svg{width:1.5rem;height:1.5rem}
.ok b{display:block;font-size:1.125rem;font-weight:500;margin-top:1rem}
.ok p{font-size:.875rem;color:var(--ink-soft);margin:.5rem 0 1.25rem}
.ok .sbtn{align-self:auto}
#menu{z-index:70;display:flex;flex-direction:column}
#menu .bd{position:absolute;inset:0;background:var(--brand-deep)}
.mpanel{position:relative;flex:1;display:flex;flex-direction:column;padding:.5rem;color:#fff;min-height:0}
@media (min-width:640px){.mpanel{padding:.75rem}}
.minner{flex:1;display:flex;flex-direction:column;padding:1.5rem;min-height:0;overflow-y:auto}
@media (min-width:640px){.minner{padding:1.5rem 2.5rem 2.5rem}}
.mtop{display:flex;justify-content:space-between;align-items:center}
.mnav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.5rem}
.mnav a{display:block;font-size:3rem;font-weight:500;letter-spacing:-0.025em;line-height:1.1;transition:color .2s}
@media (min-width:640px){.mnav a{font-size:4.5rem}}
.mnav a:hover{color:var(--brand-light)}
.mbot{border-top:1px solid rgba(255,255,255,.15);padding-top:2rem;display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:640px){.mbot{flex-direction:row;justify-content:space-between;align-items:center}}
.mbot ul{display:flex;gap:1.25rem;font-size:.875rem;color:rgba(255,255,255,.7)}
.mbot ul a:hover{color:#fff}

/* loader */
#loader{position:fixed;inset:0;z-index:200;background:var(--brand-deep);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}
#loader .brand{font-size:1.5rem}
#loader .brand svg{width:1.75rem;height:1.75rem}
#ld-stage{position:absolute;inset:0}

/* my story */
.story{border-radius:var(--radius-card-lg);margin-top:.75rem}
.story .fac-grid{align-items:start}
.story .fac-intro{max-width:30rem}
.story .fac-body{max-width:26rem}
.story .plist{margin-top:0}

/* halftone wordmark */
.foot{overflow:hidden}
.hwf{position:relative;margin:2.5rem -1.5rem -3.5rem;height:8rem;cursor:crosshair;touch-action:pan-y}
@media (min-width:640px){.hwf{margin:3rem -2.5rem -4rem}}
.hwf canvas{position:absolute;inset:0;width:100%;height:100%;display:block}

/* work: glass folders */
.work{background:var(--background);padding:5rem 1.5rem 6rem}
@media (min-width:640px){.work{padding:6rem 2.5rem 7rem}}
.work-grid{display:grid;grid-template-columns:1fr;gap:3rem 2.5rem;margin-top:3.5rem;justify-items:center;align-items:end}
@media (min-width:768px){.work-grid{grid-template-columns:repeat(3,1fr)}}
.gf-cell{width:100%;display:flex;justify-content:center}
.work-hint{margin-top:3.5rem;text-align:center;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft)}
.gf-root{--gf-px:0;--gf-py:0;--gf-ease:cubic-bezier(.2,.8,.2,1);--gf-spring:cubic-bezier(.34,1.36,.5,1);--gf-hinge:0deg;--gf-lift:42px;--gf-spread:0px;--gf-fan:0deg;--gf-stack:15px;
  position:relative;display:inline-block;flex:none;vertical-align:top;font-family:inherit;color:var(--ink);-webkit-tap-highlight-color:transparent;isolation:isolate}
.gf-root:hover,.gf-root:focus-within{--gf-hinge:-11deg;--gf-lift:-34px;--gf-spread:8px;--gf-fan:1.4deg;--gf-stack:10px}
.gf-root[data-open]{--gf-hinge:-24deg;--gf-lift:-96px;--gf-spread:40px;--gf-fan:5deg;--gf-stack:30px}
.gf-stage{position:absolute;left:0;top:0;width:340px;height:272px;transform-origin:0 0}
.gf-tilt{position:absolute;inset:0;transform:perspective(1400px) rotateX(calc(var(--gf-py) * -3deg)) rotateY(calc(var(--gf-px) * 4deg));transition:transform .9s var(--gf-ease)}
.gf-shadow{position:absolute;left:18px;right:18px;bottom:-6px;height:60px;border-radius:40px;background:rgba(14,14,14,.34);filter:blur(22px);transform:translateX(calc(var(--gf-px) * -8px));transition:transform .9s var(--gf-ease),opacity .9s var(--gf-ease)}
.gf-back{position:absolute;inset:0;overflow:hidden;background:linear-gradient(180deg,var(--surface) 0%,var(--hairline) 100%)}
.gf-art{position:absolute;left:-12px;top:-12px;max-width:none;transform:translate(calc(var(--gf-px) * -7px),calc(var(--gf-py) * -6px)) scale(1.02);transition:transform 1.1s var(--gf-ease),opacity 1.2s var(--gf-ease),filter 1.2s var(--gf-ease)}
canvas.gf-art{opacity:0;filter:blur(14px) saturate(.6)}
canvas.gf-art[data-ready]{opacity:1;filter:none}
.gf-back-sheen{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 22%),radial-gradient(120% 80% at 80% 0%,rgba(255,255,255,.16),rgba(255,255,255,0) 60%);pointer-events:none}
.gf-rim{position:absolute;left:0;top:0;max-width:none;overflow:visible;pointer-events:none;fill:none}
.gf-back-rim{width:340px;height:272px}
.gf-back-rim path{stroke:rgba(255,255,255,.45);stroke-width:1}
.gf-files{position:absolute;inset:0;z-index:5;pointer-events:none;clip-path:inset(-400px -400px 10px -400px)}
.gf-sheet{box-sizing:border-box;position:absolute;left:34px;top:96px;width:272px;height:184px;border-radius:16px;overflow:hidden;pointer-events:auto;
  background:linear-gradient(180deg,#fff 0%,var(--surface) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 .5px rgba(14,14,14,.12),0 10px 26px -8px rgba(14,14,14,.28);
  transform-origin:50% 100%;
  transform:translate(calc(var(--gf-jx) + var(--gf-slot) * var(--gf-spread)),calc(var(--gf-lift) + var(--gf-depth) * var(--gf-stack) * -1)) rotate(calc(var(--gf-jr) + var(--gf-slot) * var(--gf-fan)));
  transition:transform .75s var(--gf-spring) calc(var(--gf-depth) * 40ms),box-shadow .4s var(--gf-ease),translate .9s var(--gf-ease),opacity .9s var(--gf-ease)}
.gf-sheet--art{background:var(--brand-deep)}
.gf-root[data-open] .gf-sheet:hover{
  transform:translate(calc(var(--gf-jx) + var(--gf-slot) * var(--gf-spread)),calc(var(--gf-lift) + var(--gf-depth) * var(--gf-stack) * -1 - 18px)) rotate(calc(var(--gf-slot) * var(--gf-fan) * .6));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 .5px rgba(14,14,14,.12),0 22px 40px -12px rgba(14,14,14,.42);transition-delay:0s}
.gf-sheet-art{position:absolute;left:0;top:0;width:272px;height:184px;max-width:none;transition:opacity .9s var(--gf-ease),filter .9s var(--gf-ease)}
canvas.gf-sheet-art{opacity:0;filter:blur(10px)}
canvas.gf-sheet-art[data-ready]{opacity:1;filter:none}
.gf-sheet--art::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(14,14,14,.5) 0%,rgba(14,14,14,0) 36%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);pointer-events:none}
.gf-sheet-head{position:absolute;left:14px;right:14px;top:11px;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:10px;white-space:nowrap}
.gf-sheet-name{overflow:hidden;text-overflow:ellipsis;font-size:12.5px;font-weight:500;letter-spacing:-.005em;color:var(--ink)}
.gf-sheet-meta{flex:none;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.gf-sheet--art .gf-sheet-name{color:#fff}
.gf-sheet--art .gf-sheet-meta{color:rgba(255,255,255,.72)}
.gf-lines{position:absolute;left:14px;right:14px;top:40px;display:flex;flex-direction:column;gap:9px}
.gf-lines i{display:block;height:5px;border-radius:3px;background:rgba(14,14,14,.08)}
.gf-lines i:first-child{height:9px;margin-bottom:4px;background:rgba(30,30,30,.22)}
.gf-front{position:absolute;left:0;top:74px;width:340px;height:198px;z-index:10;-webkit-backdrop-filter:blur(22px) saturate(1);backdrop-filter:blur(22px) saturate(1);
  transform-origin:50% 100%;transform:perspective(760px) rotateX(var(--gf-hinge));transition:transform .8s var(--gf-spring),translate 1s var(--gf-ease),opacity 1s var(--gf-ease)}
.gf-tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.5) 42%,rgba(237,234,228,.93) 100%)}
.gf-spec{position:absolute;inset:0;background:radial-gradient(260px 200px at calc(50% + var(--gf-px) * 46%) calc(30% + var(--gf-py) * 40%),rgba(255,255,255,.5),rgba(255,255,255,0) 70%);mix-blend-mode:soft-light;opacity:.9;pointer-events:none}
.gf-front-rim{width:340px;height:198px}
.gf-front-rim path{stroke-width:2.4;transition:stroke-width .3s var(--gf-ease)}
.gf-hit{position:absolute;inset:0;z-index:1;cursor:pointer;background:none;border:0}
.gf-hit:focus-visible{outline:0}
.gf-front:has(.gf-hit:focus-visible) .gf-front-rim path{stroke-width:5}
.gf-hit:focus-visible ~ .gf-label .gf-title{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.gf-label{position:absolute;left:28px;bottom:32px;z-index:2;display:flex;flex-direction:column;gap:4px;max-width:200px;pointer-events:none}
.gf-title{font-size:20px;font-weight:500;line-height:1.15;letter-spacing:-.025em;white-space:nowrap}
.gf-meta{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);white-space:nowrap}
.gf-key{box-sizing:border-box;position:absolute;right:22px;bottom:22px;z-index:12;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#fff;
  background:radial-gradient(120% 90% at 50% 0%,var(--brand) 0%,var(--brand-deep) 60%,#161616 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -3px 8px rgba(0,0,0,.35),0 0 0 1px rgba(14,14,14,.7),0 14px 22px -8px rgba(14,14,14,.55);
  transition:transform .35s var(--gf-spring),opacity .6s var(--gf-ease) .7s,scale .7s var(--gf-spring) .7s}
.gf-key:hover{transform:translateY(-2px)}
.gf-key:active{transform:scale(.93)}
.gf-glyph{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gf-root:not([data-entered]) .gf-back,.gf-root:not([data-entered]) .gf-back-rim{translate:0 22px;opacity:0}
.gf-root:not([data-entered]) .gf-sheet{translate:0 -120px;opacity:0}
.gf-root:not([data-entered]) .gf-front{translate:0 46px;opacity:0}
.gf-root:not([data-entered]) .gf-key{opacity:0;scale:.6}
.gf-root:not([data-entered]) .gf-shadow{opacity:0}
.gf-back,.gf-back-rim{transition:translate 1s var(--gf-ease),opacity .9s var(--gf-ease)}
.gf-root[data-entered] .gf-sheet{transition-delay:calc(var(--gf-depth) * 40ms),0s,calc(.18s + var(--gf-depth) * 90ms),calc(.18s + var(--gf-depth) * 90ms)}
.gf-root[data-entered] .gf-front{transition-delay:0s,.42s,.42s}
@media (prefers-reduced-motion:reduce){.gf-root *{transition-duration:0s!important;transition-delay:0s!important;animation:none!important}.gf-tilt{transform:none}}

/* logo */
.brand svg.logo{width:auto;height:.85rem;aspect-ratio:831/117;fill:currentColor;stroke:none}
#loader .brand svg.logo{width:auto;height:1.5rem}
.fbrand .brand svg.logo{height:1.15rem}

.hdr .brand svg.logo{height:1.2rem}

/* lavori: galleria della pagina progetto */
.wk-gal-sec{background:var(--background);padding:5rem 1.5rem}
@media (min-width:640px){.wk-gal-sec{padding:6rem 2.5rem}}
.wk-gal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2.5rem}
@media (min-width:900px){.wk-gal{grid-template-columns:repeat(3,minmax(0,1fr))}}
.wk-gal figure{margin:0}
.wk-gal figure:nth-child(3n+2){transform:translateY(2rem)}
.wk-back{margin-top:6rem}

/* lavori: scheda con copertina dentro la cartella */
.gf-sheet--img{background:var(--brand-deep)}
.gf-sheet--img>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.gf-sheet--img::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(14,14,14,.55) 0%,rgba(14,14,14,0) 40%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);pointer-events:none}
.gf-sheet--img .gf-sheet-name{color:#fff}
.gf-sheet--img .gf-sheet-meta{color:rgba(255,255,255,.72)}
a.gf-sheet{text-decoration:none;cursor:pointer}
a.gf-sheet:focus-visible{outline:2px solid #fff;outline-offset:3px}
/* didascalie pulite sotto le foto prodotto: niente barra, testo piccolo */
.wk-fig .court{overflow:visible;margin-bottom:2.25rem}
.wk-fig .court img{border-radius:var(--radius-card)}
.wk-fig .glass-cap{top:calc(100% + .65rem);bottom:auto;left:.25rem;right:.25rem;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--ink);padding:0}
.wk-fig .glass-cap span{color:var(--ink-soft);opacity:1}
/* hero dei lavori: su schermi stretti tieni il marchio in vista */
.wk-hero{object-position:78% 45%}

/* lavori motion: il video e le gallerie di fotogrammi */
.wk-film{background:var(--surface);padding:0 1.5rem 7rem}
@media (min-width:640px){.wk-film{padding:0 2.5rem 8rem}}
.wk-film-in{border-radius:var(--radius-card-lg);overflow:hidden;background:#000;box-shadow:0 1.5rem 3rem rgba(14,14,14,.18)}
.wk-film-in video{display:block;width:100%;height:auto}
.wk-film-in.tall{max-width:24rem;margin:0 auto}
.wk-gal.wide{grid-template-columns:repeat(1,minmax(0,1fr))}
@media (min-width:640px){.wk-gal.wide{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wk-gal.wide .court{aspect-ratio:16/9}
.wk-gal.wide figure:nth-child(3n+2){transform:none}
.wk-gal.wide figure:nth-child(2n){transform:translateY(2rem)}
.wk-gal.tall{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:900px){.wk-gal.tall{grid-template-columns:repeat(4,minmax(0,1fr))}}
.wk-gal.tall .court{aspect-ratio:9/16}
.wk-gal.tall figure:nth-child(3n+2){transform:none}
.wk-gal.tall figure:nth-child(2n){transform:translateY(2rem)}

/* lavori: progetto successivo in fondo alla pagina */
.wk-next{background:var(--background);padding:0 1.5rem 6rem}
@media (min-width:640px){.wk-next{padding:0 2.5rem 7rem}}
.wk-next-in{border-top:1px solid var(--hairline);padding-top:2.5rem}
.wk-next-link{display:flex;width:max-content;max-width:100%;align-items:center;gap:1.25rem;margin-top:1.25rem;font-size:clamp(2.75rem,7vw,6rem);font-weight:500;line-height:.9;letter-spacing:-.045em;text-transform:uppercase;color:var(--ink);transition:gap .35s ease}
.wk-next-link:hover{gap:2rem}
.wk-next-link svg{width:.7em;height:.7em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wk-next-meta{display:block;margin-top:.9rem;font-size:.85rem;color:var(--ink-soft)}

/* ---------- lingua ---------- */
.lang-btn{display:inline-flex;align-items:center;gap:.15rem;padding:.35rem .5rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:500;letter-spacing:.12em;color:inherit;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lang-btn span{padding:.2rem .35rem;border-radius:var(--radius-pill);opacity:.6;transition:opacity .2s,background .2s,color .2s}
.lang-btn span.on{opacity:1;background:#fff;color:var(--ink)}
.lang-btn--foot{background:rgba(255,255,255,.08);color:#fff}
.lang-btn--menu{background:rgba(255,255,255,.1);color:#fff}

/* ---------- servizi: cartelle, poi griglia dei lavori, poi il singolo lavoro ---------- */
.work-sub{margin-top:1.25rem;max-width:34rem;font-size:1rem;color:var(--ink-soft)}
.work>.eyebrow,.work>.h2,.work>.work-sub,.work-grid,.work-hint,.wv{transition:opacity .34s ease,transform .34s ease}
.work.is-leaving>*{opacity:0;transform:translateY(12px)}
.work.is-view>.eyebrow,.work.is-view>.h2,.work.is-view>.work-sub,.work.is-view>.work-grid,.work.is-view>.work-hint{display:none}
.wv[hidden],.wv [hidden]{display:none!important}
.wv-list,.wv-detail{transition:opacity .26s ease,transform .26s ease}
.wv.is-swap .wv-list,.wv.is-swap .wv-detail{opacity:0;transform:translateY(10px)}
.wv-back{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft);transition:color .2s}
.wv-back:hover{color:var(--ink)}
.wv-back svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wv-head{display:grid;grid-template-columns:1fr;gap:1rem;align-items:end;margin-top:1.75rem}
@media (min-width:900px){.wv-head{grid-template-columns:1.5fr 1fr}}
.wv-title{font-size:clamp(3rem,7vw,6.5rem);font-weight:500;line-height:.9;letter-spacing:-.045em}
.wv-desc{font-size:1rem;color:var(--ink-soft);max-width:26rem;padding-bottom:.5rem}
.wv-grid{display:grid;grid-template-columns:1fr;gap:2.5rem 1.5rem;margin-top:3.5rem}
@media (min-width:768px){.wv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wv-tile{display:block;width:100%;text-align:left;cursor:pointer;color:inherit}
.wv-frame{position:relative;display:block;aspect-ratio:16/9;border-radius:var(--radius-card);overflow:hidden;background:var(--brand-deep);box-shadow:0 1.25rem 2.5rem -1.5rem rgba(14,14,14,.4)}
.wv-grid--images .wv-frame{aspect-ratio:4/3}
.wv-frame video,.wv-frame img,.wv-frame canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;transition:transform .8s cubic-bezier(.22,.8,.2,1)}
.wv-frame.tall video,.wv-frame.tall img{object-fit:contain}
.wv-tile:hover .wv-frame video,.wv-tile:hover .wv-frame img{transform:scale(1.025)}
.wv-tile:focus-visible{outline:2px solid var(--ink);outline-offset:6px;border-radius:var(--radius-card)}
.wv-soon{position:absolute;left:1rem;bottom:.9rem;font-size:.65rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#fff}
.wv-cap{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.9rem}
.wv-cap b{font-size:1.05rem;font-weight:500;letter-spacing:-.01em}
.wv-cap span{font-size:.8rem;color:var(--ink-soft);text-align:right}
.wv-dhead{margin-top:1.75rem;display:grid;gap:.75rem}
.wv-dtitle{font-size:clamp(2.75rem,6.5vw,6rem);font-weight:500;line-height:.9;letter-spacing:-.045em}
.wv-dmeta{font-size:.8rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.wv-media{margin-top:2.5rem}
.wv-player{border-radius:var(--radius-card-lg);overflow:hidden;background:#000;box-shadow:0 1.75rem 3.5rem -1.5rem rgba(14,14,14,.45)}
.wv-player video{display:block;width:100%;height:auto;max-height:82vh;margin:0 auto}
.wv-player.tall{max-width:24rem;margin:0 auto}
.wv-media--images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media (min-width:900px){.wv-media--images{grid-template-columns:repeat(3,minmax(0,1fr))}}
.wv-media--images figure{margin:0;aspect-ratio:3/4;border-radius:var(--radius-card);overflow:hidden;background:var(--surface)}
.wv-media--images img{width:100%;height:100%;object-fit:cover}
.wv-dtext{margin-top:2rem;max-width:42rem;font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.55;color:var(--ink)}
.wv-book{margin-top:1.75rem;display:inline-flex;align-items:center;padding:.95rem 1.6rem;border-radius:var(--radius-pill);background:var(--ink);color:#fff;font-size:.9rem;font-weight:500}
@media (prefers-reduced-motion:reduce){.work>*,.wv,.wv-list,.wv-detail,.wv-frame video,.wv-frame img{transition:none}}

/* lavori di branding: solo il logo del brand, poi la presentazione */
.wv-frame.logo{aspect-ratio:16/10;background:var(--brand-deep);display:grid;place-items:center}
.wv-frame.logo .wv-brand{position:static;inset:auto;width:auto;max-width:62%;height:38%;object-fit:contain;transition:transform .8s cubic-bezier(.22,.8,.2,1)}
.wv-tile:hover .wv-frame.logo .wv-brand{transform:scale(1.04)}
.wv-media--deck{display:grid;gap:1.25rem}
.wv-media--deck figure{margin:0;border-radius:var(--radius-card);overflow:hidden;background:var(--brand-deep);box-shadow:0 1.5rem 3rem -1.75rem rgba(14,14,14,.45)}
.wv-media--deck img{display:block;width:100%;height:auto}
.wv-media--images figure{position:relative}

/* etichetta Edoardo Pupillo su ogni lavoro */
.ep-tag{position:absolute;left:.85rem;top:.85rem;z-index:3;display:inline-flex;align-items:center;padding:.42rem .62rem;border-radius:var(--radius-pill);background:rgba(14,14,14,.42);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}
.ep-tag img{position:static!important;display:block;width:auto!important;height:.62rem!important;transform:none!important}
.wv-player{position:relative}
.wv-player .ep-tag{left:1.1rem;top:1.1rem}
.wv-frame.logo .ep-tag{background:rgba(255,255,255,.08)}
/* four services: two by two, four in a row on wide screens */
@media (min-width:768px){.work-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1500px){.work-grid{grid-template-columns:repeat(4,1fr)}}
/* service body */
.wv-body{margin-top:3rem}
.wv-body .wv-grid{margin-top:0}
/* slides: motion + AI */
.sh-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.sh-dots{display:flex;gap:.4rem}
.sh-dot{width:1.75rem;height:.25rem;border-radius:var(--radius-pill);background:rgba(14,14,14,.14);transition:background .25s}
.sh-dot[aria-current]{background:var(--ink)}
.sh-ctr{display:flex;align-items:center;gap:.6rem}
.sh-count{font-size:.8rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink-soft);margin-right:.4rem}
.sh-arrow{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--ink);color:#fff;transition:opacity .2s,transform .2s}
.sh-arrow:hover:not(:disabled){transform:scale(1.05)}
.sh-arrow:disabled{opacity:.18;cursor:default}
.sh-arrow svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sh-arrow:focus-visible,.sh-dot:focus-visible,.sh-track:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.sh-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:var(--radius-card-lg)}
.sh-track::-webkit-scrollbar{display:none}
.sh-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.sh-media{position:relative;aspect-ratio:16/9;border-radius:var(--radius-card-lg);overflow:hidden;background:var(--brand-deep)}
.sh-media video,.sh-media img{display:block;width:100%;height:100%;object-fit:cover}
.sh-media.tall video{object-fit:contain}
.sh-media .ep-tag{left:1.1rem;top:1.1rem}
.sh-info{display:grid;gap:1.25rem;padding:1.75rem .25rem 0;max-width:62rem}
@media (min-width:900px){.sh-info{grid-template-columns:1fr 1fr;column-gap:3rem}.sh-head{grid-column:1/-1}.sh-info .wv-book{grid-column:1/-1;justify-self:start;margin-top:0}}
.sh-head{display:flex;align-items:baseline;gap:1rem}
.sh-idx{font-size:.8rem;font-weight:500;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.sh-name{font-size:clamp(1.75rem,3.4vw,2.75rem);font-weight:500;letter-spacing:-.035em;line-height:1}
.sh-text{font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.6;color:var(--ink)}
.sh-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;align-content:start}
.sh-meta div{border-top:1px solid rgba(14,14,14,.12);padding-top:.7rem}
.sh-meta dt{font-size:.75rem;color:var(--ink-soft);margin-bottom:.2rem}
.sh-meta dd{font-size:.95rem;font-weight:500}
.sh-probs h4{font-size:.8rem;font-weight:500;color:var(--ink-soft);margin-bottom:.6rem}
.sh-probs ul{display:grid;gap:.5rem}
.sh-probs li{position:relative;padding-left:1.1rem;font-size:1rem;line-height:1.45}
.sh-probs li::before{content:"";position:absolute;left:0;top:.55em;width:.4rem;height:.4rem;border-radius:50%;background:#C42B1C}
.sh-media.flow{display:flex;flex-direction:column;justify-content:center;gap:2rem;padding:clamp(1.25rem,4vw,3.5rem)}
.flow-name{font-size:clamp(1.5rem,4vw,3.25rem);font-weight:500;letter-spacing:-.04em;color:#EDEAE4}
.flow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;counter-reset:none}
.flow-steps li{display:grid;gap:.6rem;align-content:start;padding:1rem;border:1px solid rgba(237,234,228,.16);border-radius:1rem;color:#EDEAE4}
.flow-n{font-size:.75rem;color:#8C877F;font-variant-numeric:tabular-nums}
.flow-t{font-size:clamp(.8rem,1.15vw,1.05rem);font-weight:500;line-height:1.3}
@media (max-width:640px){.flow-steps{grid-template-columns:1fr;gap:.35rem}.flow-steps li{grid-template-columns:auto 1fr;padding:.55rem .8rem;gap:.8rem}.sh-media.flow{aspect-ratio:auto;gap:1rem;padding-top:3.25rem}}
/* personal branding: product page */
.pb-top{display:grid;gap:2rem;align-items:start}
@media (min-width:1100px){.pb-top{grid-template-columns:1.35fr 1fr;gap:3.5rem}}
.pb-cover{position:relative;margin:0;border-radius:var(--radius-card-lg);overflow:hidden;background:var(--brand-deep);box-shadow:0 1.75rem 3.5rem -1.75rem rgba(14,14,14,.45)}
.pb-cover img{display:block;width:100%;height:auto}
.pb-body{display:grid;gap:1rem;align-content:start}
.pb-eyebrow{font-size:.8rem;font-weight:500;color:var(--ink-soft)}
.pb-title{font-size:clamp(2rem,3.6vw,3.25rem);font-weight:500;letter-spacing:-.04em;line-height:.98}
.pb-lead{font-size:1.05rem;line-height:1.6}
.pb-langnote{font-size:.85rem;color:var(--ink-soft)}
.pb-plans{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.5rem}
.pb-plan{position:relative;display:grid;gap:.35rem;align-content:start;padding:1.15rem 1.15rem 1.25rem;border-radius:1.1rem;background:var(--surface-card);border:1px solid rgba(14,14,14,.08)}
.pb-plan.is-reco{background:var(--brand-deep);color:#EDEAE4;border-color:var(--brand-deep)}
.pb-badge{justify-self:start;font-size:.7rem;font-weight:500;padding:.25rem .55rem;border-radius:var(--radius-pill);background:#C42B1C;color:#fff;margin-bottom:.2rem}
.pb-plan-t{font-size:.95rem;font-weight:500}
.pb-price{font-size:1.9rem;font-weight:500;letter-spacing:-.03em;line-height:1.1}
.pb-plan-d{font-size:.85rem;line-height:1.45;color:var(--ink-soft)}
.pb-plan.is-reco .pb-plan-d{color:#B3ADA4}
.pb-reconote{font-size:.95rem;line-height:1.5}
.pb-body .wv-book{justify-self:start;margin-top:.25rem}
.pb-note{font-size:.85rem;color:var(--ink-soft)}
.pb-h{font-size:clamp(1.35rem,2.2vw,1.9rem);font-weight:500;letter-spacing:-.03em;margin:4rem 0 1.5rem}
.pb-list{display:grid;gap:0 2.5rem}
@media (min-width:768px){.pb-list{grid-template-columns:1fr 1fr}}
.pb-list li{display:grid;gap:.3rem;padding:1.1rem 0;border-top:1px solid rgba(14,14,14,.12)}
.pb-list b{font-size:1.05rem;font-weight:500}
.pb-list span{font-size:.95rem;line-height:1.5;color:var(--ink-soft)}
.pb-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media (min-width:900px){.pb-previews{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pb-previews figure{margin:0;border-radius:var(--radius-card);overflow:hidden;background:var(--surface);box-shadow:0 1rem 2rem -1.5rem rgba(14,14,14,.35)}
.pb-previews img{display:block;width:100%;height:auto}
/* contact form: kit or coaching */
.fld-choice{border:0;padding:0;margin:0;display:grid;gap:.5rem}
.fld-choice[hidden]{display:none}
.fld-choice legend{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin-bottom:.5rem;padding:0}
.fld .choice{display:flex;align-items:center;gap:.65rem;margin:0;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--ink);padding:.7rem .9rem;border-radius:.75rem;border:1px solid var(--hairline);cursor:pointer}
.fld .choice input{width:auto;accent-color:var(--ink)}
.fld .choice:has(input:checked){border-color:var(--ink)}
@media (prefers-reduced-motion:reduce){.sh-track{scroll-behavior:auto}.sh-arrow,.sh-dot{transition:none}}
/* keep the slide (video + text) inside one screen on wide displays */
.sh-slide>*{width:100%;max-width:min(100%,calc(66vh*1.7778));margin-inline:auto}
.sh-track{border-radius:0}
.flow-steps{list-style:none;padding:0;margin:0}
.sh-count{white-space:nowrap}
/* brand logos: always centred inside the tile, never past its edges */
.wv-frame.logo .wv-brand{position:absolute;top:50%;left:50%;translate:-50% -50%;max-width:62%;max-height:66%}
/* four services on one line on desktop, folders a little smaller */
@media (min-width:900px){.work-grid{grid-template-columns:repeat(4,minmax(0,290px));justify-content:center;gap:2.5rem 2rem}}

/* ============================================================
   Corporate theme · black, white, red accents, soft gradients
   Same structure, only the look changes.
   ============================================================ */
:root{
  --background:#f5f5f5;--foreground:#0a0a0a;
  --brand:#171717;--brand-deep:#0a0a0a;--brand-light:#8a8a8a;--accent-teal:#5a5a5a;
  --surface:#efefef;--surface-card:#fbfbfb;--ink:#0a0a0a;--ink-soft:#575757;
  --ghost:#d6d6d6;--hairline:#e3e3e3;
  --red:#c42b1c;--red-hi:#e8452f;--red-deep:#7d150b;
  --grad-ink:linear-gradient(180deg,#2b2b2b 0%,#0a0a0a 55%,#000 100%);
  --grad-red:linear-gradient(135deg,#ef5a43 0%,#c42b1c 45%,#8e1a0f 100%);
  --grad-paper:linear-gradient(180deg,#ffffff 0%,#f6f6f6 60%,#efefef 100%);
}
body{background:#f2f2f2}
::selection{background:#c42b1c;color:#fff}

/* home: black, the portrait rising out of it */
.hero{background:radial-gradient(70% 85% at 50% 40%,#262626 0%,#101010 40%,#000 78%)}
.plate-glow{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(26% 38% at 50% 30%,rgba(255,255,255,.16) 0%,rgba(255,255,255,.075) 40%,rgba(255,255,255,.02) 68%,rgba(255,255,255,0) 86%),
             radial-gradient(58% 72% at 50% 38%,rgba(46,46,48,.62) 0%,rgba(22,22,23,.35) 45%,rgba(0,0,0,0) 78%),
             radial-gradient(46% 28% at 50% 106%,rgba(196,43,28,.30) 0%,rgba(196,43,28,.09) 48%,rgba(196,43,28,0) 78%),
             radial-gradient(120% 90% at 50% 40%,rgba(0,0,0,0) 55%,rgba(0,0,0,.65) 100%)}
.plate-layer{z-index:1;top:-10%;height:110%}
.plate-layer img{object-fit:contain;object-position:50% 100%;animation:epRise 2.4s cubic-bezier(.22,.8,.2,1) 1.4s both}
@keyframes epRise{from{opacity:0;filter:brightness(0) blur(8px);transform:scale(1.035)}to{opacity:1;filter:none;transform:none}}
.plate-grad{z-index:2;background:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 58%,rgba(0,0,0,.94) 100%)}
.hero-bot{position:relative;z-index:3}
.hero-bot::before{content:"";display:block;width:3rem;height:2px;border-radius:2px;background:var(--grad-red);box-shadow:0 0 14px rgba(232,69,47,.55)}
.tagline{font-size:clamp(2rem,3.2vw,3.4rem);letter-spacing:-.03em;color:#fff}
.tagline .rv-in{background:linear-gradient(180deg,#ffffff 0%,#d9d9d9 60%,#a8a8a8 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.burger{background:rgba(255,255,255,.1)}
.burger:hover{background:rgba(196,43,28,.55)}

/* titles: deep ink with a soft fall-off */
.h2 .rv-in,.wv-title,.wv-dtitle,.pb-title,.sh-name{background:linear-gradient(180deg,#0a0a0a 0%,#2e2e2e 70%,#4a4a4a 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{color:var(--ink-soft)}
.eyebrow i{background:var(--grad-red);box-shadow:0 0 10px rgba(232,69,47,.55)}
.eyebrow.light{color:rgba(255,255,255,.66)}
.eyebrow.light i{background:var(--grad-red)}

/* services */
.work{background:radial-gradient(90% 60% at 50% 0%,#ffffff 0%,#f6f6f6 45%,#ececec 100%)}
.gf-key{background:radial-gradient(120% 90% at 50% 0%,#3a3a3a 0%,#0d0d0d 60%,#000 100%)}
.gf-key:hover{background:radial-gradient(120% 90% at 50% 0%,#f0624a 0%,#c42b1c 55%,#7d150b 100%)}

/* about: an elevated paper card */
.programs{background:transparent}
.fac,.story{background:var(--grad-paper);border:1px solid #e6e6e6;box-shadow:0 30px 60px -40px rgba(0,0,0,.35),inset 0 1px 0 #fff}
.prog .n{background:var(--grad-red);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}
.plist>li{border-color:#e4e4e4}

/* contact + footer: black with a low red glow */
.foot{background:radial-gradient(55% 70% at 88% 0%,rgba(196,43,28,.26) 0%,rgba(196,43,28,0) 62%),
                 radial-gradient(70% 90% at 0% 100%,#1d1d1d 0%,rgba(29,29,29,0) 60%),
                 linear-gradient(180deg,#0b0b0b 0%,#000 100%)}
.cta-t .rv-in{background:linear-gradient(180deg,#fff 0%,#cfcfcf 70%,#9a9a9a 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* buttons */
.pill--light{background:linear-gradient(180deg,#ffffff 0%,#e9e9e9 100%);color:#0a0a0a;box-shadow:inset 0 1px 0 #fff,0 10px 24px -14px rgba(0,0,0,.6)}
.pill--light:hover{background:var(--grad-red);color:#fff}
.pill--solid,.wv-book,.sbtn,.sh-arrow{background:var(--grad-ink);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 12px 26px -14px rgba(0,0,0,.65)}
.pill--solid:hover,.wv-book:hover,.sbtn:hover:not(:disabled),.sh-arrow:hover:not(:disabled){background:var(--grad-red)}
.wv-book,.sbtn{transition:background .25s,transform .2s}

/* work view */
.wv-frame,.sh-media,.wv-player,.pb-cover{background:linear-gradient(160deg,#1e1e1e 0%,#0a0a0a 55%,#000 100%)}
.wv-frame.logo{background:radial-gradient(60% 70% at 50% 110%,rgba(196,43,28,.32) 0%,rgba(196,43,28,0) 65%),linear-gradient(160deg,#202020 0%,#0a0a0a 55%,#000 100%)}
.sh-dot[aria-current]{background:var(--grad-red)}
.sh-meta div,.pb-list li{border-color:#e2e2e2}
.sh-media.flow{background:radial-gradient(60% 80% at 100% 0%,rgba(196,43,28,.22) 0%,rgba(196,43,28,0) 60%),linear-gradient(160deg,#1e1e1e,#000)}
.pb-plan{background:var(--grad-paper);border-color:#e3e3e3;box-shadow:0 18px 36px -28px rgba(0,0,0,.4)}
.pb-plan.is-reco{background:radial-gradient(80% 90% at 100% 0%,rgba(196,43,28,.35) 0%,rgba(196,43,28,0) 60%),linear-gradient(160deg,#222 0%,#050505 100%);border-color:#000}
.pb-badge{background:var(--grad-red)}

/* modal + menu */
.panel{background:var(--grad-paper)}
.fld input,.fld textarea{background:#fff;border-color:#e2e2e2}
.fld input:focus,.fld textarea:focus{border-color:#c42b1c;box-shadow:0 0 0 3px rgba(196,43,28,.15)}
.fld .choice:has(input:checked){border-color:#c42b1c;background:linear-gradient(180deg,#fff,#fbf1ef)}
.fld .choice input{accent-color:#c42b1c}
@media (prefers-reduced-motion:reduce){.plate-layer img{animation:none}}
.hero-bot{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:1.1rem}
/* gradient text: leave room for descenders (g, p) so nothing is clipped */
.h2 .rv-in,.wv-title,.wv-dtitle,.pb-title,.sh-name,.tagline .rv-in,.cta-t .rv-in{padding-bottom:.12em;margin-bottom:-.12em}
/* branding presentation: one slide at a time, compact */
.wv-media--deck{display:block}
.sh--deck{max-width:min(100%,1080px,calc(60vh*1.7778));margin-inline:auto}
.sh--deck .sh-slide>*{max-width:none}
.sh-deckfig{margin:0;border-radius:var(--radius-card);overflow:hidden;background:#0a0a0a;box-shadow:0 30px 60px -36px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.06)}
.sh-deckfig img{display:block;width:100%;height:auto}
.sh--deck .sh-dots{flex-wrap:wrap;max-width:60%}
.sh--deck .sh-dot{width:1.1rem}
@media (max-width:640px){.sh--deck .sh-dots{display:none}}
@media (max-width:700px){.plate-glow{
  background:radial-gradient(72% 30% at 50% 50%,rgba(255,255,255,.15) 0%,rgba(255,255,255,.07) 40%,rgba(255,255,255,.02) 68%,rgba(255,255,255,0) 86%),
             radial-gradient(120% 50% at 50% 54%,rgba(46,46,48,.6) 0%,rgba(22,22,23,.32) 45%,rgba(0,0,0,0) 78%),
             radial-gradient(90% 22% at 50% 106%,rgba(196,43,28,.30) 0%,rgba(196,43,28,.09) 48%,rgba(196,43,28,0) 78%)}}
@media (max-width:700px){.plate-layer{left:-14.25%;right:auto;width:128.5%}}

/* home: the studio portrait, full bleed, with the line about the work */
.plate-glow{display:none}
.plate-layer{top:-8%;height:116%;left:0;right:0;width:100%}
.plate-layer img{object-fit:cover;object-position:50% 38%}
.plate-grad{background:linear-gradient(to bottom,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 55%,rgba(0,0,0,.85) 100%)}
.hero-bot::before{content:none}
.hero-bot{display:grid;grid-template-columns:1fr;gap:1.6rem;align-items:end}
.hero-lead::before{content:"";display:block;width:3rem;height:2px;margin-bottom:1.2rem;border-radius:2px;background:var(--grad-red);box-shadow:0 0 14px rgba(232,69,47,.55)}
.tagline{font-size:clamp(2rem,3.1vw,3.8rem);line-height:.94;letter-spacing:-.035em;font-weight:500;margin:0}
.hero-aside{max-width:27rem;animation:epFade 1s cubic-bezier(.22,.8,.2,1) 1.6s both}
.hero-desc{font-size:clamp(.95rem,1.05vw,1.08rem);line-height:1.5;color:rgba(255,255,255,.74);margin:0 0 1.1rem}
.hero-svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:1.5rem}
.hero-svc li{padding:.62rem 0;border-top:1px solid rgba(255,255,255,.16);font-size:.92rem;color:#fff;letter-spacing:-.005em}
.hero-svc li::before{content:"";display:inline-block;width:5px;height:5px;margin:0 .6rem .12rem 0;border-radius:50%;background:var(--grad-red);box-shadow:0 0 8px rgba(232,69,47,.6);vertical-align:middle}
@keyframes epFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (min-width:900px){.hero-bot{grid-template-columns:minmax(0,1fr) minmax(18rem,25rem);column-gap:3rem}}
@media (max-width:700px){.plate-layer{left:0;width:100%;top:-3%;height:80%;-webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent 98%);mask-image:linear-gradient(to bottom,#000 62%,transparent 98%)}.plate-layer img{object-position:51% 35%}.tagline{font-size:clamp(1.75rem,7.6vw,2.3rem)}.hero-desc{display:none}.hero-bot{gap:1.2rem}.hero-svc li{font-size:.85rem;padding:.55rem 0}}
@media (prefers-reduced-motion:reduce){.hero-aside{animation:none}}
