/* A short brand performance, followed by a staged portal entrance. */
.nav-links{flex-wrap:wrap;gap:20px}
.all-socials{margin-top:12px}
.anchor-alias{position:absolute;top:0;left:0}
.booking-section{background:#f8f4fa;color:#201029}
.booking-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:65px;align-items:center}
.booking-section .button{margin-top:28px}
.booking-photo{width:100%;height:440px;object-fit:cover;border-radius:160px 160px 18px 18px}
.contact-section{background:#160c21}
.contact-section .section-label{color:#d69cf9}
.contact-section .section-intro{color:#d6c6df}
.contact-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}
.contact-options a{display:flex;flex-direction:column;gap:15px;padding:23px 0;border-top:1px solid #b14df260;text-decoration:none;transition:color .25s}
.contact-options a:hover{color:#d69cf9}
.contact-options small{color:#c9b6d5;font-size:11px;letter-spacing:.07em}
.contact-options strong{font-size:clamp(16px,1.8vw,23px);overflow-wrap:anywhere;font-weight:500}
.contact-options span{font-size:12px;color:#d69cf9}
@media(max-width:820px){.nav-inner{flex-wrap:wrap;gap:4px;padding-top:6px;padding-bottom:12px}.nav-links{width:100%;gap:12px 18px}.nav .nav-links a:not(.nav-cta){display:inline-flex;font-size:12px;min-height:30px;align-items:center}.hero-inner{padding-top:195px}.booking-layout{grid-template-columns:1fr;gap:35px}.booking-photo{height:350px;max-width:420px}.contact-options{grid-template-columns:1fr;gap:12px}}
.intro-motto{max-width:440px;line-height:1.4}
.floating-note{width:220px}
.floating-note b{font-size:17px;line-height:1.3}
.artist-story{background:#f8f4fa;color:#201029}
.story-heading{max-width:750px;margin-bottom:64px}
.story-heading .section-title span{color:#a746d6}
.story-lead{max-width:600px;color:#695472;font:italic 24px/1.5 Georgia,serif}
.story-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.story-photo{position:sticky;top:35px;margin:0;border-radius:180px 180px 16px 16px;overflow:hidden;background:#1d1027}
.story-photo img{display:block;width:100%;height:430px;object-fit:cover}
.story-photo figcaption{padding:30px;color:#f1dffb;font:italic 25px/1.4 Georgia,serif}
.story-photo figcaption span{display:block;margin-top:20px;font:400 11px 'DM Mono',monospace;letter-spacing:.1em;color:#c8afd7}
.artist-timeline{list-style:none;margin:0;padding:0 0 0 27px;border-left:1px solid #cbb2d9}
.artist-timeline li{position:relative;padding:0 0 38px}
.artist-timeline li:before{content:'';position:absolute;left:-32px;top:4px;width:9px;height:9px;border-radius:50%;background:#a746d6;box-shadow:0 0 0 5px #f8f4fa}
.story-date{color:#8131ad;font:500 11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em}
.artist-timeline h3{margin:12px 0;font:400 29px/1.15 'Playfair Display',Georgia,serif;letter-spacing:-.025em}
.artist-timeline p{color:#65536e;font-size:15px;line-height:1.8;margin:0 0 12px}
.story-chapter{max-width:810px;margin:65px auto 0;text-align:center;padding-top:55px;border-top:1px solid #decde7}
.story-chapter .section-label{color:#8131ad}
.story-chapter h3{font:400 clamp(35px,4.5vw,55px)/1.05 'Playfair Display',Georgia,serif;letter-spacing:-.04em;margin:25px 0}
.story-chapter p:not(.section-label){color:#65536e;font-size:16px;line-height:1.8}
.story-chapter blockquote{margin:32px 0;color:#8c36b5;font:italic 30px/1.35 Georgia,serif}
.story-chapter .button{margin-top:20px}
@media(max-width:820px){.story-layout{grid-template-columns:1fr;gap:45px}.story-photo{position:relative;top:auto;max-width:420px;margin:auto}.story-photo img{height:340px}.story-heading{margin-bottom:35px}.floating-note{width:195px}.intro-motto{max-width:310px}}
.preload{display:none;background:transparent;overflow:hidden;isolation:isolate}
body.intro-active{overflow:hidden}
.intro-active .preload{display:grid;opacity:1;visibility:visible}
.intro-curtain{position:absolute;inset:0 50% 0 0;background:#0b0710;z-index:-2;transition:transform 1.35s cubic-bezier(.76,0,.24,1)}
.intro-right{inset:0 0 0 50%}
.intro-halo{position:absolute;width:min(850px,130vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse,rgba(170,67,234,.23),rgba(111,40,154,.07) 48%,transparent 69%);animation:brand-halo 3.6s ease-out both;transition:opacity .7s}
.intro-orbit{position:absolute;width:min(570px,88vw);aspect-ratio:1;border:1px solid #ba6eee30;border-radius:50%;box-shadow:0 0 0 48px #ba6eee07,0 0 0 96px #ba6eee04;animation:brand-orbit 3.5s cubic-bezier(.2,.72,.2,1) both;transition:opacity .6s,scale 1.2s}
.intro-orbit:after{content:'✦';position:absolute;top:13%;right:13%;color:#d3a1f4;font-size:21px;text-shadow:0 0 24px #d49af9}
.intro-brand{position:relative;text-align:center;transition:opacity .55s,transform .8s cubic-bezier(.4,0,.2,1)}
.preload .intro-brand img{display:block;width:clamp(180px,24vw,290px);height:min(40vh,365px);margin:auto;object-fit:contain;filter:drop-shadow(0 0 32px #af50eb30);animation:brand-mark 1.5s cubic-bezier(.16,1,.3,1) both}
.intro-signature{margin:20px 0 0;color:#e8d1f8;font:500 11px 'DM Mono',monospace;letter-spacing:.5em;animation:brand-caption 1.2s .4s both}
.intro-motto{margin:21px 20px 0;color:#cbbbd4;font:italic 400 clamp(17px,2.5vw,22px) Georgia,serif;animation:brand-caption 1.2s .8s both}
.intro-line{height:1px;width:100px;margin:29px auto 0;background:linear-gradient(90deg,transparent,#d8a3fa,transparent);transform-origin:center;animation:brand-line 2.5s .3s both}
.intro-skip{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));right:clamp(20px,5vw,72px);padding:12px 4px;border:0;border-bottom:1px solid #c99be64d;background:transparent;color:#e2c8f2;font:400 12px 'DM Sans',Arial,sans-serif;cursor:pointer;animation:brand-caption .8s .8s both}
.preload .intro-skip span{position:static;margin:0 0 0 16px;font:inherit;color:inherit;letter-spacing:normal}
.intro-skip:focus-visible{outline:2px solid #d49af9;outline-offset:7px}
.intro-exiting .intro-brand{opacity:0;transform:translateY(-25px) scale(.94)}
.intro-exiting .intro-halo,.intro-exiting .intro-orbit,.intro-exiting .intro-skip{opacity:0}
.intro-exiting .intro-orbit{scale:1.2}
.intro-exiting .intro-left{transform:translateX(-101%)}
.intro-exiting .intro-right{transform:translateX(101%)}
.intro-exiting .preload{pointer-events:none}
.entrance-ready:not(.portal-entered) .hero .nav-inner,.entrance-ready:not(.portal-entered) .hero-copy>*,.entrance-ready:not(.portal-entered) .hero-art{opacity:0;transform:translateY(25px)}
.entrance-ready .portrait-frame{animation:none}
.portal-entered .hero .nav-inner{animation:portal-arrive 1s .1s both}
.portal-entered .hero-copy{opacity:1;transform:none}
.portal-entered .hero-copy>*{animation:portal-arrive 1.1s .2s both}
.portal-entered .hero-copy>h1{animation-delay:.34s}
.portal-entered .hero-copy>p:not(.eyebrow){animation-delay:.48s}
.portal-entered .hero-copy>.hero-buttons{animation-delay:.62s}
.portal-entered .hero-copy>.hero-proof{animation-delay:.76s}
.portal-entered .hero-art{animation:portal-arrive 1.5s .35s both}
.course-grid.visible>.course-card,.platform-grid.visible>.platform,.step-list.visible>.step{animation:portal-arrive .85s both}
.course-grid.visible>:nth-child(2),.platform-grid.visible>:nth-child(2),.step-list.visible>:nth-child(2){animation-delay:.13s}
.course-grid.visible>:nth-child(3),.platform-grid.visible>:nth-child(3),.step-list.visible>:nth-child(3){animation-delay:.26s}
@keyframes brand-mark{from{opacity:0;transform:translateY(22px) scale(.88);filter:blur(12px)}to{opacity:1;transform:none;filter:blur(0) drop-shadow(0 0 32px #af50eb30)}}
@keyframes brand-caption{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes brand-halo{from{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1.08)}}
@keyframes brand-orbit{from{opacity:0;transform:scale(.8) rotate(-24deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes brand-line{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes portal-arrive{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.intro-halo,.intro-orbit{display:none}.preload *{animation:none!important;transition:none!important}.entrance-ready .hero *{animation:none!important}.intro-active .intro-brand img{filter:none}}
@media(max-height:560px){.preload .intro-brand img{height:34vh}.intro-signature{margin-top:10px}.intro-motto{margin-top:12px}.intro-line{margin-top:15px}}
