:root{--maroon:#7a1e14;--maroon-hi:#942818;--saffron:#e8862a;--gold:#d9a441;--ivory:#fbf5ea;--charcoal:#2a1512;--smoke:#f4eadb;--midnight:#1e0b08;--wine:#4a1410;--muted:#7d6458;--ff-brand:"Cinzel", "Cormorant Garamond", Georgia, serif;--ff-display:"Cormorant Garamond", Georgia, serif;--ff-body:"DM Sans", system-ui, sans-serif;--ff-dev:"Noto Serif Devanagari", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--ff-body);background:var(--ivory);color:var(--charcoal);font-size:16px;line-height:1.6;overflow-x:hidden}.site nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e0b08eb;border-bottom:1px solid #d9a44140;justify-content:space-between;align-items:center;height:64px;padding:0 5vw;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{cursor:pointer;align-items:center;gap:10px;text-decoration:none;display:flex}.nav-logo-text{flex-direction:column;gap:0;display:flex}.logo-mark{width:32px;height:32px;color:var(--gold);flex-shrink:0;animation:24s linear infinite logo-spin}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.logo-mark{animation:none}}.nav-logo .dev{font-family:var(--ff-dev);color:var(--gold);letter-spacing:.05em;font-size:13px;line-height:1}.nav-logo .eng{font-family:var(--ff-brand);color:var(--ivory);letter-spacing:.14em;font-size:16px;font-weight:400;line-height:1.3}.nav-links{align-items:center;gap:28px;list-style:none;display:flex}.nav-links a{color:#fbf5eabf;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;font-size:12.5px;font-weight:500;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--gold)}.nav-cta{background:var(--maroon);border:1px solid #d9a44166;border-radius:2px;padding:8px 18px;color:var(--ivory)!important}.nav-cta:hover{background:var(--maroon-hi);color:var(--ivory)!important}.site section.hero{background:radial-gradient(ellipse at 75% 40%, #e8862a38, transparent 60%), linear-gradient(160deg, var(--midnight) 0%, var(--wine) 60%, #6a1c12 100%);padding:64px 0 0;position:relative;overflow:hidden}.hero-mandala{opacity:.05;pointer-events:none;width:720px;height:720px;animation:180s linear infinite logo-spin;position:absolute;top:50%;left:30%;transform:translate(-50%,-50%)}.hero-mandala svg{width:100%;height:100%}@media (prefers-reduced-motion:reduce){.hero-mandala{animation:none}}.hero-inner{grid-template-columns:1.25fr 1fr;align-items:center;gap:64px;max-width:1400px;margin:0 auto;padding:72px 8vw 64px;display:grid;position:relative}.hero-eyebrow{font-family:var(--ff-body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);align-items:center;gap:12px;margin-bottom:24px;font-size:11px;font-weight:500;display:flex}.hero-eyebrow:before{content:"";background:var(--gold);width:32px;height:1px;display:block}.hero-headline{font-family:var(--ff-display);color:var(--ivory);letter-spacing:-.01em;font-size:clamp(2.6rem,5.5vw,5rem);font-weight:300;line-height:1.05}.hero-headline em{color:var(--gold);font-style:italic}.hero-sub{font-family:var(--ff-dev);color:#d9a441bf;letter-spacing:.05em;margin-top:18px;font-size:18px}.hero-lede{color:#fbf5eaa6;max-width:520px;margin-top:20px;font-size:16px;font-weight:300;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:16px;margin-top:36px;display:flex}.hero-flyer{cursor:zoom-in;background:0 0;border:none;justify-self:center;width:100%;max-width:420px;padding:0;transition:transform .35s;display:block;position:relative;transform:rotate(1.5deg)}.hero-flyer:hover{transform:rotate(0)translateY(-4px)}.hero-flyer img{border:1px solid #d9a44180;width:100%;height:auto;display:block;box-shadow:0 30px 60px #00000080,0 0 0 8px #d9a44114}.hero-flyer-badge{z-index:1;background:var(--saffron);color:var(--midnight);letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;font-size:11px;font-weight:600;position:absolute;top:-14px;left:-14px;box-shadow:0 6px 18px #0000004d}.hero-banner{color:#fbf5eacc;letter-spacing:.06em;background:#00000040;border-top:1px solid #d9a44140;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;padding:18px 8vw;font-size:13px;display:flex;position:relative}.hero-banner-title{font-family:var(--ff-brand);color:var(--gold);letter-spacing:.12em;font-size:15px}.hero-banner-sep{color:var(--saffron);font-size:10px}.hero-banner-link{color:var(--gold);cursor:pointer;letter-spacing:.12em;text-transform:uppercase;margin-left:8px;font-size:12px;font-weight:600}.hero-banner-link:hover{text-decoration:underline}.btn-primary{background:var(--maroon);color:var(--ivory);cursor:pointer;font-family:var(--ff-body);letter-spacing:.12em;text-transform:uppercase;border:1px solid #d9a44159;padding:14px 32px;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .2s,transform .15s;display:inline-block}.btn-primary:hover{background:var(--maroon-hi);transform:translateY(-1px)}.btn-outline{color:#fbf5ead9;font-family:var(--ff-body);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #fbf5ea40;padding:14px 32px;font-size:12.5px;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s;display:inline-block}.btn-outline:hover{border-color:var(--gold);color:var(--gold)}.btn-ghost{color:var(--maroon);font-family:var(--ff-body);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #7a1e144d;padding:13px 22px;font-size:12px;font-weight:600;text-decoration:none;transition:border-color .2s,background .2s;display:inline-block}.btn-ghost:hover{border-color:var(--maroon);background:#7a1e140d}.photo-placeholder{display:block}.photo-picture{width:100%;height:100%;display:block}.photo-placeholder.photo-real{object-fit:cover;width:100%;height:100%}.photo-placeholder.photo-empty{background:linear-gradient(150deg, var(--charcoal) 0%, var(--maroon) 140%);color:#fbf5ea8c;border:1px dashed #d9a44159;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;height:100%;min-height:160px;display:flex}.photo-placeholder-label{letter-spacing:.06em;text-align:center;padding:0 12px;font-size:11.5px;font-weight:500}.site section{padding:100px 8vw}.section-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);align-items:center;gap:12px;margin-bottom:16px;font-size:11px;font-weight:500;display:flex}.section-eyebrow:before{content:"";background:var(--gold);width:24px;height:1px;display:block}.section-title{font-family:var(--ff-display);color:var(--charcoal);margin-bottom:16px;font-size:clamp(2rem,3.5vw,3.2rem);font-weight:300;line-height:1.1}.section-title em{color:var(--maroon);font-style:italic}.recital{background:var(--ivory);background-image:radial-gradient(at 0 0,#e8862a14,#0000 50%)}.recital-grid{grid-template-columns:4fr 5fr;align-items:start;gap:72px;display:grid}.recital-flyer{margin:0;position:sticky;top:96px}.recital-flyer-btn{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block;position:relative}.recital-flyer-btn img{width:100%;height:auto;display:block;box-shadow:0 24px 48px #4a141040}.recital-flyer-zoom{color:var(--ivory);letter-spacing:.12em;text-transform:uppercase;opacity:0;background:#1e0b08cc;padding:8px 16px;font-size:11px;font-weight:600;transition:opacity .25s;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.recital-flyer-btn:hover .recital-flyer-zoom,.recital-flyer-btn:focus-visible .recital-flyer-zoom{opacity:1}@media (hover:none){.recital-flyer-zoom{opacity:1}}.recital-info .section-title{font-family:var(--ff-brand);letter-spacing:.04em;font-weight:400}.recital-sub{font-family:var(--ff-display);color:var(--muted);margin-bottom:32px;font-size:1.5rem;font-style:italic;font-weight:300}.recital-thanks{font-family:var(--ff-display);color:var(--maroon);margin-bottom:32px;font-size:1.25rem;font-style:italic}.countdown{gap:12px;margin-bottom:36px;display:flex}.countdown-unit{background:var(--wine);border-bottom:3px solid var(--saffron);flex-direction:column;align-items:center;gap:4px;min-width:92px;padding:16px 12px 12px;display:flex}.countdown-num{font-family:var(--ff-brand);color:var(--gold);font-size:2.2rem;font-weight:600;line-height:1}.countdown-label{letter-spacing:.16em;text-transform:uppercase;color:#fbf5ea99;font-size:10.5px;font-weight:500}.recital-details{background:#7a1e141f;border:1px solid #7a1e141f;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:32px;display:grid}.recital-details>div{background:#fff;padding:20px 24px}.recital-details-wide{grid-column:span 2}.recital-details dt{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;font-size:11px;font-weight:600}.recital-details dd{color:var(--charcoal);font-size:15px;line-height:1.55}.recital-details dd strong{font-family:var(--ff-display);font-size:1.3rem;font-weight:600}.recital-schedule{border-left:2px solid var(--gold);margin-bottom:36px;list-style:none}.recital-schedule li{grid-template-columns:96px 1fr;gap:16px;padding:10px 0 10px 24px;display:grid;position:relative}.recital-schedule li:before{content:"";background:var(--ivory);border:2px solid var(--saffron);border-radius:50%;width:10px;height:10px;position:absolute;top:17px;left:-6px}.schedule-time{font-family:var(--ff-display);color:var(--maroon);font-size:1.15rem;font-weight:600}.schedule-label{color:var(--charcoal);padding-top:2px;font-size:14.5px;font-weight:500}.schedule-label small{color:var(--muted);font-size:12.5px;font-weight:300;display:block}.recital-actions{flex-wrap:wrap;gap:12px;display:flex}.past-recital{background:var(--midnight)}.past-recital .section-title{color:var(--ivory)}.past-recital .section-title em{color:var(--gold)}.past-recital-intro{color:#fbf5ea8c;max-width:600px;font-size:15px;font-weight:300;line-height:1.75}.story-chapter{margin-top:64px}.story-chapter-head{align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.story-chapter-num{font-family:var(--ff-brand);color:var(--midnight);background:var(--gold);justify-content:center;align-items:center;min-width:44px;height:44px;font-size:1rem;display:flex}.story-chapter-title{font-family:var(--ff-display);color:var(--ivory);margin-bottom:6px;font-size:1.7rem;font-style:italic;font-weight:400;line-height:1.1}.story-chapter-blurb{color:#fbf5ea80;max-width:620px;font-size:14px;font-weight:300;line-height:1.65}.gallery-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.gallery-tile{aspect-ratio:4/3;margin:0;position:relative;overflow:hidden}.gallery-tile.wide{aspect-ratio:8/3;grid-column:span 2}.gallery-grid.portraits{grid-template-columns:repeat(8,1fr)}.gallery-grid.portraits .gallery-tile{aspect-ratio:2/3}.story-chapter-num.year{letter-spacing:.06em;min-width:0;padding:0 12px;font-size:.95rem}.story-divider{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);align-items:center;gap:20px;margin-top:80px;font-size:11px;font-weight:500;display:flex}.story-divider:before,.story-divider:after{content:"";background:#d9a4414d;flex:1;height:1px}.story-divider+.story-chapter{margin-top:40px}.video-row{grid-template-columns:128fr 81fr;gap:4px;max-width:1100px;display:grid}.story-video{min-width:0;margin:0;position:relative}.story-video.portrait{grid-area:1/2/span 2}.story-video video{aspect-ratio:16/9;object-fit:cover;background:#000;width:100%;display:block}.story-video.portrait video{aspect-ratio:auto;height:100%}.story-video figcaption{letter-spacing:.08em;color:#fbf5ead9;pointer-events:none;background:#1e0b08b3;padding:5px 10px;font-size:11px;font-weight:500;position:absolute;top:12px;left:12px}.gallery-btn{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.gallery-tile:nth-child(2n) .gallery-photo{animation-name:kb-drift-alt}.gallery-tile:nth-child(3n+1) .gallery-photo{animation-delay:-6s}.gallery-tile:nth-child(3n+2) .gallery-photo{animation-direction:alternate-reverse;animation-delay:-11s}.gallery-tile:hover .gallery-photo{animation-play-state:paused}.gallery-caption{color:var(--ivory);letter-spacing:.06em;opacity:0;pointer-events:none;background:linear-gradient(#0000,#000000b3);padding:28px 14px 12px;font-size:12px;font-weight:500;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.gallery-tile:hover .gallery-caption,.gallery-tile:focus-within .gallery-caption{opacity:1}@media (hover:none){.gallery-caption{opacity:1}}.about{background:var(--smoke)}.about-grid{grid-template-columns:5fr 4fr;align-items:start;gap:80px;margin-top:60px;display:grid}.about-text p{color:var(--muted);margin-bottom:20px;font-size:15.5px;font-weight:300;line-height:1.85}.about-text strong{color:var(--charcoal);font-weight:500}.about-pillars{grid-template-columns:1fr 1fr;gap:24px;margin-top:36px;display:grid}.pillar{border-left:2px solid var(--gold);padding-left:16px}.pillar-title{font-family:var(--ff-display);color:var(--charcoal);margin-bottom:4px;font-size:1.1rem;font-weight:600}.pillar-desc{color:var(--muted);font-size:13px;line-height:1.6}.about-aside{background:var(--wine);padding:40px;position:sticky;top:80px}.aside-quote{font-family:var(--ff-display);color:var(--ivory);margin-bottom:20px;font-size:1.5rem;font-style:italic;font-weight:300;line-height:1.4}.aside-attr{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-size:12px}.aside-divider{background:var(--gold);width:40px;height:1px;margin:20px 0}.aside-fact{margin-bottom:14px}.aside-fact strong{font-family:var(--ff-display);color:var(--gold);font-size:1.8rem;font-weight:600;line-height:1;display:block}.aside-fact span{color:#fbf5ea99;letter-spacing:.08em;font-size:12px}.teacher{background:var(--ivory)}.teacher-grid{grid-template-columns:1fr 2fr;align-items:start;gap:72px;margin-top:56px;display:grid}.teacher-portrait{position:relative}.portrait-frame{aspect-ratio:3/4;background:linear-gradient(145deg, var(--maroon) 0%, var(--wine) 100%);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.portrait-frame:before{content:"";pointer-events:none;z-index:1;border:1px solid #d9a44166;position:absolute;inset:12px}.portrait-photo{position:absolute;inset:0}.portrait-monogram{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.portrait-monogram-dev{font-family:var(--ff-dev);color:var(--gold);font-size:clamp(3.5rem,7vw,5.5rem);line-height:1.2}.portrait-monogram-eng{font-family:var(--ff-brand);letter-spacing:.24em;text-transform:uppercase;color:#fbf5eab3;font-size:13px}.portrait-badge{background:var(--gold);letter-spacing:.12em;text-transform:uppercase;color:var(--midnight);z-index:2;padding:12px 20px;font-size:11px;font-weight:600;position:absolute;bottom:28px;right:0}.teacher-bio .bio-name{font-family:var(--ff-display);color:var(--charcoal);margin-bottom:6px;font-size:2.4rem;font-weight:300;line-height:1.1}.teacher-bio .bio-title{letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:28px;font-size:12.5px;font-weight:500}.bio-body{color:var(--muted);margin-bottom:16px;font-size:15px;font-weight:300;line-height:1.85}.credentials{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.credential{color:var(--charcoal);background:#fff;border:1px solid #7a1e1426;align-items:center;gap:8px;padding:10px 18px;font-size:12.5px;font-weight:500;display:flex}.credential:before{content:"✦";color:var(--gold);font-size:10px}.curriculum{background:var(--midnight)}.curriculum .section-title{color:var(--ivory)}.curriculum .section-title em{color:var(--gold)}.curriculum-intro{color:#fbf5ea8c;max-width:560px;margin-bottom:60px;font-size:15px;font-weight:300;line-height:1.75}.curr-grid{background:#ffffff0f;grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.curr-item{background:var(--midnight);border-top:1px solid #d9a44126;padding:32px 28px;transition:background .25s}.curr-item:hover{background:#2a110c}.curr-num{font-family:var(--ff-display);color:#d9a44140;margin-bottom:16px;font-size:2.8rem;font-weight:300;line-height:1}.curr-title{font-family:var(--ff-display);color:var(--ivory);margin-bottom:10px;font-size:1.15rem;font-weight:600}.curr-desc{color:#fbf5ea73;font-size:13px;font-weight:300;line-height:1.65}.programs{background:var(--smoke)}.programs-grid{grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;display:grid}.program-card{border:1px solid #0000000f;border-bottom:3px solid var(--maroon);background:#fff;flex-direction:column;padding:36px 32px;transition:box-shadow .2s,transform .2s;display:flex}.program-card:hover{transform:translateY(-2px);box-shadow:0 12px 36px #7a1e141a}.program-photo{aspect-ratio:16/10;margin:-36px -32px 0;overflow:hidden}.program-photo img{transition:transform .6s}.program-card:hover .program-photo img{transform:scale(1.05)}.program-icon{background:var(--ivory);border:1px solid #e8862a4d;justify-content:center;align-items:center;width:48px;height:48px;margin:-24px 0 20px;font-size:22px;display:flex;position:relative}.program-title{font-family:var(--ff-display);color:var(--charcoal);margin-bottom:10px;font-size:1.45rem;font-weight:600}.program-desc{color:var(--muted);flex:1;font-size:14px;font-weight:300;line-height:1.75}.program-link{letter-spacing:.1em;text-transform:uppercase;color:var(--maroon);cursor:pointer;margin-top:24px;font-size:11.5px;font-weight:600}.program-link:hover{color:var(--saffron)}.register{background:linear-gradient(150deg, var(--maroon) 0%, var(--wine) 100%)}.register-inner{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.register .section-title{color:var(--ivory)}.register .section-eyebrow{color:#ffffffa6}.register .section-eyebrow:before{background:#fff6}.register-body{color:#ffffffb8;margin-bottom:32px;font-size:15px;font-weight:300;line-height:1.8}.register-steps{flex-direction:column;gap:16px;display:flex}.reg-step{align-items:flex-start;gap:16px;display:flex}.reg-step-num{width:28px;min-width:28px;height:28px;color:var(--gold);letter-spacing:.05em;border:1px solid #d9a44199;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.reg-step-text{color:#ffffffb8;font-size:14px;font-weight:300;line-height:1.5}.reg-step-text strong{color:#fff;font-weight:500}.reg-form{background:#fff;padding:40px;box-shadow:0 24px 60px #00000040}.form-title{font-family:var(--ff-display);color:var(--charcoal);margin-bottom:28px;font-size:1.6rem;font-weight:400}.form-error{color:#8f1d14;background:#7a1e1412;border:1px solid #7a1e1440;margin-bottom:16px;padding:10px 14px;font-size:13.5px}.form-success{color:var(--charcoal);background:#d9a4412e;border:1px solid #d9a44166;padding:16px;font-size:14px;line-height:1.6}.form-group{margin-bottom:20px}.site label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.site input,.site select,.site textarea{width:100%;font-family:var(--ff-body);color:var(--charcoal);background:var(--ivory);appearance:none;border:1px solid #0000001f;border-radius:0;outline:none;padding:12px 14px;font-size:14px;transition:border-color .2s}.site input:focus,.site select:focus,.site textarea:focus{border-color:var(--maroon)}.site textarea{resize:vertical;min-height:80px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.btn-submit{background:var(--maroon);color:#fff;width:100%;font-family:var(--ff-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border:none;padding:16px;font-size:12.5px;font-weight:600;transition:background .2s}.btn-submit:hover{background:var(--maroon-hi)}.contact{background:var(--ivory)}.contact-intro{color:var(--muted);max-width:540px;margin-bottom:40px;font-size:15px;font-weight:300;line-height:1.75}.contact-info-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.contact-info-card{border-left:3px solid var(--gold);background:#fff;padding:24px;box-shadow:0 2px 12px #4a14100a}.contact-info-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.contact-info-value{color:var(--charcoal);font-size:14.5px;line-height:1.5}a.contact-info-value{text-decoration:none;display:block}a.contact-info-value:hover{color:var(--maroon)}.ken-burns{will-change:transform;animation:18s ease-in-out infinite alternate kb-drift}@keyframes kb-drift{0%{transform:scale(1.02)translate(0)}to{transform:scale(1.12)translate(-2%,-1.5%)}}@keyframes kb-drift-alt{0%{transform:scale(1.12)translate(2%,-1%)}to{transform:scale(1.02)translateY(1%)}}@media (prefers-reduced-motion:reduce){.ken-burns{animation:none}}.faq{background:var(--smoke)}.site section.faq{padding:80px 8vw}.faq-grid{grid-template-columns:1fr 1fr;gap:32px 48px;margin-top:56px;display:grid}.faq-item{border-top:1px solid #0000001a;padding-top:24px}.faq-q{font-family:var(--ff-display);color:var(--charcoal);margin-bottom:10px;font-size:1.15rem;font-weight:600;line-height:1.3}.faq-a{color:var(--muted);font-size:14px;font-weight:300;line-height:1.75}.lightbox{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:zoom-out;background:#0f0503eb;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:56px 16px 24px;animation:.2s fade-in;display:flex;position:fixed;inset:0}.lightbox img{cursor:default;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 140px);box-shadow:0 30px 80px #0009}.lightbox-close{width:44px;height:44px;color:var(--ivory);cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:50%;font-size:26px;line-height:1;position:absolute;top:12px;right:16px}.lightbox-close:hover{border-color:var(--gold);color:var(--gold)}.lightbox-download{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;border:1px solid #d9a44180;padding:10px 20px;font-size:12px;font-weight:600;text-decoration:none}.lightbox-download:hover{background:var(--gold);color:var(--midnight)}.lightbox-caption{color:#fbf5ead9;letter-spacing:.06em;text-align:center;font-size:13px}.lightbox-caption span{color:#fbf5ea73;margin-left:10px}.lightbox-arrow{width:48px;height:48px;color:var(--ivory);cursor:pointer;z-index:1;background:#1e0b0899;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;font-size:26px;line-height:1;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-arrow:hover{border-color:var(--gold);color:var(--gold)}.lightbox-prev{left:16px}.lightbox-next{right:16px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.site footer{background:var(--midnight);border-top:1px solid #d9a44133;padding:64px 8vw 32px}.footer-grid{grid-template-columns:2fr 1fr 1fr 1.2fr;gap:48px;margin-bottom:56px;display:grid}.footer-brand .dev{font-family:var(--ff-dev);color:var(--gold);margin-bottom:6px;font-size:15px;line-height:1}.footer-brand .eng{font-family:var(--ff-brand);color:var(--ivory);letter-spacing:.12em;margin-bottom:16px;font-size:1.4rem;font-weight:400}.footer-tagline{color:#fbf5ea73;max-width:300px;font-size:13px;font-weight:300;line-height:1.6}.footer-col-title{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;font-size:10.5px;font-weight:600}.footer-col ul{list-style:none}.footer-col li{margin-bottom:10px}.footer-col a{color:#fbf5ea80;cursor:pointer;font-size:13.5px;font-weight:300;text-decoration:none;transition:color .2s}.footer-col a:hover{color:var(--ivory)}.footer-contact-item{color:#fbf5ea80;margin-bottom:12px;font-size:13.5px;font-weight:300;line-height:1.5}.footer-contact-item strong{color:#fbf5eabf;font-weight:500;display:block}.footer-contact-item a{color:inherit;text-decoration:none}.footer-contact-item a:hover{color:var(--gold)}.footer-bottom{border-top:1px solid #ffffff12;justify-content:space-between;align-items:center;padding-top:24px;display:flex}.footer-copy{color:#fbf5ea59;flex-direction:column;gap:4px;font-size:12px;display:flex}.footer-credit a{color:#fbf5ea8c;text-decoration:none}.footer-credit a:hover{color:var(--gold)}.footer-social{gap:16px;display:flex}.social-link{color:#fbf5ea73;cursor:pointer;border:1px solid #ffffff1f;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;text-decoration:none;transition:border-color .2s,color .2s;display:flex}.social-link:hover{border-color:var(--gold);color:var(--gold)}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.reveal.in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}@media (width<=960px){.about-grid,.teacher-grid,.register-inner,.footer-grid,.recital-grid,.hero-inner{grid-template-columns:minmax(0,1fr);gap:40px}.hero-inner{padding:48px 6vw}.hero-flyer{max-width:340px}.recital-flyer{max-width:440px;margin:0 auto;position:static}.about-aside{position:static}.teacher-portrait{max-width:320px}.curr-grid{grid-template-columns:1fr 1fr}.programs-grid,.faq-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-flow:dense}.gallery-grid.portraits{grid-template-columns:repeat(4,1fr)}.video-row{grid-template-columns:minmax(0,1fr);gap:12px}.story-video.portrait{grid-area:auto;width:min(100%,360px)}.story-video.portrait video{aspect-ratio:9/16;height:auto}.story-divider{text-align:center;margin-top:56px}.gallery-tile.wide{aspect-ratio:16/9}.story-chapter{margin-top:48px}.nav-links{display:none}.site section{padding:72px 6vw}}@media (width<=600px){.curr-grid{grid-template-columns:1fr}.lightbox-arrow{width:40px;height:40px;top:auto;bottom:20px;transform:none}.form-row{grid-template-columns:1fr}.reg-form{padding:28px 20px}.about-pillars{grid-template-columns:1fr}.countdown-unit{flex:1;min-width:0}.recital-details{grid-template-columns:1fr}.recital-details-wide{grid-column:auto}.recital-schedule li{grid-template-columns:80px 1fr}.recital-actions>*{text-align:center;flex:100%}.hero-banner-sep{display:none}.hero-banner{flex-direction:column;gap:4px}.hero-banner-link{margin:6px 0 0}.footer-bottom{flex-direction:column;align-items:flex-start;gap:16px}}.hamburger{cursor:pointer;z-index:110;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none;position:relative}.hamburger span{background:var(--ivory);width:24px;height:1.5px;transition:transform .2s,opacity .2s;display:block}.hamburger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}@media (width<=960px){.hamburger{display:flex}}.mobile-menu{z-index:99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e0b08fa;border-bottom:1px solid #d9a44140;animation:.2s mobile-menu-in;position:fixed;top:64px;left:0;right:0}@keyframes mobile-menu-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-menu ul{padding:12px 5vw 24px;list-style:none}.mobile-menu li{border-bottom:1px solid #ffffff0f}.mobile-menu a{color:#fbf5ead9;letter-spacing:.04em;cursor:pointer;padding:16px 4px;font-size:14px;font-weight:500;text-decoration:none;display:block}.mobile-menu-cta{font-weight:600;color:var(--gold)!important}
