@font-face{font-family:Manrope;src:url(assets/manrope.ttf) format('truetype');font-weight:200 800;font-display:swap}
:root{color-scheme:dark;--bg:#060707;--panel:#111314;--ink:#f0f1ed;--muted:#a4aaa8;--line:#343938;--paper:#f0f1ed;--rose:#b9bfbc;--action:#e8eae5;--action-ink:#111314;--action-hover:#fff;--ease-out:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#555e5a var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}::selection{background:var(--paper);color:var(--panel)}a{color:inherit;text-underline-offset:5px}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}[hidden]{display:none!important}.skip{position:fixed;z-index:10;top:12px;left:12px;padding:12px;background:var(--panel);color:var(--paper);transform:translateY(-180%)}.skip:focus{transform:none}.icon{width:22px;height:22px;stroke:currentColor;stroke-width:1.3;fill:none;flex-shrink:0}.header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;position:relative;z-index:3}.wordmark{display:flex;align-items:center;gap:13px;font-size:15px;font-weight:600;line-height:1.2;letter-spacing:-.025em;text-decoration:none}.brand-symbol{width:36px;height:36px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:square;flex-shrink:0}.header-contact{display:flex;align-items:center;gap:28px;font-size:12px;text-decoration:none;min-height:44px;padding:11px 19px;background:var(--action);color:var(--action-ink);border-radius:0;transition:background-color 180ms ease}.header-contact .icon{width:16px;height:16px}.stage{height:135svh;min-height:1000px}.pinned{height:calc(100svh - 100px);min-height:710px;max-height:1100px;position:sticky;top:0;overflow:hidden}.intro{position:absolute;z-index:2;left:50%;top:18px;width:90%;max-width:900px;text-align:center;translate:-50% 0;pointer-events:none}h1,h2,h3,p{margin:0}h1{font-size:clamp(40px,4.8vw,77px);font-weight:600;line-height:1.07;letter-spacing:-.04em;margin:0 0 20px;text-wrap:balance}.hero-copy{font-size:14px;line-height:1.6;color:var(--muted)}#scene{position:absolute;inset:140px -5vw 8px;touch-action:pan-y}#scene canvas{display:block;width:100%;height:100%;outline:none}#loading{position:absolute;left:50%;top:50%;translate:-50% -50%;font-size:13px;color:var(--muted)}#fallback{height:100%;padding:80px 20% 35px}#fallback img{width:100%;height:85%;object-fit:contain}#fallback p{text-align:center;font-size:12px;color:var(--muted)}.annotation{position:absolute;left:5vw;top:50%;font-size:12px;line-height:1.8;color:var(--ink);opacity:0;pointer-events:none}.hero-bottom{position:absolute;z-index:4;left:4.5vw;right:4.5vw;bottom:38px;display:flex;justify-content:space-between;gap:24px;align-items:center}.scroll-cue{display:flex;gap:12px;align-items:center;font-size:12px;text-decoration:none;min-height:44px}.scroll-cue .icon{width:14px;height:18px}.scene-controls{display:flex;align-items:center;gap:16px}#hint{font-size:10px;color:var(--muted)}button{font:inherit;font-size:11px;border:1px solid #727c77;background:transparent;color:var(--ink);padding:11px 14px;min-height:44px;display:flex;gap:10px;align-items:center;border-radius:0;cursor:pointer;transition:background-color 180ms ease,color 180ms ease;white-space:nowrap}button svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.7;fill:none}button:disabled{color:var(--muted);cursor:default}.scene-caption{position:absolute;bottom:14px;right:4.5vw;color:var(--muted);font-size:9px}.training{padding:64px 7vw 0;background:var(--panel);color:var(--paper);scroll-margin-top:0}.training::selection,.training ::selection{background:var(--paper);color:var(--panel)}.training-overview{display:grid;grid-template-columns:1fr 1fr;gap:7vw;padding-bottom:45px}.section-heading h2{font-weight:500;font-size:clamp(28px,3vw,43px);line-height:1.18;letter-spacing:-.03em}.section-heading>p{font-size:13px;line-height:1.8;color:var(--rose);margin-top:24px}.course-grid{display:flex;flex-direction:column;gap:25px}.course h3{font-size:24px;font-weight:500;letter-spacing:-.025em;margin-bottom:10px}.course p{color:var(--rose);font-size:13px;line-height:1.8;max-width:50ch}.course+.course{border-top:1px solid var(--line);padding-top:25px}.more-info{border-top:1px solid var(--line)}summary{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:76px;cursor:pointer;font-size:12px;list-style:none}summary::-webkit-details-marker{display:none}summary svg{flex:0 0 18px;width:18px;height:18px;stroke:currentColor;stroke-width:1.25;fill:none;transition:transform 180ms var(--ease-out)}details[open]>summary svg{transform:rotate(45deg)}.details-content{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;padding:8px 0 38px;color:var(--rose);font-size:13px;line-height:1.8}.details-content h3{font-size:16px;font-weight:500;color:var(--paper);margin:25px 0 12px}.details-content h3:first-child{margin-top:0}.details-content p{margin-bottom:14px;max-width:70ch}.steps{padding-left:20px;margin:0}.steps li{padding-left:5px;margin-bottom:15px}.steps strong{font-weight:500;color:var(--paper)}blockquote{margin:0;max-width:52ch}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:48px 7vw}.contact-row h2{font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1.2;letter-spacing:-.03em}.contact-row p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:12px}.contact-action{display:flex;align-items:center;gap:40px;font-size:13px;min-height:49px;text-decoration:none;background:var(--action);color:var(--action-ink);padding:15px 23px;border-radius:0;transition:background-color 180ms ease}.contact-action .icon{width:18px;height:18px}footer{padding:0 7vw 22px;display:flex;justify-content:space-between;gap:25px;align-items:center;color:var(--muted);font-size:10px}footer a{display:flex;align-items:center;gap:9px;min-height:44px;text-decoration:none}footer .icon{width:14px;height:14px}
@media(hover:hover) and (pointer:fine){#scene canvas{cursor:grab}#scene canvas:active{cursor:grabbing}.header-contact:hover,.contact-action:hover{background:var(--action-hover)}button:not(:disabled):hover{background:var(--action);color:var(--action-ink)}summary:hover{color:#fff}.scroll-cue:hover,footer a:hover{text-decoration:underline}}
@media(max-width:1050px){#hint{display:none}.annotation{font-size:11px;top:39%}.training{padding:50px 6vw 0}.training-overview{gap:6vw}.course h3{font-size:22px}.desktop-break{display:none}.contact-row{padding:40px 6vw}.contact-row h2{font-size:26px}footer{padding-inline:6vw}}
@media(max-width:800px){.header{height:86px;padding:0 6vw}.wordmark{font-size:12px;gap:8px}.brand-symbol{width:28px;height:28px}.header-contact{font-size:10px;gap:14px;padding:11px 13px}.header-contact .icon{width:14px;height:14px}.stage{height:130svh;min-height:900px}.pinned{height:calc(100svh - 86px);min-height:650px;max-height:none}.intro{top:25px;max-width:none;width:95%}h1{font-size:clamp(35px,7vw,55px);margin-bottom:18px}.hero-copy{font-size:12px;line-height:1.7}#scene{inset:100px -17% 45px}.annotation{left:6vw;top:26%;font-size:11px;max-width:75vw}.hero-bottom{left:6vw;right:6vw;bottom:37px;gap:10px}.scroll-cue{font-size:11px;gap:8px}.scene-controls{gap:8px}button{font-size:10px;padding:10px;gap:7px}#reset{position:absolute;right:0;bottom:52px}.scene-caption{right:6vw;font-size:8px;bottom:13px}.training{padding:37px 6vw 0}.training-overview{display:block;padding-bottom:23px}.section-heading{margin-bottom:28px}.section-heading h2{font-size:29px}.section-heading>p{font-size:12px;margin-top:16px}.course-grid{gap:20px}.course+.course{padding-top:20px}.course h3{font-size:21px;margin-bottom:9px}.course p{font-size:12px}.details-content{grid-template-columns:1fr;gap:20px;padding-bottom:25px;font-size:12px}.details-content h3{font-size:15px}summary{font-size:11px;min-height:72px;gap:20px}.contact-row{align-items:flex-start;flex-direction:column;gap:23px;padding:34px 6vw}.contact-row h2{font-size:25px}.contact-row p{font-size:12px}.contact-action{font-size:12px;gap:36px;min-height:46px;padding:12px 19px}footer{padding:0 6vw 16px;font-size:9px}.scroll-cue .icon{width:13px}#fallback{padding:40px 12% 10px}}
@media(min-width:801px) and (max-height:810px){.pinned{min-height:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.stage{height:auto;min-height:0}.pinned{position:relative}.annotation{display:none}button,.header-contact,.contact-action,summary svg{transition:none}}

.keyboard-control{position:fixed;right:12px;top:12px;bottom:auto!important;z-index:20;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);padding:0;border:0;background:var(--bg)}.keyboard-control:focus-visible{width:auto;height:auto;min-height:44px;padding:11px 14px;clip-path:none;overflow:visible;border:1px solid var(--ink)}

.header-contact:focus-visible,.contact-action:focus-visible{outline-color:var(--ink)}

/* Anatomical backdrop: one quiet two-part contraction, behind the instrument. */
.heart-backdrop{position:absolute;z-index:0;left:60%;top:200px;width:clamp(420px,48vw,680px);aspect-ratio:1;transform:translateX(-50%);pointer-events:none;user-select:none;opacity:.34}
.heart-image{display:block;width:100%;height:100%;object-fit:contain;transform-origin:49% 59%;animation:heart-beat 1.65s cubic-bezier(.45,0,.25,1) infinite;animation-play-state:paused}
.stage[data-motion="running"] .heart-image{animation-play-state:running}
@keyframes heart-beat{0%,38%,100%{transform:scale(1)}9%{transform:scale(1.035)}17%{transform:scale(.995)}24%{transform:scale(1.019)}32%{transform:scale(1)}}
@media(max-width:800px){.heart-backdrop{top:180px;left:56%;width:min(105vw,470px);opacity:.3}}
@media(prefers-reduced-motion:reduce){.heart-image{animation:none;transform:none}}
