@font-face{font-family:Manrope;src:url('assets/fonts/Manrope-Variable.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Pretendard;src:url('assets/fonts/PretendardVariable-Subset.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--text-body:clamp(18px,.625vw + 10px,22px);--text-meta:clamp(14px,.3125vw + 10px,16px);--text-action:clamp(16px,.3125vw + 12px,20px);--paper:#EEF3F8;--white:#FAFCFE;--ink:#222831;--muted:#5D6977;--accent:#8CCFFF;--accent-deep:#145E8C;--accent-soft:#E9F5FF;--line:rgba(34,40,49,.2);--gutter:clamp(24px,4vw,72px);--hero-progress:0;--page-progress:0;--pointer-x:0;--pointer-y:0;color:var(--ink);background:var(--paper);font-family:Manrope,Pretendard,sans-serif;font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:100px}
*{box-sizing:border-box}body{margin:0}p{word-break:keep-all;overflow-wrap:break-word;text-wrap:pretty}body.dialog-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}a{color:inherit;text-decoration:none}img,video{display:block;width:100%}img{height:auto}figure,p,h1,h2,h3{margin:0}button{border:0;background:none}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent-deep);outline-offset:6px}::selection{color:var(--ink);background:var(--accent)}[hidden]{display:none!important}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.rotate-180{transform:rotate(180deg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:10px;z-index:100;background:var(--ink);color:white;padding:14px 22px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
#reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--ink);transform:scaleX(var(--page-progress));transform-origin:left;z-index:90;pointer-events:none}
.site-header{height:96px;position:absolute;top:0;left:0;width:100%;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);gap:24px}.wordmark{font-family:Manrope,sans-serif;font-size:39px;font-weight:800;letter-spacing:-3.1px;line-height:1}.wordmark span{color:#359BCD}.desktop-nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:38px;font-size:14px;font-weight:600}.desktop-nav a{position:relative;padding:12px 0}.desktop-nav a::after{position:absolute;content:'';height:2px;width:100%;background:var(--ink);left:0;bottom:5px;transform:scaleX(0);transform-origin:left;transition:transform .25s}.desktop-nav a:hover::after{transform:scaleX(1)}.header-contact{font-size:14px;font-weight:600;display:flex;align-items:center;gap:16px;background:var(--ink);color:white;padding:14px 24px;border-radius:99px;transition:background .2s,transform .2s}.header-contact:hover{background:#344D65;transform:translateY(-2px)}.header-contact .icon{width:17px;height:17px}.menu-toggle,.mobile-nav{display:none}
.hero{height:160svh;min-height:1150px;position:relative}.hero-stage{position:sticky;top:0;height:100svh;min-height:720px;overflow:hidden;isolation:isolate}.hero-title{position:absolute;top:16%;left:var(--gutter);right:var(--gutter);z-index:-1;text-align:center;font-size:17.9vw;font-weight:800;line-height:.92;letter-spacing:-.085em;white-space:nowrap;transform:translateY(calc(var(--hero-progress) * -70px)) scale(calc(1 + var(--hero-progress) * .04));transform-origin:center}.hero-title span{display:block}.hero-side-note{position:absolute;right:var(--gutter);top:43%;font-size:10px;line-height:1.5;letter-spacing:.08em}.hero-side-note i{display:block;width:7px;height:7px;margin-top:14px;background:var(--accent)}
.photo-card{position:absolute;will-change:transform;backface-visibility:hidden}.photo-inner{display:block;position:relative;overflow:hidden;background:var(--white);padding:10px 10px 0;border-radius:11px;box-shadow:0 18px 35px -16px rgba(39,34,55,.3),0 2px 6px rgba(39,34,55,.05)}.photo-card img{object-fit:cover}.photo-card--main{z-index:3;width:min(27vw,40svh);top:25%;left:50%;transform:translate(calc(-50% + var(--pointer-x) * 16px),calc(var(--pointer-y) * 10px + var(--hero-progress) * -35px)) rotate(calc(4deg + var(--pointer-x) * 3deg - var(--hero-progress) * 7deg))}.portrait-media{aspect-ratio:.80;position:relative;overflow:hidden;background:var(--ink)}.hero-portrait-image{position:absolute;height:100%;object-position:center 30%;transition:opacity .45s}.portrait-media video{position:absolute;height:100%;object-fit:contain;opacity:0;transition:opacity .45s}.on-course .hero-portrait-image{opacity:0}.on-course .portrait-media video{opacity:1}.photo-caption{display:flex;align-items:center;gap:10px;min-height:41px;padding:11px 6px;font-size:9px;letter-spacing:.055em;line-height:1.3}.photo-caption strong{font-size:12px;font-weight:700;letter-spacing:-.03em}.photo-caption .icon{width:15px;height:15px;margin-left:auto}.status-dot{margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--accent)}.photo-card--practice{width:min(19vw,28svh);top:36%;left:17%;transform:translate(calc(var(--pointer-x) * -22px - var(--hero-progress) * 70px),calc(var(--pointer-y) * -8px + var(--hero-progress) * 5px)) rotate(calc(-8deg - var(--hero-progress) * 9deg))}.photo-card--practice img{aspect-ratio:.82;object-position:center}.photo-card--film{width:min(19vw,28svh);top:36%;left:67%;padding:0;text-align:left;transform:translate(calc(var(--pointer-x) * -24px + var(--hero-progress) * 70px),calc(var(--pointer-y) * 9px - var(--hero-progress) * 15px)) rotate(calc(7deg + var(--hero-progress) * 9deg))}.photo-card--film img{aspect-ratio:.82;object-position:center 55%}.play-circle{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:var(--white);display:grid;place-items:center;transition:transform .25s,background .25s}.play-circle .icon{width:28px;height:28px}.photo-card--film:hover .play-circle{background:var(--accent);transform:translate(-50%,-50%) scale(1.1)}.photo-card--practice:hover .photo-inner{box-shadow:0 22px 42px -12px rgba(39,34,55,.34)}
.hero-description{position:absolute;left:var(--gutter);bottom:12%;max-width:340px}.hero-description p{font-size:clamp(23px,2.15vw,34px);font-weight:700;line-height:1.35;letter-spacing:-.065em}.hero-description>span{display:block;margin-top:12px;font-size:var(--text-meta);color:var(--muted);letter-spacing:-.015em}.course-switch{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);display:flex;border:1px solid rgba(34,40,49,.25);border-radius:99px;padding:3px;z-index:5;white-space:nowrap}.course-switch button{display:flex;align-items:center;justify-content:center;gap:6px;padding:13px 22px;border-radius:99px;font-family:Manrope,sans-serif;font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted);transition:background .25s,color .25s}.course-switch [aria-pressed=true]{background:var(--ink);color:white}.switch-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.course-switch [aria-pressed=true] .switch-dot{background:var(--accent)}.text-link{display:inline-flex;gap:16px;align-items:center;padding:9px 0;border-bottom:1px solid currentColor;font-weight:600;font-size:var(--text-action);line-height:1.4}.text-link .icon{transition:transform .2s}.text-link:hover .icon{transform:translate(3px,-3px)}.hero-watch{position:absolute;bottom:12%;right:var(--gutter);font-size:18px}.hero-bottom{position:absolute;bottom:20px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.1em}.scroll-cue{display:flex;gap:12px;align-items:center}.scroll-cue .icon{width:12px;height:12px}.hero-since{margin-left:auto}.motion-toggle{display:flex;align-items:center;gap:8px;font-size:10px;padding:4px 0;min-height:28px;letter-spacing:0}.motion-toggle .icon{width:16px;height:16px;border:1px solid currentColor;border-radius:50%;padding:2px}
.is-ready:not(.reduce-motion) .hero-title span{animation:name-in .95s cubic-bezier(.2,.7,.2,1) both}.is-ready:not(.reduce-motion) .photo-inner{animation:photo-in .9s cubic-bezier(.16,1,.3,1) both}.is-ready:not(.reduce-motion) .photo-card--main .photo-inner{animation-delay:.15s}.is-ready:not(.reduce-motion) .photo-card--practice .photo-inner{animation-delay:.3s}.is-ready:not(.reduce-motion) .photo-card--film .photo-inner{animation-delay:.42s}.is-ready:not(.reduce-motion) .hero-description,.is-ready:not(.reduce-motion) .hero-watch,.is-ready:not(.reduce-motion) .course-switch{animation:fade-in .7s .6s both}
@keyframes name-in{from{opacity:0;transform:translateY(65%) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes photo-in{from{opacity:0;transform:translateY(120px) rotate(-10deg) scale(.8)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}
.section-pad{padding:100px var(--gutter)}.section-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:64px;font-size:10px;letter-spacing:.14em;font-weight:600}.section-heading>span:last-child{font-size:9px;letter-spacing:.12em}.about{background:var(--white);position:relative}.about-grid{display:grid;grid-template-columns:45% 1fr;gap:10%;align-items:start}.about-photo{margin-top:18px}.about-photo img{aspect-ratio:.76;object-fit:cover;object-position:center}.about-photo figcaption{font-size:10px;letter-spacing:.12em;margin-top:18px}.about-copy{padding-top:10px}.about-copy h2{font-size:clamp(38px,4.2vw,65px);font-weight:650;line-height:1.23;letter-spacing:-.065em}.about-intro{font-size:var(--text-body);line-height:1.85;letter-spacing:-.02em;max-width:32em;margin-top:32px;color:#53606E}.career-list{margin:45px 0 0}.career-list>div{display:grid;grid-template-columns:36% 1fr;gap:12px;padding:19px 0;border-top:1px solid var(--line);align-items:center}.career-list>div:last-child{border-bottom:1px solid var(--line)}.career-list dt{font-size:var(--text-meta);letter-spacing:.04em;color:var(--muted)}.career-list dd{margin:0;font-size:var(--text-body);font-weight:500;letter-spacing:-.025em}
.play-section{background:var(--ink);color:var(--white);overflow:hidden;padding-top:76px}.play-section .section-heading{color:#C5CFDA;margin-bottom:36px}.play-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:56px}.play-heading h2{font-size:clamp(58px,7.2vw,120px);font-weight:800;letter-spacing:-.075em;line-height:.98}.play-heading h2 span{color:var(--accent)}.play-heading p{font-size:var(--text-body);line-height:1.9;color:#C5CFDA;padding-bottom:8px}.film-strip{display:flex;align-items:flex-end;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding:12px 0 10px}.film-strip::-webkit-scrollbar{display:none}.film-card{flex:0 0 29.5%;min-width:0;scroll-snap-align:start}.film-card--featured{flex-basis:35.5%}.film-media{display:block;position:relative;width:100%;padding:0;overflow:hidden;aspect-ratio:.68;border-radius:3px}.film-media img{height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.film-media:hover img{transform:scale(1.035)}.film-play{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:5px;color:var(--ink);background:var(--white);border-radius:50px;padding:10px 14px 10px 10px;font-size:10px;font-weight:700;transition:background .25s}.film-play .icon{width:21px;height:21px}.film-media:hover .film-play{background:var(--accent)}.film-controls{display:flex;justify-content:space-between;align-items:center;margin-top:25px;font-size:12px;color:#C5CFDA}.film-controls>div{display:flex;gap:10px}.round-button{display:grid;place-items:center;border:1px solid currentColor;width:44px;height:44px;border-radius:50%;transition:background .2s,color .2s,opacity .2s}.round-button:hover:not(:disabled){background:var(--accent);color:var(--ink);border-color:var(--accent)}.round-button:disabled{opacity:.25}
.lesson-section{background:var(--white);padding-top:100px;padding-bottom:110px}.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.lesson-grid h2{font-size:clamp(32px,3.75vw,60px);line-height:1.35;font-weight:650;letter-spacing:-.075em}.accent-dot{color:#359BCD}.lesson-note{font-size:var(--text-body);line-height:1.9;margin-top:35px;color:var(--muted)}.lesson-principles>div{display:grid;grid-template-columns:35px 1fr;gap:12px 20px;padding:0 0 27px;border-bottom:1px solid var(--line);margin-bottom:29px}.lesson-principles>div:last-child{margin-bottom:0}.lesson-principles span{font-size:11px;color:var(--muted);padding-top:6px}.lesson-principles h3{font-size:clamp(22px,.3125vw + 18px,28px);font-weight:600;letter-spacing:-.035em}.lesson-principles p{grid-column:2;font-size:var(--text-body);line-height:1.8;color:var(--muted)}
.contact-section{background:var(--accent);padding-top:42px;padding-bottom:25px}.contact-top{display:flex;justify-content:space-between;gap:24px;font-size:10px;letter-spacing:.08em;margin-bottom:50px}.contact-main{display:grid;grid-template-columns:1fr auto;gap:35px;align-items:center;padding-bottom:65px}.contact-main h2{font-size:clamp(42px,6.5vw,108px);font-weight:800;line-height:1.05;letter-spacing:-.065em}.contact-main h2 span{display:inline-block}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.contact-actions p{font-size:var(--text-body);font-weight:500;line-height:1.6;letter-spacing:-.03em;margin-bottom:5px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:25px;padding:18px 25px;border-radius:99px;font-size:var(--text-action);font-weight:600;transition:transform .25s,background .25s}.button-dark{background:var(--ink);color:var(--white)}.button-dark:hover{background:#344D65;transform:translateY(-3px)}.contact-actions .text-link{font-size:var(--text-action);gap:12px}.contact-actions .text-link .icon{width:16px;height:16px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #5AA6D5;padding-top:22px;font-size:9px;letter-spacing:.08em}.footer-bottom .wordmark{font-size:29px;letter-spacing:-2px}.footer-bottom .wordmark span{color:var(--ink)}.footer-bottom>a:last-child{display:flex;gap:12px;align-items:center}.footer-bottom .icon{width:15px;height:15px}.mobile-cta{display:none}
.film-dialog{border:0;padding:0;background:transparent;color:var(--white);max-width:calc(100vw - 40px);max-height:calc(100dvh - 32px);overflow:visible}.film-dialog::backdrop{background:rgba(20,25,32,.9);backdrop-filter:blur(8px)}.dialog-shell{width:min(440px,calc(100vw - 40px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-bottom:16px}.dialog-header>div>span{font-size:9px;letter-spacing:.13em;color:#C5CFDA}.dialog-header h2{font-size:20px;margin-top:7px;font-weight:600}.dialog-header .round-button{flex-shrink:0}.dialog-shell video{min-height:0;max-height:calc(100dvh - 180px);object-fit:contain;background:#111A24;border-radius:4px}.dialog-shell #film-status{font-size:12px;line-height:1.5;min-height:23px;margin-top:12px;max-width:440px}
.js:not(.reduce-motion) [data-reveal]{opacity:0;transform:translateY(35px);transition:opacity .7s,transform .85s cubic-bezier(.16,1,.3,1)}.js:not(.reduce-motion) [data-reveal].is-visible{opacity:1;transform:translateY(0)}
.reduce-motion{scroll-behavior:auto}.reduce-motion .hero{height:100svh;min-height:720px}.reduce-motion .hero-stage{position:relative}.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduce-motion [data-reveal]{opacity:1;transform:none}.reduce-motion .hero-title{transform:none}.reduce-motion .photo-card{will-change:auto}
.lesson-detail-link{margin-top:28px;font-size:var(--text-action);line-height:1.6;gap:12px}.location-note{font-size:var(--text-meta);line-height:1.8;margin-top:17px;color:var(--muted)}
@media(min-width:1800px){.hero-title{font-size:18.1vw}.hero-stage{max-height:1250px}.hero{min-height:unset}}
@media(max-width:1100px) and (min-width:761px){.hero-description{max-width:260px}.hero-description p{font-size:25px}.hero-description>span{font-size:var(--text-meta)}.hero-watch{font-size:14px}.photo-card--practice{left:13%;width:21vw}.photo-card--film{left:69%;width:21vw}.photo-card--main{width:29vw}.course-switch button{padding:12px 16px;font-size:9px}.hero-side-note{display:none}.about-grid{gap:6%;grid-template-columns:45% 49%}.about-intro{font-size:var(--text-body)}.career-list>div{padding:16px 0}.career-list dd{font-size:var(--text-body)}.contact-main{grid-template-columns:1fr}.contact-actions{flex-direction:row;align-items:center;gap:30px}.contact-actions p{margin:0;font-size:var(--text-body)}.contact-main h2{font-size:8.5vw}}
@media(max-width:760px){:root{--text-body:17px;--text-meta:14px;--text-action:16px}
  :root{--gutter:22px;scroll-padding-top:80px}.site-header{height:77px;position:absolute;gap:16px}.wordmark{font-size:32px;letter-spacing:-2.7px}.desktop-nav{display:none}.header-contact{font-size:11px;padding:11px 15px;gap:9px;margin-left:auto}.header-contact .icon{width:14px;height:14px}.menu-toggle{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;width:34px;height:40px;padding:0}.menu-toggle span{width:23px;height:1.5px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}.mobile-nav{position:absolute;top:77px;left:0;right:0;padding:20px var(--gutter) 28px;background:var(--paper);box-shadow:0 20px 30px #22283110;display:flex;flex-direction:column;z-index:25}.mobile-nav a{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid var(--line);font-size:22px;letter-spacing:-.04em}.mobile-nav a>span{font-size:11px}.mobile-nav a:last-child{font-size:14px}
  .hero,.reduce-motion .hero{height:auto;min-height:0}.hero-stage,.reduce-motion .hero-stage{height:100svh;min-height:760px;max-height:950px;position:relative}.hero-title{top:16%;left:14px;right:14px;font-size:18.1vw;letter-spacing:-.08em;transform:none}.hero-side-note{display:none}.photo-card--main{top:28%;width:min(56vw,290px);transform:translateX(-50%) rotate(3deg)}.photo-card--practice{top:37%;left:3%;width:31vw;transform:rotate(-10deg)}.photo-card--film{top:38%;left:auto;right:3%;width:31vw;transform:rotate(9deg)}.photo-inner{padding:6px 6px 0;border-radius:7px;box-shadow:0 13px 22px -12px #29223750}.photo-caption{font-size:6px;gap:5px;min-height:27px;padding:9px 3px}.photo-caption strong{font-size:10px}.photo-card--practice .photo-caption{font-size:5.5px}.photo-caption .icon{width:9px;height:9px}.status-dot{width:5px;height:5px}.photo-card--main .photo-caption{font-size:6px}.portrait-media{aspect-ratio:.81}.play-circle{width:35px;height:35px;top:45%}.play-circle .icon{width:22px;height:22px}.hero-description{left:var(--gutter);bottom:14%;max-width:260px}.hero-description p{font-size:25px;line-height:1.35}.hero-description>span{font-size:var(--text-meta);margin-top:9px}.course-switch{bottom:auto;top:68%}.course-switch button{font-size:9px;padding:10px 18px}.hero-watch{bottom:6.8%;right:var(--gutter);font-size:12px;gap:8px;border-bottom:0;padding:7px 0}.hero-watch .icon{width:15px;height:15px}.hero-bottom{bottom:16px;padding-top:12px;gap:8px;font-size:7px;letter-spacing:.04em}.hero-since{display:none}.motion-toggle{font-size:9px}.scroll-cue{gap:7px}.scroll-cue .icon{width:10px;height:10px}
  .section-pad{padding:65px var(--gutter)}.section-heading{font-size:8px;letter-spacing:.1em;margin-bottom:35px}.section-heading>span:last-child{font-size:7px;max-width:135px;text-align:right}.about-grid{display:flex;flex-direction:column;gap:36px}.about-photo{margin:0;width:77%}.about-photo img{aspect-ratio:.82}.about-photo figcaption{font-size:7px;margin-top:12px}.about-copy{padding:0}.about-copy h2{font-size:41px;line-height:1.2}.about-copy h2 br:nth-of-type(2){display:none}.about-intro{font-size:var(--text-body);margin-top:23px;max-width:none;line-height:1.9}.career-list{margin-top:29px}.career-list>div{padding:16px 0;grid-template-columns:35% 1fr}.career-list dt{font-size:var(--text-meta)}.career-list dd{font-size:var(--text-body)}
  .play-section{padding-top:48px;padding-bottom:44px}.play-heading{display:block;margin-bottom:26px}.play-heading h2{font-size:14vw;letter-spacing:-.07em;line-height:1}.play-heading p{font-size:var(--text-body);margin-top:22px;padding:0}.film-strip{gap:16px;margin-right:calc(var(--gutter) * -1);padding-right:var(--gutter);scroll-padding-left:0}.film-card,.film-card--featured{flex-basis:76%;max-width:330px}.film-media{aspect-ratio:.67}.film-play{bottom:14px;right:14px;font-size:9px;padding:8px 11px 8px 8px}.film-play .icon{width:17px;height:17px}.film-controls{font-size:11px;margin-top:20px}.round-button{width:42px;height:42px}
  .lesson-grid{display:block}.lesson-grid h2{font-size:34px;letter-spacing:-.065em}.lesson-note{font-size:var(--text-body);line-height:1.8;margin-top:20px}.lesson-principles{margin-top:40px}.lesson-principles>div{grid-template-columns:23px 1fr;gap:10px 15px;padding-bottom:23px;margin-bottom:24px}.lesson-principles h3{font-size:clamp(22px,.3125vw + 18px,28px)}.lesson-principles p{font-size:var(--text-body)}.lesson-principles span{font-size:10px}
  .contact-section{padding-top:32px;padding-bottom:90px}.contact-top{font-size:8px;margin-bottom:32px}.contact-main{display:block;padding-bottom:42px}.contact-main h2{font-size:11vw;letter-spacing:-.07em;line-height:1.1}.contact-actions{margin-top:35px;gap:20px;align-items:flex-start}.contact-actions p{font-size:var(--text-body)}.button{font-size:var(--text-action);padding:17px 22px}.contact-actions .text-link{font-size:var(--text-action)}.footer-bottom{gap:12px;flex-wrap:wrap;font-size:7px;padding-top:20px}.footer-bottom .wordmark{font-size:27px}.footer-bottom>a:last-child{gap:5px}.footer-bottom .icon{width:12px;height:12px}.mobile-cta{position:fixed;left:18px;right:18px;bottom:calc(13px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--ink);color:white;border:1px solid #ffffff20;border-radius:99px;padding:16px 22px;font-size:12px;font-weight:600;box-shadow:0 5px 20px #0002;transition:opacity .25s,transform .25s}.mobile-cta .icon{width:17px;height:17px}.mobile-cta.is-hidden{opacity:0;transform:translateY(120%);pointer-events:none}.hero-bottom{bottom:76px}.hero-watch{bottom:15.3%}.hero-description{bottom:22%}.course-switch{top:61.5%}.photo-card--main{top:24%;width:min(54vw,27svh)}.photo-card--practice{top:34%}.photo-card--film{top:35%}.hero-title{top:15%}
  .film-dialog{max-width:calc(100vw - 28px)}.dialog-shell{width:min(440px,calc(100vw - 28px))}.dialog-header{padding-bottom:12px}.dialog-header h2{font-size:18px}.dialog-header>div>span{font-size:8px}.dialog-shell video{max-height:calc(100dvh - 155px)}.dialog-shell #film-status{font-size:11px}
}
@media(max-width:390px){.hero-stage{min-height:740px}.photo-card--main{width:min(54vw,27svh);top:24%}.course-switch{top:61.5%}.hero-description p{font-size:23px}.hero-description>span{font-size:var(--text-meta)}.header-contact{padding:10px 12px;font-size:10px}.site-header{gap:11px}.wordmark{font-size:30px}.about-copy h2{font-size:36px}.lesson-grid h2{font-size:31px}}
@media(min-width:761px) and (max-height:820px){.photo-card--main{width:38svh}.photo-card--practice,.photo-card--film{width:27svh;top:33%}.hero-description p{font-size:25px}.hero-description>span{font-size:var(--text-meta)}}
@media(prefers-reduced-motion:reduce){:root:not(.allow-motion){scroll-behavior:auto}:root:not(.allow-motion) *,:root:not(.allow-motion) *::before,:root:not(.allow-motion) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}:root:not(.allow-motion) .hero{height:100svh;min-height:720px}:root:not(.allow-motion) .hero-stage{position:relative}:root:not(.allow-motion) .hero-title{transform:none}:root:not(.allow-motion) [data-reveal]{opacity:1!important;transform:none!important}:root:not(.allow-motion) .photo-card{will-change:auto}@media(max-width:760px){:root:not(.allow-motion) .hero{height:auto;min-height:0}}}

/* The inner float leaves the outer card's pointer and scroll transforms independent. */
.hero-stage::before {
  content: ''; position: absolute; z-index: -3; pointer-events: none;
  width: 68%; height: 66%; left: 16%; top: 19%;
  background: radial-gradient(ellipse, #8CCFFF42, #8CCFFF12 42%, transparent 72%);
  opacity: .35; transform: translate(calc(var(--pointer-x) * 32px), calc(var(--pointer-y) * 20px));
  transition: opacity .7s;
}
.on-course .hero-stage::before { opacity: 1; }
.hero-orbit {
  position: absolute; left: 50%; top: 45%; width: 70%; z-index: -2;
  pointer-events: none; opacity: .7;
  transform: translate(-50%, -50%) rotate(calc(-17deg + var(--pointer-x) * 5deg));
}
.hero-orbit svg { width: 100%; overflow: visible; }
.hero-orbit ellipse { stroke: #7BBDD9; stroke-width: 1; stroke-dasharray: 5 11; }
.hero-orbit circle { fill: var(--accent); stroke: var(--paper); stroke-width: 5; }
.rhythm-sticker {
  position: absolute; width: 90px; height: 90px; top: -31px; right: -32px;
  display: grid; place-items: center; color: var(--ink); background: var(--accent);
  clip-path: polygon(50% 0%,60% 10%,75% 4%,79% 20%,95% 25%,90% 40%,100% 50%,90% 60%,95% 75%,79% 80%,75% 96%,60% 90%,50% 100%,40% 90%,25% 96%,21% 80%,5% 75%,10% 60%,0% 50%,10% 40%,5% 25%,21% 20%,25% 4%,40% 10%);
  transform: rotate(calc(12deg + var(--pointer-x) * 12deg));
  transition: background .4s;
}
.rhythm-sticker span { text-align: center; font-size: 12px; font-weight: 800; line-height: 1.25; letter-spacing: -.04em; }
.swing-progress {
  position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: var(--accent); transform: scaleX(var(--swing-progress, 0)); transform-origin: left;
  opacity: 0; transition: opacity .4s;
}
.on-course .swing-progress { opacity: 1; }
.is-ready:not(.reduce-motion) .hero .photo-inner {
  animation: photo-in .95s cubic-bezier(.16,1,.3,1) both, card-float 7s ease-in-out 1.1s infinite;
}
.is-ready:not(.reduce-motion) .hero .photo-card--main .photo-inner { animation-delay: .05s, 1s; }
.is-ready:not(.reduce-motion) .hero .photo-card--practice .photo-inner { animation-delay: .15s, 1.3s; animation-duration: .95s, 8s; }
.is-ready:not(.reduce-motion) .hero .photo-card--film .photo-inner { animation-delay: .3s, 1.55s; animation-duration: .95s, 6.5s; }
.is-ready:not(.reduce-motion) .hero-orbit svg { animation: orbit-drift 20s ease-in-out infinite; }
@keyframes card-float { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(1deg); } }
@keyframes orbit-drift { 0%,100% { transform: rotate(-5deg) scale(.96); } 50% { transform: rotate(8deg) scale(1.04); } }
@media (max-width: 760px) {
  .hero-orbit { width: 110%; top: 40%; opacity: .5; }
  .hero-stage::before { width: 110%; left: -5%; height: 52%; top: 18%; }
  .rhythm-sticker { width: 63px; height: 63px; right: -18px; top: -23px; }
  .rhythm-sticker span { font-size: 9px; }
  .is-ready:not(.reduce-motion) .hero .photo-inner { animation-name: photo-in, card-float-mobile; }
  @keyframes card-float-mobile { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
}

.about-photo-collage { position: relative; padding: 0 8% 42px 0; margin-top: 18px; }
.about-photo-collage .about-photo {
  width: 100%; margin: 0; padding: 12px 12px 0; border-radius: 12px;
  background: var(--paper); border: 1px solid #22283108;
}
.about-photo-collage .about-photo img { aspect-ratio: .82; object-fit: cover; object-position: center; background: white; border-radius: 5px; }
.about-photo-collage .about-photo figcaption {
  display: flex; align-items: center; gap: 14px; padding: 17px 6px; margin: 0;
  font-size: 9px; letter-spacing: .08em;
}
.about-photo figcaption strong { font-size: 15px; letter-spacing: -.03em; }
.about-profile-inset {
  position: absolute; width: 35%; right: -2%; bottom: 0; rotate: 7deg;
  padding: 8px 8px 0; background: var(--white); border-radius: 7px;
  box-shadow: 0 15px 35px -18px #22283155;
}
.about-profile-inset img { aspect-ratio: .8; object-fit: cover; border-radius: 2px; }
.about-profile-inset figcaption { font-size: 7px; letter-spacing: .04em; line-height: 1.6; padding: 12px 2px; }
@media (max-width: 760px) {
  .about-photo-collage { width: 95%; margin: 0; padding: 0 12% 30px 0; }
  .about-photo-collage .about-photo { padding: 8px 8px 0; border-radius: 9px; }
  .about-photo-collage .about-photo figcaption { padding: 13px 3px; font-size: 7px; gap: 10px; }
  .about-photo figcaption strong { font-size: 12px; }
  .about-profile-inset { width: 37%; right: -2%; padding: 5px 5px 0; }
  .about-profile-inset figcaption { font-size: 5px; padding: 8px 2px; }
}

.about-profile-inset img { object-position: center 24%; }
.about-profile-inset figcaption { display: flex; align-items: center; gap: 9px; }
.about-profile-inset figcaption strong { font-size: 11px; letter-spacing: -.03em; }
.reviews-section { background: var(--paper); }
.reviews-section .section-heading { margin-bottom: 42px; }
.reviews-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 45px; }
.reviews-heading h2 { font-size: clamp(34px,3.8vw,58px); font-weight: 650; line-height: 1.25; letter-spacing: -.065em; }
.reviews-heading p { color: var(--muted); font-size:var(--text-body); line-height: 1.7; margin-top: 22px; }
.reviews-rating { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-bottom: 6px; font-size:var(--text-meta); white-space: nowrap; }
.rating-score { display: flex; align-items: center; gap: 30px; font-family: Manrope,sans-serif; font-size: 70px; line-height: 1; letter-spacing: -.065em; font-weight: 700; }
.rating-score>span { font-size: 22px; transition: transform .25s; }
.reviews-rating:hover .rating-score>span { transform: translate(3px,-3px); }
.review-stars { color: var(--accent-deep); font-size: 12px; letter-spacing: .1em; }
.reviews-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 22px; }
.review-card { background: var(--white); padding: 28px; border-radius: 15px; display: flex; flex-direction: column; min-height: 350px; }
.review-card--featured { background: #D5EAFE; }
.review-card--sky { background: var(--accent-soft); }
.review-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size:var(--text-meta); color: #5D6976; }
.review-card-top .review-stars { font-size: 10px; flex-shrink: 0; }
.review-card blockquote { margin: 36px 0 40px; }
.review-card blockquote::before { content: '“'; display: block; font-family: Manrope,sans-serif; font-size: 65px; font-weight: 500; line-height: .65; color: #22283140; margin-bottom: 12px; }
.review-card blockquote p { font-size: clamp(22px,1.8vw,28px); font-weight: 550; line-height: 1.6; letter-spacing: -.04em; word-break: keep-all; overflow-wrap: break-word; }
.review-card blockquote strong { font-weight: 700; text-decoration: underline; text-decoration-color: #5AA6D5; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.review-card-bottom { margin-top: auto; padding-top: 20px; border-top: 1px solid #22283120; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.review-card-bottom>div { display: flex; align-items: center; gap: 10px; }
.review-avatar { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 50%; background: #ffffff75; font-size: 12px; font-weight: 700; }
.review-author,.review-source { display: block; }
.review-author { font-size:var(--text-action); font-weight: 600; }
.review-source { font-size:var(--text-meta); color: var(--muted); margin-top: 4px; }
.review-card-bottom>a { display: inline-flex; gap: 8px; align-items: center; font-size:var(--text-meta); padding: 10px 0; }
.review-card-bottom>a:hover { text-decoration: underline; text-underline-offset: 4px; }
.reviews-footnote { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 26px; }
.reviews-footnote>span { font-size:var(--text-meta); color: var(--muted); line-height: 1.7; }
.reviews-footnote .text-link { font-size:var(--text-action); flex-shrink: 0; }
@media (min-width: 761px) and (max-width: 1100px) {
  .reviews-grid { grid-template-columns: 1fr 1fr; }
  .review-card--featured { grid-column: 1/-1; min-height: 270px; }
  .review-card { min-height: 300px; }
  .review-card blockquote p { font-size: 24px; }
  .review-card--featured blockquote { max-width: 700px; }
}
@media (max-width: 760px) {
  .about-profile-inset figcaption { gap: 5px; }
  .about-profile-inset figcaption strong { font-size: 9px; }
  .reviews-section .section-heading { margin-bottom: 30px; }
  .reviews-heading { display: block; margin-bottom: 28px; }
  .reviews-heading h2 { font-size: 34px; }
  .reviews-heading p { font-size:var(--text-body); margin-top: 18px; }
  .reviews-rating { display: grid; grid-template-columns: auto 1fr; column-gap: 17px; row-gap: 5px; margin-top: 27px; align-items: center; }
  .rating-score { grid-row: span 2; font-size: 45px; gap: 11px; }
  .rating-score>span { font-size: 17px; }
  .reviews-rating .review-stars { align-self: end; font-size: 11px; }
  .reviews-rating>span:last-child { align-self: start; font-size:var(--text-meta); }
  .reviews-grid { grid-template-columns: 1fr; gap: 15px; }
  .review-card { padding: 25px; border-radius: 12px; min-height: 280px; }
  .review-card-top { font-size:var(--text-meta); }
  .review-card blockquote { margin: 30px 0; }
  .review-card blockquote p { font-size: 22px; line-height: 1.6; }
  .review-card blockquote::before { font-size: 56px; }
  .review-card-bottom { padding-top: 17px; }
  .reviews-footnote { display: block; margin-top: 24px; }
  .reviews-footnote>span { display: block; font-size:var(--text-meta); }
  .reviews-footnote .text-link { margin-top: 14px; font-size:var(--text-action); }
}
.lesson-keylinks{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:18px;font-size:var(--text-action);color:var(--accent-deep)}.lesson-keylinks a{text-decoration:underline;text-underline-offset:4px;padding:5px 0}
