:root{--violet:#8A4DFF;--plum:#0B0910;--gold:#F5B82E;--gold-deep:#8F6200;--pink:#F05DAB;--blue:#438DE8;--ivory:#FFF6E5;
--bg:var(--ivory);--surface:#fff;--text:#0B0910;--muted:#5B5560;--line:rgba(11,9,16,.14);
--t-pur:#6A33D8;--t-gold:#8F6200;--head-txt:#fff;
--ff-d:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;--ff-b:"Figtree","Segoe UI",system-ui,sans-serif;
--head-bg:#0B0910;--pad:clamp(1.25rem,5vw,4rem);--hh:68px;--max:1240px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--hh)}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 var(--ff-b);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--ff-d);margin:0;line-height:1.05;letter-spacing:-.02em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:6px}
.skip{position:absolute;inset-inline-start:1rem;top:-4rem;background:#fff;color:var(--plum);padding:.6rem 1rem;border-radius:8px;z-index:200}
.skip:focus{top:1rem}

/* buttons */
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:.6rem;position:relative;overflow:hidden;isolation:isolate;background:var(--gold);color:var(--plum);font:600 1rem var(--ff-b);text-decoration:none;padding:.8rem 1.5rem;border-radius:999px;border:0;cursor:pointer;transition:transform .3s,box-shadow .3s}
.btn::before{content:"";position:absolute;inset:0;background:var(--pink);transform:translateY(101%);transition:transform .35s cubic-bezier(.2,.8,.2,1);z-index:-1}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.3)}
.btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.btn:hover svg{transform:translateY(3px)}
.btn--sm{height:36px;padding:0 1.1rem;justify-content:center;line-height:1;font-size:.92rem}
.btn--big{padding:1rem 1.8rem;font-size:1.1rem}

/* header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--hh);background:var(--head-bg);color:#fff;border-bottom:1px solid rgba(245,184,46,.28);transition:height .3s,box-shadow .3s}
.site-header.scrolled{height:60px;box-shadow:0 8px 28px rgba(0,0,0,.35)}
.bar{width:min(100% - 2*var(--pad),var(--max));height:100%;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem}
.brand{justify-self:start;display:flex;align-items:center;gap:.7rem;text-decoration:none;white-space:nowrap}
.brand img{width:40px;height:40px;border-radius:50%;background:#fff;padding:2px;flex:none}
.brand__t{display:flex;flex-direction:column;line-height:1.1}
.brand b{font:800 1.2rem var(--ff-d);letter-spacing:-.02em}
.brand small{display:block;font:600 .62rem var(--ff-b);color:var(--gold);letter-spacing:.01em;margin-top:2px}
.nav{justify-self:center}
.nav>ul{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.nav__link{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .8rem;border:0;border-radius:999px;background:none;color:inherit;font:600 .95rem var(--ff-b);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .25s}
.nav__link:hover{background:rgba(255,255,255,.14)}
.nav__link[aria-current=page],.nav__link.is-active{background:var(--gold);color:var(--plum)}
.dd-btn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.has-dd{position:relative}
.has-dd::after{content:"";position:absolute;inset:100% 0 -.9rem}
.has-dd.open .dd-btn svg,.has-dd:hover .dd-btn svg{transform:rotate(180deg)}
.dd{position:absolute;top:calc(100% + .7rem);left:50%;min-width:200px;list-style:none;margin:0;padding:.5rem;background:var(--surface);color:var(--text);border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.3);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .25s,transform .25s,visibility .25s}
.has-dd:hover>.dd,.has-dd.open>.dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dd a{display:block;padding:.65rem .95rem;border-radius:10px;font-weight:600;text-decoration:none;white-space:nowrap}
.dd a:hover{background:rgba(138,77,255,.12)}
.dd a[aria-current=page]{background:var(--violet);color:#fff}
.actions{justify-self:end;display:flex;align-items:center;gap:.6rem}
.tool,.burger{width:36px;height:36px;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .25s,border-color .25s}
.tool:hover,.burger:hover{background:rgba(255,255,255,.16);border-color:var(--gold)}
.tool svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.i-moon{fill:currentColor!important}.i-sun{display:none}
[data-theme=dark] .i-sun{display:block}[data-theme=dark] .i-moon{display:none}
.burger{display:none;align-content:center;gap:4px}
.burger span{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .3s,opacity .3s}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.nav__extra{display:none}
@media (max-width:900px){
 .bar{grid-template-columns:1fr auto}
 .nav{justify-self:stretch}
 .burger{display:grid}.tool--rtl{display:grid}.btn--head{display:none}
 .nav{position:absolute;top:100%;inset-inline:0;background:var(--head-bg);padding:1rem var(--pad) 1.5rem;max-height:calc(100vh - 64px);overflow:auto;border-top:1px solid rgba(255,255,255,.12);box-shadow:0 20px 30px rgba(0,0,0,.35);transform:translateY(-10px);opacity:0;visibility:hidden;transition:.3s}
 .nav.open{transform:none;opacity:1;visibility:visible}
 .nav>ul{flex-direction:column;align-items:stretch;gap:.2rem}
 .nav__link{width:100%;justify-content:space-between;padding:.85rem 1rem}
 .has-dd::after{display:none}
 .dd{position:static;display:none;min-width:0;margin:.2rem 0 .4rem 1rem;background:rgba(255,255,255,.08);color:#fff;box-shadow:none;opacity:1;visibility:visible;transform:none}
 .has-dd.open>.dd,.has-dd:hover>.dd{transform:none}
 .has-dd.open>.dd{display:block}
 .dd a:hover{background:rgba(255,255,255,.14)}
 .nav__extra{display:none!important}
}
.stub{min-height:80vh;display:grid;place-items:center;text-align:center;padding:calc(var(--hh) + 4rem) var(--pad) 4rem}
.stub h1{font-size:clamp(2.4rem,7vw,5rem);font-weight:800;color:var(--t-pur);margin-bottom:1rem}
.stub p{color:var(--muted);margin-bottom:1.8rem}

/* footer + shared bits (About page styles live in about.css) */
.foot{background:#050408;color:rgba(255,255,255,.75);text-align:center;padding:1.5rem var(--pad);font-size:.9rem}
mark{background:none;color:inherit}
@media (max-width:600px){
 .bar{gap:.45rem;grid-template-columns:minmax(0,1fr) auto}
 .brand{gap:.45rem;min-width:0;white-space:nowrap}
 .brand img{width:34px;height:34px}
 .brand__t{min-width:0}
 .brand b{font-size:1rem;white-space:nowrap}
 .brand small{display:none}
 .actions{gap:.35rem}
 .tool,.burger{width:34px;height:34px;flex:none}
 .tool--rtl{display:grid}
 .btn--head{display:none!important}
}
@media (max-width:380px){
 .bar{gap:.35rem}
 .brand{gap:.35rem}
 .brand img{width:30px;height:30px}
 .brand b{font-size:.91rem;letter-spacing:-.035em}
 .actions{gap:.25rem}
 .tool,.burger{width:31px;height:31px}
 .tool svg{width:15px;height:15px}
 .burger span{width:15px}
}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 html{scroll-behavior:auto}
}
.js .rv{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}}


/* ===== HOME 1 · hero (prefix hr) ===== */
.home1{--ff-d:"Poppins","Segoe UI",system-ui,sans-serif;--ff-b:"DM Sans","Segoe UI",system-ui,sans-serif}
.home1 h1,.home1 h2,.home1 h3{letter-spacing:-.01em}
.home1 .brand b{font-weight:700;letter-spacing:-.01em}
.hr{position:relative;isolation:isolate;overflow:hidden;color:#fff;min-height:clamp(580px,88vh,700px);display:flex;align-items:center;padding:calc(var(--hh) + 2.5rem) var(--pad) 5rem;background:#0B0910}
.hr__slides{position:absolute;inset:0;z-index:-2}
.hr__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.hr__slide.is-on{opacity:1}
.hr__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.hr__slide.is-on img{animation:hrzoom 8s ease-out forwards}
@keyframes hrzoom{from{transform:scale(1.02)}to{transform:scale(1.14)}}
.hr__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,9,16,.92) 0%,rgba(11,9,16,.68) 42%,rgba(60,24,120,.3) 100%),linear-gradient(0deg,rgba(240,93,171,.25),transparent 40%)}
[dir=rtl] .hr__shade{transform:scaleX(-1)}

/* floating colour + sparkles */
.hr__fx{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hr__orb{position:absolute;border-radius:50%;filter:blur(50px);opacity:.55;animation:hrfloat 9s ease-in-out infinite alternate}
.hr__orb--a{width:300px;height:300px;background:var(--violet);inset-inline-end:8%;top:-60px}
.hr__orb--b{width:240px;height:240px;background:var(--pink);inset-inline-start:-60px;bottom:6%;animation-delay:-4s}
@keyframes hrfloat{to{transform:translate(24px,-30px) scale(1.12)}}
.hr__sp{position:absolute;width:var(--s,18px);fill:var(--c,var(--gold));animation:hrtwinkle 3.2s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes hrtwinkle{0%,100%{opacity:.15;transform:scale(.5) rotate(0)}50%{opacity:1;transform:scale(1) rotate(25deg)}}

/* layout */
.hr__inner{position:relative;width:100%;max-width:var(--max);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem}
.hr__copy{max-width:600px}
.hr__badge{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.35rem .9rem;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.28);font:600 .8rem var(--ff-b);letter-spacing:.02em;animation:hrin .8s .1s both}
.hr__badge svg{width:14px;height:14px;fill:var(--gold)}
.hr__title{margin:0 0 1rem;font:700 clamp(1.9rem,3.8vw,3rem)/1.2 var(--ff-d)}
.hr__ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.hr__ln>span{display:block;animation:hrword .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--dl,.25s)}
@keyframes hrword{from{transform:translateY(110%)}to{transform:none}}
.hr__rot{position:relative;display:inline-block;height:1.2em;width:4.7em;overflow:hidden;vertical-align:bottom}
.hr__rot::after{content:"";position:absolute;inset-inline:0;bottom:.04em;height:.09em;border-radius:9px;background:linear-gradient(90deg,var(--gold),var(--pink),var(--violet));transform-origin:left;animation:hrdraw .8s 1.1s both}
[dir=rtl] .hr__rot::after{transform-origin:right}
@keyframes hrdraw{from{transform:scaleX(0)}}
.hr__words{display:block;animation:hrrot 12s 1.6s cubic-bezier(.7,0,.2,1) infinite}
.hr__words b{display:block;height:1.2em;line-height:1.2;font-weight:700;background:linear-gradient(95deg,var(--gold),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
@keyframes hrrot{0%,20%{transform:none}25%,45%{transform:translateY(-1.2em)}50%,70%{transform:translateY(-2.4em)}75%,95%{transform:translateY(-3.6em)}100%{transform:translateY(-4.8em)}}
.hr__lede{max-width:46ch;margin:0 0 1.5rem;font-size:1.02rem;line-height:1.65;color:rgba(255,255,255,.9);animation:hrin .8s .85s both}
.hr__cta{display:flex;flex-wrap:wrap;gap:.8rem;animation:hrin .8s 1s both}
.hr .btn{font-family:var(--ff-b);font-weight:700}
.hr__ghost{display:inline-flex;align-items:center;gap:.55rem;padding:.8rem 1.35rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.55);color:#fff;font:700 1rem var(--ff-b);text-decoration:none;transition:background .3s,border-color .3s,transform .3s}
.hr__ghost svg{width:15px;height:15px;fill:currentColor}
.hr__ghost:hover{background:rgba(255,255,255,.16);border-color:var(--gold);transform:translateY(-2px)}
@keyframes hrin{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* student highlights panel */
.hr__panel{width:300px;padding:1rem;border-radius:22px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 50px rgba(0,0,0,.35);animation:hrin .9s 1.2s both}
.hr__ptitle{display:flex;align-items:center;gap:.5rem;margin:0 0 .15rem;font:600 .72rem var(--ff-b);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.hr__live{position:relative;width:8px;height:8px;border-radius:50%;background:var(--pink)}
.hr__live::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--pink);animation:hrping 1.8s ease-out infinite}
@keyframes hrping{to{transform:scale(3);opacity:0}}
.hr__cap{margin:0 0 .8rem;font:600 1rem var(--ff-d);min-height:1.5em;transition:opacity .3s}
.hr__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}
.hr__thumb{position:relative;padding:0;border:0;border-radius:14px;overflow:hidden;aspect-ratio:1;cursor:pointer;background:#2a1d45;opacity:.6;transition:opacity .3s,transform .3s}
.hr__thumb:hover{opacity:.9;transform:translateY(-2px)}
.hr__thumb.is-on{opacity:1;outline:2px solid var(--gold);outline-offset:2px}
.hr__thumb img{width:100%;height:100%;object-fit:cover}
.hr__thumb i{position:absolute;inset-inline:0;bottom:0;height:4px;background:rgba(255,255,255,.3)}
.hr__thumb i::after{content:"";position:absolute;inset:0;background:var(--pink);transform:scaleX(0);transform-origin:left}
[dir=rtl] .hr__thumb i::after{transform-origin:right}
.hr__thumb.is-on i::after{animation:hrbar var(--dur,5.5s) linear forwards}
@keyframes hrbar{to{transform:scaleX(1)}}

/* curved edge into next section */
.hr__curve{position:absolute;inset-inline:-5%;bottom:-1px;height:48px;background:var(--bg);border-radius:50% 50% 0 0/100% 100% 0 0}

@media (max-width:900px){
 .hr{align-items:flex-start;min-height:0;padding-bottom:4.5rem}
 .hr__inner{grid-template-columns:1fr;gap:1.6rem}
 .hr__panel{width:100%;max-width:360px}
 .hr__shade{background:linear-gradient(180deg,rgba(11,9,16,.85),rgba(11,9,16,.72)),linear-gradient(0deg,rgba(240,93,171,.25),transparent 40%)}
}
@media (max-width:480px){.hr__cta .btn,.hr__ghost{flex:1;justify-content:center;white-space:nowrap}.hr__ghost{padding-inline:1rem}}
@media (prefers-reduced-motion:reduce){.hr__slide.is-on img{transform:none}.hr__thumb.is-on i::after{transform:scaleX(1)}}



/* ===== shared eyebrow / headings (home 1 sections) ===== */
.eb{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 .7rem;font:700 .76rem var(--ff-b);letter-spacing:.1em;text-transform:uppercase;color:var(--t-pur)}
.eb span{width:26px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--pink),var(--gold))}
.pf h2,.hw h2{font:700 clamp(1.65rem,3.1vw,2.3rem)/1.2 var(--ff-d)}
.pf h2 mark,.hw h2 mark{background:linear-gradient(var(--pink),var(--pink)) 0 92%/100% .3em no-repeat;color:inherit;padding-inline:.1em}
.pf__head,.hw__head{max-width:620px;margin:0 auto 2rem;text-align:center}
.pf__head>p:last-child,.hw__head>p:last-child{margin-top:.7rem;color:var(--muted)}

/* ===== HOME 1 · S2 Student Performance Highlights (ms) ===== */
.pf{position:relative;overflow:hidden;padding:clamp(2rem,4vw,3.2rem) var(--pad) clamp(3.5rem,6vw,5rem)}
.pf__th{position:relative;isolation:isolate;overflow:hidden;max-width:var(--max);margin:auto;border-radius:34px;color:#fff;padding:clamp(2.4rem,4vw,3.2rem) 8% 1.8rem;background:radial-gradient(60% 55% at 50% 0,rgba(255,226,150,.26),transparent 70%),radial-gradient(50% 40% at 100% 100%,rgba(240,93,171,.25),transparent 70%),linear-gradient(180deg,#22123f,#0B0910 75%);box-shadow:0 30px 70px rgba(60,24,120,.35)}
/* curtains */
.pf__cur{position:absolute;top:0;bottom:0;width:50%;z-index:4;pointer-events:none;background:repeating-linear-gradient(90deg,#7d0f3d 0,#c21b63 20px,#7d0f3d 40px);box-shadow:inset 0 -90px 90px rgba(0,0,0,.4);transform:scaleX(.13);transition:transform 1.9s .3s cubic-bezier(.7,0,.2,1)}
.pf__cur--l{left:0;transform-origin:left}.pf__cur--r{right:0;transform-origin:right}
.js .pf__th.rv:not(.in) .pf__cur{transform:scaleX(1)}
.pf__th.rv{transform:none!important;opacity:1!important}
.js .pf__th.rv:not(.in)>*:not(.pf__cur):not(.pf__pelmet){opacity:0}
.pf__th>*{transition:opacity .8s 1.2s}
.pf__pelmet{position:absolute;inset:0 0 auto;height:30px;z-index:5;pointer-events:none;background:radial-gradient(circle 24px at 24px 4px,#a8175a 98%,transparent) 0 0/48px 30px repeat-x,linear-gradient(#7d0f3d,#7d0f3d) 0 0/100% 8px no-repeat;filter:drop-shadow(0 6px 6px rgba(0,0,0,.4))}
.pf__beam{position:absolute;z-index:-1;top:0;width:30%;height:75%;background:linear-gradient(180deg,rgba(255,232,160,.3),transparent);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);transform-origin:50% 0;animation:hrsway2 7s ease-in-out infinite alternate}
.pf__beam--a{left:14%;--a:-10deg;--b:4deg}.pf__beam--b{right:14%;--a:10deg;--b:-4deg;animation-delay:-3s}
@keyframes hrsway2{from{transform:rotate(var(--a))}to{transform:rotate(var(--b))}}
.pf__sp{position:absolute;z-index:1;fill:var(--gold);width:18px;animation:hrtwinkle 3.2s ease-in-out infinite}
.pf__sp--a{top:12%;left:12%}.pf__sp--b{top:20%;right:11%;fill:var(--pink);animation-delay:-1s;width:14px}.pf__sp--c{top:46%;left:9%;fill:#B79BFF;animation-delay:-2s;width:12px}
/* stage */
.pf__stage{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1.4rem;align-items:center}
.pf__stage::after{content:"";position:absolute;z-index:-1;inset:auto 6% -30px 2%;height:60px;background:radial-gradient(closest-side,rgba(245,184,46,.45),transparent)}
.pf__frame{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#0B0910;border:3px solid var(--gold);box-shadow:0 0 0 7px rgba(245,184,46,.18),0 24px 60px rgba(0,0,0,.6)}
.pf__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pf__play{position:absolute;inset:0;display:grid;place-items:center;border:0;cursor:pointer;background:linear-gradient(0deg,rgba(11,9,16,.5),rgba(11,9,16,.1));transition:opacity .4s,visibility .4s}
.pf__play svg{position:relative;width:76px;height:76px;padding:25px 21px 25px 29px;border-radius:50%;background:var(--gold);fill:#0B0910;box-shadow:0 12px 30px rgba(0,0,0,.45);transition:transform .3s,background .3s}
.pf__play:hover svg{transform:scale(1.1);background:var(--pink)}
.pf__ring{position:absolute;width:76px;height:76px;border-radius:50%;border:3px solid var(--gold);animation:msring 2s ease-out infinite}
@keyframes msring{from{transform:scale(1);opacity:.9}to{transform:scale(1.9);opacity:0}}
.pf__live{position:absolute;top:.9rem;inset-inline-start:.9rem;display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .8rem;border-radius:999px;background:rgba(11,9,16,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font:700 .72rem var(--ff-b);letter-spacing:.06em;text-transform:uppercase;transition:opacity .4s}
.pf__live i{width:8px;height:8px;border-radius:50%;background:var(--pink);animation:hrping2 1.2s ease-in-out infinite alternate}
.pf__frame.is-playing .pf__play,.pf__frame.is-playing .pf__live{opacity:0;visibility:hidden}
/* star student */
.pf__star{position:relative;padding:1.2rem 1.1rem 1.1rem;border-radius:24px;text-align:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pf__avatar{position:relative;width:112px;height:112px;margin:0 auto .8rem}
.pf__avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:4px solid var(--gold);box-shadow:0 0 0 5px rgba(245,184,46,.25)}
.pf__badge{position:absolute;right:-6px;bottom:-4px;width:36px;height:36px;padding:7px;border-radius:50%;background:var(--pink);fill:#fff;animation:msspin 8s linear infinite}
@keyframes msspin{to{transform:rotate(360deg)}}
.pf__pill{display:inline-block;padding:.2rem .75rem;border-radius:999px;background:var(--gold);color:#0B0910;font:700 .7rem var(--ff-b);letter-spacing:.05em;text-transform:uppercase}
.pf__star h3{margin:.55rem 0 .3rem;font:600 1.15rem var(--ff-d)}
.pf__star p{font-size:.86rem;line-height:1.5;color:rgba(255,255,255,.82)}
.pf__ph{display:inline-block;margin-top:.6rem;padding:0 .5rem;border:1px dashed rgba(255,255,255,.55);border-radius:999px;font:600 .68rem var(--ff-b);color:rgba(255,255,255,.75)}
/* reel */
.pf__rh{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;margin:2.4rem 0 .9rem}
.pf__rh h3{display:flex;align-items:center;gap:.55rem;font:600 1.1rem var(--ff-d)}
.pf__rh h3 svg{width:18px;fill:var(--gold)}
.pf__arrows{display:flex;gap:.5rem}
.pf__arrows button{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .25s,border-color .25s,color .25s}
.pf__arrows button:hover{background:var(--gold);border-color:var(--gold);color:#0B0910}
.pf__arrows svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pf__reel{position:relative;z-index:2;display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.4rem .2rem 1rem;scroll-behavior:smooth}
.pf__reel::-webkit-scrollbar{display:none}
.pf__post{position:relative;flex:0 0 clamp(190px,20%,235px);aspect-ratio:3/4.2;border-radius:20px;overflow:hidden;scroll-snap-align:start;background:#2a1d45;color:#fff;text-decoration:none;border:2px solid transparent;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s;cursor:pointer}
.pf__post:hover,.pf__post:focus-visible{transform:translateY(-10px) rotate(-1deg);border-color:var(--c);box-shadow:0 18px 36px rgba(0,0,0,.5),0 0 0 4px color-mix(in srgb,var(--c) 30%,transparent)}
.pf__post img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s}
.pf__post:hover img{transform:scale(1.1)}
.pf__post::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,9,16,.92) 0%,rgba(11,9,16,.1) 55%,transparent)}
.pf__no{position:absolute;z-index:1;top:.7rem;inset-inline-start:.9rem;font:700 1.7rem/1 var(--ff-d);color:transparent;-webkit-text-stroke:1.5px #fff;opacity:.9}
.pf__ptag{position:absolute;z-index:1;top:.9rem;inset-inline-end:.8rem;padding:.2rem .65rem;border-radius:999px;background:var(--c);color:#0B0910;font:700 .66rem var(--ff-b)}
.pf__pcap{position:absolute;z-index:1;inset-inline:0;bottom:0;padding:1rem}
.pf__pcap h4{font:600 1.02rem/1.25 var(--ff-d)}
.pf__watch{display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem;font:700 .76rem var(--ff-b);color:var(--c)}
.pf__watch svg{width:12px;height:12px;fill:currentColor}
.pf__post--cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:1.2rem;text-align:center;background:linear-gradient(160deg,var(--pink),var(--violet));border:2px dashed rgba(255,255,255,.6)}
.pf__post--cta::after{display:none}
.pf__post--cta svg{width:38px;fill:var(--gold);animation:msspin 8s linear infinite}
.pf__post--cta h4{font:600 1.1rem/1.3 var(--ff-d)}
.pf__post--cta .btn{background:#fff}
@media (max-width:980px){
 .pf__th{padding-inline:7%}
 .pf__stage{grid-template-columns:1fr}
 .pf__star{display:grid;grid-template-columns:96px 1fr;gap:0 1rem;text-align:start;align-items:center;padding:1rem}
 .pf__avatar{grid-row:1/5;width:96px;height:96px;margin:0}
 .pf__pill{justify-self:start}.pf__ph{justify-self:start}
 .pf__star h3{margin:.4rem 0 .2rem}
 .pf__post{flex-basis:200px}
}
@media (max-width:480px){.pf__th{padding-inline:9%;border-radius:26px}.pf__play svg,.pf__ring{width:62px;height:62px}.pf__play svg{padding:20px 17px 20px 24px}.pf__post{flex-basis:168px}.pf__star p{font-size:.8rem}}

/* ===== HOME 1 · S4 How it works (hw) ===== */
.hw{position:relative;overflow:hidden;padding:clamp(3.5rem,6vw,5.5rem) var(--pad);background:linear-gradient(180deg,rgba(138,77,255,.1),transparent 45%)}
.hw__wrap{position:relative;max-width:1000px;margin:auto}
.hw__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.hw__track,.hw__live{fill:none;stroke-linecap:round}
.hw__track{stroke:var(--line);stroke-width:3;stroke-dasharray:2 11}
.hw__live{stroke:url(#hw-g);stroke-width:6}
.hw__marker{position:absolute;z-index:3;left:0;top:0;width:36px;height:36px;margin:-18px 0 0 -18px;display:grid;place-items:center;border-radius:50%;background:var(--gold);box-shadow:0 0 0 7px rgba(245,184,46,.28),0 0 26px rgba(245,184,46,.85);opacity:0;transition:opacity .4s}
.hw__marker.on{opacity:1}
.hw__marker svg{width:18px;fill:#0B0910;animation:msspin 6s linear infinite}
.hw__list{position:relative;z-index:1;list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.8rem,4vw,3rem)}
.hw__s{display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;gap:0 1.2rem}
.hw__card{grid-column:1;grid-row:1;position:relative;padding:1.4rem 1.4rem 1.3rem;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:0 14px 34px rgba(11,9,16,.1);transition:transform .4s,box-shadow .4s}
.hw__card::before{content:"";position:absolute;inset-block:18px;inset-inline-end:-1px;width:5px;border-radius:5px;background:var(--c)}
.hw__card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(11,9,16,.16)}
.hw__pill{display:inline-block;margin-bottom:.6rem;padding:.2rem .75rem;border-radius:999px;background:var(--c);color:#0B0910;font:700 .7rem var(--ff-b);letter-spacing:.06em;text-transform:uppercase}
.hw__card h3{font:600 1.25rem var(--ff-d);margin-bottom:.4rem}
.hw__card p{font-size:.97rem;line-height:1.6;color:var(--muted)}
.hw__node{grid-column:2;grid-row:1;justify-self:center;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--c);color:#0B0910;font:700 1.25rem var(--ff-d);border:5px solid var(--bg);box-shadow:0 0 0 2px var(--c);transition:transform .4s}
.hw__s:hover .hw__node{transform:scale(1.15) rotate(-8deg)}
.hw__pic{grid-column:3;grid-row:1;position:relative;justify-self:center;width:min(100%,230px);aspect-ratio:1}
.hw__pic::before{content:"";position:absolute;inset:0;background:var(--c);transform:translate(12px,12px);border-radius:58% 42% 52% 48%/46% 56% 44% 54%;animation:hwmorph 9s ease-in-out infinite alternate-reverse}
.hw__pic img{position:relative;width:100%;height:100%;object-fit:cover;border-radius:42% 58% 48% 52%/54% 44% 56% 46%;animation:hwmorph 9s ease-in-out infinite alternate;box-shadow:0 14px 30px rgba(11,9,16,.25)}
@keyframes hwmorph{to{border-radius:58% 42% 52% 48%/46% 56% 44% 54%}}
.hw__s:nth-child(even) .hw__card{grid-column:3}
.hw__s:nth-child(even) .hw__pic{grid-column:1}
.hw__s:nth-child(even) .hw__card::before{inset-inline-end:auto;inset-inline-start:-1px}
.hw__cta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem 1.3rem;margin-top:2.8rem}
.hl-ghost{display:inline-flex;align-items:center;padding:.8rem 1.35rem;border-radius:999px;border:1.5px solid var(--text);color:var(--text);font:700 1rem var(--ff-b);text-decoration:none;transition:background .3s,color .3s,transform .3s}
.hl-ghost:hover{background:var(--text);color:var(--bg);transform:translateY(-2px)}
.hw__s.is-on .hw__node{box-shadow:0 0 0 2px var(--c),0 0 0 9px color-mix(in srgb,var(--c) 28%,transparent)}
@media (max-width:820px){
 .hw__s{grid-template-columns:52px minmax(0,1fr);gap:.9rem}
 .hw__node{grid-column:1;grid-row:1/3;align-self:start;width:46px;height:46px;font-size:1.05rem;border-width:4px}
 .hw__s .hw__pic,.hw__s:nth-child(even) .hw__pic{grid-column:2;grid-row:1;justify-self:start;width:140px}
 .hw__s .hw__card,.hw__s:nth-child(even) .hw__card{grid-column:2;grid-row:2}
 .hw__s .hw__card::before,.hw__s:nth-child(even) .hw__card::before{inset-inline-end:auto;inset-inline-start:-1px}
}
@media (prefers-reduced-motion:reduce){.hw__marker{opacity:1}.pf__cur{transform:scaleX(.13)!important}.pf__th>*{opacity:1!important}}


/* === Shared About + Contact page styles (consolidated) === */
/* ===== ABOUT PAGE · HERO + SECTIONS (prefix ab-) · Fraunces + Plus Jakarta Sans ===== */
.ab{--ff-d:"Fraunces",Georgia,"Times New Roman",serif;--ff-b:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;font-family:var(--ff-b);font-size:1rem;line-height:1.7;overflow-x:clip}
.ab h1,.ab h2,.ab h3{font-family:var(--ff-d);font-weight:600;letter-spacing:-.01em;line-height:1.14}
.ab-wrap{max-width:var(--max);margin-inline:auto;position:relative;z-index:1}
@keyframes ab-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes ab-reveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes ab-settle{from{transform:scale(1.18)}to{transform:none}}
@keyframes ab-float{to{transform:translateY(-8px)}}
@keyframes ab-spin{to{transform:rotate(360deg)}}
@keyframes ab-word{to{transform:none}}

.ab-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;
 padding:calc(var(--hh) + clamp(2.4rem,5vw,3.8rem)) var(--pad) clamp(3.2rem,6vw,4.8rem);
 background:radial-gradient(55% 70% at 92% 8%,rgba(138,77,255,.5),transparent 62%),radial-gradient(45% 55% at 0 100%,rgba(240,93,171,.24),transparent 62%),#0B0910}
.ab-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(80% 90% at 70% 40%,#000,transparent 80%);mask-image:radial-gradient(80% 90% at 70% 40%,#000,transparent 80%)}
.ab-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}

.ab-pill{display:inline-flex;align-items:center;gap:.6rem;font:600 .8rem/1 var(--ff-b);letter-spacing:.04em;padding:.55rem .95rem;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:rgba(255,255,255,.92)}
.ab-pill i{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(245,184,46,.25)}
.ab-hero h1{font-size:clamp(2.1rem,4.4vw,3.5rem);margin:1.2rem 0 1.1rem;max-width:15ch}
.ab-nb{white-space:nowrap}
.ab-w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .06em .14em 0;margin-inline-end:.22em}
.ab-w i{display:inline-block;font-style:normal;transform:translateY(112%);animation:ab-word .85s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.15s + var(--i)*.08s)}
.ab-w.em i{font-style:italic;font-weight:500;color:var(--gold)}
.ab-lede{color:rgba(255,255,255,.82);max-width:46ch;font-size:1.04rem}
.ab-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1rem;margin:1.8rem 0 0}
.ab-ghost{display:inline-flex;align-items:center;gap:.5rem;font:700 1rem var(--ff-b);color:#fff;text-decoration:none;padding:.8rem 1.4rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.4);transition:background .3s,border-color .3s,transform .3s}
.ab-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-2px)}
.ab-facts{list-style:none;margin:2.2rem 0 0;padding:1.4rem 0 0;border-top:1px solid rgba(255,255,255,.16);display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:.8rem 2rem}
.ab-facts li{white-space:nowrap;display:flex;align-items:center;gap:.6rem;font-size:.88rem;font-weight:600;color:rgba(255,255,255,.88)}
.ab-facts svg{flex:none;width:32px;height:32px;padding:7px;border-radius:50%;background:rgba(255,255,255,.1);fill:none;stroke:var(--gold);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ab-up{animation:ab-up .85s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d,0)*.1s + .1s)}

/* photo bento */
.ab-bento{position:relative;width:100%;max-width:520px;justify-self:end;aspect-ratio:1/1.06;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.15fr .85fr;gap:14px}
.ab-ph{position:relative;margin:0;overflow:hidden;border-radius:22px;background:linear-gradient(135deg,#8A4DFF,#F05DAB);box-shadow:0 24px 44px -22px rgba(0,0,0,.65);animation:ab-reveal 1.1s cubic-bezier(.7,0,.2,1) both;translate:var(--tx,0) var(--ty,0);transition:translate .4s ease-out}
.ab-ph img{width:100%;height:100%;object-fit:cover;display:block;animation:ab-settle 1.6s cubic-bezier(.2,.7,.2,1) both;transition:transform .8s}
.ab-ph:hover img{transform:scale(1.06)}
.ph1{grid-column:1;grid-row:1/3;border-radius:200px 22px 22px 22px;animation-delay:.2s}
.ph1 img{animation-delay:.2s}
.ph2{grid-column:2;grid-row:1;animation-delay:.4s}.ph2 img{animation-delay:.4s}
.ph3{grid-column:2;grid-row:2;border-radius:22px 22px 80px 22px;animation-delay:.6s}.ph3 img{animation-delay:.6s}
.ab-chip{position:absolute;z-index:3;inset-inline-start:-6%;bottom:9%;display:flex;align-items:center;gap:.65rem;padding:.7rem 1rem .7rem .75rem;border-radius:16px;background:rgba(255,255,255,.94);color:#0B0910;box-shadow:0 18px 34px -14px rgba(0,0,0,.6);animation:ab-up .9s 1s both,ab-float 5s 2s ease-in-out infinite alternate;translate:var(--tx,0) var(--ty,0);transition:translate .4s ease-out}
.ab-chip svg{width:34px;height:34px;padding:7px;border-radius:50%;background:var(--gold);fill:#0B0910}
.ab-chip b{display:block;font:600 .9rem/1.2 var(--ff-d)}
.ab-chip small{display:block;font:500 .74rem/1.3 var(--ff-b);color:#5B5560}
.ab-badge{position:absolute;z-index:3;width:clamp(76px,10vw,98px);inset-inline-end:-3%;top:-4%;animation:ab-up .9s 1.1s both;translate:var(--tx,0) var(--ty,0);transition:translate .4s ease-out}
.ab-badge .ring{transform-origin:center;animation:ab-spin 20s linear infinite}
.ab-badge text{font:700 10.4px var(--ff-b);letter-spacing:.14em;text-transform:uppercase;fill:#0B0910}
.ab-badge circle.bg{fill:var(--gold)}
.ab-badge .st{fill:#0B0910}

@media (max-width:900px){
 .ab-hero__grid{grid-template-columns:1fr}
 .ab-hero h1{max-width:18ch}
 .ab-bento{justify-self:center;max-width:440px;margin-top:.8rem}
 .ab-chip{inset-inline-start:0}.ab-badge{inset-inline-end:0}
}
@media (max-width:640px){
 .ab-facts{grid-template-columns:1fr;gap:.7rem}
 .ab-facts li{white-space:normal}
}
@media (max-width:560px){
 .ab-cta .btn,.ab-cta .ab-ghost{width:100%;justify-content:center}
 .ph1{border-radius:130px 18px 18px 18px}.ab-ph{border-radius:18px}.ph3{border-radius:18px 18px 56px 18px}
}
@media (prefers-reduced-motion:reduce){
 .ab-up,.ab-ph,.ab-ph img,.ab-chip,.ab-badge,.ab-w i{animation:none!important;transform:none}
 .ab-badge .ring{animation:none}
}


/* ===== SECTIONS 2-6 · Mission · History · Team · Testimonials · CTA ===== */
.ab-s{position:relative;padding:clamp(3rem,6vw,5.2rem) var(--pad);overflow:hidden}
.ab-s h2{font-size:clamp(1.5rem,2.7vw,2.05rem)}
.ab-s h3{font-size:1.05rem}
.ab-sub{color:var(--muted);font-size:.98rem;max-width:44ch;margin-top:.5rem}
.ab-s figure{margin:0}.ab-s img{width:100%;height:100%;object-fit:cover}
.ab-s button{font:inherit;cursor:pointer}
.ab-s svg{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* reveal system: hidden state only when JS runs and motion is allowed */
@media (prefers-reduced-motion:no-preference){
 .ab-js .rv{opacity:0;transform:translateY(26px)}
 .ab-js .ab-s.ab-in .rv{opacity:1;transform:none;transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*.12s)}
 .ab-js .ab-his .rv{transform:translateX(calc(46px*var(--dir,1)))}
 .ab-js .ab-tm .rv{transform:translateY(64px) scale(.95)}
 .ab-js .ab-join .rv--pop{transform:scale(.4)}
 .ab-js .ab-join.ab-in .rv--pop{transition:opacity .5s,transform .9s cubic-bezier(.3,1.5,.5,1);transition-delay:calc(var(--i,0)*.15s + .2s)}
 .ab-js .ab-mis__ph figure{clip-path:inset(0 0 100% 0)}
 .ab-js .ab-mis.ab-in .ab-mis__ph figure{clip-path:inset(0);transition:clip-path 1.1s cubic-bezier(.7,0,.2,1)}
 .ab-js .ab-mis.ab-in .m2{transition-delay:.3s}
}
.ab-in .rv{opacity:1}

/* 2 · MISSION — ivory, overlapping arch collage + 2x2 values */
.ab-mis{background:var(--bg)}
.ab-mis__g{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.ab-mis__ph{position:relative;aspect-ratio:1/1.05;max-width:460px;width:100%}
.m1{position:absolute;inset:0 18% 12% 0;border-radius:200px 200px 24px 24px;overflow:hidden;box-shadow:0 26px 44px -24px rgba(11,9,16,.5)}
.m2{position:absolute;inset:auto 0 0 42%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:6px solid var(--bg);box-shadow:0 20px 36px -20px rgba(11,9,16,.5)}
.m-dot{position:absolute;inset-inline-start:-4%;bottom:6%;width:78px;height:78px;border-radius:50%;background:var(--gold);z-index:-1}
.ab-vals{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ab-vals li{padding:1rem 1.1rem;border-radius:18px;background:var(--surface);border:1px solid var(--line);transition:transform .3s,box-shadow .3s}
.ab-vals li:hover{transform:translateY(-4px);box-shadow:0 16px 30px -18px rgba(138,77,255,.5)}
.ab-vals svg{width:38px;height:38px;padding:9px;border-radius:12px;margin-bottom:.55rem}
.c-v{background:rgba(138,77,255,.14);color:var(--t-pur)}.c-p{background:rgba(240,93,171,.16);color:#C02C7F}.c-g{background:rgba(245,184,46,.2);color:var(--gold-deep)}.c-b{background:rgba(67,141,232,.16);color:#1F63B8}
[data-theme=dark] .c-p{color:var(--pink)}[data-theme=dark] .c-g{color:var(--gold)}[data-theme=dark] .c-b{color:#7FB3F5}
.ab-vals b{display:block;font:700 .95rem var(--ff-b)}
.ab-vals small{display:block;color:var(--muted);font-size:.85rem;line-height:1.45}

/* 3 · HISTORY — white, scroll-snap film strip with year tags + counter band */
.ab-his{background:var(--surface)}
.ab-his__h{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.6rem}
.ab-arr{display:flex;gap:.5rem}
.ab-arr button{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--text);display:grid;place-items:center;transition:background .25s,color .25s,border-color .25s}
.ab-arr button:hover{background:var(--gold);color:#0B0910;border-color:var(--gold)}
.ab-arr svg{width:18px;height:18px}
.ab-strip{list-style:none;margin:0;padding:.4rem 0 1rem;display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;outline-offset:6px}
.ab-strip::-webkit-scrollbar{display:none}
.ab-hc{flex:0 0 min(290px,78vw);scroll-snap-align:start;position:relative}
.ab-hc figure{aspect-ratio:4/3.2;border-radius:22px 22px 22px 70px;overflow:hidden}
.ab-hc img{transition:transform .7s}.ab-hc:hover img{transform:scale(1.07)}
.ab-hc .yr{position:absolute;inset-inline-start:14px;top:14px;background:var(--gold);color:#0B0910;font:700 .85rem var(--ff-b);padding:.3rem .8rem;border-radius:999px}
.ab-hc h3{margin:.9rem 0 .15rem}
.ab-hc p{color:var(--muted);font-size:.9rem;line-height:1.5}
.ab-prog{height:4px;border-radius:4px;background:var(--line);margin:.3rem 0 2rem;overflow:hidden}
.ab-prog i{display:block;height:100%;width:30%;border-radius:4px;background:linear-gradient(90deg,var(--pink),var(--gold));transform-origin:left;transition:width .2s}
[dir=rtl] .ab-prog i{margin-inline-start:auto}
.ab-stats{list-style:none;margin:0;padding:1.3rem 1.5rem;border-radius:22px;background:#0B0910;color:#fff;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:1rem}
.ab-stats b{display:block;font:600 clamp(1.5rem,3vw,2rem) var(--ff-d);color:var(--gold)}
.ab-stats small{color:rgba(255,255,255,.75);font-size:.85rem}

/* 4 · TEAM — dark plum, full-width expanding photo panels */
.ab-tm{background:radial-gradient(50% 60% at 15% 0,rgba(138,77,255,.35),transparent 65%),radial-gradient(40% 50% at 100% 100%,rgba(240,93,171,.2),transparent 65%),#0B0910;color:#fff}
.ab-tm .ab-sub{color:rgba(255,255,255,.75)}
.ab-team{list-style:none;margin:2rem 0 0;padding:0;display:flex;gap:14px;height:clamp(360px,42vw,460px)}
.ab-team li{position:relative;flex:1 1 0;min-width:0;border-radius:26px;overflow:hidden;cursor:pointer;background:#17131F;border:2px solid rgba(255,255,255,.12);transition:flex .6s cubic-bezier(.2,.8,.2,1),border-color .3s;outline-offset:3px}
.ab-team li.on{flex:2.6 1 0;border-color:var(--gold)}
.ab-team img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s;filter:saturate(.85)}
.ab-team li.on img{transform:scale(1.04);filter:none}
.ab-team li::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 38%,rgba(11,9,16,.92))}
.ab-team .inf{position:absolute;inset-inline:0;bottom:0;z-index:1;padding:1.3rem 1.4rem}
.ab-team .tag{display:inline-block;background:var(--gold);color:#0B0910;font:700 .78rem var(--ff-b);padding:.28rem .7rem;border-radius:999px;margin-bottom:.6rem}
.ab-team h3{font-size:1.15rem;white-space:nowrap}
.ab-team .inf p{color:rgba(255,255,255,.82);font-size:.9rem;line-height:1.5;white-space:nowrap}
.ab-team .bio{max-height:0;opacity:0;overflow:hidden;white-space:normal!important;max-width:34ch;transition:max-height .5s,opacity .5s,margin .5s}
.ab-team li.on .bio{max-height:5em;opacity:1;margin-top:.45rem}
@media (prefers-reduced-motion:no-preference){.ab-js .ab-s.ab-in .ab-team .rv{transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1),flex .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*.12s),calc(var(--i,0)*.12s),0s}}

/* 6 · CTA — gold panel with floating round photos */
.ab-join{background:var(--bg)}
.ab-cta__p{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;padding:clamp(1.8rem,4vw,3rem) clamp(1.6rem,4vw,3.4rem);border-radius:32px;background:var(--gold);color:#0B0910;overflow:hidden}
.ab-join .ab-sub{color:#3B3320}
.ab-cta__b{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}
.ab-dk,.ab-ln{display:inline-flex;font:700 .98rem var(--ff-b);text-decoration:none;padding:.8rem 1.5rem;border-radius:999px;transition:transform .3s,background .3s,color .3s}
.ab-dk{background:#0B0910;color:#fff}.ab-dk:hover{background:var(--pink);transform:translateY(-2px)}
.ab-ln{border:1.5px solid #0B0910;color:#0B0910}.ab-ln:hover{background:#0B0910;color:#fff;transform:translateY(-2px)}
.ab-cta__ph{position:relative;aspect-ratio:1.2/1;min-height:200px}
.ab-cta__ph figure{position:absolute;border-radius:50%;overflow:hidden;border:5px solid #fff;box-shadow:0 16px 30px -16px rgba(0,0,0,.5)}
.ab-cta__ph .c1{width:56%;aspect-ratio:1;inset-inline-start:0;top:0}
.ab-cta__ph .c2{width:46%;aspect-ratio:1;inset-inline-end:0;top:18%}
.ab-cta__ph .c3{width:36%;aspect-ratio:1;inset-inline-start:30%;bottom:0}

@media (max-width:900px){
 .ab-mis__g,.ab-ts__g,.ab-cta__p{grid-template-columns:1fr}
 .ab-mis__ph{margin-inline:auto}
 .ab-cta__ph{max-width:340px;margin-inline:auto;width:100%}
}
@media (max-width:640px){
 .ab-vals{grid-template-columns:1fr}
 .ab-stats{padding:1rem}.ab-arr{display:none}
 .ab-cta__b a{flex:1;justify-content:center;text-align:center}
}

/* one shared page gutter: every section content box = same left/right edges as header + hero */
.ab-s>.ab-wrap,.ab-hero>.ab-wrap{width:100%;max-width:var(--max);margin-inline:auto}
@media (max-width:700px){
 .ab-team{flex-direction:column;height:auto}
 .ab-team li,.ab-team li.on{flex:none;height:250px}
 .ab-team .bio{max-height:5em;opacity:1;margin-top:.4rem}
 .ab-team .inf p{white-space:normal}
}

/* ===== compact CTA ===== */
.ab-join{padding-block:clamp(1.8rem,4vw,3rem)}
.ab-cta__p{grid-template-columns:1fr auto;gap:1.5rem;padding:clamp(1.2rem,3vw,1.9rem) clamp(1.3rem,3.5vw,2.4rem);border-radius:26px}
.ab-join h2{font-size:clamp(1.3rem,2.3vw,1.7rem)}
.ab-join .ab-sub{font-size:.92rem;margin-top:.3rem;max-width:50ch}
.ab-cta__b{margin-top:1rem}
.ab-dk,.ab-ln{padding:.6rem 1.2rem;font-size:.92rem}
.ab-cta__ph{display:flex;align-items:center;aspect-ratio:auto;min-height:0;max-width:none;width:auto;margin:0}
.ab-cta__ph .c1,.ab-cta__ph .c2,.ab-cta__ph .c3{position:relative;inset:auto;top:auto;bottom:auto;width:clamp(62px,8vw,92px);aspect-ratio:1;border-width:4px;margin-inline-start:-16px}
.ab-cta__ph .c1{margin-inline-start:0}
@media (max-width:700px){.ab-cta__p{grid-template-columns:1fr}.ab-cta__ph{order:-1}}

/* ===== footer ===== */
.abf{--ff-d:"Fraunces",Georgia,serif;--ff-b:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;font-family:var(--ff-b);font-size:.94rem;line-height:1.65;color:rgba(255,255,255,.76);background:#000;padding:clamp(2.8rem,6vw,4.2rem) var(--pad) 1.2rem;border-top:3px solid transparent;border-image:linear-gradient(90deg,var(--violet),var(--pink),var(--gold)) 1}
.abf__g{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:2.2rem clamp(1.5rem,4vw,3.5rem)}
.abf .brand{display:inline-flex;margin-bottom:1rem;color:#fff}
.abf__b p{max-width:32ch;margin-bottom:1.1rem}
.abf__s{display:flex;gap:.6rem;margin-bottom:1.3rem}
.abf__s a{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);display:grid;place-items:center;color:#fff;transition:background .25s,color .25s,border-color .25s,transform .25s}
.abf__s a:hover{background:var(--gold);color:#0B0910;border-color:var(--gold);transform:translateY(-3px)}
.abf__s svg{width:18px;height:18px}
.abf h3{font:700 .95rem var(--ff-b);color:var(--gold);margin:0 0 1rem;letter-spacing:0}
.abf ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.abf a{color:inherit;text-decoration:none}
.abf nav a{background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1.5px no-repeat;transition:color .25s,background-size .3s}
.abf nav a:hover{color:#fff;background-size:100% 1.5px}
.abf__c li{display:flex;gap:.65rem;align-items:flex-start}
.abf__c svg{flex:none;width:18px;height:18px;margin-top:.22rem;stroke:var(--gold)}
.abf__c a:hover{color:#fff}
.abf__bar{margin-top:2.4rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;font-size:.85rem;color:rgba(255,255,255,.6)}
.abf__bar a{margin-inline-start:1.2rem}.abf__bar a:hover{color:var(--gold)}
@media (max-width:900px){.abf__g{grid-template-columns:1fr 1fr}.abf__b{grid-column:1/-1}}
@media (max-width:520px){.abf__g{grid-template-columns:1fr}.abf__bar{flex-direction:column}.abf__bar a{margin-inline:0 1.2rem}}

/* ===== scroll effects ===== */
.abp{position:fixed;inset:0 0 auto 0;height:3px;z-index:130;pointer-events:none}
.abp i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--gold),var(--violet));transform-origin:left;transform:scaleX(var(--p,0))}
[dir=rtl] .abp i{transform-origin:right}
[data-par]{translate:0 var(--py,0px)}
.ab-top{position:fixed;inset-inline-end:18px;bottom:18px;z-index:90;width:46px;height:46px;border-radius:50%;border:0;background:var(--gold);color:#0B0910;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px -10px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(14px) scale(.8);transition:opacity .3s,transform .3s,visibility .3s,background .25s}
.ab-top.show{opacity:1;visibility:visible;transform:none}
.ab-top:hover{background:var(--pink)}
.ab-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:reduce){[data-par]{translate:none}}

/* footer shares .ab-s, so undo the photo rules for its logo and icons */
.abf .brand img{width:46px;height:46px;max-width:none;object-fit:contain;border-radius:50%;background:#fff;padding:2px}
.abf .brand{gap:.7rem;align-items:center}
.abf .brand b{font:600 1.2rem var(--ff-d)}
.abf .brand small{color:var(--gold)}
@media (max-width:520px){.abf{padding-bottom:4.6rem}}

/* 5 · TESTIMONIALS — simple: three clean quote cards */
.ab-tq{background:var(--surface)}
.ab-tq__g{list-style:none;margin:3.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:3.4rem 1.4rem}
.ab-tq__g li{position:relative;display:flex;flex-direction:column;padding:3.1rem 1.7rem 1.7rem;border-radius:28px;background:var(--c);color:var(--t);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.ab-tq__g li:hover{transform:translateY(-8px);box-shadow:0 24px 40px -18px rgba(11,9,16,.35)}
.ab-tq__g li::after{content:"\201D";position:absolute;top:.5rem;inset-inline-end:1.3rem;font:700 5rem/1 var(--ff-d);opacity:.22;pointer-events:none}
.ab-tq .av{position:absolute;top:-38px;inset-inline-start:1.7rem;width:76px;height:76px;border-radius:50%;overflow:hidden;border:4px solid var(--surface);background:#fff;color:#0B0910;display:grid;place-items:center;font:700 1.7rem var(--ff-d);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ab-tq .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ab-tq__g li:hover .av{transform:rotate(-8deg) scale(1.08)}
.ab-tq .st{letter-spacing:.18em;font-size:1rem;color:inherit}
.ab-tq__g p{margin:.8rem 0 1.6rem;font:500 1.12rem/1.55 var(--ff-d);color:inherit}
.ab-tq .who{margin-top:auto;padding-top:1rem;border-top:1.5px solid color-mix(in srgb,currentColor 28%,transparent)}
.ab-tq .who b{display:block;font-size:1rem}
.ab-tq .who small{display:block;font-size:.86rem;opacity:.85}
@media (max-width:860px){.ab-tq__g{grid-template-columns:1fr}}

/* 6 · CTA — balanced size (not too tall, not too thin) */
.ab-join{padding-block:clamp(2.4rem,5vw,4rem)}
.ab-cta__p{gap:2rem;padding:clamp(2rem,4vw,3.2rem) clamp(1.6rem,4.5vw,3.6rem);border-radius:30px;min-height:clamp(250px,24vw,300px)}
.ab-join h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.ab-join .ab-sub{font-size:1rem;margin-top:.6rem}
.ab-cta__b{margin-top:1.5rem}
.ab-dk,.ab-ln{padding:.8rem 1.6rem;font-size:1rem}
.ab-cta__ph .c1,.ab-cta__ph .c2,.ab-cta__ph .c3{width:clamp(96px,12vw,150px);margin-inline-start:-26px}
.ab-cta__ph .c1{margin-inline-start:0}
@media (max-width:480px){.ab-cta__b a{flex:1 1 100%;white-space:nowrap}}


/* === Contact page styles (consolidated) === */
/* Contact page follows About page typography, colors and layout tokens. */
.cp{--cp-pink:#F05DAB;--cp-violet:#8A4DFF;--cp-gold:#F5B82E;font-family:"Plus Jakarta Sans",sans-serif;overflow:clip}
.cp h1,.cp h2,.cp h3{font-family:"Fraunces",Georgia,serif;letter-spacing:-.035em;line-height:1.08}
.cp h1{font-size:clamp(3.1rem,6.6vw,6.1rem);max-width:720px}.cp h1 em,.cp h2 em{font-style:italic;color:var(--gold)}
.cp .ab-hero{background:radial-gradient(50% 65% at 95% 12%,rgba(138,77,255,.48),transparent 68%),radial-gradient(40% 50% at 0 100%,rgba(240,93,171,.25),transparent 65%),#0B0910}
.cp-hero .ab-hero__grid{align-items:center;gap:clamp(2rem,6vw,5rem)}.cp-hero .ab-hero__lead{max-width:540px}.cp-hero__visual{position:relative;min-height:460px;display:grid;place-items:center}.cp-photo-main{width:min(100%,430px);height:500px;overflow:hidden;border-radius:48% 48% 28px 28px;border:7px solid rgba(255,255,255,.1);transform:rotate(2deg);box-shadow:0 28px 80px #0005}.cp-photo-main img,.cp-enquiry-photo img,.cp-cta-image img{width:100%;height:100%;object-fit:cover}.cp-photo-sticker{position:absolute;left:-5%;bottom:10%;background:var(--gold);color:#171018;border-radius:50%;width:126px;height:126px;display:grid;align-content:center;text-align:center;transform:rotate(-11deg);font-size:.88rem;box-shadow:0 12px 30px #0003}.cp-photo-sticker b{font:600 1.45rem "Fraunces",serif}.cp-orbit{position:absolute;right:0;top:7%;font-size:4rem;color:var(--pink);animation:ab-spin 22s linear infinite}.cp-textlink{text-decoration:none;font-weight:700}.cp-hero__note{display:flex;align-items:center;gap:12px;margin-top:30px}.cp-spark{display:grid;place-items:center;background:var(--pink);color:#190e18;border-radius:50%;width:43px;height:43px;font-size:1.5rem}.cp-hero__note b,.cp-hero__note small{display:block}.cp-hero__note small{opacity:.7;font-size:.85rem}
.cp-ways{background:#FFF6E5;padding-block:clamp(4rem,8vw,7rem)}.cp-section-head{text-align:center;max-width:680px;margin:0 auto 36px}.cp-section-head h2,.cp-enquiry h2,.cp-visit h2,.cp-cta h2{font-size:clamp(2.6rem,5vw,4.5rem)}.cp-section-head h2 em,.cp-enquiry h2 em,.cp-visit h2 em{color:var(--violet)}.cp-section-head>p:last-child{color:#5B5560;margin-top:15px}.cp-way-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cp-way{position:relative;padding:30px;border-radius:24px;text-decoration:none;min-height:250px;transition:transform .2s}.cp-way:hover{transform:translateY(-5px)}.cp-way--pink{background:#FCE0EF}.cp-way--gold{background:#FBE6A9}.cp-way--violet{background:#E8DDFF}.cp-way-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff9;font-size:1.5rem;margin-bottom:25px}.cp-way>small{font-size:.7rem;font-weight:800;letter-spacing:.12em}.cp-way h3{font-size:2rem;margin:7px 0}.cp-way p{font-size:.92rem;line-height:1.6;color:#50454f;margin-bottom:17px}.cp-way>b{font-size:.88rem;overflow-wrap:anywhere}
.cp-enquiry{background:#fff;padding-block:clamp(4rem,8vw,7rem)}.cp-enquiry-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,7vw,6rem);align-items:start}.cp-enquiry-copy>p:not(.ab-kicker){color:var(--muted);max-width:460px;margin-top:20px}.cp-enquiry-photo{height:270px;overflow:hidden;border-radius:22px;margin-top:28px}.cp-promise{display:flex;gap:13px;align-items:center;margin-top:20px}.cp-promise>span{font-size:2rem;color:var(--pink)}.cp-promise p{font-size:.9rem;color:var(--muted)}.cp-promise b{color:var(--text)}.cp-form{padding:clamp(22px,4vw,38px);background:#FFF6E5;border:1px solid #eadfc9;border-radius:26px;box-shadow:0 20px 60px #3020160d}.cp-form-top{display:flex;align-items:center;gap:14px;margin-bottom:24px}.cp-form-top>span{display:grid;place-items:center;width:48px;height:48px;background:var(--violet);color:white;border-radius:15px;font-size:1.5rem}.cp-form-top h3{font-size:1.8rem}.cp-form-top p{font-size:.82rem;color:var(--muted)}.cp-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.cp-fields label{display:flex;flex-direction:column;gap:7px;font-size:.84rem;font-weight:700}.cp-fields input,.cp-fields select,.cp-fields textarea{width:100%;min-width:0;padding:13px 14px;border:1px solid #d9cdb8;border-radius:11px;background:#fff;color:#171018;font:500 .93rem "Plus Jakarta Sans",sans-serif}.cp-fields textarea{resize:vertical}.cp-fields input:focus,.cp-fields select:focus,.cp-fields textarea:focus{outline:3px solid #8A4DFF35;border-color:var(--violet)}.cp-field-full{grid-column:1/-1}.cp-error{font-size:.75rem;color:#b42345;font-weight:600;min-height:0}.cp-error:empty{display:none}.cp-invalid{border-color:#b42345!important}.cp-counter{display:flex;justify-content:space-between;gap:10px}.cp-counter>small:last-child{font-size:.72rem;color:var(--muted)}.cp-consent{display:flex;align-items:flex-start;gap:10px;font-size:.8rem;margin-top:17px}.cp-consent input{accent-color:var(--violet);margin-top:5px}.cp-submit{margin-top:20px;border:0;cursor:pointer}.cp-form-status{margin-top:12px;font-size:.85rem;font-weight:700}.cp-form-status.is-error{color:#b42345}.cp-form-status.is-success{color:#176b48}.cp-form-privacy{font-size:.73rem;color:var(--muted);margin-top:12px}
.cp-visit{background:#E8DDFF;padding-block:clamp(4rem,8vw,7rem)}.cp-visit-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(2rem,6vw,5rem)}.cp-visit-copy>p:not(.ab-kicker){color:#51465e;margin:20px 0}.cp-address{display:flex;gap:13px;margin:25px 0}.cp-address>span{display:grid;place-items:center;flex:none;width:44px;height:44px;background:#fff;border-radius:14px;font-size:1.5rem}.cp-address p,.cp-address small{display:block;color:#51465e}.cp-address small{font-size:.8rem;margin-top:5px}.cp-map-wrap{position:relative;height:430px;border-radius:26px;overflow:hidden;box-shadow:0 20px 50px #2e19451c;background:#fff}.cp-map-wrap iframe{width:100%;height:100%;border:0}.cp-map-label{position:absolute;bottom:16px;left:16px;right:16px;background:#fff;border-radius:15px;padding:13px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 5px 20px #0001;pointer-events:none}.cp-map-label>span{font-size:1.5rem;color:var(--violet)}.cp-map-label b,.cp-map-label small{display:block}.cp-map-label small{color:var(--muted);font-size:.78rem}
.cp-cta{padding:0!important;margin:clamp(2.5rem,5vw,4.5rem) auto clamp(3.5rem,6vw,5.5rem)!important;max-width:min(1200px,calc(100% - 48px));border:1px solid rgba(255,255,255,.12);border-radius:30px;overflow:hidden;background:#0B0910;color:#fff;position:relative;isolation:isolate;box-shadow:0 24px 70px rgba(0,0,0,.18)}.cp-cta-inner{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(2rem,6vw,5rem);padding-block:clamp(3rem,6vw,5rem);position:relative}.cp-cta-image{height:300px;overflow:hidden;border-radius:22px;transform:rotate(-2deg);border:5px solid #ffffff18}.cp-cta-copy{position:relative;z-index:1}.cp-cta h2{max-width:650px}.cp-cta h2 em{color:var(--gold)}.cp-cta-copy>p:not(.ab-kicker){color:#d0c8d5;margin:18px 0 25px}.cp-cta-star{position:absolute;right:2%;top:8%;font-size:4rem;color:var(--pink);opacity:.8}
/* CTA is a standalone rounded card with breathing room before the About footer. */
.cp-cta+footer.abf{margin-top:0!important}.cp-cta+footer.abf .ab-wrap{padding-top:clamp(2.5rem,5vw,4rem)}
@media(max-width:850px){.cp-enquiry-grid,.cp-visit-grid{grid-template-columns:1fr}.cp-enquiry-copy{max-width:650px}.cp-enquiry-photo{max-width:540px}.cp-hero__visual{min-height:390px}.cp-photo-main{height:420px}.cp-cta-inner{grid-template-columns:.7fr 1.3fr}.cp-way{padding:23px}}
@media(max-width:620px){.cp-hero .ab-hero__grid{grid-template-columns:1fr}.cp-hero__visual{min-height:340px;margin-top:12px}.cp-photo-main{height:350px;width:min(82%,360px)}.cp-photo-sticker{left:2%;bottom:4%;width:100px;height:100px}.cp-orbit{right:4%;font-size:3rem}.cp-way-grid{grid-template-columns:1fr}.cp-way{min-height:0}.cp-way-icon{margin-bottom:15px}.cp-fields{grid-template-columns:1fr}.cp-field-full{grid-column:auto}.cp-map-wrap{height:350px}.cp-cta-inner{grid-template-columns:1fr}.cp-cta-image{height:220px;width:82%;margin-inline:auto}.cp-cta-star{top:2%;right:5%}.cp-cta{max-width:calc(100% - 28px);border-radius:22px;margin-top:2rem!important;margin-bottom:2.75rem!important}.cp-cta+footer.abf .ab-wrap{padding-top:2.5rem}}
@media(prefers-reduced-motion:reduce){.cp *{animation:none!important;transition:none!important}}


/* === Accessible scroll reveal animations shared across pages === */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
[data-reveal="left"]{transform:translateX(-28px)}
[data-reveal="right"]{transform:translateX(28px)}
[data-reveal].is-revealed{opacity:1;transform:translate3d(0,0,0)}
[data-reveal-delay="1"]{transition-delay:.1s}[data-reveal-delay="2"]{transition-delay:.2s}[data-reveal-delay="3"]{transition-delay:.3s}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important;transition:none!important}}


/* === Standalone login / authentication layout === */
.auth-page{min-height:100vh;background:#f7f4fa;color:#24123d;font-family:var(--ff-b);}
.auth-topbar{height:62px;position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,3.2vw,2.6rem);background:var(--surface);border-bottom:1px solid #e9e0f3;box-shadow:0 4px 18px rgba(39,17,64,.035)}
.auth-back{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;font-weight:800;color:#43275a;font-size:.98rem}
.auth-back span:first-child{font-size:1.2rem;transition:transform .2s}.auth-back:hover span:first-child{transform:translateX(-3px)}
.auth-tools{display:flex;align-items:center;gap:.6rem}.auth-tool{width:44px;height:44px;border:1px solid #ddcbed;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--text);padding:0;cursor:pointer}.auth-tool svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-tool .i-sun{display:none}[data-theme=dark] .auth-tool .i-moon{display:none}[data-theme=dark] .auth-tool .i-sun{display:block}
.auth-main{position:relative;isolation:isolate;min-height:calc(100vh - 62px);display:grid;place-items:center;padding:42px 20px 48px;overflow:hidden;background:#f7f4fa}
.auth-orbit{position:absolute;z-index:-1;width:340px;height:340px;border:1px solid rgba(138,77,255,.17);border-radius:50%;pointer-events:none}.auth-orbit--one{top:-190px;left:-170px}.auth-orbit--two{right:-210px;bottom:-250px;width:420px;height:420px}
.auth-card{width:min(100%,600px);padding:42px clamp(24px,5.4vw,58px) 30px;border:1px solid #e4d5f3;border-radius:29px;background:#fff;box-shadow:0 24px 70px rgba(51,24,78,.075);animation:auth-enter .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes auth-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:36px}.auth-brand img{width:58px;height:58px;object-fit:contain;border-radius:50%}.auth-brand-name{font:800 1.55rem/1.05 var(--ff-d);letter-spacing:-.04em;color:#26113e}.auth-brand-sub{font:700 .56rem/1.4 var(--ff-b);letter-spacing:.15em;color:#7047a5;margin-top:5px}
.auth-eyebrow{text-align:center;font:800 .65rem/1.5 var(--ff-b);letter-spacing:.2em;color:#7542bd;margin-bottom:15px}.auth-card h1{text-align:center;font:800 clamp(2rem,5vw,2.65rem)/1.12 var(--ff-d);letter-spacing:-.045em;color:#24113b}.auth-card h1 em{font-family:Georgia,serif;font-weight:700;color:#9a6be0}.auth-intro{text-align:center;color:#796a8b;font-size:.92rem;margin:14px 0 30px}
.auth-form{display:grid;gap:18px}.auth-field{display:grid;gap:8px}.auth-field label,.auth-label-row label{font-size:.79rem;font-weight:800;color:#32194e}.auth-field label span,.auth-label-row label span{color:#945de1}.auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-field input{width:100%;height:52px;padding:0 15px;border:1px solid #dfd0ef;border-radius:13px;background:#fdfbff;color:#26133e;font:500 .9rem var(--ff-b);outline:none;transition:border-color .2s,box-shadow .2s}.auth-field input::placeholder{color:#a394b7}.auth-field input:focus{border-color:#9c6cdb;box-shadow:0 0 0 3px rgba(138,77,255,.12)}.auth-field input[aria-invalid=true]{border-color:#d83d69;box-shadow:0 0 0 3px rgba(216,61,105,.09)}
.auth-password-wrap{position:relative}.auth-password-wrap input{padding-inline-end:68px}.auth-show{position:absolute;inset-block:0;inset-inline-end:13px;border:0;background:transparent;color:#7840bd;font:800 .75rem var(--ff-b);cursor:pointer}.auth-text-btn{padding:0;border:0;background:none;color:#7840bd;font:800 .75rem var(--ff-b);cursor:pointer}.auth-remember{display:flex;align-items:center;gap:9px;color:#786987;font-size:.76rem;margin-top:-2px}.auth-remember input{width:15px;height:15px;accent-color:#8246d4}.auth-error{display:block;min-height:0;color:#c32e59;font-size:.73rem;font-weight:600}.auth-error:empty{display:none}.auth-notice{padding:10px 12px;border-radius:10px;background:#fff0f4;color:#a3204b;font-size:.8rem}.auth-submit{width:100%;height:52px;border:0;border-radius:14px;background:#ffcf43;color:#25123d;display:flex;align-items:center;justify-content:center;gap:12px;font:800 .92rem var(--ff-b);cursor:pointer;box-shadow:0 10px 20px rgba(255,197,44,.19);transition:transform .2s,box-shadow .2s}.auth-submit:hover{transform:translateY(-2px);box-shadow:0 14px 24px rgba(255,197,44,.28)}.auth-submit span{font-size:1.2rem}.auth-signup{text-align:center;color:#897a98;font-size:.77rem;margin:20px 0 0}.auth-signup a{color:#7440b7;font-weight:800;text-decoration:none}.auth-signup a:hover{text-decoration:underline}.auth-footer-note{display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid #eee6f5;margin-top:25px;padding-top:17px;color:#9b83b4;font-size:.7rem}.auth-footer-note span{color:#8952c9;font-size:1rem}
[dir=rtl] .auth-back span:first-child{transform:scaleX(-1)}[dir=rtl] .auth-back:hover span:first-child{transform:scaleX(-1) translateX(-3px)}[dir=rtl] .auth-submit span{transform:scaleX(-1)}
[data-theme=dark] .auth-page,[data-theme=dark] .auth-main{background:#100c18;color:#f6efff}[data-theme=dark] .auth-topbar{background:#171220;border-color:#30243c}[data-theme=dark] .auth-back{color:#f2e8ff}[data-theme=dark] .auth-tool{background:#21182d;border-color:#49365e;color:#f6efff}[data-theme=dark] .auth-card{background:#1b1425;border-color:#40304f;box-shadow:0 24px 70px #0005}[data-theme=dark] .auth-brand-name,[data-theme=dark] .auth-card h1,[data-theme=dark] .auth-field label,[data-theme=dark] .auth-label-row label{color:#fbf6ff}[data-theme=dark] .auth-intro,[data-theme=dark] .auth-remember,[data-theme=dark] .auth-signup{color:#c0b1d0}[data-theme=dark] .auth-field input{background:#120d1a;border-color:#49365b;color:#f8f0ff;color-scheme:dark}[data-theme=dark] .auth-field input::placeholder{color:#a99ab9}[data-theme=dark] .auth-footer-note{border-color:#3a2a49;color:#b6a2ca}[data-theme=dark] .auth-orbit{border-color:rgba(183,155,255,.17)}
@media(max-width:520px){.auth-topbar{height:58px;padding-inline:14px}.auth-tool{width:39px;height:39px}.auth-main{min-height:calc(100vh - 58px);padding:24px 13px 30px}.auth-card{padding:30px 21px 24px;border-radius:23px}.auth-brand{margin-bottom:29px}.auth-brand img{width:50px;height:50px}.auth-brand-name{font-size:1.35rem}.auth-brand-sub{font-size:.48rem;letter-spacing:.1em}.auth-card h1{font-size:2rem}.auth-intro{font-size:.85rem;margin-bottom:25px}}
@media(prefers-reduced-motion:reduce){.auth-card{animation:none}.auth-back span:first-child,.auth-field input,.auth-submit{transition:none}}

/* Auth page brand palette + sticky utility header */
.auth-topbar{position:sticky;top:0;z-index:100;backdrop-filter:blur(14px);background:rgba(255,246,229,.96);border-bottom:1px solid rgba(138,77,255,.22);box-shadow:0 5px 22px rgba(11,9,16,.08)}
.auth-page{background:var(--ivory);color:var(--plum)}
.auth-main{background:var(--ivory)}
.auth-back{color:var(--plum)}
.auth-back:hover{color:var(--violet)}
.auth-tool{border-color:rgba(138,77,255,.35);color:var(--plum);background:rgba(255,255,255,.8)}
.auth-tool:hover{background:var(--gold);border-color:var(--gold);color:var(--plum)}
.auth-card{border-color:rgba(138,77,255,.25);box-shadow:0 24px 70px rgba(11,9,16,.12)}
.auth-brand-name,.auth-card h1{color:var(--plum)}
.auth-brand-sub,.auth-text-btn,.auth-show,.auth-signup a{color:var(--violet)}
.auth-eyebrow{color:var(--violet)}
.auth-card h1 em{color:var(--pink)}
.auth-field label,.auth-label-row label{color:var(--plum)}
.auth-field label span,.auth-label-row label span{color:var(--pink)}
.auth-field input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(138,77,255,.14)}
.auth-remember input{accent-color:var(--violet)}
.auth-submit{background:var(--gold);color:var(--plum);box-shadow:0 10px 22px rgba(245,184,46,.25)}
.auth-submit:hover{background:var(--pink);box-shadow:0 14px 26px rgba(240,93,171,.24)}
.auth-footer-note span{color:var(--pink)}
[data-theme=dark] .auth-topbar{background:rgba(11,9,16,.96);border-color:rgba(138,77,255,.3)}
[data-theme=dark] .auth-page,[data-theme=dark] .auth-main{background:var(--plum)}
[data-theme=dark] .auth-card{border-color:rgba(138,77,255,.4)}
[data-theme=dark] .auth-submit{background:var(--gold);color:var(--plum)}
@media(max-width:520px){.auth-topbar{position:sticky;top:0}}


/* Login utility bar refinements: compact Home 1 controls and true black dark mode */
.auth-topbar{height:50px;padding-inline:clamp(1rem,3.2vw,2.6rem);background:var(--ivory);border-bottom:1px solid rgba(138,77,255,.16);box-shadow:0 3px 12px rgba(11,9,16,.045)}
.auth-back{font-size:.88rem;font-weight:600;letter-spacing:-.01em;color:var(--plum);gap:.4rem}
.auth-back span:first-child{font-size:1rem;font-weight:400}
.auth-tools{gap:.4rem}
.auth-tool{width:34px;height:34px;border-color:rgba(138,77,255,.28);background:transparent;color:var(--plum)}
.auth-tool svg{width:16px;height:16px;stroke-width:1.65}
.auth-tool:hover{background:var(--gold);border-color:var(--gold);color:var(--plum)}
.auth-brand{width:max-content;max-width:100%;text-decoration:none;color:inherit;border-radius:10px}
.auth-brand:focus-visible{outline:2px solid var(--violet);outline-offset:5px}
.auth-brand-copy{display:flex;flex-direction:column;text-align:start}
.auth-brand-name{display:block}.auth-brand-sub{display:block}
[data-theme=dark] .auth-page,[data-theme=dark] .auth-main{background:#000;color:#f8f3ff}
[data-theme=dark] .auth-topbar{background:rgba(0,0,0,.97);border-bottom-color:#29212f;box-shadow:0 3px 12px #0008}
[data-theme=dark] .auth-back{color:#e9dff5;font-weight:500}
[data-theme=dark] .auth-tool{background:transparent;border-color:#4a3b55;color:#f6edff}
[data-theme=dark] .auth-tool:hover{background:var(--gold);border-color:var(--gold);color:#100b14}
[data-theme=dark] .auth-card{background:#111;border-color:#392b46}
[data-theme=dark] .auth-field input{background:#080808;border-color:#49365b;color:#fff}
@media(max-width:520px){.auth-topbar{height:48px;padding-inline:12px}.auth-tool{width:32px;height:32px}.auth-tool svg{width:15px;height:15px}.auth-back{font-size:.82rem}.auth-main{min-height:calc(100vh - 48px)}}

/* Auth pages: slightly taller sticky utility bar, shared by login and register */
.auth-topbar{height:58px}
.auth-main{min-height:calc(100vh - 58px)}
.register-card{width:min(100%,620px);padding-top:34px}
.register-card .auth-brand{margin-bottom:24px}
.register-card .auth-intro{margin-bottom:22px}
.register-form{gap:13px}
.register-consent{align-items:flex-start;line-height:1.5;margin-top:2px}
.register-consent input{flex:0 0 auto;margin-top:2px}
.register-main{padding-top:34px;padding-bottom:40px}
@media(max-width:520px){.auth-topbar{height:54px;padding-inline:12px}.auth-main{min-height:calc(100vh - 54px)}.register-card{padding-top:26px}.register-card .auth-brand{margin-bottom:20px}.register-form{gap:12px}}

/* Auth pages: soft animated brand-colour glow */
body.auth-page {
  position: relative;
  isolation: isolate;
  overflow-x: clip;
  background-color: #faf7ff;
  background-image:
    radial-gradient(ellipse 30rem 26rem at 9% 22%, rgba(145, 72, 220, .17), transparent 72%),
    radial-gradient(ellipse 27rem 24rem at 91% 33%, rgba(245, 67, 160, .13), transparent 72%),
    radial-gradient(ellipse 32rem 28rem at 56% 100%, rgba(255, 190, 35, .12), transparent 72%);
  background-size: 130% 130%;
  animation: authBrandGlow 18s ease-in-out infinite alternate;
}
body.auth-page .auth-main { position: relative; isolation: isolate; background: transparent; }
body.auth-page .auth-card {
  position: relative; z-index: 1;
  box-shadow: 0 22px 70px rgba(53, 24, 76, .08), 0 2px 12px rgba(126, 67, 168, .035);
}
@keyframes authBrandGlow {
  0% { background-position: 0% 0%, 100% 0%, 50% 100%; }
  50% { background-position: 18% 25%, 78% 35%, 40% 80%; }
  100% { background-position: 4% 45%, 92% 12%, 65% 92%; }
}
html[data-theme="dark"] body.auth-page {
  background-color: #050505;
  background-image:
    radial-gradient(ellipse 30rem 26rem at 9% 22%, rgba(145, 72, 220, .22), transparent 72%),
    radial-gradient(ellipse 27rem 24rem at 91% 33%, rgba(245, 67, 160, .16), transparent 72%),
    radial-gradient(ellipse 32rem 28rem at 56% 100%, rgba(255, 190, 35, .11), transparent 72%);
}
html[data-theme="dark"] body.auth-page .auth-card {
  box-shadow: 0 22px 70px rgba(0, 0, 0, .3), 0 0 28px rgba(145, 72, 220, .08);
}
@media (prefers-reduced-motion: reduce) { body.auth-page { animation: none; } }


/* ===== Consolidated page-specific styles ===== */

/* ===== home1.css ===== */
/* =========================================================
   HOME 1 · Twinkle Toes Kids Dance & Performing Arts Academy
   Prefix h1- · Fraunces + Plus Jakarta Sans (same as About)
   Container = .ab-wrap (max var(--max)) + section padding var(--pad)
   ========================================================= */
.h1p{--teal:#22C7A9;--coral:#FF7A59;--sky:#438DE8;--ink:#0B0910;--dx:1;
  --sec-a:#FFF6E5;--sec-b:#F2EBFF;--sec-c:#FFFFFF;--sec-d:#FFE7B0;--ease:cubic-bezier(.2,.8,.2,1)}
[dir=rtl] .h1p{--dx:-1}
[data-theme=dark] .h1p{--sec-a:#0B0910;--sec-b:#130F1D;--sec-c:#0E0B15;--sec-d:#18120A}
.h1p h2{font-size:clamp(1.5rem,2.7vw,2.05rem)}
.h1p h3{font-size:1.05rem}
.h1p figure{margin:0}
.h1p img{width:100%;height:100%;object-fit:cover}
.h1p button{font:inherit;cursor:pointer}
:where(.h1p) :is(ul,ol){list-style:none;margin:0;padding:0}
.h1-sec{position:relative;padding:clamp(3rem,6vw,5rem) var(--pad);overflow:hidden;isolation:isolate}
.h1-hero :focus-visible,.h1-perf :focus-visible,.h1-say :focus-visible,.h1-tix :focus-visible{outline-color:var(--gold)}

/* ---------- shared bits ---------- */
.h1-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.h1-head--c{display:block;text-align:center}
.h1-sub{color:var(--muted);font-size:.98rem;max-width:46ch;margin-top:.5rem}
.h1-head--c .h1-sub{margin-inline:auto}
.h1-tag{display:inline-flex;align-items:center;gap:.5rem;font:700 .85rem/1 var(--ff-b);padding:.5rem .9rem;border-radius:999px;background:var(--gold);color:var(--ink);margin-bottom:.9rem}
.h1-tag svg{width:14px;height:14px;fill:currentColor}
.h1-link{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;text-decoration:none;color:inherit;padding:.65rem 1.15rem;border-radius:999px;border:1.5px solid currentColor;transition:background .25s,color .25s,border-color .25s,translate .25s}
.h1-link:hover{background:var(--gold);color:var(--ink);border-color:var(--gold);translate:0 -2px}
.h1-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
[dir=rtl] .h1-link svg,[dir=rtl] .h1-ghost svg.ar,[dir=rtl] .h1-hero .btn svg{transform:scaleX(-1)}
.h1-dk,.h1-ln{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:700 1rem var(--ff-b);padding:.8rem 1.5rem;border-radius:999px;text-decoration:none;transition:translate .25s,background .25s,color .25s;white-space:nowrap}
.h1-dk{background:var(--ink);color:#fff}
.h1-dk:hover{background:var(--pink);color:var(--ink);translate:0 -2px}
.h1-ln{border:2px solid var(--ink);color:var(--ink)}
.h1-ln:hover{background:var(--ink);color:var(--gold);translate:0 -2px}

/* ---------- reveal system (each section picks its own motion) ---------- */
.h1p [data-rv]{transition:opacity .7s var(--ease) calc(var(--i,0)*var(--stag,.1s)),transform .9s var(--ease) calc(var(--i,0)*var(--stag,.1s)),clip-path 1s var(--ease) calc(var(--i,0)*var(--stag,.1s)),translate .35s var(--ease),rotate .35s var(--ease),box-shadow .35s}
.h1-js .h1-sec:not(.in) [data-rv]{opacity:0}
.h1-js .h1-sec:not(.in) [data-rv=up]{transform:translateY(32px)}
.h1-js .h1-sec:not(.in) [data-rv=pop]{transform:scale(.6)}
.h1-js .h1-sec:not(.in) [data-rv=left]{transform:translateX(calc(var(--dx)*-70px))}
.h1-js .h1-sec:not(.in) [data-rv=right]{transform:translateX(calc(var(--dx)*70px))}
.h1-js .h1-sec:not(.in) [data-rv=rise]{transform:translateY(110px)}
.h1-js .h1-sec:not(.in) [data-rv=drop]{transform:translateY(-90px) rotate(8deg)}
.h1-js .h1-sec:not(.in) [data-rv=wipe]{clip-path:inset(0 0 100% 0)}
.h1-js .h1-sec:not(.in) [data-rv=flip]{transform:perspective(700px) rotateX(-70deg);transform-origin:50% 0}

/* =========================================================
   1 · HERO  — stage, curtain open, spotlight beams
   ========================================================= */
.h1-hero{padding:calc(var(--hh) + clamp(2.2rem,4.5vw,3.4rem)) var(--pad) 0;color:#fff;
  background:radial-gradient(50% 60% at 88% 8%,rgba(138,77,255,.45),transparent 65%),radial-gradient(42% 50% at 0 100%,rgba(240,93,171,.22),transparent 65%),#0B0910}
.h1-beams{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.h1-beams i{position:absolute;top:-12%;width:34%;height:125%;transform-origin:50% 0;background:linear-gradient(to bottom,rgba(245,184,46,.34),rgba(245,184,46,0) 72%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);animation:h1-sway 8s ease-in-out infinite alternate}
.h1-beams i:nth-child(1){inset-inline-start:2%;--a:-9deg;--b:5deg}
.h1-beams i:nth-child(2){inset-inline-start:34%;--a:6deg;--b:-6deg;animation-delay:-3s;background:linear-gradient(to bottom,rgba(240,93,171,.3),rgba(240,93,171,0) 72%)}
.h1-beams i:nth-child(3){inset-inline-end:2%;--a:10deg;--b:-4deg;animation-delay:-5s;background:linear-gradient(to bottom,rgba(138,77,255,.36),rgba(138,77,255,0) 72%)}
.h1-hero__g{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding-bottom:clamp(2.4rem,5vw,3.6rem)}
.h1-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);margin:1.1rem 0 1rem;max-width:18ch;color:#fff}
.h1-w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.1em}
.h1-w i{display:inline-block;font-style:normal;transform:translateY(110%);animation:h1-word .85s var(--ease) forwards;animation-delay:calc(var(--i)*.07s + .1s)}
.h1-w.em i{color:var(--gold)}
.h1-up{animation:h1-up .8s var(--ease) both;animation-delay:calc(var(--d,0)*.1s + .1s)}
.h1-lede{color:rgba(255,255,255,.82);max-width:46ch;font-size:1.02rem}
.h1-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.1rem;margin-top:1.5rem}
.h1-ghost{display:inline-flex;align-items:center;gap:.55rem;color:#fff;text-decoration:none;font-weight:700;padding:.8rem 1.3rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.5);transition:background .25s,border-color .25s,translate .25s}
.h1-ghost:hover{background:rgba(255,255,255,.12);border-color:var(--gold);translate:0 -2px}
.h1-ghost svg{width:18px;height:18px;fill:var(--gold)}
.h1-trust{display:flex;flex-wrap:wrap;gap:1.1rem clamp(1.4rem,3vw,2.4rem);margin-top:1.8rem;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.16)}
.h1-trust b{display:block;font:600 1.6rem/1.1 var(--ff-d);color:var(--gold)}
.h1-trust small{font-size:.85rem;color:rgba(255,255,255,.7)}

.h1-art{position:relative;min-height:clamp(340px,44vw,500px)}
.h1-art>*{animation:h1-pop .9s var(--ease) both;animation-delay:calc(var(--d,0)*.12s + .15s)}
.h1-art figure{position:absolute;overflow:hidden;background:#241c33}
.h1-arch{inset-inline-start:4%;top:0;width:60%;height:92%;border-radius:999px 999px 26px 26px;border:3px solid var(--gold);box-shadow:0 0 0 9px rgba(245,184,46,.14),0 30px 60px -30px #000}
.h1-o1{inset-inline-end:0;top:3%;width:36%;aspect-ratio:1;border-radius:50%;border:4px solid var(--pink)}
.h1-o2{inset-inline-end:0;bottom:2%;width:43%;aspect-ratio:4/3;border-radius:24px 24px 24px 72px;border:4px solid var(--violet)}
[dir=rtl] .h1-o2{border-radius:24px 24px 72px 24px}
.h1-chip{position:absolute;inset-inline-start:0;bottom:9%;display:flex;align-items:center;gap:.7rem;background:#fff;color:var(--ink);padding:.7rem 1.1rem .7rem .75rem;border-radius:18px;text-decoration:none;box-shadow:0 18px 36px -12px rgba(0,0,0,.7);transition:translate .3s}
.h1-chip:hover{translate:0 -4px}
.h1-chip i{width:38px;height:38px;border-radius:50%;background:var(--gold);display:grid;place-items:center;flex:none}
.h1-chip i svg{width:19px;height:19px;fill:var(--ink)}
.h1-chip b{display:block;font:600 .95rem/1.2 var(--ff-d)}
.h1-chip small{font-size:.78rem;color:#5B5560}
.h1-badge{position:absolute;inset-inline-end:34%;top:-3%;width:92px;height:92px}
.h1-badge .bg{fill:var(--gold)}
.h1-badge text{font:700 11.5px var(--ff-b);fill:var(--ink);letter-spacing:.08em}
.h1-badge .ring{transform-origin:60px 60px;animation:h1-spin 14s linear infinite}
.h1-badge .st{fill:var(--ink)}
.h1-float{animation:h1-float 5.5s ease-in-out infinite alternate}

.h1-marq{margin:0 calc(-1*var(--pad));border-block:1px solid rgba(245,184,46,.32);background:rgba(255,255,255,.05);overflow:hidden;padding:.85rem 0;position:relative;z-index:1}
.h1-marq__t{display:flex;width:max-content;animation:h1-marq 36s linear infinite}
.h1-marq:hover .h1-marq__t{animation-play-state:paused}
.h1-marq ul{display:flex;flex:none}
.h1-marq li{display:flex;align-items:center;gap:2rem;padding-inline-end:2rem;font:600 1.1rem var(--ff-d);white-space:nowrap;color:rgba(255,255,255,.92)}
.h1-marq li::after{content:"";width:13px;height:13px;background:var(--c,var(--gold));clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.h1-marq li:nth-child(6n+1){--c:var(--gold)}.h1-marq li:nth-child(6n+2){--c:var(--pink)}.h1-marq li:nth-child(6n+3){--c:#B79BFF}
.h1-marq li:nth-child(6n+4){--c:var(--teal)}.h1-marq li:nth-child(6n+5){--c:var(--coral)}.h1-marq li:nth-child(6n){--c:var(--sky)}
[dir=rtl] .h1-marq__t{animation-name:h1-marq-r}

/* =========================================================
   2 · STUDENT PERFORMANCE (the highlight) — spotlight stage
   ========================================================= */
.h1-perf{color:#fff;background:radial-gradient(60% 70% at 12% 0,rgba(240,93,171,.3),transparent 65%),radial-gradient(55% 60% at 100% 100%,rgba(138,77,255,.38),transparent 65%),#0B0910}
.h1-perf::before{content:"";position:absolute;z-index:-1;inset-inline-start:50%;top:-30%;width:70%;height:110%;translate:-50% 0;background:radial-gradient(closest-side,rgba(245,184,46,.16),transparent);animation:h1-glow 6s ease-in-out infinite alternate}
.h1-perf h2{color:#fff}
.h1-perf .h1-sub{color:rgba(255,255,255,.76)}
.h1-confetti{position:absolute;inset:0;z-index:-1;pointer-events:none}
.h1-confetti svg{position:absolute;width:var(--s,14px);height:var(--s,14px);fill:var(--c,var(--gold));opacity:.8;animation:h1-twinkle 3.4s ease-in-out infinite;animation-delay:var(--dl,0s)}
.h1-perf__g{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(1.3rem,3vw,2.2rem);align-items:stretch}
.h1-reel{position:relative;border-radius:26px;overflow:hidden;border:2px solid var(--gold);box-shadow:12px 12px 0 -2px rgba(240,93,171,.6);background:#000;min-height:300px}
.h1-reel video,.h1-reel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.h1-play{position:absolute;inset:0;margin:auto;width:82px;height:82px;border-radius:50%;border:0;background:var(--gold);color:var(--ink);display:grid;place-items:center;box-shadow:0 0 0 0 rgba(245,184,46,.6);animation:h1-ping 2.2s infinite;transition:scale .3s}
.h1-play:hover{scale:1.08}
.h1-play svg{width:32px;height:32px;fill:currentColor;margin-inline-start:4px}
.h1-reel__cap{position:absolute;inset-inline:0;bottom:0;padding:2.2rem 1.3rem 1.1rem;background:linear-gradient(transparent,rgba(0,0,0,.82));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;pointer-events:none}
.h1-reel__cap b{font:600 1.1rem var(--ff-d)}
.h1-reel__cap span{font-size:.82rem;font-weight:600;background:rgba(255,255,255,.16);padding:.3rem .75rem;border-radius:999px;backdrop-filter:blur(4px)}
.h1-reel.is-playing .h1-play,.h1-reel.is-playing .h1-reel__cap{opacity:0;visibility:hidden}
.h1-star{position:relative;background:linear-gradient(160deg,var(--gold),#FFD878);color:var(--ink);border-radius:26px;padding:1.4rem;display:grid;gap:1.1rem;align-content:start;overflow:hidden}
.h1-star::after{content:"";position:absolute;inset-inline-end:-40px;top:-40px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.35)}
.h1-star__top{display:flex;align-items:center;gap:1rem;position:relative;z-index:1}
.h1-star__ph{width:78px;height:78px;border-radius:50%;overflow:hidden;border:4px solid var(--ink);flex:none}
.h1-ribbon{display:inline-flex;align-items:center;gap:.35rem;background:var(--ink);color:var(--gold);font:700 .78rem/1 var(--ff-b);padding:.4rem .7rem;border-radius:999px;margin-bottom:.4rem}
.h1-ribbon svg{width:12px;height:12px;fill:currentColor}
.h1-star h3{font-size:1.25rem}
.h1-star__top small{display:block;font-size:.86rem;color:#4A3A10}
.h1-gauge{display:flex;align-items:center;gap:1rem;position:relative;z-index:1}
.h1-ring{position:relative;width:96px;height:96px;flex:none}
.h1-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.h1-ring circle{fill:none;stroke-width:9}
.h1-ring .t{stroke:rgba(11,9,16,.14)}
.h1-ring .v{stroke:var(--ink);stroke-linecap:round;stroke-dasharray:264;stroke-dashoffset:calc(264*(1 - var(--v)));transition:stroke-dashoffset 1.8s var(--ease) .3s}
.h1-js .h1-perf:not(.in) .h1-ring .v{stroke-dashoffset:264}
.h1-ring b{position:absolute;inset:0;display:grid;place-items:center;font:600 1.35rem var(--ff-d)}
.h1-gauge p{font-size:.9rem;line-height:1.4;font-weight:600}
.h1-bars{display:grid;gap:.7rem;position:relative;z-index:1}
.h1-bars li{display:grid;grid-template-columns:1fr auto;gap:.25rem .5rem;font-size:.86rem;font-weight:600}
.h1-bars span{grid-column:1/-1;height:9px;border-radius:9px;background:rgba(11,9,16,.14);overflow:hidden}
.h1-bars i{display:block;height:100%;width:var(--v);background:var(--c);border-radius:9px;transform-origin:left;transition:transform 1.3s var(--ease) calc(.5s + var(--k,0)*.15s)}
[dir=rtl] .h1-bars i{transform-origin:right}
.h1-js .h1-perf:not(.in) .h1-bars i{transform:scaleX(0)}
.h1-quote{font:italic 500 .95rem/1.5 var(--ff-d);position:relative;z-index:1;border-top:1.5px dashed rgba(11,9,16,.3);padding-top:.9rem}
.h1-medals{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:clamp(1.3rem,3vw,2rem)}
.h1-medals li{display:flex;align-items:flex-start;gap:.85rem;padding:1rem 1.1rem;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px)}
.h1-medals li:hover{border-color:var(--gold);translate:0 -5px}
.h1-medals i{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--c);color:var(--ink)}
.h1-medals svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.h1-medals b{display:block;font:600 .98rem/1.3 var(--ff-d)}
.h1-medals small{font-size:.8rem;color:rgba(255,255,255,.7)}

/* =========================================================
   3 · WHY FAMILIES CHOOSE US — bento of colour blocks
   ========================================================= */
.h1-why{background:var(--sec-a)}
.h1-bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(176px,auto);gap:1rem}
.h1-bt{position:relative;border-radius:24px;padding:1.4rem;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:.35rem;color:var(--ink);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.h1-bt:hover{translate:0 -6px;rotate:-.6deg;box-shadow:0 24px 40px -20px rgba(0,0,0,.5)}
.h1-bt h3{font-size:1.2rem}
.h1-bt p{font-size:.93rem;line-height:1.55;max-width:34ch}
.h1-bt svg.ic{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:auto}
.h1-bt--a{grid-column:1/6;grid-row:1/3;color:#fff;padding:0}
.h1-bt--a img{position:absolute;inset:0;transition:scale 1s var(--ease)}
.h1-bt--a:hover img{scale:1.06}
.h1-bt--a::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(11,9,16,.88))}
.h1-bt--a div{position:relative;z-index:1;padding:1.5rem}
.h1-bt--b{grid-column:6/10;background:var(--pink)}
.h1-bt--c{grid-column:10/13;background:var(--gold)}
.h1-bt--d{grid-column:6/10;background:var(--violet);color:#fff}
.h1-bt--e{grid-column:10/13;background:var(--teal)}
.h1-mini{background:rgba(255,255,255,.55);border-radius:14px;padding:.7rem .8rem;margin-bottom:auto;display:grid;gap:.4rem;font-size:.78rem;font-weight:700}
.h1-mini span{display:flex;justify-content:space-between}
.h1-mini em{display:block;height:7px;border-radius:7px;background:rgba(11,9,16,.15);overflow:hidden}
.h1-mini em::after{content:"";display:block;height:100%;width:92%;background:var(--ink);border-radius:7px;transform-origin:left;animation:h1-fill 2.4s var(--ease) both}
[dir=rtl] .h1-mini em::after{transform-origin:right}

/* =========================================================
   4 · FIND YOUR AGE — tabbed stage with a growing-circle photo reveal
   ========================================================= */
.h1-age{background:var(--sec-b)}
.h1-ages{display:grid;grid-template-columns:minmax(220px,.62fr) 1.9fr;gap:clamp(1rem,2.5vw,1.8rem);align-items:stretch}
.h1-ages__tabs{display:grid;gap:.8rem;align-content:start}
.h1-ages__tabs button{display:flex;align-items:center;gap:.9rem;text-align:start;padding:1rem 1.1rem;border-radius:20px;border:2px solid var(--line);background:var(--surface);color:var(--text);transition:translate .3s var(--ease),border-color .3s,background .3s,box-shadow .3s}
.h1-ages__tabs button:hover{translate:6px 0;border-color:var(--c)}
[dir=rtl] .h1-ages__tabs button:hover{translate:-6px 0}
.h1-ages__tabs i{width:16px;height:16px;border-radius:50%;background:var(--c);flex:none;box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 28%,transparent);transition:scale .3s}
.h1-ages__tabs b{display:block;font:600 1.08rem var(--ff-d)}
.h1-ages__tabs small{font-size:.84rem;color:var(--muted)}
.h1-ages__tabs button[aria-selected=true]{background:var(--c);border-color:var(--c);color:var(--ink);box-shadow:0 18px 30px -18px var(--c)}
.h1-ages__tabs button[aria-selected=true] small{color:inherit;opacity:.8}
.h1-ages__tabs button[aria-selected=true] i{background:var(--ink);scale:1.15;box-shadow:0 0 0 5px rgba(11,9,16,.18)}
.h1-ages__stage{display:grid;position:relative}
.h1-ap{grid-area:1/1;display:grid;grid-template-columns:.9fr 1.1fr;background:var(--c);color:var(--ink);border-radius:28px;overflow:hidden;visibility:hidden;opacity:0;transition:opacity .4s,visibility 0s .5s}
.h1-ap.on{visibility:visible;opacity:1;transition-delay:0s}
.h1-ap figure{position:relative;min-height:340px;overflow:hidden;clip-path:circle(0% at 50% 100%);transition:clip-path 0s}
.h1-ap figure img{position:absolute;inset:0;scale:1.15;transition:scale 1.2s var(--ease)}
.h1-ap.on figure{clip-path:circle(150% at 50% 100%);transition:clip-path 1s var(--ease)}
.h1-ap.on figure img{scale:1}
.h1-ap__b{padding:clamp(1.4rem,3vw,2.3rem);display:grid;gap:.7rem;align-content:center;justify-items:start}
.h1-ap.on .h1-ap__b>*{animation:h1-up .6s var(--ease) both;animation-delay:calc(var(--k,0)*.07s + .15s)}
.h1-ap__b>:nth-child(2){--k:1}.h1-ap__b>:nth-child(3){--k:2}.h1-ap__b>:nth-child(4){--k:3}.h1-ap__b>:nth-child(5){--k:4}.h1-ap__b>:nth-child(6){--k:5}
.h1-ap__age{font:700 .8rem/1 var(--ff-b);background:var(--ink);color:#fff;padding:.4rem .75rem;border-radius:999px}
.h1-ap h3{font-size:clamp(1.4rem,2.4vw,1.8rem)}
.h1-ap__b>p{font-size:.97rem;line-height:1.6;max-width:42ch}
.h1-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.h1-chips li{font:600 .82rem/1 var(--ff-b);padding:.45rem .8rem;border-radius:999px;border:1.5px solid currentColor}
.h1-ap__m{font-size:.9rem!important}
.h1-ap:nth-of-type(4){color:#fff}
.h1-ap:nth-of-type(4) .h1-ap__age{background:var(--gold);color:var(--ink)}
.h1-ap:nth-of-type(4) .h1-dk{background:#fff;color:var(--ink)}
.h1-ap:nth-of-type(4) .h1-dk:hover{background:var(--gold)}

/* =========================================================
   5 · INSTRUCTORS — fanned polaroids with tape
   ========================================================= */
.h1-team{background:var(--sec-d)}
.h1-team__g{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
.h1-team .h1-sub{margin-bottom:1.4rem}
.h1-fan{display:flex;justify-content:center;align-items:flex-start;padding:1.6rem 0 2rem}
.h1-pol{position:relative;flex:0 0 clamp(170px,23vw,250px);margin-inline:-12px;background:#fff;color:var(--ink);padding:12px 12px 16px;border-radius:6px;box-shadow:0 22px 40px -18px rgba(0,0,0,.55);rotate:var(--r);translate:0 var(--y)}
.h1-pol::before{content:"";position:absolute;top:-13px;inset-inline-start:50%;width:84px;height:26px;margin-inline-start:-42px;background:var(--tape);opacity:.9;rotate:-4deg;border-radius:3px}
.h1-pol:hover,.h1-pol:focus-within{rotate:0deg;translate:0 -16px;z-index:3}
.h1-pol figure{aspect-ratio:4/5;overflow:hidden;border-radius:3px}
.h1-pol b{display:block;font:600 1.05rem var(--ff-d);margin-top:.7rem}
.h1-pol small{display:block;font-size:.82rem;color:#5B5560}
.h1-pol span{display:inline-block;margin-top:.45rem;font:700 .72rem/1 var(--ff-b);padding:.3rem .6rem;border-radius:999px;background:var(--tape);color:var(--ink)}

/* =========================================================
   6 · HOW IT WORKS — a film strip that "develops" frame by frame
   ========================================================= */
.h1-how{background:var(--sec-c)}
.h1-film{--hole:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='14'%3E%3Crect x='6' y='2' width='18' height='10' rx='3' fill='%23fff' fill-opacity='.88'/%3E%3C/svg%3E");position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.5vw,1.1rem);background:#0B0910;border-radius:22px;padding:42px clamp(.9rem,2vw,1.4rem);box-shadow:0 30px 50px -30px rgba(11,9,16,.7)}
.h1-film::before,.h1-film::after{content:"";position:absolute;inset-inline:0;height:14px;background:var(--hole) 0 0/30px 14px repeat-x;animation:h1-reelmove 1.6s linear infinite}
.h1-film::before{top:14px}.h1-film::after{bottom:14px}
.h1-fr{background:#17121f;border-radius:12px;padding:8px 8px 1.1rem;color:#fff;border-top:4px solid var(--c)}
.h1-fr figure{position:relative;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:#241c33}
.h1-fr img{position:absolute;inset:0;transition:filter 1.4s ease calc(var(--i)*.35s + .3s),scale 1s var(--ease)}
.h1-js .h1-how:not(.in) .h1-fr img{filter:grayscale(1) blur(6px) brightness(.45)}
.h1-fr:hover img{scale:1.07}
.h1-fr b{position:absolute;inset-inline-start:8px;top:8px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:var(--ink);font:700 1rem var(--ff-d)}
.h1-fr h3{font-size:1.05rem;margin:.8rem .5rem .25rem}
.h1-fr p{font-size:.88rem;line-height:1.5;margin:0 .5rem;color:rgba(255,255,255,.74)}
.h1-how__note{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.7rem 1.2rem;margin-top:clamp(1.4rem,3vw,2rem);padding:1rem 1.4rem;border-radius:20px;background:var(--sec-b);font-size:.95rem;font-weight:600;text-align:center}
.h1-how__note a{color:var(--t-pur);font-weight:700;text-underline-offset:3px}

/* =========================================================
   7 · PARENT WORDS — speech bubble stage
   ========================================================= */
.h1-say{color:#fff;background:radial-gradient(50% 70% at 0 0,rgba(138,77,255,.42),transparent 65%),radial-gradient(40% 60% at 100% 100%,rgba(240,93,171,.26),transparent 65%),#0B0910}
.h1-say h2{color:#fff}.h1-say .h1-sub{color:rgba(255,255,255,.76)}
.h1-say__g{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
.h1-faces{display:flex;gap:.7rem;margin-top:1.6rem}
.h1-faces button{width:50px;height:50px;border-radius:50%;border:3px solid transparent;background:var(--c);color:var(--ink);font:700 1.1rem var(--ff-d);transition:translate .25s,border-color .25s,scale .25s}
.h1-faces button:hover{translate:0 -4px}
.h1-faces button[aria-pressed=true]{border-color:#fff;scale:1.12;box-shadow:0 0 0 3px var(--gold)}
.h1-qs{display:grid}
.h1-q{margin:0;grid-area:1/1;position:relative;background:#fff;color:var(--ink);border-radius:30px 30px 30px 8px;padding:clamp(1.4rem,3vw,2.1rem);display:grid;gap:1rem;align-content:space-between;opacity:0;visibility:hidden;translate:calc(var(--dx)*36px) 0;rotate:1.5deg;transition:opacity .5s,translate .7s var(--ease),rotate .7s var(--ease),visibility 0s .7s}
[dir=rtl] .h1-q{border-radius:30px 30px 8px 30px}
.h1-q.on{opacity:1;visibility:visible;translate:0 0;rotate:0deg;transition-delay:0s}
.h1-q::after{content:"";position:absolute;inset-inline-start:26px;bottom:-16px;width:30px;height:30px;background:#fff;clip-path:polygon(0 0,100% 0,0 100%)}
[dir=rtl] .h1-q::after{clip-path:polygon(0 0,100% 0,100% 100%)}
.h1-q .st{color:#E09A00;letter-spacing:.18em;font-size:1.05rem}
.h1-q p{font:500 clamp(1.1rem,2vw,1.4rem)/1.45 var(--ff-d)}
.h1-q footer{display:flex;align-items:center;gap:.8rem}
.h1-q footer i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--c);font:700 1rem var(--ff-d);font-style:normal}
.h1-q footer b{display:block;font-size:.95rem}.h1-q footer small{font-size:.8rem;color:#5B5560}
.h1-bar{display:block;height:4px;border-radius:4px;background:rgba(11,9,16,.1);overflow:hidden}
.h1-bar u{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--pink),var(--gold));transform:scaleX(0);transform-origin:left;text-decoration:none}
[dir=rtl] .h1-bar u{transform-origin:right}
.h1-q.on .h1-bar u{animation:h1-bar 7s linear forwards}
.h1-qs:hover .h1-bar u,.h1-qs:focus-within .h1-bar u{animation-play-state:paused}

/* =========================================================
   8 · RECITAL GALLERY — masonry with wipe reveal
   ========================================================= */
.h1-gal{background:var(--sec-a)}
.h1-wall{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(140px,17vw,230px);gap:1rem}
.h1-wall figure{position:relative;margin:0;border-radius:22px;overflow:hidden;background:#241c33}
.h1-wall .w1{grid-column:1/3;grid-row:1/3}
.h1-wall img{position:absolute;inset:0;transition:scale .9s var(--ease)}
.h1-wall figure:hover img{scale:1.07}
.h1-wall figcaption{position:absolute;inset-inline:0;bottom:0;padding:2rem 1rem .9rem;color:#fff;font:600 .98rem var(--ff-d);background:linear-gradient(transparent,rgba(11,9,16,.85));translate:0 100%;transition:translate .45s var(--ease)}
.h1-wall figure:hover figcaption,.h1-wall figure:focus-within figcaption{translate:0 0}
.h1-wall figcaption small{display:block;font:500 .78rem var(--ff-b);color:var(--gold)}
@media (hover:none){.h1-wall figcaption{translate:0 0}}

/* =========================================================
   9 · STUDENT SHOWCASE — scroll-snap show cards
   ========================================================= */
.h1-show{background:var(--sec-b)}
.h1-show__g{display:grid;grid-template-columns:minmax(230px,.62fr) 2fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:center}
.h1-show__stats{display:grid;gap:.9rem;margin-top:1.4rem}
.h1-show__stats li{display:flex;align-items:baseline;gap:.7rem;border-inline-start:4px solid var(--c);padding-inline-start:.9rem}
.h1-show__stats b{font:600 1.8rem/1 var(--ff-d)}
.h1-show__stats small{font-size:.9rem;color:var(--muted)}
.h1-show__ctl{display:flex;align-items:center;gap:.6rem;margin-top:1.6rem}
.h1-show__ctl button{width:44px;height:44px;border-radius:50%;border:2px solid var(--text);background:transparent;color:var(--text);display:grid;place-items:center;transition:background .25s,color .25s,translate .25s}
.h1-show__ctl button:hover{background:var(--gold);border-color:var(--gold);color:var(--ink);translate:0 -3px}
.h1-show__ctl svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
[dir=rtl] .h1-show__ctl svg{transform:scaleX(-1)}
.h1-sprog{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden;margin-inline-start:.6rem}
.h1-sprog i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--pink),var(--gold));transform-origin:left;transform:scaleX(var(--p,.2))}
[dir=rtl] .h1-sprog i{transform-origin:right}
.h1-track{min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.5rem .3rem 1rem}
.h1-track::-webkit-scrollbar{display:none}
.h1-track ul{display:flex;gap:1rem;width:max-content}
.h1-sc{position:relative;flex:0 0 clamp(210px,21vw,262px);aspect-ratio:3/4;border-radius:24px;overflow:hidden;scroll-snap-align:start;color:#fff;background:#241c33;transition:translate .4s var(--ease),box-shadow .4s}
.h1-sc:hover{translate:0 -8px;box-shadow:0 24px 36px -20px rgba(0,0,0,.6)}
.h1-sc img{position:absolute;inset:0;transition:scale 1s var(--ease)}
.h1-sc:hover img{scale:1.07}
.h1-sc::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(11,9,16,.9))}
.h1-sc__bd{position:absolute;z-index:1;top:.9rem;inset-inline-start:.9rem;background:var(--c);color:var(--ink);font:700 .78rem/1 var(--ff-b);padding:.45rem .75rem;border-radius:999px}
.h1-sc div{position:absolute;z-index:1;inset-inline:0;bottom:0;padding:1rem 1.1rem 1.15rem}
.h1-sc b{display:block;font:600 1.12rem/1.25 var(--ff-d)}
.h1-sc small{font-size:.82rem;color:rgba(255,255,255,.8)}

/* =========================================================
   10 · FREE TRIAL CTA — dark stage card with a booking form
   ========================================================= */
.h1-cta2{background:var(--sec-a)}
.h1-book{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.4rem,3.5vw,3rem);align-items:center;padding:clamp(1.4rem,3.5vw,2.6rem);border-radius:32px;color:#fff;overflow:hidden;isolation:isolate;
  background:radial-gradient(60% 90% at 0 0,rgba(245,184,46,.28),transparent 62%),radial-gradient(50% 80% at 100% 100%,rgba(138,77,255,.45),transparent 62%),#0B0910;box-shadow:0 34px 50px -34px rgba(11,9,16,.8)}
.h1-book__ph{display:flex;align-items:flex-end;gap:.9rem;margin-bottom:1.4rem}
.h1-book__ph figure{overflow:hidden;background:#241c33}
.h1-book__ph figure:first-child{width:min(60%,260px);aspect-ratio:4/3;border-radius:22px 22px 22px 60px;border:3px solid var(--gold)}
.h1-book__ph figure:last-child{width:96px;aspect-ratio:1;border-radius:50%;border:3px solid var(--pink)}
[dir=rtl] .h1-book__ph figure:first-child{border-radius:22px 22px 60px 22px}
.h1-book h2{font-size:clamp(1.55rem,3vw,2.3rem);max-width:19ch;color:#fff}
.h1-book__ck{display:grid;gap:.6rem;margin-top:1.2rem}
.h1-book__ck li{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:rgba(255,255,255,.86)}
.h1-book__ck svg{flex:none;width:22px;height:22px;padding:4px;border-radius:50%;background:var(--gold);fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.h1-form{background:#fff;color:var(--ink);border-radius:24px;padding:clamp(1.2rem,2.6vw,1.8rem);display:grid;gap:.9rem;color-scheme:light}
.h1-form h3{font-size:1.25rem}
.h1-form label{display:grid;gap:.35rem;font-size:.85rem;font-weight:700}
.h1-form input,.h1-form select{width:100%;font:500 1rem var(--ff-b);padding:.75rem .9rem;border-radius:12px;border:1.5px solid #CFC8D8;background:#FBF9FD;color:var(--ink)}
.h1-form input:focus,.h1-form select:focus{outline:3px solid var(--violet);outline-offset:1px;border-color:var(--violet)}
.h1-form .btn{justify-content:center;width:100%;margin-top:.2rem}
.h1-form p{font-size:.88rem;text-align:center;color:#5B5560}
.h1-form p a{color:#6A33D8;font-weight:700;text-underline-offset:3px}

/* ---------- dark-mode touches for light sections ---------- */
[data-theme=dark] .h1-why .h1-sub,[data-theme=dark] .h1-age .h1-sub,[data-theme=dark] .h1-gal .h1-sub{color:var(--muted)}
[data-theme=dark] .h1-team{background:var(--sec-d);color:var(--text)}
[data-theme=dark] .h1-how__note{background:#1a1424}
[data-theme=dark] .h1-how::before{opacity:.6}
[data-theme=dark] .h1-link:hover{color:var(--ink)}

/* ---------- keyframes ---------- */
@keyframes h1-sway{from{transform:rotate(var(--a))}to{transform:rotate(var(--b))}}
@keyframes h1-word{to{transform:none}}
@keyframes h1-up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes h1-pop{from{opacity:0;scale:.82}to{opacity:1;scale:1}}
@keyframes h1-float{to{transform:translateY(-10px)}}
@keyframes h1-spin{to{transform:rotate(360deg)}}
@keyframes h1-marq{to{transform:translateX(-50%)}}
@keyframes h1-marq-r{to{transform:translateX(50%)}}
@keyframes h1-glow{from{opacity:.55}to{opacity:1}}
@keyframes h1-twinkle{0%,100%{opacity:.15;transform:scale(.5) rotate(0)}50%{opacity:1;transform:scale(1) rotate(25deg)}}
@keyframes h1-ping{0%{box-shadow:0 0 0 0 rgba(245,184,46,.6)}70%,100%{box-shadow:0 0 0 24px rgba(245,184,46,0)}}
@keyframes h1-fill{from{transform:scaleX(0)}}
@keyframes h1-reelmove{to{background-position-x:-30px}}
@keyframes h1-bar{to{transform:scaleX(1)}}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1100px){
  .h1-medals{grid-template-columns:repeat(2,1fr)}
  .h1-badge{inset-inline-end:36%}
}
@media (max-width:960px){
  .h1-wall{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}
  .h1-wall .w1{grid-column:1/3;grid-row:auto/span 2}
  .h1-film{grid-template-columns:repeat(2,1fr)}
  .h1-hero__g,.h1-perf__g,.h1-team__g,.h1-say__g{grid-template-columns:1fr}
  .h1-hero h1{max-width:18ch}
  .h1-art{min-height:420px;max-width:560px;width:100%;margin-inline:auto}
  .h1-reel{min-height:0;aspect-ratio:16/10}
  .h1-bento{grid-template-columns:repeat(2,1fr)}
  .h1-bt--a,.h1-bt--b,.h1-bt--c,.h1-bt--d,.h1-bt--e{grid-column:auto;grid-row:auto}
  .h1-bt--a{grid-column:1/-1;min-height:260px}
  .h1-show__g{grid-template-columns:1fr}
  .h1-book{grid-template-columns:1fr}
  .h1-ages{grid-template-columns:1fr}
  .h1-ages__tabs{display:flex;overflow-x:auto;gap:.6rem;padding-bottom:.4rem;scroll-snap-type:x mandatory}
  .h1-ages__tabs button{flex:0 0 auto;scroll-snap-align:start;padding:.75rem 1rem}
  .h1-ages__tabs button:hover{translate:0 -3px}
}
@media (max-width:700px){
  .h1-ap{grid-template-columns:1fr}
  .h1-ap figure{min-height:0;height:230px}
  .h1-fan{justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;padding:1.6rem .5rem 2rem;margin-inline:calc(-1*var(--pad));padding-inline:var(--pad);scrollbar-width:thin}
  .h1-pol{flex:0 0 min(230px,72%);margin-inline:0;scroll-snap-align:center;rotate:calc(var(--r)/2)}
}
@media (max-width:560px){
  .h1-sc{flex-basis:72%}
  .h1-book__ph figure:last-child{width:72px}
  .h1-book{border-radius:24px}
  .h1-film{grid-template-columns:1fr;padding-inline:44px}
  .h1-film::before,.h1-film::after{inset-block:0;inset-inline:auto;width:14px;height:auto;background:var(--hole) 0 0/14px 30px repeat-y;animation:none}
  .h1-film::before{inset-inline-start:14px;top:0}.h1-film::after{inset-inline-end:14px;bottom:0}
  .h1-hero h1{max-width:none}
  .h1-art{min-height:360px}
  .h1-badge{width:74px;height:74px;inset-inline-end:30%}
  .h1-chip{padding:.55rem .9rem .55rem .6rem}
  .h1-cta{flex-direction:column;align-items:stretch}
  .h1-cta .btn,.h1-cta .h1-ghost{justify-content:center;white-space:nowrap}
  .h1-reel{box-shadow:7px 7px 0 -2px rgba(240,93,171,.6)}
  .h1-play{width:66px;height:66px}
  .h1-medals{grid-template-columns:1fr}
  .h1-bento{grid-template-columns:1fr}
  .h1-bt{min-height:170px}
  .h1-gauge{flex-wrap:wrap}
  .h1-wall{gap:.7rem;grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.h1-wall .w1{grid-column:1/3;grid-row:auto/span 2}.h1-wall figure{border-radius:16px}
  .h1-head{align-items:flex-start}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
      .h1-w i,.h1-up,.h1-art>*{animation:none!important;transform:none;opacity:1;translate:none;scale:none}
  .h1-marq__t,.h1-float,.h1-badge .ring,.h1-play,.h1-perf::before,.h1-mini em::after{animation:none!important}
  .h1-js .h1-sec:not(.in) [data-rv]{opacity:1!important;transform:none!important;clip-path:none!important}
  .h1p [data-rv],.h1-bars i,.h1-ring .v{transition:none!important}
  .h1-js .h1-perf:not(.in) .h1-bars i{transform:none}
  .h1-js .h1-perf:not(.in) .h1-ring .v{stroke-dashoffset:calc(264*(1 - var(--v)))}
  .h1-js .h1-how:not(.in) .h1-fr img{filter:none}
  .h1-q.on .h1-bar u{animation:none}
  .h1-bar{display:none}
}

/* ---------- extra photography ---------- */
.h1-bt__ph{position:absolute;inset-inline-end:1.1rem;top:1.1rem;width:76px;height:76px;border-radius:50%;overflow:hidden;border:3px solid var(--ink);background:#241c33;rotate:8deg;transition:rotate .4s var(--ease),scale .4s var(--ease)}
.h1-bt--d .h1-bt__ph{border-color:#fff}
.h1-bt:hover .h1-bt__ph{rotate:-6deg;scale:1.1}
.h1-medals__w{position:relative;flex:none;width:58px;height:58px}
.h1-medals__ph,.h1-medals__w>img{width:58px;height:58px;border-radius:16px;border:2px solid var(--c,var(--gold));background:#241c33}
.h1-medals__w i{position:absolute;inset-inline-end:-8px;bottom:-8px;width:28px;height:28px;border:2px solid #0B0910}
.h1-medals__w svg{width:15px;height:15px}
.h1-faces button{position:relative;overflow:hidden;padding:0}
.h1-faces button img{position:absolute;inset:0}
.h1-faces button b{position:absolute;inset-inline-end:0;bottom:0;width:20px;height:20px;border-radius:50%;background:var(--c);color:var(--ink);font:700 .7rem/20px var(--ff-d);text-align:center}
.h1p figure.ph-fb{background:linear-gradient(135deg,var(--pink),var(--violet))}


/* ===== home2.css ===== */
/* =========================================================
   HOME 2 · Twinkle Toes · prefix h2-
   Style: bold editorial / sticker playful · Bricolage Grotesque + Figtree
   Sections 1-4: hero (image reels) · style accordion · stage in numbers · stacked term cards
   ========================================================= */
.h2p{--teal:#22C7A9;--coral:#FF7A59;--ink:#0B0910;--cream:#FFF6E5;--ease:cubic-bezier(.2,.8,.2,1);--dx:1;
  --b1:#FFF6E5;--b2:#FFFFFF;--tx:#0B0910;--mu:#5B5560;--card:#fff;--ln:rgba(11,9,16,.14);
  font-family:var(--ff-b);color:var(--tx);overflow-x:clip}
[dir=rtl] .h2p{--dx:-1}
[data-theme=dark] .h2p{--b1:#0B0910;--b2:#110D19;--tx:#F6EFE0;--mu:#BDB4C9;--card:#18131F;--ln:rgba(255,255,255,.16)}
.h2p h1,.h2p h2,.h2p h3{font-family:var(--ff-d);font-weight:800;letter-spacing:-.025em;line-height:1.02;margin:0}
.h2p h2{font-size:clamp(2rem,4.6vw,3.6rem)}
.h2p h3{font-size:1.3rem}
.h2p p{margin:0}
.h2p figure{margin:0}
.h2p img{display:block;width:100%;height:100%;object-fit:cover}
.h2p button{font:inherit;cursor:pointer}
:where(.h2p) :is(ul,ol){list-style:none;margin:0;padding:0}
.h2-wrap{max-width:var(--max);margin-inline:auto;position:relative;z-index:2}
.h2-sec{position:relative;padding:clamp(3.5rem,7vw,6.5rem) var(--pad);overflow:hidden;isolation:isolate}
.h2p :focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.h2-kick{display:inline-flex;align-items:center;gap:.55rem;font:800 .78rem/1 var(--ff-b);letter-spacing:.14em;text-transform:uppercase;color:var(--tx);margin-bottom:1rem}
.h2-kick i{width:30px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--pink),var(--gold))}
.h2-hl{position:relative;display:inline-block;white-space:nowrap}
.h2-hl svg{position:absolute;inset-inline:-3%;bottom:-.16em;width:106%;height:.34em;fill:none;stroke:var(--pink);stroke-width:7;stroke-linecap:round;overflow:visible}
.h2-hl path{stroke-dasharray:420;stroke-dashoffset:420}
.h2-ar{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
[dir=rtl] .h2-ar{transform:scaleX(-1)}
.h2-btn2{display:inline-flex;align-items:center;gap:.6rem;font:700 1rem var(--ff-b);text-decoration:none;color:inherit;padding:.8rem 1.4rem;border-radius:999px;border:2px solid currentColor;transition:background .25s,color .25s,translate .25s,border-color .25s}
.h2-btn2:hover{background:var(--tx);color:var(--b1);border-color:var(--tx);translate:0 -3px}
.h2-btn2 svg{width:20px;height:20px;fill:currentColor}

/* ---------- reveal system ---------- */
.h2-js [data-r]{opacity:0;transition:opacity .8s var(--ease) calc(var(--i,0)*.09s),transform 1s var(--ease) calc(var(--i,0)*.09s),clip-path 1.1s var(--ease) calc(var(--i,0)*.09s)}
.h2-js [data-r=up]{transform:translateY(40px)}
.h2-js [data-r=left]{transform:translateX(calc(-60px*var(--dx)))}
.h2-js [data-r=right]{transform:translateX(calc(60px*var(--dx)))}
.h2-js [data-r=pop]{transform:scale(.8) rotate(-3deg)}
.h2-js [data-r=wipe]{clip-path:inset(0 100% 0 0 round 24px);opacity:1}
[dir=rtl].h2-js [data-r=wipe],[dir=rtl] .h2-js [data-r=wipe]{clip-path:inset(0 0 0 100% round 24px)}
.h2-js .in [data-r],.h2-js [data-r].in{opacity:1;transform:none}
.h2-js .in [data-r=wipe],.h2-js [data-r=wipe].in{clip-path:inset(0 0 0 0 round 24px)}
.h2-js .in .h2-hl path{animation:h2draw 1.1s .9s var(--ease) forwards}
@keyframes h2draw{to{stroke-dashoffset:0}}

/* =============== 1 · HERO =============== */
.h2-hero{padding:calc(var(--hh) + clamp(2rem,4vw,3.4rem)) var(--pad) 0;background:var(--b1);position:relative}
.h2-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;z-index:-1;animation:h2blob 14s ease-in-out infinite alternate}
.h2-blob--a{width:420px;height:420px;background:var(--gold);inset-inline-start:-120px;top:8%}
.h2-blob--b{width:380px;height:380px;background:var(--pink);inset-inline-end:-80px;top:-60px;animation-delay:-5s}
.h2-blob--c{width:320px;height:320px;background:var(--violet);inset-inline-end:30%;bottom:6%;opacity:.28;animation-delay:-9s}
@keyframes h2blob{to{transform:translate(40px,30px) scale(1.15)}}
.h2-hero__g{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;min-height:min(720px,calc(100vh - var(--hh) - 80px))}
.h2-hero__copy{padding-bottom:clamp(2rem,5vw,4rem)}
.h2-pill{display:inline-flex;align-items:center;gap:.6rem;padding:.45rem 1rem .45rem .5rem;border-radius:999px;background:var(--card);border:1.5px solid var(--ln);font:700 .86rem var(--ff-b)}
.h2-pill i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink)}
.h2-pill i svg{width:14px;height:14px;fill:currentColor;animation:h2spin 6s linear infinite}
@keyframes h2spin{to{transform:rotate(360deg)}}
.h2-hero h1{font-size:clamp(2.7rem,7.2vw,6rem);margin:1.2rem 0 1.3rem;line-height:.96}
.h2-ln{display:block;overflow:hidden;padding-bottom:.08em}
.h2-ln>span{display:inline-block;transform:translateY(105%) rotate(4deg);transform-origin:left bottom;animation:h2rise .95s var(--ease) calc(.15s + var(--i)*.12s) forwards}
@keyframes h2rise{to{transform:none}}
.h2-ln .g{background:linear-gradient(95deg,var(--violet),var(--pink) 60%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.h2-lede{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--mu);max-width:44ch}
.h2-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.7rem 0 2rem;align-items:center}
.h2-cta .btn{font-weight:800;padding:1rem 1.7rem}
.h2-cta .btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
[dir=rtl] .h2-cta .btn svg{transform:scaleX(-1)}
.h2-proof{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.h2-av{display:flex}
.h2-av img{width:46px;height:46px;border-radius:50%;border:3px solid var(--b1);margin-inline-start:-12px;object-fit:cover}
.h2-av img:first-child{margin-inline-start:0}
.h2-proof p{font-size:.92rem;line-height:1.35;color:var(--mu)}
.h2-proof b{display:block;color:var(--tx);font-size:1rem}
.h2-proof .st{color:var(--gold);letter-spacing:.1em;font-size:1rem}
.h2-reels{position:relative;height:min(660px,78vh);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,1.4vw,1rem);transform:rotate(5deg);margin-inline:clamp(0rem,2vw,1.5rem);
  -webkit-mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent)}
.h2-col{overflow:hidden;position:relative}
.h2-col__t{display:flex;flex-direction:column;gap:clamp(.6rem,1.4vw,1rem);animation:h2up 34s linear infinite}
.h2-col:nth-child(2) .h2-col__t{animation-direction:reverse;animation-duration:42s}
.h2-col:nth-child(3) .h2-col__t{animation-duration:38s}
.h2-col:hover .h2-col__t{animation-play-state:paused}
@keyframes h2up{to{transform:translateY(-50%)}}
.h2-col figure{aspect-ratio:3/4;border-radius:22px;overflow:hidden;flex:none;box-shadow:0 14px 30px rgba(11,9,16,.18)}
.h2-col figure img{transition:transform .8s var(--ease)}
.h2-col figure:hover img{transform:scale(1.08)}
.h2-col:nth-child(2) figure:nth-child(odd){aspect-ratio:1}
.h2-stick{position:absolute;z-index:4;pointer-events:none}
.h2-badge{inset-inline-start:-1%;bottom:12%;width:clamp(96px,11vw,132px);animation:h2float 5s ease-in-out infinite}
.h2-badge .bg{fill:var(--gold)}
.h2-badge text{font:800 11.5px var(--ff-b);letter-spacing:.2em;fill:var(--ink);text-transform:uppercase}
.h2-badge .ring{transform-origin:60px 60px;animation:h2spin 14s linear infinite}
.h2-badge .st{fill:var(--ink)}
.h2-chip{inset-inline-end:-2%;top:14%;display:flex;align-items:center;gap:.7rem;padding:.7rem 1.1rem .7rem .7rem;background:var(--card);color:var(--tx);border-radius:18px;box-shadow:0 16px 40px rgba(11,9,16,.22);border:1.5px solid var(--ln);animation:h2float 6s ease-in-out -2s infinite}
.h2-chip i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--pink);color:#fff}
.h2-chip i svg{width:22px;height:22px;fill:currentColor}
.h2-chip b{display:block;font:800 .95rem var(--ff-d)}
.h2-chip small{color:var(--mu);font-size:.78rem}
@keyframes h2float{50%{transform:translateY(-14px)}}
.h2-art{position:relative}
.h2-tick{margin-inline:calc(var(--pad)*-1);background:var(--ink);color:var(--cream);transform:rotate(-1.6deg);padding:1rem 0;border-block:3px solid var(--gold);overflow:hidden;position:relative;z-index:3;margin-top:clamp(.5rem,2vw,1.5rem);margin-bottom:-1rem}
.h2-tick__t{display:flex;width:max-content;animation:h2tick 28s linear infinite}
.h2-tick ul{display:flex;align-items:center;flex:none}
.h2-tick li{display:flex;align-items:center;font:800 clamp(1.3rem,2.6vw,2rem)/1 var(--ff-d);text-transform:uppercase;letter-spacing:-.01em;padding-inline-end:1.4rem;white-space:nowrap}
.h2-tick li::after{content:"";width:.7em;height:.7em;margin-inline-start:1.4rem;background:var(--gold);clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%);flex:none}
.h2-tick li:nth-child(even){color:transparent;-webkit-text-stroke:1.5px var(--cream)}
.h2-tick li:nth-child(3n)::after{background:var(--pink)}
@keyframes h2tick{to{transform:translateX(calc(-50%*var(--dx)))}}

/* =============== 2 · PICK YOUR RHYTHM (expanding panels) =============== */
.h2-rhy{background:var(--b2);padding-top:clamp(5rem,9vw,8rem)}
.h2-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.2rem 2rem;margin-bottom:clamp(1.8rem,3.5vw,3rem)}
.h2-head p.sub{color:var(--mu);max-width:42ch;margin-top:1rem;font-size:1.02rem}
.h2-acc{display:flex;gap:.8rem;height:min(600px,74vh)}
.h2-pn{position:relative;flex:1;min-width:0;border-radius:30px;overflow:hidden;color:#fff;background:var(--ink);transition:flex .48s cubic-bezier(.2,.75,.25,1);cursor:pointer;isolation:isolate}
.h2-pn.on{flex:5.2;cursor:default}
.h2-pn>img{position:absolute;inset:0;z-index:-2;transition:transform 1.2s var(--ease),filter .6s}
.h2-pn:not(.on)>img{filter:saturate(.7) brightness(.72)}
.h2-pn.on>img{transform:scale(1.04)}
.h2-pn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(11,9,16,.88),rgba(11,9,16,.05) 62%),linear-gradient(var(--c),var(--c));background-blend-mode:normal;mix-blend-mode:normal;opacity:1}
.h2-pn::after{background:linear-gradient(to top,rgba(11,9,16,.9),rgba(11,9,16,.1) 65%)}
.h2-pn:not(.on)::after{background:linear-gradient(to top,rgba(11,9,16,.85),color-mix(in srgb,var(--c) 38%,transparent))}
.h2-pn__t{position:absolute;inset:0;z-index:2;width:100%;background:none;border:0;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:1.3rem .4rem;text-align:center;cursor:pointer;touch-action:manipulation}
.h2-pn__t b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--c);color:var(--ink);font:800 .95rem var(--ff-d);flex:none;transition:transform .5s var(--ease)}
.h2-pn__t span{writing-mode:vertical-rl;transform:rotate(180deg);font:800 clamp(1.1rem,1.8vw,1.5rem) var(--ff-d);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;transition:opacity .3s}
.h2-pn:hover .h2-pn__t b{transform:scale(1.12) rotate(-8deg)}
.h2-pn.on .h2-pn__t{align-items:flex-start;justify-content:flex-start;flex-direction:row;gap:.8rem;padding:1.3rem;pointer-events:none;text-align:start}
.h2-pn.on .h2-pn__t span{display:none}
.h2-pn__b{position:absolute;z-index:3;inset-inline:0;bottom:0;padding:clamp(1.2rem,2.6vw,2.2rem);opacity:0;translate:0 12px;pointer-events:none;transition:opacity .28s ease,translate .32s ease}
.h2-pn.on .h2-pn__b{opacity:1;translate:0 0;pointer-events:auto;transition-delay:0s}
.h2-pn__b h3{font-size:clamp(2rem,4vw,3.4rem);margin-bottom:.7rem}
.h2-pn__b p{max-width:42ch;color:rgba(255,255,255,.88);font-size:1rem;margin-bottom:1rem}
.h2-ch{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}
.h2-ch li{padding:.35rem .85rem;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.3);font:700 .8rem var(--ff-b)}
.h2-pn__b a{display:inline-flex;align-items:center;gap:.55rem;background:var(--c);color:var(--ink);font:800 .95rem var(--ff-b);text-decoration:none;padding:.75rem 1.3rem;border-radius:999px;transition:translate .25s,box-shadow .25s}
.h2-pn__b a:hover{translate:0 -3px;box-shadow:0 10px 24px rgba(0,0,0,.4)}
.h2-pn__b a svg{width:18px;height:18px}

/* =============== 3 · STAGE IN NUMBERS =============== */
.h2-num{background:var(--ink);color:var(--cream)}
[data-theme=dark] .h2-num{background:#050408}
.h2-num .h2-kick{color:var(--cream)}
.h2-num__g{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,5vw,4.5rem);align-items:center}
.h2-num h2{font-size:clamp(2.2rem,5.4vw,4.4rem)}
.h2-num h2 em{font-style:normal;color:var(--gold)}
.h2-num .sub{color:rgba(255,246,229,.72);margin-top:1.1rem;max-width:40ch}
.h2-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,246,229,.18);border-radius:28px;overflow:hidden;border:1px solid rgba(255,246,229,.18)}
.h2-st{background:var(--ink);padding:clamp(1.3rem,3vw,2.3rem);position:relative;overflow:hidden;transition:background .4s}
[data-theme=dark] .h2-st{background:#050408}
.h2-st:hover{background:#17121f}
.h2-st b{display:block;font:800 clamp(3rem,7vw,5.6rem)/.95 var(--ff-d);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px var(--c);transition:color .4s,-webkit-text-stroke-color .4s}
.h2-st:hover b{color:var(--c)}
.h2-st b sup{font-size:.5em;vertical-align:top;line-height:1.1;margin-inline-start:.04em}
.h2-st small{display:block;margin-top:.7rem;font:700 .9rem var(--ff-b);text-transform:uppercase;letter-spacing:.1em;color:rgba(255,246,229,.75)}
.h2-st::after{content:"";position:absolute;inset-inline-end:-30px;bottom:-30px;width:110px;height:110px;border-radius:50%;background:var(--c);opacity:.14;transition:transform .6s var(--ease),opacity .4s}
.h2-st:hover::after{transform:scale(2.4);opacity:.22}
.h2-strips{margin:clamp(2.5rem,5vw,4.5rem) calc(var(--pad)*-1) 0;display:grid;gap:clamp(.6rem,1.4vw,1rem)}
.h2-strip{display:flex;gap:clamp(.6rem,1.4vw,1rem);width:max-content;will-change:transform;transform:translateX(calc(var(--sx,0px)*var(--dx)))}
.h2-strip figure{width:clamp(190px,24vw,330px);aspect-ratio:4/3;border-radius:22px;overflow:hidden;flex:none;position:relative}
.h2-strip figure:nth-child(even){aspect-ratio:1;align-self:center}
.h2-strip img{transition:transform .8s var(--ease),filter .5s;filter:saturate(.9)}
.h2-strip figure:hover img{transform:scale(1.1);filter:none}

@media(max-width:980px){
  .h2-hero__g{grid-template-columns:1fr;min-height:0}
  .h2-hero__copy{padding-bottom:0}
  .h2-reels{height:520px;transform:rotate(3deg);margin-block:1.5rem 0}
  .h2-num__g{grid-template-columns:1fr}
}
@media(max-width:760px){
  .h2-acc{flex-direction:column;height:auto}
  .h2-pn{flex:none;height:78px;transition:height .38s ease}
  .h2-pn.on{height:440px}
  .h2-pn__t{flex-direction:row;justify-content:flex-start;gap:.9rem;padding:0 1.1rem;align-items:center}
  .h2-pn__t span{writing-mode:horizontal-tb;transform:none;font-size:1.1rem}
  .h2-pn.on .h2-pn__t{align-items:flex-start;padding-top:1.1rem}
  .h2-chip{inset-inline-end:2%;top:6%}
  .h2-stats{grid-template-columns:1fr 1fr}
  .h2-st b{-webkit-text-stroke-width:1.5px}
}
@media(max-width:460px){
  .h2-reels{grid-template-columns:repeat(2,1fr);height:460px}
  .h2-col:nth-child(3){display:none}
  .h2-stats{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .h2-col__t,.h2-tick__t,.h2-blob,.h2-badge,.h2-chip,.h2-badge .ring,.h2-pill i svg{animation:none!important}
  .h2-ln>span{animation:none!important;transform:none!important}
  .h2-js [data-r]{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .h2-hl path{stroke-dashoffset:0!important;animation:none!important}
  .h2-strip{transform:none!important}
}

/* ---- shared ring decoration ---- */
.h2-ring{position:absolute;z-index:-1;border-radius:50%;border:2px dashed rgba(255,255,255,.28);animation:h2spin 40s linear infinite}
.h2-ring--a{width:520px;height:520px;inset-inline-end:-160px;top:-120px}
.h2-ring--b{width:360px;height:360px;inset-inline-start:-110px;bottom:-110px;animation-direction:reverse;border-color:rgba(245,184,46,.4)}

/* =============== 4 · A WEEK AT TWINKLE TOES (day schedule) =============== */
.h2-wk{background:var(--b1)}
.h2-wk__g{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.h2-wk__ph{position:sticky;top:calc(var(--hh) + 24px);aspect-ratio:4/5;border-radius:36px;overflow:hidden;background:var(--ink);box-shadow:0 26px 60px rgba(11,9,16,.24)}
.h2-wk__ph img{position:absolute;inset:0;opacity:0;transform:scale(1.12);transition:opacity .8s var(--ease),transform 1.4s var(--ease)}
.h2-wk__ph img.on{opacity:1;transform:scale(1)}
.h2-wk__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,9,16,.7),transparent 45%);pointer-events:none}
.h2-wk__ph figcaption{position:absolute;z-index:2;inset-inline:1.1rem;bottom:1.1rem;display:flex;align-items:center;gap:.6rem;color:#fff;font:800 1rem var(--ff-d)}
.h2-wk__ph figcaption svg{width:22px;height:22px;fill:var(--gold);flex:none;animation:h2spin 8s linear infinite}
.h2-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:.55rem;margin-bottom:1.1rem}
.h2-tabs button{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.75rem .3rem;border-radius:18px;border:1.5px solid var(--ln);background:var(--card);color:var(--tx);transition:background .3s,color .3s,translate .3s var(--ease),border-color .3s}
.h2-tabs b{font:800 1.15rem var(--ff-d)}
.h2-tabs small{font:600 .72rem var(--ff-b);color:var(--mu);transition:color .3s}
.h2-tabs button:hover{translate:0 -3px;border-color:var(--tx)}
.h2-tabs button[aria-selected=true]{background:var(--tx);color:var(--b1);border-color:var(--tx)}
.h2-tabs button[aria-selected=true] small{color:var(--gold)}
.h2-day{display:grid;gap:.75rem}
.h2-day[hidden]{display:none}
.h2-day.on .h2-cl{animation:h2row .6s var(--ease) backwards;animation-delay:calc(var(--j)*85ms)}
@keyframes h2row{from{opacity:0;transform:translateX(calc(40px*var(--dx)))}}
.h2-cl{position:relative;display:grid;grid-template-columns:78px 1fr auto auto 46px;align-items:center;gap:1rem;padding:1rem 1.1rem 1rem 1.5rem;border-radius:22px;background:var(--card);border:1.5px solid var(--ln);overflow:hidden;transition:translate .35s var(--ease),box-shadow .35s,border-color .35s}
[dir=rtl] .h2-cl{padding:1rem 1.5rem 1rem 1.1rem}
.h2-cl::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:7px;background:var(--c)}
.h2-cl:hover{translate:calc(6px*var(--dx)) 0;box-shadow:0 14px 30px rgba(11,9,16,.14);border-color:var(--c)}
.h2-cl__t b{display:block;font:800 1.75rem/1 var(--ff-d);letter-spacing:-.03em}
.h2-cl__t small{font:800 .72rem var(--ff-b);letter-spacing:.12em;color:var(--mu)}
.h2-cl__m h3{font-size:1.15rem;margin-bottom:.15rem}
.h2-cl__m p{font-size:.88rem;color:var(--mu);line-height:1.4}
.h2-cl__d{font:700 .82rem var(--ff-b);color:var(--mu);white-space:nowrap}
.h2-cl__s{font:800 .74rem var(--ff-b);padding:.4rem .75rem;border-radius:999px;white-space:nowrap}
.s-open{background:rgba(34,199,169,.18);color:#0B7D69}
.s-few{background:rgba(245,184,46,.24);color:#8F6200}
[data-theme=dark] .s-open{color:#5EE8CB}[data-theme=dark] .s-few{color:#F5B82E}
.h2-cl__a{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--c);color:var(--ink);transition:rotate .35s var(--ease),scale .35s}
.h2-cl__a:hover{scale:1.12;rotate:-45deg}
.h2-wk__n{margin-top:1.2rem;color:var(--mu);font-size:.95rem}
.h2-wk__n a{color:var(--tx);font-weight:800}

/* =============== 5 · THE DANCE YEAR (scroll-drawn timeline) =============== */
.h2-yr{background:var(--b2)}
.h2-tl{position:relative;display:grid;gap:clamp(1.6rem,3.5vw,3rem);--p:0;padding-block:.5rem}
.h2-tl::before,.h2-tl::after{content:"";position:absolute;inset-inline-start:50%;margin-inline-start:-2px;top:0;bottom:0;width:4px;border-radius:4px}
.h2-tl::before{background:var(--ln)}
.h2-tl::after{background:linear-gradient(var(--pink),var(--gold),var(--teal));transform:scaleY(var(--p));transform-origin:top}
.h2-ev{display:grid;grid-template-columns:1fr 60px 1fr;align-items:center;position:relative}
.h2-ev__dot{grid-column:2;grid-row:1;justify-self:center;z-index:2;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--b2);color:var(--tx);border:4px solid var(--c);font:800 1.1rem var(--ff-d);transition:background .5s,color .5s,scale .5s var(--ease),box-shadow .5s}
.h2-ev.lit .h2-ev__dot{background:var(--c);color:var(--ink);scale:1.12;box-shadow:0 0 0 8px color-mix(in srgb,var(--c) 28%,transparent)}
.h2-ev__c{grid-row:1;grid-column:1;display:grid;background:var(--card);border:1.5px solid var(--ln);border-radius:28px;overflow:hidden;transition:translate .5s var(--ease),box-shadow .5s}
.h2-ev:nth-child(even) .h2-ev__c{grid-column:3}
.h2-ev__c:hover{translate:0 -8px;box-shadow:0 24px 46px rgba(11,9,16,.16)}
.h2-ev__c figure{position:relative;aspect-ratio:16/8;overflow:hidden}
.h2-ev__c figure img{transition:transform 1s var(--ease)}
.h2-ev__c:hover figure img{transform:scale(1.07)}
.h2-ev__w{position:absolute;inset-inline-start:1rem;top:1rem;background:var(--c);color:var(--ink);font:800 .76rem var(--ff-b);letter-spacing:.1em;text-transform:uppercase;padding:.45rem .9rem;border-radius:999px}
.h2-ev__c>div{padding:1.2rem 1.5rem 1.5rem}
.h2-ev__c h3{font-size:1.45rem;margin-bottom:.4rem}
.h2-ev__c p{color:var(--mu);font-size:.97rem;line-height:1.55}

/* =============== 6 · PARENT FAQ =============== */
.h2-faq{background:linear-gradient(160deg,#6A33D8,#8A4DFF 55%,#B14DD8);color:#fff}
[data-theme=dark] .h2-faq{background:linear-gradient(160deg,#1c1033,#2a1654 60%,#3a1a5e)}
.h2-faq__g{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.8rem,5vw,4.5rem);align-items:start}
.h2-faq__l{position:sticky;top:calc(var(--hh) + 24px)}
.h2-faq .h2-kick,.h2-faq h2{color:#fff}
.h2-faq .h2-hl svg{stroke:var(--gold)}
.h2-faq__l .sub{color:rgba(255,255,255,.9);margin:1rem 0 1.8rem;max-width:38ch;font-size:1.02rem}
.h2-faq__ph{position:relative;aspect-ratio:4/3;border-radius:30px;overflow:hidden;box-shadow:0 24px 50px rgba(0,0,0,.35);border:4px solid rgba(255,255,255,.25)}
.h2-faq__ph img{transition:transform 1.2s var(--ease)}
.h2-faq__ph:hover img{transform:scale(1.06)}
.h2-faq__ph figcaption{position:absolute;inset-inline:.9rem;bottom:.9rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.7rem .7rem .7rem 1.2rem;border-radius:22px;background:rgba(11,9,16,.62);backdrop-filter:blur(10px);color:#fff}
.h2-faq__ph figcaption b{font:800 1.15rem var(--ff-d)}
.h2-faq__ph .btn{padding:.65rem 1.2rem}
.h2-faq__r{display:grid;gap:.8rem}
.h2-fq{border-radius:24px;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.24);transition:background .45s,color .45s,border-color .45s,box-shadow .45s;overflow:hidden}
.h2-fq h3{margin:0;font-size:inherit}
.h2-fq button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:none;border:0;color:inherit;text-align:start;padding:1.15rem 1.4rem;font:800 clamp(1.02rem,1.6vw,1.2rem)/1.25 var(--ff-d)}
.h2-fq button i{position:relative;flex:none;width:36px;height:36px;border-radius:50%;background:var(--gold);transition:rotate .45s var(--ease),background .3s}
.h2-fq button i::before,.h2-fq button i::after{content:"";position:absolute;inset:0;margin:auto;width:14px;height:2.5px;border-radius:2px;background:var(--ink);transition:rotate .45s var(--ease)}
.h2-fq button i::after{rotate:90deg}
.h2-fq.on button i{rotate:180deg;background:var(--ink)}
.h2-fq.on button i::before,.h2-fq.on button i::after{background:#fff}
.h2-fq.on button i::after{rotate:0deg}
.h2-fq:hover{background:rgba(255,255,255,.16)}
.h2-fq.on{background:#fff;color:var(--ink);border-color:#fff;box-shadow:0 18px 40px rgba(0,0,0,.25)}
[data-theme=dark] .h2-fq.on{background:#F6EFE0}
.h2-fq__p{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .55s var(--ease),visibility .55s}
.h2-fq.on .h2-fq__p{grid-template-rows:1fr;visibility:visible}
.h2-fq__p>div{overflow:hidden;min-height:0}
.h2-fq__p p{padding:0 1.4rem 1.3rem;color:#4a4350;font-size:1rem;max-width:58ch}

/* =============== 7 · GALLERY (filterable mosaic) =============== */
.h2-gal{background:var(--b1)}
.h2-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}
.h2-filters button{padding:.65rem 1.2rem;border-radius:999px;border:1.5px solid var(--ln);background:var(--card);color:var(--tx);font:800 .92rem var(--ff-b);transition:background .3s,color .3s,translate .3s var(--ease),border-color .3s}
.h2-filters button:hover{translate:0 -3px;border-color:var(--tx)}
.h2-filters button[aria-pressed=true]{background:var(--tx);color:var(--b1);border-color:var(--tx)}
.h2-mos{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;gap:clamp(.8rem,1.6vw,1.3rem)}
.h2-g{margin:0;min-height:0;aspect-ratio:4/3}
.h2-g.pop{animation:h2pop .6s var(--ease) backwards;animation-delay:calc(var(--k)*55ms)}
@keyframes h2pop{from{opacity:0;transform:scale(.86) translateY(24px)}}
.h2-g button{position:relative;display:block;width:100%;height:100%;padding:0;border:0;border-radius:26px;overflow:hidden;background:var(--ink);color:#fff;text-align:start}
.h2-g img{position:absolute;inset:0;transition:transform 1.1s var(--ease),filter .5s}
.h2-g button:hover img,.h2-g button:focus-visible img{transform:scale(1.09)}
.h2-g figcaption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:.2rem;padding:1.1rem 1.2rem;background:linear-gradient(to top,rgba(11,9,16,.82),rgba(11,9,16,0) 55%);translate:0 40%;opacity:0;transition:translate .5s var(--ease),opacity .4s}
.h2-g button:hover figcaption,.h2-g button:focus-visible figcaption{translate:0 0;opacity:1}
.h2-g figcaption small{align-self:flex-start;background:var(--gold);color:var(--ink);font:800 .7rem var(--ff-b);letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px;margin-bottom:.3rem}
.h2-g figcaption b{font:800 1.2rem var(--ff-d)}
.h2-g figcaption i{position:absolute;top:1rem;inset-inline-end:1rem;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink)}
.h2-g figcaption svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media(hover:none){.h2-g figcaption{translate:0 0;opacity:1}.h2-g figcaption i{display:none}}
.h2-lb{position:fixed;inset:0;z-index:300;background:rgba(5,4,8,.92);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.2rem;animation:h2fade .3s}
.h2-lb[hidden]{display:none}
@keyframes h2fade{from{opacity:0}}
.h2-lb figure{margin:0;display:grid;gap:.9rem;justify-items:center;min-width:0}
.h2-lb img{width:auto;height:auto;max-width:100%;max-height:78vh;border-radius:16px;box-shadow:0 30px 80px #000;animation:h2zoom .45s var(--ease)}
@keyframes h2zoom{from{opacity:0;transform:scale(.92)}}
.h2-lb figcaption{color:#fff;font:700 1rem var(--ff-b)}
.h2-lb button{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.4);background:rgba(255,255,255,.1);color:#fff;transition:background .25s,color .25s}
.h2-lb button:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.h2-lb svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
[dir=rtl] .h2-lb__n svg{transform:scaleX(-1)}
.h2-lb__x{position:absolute;top:1rem;inset-inline-end:1rem}

@media(max-width:980px){
  .h2-wk__g,.h2-faq__g{grid-template-columns:1fr}
  .h2-wk__ph{position:relative;top:auto;aspect-ratio:16/9}
  .h2-faq__l{position:relative;top:auto}
  .h2-mos{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .h2-tabs{grid-template-columns:repeat(3,1fr)}
  .h2-cl{grid-template-columns:64px 1fr 46px;row-gap:.5rem}
  .h2-cl__d,.h2-cl__s{grid-column:2;justify-self:start}
  .h2-cl__d{display:none}
  .h2-cl__a{grid-column:3;grid-row:1}
  .h2-tl::before,.h2-tl::after{inset-inline-start:22px}
  .h2-ev{grid-template-columns:44px 1fr;column-gap:1rem}
  .h2-ev__dot{grid-column:1;width:44px;height:44px;justify-self:start}
  .h2-ev__c,.h2-ev:nth-child(even) .h2-ev__c{grid-column:2}
}
@media(max-width:520px){
  .h2-lb{grid-template-columns:1fr;grid-template-rows:1fr auto;align-content:center}
  .h2-lb__n{position:absolute;bottom:1.2rem}
  .h2-lb__n--p{inset-inline-start:1.2rem}.h2-lb__n--n{inset-inline-end:1.2rem}
}
@media(prefers-reduced-motion:reduce){
  .h2-ring,.h2-wk__ph figcaption svg,.h2-lb,.h2-lb img,.h2-day.on .h2-cl,.h2-g.pop{animation:none!important}
  .h2-tl::after{transform:none}
}


/* ===== programs.css ===== */
/* PROGRAMS PAGE (prefix pg-) · Fraunces + Plus Jakarta Sans · age + style explorer */
.pg{--ff-d:"Fraunces",Georgia,serif;--ff-b:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;--a1:#F5B82E;--a2:#F05DAB;--a3:#438DE8;--a4:#8A4DFF;font-family:var(--ff-b);overflow-x:clip}
.pg h1,.pg h2,.pg h3{font-family:var(--ff-d);font-weight:600;letter-spacing:-.015em;line-height:1.1}
.pg-w{width:min(100% - 2*var(--pad),var(--max));margin-inline:auto;position:relative}
.pg-s{padding:clamp(3.2rem,6.5vw,5.5rem) 0;position:relative;overflow:hidden}
.pg-dk{background:#0B0910;color:#fff}
.pg-eye{display:inline-flex;align-items:center;gap:.6rem;font:700 .76rem/1 var(--ff-b);letter-spacing:.16em;text-transform:uppercase;color:var(--t-gold);margin:0 0 .9rem}
.pg-eye::before{content:"";width:26px;height:2px;background:currentColor;border-radius:2px}
.pg-dk .pg-eye{color:var(--gold)}
.pg-head{max-width:640px;margin-bottom:clamp(1.6rem,3vw,2.6rem)}
.pg-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem);max-width:20ch}
.pg-sub{color:var(--muted);max-width:54ch;margin-top:.8rem}
.pg-dk .pg-sub{color:rgba(255,255,255,.74)}
.pg-ghost{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;text-decoration:none;color:inherit;padding:.7rem .4rem;border-bottom:2px solid var(--gold)}
.pg-ghost span{transition:transform .25s}.pg-ghost:hover span{transform:translateX(5px)}
[dir=rtl] .pg-ghost:hover span{transform:translateX(-5px)}
.pg-go{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;font-size:.92rem;text-decoration:none;color:inherit;border-bottom:2px solid var(--c,var(--gold));padding-bottom:2px}
.pg-go span{transition:transform .25s}.pg-go:hover span{transform:translateX(5px)}
[dir=rtl] .pg-go span,[dir=rtl] .pg-ghost span{display:inline-block;transform:scaleX(-1)}
/* reveal */
.pg-js .pg-r{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*.1s)}
.pg-js .pg-r.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.pg-js .pg-r{opacity:1;transform:none;transition:none}}

/* 1 · HERO */
.pg-hero{background:radial-gradient(55% 60% at 88% 18%,rgba(138,77,255,.4),transparent 70%),radial-gradient(40% 50% at 6% 100%,rgba(240,93,171,.22),transparent 70%),#0B0910;padding:calc(var(--hh) + clamp(2.4rem,6vw,4.4rem)) 0 clamp(3rem,6vw,5rem)}
.pg-hero .pg-w{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.pg-pill{display:inline-flex;gap:.55rem;align-items:center;font:600 .82rem var(--ff-b);padding:.5rem .95rem;border:1px solid rgba(255,255,255,.25);border-radius:999px}
.pg-pill i{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:pgp 1.8s infinite}
@keyframes pgp{50%{transform:scale(1.7);opacity:.5}}
.pg-hero h1{font-size:clamp(2.2rem,4.7vw,3.6rem);max-width:15ch;margin:1.1rem 0 1rem}
.pg-hero h1 em{color:var(--gold);font-style:italic}
.pg-hero .pg-sub{font-size:1.06rem}
.pg-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:1.6rem}
.pg-find{list-style:none;margin:2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.pg-find a{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem 1rem .4rem .4rem;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--c) 65%,transparent);background:color-mix(in srgb,var(--c) 14%,transparent);color:#fff;font-weight:700;font-size:.88rem;text-decoration:none;transition:transform .3s cubic-bezier(.3,1.6,.5,1),background .25s,color .25s}
.pg-find b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#0B0910;font-size:.7rem}
.pg-find a:hover{transform:translateY(-4px) rotate(-2deg);background:var(--c);color:#0B0910}
.pg-art{position:relative;aspect-ratio:1/1.05;width:100%;max-width:470px;justify-self:center}
.pg-art__m{position:absolute;inset:0 9%;border-radius:999px 999px 28px 28px;overflow:hidden;border:3px solid rgba(245,184,46,.55);box-shadow:0 30px 70px rgba(0,0,0,.55);background:linear-gradient(160deg,var(--violet),var(--pink))}
.pg-art__m img,.pg-art__c img{width:100%;height:100%;object-fit:cover}
.pg-art__c{position:absolute;aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid #0B0910;box-shadow:0 14px 34px rgba(0,0,0,.5);animation:pgf 6s ease-in-out infinite;background:var(--pink)}
.pg-art__c.c1{width:34%;inset-inline-start:-3%;bottom:10%}
.pg-art__c.c2{width:27%;inset-inline-end:-2%;top:9%;animation-delay:-3s}
.pg-sty{position:absolute;padding:.42rem .85rem;border-radius:999px;background:var(--c);color:#0B0910;font:800 .78rem var(--ff-b);box-shadow:0 10px 24px rgba(0,0,0,.4);animation:pgf 5s ease-in-out infinite;white-space:nowrap}
.pg-sty.s1{top:16%;inset-inline-start:-4%}.pg-sty.s2{top:46%;inset-inline-end:-6%;animation-delay:-1.6s}.pg-sty.s3{bottom:3%;inset-inline-start:24%;animation-delay:-3.2s}
@keyframes pgf{50%{transform:translateY(-12px)}}
.pg-spin{position:absolute;width:108px;height:108px;inset-inline-end:2%;bottom:-3%;filter:drop-shadow(0 10px 20px rgba(0,0,0,.4))}
.pg-spin svg{width:100%;height:100%;animation:pgr 18s linear infinite}
.pg-spin text{fill:#0B0910;font:800 11px var(--ff-b);letter-spacing:.14em}
@keyframes pgr{to{transform:rotate(360deg)}}
.pg-star{position:absolute;width:14px;height:14px;background:var(--gold);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:pgt 3s ease-in-out infinite}
.pg-star.a{top:22%;inset-inline-start:46%}.pg-star.b{top:12%;inset-inline-end:8%;background:var(--pink);animation-delay:-1s}.pg-star.c{bottom:14%;inset-inline-start:6%;background:var(--blue);animation-delay:-2s}
@keyframes pgt{50%{transform:scale(1.6) rotate(45deg);opacity:.4}}


/* ===== NEW PROGRAM EXPERIENCE (pm-) ===== */
.pm-w{width:min(100% - 2*var(--pad),var(--max));margin-inline:auto;position:relative}
.pg h2 em{font-style:italic;background:linear-gradient(100deg,#F05DAB,#8A4DFF);-webkit-background-clip:text;background-clip:text;color:transparent;padding-inline-end:.06em}
.pm-dk h2 em{background-image:linear-gradient(100deg,#F5B82E,#F05DAB)}
.pm-h2{font-size:clamp(2rem,4.6vw,3.6rem);font-weight:500;line-height:1.04;max-width:18ch}
/* A · MATCHMAKER (fm- / fr-) */
.fm{padding:clamp(3rem,6vw,5.5rem) 0;background:var(--bg)}
.fm__hd,.up__hd{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem 3rem;flex-wrap:wrap;margin-bottom:clamp(1.5rem,3vw,2.4rem)}
.fm__hd .pm-h2,.up__hd .pm-h2{max-width:20ch;font-size:clamp(1.9rem,4vw,3rem)}
.fm__hd .pm-sub{max-width:44ch;margin:0}
.pm-lbl{display:flex;align-items:center;gap:.7rem;font-weight:700;margin:0 0 .75rem}
.pm-lbl b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#F05DAB,#8A4DFF);color:#fff;font-size:.8rem}
.pm-note{font-size:.88rem;color:var(--muted);min-height:1.4em;margin-top:auto}
.fm__b{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:1.2rem;align-items:stretch}
.fm__c{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:1.4rem;display:flex;flex-direction:column;gap:1.4rem;min-width:0}
.fm-ages{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.fm-a{font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;text-align:start;padding:.7rem .9rem;border-radius:18px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);transition:transform .3s cubic-bezier(.3,1.6,.5,1),background .25s,border-color .25s,box-shadow .25s}
.fm-a b{font:500 1.35rem/1.1 var(--ff-d);color:var(--c);filter:brightness(.82)}
.fm-a span{font-size:.74rem;font-weight:700;color:var(--muted)}
.fm-a:hover{border-color:var(--c);transform:translateY(-2px)}
.fm-a[aria-pressed=true]{background:var(--c);border-color:transparent;box-shadow:0 10px 22px color-mix(in srgb,var(--c) 45%,transparent)}
.fm-a[aria-pressed=true] b,.fm-a[aria-pressed=true] span{color:var(--t,#0B0910);filter:none}
.fm-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.fm-s{font:700 .86rem var(--ff-b);cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem .4rem .4rem;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);transition:transform .3s cubic-bezier(.3,1.6,.5,1),background .25s,opacity .25s,box-shadow .25s}
.fm-s i{font-style:normal;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:.95rem;background:color-mix(in srgb,var(--c) 30%,transparent)}
.fm-s:hover{border-color:var(--c);transform:translateY(-2px)}
.fm-s[aria-pressed=true]{background:var(--c);color:var(--t,#0B0910);border-color:transparent;box-shadow:0 8px 18px color-mix(in srgb,var(--c) 45%,transparent)}
.fm-s[aria-pressed=true] i{background:rgba(255,255,255,.35)}
.fm-s.off{opacity:.4;border-style:dashed}
.fm-s.shake{animation:pmsh .45s}
@keyframes pmsh{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@keyframes pmin{from{opacity:0;transform:translateY(24px);filter:blur(6px)}}
.fm__r{position:relative;background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--c);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:0 24px 60px color-mix(in srgb,var(--c) 22%,transparent);transition:box-shadow .5s,border-color .5s}
.fr__ph{position:relative;flex:none;height:clamp(180px,22vw,240px);background:var(--c);overflow:hidden}
.fr__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fr__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(11,9,16,.82))}
.fr__t{position:absolute;z-index:1;inset:auto 0 0;padding:1.1rem 1.4rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;color:#fff}
.fr__pl{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.55rem}
.fr__pl span{font:800 .64rem var(--ff-b);letter-spacing:.12em;text-transform:uppercase;padding:.32rem .7rem;border-radius:999px;background:var(--c);color:var(--t,#0B0910)}
.fr__t h3{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:500;line-height:1}
.fr__t h3 small{display:block;font:600 .9rem var(--ff-b);letter-spacing:0;margin-top:.35rem;opacity:.85}
.fr__em{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;background:#fff;box-shadow:0 8px 18px rgba(0,0,0,.3)}
.fr__body{padding:1.3rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.fr__body>p{color:var(--muted);max-width:62ch}
.fr__sk{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.fr__sk li{font:700 .78rem var(--ff-b);padding:.38rem .8rem;border-radius:999px;background:color-mix(in srgb,var(--c) 20%,transparent);border:1px solid color-mix(in srgb,var(--c) 55%,transparent)}
.fr__sk li::before{content:"\2713";margin-inline-end:.4rem;font-weight:800}
.fr__m{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:0}
.fr__m div{padding:.7rem .85rem;border-radius:16px;background:var(--bg);border:1px solid var(--line);min-width:0}
.fr__m dt{font:800 .62rem var(--ff-b);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fr__m dd{margin:.15rem 0 0;font-weight:700;font-size:.9rem;line-height:1.3}
.fr__f{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1.4rem}
.fr__btn{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-weight:800;background:#0B0910;color:var(--gold);padding:.85rem 1.4rem;border-radius:999px;transition:transform .3s,box-shadow .3s}
[data-theme=dark] .fr__btn{background:var(--gold);color:#0B0910}
.fr__btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.28)}
[dir=rtl] .fr__btn span,[dir=rtl] .up-b span{display:inline-block;transform:scaleX(-1)}
.fr-pair{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.82rem;font-weight:700;color:var(--muted)}
.fr-pair button{font:700 .78rem var(--ff-b);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem .3rem .35rem;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);transition:transform .3s cubic-bezier(.3,1.6,.5,1),border-color .25s}
.fr-pair button i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--c) 30%,transparent)}
.fr-pair button:hover{transform:translateY(-2px);border-color:var(--c)}
.fm__r.go .fr__ph img{animation:frz .9s cubic-bezier(.2,.8,.2,1) both}
.fm__r.go .fr__t,.fm__r.go .fr__body>*{animation:pmin .6s cubic-bezier(.2,.8,.2,1) both}
.fm__r.go .fr__body>*:nth-child(2){animation-delay:.06s}.fm__r.go .fr__body>*:nth-child(3){animation-delay:.12s}.fm__r.go .fr__body>*:nth-child(4){animation-delay:.18s}
@keyframes frz{from{transform:scale(1.15);opacity:.4}}
@media (max-width:1000px){.fm__b{grid-template-columns:1fr}.fm-ages{grid-template-columns:repeat(4,1fr)}}
@media (max-width:700px){.fm-ages{grid-template-columns:1fr 1fr}.fr__m{grid-template-columns:1fr 1fr}.fm__c{padding:1.1rem;border-radius:24px}.fm__r{border-radius:24px}.fr__btn{width:100%;justify-content:center}}
@media (max-width:420px){.fr__em{width:42px;height:42px;font-size:1.2rem}.fr__body{padding:1.1rem}.fr__t{padding:1rem}}
/* B · STYLE GALLERY */
.pm-gal{background:radial-gradient(50% 60% at 0 0,rgba(138,77,255,.4),transparent 70%),radial-gradient(45% 55% at 100% 100%,rgba(240,93,171,.3),transparent 70%),#0B0910;color:#fff;padding:clamp(3.5rem,7vw,6rem) 0;overflow:hidden}
.pm-gal .pg-eye{color:var(--gold)}
.pm-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.pm-sub{color:var(--muted);max-width:50ch;margin-top:.8rem}.pm-dk .pm-sub{color:rgba(255,255,255,.75)}
.pm-nav{display:flex;align-items:center;gap:.7rem}
.pm-nav span{font:500 1.1rem var(--ff-d);min-width:4.2rem;text-align:center}
.pm-nav button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:1.2rem;cursor:pointer;transition:transform .3s,background .3s,color .3s}
.pm-nav button:hover{background:var(--gold);color:#0B0910;transform:scale(1.1)}
.pm-trk{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem var(--pad) 1.5rem;scrollbar-width:none;cursor:grab}
.pm-trk::-webkit-scrollbar{display:none}.pm-trk.drag{cursor:grabbing;scroll-snap-type:none}
.pm-card{--o:0;position:relative;flex:none;width:clamp(290px,31vw,420px);height:clamp(520px,68vh,600px);border-radius:34px;overflow:hidden;scroll-snap-align:center;background:var(--c);color:#fff;isolation:isolate;box-shadow:0 30px 60px rgba(0,0,0,.4);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.pm-card:hover{transform:translateY(-10px);box-shadow:0 40px 80px color-mix(in srgb,var(--c) 40%,transparent)}
.pm-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:translateX(calc(var(--o)*1px)) scale(1.22);transition:filter .5s}
.pm-card:hover img{filter:saturate(1.2)}
.pm-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 35%,transparent) 0,rgba(11,9,16,.1) 35%,rgba(11,9,16,.92) 78%)}
.pm-card__i{position:absolute;top:1.3rem;inset-inline-start:1.5rem;font:500 1rem var(--ff-d);letter-spacing:.1em}
.pm-card__e{position:absolute;top:1rem;inset-inline-end:1.2rem;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;background:var(--c);transition:transform .5s cubic-bezier(.3,1.6,.5,1)}
.pm-card:hover .pm-card__e{transform:rotate(-14deg) scale(1.18)}
.pm-card__b{position:absolute;inset:auto 0 0;padding:1.6rem}
.pm-k{display:inline-block;font:800 .7rem var(--ff-b);letter-spacing:.14em;text-transform:uppercase;padding:.35rem .75rem;border-radius:999px;background:var(--c);color:var(--t,#0B0910)}
.pm-card h3{font-size:clamp(2.2rem,4vw,3rem);font-weight:500;margin:.7rem 0 .4rem;line-height:1}
.pm-card p{opacity:.88;max-width:34ch}
.pm-lad{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin:1.1rem 0 0;padding:0}
.pm-lad li{font:700 .7rem var(--ff-b);text-align:center;opacity:.45}.pm-lad li::before{content:"";display:block;height:6px;border-radius:6px;background:rgba(255,255,255,.4);margin-bottom:.4rem;transform-origin:left;transition:transform .6s}
.pm-lad li.on{opacity:1}.pm-lad li.on::before{background:var(--c);box-shadow:0 0 14px var(--c)}
.pm-card__x{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.2,.8,.2,1)}
.pm-card:hover .pm-card__x,.pm-card:focus-within .pm-card__x{grid-template-rows:1fr}
.pm-card__x>div{overflow:hidden}
.pm-card ul.pm-sks{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.3rem;font-weight:600;font-size:.92rem}
.pm-sks li::before{content:"\2726";color:var(--c);margin-inline-end:.5rem}
.pm-card__f{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-top:1.1rem;font-size:.88rem}
.pm-card__f b{display:block}
.pm-go2{font:800 .88rem var(--ff-b);cursor:pointer;border:0;background:#fff;color:#0B0910;padding:.7rem 1.1rem;border-radius:999px;transition:background .3s,transform .3s}
.pm-go2:hover{background:var(--c);transform:translateY(-2px)}
@media (hover:none){.pm-card__x{grid-template-rows:1fr}}
.pm-bar{height:4px;background:rgba(255,255,255,.14);border-radius:4px;margin-top:.6rem}.pm-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold),var(--pink),var(--violet));border-radius:4px;transform-origin:left;transform:scaleX(var(--p,.15))}
/* C · AGE JOURNEY */
.pm-jr{padding:clamp(3.5rem,7vw,6rem) 0;background:radial-gradient(40% 40% at 100% 0,rgba(240,93,171,.12),transparent 70%),var(--bg)}
.pm-jr__g{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,5rem);align-items:start;margin-top:clamp(1.5rem,4vw,3rem)}
.pm-sticky{position:sticky;top:calc(var(--hh) + 1.5rem);height:min(72vh,580px);border-radius:40px;padding:clamp(1.6rem,3vw,2.6rem);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:linear-gradient(155deg,var(--c),color-mix(in srgb,var(--c) 40%,#fff));color:var(--t,#0B0910);transition:background .7s;box-shadow:0 36px 80px color-mix(in srgb,var(--c) 38%,transparent)}
.pm-sticky::before,.pm-sticky::after{content:"";position:absolute;border-radius:50%;border:2px solid rgba(255,255,255,.45)}
.pm-sticky::before{width:340px;height:340px;inset:auto -100px -120px auto;animation:pgr 40s linear infinite;border-style:dashed}
.pm-sticky::after{width:160px;height:160px;inset:12% auto auto -50px;background:rgba(255,255,255,.2);border:0;animation:pgf 6s ease-in-out infinite}
.pm-sticky>*{position:relative;z-index:1}
.pm-sticky.sw .pm-big,.pm-sticky.sw h3,.pm-sticky.sw p{animation:pmin .6s cubic-bezier(.2,.8,.2,1) both}
.pm-big{display:block;font:500 clamp(5rem,11vw,9rem)/.9 var(--ff-d);letter-spacing:-.05em}
.pm-sticky h3{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;margin:.8rem 0 .5rem}.pm-sticky p{max-width:30ch;opacity:.85}
.pm-dots{display:flex;gap:.5rem}.pm-dots i{height:8px;width:8px;border-radius:8px;background:rgba(11,9,16,.25);transition:width .5s,background .4s}.pm-dots i.on{width:44px;background:var(--t,#0B0910)}
.pm-st{min-height:78vh;display:flex;flex-direction:column;justify-content:center;gap:1.2rem;padding:1.5rem 0}
.pm-st__n{display:none;font:500 4rem/1 var(--ff-d);color:var(--c);filter:brightness(.85)}
.pm-st h3{font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:500}
.pm-st>p{color:var(--muted);max-width:50ch}
.pm-foc{display:flex;flex-wrap:wrap;gap:.5rem}.pm-foc span{font:700 .78rem var(--ff-b);padding:.4rem .85rem;border-radius:999px;background:color-mix(in srgb,var(--c) 22%,transparent);border:1px solid color-mix(in srgb,var(--c) 60%,transparent)}
.pm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem}
.pm-tile{font:inherit;text-align:start;cursor:pointer;display:flex;align-items:center;gap:.9rem;padding:1rem;border-radius:22px;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:0 10px 26px rgba(11,9,16,.06);opacity:0;transform:translateY(24px) scale(.96);transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s}
.pm-st.in .pm-tile{opacity:1;transform:none;transition-delay:calc(var(--n)*80ms)}
.pm-st.in .pm-tile:hover{transform:translateY(-6px);border-color:var(--c);box-shadow:0 20px 40px color-mix(in srgb,var(--c) 32%,transparent);transition-delay:0s}
.pm-tile i{font-style:normal;flex:none;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;font-size:1.5rem;background:linear-gradient(145deg,var(--c),color-mix(in srgb,var(--c) 50%,#fff))}
.pm-tile>span{min-width:0}.pm-tile b{display:block;font-size:.95rem;overflow-wrap:anywhere}.pm-tile small{color:var(--muted);font-weight:600}
/* C2 · UPCOMING PROGRAMS (up- / uf- / uc-) */
.up{padding:clamp(3rem,6vw,5.5rem) 0;background:#EFE7FF}
[data-theme=dark] .up{background:#1A1330}
.up__hd .pm-sub{max-width:50ch}
.up__f{display:flex;flex-wrap:wrap;gap:.45rem;max-width:520px}
.up-fb{font:700 .82rem var(--ff-b);cursor:pointer;padding:.5rem .95rem;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--text) 25%,transparent);background:transparent;color:var(--text);transition:transform .3s cubic-bezier(.3,1.6,.5,1),background .25s,color .25s}
.up-fb:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--text) 8%,transparent)}
.up-fb[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:transparent}
.up-tg{display:flex;flex-wrap:wrap;gap:.35rem}
.up-tg span{font:800 .62rem var(--ff-b);letter-spacing:.1em;text-transform:uppercase;padding:.28rem .62rem;border-radius:999px;background:color-mix(in srgb,var(--c) 22%,transparent);border:1px solid color-mix(in srgb,var(--c) 55%,transparent)}
.up-tg span.hot{background:#F05DAB;border-color:#F05DAB;color:#fff}
.up-bar{height:8px;border-radius:8px;background:rgba(127,127,127,.25);overflow:hidden;margin-bottom:.45rem}
.up-bar i{display:block;height:100%;width:var(--p);background:var(--c);border-radius:8px;transform-origin:left;animation:upb 1s .2s cubic-bezier(.2,.8,.2,1) both}
@keyframes upb{from{transform:scaleX(0)}}
.up-b{display:inline-flex;justify-content:center;align-items:center;gap:.5rem;text-decoration:none;font-weight:800;font-size:.92rem;background:#0B0910;color:var(--gold);padding:.8rem 1.3rem;border-radius:999px;white-space:nowrap;transition:transform .3s,box-shadow .3s}
[data-theme=dark] .up-b{background:var(--gold);color:#0B0910}
.up-b:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.28)}
.up__n{margin-top:1.3rem;font-size:.88rem;font-weight:600;color:var(--muted)}
/* featured banner */
.uf{display:grid;grid-template-columns:1.05fr 1fr;border-radius:32px;overflow:hidden;background:#0B0910;color:#fff;box-shadow:0 34px 80px color-mix(in srgb,var(--c) 38%,rgba(11,9,16,.3));animation:pmin .7s cubic-bezier(.2,.8,.2,1) both}
.uf__ph{position:relative;min-height:380px;background:var(--c);overflow:hidden}
.uf__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.uf:hover .uf__ph img{transform:scale(1.06)}
.uf__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,9,16,.1) 40%,rgba(11,9,16,.7)),linear-gradient(90deg,transparent 70%,#0B0910)}
[dir=rtl] .uf__ph::after{background:linear-gradient(180deg,rgba(11,9,16,.1) 40%,rgba(11,9,16,.7)),linear-gradient(270deg,transparent 70%,#0B0910)}
.uf__cd{position:absolute;z-index:1;inset-inline-start:1.2rem;bottom:1.2rem;display:inline-flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-radius:999px;background:var(--gold);color:#0B0910;font:800 .85rem var(--ff-b)}
.uf__cd::before{content:"";width:9px;height:9px;border-radius:50%;background:#0B0910;animation:pgp 1.8s infinite}
.uf__em{position:absolute;z-index:1;top:1.1rem;inset-inline-start:1.2rem;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.35)}
.uf__b{padding:clamp(1.4rem,3vw,2.4rem);display:flex;flex-direction:column;gap:1rem;justify-content:center;min-width:0}
.uf__k{font:800 .74rem var(--ff-b);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.6rem}
.uf__k::before{content:"";width:26px;height:2px;background:currentColor}
.uf h3{font-size:clamp(2rem,4vw,3rem);font-weight:500;line-height:1}
.uf h3 small{display:block;font:600 1rem var(--ff-b);letter-spacing:0;margin-top:.5rem;opacity:.8}
.uf__b>p{color:rgba(255,255,255,.76);max-width:46ch}
.uf__m{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0}
.uf__m div{padding:.7rem .9rem;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);min-width:0}
.uf__m dt{font:800 .62rem var(--ff-b);letter-spacing:.12em;text-transform:uppercase;opacity:.65}
.uf__m dd{margin:.15rem 0 0;font-weight:700;font-size:.92rem;line-height:1.3}
.uf__s span{display:block;font-size:.85rem;font-weight:700}
.uf .up-b{background:var(--gold);color:#0B0910;align-self:flex-start;padding:.95rem 1.7rem}
/* card grid */
.up__g{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.uc{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:28px;overflow:hidden;animation:pmin .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--n)*80ms);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .3s}
.uc:hover{transform:translateY(-6px);border-color:var(--c);box-shadow:0 26px 50px color-mix(in srgb,var(--c) 32%,transparent)}
.uc__ph{position:relative;aspect-ratio:16/10;background:var(--c);overflow:hidden}
.uc__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.uc:hover .uc__ph img{transform:scale(1.08)}
.uc__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,9,16,.55))}
.uc .up-d{position:absolute;z-index:1;top:.9rem;inset-inline-start:.9rem;min-width:62px;border-radius:16px;background:#fff;color:#0B0910;text-align:center;padding:.45rem .5rem;line-height:1.05;box-shadow:0 8px 18px rgba(0,0,0,.3);border-top:5px solid var(--c)}
.up-d small{display:block;font:800 .62rem var(--ff-b);letter-spacing:.14em;text-transform:uppercase}
.up-d b{display:block;font:500 1.7rem/1.1 var(--ff-d)}
.uc__em{position:absolute;z-index:1;top:.9rem;inset-inline-end:.9rem;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:1.2rem;background:var(--c)}
.uc__b{padding:1.1rem 1.2rem 1.25rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.uc h3{font-size:1.45rem;font-weight:500}
.uc h3 small{display:block;font:600 .85rem var(--ff-b);letter-spacing:0;color:var(--muted);margin-top:.2rem}
.uc__b>p{color:var(--muted);font-size:.86rem}
.uc__s{margin-top:auto;padding-top:.4rem}
.uc__s span{display:block;font-size:.8rem;font-weight:700}
.uc .up-b{width:100%}
@media (max-width:1000px){.up__g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.uf{grid-template-columns:1fr}.uf__ph{min-height:0;aspect-ratio:16/10}.uf__ph::after{background:linear-gradient(180deg,rgba(11,9,16,.1) 40%,rgba(11,9,16,.75))}}
@media (max-width:620px){.up__g{grid-template-columns:1fr}.uf{border-radius:26px}.uf .up-b{align-self:stretch}.uf__m{grid-template-columns:1fr 1fr}}
/* D · CTA */
.pm-cta{background:var(--bg);color:#fff;padding:clamp(3rem,6vw,5.5rem) 0;overflow:hidden;position:relative}
.pm-cta .pm-w{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding:clamp(1.5rem,4.5vw,4rem);border-radius:clamp(26px,3vw,40px);overflow:hidden;background:radial-gradient(55% 70% at 100% 0,rgba(240,93,171,.5),transparent 70%),radial-gradient(55% 70% at 0 100%,rgba(138,77,255,.55),transparent 70%),#120C24;box-shadow:0 40px 90px rgba(40,20,90,.35)}
.pm-cta .pm-w>*{min-width:0}
.pm-cta .pg-cta{gap:.8rem}
.pm-out{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font:700 1rem var(--ff-b);text-decoration:none;color:#fff;padding:.9rem 1.5rem;border-radius:999px;border:2px solid rgba(255,255,255,.55);background:rgba(255,255,255,.06);white-space:nowrap;transition:transform .3s,background .3s,color .3s,border-color .3s}
.pm-out span{transition:transform .25s}
.pm-out:hover{background:#fff;color:#0B0910;border-color:#fff;transform:translateY(-2px)}.pm-out:hover span{transform:translateX(4px)}
[dir=rtl] .pm-out span{display:inline-block;transform:scaleX(-1)}[dir=rtl] .pm-out:hover span{transform:scaleX(-1) translateX(4px)}
@media (max-width:480px){.pm-cta .pg-cta{flex-wrap:wrap}.pm-cta .pg-cta .btn,.pm-out{flex:1 1 140px;justify-content:center;padding-inline:.8rem;font-size:.92rem}.pm-cta .btn--big{padding:.9rem .8rem}}
.pm-cta .pg-eye{color:var(--gold)}.pm-cta .pm-h2{max-width:14ch}
.pm-cta ul.pm-tr{list-style:none;margin:1.3rem 0 1.8rem;padding:0;display:grid;gap:.5rem;font-weight:600}
.pm-tr li::before{content:"\2713";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold);color:#0B0910;font-size:.7rem;margin-inline-end:.6rem}
.pm-qs{display:grid;gap:.7rem}
.pm-q{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:20px;transition:border-color .3s,background .3s}
.pm-q[open]{border-color:var(--gold);background:rgba(255,255,255,.12)}
.pm-q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 1.3rem;font:500 1.1rem var(--ff-d)}.pm-q summary::-webkit-details-marker{display:none}
.pm-q summary::after{content:"+";font:400 1.5rem/1 var(--ff-b);color:var(--gold);transition:transform .4s}.pm-q[open] summary::after{transform:rotate(135deg)}
.pm-q p{padding:0 1.3rem 1.2rem;color:rgba(255,255,255,.78)}
/* responsive */
@media (max-width:980px){.pg-hero .pg-w{grid-template-columns:1fr}.pg-art{max-width:400px}.pm-cta .pm-w{grid-template-columns:1fr}.pm-jr__g{grid-template-columns:1fr}.pm-sticky{display:none}.pm-st{min-height:0;padding:2rem 0}.pm-st__n{display:block}}
@media (max-width:560px){.pm-nav{display:none}.pm-card{width:84vw}.pg-sty.s2{inset-inline-end:-2%}.pg-spin{width:88px;height:88px}}
@media (prefers-reduced-motion:reduce){.pg *,.pg *::before,.pg *::after{animation:none!important;transition-duration:.01ms!important}.pm-tile{opacity:1;transform:none}}


/* ===== instructors.css ===== */
/* INSTRUCTORS PAGE (prefix it-) */
.it{--ff-d:"Fraunces",Georgia,serif;--ff-b:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;font-family:var(--ff-b)}
.it h1,.it h2,.it h3{font-family:var(--ff-d);font-weight:600;letter-spacing:-.015em;line-height:1.12}
.it-w{max-width:var(--max);margin-inline:auto;position:relative}
.it-s{padding:clamp(3rem,6vw,5rem) var(--pad);overflow:hidden}
.it-s h2{font-size:clamp(1.55rem,2.8vw,2.15rem);max-width:22ch}
.it-sub{color:var(--muted);max-width:54ch;margin-top:.7rem}
.it-dk{background:#0B0910;color:#fff}.it-dk .it-sub{color:rgba(255,255,255,.75)}
.it-js .it-r{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.it-js .it-r.it-in{opacity:1;transform:none}
.it-img{background:linear-gradient(135deg,#8A4DFF,#F05DAB)}
.it-img img{width:100%;height:100%;object-fit:cover}
/* 1 hero */
.it-hero{padding-top:calc(var(--hh) + clamp(2.5rem,6vw,4.5rem));background:radial-gradient(60% 70% at 85% 30%,rgba(138,77,255,.35),transparent 70%),#0B0910}
.it-hero .it-w{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.it-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);max-width:16ch;margin:1rem 0}
.it-pill{display:inline-flex;gap:.5rem;align-items:center;font:600 .82rem var(--ff-b);padding:.5rem .9rem;border:1px solid rgba(255,255,255,.25);border-radius:999px}
.it-pill i{width:8px;height:8px;border-radius:50%;background:var(--gold)}
.it-hero p.it-sub{font-size:1.05rem}
.it-cta{display:flex;flex-wrap:wrap;gap:.8rem 1rem;margin-top:1.7rem;align-items:center}
.it-ghost{font:700 1rem var(--ff-b);color:#fff;text-decoration:none;padding:.8rem 1.4rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.4);transition:background .25s}
.it-ghost:hover{background:rgba(255,255,255,.14)}
.it-fan{position:relative;height:clamp(300px,42vw,470px)}
.it-fan figure{position:absolute;margin:0;width:44%;aspect-ratio:3/4;border-radius:999px 999px 20px 20px;overflow:hidden;border:4px solid #fff;box-shadow:0 26px 46px -20px #000;transition:transform .5s cubic-bezier(.2,.8,.2,1);animation:it-drop 1s cubic-bezier(.2,.8,.2,1) both}
.it-fan figure:nth-child(1){inset:8% auto auto 2%;--r:-9deg;transform:rotate(var(--r));animation-delay:.15s}
.it-fan figure:nth-child(2){inset:0 auto auto 28%;z-index:2;--r:0deg;transform:rotate(var(--r));animation-delay:.3s}
.it-fan figure:nth-child(3){inset:12% 2% auto auto;--r:9deg;transform:rotate(var(--r));animation-delay:.45s}
.it-fan:hover figure{transform:rotate(0) translateY(-6px)}
.it-fan:hover figure:nth-child(1){transform:translateX(-14px)}.it-fan:hover figure:nth-child(3){transform:translateX(14px)}
.it-note{position:absolute;z-index:3;inset:auto auto 4% 0;background:var(--gold);color:#0B0910;border-radius:16px;padding:.7rem 1rem;font:700 .88rem/1.3 var(--ff-b);box-shadow:0 14px 30px -12px #000}
.it-note small{display:block;font-weight:500;font-size:.76rem}
@keyframes it-drop{from{opacity:0;translate:0 -50px}to{opacity:1;translate:0 0}}
/* 2 roster */
.it-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.6rem 0 1.8rem}
.it-chips button{font:600 .92rem var(--ff-b);padding:.55rem 1.1rem;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.it-chips button[aria-pressed=true]{background:var(--violet);border-color:var(--violet);color:#fff}
.it-dlg__g{display:grid;grid-template-columns:.8fr 1.2fr}
/* 3 founder */
.it-fd{background:color-mix(in srgb,var(--pink) 13%,var(--bg))}
.it-fd .it-w{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.it-arch{position:relative;max-width:420px;margin-inline:auto;width:100%}
.it-arch figure{margin:0;aspect-ratio:3/4;border-radius:999px 999px 24px 24px;overflow:hidden;box-shadow:0 30px 50px -28px rgba(11,9,16,.6)}
.it-spin{position:absolute;width:104px;inset:auto -14px -22px auto;animation:it-rot 20s linear infinite}
.it-spin circle{fill:var(--gold)}.it-spin text{font:700 10.4px var(--ff-b);letter-spacing:.14em;text-transform:uppercase;fill:#0B0910}
@keyframes it-rot{to{rotate:360deg}}
.it-q{font:italic 500 clamp(1.4rem,2.6vw,2rem)/1.3 var(--ff-d);margin:1rem 0 1.4rem;max-width:26ch}
.it-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.it-facts li{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;font:600 .9rem var(--ff-b)}
/* 4 approach accordion */
.it-acc{display:flex;gap:.8rem;margin-top:2rem;height:clamp(340px,40vw,430px)}
.it-pn{position:relative;flex:1;border:0;padding:0;border-radius:22px;overflow:hidden;cursor:pointer;color:#fff;text-align:start;transition:flex .6s cubic-bezier(.2,.8,.2,1)}
.it-pn[aria-expanded=true]{flex:3.6}
.it-pn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.it-pn::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,9,16,.92),rgba(11,9,16,.15) 70%)}
.it-pn span{position:absolute;z-index:1;inset:auto 1.1rem 1.1rem;display:block}
.it-pn b{display:block;font:600 1.2rem var(--ff-d)}
.it-pn em{display:block;font-style:normal;font-size:.92rem;max-width:34ch;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s,opacity .5s .1s}
.it-pn[aria-expanded=true] em{max-height:9rem;opacity:1;margin-top:.4rem}
/* 5 timetable */
.it-tt{margin-top:1.8rem;overflow-x:auto;border-radius:20px;border:1px solid rgba(255,255,255,.16)}
.it-tt table{width:100%;min-width:640px;border-collapse:collapse;font-size:.92rem}
.it-tt th,.it-tt td{padding:.85rem 1rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.1)}
.it-tt th:first-child,.it-tt td:first-child{text-align:start;font-weight:700;white-space:nowrap;position:sticky;inset-inline-start:0;background:#15111d}
.it-tt thead th{color:var(--gold);font-weight:700;background:#15111d}
.it-tt tbody tr{transition:background .25s}.it-tt tbody tr:hover,.it-tt tbody tr:focus-within{background:rgba(138,77,255,.22)}
.it-tt tbody tr:hover td:first-child{background:#2a1f45}
.it-tt td i{font-style:normal;display:inline-block;background:var(--c,#8A4DFF);color:#0B0910;font-weight:700;font-size:.82rem;padding:.25rem .6rem;border-radius:999px}
.it-tt small{display:block;font-weight:500;color:rgba(255,255,255,.65)}
/* 6 trust */
.it-mq{overflow:hidden;margin-top:1.8rem;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.it-mq ul{display:flex;gap:.8rem;list-style:none;margin:0;padding:0;width:max-content;animation:it-mq 36s linear infinite}
.it-mq:hover ul{animation-play-state:paused}
.it-mq li{white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.7rem 1.3rem;font-weight:600}
@keyframes it-mq{to{transform:translateX(-50%)}}
[dir=rtl] .it-mq ul{animation-direction:reverse}
.it-nums{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.it-nums li{border-inline-start:4px solid var(--gold);padding-inline-start:1rem}
.it-nums b{display:block;font:600 clamp(1.8rem,3.4vw,2.6rem) var(--ff-d)}.it-nums small{color:var(--muted)}
/* 7 cta */
.it-cta7 .it-w{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.it-cta7 h2{color:#fff}
.it-pick{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.it-pick select{font:600 1rem var(--ff-b);padding:.8rem 1.2rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.4);background:#17131F;color:#fff;min-width:200px}
.it-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.it-stack figure{margin:0;aspect-ratio:3/5;border-radius:999px 999px 18px 18px;overflow:hidden}
.it-stack figure:nth-child(2){margin-top:2rem}
@media(max-width:900px){
 .it-hero .it-w,.it-fd .it-w,.it-cta7 .it-w{grid-template-columns:1fr}
 .it-grid{grid-template-columns:repeat(2,1fr)}
 .it-dlg__g{grid-template-columns:1fr}.it-dlg figure{aspect-ratio:16/10;min-height:0}
 .it-acc{flex-direction:column;height:auto}.it-pn{flex:none;height:92px}.it-pn[aria-expanded=true]{height:280px}
 .it-nums{grid-template-columns:1fr}
}
@media(max-width:560px){.it-grid{grid-template-columns:1fr}.it-cta .btn,.it-ghost{width:100%;justify-content:center;text-align:center}.it-pick select,.it-pick .btn{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.it *{animation:none!important;transition:none!important}.it-js .it-r{opacity:1;transform:none}}

/* 2 one section per teacher */
.it-jump{position:sticky;top:59px;z-index:40;background:rgba(11,9,16,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.12);color:#fff}
.it-jump__in{max-width:var(--max);margin-inline:auto;padding:.6rem var(--pad);display:flex;gap:.4rem;align-items:center;overflow-x:auto;scrollbar-width:none}
.it-jump__in>span{font:700 .85rem var(--ff-b);color:var(--gold);margin-inline-end:.6rem;white-space:nowrap}
.it-jump a{flex:none;display:flex;flex-direction:column;line-height:1.2;text-decoration:none;font:700 .88rem var(--ff-b);padding:.4rem .9rem;border-radius:14px;transition:background .25s}
.it-jump a small{font-weight:500;font-size:.72rem;opacity:.65}
.it-jump a:hover{background:rgba(255,255,255,.12)}.it-jump a[aria-current=true]{background:var(--gold);color:#0B0910}
.it-jump a[aria-current=true] small{opacity:.8}
.it-t{--bg2:#FFF6E5;--fg:#0B0910;--ac:#F5B82E;--ac2:#6A33D8;--on:#fff;background:var(--bg2);color:var(--fg);padding:clamp(3rem,7vw,5.5rem) var(--pad);overflow:hidden;position:relative;scroll-margin-top:110px}
.it-t__g{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.it-t--r .it-t__ph{order:2}
.it-t__ph{position:relative;width:100%;max-width:430px;margin-inline:auto}
.it-t__ph figure{margin:0;aspect-ratio:4/5;overflow:hidden;position:relative;z-index:1}
.it-t__ph figure img{width:100%;height:100%;object-fit:cover;transform:scale(1.2);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.it-t__ph.it-in figure img{transform:none}
.it-t__ph figure::after{content:"";position:absolute;inset:0;background:var(--ac);transform:translateY(-101%);transition:transform 1.1s cubic-bezier(.7,0,.2,1) .1s}
.it-js .it-t__ph:not(.it-in) figure::after{transform:none}
.it-t__wm{position:absolute;z-index:0;inset:-9% auto auto -22%;font:600 clamp(4.5rem,11vw,9rem)/1 var(--ff-d);color:transparent;-webkit-text-stroke:1.5px var(--ac);opacity:.5;pointer-events:none;white-space:nowrap}
@supports(animation-timeline:view()){.it-t__wm{animation:it-wm linear both;animation-timeline:view();animation-range:cover}@keyframes it-wm{from{translate:-8% 0}to{translate:14% 0}}}
.it-t__tag{position:absolute;z-index:3;inset:auto auto 7% -6%;background:var(--ac);color:#0B0910;font:700 .85rem var(--ff-b);padding:.5rem 1.1rem;border-radius:999px;box-shadow:0 12px 24px -10px rgba(0,0,0,.5)}
.it-t__role{font:700 .95rem var(--ff-b);color:var(--ac2)}
.it-nm{font-size:clamp(2.3rem,5.4vw,4rem);max-width:none;margin:.3rem 0 1rem;line-height:1.02}
.it-nm.it-r{opacity:1;transform:none}.it-nm .ln{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em}
.it-nm i{display:inline-block;font-style:normal;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.it-js .it-nm:not(.it-in) i{transform:translateY(112%)}.it-nm .ln:last-child i{transition-delay:.12s}
.it-t__q{font:italic 500 clamp(1.15rem,2vw,1.55rem)/1.35 var(--ff-d);max-width:30ch;margin-bottom:1rem}
.it-t__bio{max-width:52ch;opacity:.88;margin-bottom:.6rem}
.it-k{margin-top:1.2rem;font:700 .8rem var(--ff-b);opacity:.7}
.it-t__sp{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.it-t__sp li{font:600 .86rem var(--ff-b);padding:.4rem .9rem;border-radius:999px;border:1.5px solid currentColor}
.it-days{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.it-days i{font-style:normal;font:600 .78rem var(--ff-b);padding:.38rem .7rem;border-radius:999px;border:1px solid currentColor;opacity:.4}
.it-days i.on{opacity:1;background:var(--ac2);border-color:var(--ac2);color:var(--on);font-weight:700}
.it-t__btn{display:inline-block;margin-top:1.6rem;font:700 1rem var(--ff-b);text-decoration:none;padding:.9rem 1.7rem;border-radius:999px;background:var(--fg);color:var(--bg2);transition:transform .3s,box-shadow .3s}
.it-t__btn:hover{transform:translateY(-3px);box-shadow:0 14px 26px -12px rgba(0,0,0,.55)}
.it-st{list-style:none;margin:1.3rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:1rem 2rem}
.it-st li{border-inline-start:4px solid var(--ac);padding-inline-start:.9rem}
.it-st b{display:block;font:600 clamp(1.7rem,3vw,2.3rem) var(--ff-d)}.it-st small{opacity:.7}
.it-bx{margin-top:1.2rem}.it-bx ol{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;counter-reset:s}
.it-bx li{background:color-mix(in srgb,var(--fg) 7%,transparent);border-radius:16px;padding:.8rem 1rem;counter-increment:s}
.it-bx li b{display:block;font:600 1rem var(--ff-d)}.it-bx li small{opacity:.7;font-size:.82rem}
.it-tl li::before{content:counter(s);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ac);color:#0B0910;font:700 .8rem var(--ff-b);margin-bottom:.5rem}
.it-fc{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.it-fc li{background:#fff;color:#0B0910;border-radius:18px;padding:1rem;box-shadow:0 14px 24px -18px rgba(0,0,0,.4);transition:transform .3s}.it-fc li:hover{transform:translateY(-5px) rotate(-1deg)}
.it-fc b{display:block;font:600 1rem var(--ff-d)}.it-fc small{opacity:.7;font-size:.82rem}
/* unified teacher design: same look for all six */
.it-t__ph figure{border-radius:999px 999px 26px 26px}
.it-t__tag{color:#0B0910}.it-t__btn{background:var(--ac);color:#0B0910}
.it-bd{position:absolute;z-index:3;width:104px;inset:-14px -16px auto auto}.it-bd circle{fill:var(--ac)}.it-bd .rg{transform-origin:center;animation:it-rot 20s linear infinite}.it-bd text{font:700 10.4px var(--ff-b);letter-spacing:.12em;text-transform:uppercase;fill:#0B0910}
@keyframes it-rot{to{rotate:360deg}}
.it-fc{list-style:none;margin:1.3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.it-fc li{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:.9rem 1rem;transition:transform .3s,border-color .3s}
.it-fc li:hover{transform:translateY(-4px);border-color:var(--ac)}
.it-fc b{display:block;font:600 1rem var(--ff-d)}.it-fc small{opacity:.7;font-size:.82rem}
.it-st{margin-top:1.2rem}
@media(max-width:860px){.it-t__g{grid-template-columns:1fr}.it-t--r .it-t__ph{order:0}.it-t__ph{max-width:320px}.it-t__wm{inset:-6% auto auto -4%!important}.it-t__tag{inset:auto auto 6% 0}.it-fc{grid-template-columns:1fr}.it-t__btn{display:block;text-align:center}.it-bd{width:84px}}
/* teacher sections follow light / dark mode */
.it-t{--bg2:var(--bg);--fg:var(--text);--ac:#F5B82E;--ac2:#6A33D8;--on:#fff;color:var(--text);border-top:1px solid var(--line);background:radial-gradient(55% 60% at 12% 10%,rgba(138,77,255,.14),transparent 70%),radial-gradient(45% 50% at 95% 95%,rgba(240,93,171,.14),transparent 70%),var(--bg)}
.it-t__btn{background:var(--text);color:var(--bg)}
.it-fc li{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:0 14px 24px -20px rgba(0,0,0,.35)}
.it-fc b{color:var(--text)}.it-fc small{color:var(--muted);opacity:1}
.it-t__sp li{border-color:var(--text)}
.it-days i{border-color:var(--text)}
[data-theme=dark] .it-t{--ac2:#F05DAB;--on:#0B0910;background:radial-gradient(55% 60% at 12% 10%,rgba(138,77,255,.38),transparent 70%),radial-gradient(45% 50% at 95% 95%,rgba(240,93,171,.22),transparent 70%),var(--bg)}
[data-theme=dark] .it-t__btn{background:var(--ac);color:#0B0910}
[data-theme=dark] .it-fc li{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18)}
/* new teacher photo style: fanned photo stack, no background word */
.it-t__wm{display:none}
.it-t__ph{max-width:400px}
.it-t__ph figure{border-radius:28px;box-shadow:0 30px 50px -26px rgba(0,0,0,.6);outline:6px solid #fff}
[data-theme=dark] .it-t__ph figure{outline-color:#17131F}
.it-t__ph::before,.it-t__ph::after{content:"";position:absolute;inset:0;border-radius:28px;z-index:0;transition:rotate 1.1s cubic-bezier(.2,.8,.2,1) .3s,translate .6s}
.it-t__ph::before{background:var(--ac);rotate:0deg}
.it-t__ph::after{background:var(--ac2);rotate:0deg;opacity:.9}
[data-theme=dark] .it-t__ph::after{opacity:.85}
.it-t__ph.it-in::before{rotate:-7deg}
.it-t__ph.it-in::after{rotate:6deg}
.it-t__ph.it-in:hover::before{rotate:-11deg;translate:-14px 0}
.it-t__ph.it-in:hover::after{rotate:10deg;translate:14px 0}
.it-t__tag{rotate:-4deg;border:4px solid var(--bg);inset:auto auto 6% -7%;font-size:.9rem;box-shadow:0 14px 26px -12px rgba(0,0,0,.6)}
.it-t__ph figure img{transition:transform 1.6s cubic-bezier(.2,.7,.2,1),filter .5s}
@media(max-width:860px){.it-t__ph{max-width:300px}.it-t__tag{inset:auto auto 5% -3%}}
@media(prefers-reduced-motion:reduce){.it-t__ph.it-in::before{rotate:-7deg}.it-t__ph.it-in::after{rotate:6deg}}
/* jump bar: centred, not sticky */
.it-jump{position:static;top:auto}
.it-jump__in{justify-content:safe center}
.it-jump__in>span{margin-inline-end:.8rem}
/* 4 how we teach: promise list + photo stack */
.it-hw__g{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.it-hw__list{list-style:none;margin:1.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.it-hw__b{position:relative;width:100%;text-align:start;border:1px solid transparent;background:transparent;color:var(--text);border-radius:20px;padding:1.05rem 1.3rem;cursor:pointer;overflow:hidden;transition:background .35s,border-color .35s,box-shadow .35s}
.it-hw__b:hover{border-color:var(--line)}
.it-hw__b b{display:block;font:600 clamp(1.25rem,2.2vw,1.6rem) var(--ff-d);opacity:.55;transition:opacity .3s}
.it-hw__d{display:block;max-width:40ch;color:var(--muted);max-height:0;opacity:0;overflow:hidden;transition:max-height .5s,opacity .5s .1s,margin .5s}
.it-hw__b[aria-expanded=true]{background:var(--surface);border-color:var(--line);box-shadow:0 20px 34px -26px rgba(0,0,0,.5)}
.it-hw__b[aria-expanded=true] b{opacity:1}
.it-hw__b[aria-expanded=true] .it-hw__d{max-height:6rem;opacity:1;margin-top:.35rem}
.it-hw__bar{position:absolute;inset:auto auto 0 0;height:4px;width:0;background:linear-gradient(90deg,var(--gold),var(--pink))}
.it-hw__b[aria-expanded=true] .it-hw__bar{animation:it-fill 5s linear forwards}
.it-hw.paused .it-hw__bar{animation-play-state:paused}
@keyframes it-fill{to{width:100%}}
.it-hw__stack{position:relative;aspect-ratio:5/4;max-width:560px;margin-inline:auto}
.it-hw__stack::before{content:"";position:absolute;inset:0;border-radius:30px;background:var(--gold);rotate:-4deg}
.it-hw__stack::after{content:"";position:absolute;inset:0;border-radius:30px;background:var(--pink);rotate:3deg;opacity:.85}
.it-hw__stack figure{position:absolute;inset:0;z-index:1;margin:0;border-radius:30px;overflow:hidden;outline:6px solid var(--surface);opacity:0;transform:scale(1.06);transition:opacity .7s,transform 1.1s cubic-bezier(.2,.8,.2,1)}
.it-hw__stack figure.on{opacity:1;transform:none;z-index:2}
.it-hw__stack img{width:100%;height:100%;object-fit:cover}
.it-hw__stack figcaption{position:absolute;inset:auto auto 1rem 1rem;background:#fff;color:#0B0910;font:700 .9rem var(--ff-b);padding:.45rem 1rem;border-radius:999px;rotate:-3deg}
@media(max-width:860px){.it-hw__g{grid-template-columns:1fr}.it-hw__r{order:-1}.it-hw__stack{max-width:420px;aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.it-hw__b[aria-expanded=true] .it-hw__bar{width:100%}}


/* ===== parent-dashboard.css ===== */
/* Parent dashboard — responsive family portal */
.tt-parent-app{--ff-d:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;--ff-b:"Figtree","Segoe UI",system-ui,sans-serif;--pd-ink:#0B0910;--pd-muted:#5B5560;--pd-line:rgba(11,9,16,.14);--pd-paper:#FFFFFF;--pd-bg:#FFF6E5;--pd-pink:#F05DAB;--pd-blue:#438DE8;--pd-gold:#F5B82E;--pd-navy:#0B0910;--pd-radius:22px;background:var(--pd-bg);color:var(--pd-ink);font-family:var(--ff-b)}
.tt-parent-app[data-theme="dark"],[data-theme="dark"] .tt-parent-app{--ff-d:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;--ff-b:"Figtree","Segoe UI",system-ui,sans-serif;--pd-ink:#FFF6E5;--pd-muted:#D4C9B8;--pd-line:#403347;--pd-paper:#17121D;--pd-bg:#0B0910}
.pd-shell{min-height:100vh;display:grid;grid-template-columns:258px minmax(0,1fr)}
.pd-sidebar{background:#0B0910;color:#fff;min-height:100vh;position:sticky;top:0;height:100vh;padding:27px 17px 22px;display:flex;flex-direction:column;z-index:120;overflow-y:auto}
.pd-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;padding:0 8px 27px;border-bottom:1px solid #ffffff20}
.pd-brand img{width:42px;height:42px;object-fit:contain;border-radius:50%;background:#fff;padding:3px}
.pd-brand span{min-width:0}.pd-brand b{font:800 1.22rem/1.1 var(--ff-d);display:block;letter-spacing:-.03em}.pd-brand small{display:block;font-size:.61rem;color:#F5B82E;letter-spacing:.1em;margin-top:5px;font-weight:700}
.pd-family{display:flex;align-items:center;gap:10px;padding:22px 6px 25px;position:relative}.pd-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:linear-gradient(135deg,#F05DAB,#F9B8D8);color:#0B0910;font-weight:800;flex:none}.pd-family b,.pd-top-profile b{display:block;font-size:.88rem}.pd-family small,.pd-top-profile small{display:block;font-size:.75rem;color:#D9CBAF}.pd-online{width:8px;height:8px;background:#7ee0b5;border-radius:50%;margin-inline-start:auto;align-self:flex-start;margin-top:6px;box-shadow:0 0 0 4px #7ee0b51c}
.pd-nav-label{font-size:.65rem;letter-spacing:.15em;font-weight:800;color:#B9A98B;padding:0 12px;margin:0 0 10px}
.pd-nav{display:grid;gap:6px}.pd-nav-link{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#E5D7BD;padding:12px 13px;border-radius:13px;font:600 .9rem var(--ff-b);text-align:start;cursor:pointer;transition:background .2s,color .2s,transform .2s;width:100%}.pd-nav-link:hover{background:#ffffff10;transform:translateX(2px)}.pd-nav-link.active{background:#F05DAB;color:#0B0910;box-shadow:0 9px 22px #F05DAB28}.pd-nav-icon{width:21px;text-align:center;font-size:1.2rem;line-height:1}.pd-nav-badge{margin-inline-start:auto;border-radius:20px;background:#ffffff20;padding:2px 7px;font-size:.72rem}.pd-nav-link.active .pd-nav-badge{background:#0B091017}
.pd-sidebar-bottom{margin-top:auto;padding-top:25px;display:grid;gap:13px}.pd-logout,.pd-back{display:flex;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;color:#E5D7BD;font-size:.86rem;font-weight:600}.pd-logout span{font-size:1.2rem}.pd-back{font-size:.78rem;color:#B9A98B;border-top:1px solid #ffffff20;padding-top:19px}
.pd-main{min-width:0}.pd-topbar{min-height:90px;padding:18px clamp(20px,3.2vw,48px);display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--pd-line);background:var(--pd-paper);position:sticky;top:0;z-index:80}.pd-top-left{display:flex;align-items:center;gap:13px;min-width:0}.pd-eyebrow,.pd-kicker{font-size:.67rem;letter-spacing:.15em;font-weight:800;color:var(--pd-muted)}.pd-eyebrow{display:block;margin-bottom:5px}.pd-eyebrow span{color:var(--pd-pink)}.pd-topbar h1{font-size:clamp(1.25rem,2vw,1.7rem);color:var(--pd-ink);letter-spacing:-.04em}.pd-top-actions{display:flex;align-items:center;gap:9px}.pd-icon-btn{width:39px;height:39px;border-radius:13px;border:1px solid var(--pd-line);background:var(--pd-paper);color:var(--pd-ink);display:grid;place-items:center;cursor:pointer;font-size:1.2rem}.pd-icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.pd-icon-btn .i-sun{display:none}[data-theme="dark"] .pd-icon-btn .i-moon{display:none}[data-theme="dark"] .pd-icon-btn .i-sun{display:block}.pd-top-profile{display:flex;align-items:center;gap:9px;border-inline-start:1px solid var(--pd-line);padding-inline-start:16px;margin-inline-start:5px}.pd-avatar.small{width:37px;height:37px;border-radius:50%;font-size:.78rem}.pd-top-profile b{color:var(--pd-ink)}.pd-top-profile small{color:var(--pd-muted)}.pd-menu-btn{display:none}
.pd-content{max-width:1530px;margin:0 auto;padding:clamp(20px,3vw,42px) clamp(18px,3.2vw,48px) 20px}.pd-view{display:none;animation:pdRise .45s ease both}.pd-view.is-active{display:block}@keyframes pdRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pd-welcome{display:grid;grid-template-columns:1fr .9fr;min-height:300px;background:#211A2A;border-radius:27px;overflow:hidden;position:relative}.pd-welcome-copy{padding:clamp(25px,4vw,49px);align-self:center;position:relative;z-index:2}.pd-pill{display:inline-flex;align-items:center;gap:8px;border-radius:30px;background:#fff;padding:7px 11px;color:#374e69;font-size:.63rem;letter-spacing:.08em;font-weight:800}.pd-pill i{width:7px;height:7px;border-radius:50%;background:#F05DAB;box-shadow:0 0 0 4px #F05DAB20}.pd-welcome h2{font-size:clamp(2.1rem,3.6vw,3.4rem);letter-spacing:-.055em;color:#0B0910;margin:18px 0 13px;line-height:.98}.pd-welcome h2 em,.pd-feature-copy h3 em,.pd-calendar-banner h3 em{font-style:normal;color:#F05DAB}.pd-welcome-copy>p{color:#5B5560;max-width:430px;font-size:.97rem;margin-bottom:22px}.pd-primary{display:inline-flex;align-items:center;justify-content:center;gap:17px;border:0;border-radius:12px;background:#0B0910;color:#fff;padding:13px 18px;font:700 .9rem var(--ff-b);cursor:pointer;transition:transform .2s,box-shadow .2s}.pd-primary span{font-size:1.1rem}.pd-primary:hover{transform:translateY(-2px);box-shadow:0 10px 22px #0B091024}.pd-welcome-photo{position:relative;min-height:300px;overflow:hidden}.pd-welcome-photo>img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center 38%;mix-blend-mode:multiply;mask-image:linear-gradient(90deg,transparent 0%,#000 25%);}.pd-photo-note{position:absolute;bottom:21px;left:21px;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:15px;background:#fff;box-shadow:0 12px 30px #15233d22}.pd-note-star{width:33px;height:33px;display:grid;place-items:center;background:#2B1725;border-radius:11px;color:#F05DAB;font-size:1.2rem}.pd-photo-note b,.pd-photo-note small{display:block}.pd-photo-note b{font-size:.83rem;color:#0B0910}.pd-photo-note small{font-size:.7rem;color:#778095}.pd-photo-stamp{position:absolute;top:20px;right:20px;background:#F5B82E;color:#0B0910;border-radius:50%;width:78px;height:78px;display:grid;place-content:center;text-align:center;font-size:.65rem;font-weight:900;line-height:1.3;letter-spacing:.07em;transform:rotate(9deg);box-shadow:0 7px 20px #0B091020}
.pd-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0 36px}.pd-stat{background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:18px;padding:19px;display:flex;align-items:flex-start;gap:13px;position:relative;min-width:0;transition:transform .25s,box-shadow .25s}.pd-stat:hover{transform:translateY(-3px);box-shadow:0 12px 26px #0B09100c}.pd-stat-icon{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;font-size:1.35rem;flex:none}.pd-stat-icon.pink{background:#2B1725;color:#F05DAB}.pd-stat-icon.blue{background:#292333;color:#8F6200}.pd-stat-icon.gold{background:#211A2A;color:#F5B82E}.pd-stat small{font-size:.77rem;color:var(--pd-muted);display:block}.pd-stat strong{font:800 1.85rem/1.3 var(--ff-d);display:block;color:var(--pd-ink);margin:3px 0}.pd-stat strong sup{font-size:1rem}.pd-stat p{font-size:.75rem;color:var(--pd-muted)}.pd-stat-mark{margin-inline-start:auto;color:#a3a3b6;font-size:1rem}
.pd-section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:0 0 17px}.pd-section-heading h2,.pd-page-intro h2{font-size:clamp(1.55rem,2.3vw,2.15rem);letter-spacing:-.045em;color:var(--pd-ink);margin-top:6px}.pd-text-btn{border:0;background:none;color:var(--pd-ink);font:700 .83rem var(--ff-b);cursor:pointer;white-space:nowrap;padding:7px 0}.pd-text-btn span{color:var(--pd-pink);margin-inline-start:5px}.pd-week-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr);gap:17px}.pd-agenda{background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:20px;padding:4px 20px}.pd-agenda-row{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--pd-line)}.pd-agenda-row:last-child{border:0}.pd-date-tile{width:51px;height:57px;border-radius:13px;background:#2B1725;color:#F05DAB;display:grid;align-content:center;justify-items:center;flex:none}.pd-date-tile b{font:800 1.3rem var(--ff-d);line-height:1.1}.pd-date-tile small{font-size:.62rem;font-weight:800;letter-spacing:.1em}.pd-date-tile.blue-tile{background:#292333;color:#8F6200}.pd-date-tile.gold-tile{background:#211A2A;color:#F5B82E}.pd-agenda-main{min-width:0;flex:1}.pd-tag{display:inline-block;font-size:.6rem;letter-spacing:.08em;font-weight:800;border-radius:5px;padding:3px 6px}.pink-tag{background:#2B1725;color:#F05DAB}.blue-tag{background:#292333;color:#8F6200}.gold-tag{background:#211A2A;color:#8F6200}.pd-agenda-main h3{font-size:1rem;color:var(--pd-ink);margin:5px 0 3px}.pd-agenda-main p{font-size:.77rem;color:var(--pd-muted)}.pd-agenda-arrow{font-size:1rem;color:#a7a6b7}.pd-side-feature{position:relative;overflow:hidden;border-radius:20px;min-height:270px;background:#0B0910;color:#fff}.pd-side-feature>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}.pd-side-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#182238 0%,#182238b0 48%,transparent 100%)}.pd-feature-copy{position:absolute;z-index:1;inset:auto 23px 22px;color:#fff}.pd-feature-copy .pd-kicker{color:#F5B82E}.pd-feature-copy h3{font-size:1.55rem;line-height:1.12;color:#fff;margin:9px 0}.pd-feature-copy h3 em{color:#F05DAB}.pd-feature-copy p{font-size:.78rem;color:#e2e7f1;margin-bottom:14px}.pd-light-btn{border:0;border-radius:9px;background:#fff;color:#0B0910;font:700 .77rem var(--ff-b);padding:10px 12px;cursor:pointer}.pd-light-btn span{margin-inline-start:8px;color:#F05DAB}
.pd-bottom-row{margin-top:35px}.pd-section-heading.compact{margin-bottom:14px}.pd-child-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pd-child{display:flex;align-items:center;gap:14px;border:1px solid var(--pd-line);border-radius:18px;background:var(--pd-paper);padding:13px;min-width:0}.pd-child>img{width:100px;height:112px;border-radius:13px;object-fit:cover;flex:none}.pd-child>div{flex:1;min-width:0}.pd-child-label{font-size:.6rem;letter-spacing:.07em;font-weight:800}.pink-label{color:#F05DAB}.blue-label{color:#8F6200}.pd-child h3{font-size:1.02rem;color:var(--pd-ink);margin:4px 0}.pd-child h3 span{font:500 .72rem var(--ff-b);color:var(--pd-muted);margin-inline-start:5px}.pd-child p{font-size:.72rem;color:var(--pd-muted);margin-bottom:8px}.pd-progress{height:5px;background:#2B1725;border-radius:10px;overflow:hidden}.pd-progress span{display:block;height:100%;background:#F05DAB;border-radius:10px}.pd-progress.blue-progress{background:#292333}.pd-progress.blue-progress span{background:#F5B82E}.pd-child>div>small{font-size:.65rem;color:var(--pd-muted);display:block;margin-top:5px}.pd-round-arrow{width:31px;height:31px;border:1px solid var(--pd-line);border-radius:50%;background:var(--pd-paper);color:var(--pd-ink);cursor:pointer;flex:none}
.pd-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--pd-line);padding-top:18px;margin-top:32px;font-size:.73rem;color:var(--pd-muted)}.pd-footer b{color:var(--pd-pink)}
.pd-page-intro{margin:4px 0 25px}.pd-page-intro h2{font-size:clamp(2rem,3vw,2.8rem);margin:9px 0}.pd-page-intro p{color:var(--pd-muted);font-size:.96rem;margin-bottom:18px}.pd-child-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pd-child-detail{border:1px solid var(--pd-line);background:var(--pd-paper);border-radius:20px;overflow:hidden}.pd-detail-image{height:210px;position:relative;background:#2B1725}.pd-detail-image.image-blue{background:#292333}.pd-detail-image img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.pd-photo-label{position:absolute;bottom:15px;left:15px;background:#fff;color:#0B0910;border-radius:7px;padding:7px 10px;font-size:.63rem;letter-spacing:.09em;font-weight:800}.pd-detail-body{padding:21px}.pd-detail-top{display:flex;justify-content:space-between;gap:10px}.pd-detail-top h3{font-size:1.4rem;color:var(--pd-ink);margin:7px 0 4px}.pd-detail-top p{font-size:.8rem;color:var(--pd-muted)}.pd-status{height:max-content;background:#dcf8eb;color:#19764b;font-size:.7rem;font-weight:800;padding:5px 9px;border-radius:20px}.pd-detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-block:1px solid var(--pd-line);padding:15px 0;margin:18px 0}.pd-detail-facts small,.pd-detail-facts b{display:block}.pd-detail-facts small{font-size:.68rem;color:var(--pd-muted);margin-bottom:4px}.pd-detail-facts b{font-size:.78rem;color:var(--pd-ink)}.pd-outline-btn{background:transparent;border:1px solid var(--pd-line);color:var(--pd-ink);border-radius:10px;padding:10px 13px;font:700 .8rem var(--ff-b);cursor:pointer}
.pd-enrol-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.8fr);gap:20px;align-items:start}.pd-form-panel{background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:21px;padding:clamp(20px,3vw,34px)}.pd-form-heading{display:flex;align-items:center;gap:13px;padding-bottom:22px;margin-bottom:21px;border-bottom:1px solid var(--pd-line)}.pd-form-number{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#2B1725;color:#F05DAB;font-weight:800}.pd-form-heading h3{font-size:1.35rem;color:var(--pd-ink)}.pd-form-heading p{font-size:.8rem;color:var(--pd-muted);margin-top:5px}.pd-form-panel label{display:block;font-size:.82rem;font-weight:700;color:var(--pd-ink);margin:15px 0 7px}.pd-form-panel label span{color:#F05DAB}.pd-form-panel label small{font-weight:500;color:var(--pd-muted)}.pd-form-panel input,.pd-form-panel select,.pd-form-panel textarea{display:block;width:100%;min-width:0;border:1px solid var(--pd-line);border-radius:10px;background:var(--pd-bg);color:var(--pd-ink);font:500 .85rem var(--ff-b);padding:12px 13px;outline:none}.pd-form-panel input:focus,.pd-form-panel select:focus,.pd-form-panel textarea:focus{border-color:#F5B82E;box-shadow:0 0 0 3px #F5B82E25}.pd-form-panel textarea{resize:vertical}.pd-form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.pd-primary.full{width:100%;margin-top:19px}.pd-form-note,.pd-form-message{font-size:.75rem;color:var(--pd-muted);text-align:center;margin-top:12px}.pd-form-message:not(:empty){color:#168153;font-weight:700}.pd-enrol-aside{border-radius:21px;overflow:hidden;background:#211A2A}.pd-enrol-aside>img{width:100%;height:220px;object-fit:cover}.pd-enrol-aside-copy{padding:25px}.pd-enrol-aside-copy .pd-kicker{color:#8F6200}.pd-enrol-aside-copy h3{font-size:1.75rem;color:#0B0910;margin:10px 0}.pd-enrol-aside-copy p{font-size:.88rem;color:#5B5560}.pd-enrol-aside-copy ul{list-style:none;margin:17px 0 0;padding:0;display:grid;gap:9px;color:#344b65;font-size:.82rem;font-weight:600}
.pd-attendance-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px}.pd-attendance-toolbar label{font-size:.82rem;color:var(--pd-muted);font-weight:700}.pd-attendance-toolbar select{border:1px solid var(--pd-line);border-radius:10px;background:var(--pd-paper);color:var(--pd-ink);padding:10px 12px;font:600 .82rem var(--ff-b)}.pd-attendance-legend{display:flex;gap:13px;margin-inline-start:auto;font-size:.75rem;color:var(--pd-muted)}.pd-attendance-legend span{display:flex;align-items:center;gap:6px}.pd-attendance-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.present-dot{background:#2eb980}.missed-dot{background:#F05DAB}.pd-attendance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(130px,.7fr);gap:12px;padding:20px;background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:20px;margin-bottom:30px}.pd-attendance-summary>div:not(.pd-attendance-art){padding:9px 12px;border-inline-end:1px solid var(--pd-line)}.pd-attendance-summary small{display:block;color:var(--pd-muted);font-size:.74rem}.pd-attendance-summary strong{display:block;font:800 1.7rem var(--ff-d);color:var(--pd-ink);margin-top:8px}.pd-attendance-summary strong span{font-size:1rem;color:var(--pd-muted)}.pd-attendance-art{height:90px;overflow:hidden;border-radius:13px}.pd-attendance-art img{width:100%;height:100%;object-fit:cover}.pd-attendance-caption{font-size:.75rem;color:var(--pd-muted)}.pd-att-table-wrap{overflow-x:auto;background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:17px}.pd-att-table{width:100%;border-collapse:collapse;text-align:start;min-width:560px}.pd-att-table th,.pd-att-table td{padding:15px 18px;border-bottom:1px solid var(--pd-line);text-align:start;font-size:.82rem}.pd-att-table th{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--pd-muted);background:var(--pd-bg)}.pd-att-table td{color:var(--pd-ink)}.pd-att-table tr:last-child td{border:0}.pd-att-status{display:inline-flex;border-radius:20px;padding:5px 9px;font-size:.72rem;font-weight:800}.pd-att-status.present{background:#def8eb;color:#18784c}.pd-att-status.missed{background:#2B1725;color:#F05DAB}.pd-data-note{font-size:.72rem;color:var(--pd-muted);margin-top:12px}
.pd-calendar-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;overflow:hidden;border-radius:23px;padding:clamp(23px,3.5vw,38px);background:#211A2A;margin-bottom:32px}.pd-calendar-banner>div{position:relative;z-index:1}.pd-calendar-banner .pd-kicker{color:#8F6200}.pd-calendar-banner h3{font-size:clamp(1.6rem,3vw,2.45rem);color:#0B0910;margin:10px 0}.pd-calendar-banner h3 em{color:#F05DAB}.pd-calendar-banner p{color:#5B5560;font-size:.9rem;margin-bottom:12px}.pd-calendar-location{font-size:.77rem;color:#5B5560;font-weight:700}.pd-calendar-banner img{width:30%;max-width:290px;height:170px;object-fit:cover;border-radius:17px;transform:rotate(2deg);box-shadow:0 12px 25px #0B091020}.pd-schedule-list{background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:20px;padding:5px 22px}.pd-schedule-event{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--pd-line)}.pd-schedule-event:last-child{border:0}.pd-event-date{width:63px;height:64px;border-radius:14px;display:grid;align-content:center;justify-items:center;flex:none}.pd-event-date b{font:800 1.45rem var(--ff-d);line-height:1.1}.pd-event-date small{font-size:.6rem;font-weight:800;letter-spacing:.06em;margin-top:3px}.pink-date{background:#2B1725;color:#F05DAB}.blue-date{background:#292333;color:#8F6200}.gold-date{background:#211A2A;color:#8F6200}.pd-event-copy{flex:1;min-width:0}.pd-event-copy h3{font-size:1rem;color:var(--pd-ink);margin:5px 0}.pd-event-copy p{font-size:.77rem;color:var(--pd-muted)}.pd-event-type{border-radius:20px;padding:6px 10px;background:var(--pd-bg);font-size:.68rem;font-weight:700;color:var(--pd-muted);white-space:nowrap}.pd-event-type.rehearsal{background:#211A2A;color:#8F6200}.pd-event-type.recital{background:#2B1725;color:#F05DAB}
.pd-overlay{display:none}
[data-theme="dark"] .pd-welcome,[data-theme="dark"] .pd-calendar-banner{background:#22123F}[data-theme="dark"] .pd-welcome h2,[data-theme="dark"] .pd-calendar-banner h3,[data-theme="dark"] .pd-enrol-aside-copy h3{color:#f6f3ff}[data-theme="dark"] .pd-welcome-copy>p,[data-theme="dark"] .pd-calendar-banner p,[data-theme="dark"] .pd-calendar-location,[data-theme="dark"] .pd-enrol-aside-copy p{color:#D9CBAF}[data-theme="dark"] .pd-pill{background:#19283a;color:#E8D8B5}[data-theme="dark"] .pd-primary{background:#F05DAB;color:#0B0910}[data-theme="dark"] .pd-photo-note{background:#201e30}[data-theme="dark"] .pd-photo-note b{color:#f6f3ff}[data-theme="dark"] .pd-enrol-aside{background:#22123F}[data-theme="dark"] .pd-enrol-aside-copy ul{color:#E8D8B5}[data-theme="dark"] .pd-form-panel input,[data-theme="dark"] .pd-form-panel select,[data-theme="dark"] .pd-form-panel textarea,[data-theme="dark"] .pd-attendance-toolbar select{color-scheme:dark}
[dir="rtl"] .pd-welcome-photo>img{mask-image:linear-gradient(270deg,transparent 0%,#000 25%)}[dir="rtl"] .pd-photo-note{left:auto;right:21px}[dir="rtl"] .pd-photo-stamp{right:auto;left:20px}[dir="rtl"] .pd-nav-link:hover{transform:translateX(-2px)}[dir="rtl"] .pd-primary span{transform:scaleX(-1)}[dir="rtl"] .pd-agenda-arrow{transform:scaleX(-1)}
@media(max-width:1180px){.pd-shell{grid-template-columns:225px minmax(0,1fr)}.pd-sidebar{padding-inline:13px}.pd-welcome{grid-template-columns:1fr .75fr}.pd-welcome h2{font-size:2.5rem}.pd-week-layout{grid-template-columns:minmax(0,1fr) minmax(230px,.75fr)}.pd-child{gap:10px}.pd-child>img{width:80px;height:100px}.pd-stat{padding:15px;gap:9px}}
@media(max-width:940px){.pd-shell{display:block}.pd-sidebar{position:fixed;inset:0 auto 0 0;width:min(290px,86vw);height:100dvh;min-height:0;transform:translateX(-105%);transition:transform .28s ease;box-shadow:15px 0 40px #11182726}.pd-sidebar.is-open{transform:translateX(0)}[dir="rtl"] .pd-sidebar{inset:0 0 0 auto;transform:translateX(105%)}[dir="rtl"] .pd-sidebar.is-open{transform:translateX(0)}.pd-overlay.is-visible{display:block;position:fixed;inset:0;background:#10172b7a;z-index:110}.pd-menu-btn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--pd-line);background:var(--pd-paper);color:var(--pd-ink);border-radius:12px;font-size:1.2rem;cursor:pointer;flex:none}.pd-welcome{grid-template-columns:1fr .75fr}.pd-welcome h2{font-size:2.25rem}.pd-week-layout{grid-template-columns:1fr}.pd-side-feature{min-height:245px}.pd-child-strip{grid-template-columns:1fr}.pd-enrol-layout{grid-template-columns:1fr .75fr}.pd-topbar{position:relative}}
@media(max-width:650px){.pd-topbar{padding:14px 16px;align-items:flex-start;gap:12px}.pd-top-left{gap:9px}.pd-topbar h1{font-size:1.2rem}.pd-eyebrow{font-size:.55rem}.pd-top-actions{gap:6px}.pd-icon-btn{width:35px;height:35px;border-radius:11px}.pd-top-profile{padding-inline-start:8px;margin-inline-start:0}.pd-top-profile>span:last-child{display:none}.pd-avatar.small{width:34px;height:34px}.pd-content{padding:17px 14px 15px}.pd-welcome{grid-template-columns:1fr;min-height:0}.pd-welcome-copy{padding:25px 22px 22px}.pd-welcome h2{font-size:2.65rem}.pd-welcome-copy>p{font-size:.9rem}.pd-welcome-photo{min-height:190px}.pd-welcome-photo>img{mask-image:linear-gradient(180deg,transparent 0%,#000 20%);object-position:center 38%}.pd-photo-stamp{width:63px;height:63px;font-size:.55rem}.pd-photo-note{bottom:12px;left:12px;padding:8px 10px}.pd-stats{grid-template-columns:1fr;gap:9px;margin:13px 0 28px}.pd-stat{padding:13px 15px;align-items:center}.pd-stat-icon{width:39px;height:39px}.pd-stat strong{font-size:1.55rem}.pd-stat p{font-size:.7rem}.pd-section-heading{align-items:start;flex-direction:column;gap:5px}.pd-section-heading h2,.pd-page-intro h2{font-size:1.75rem}.pd-agenda{padding:3px 13px}.pd-agenda-row{gap:10px;padding:14px 0}.pd-date-tile{width:45px;height:51px}.pd-agenda-main h3{font-size:.9rem}.pd-agenda-main p{font-size:.7rem}.pd-tag{font-size:.53rem}.pd-side-feature{min-height:260px}.pd-child{padding:10px;gap:10px}.pd-child>img{width:76px;height:94px}.pd-child h3{font-size:.92rem}.pd-child p{font-size:.66rem}.pd-child>div>small{font-size:.61rem}.pd-round-arrow{width:28px;height:28px}.pd-footer{font-size:.65rem;flex-direction:column;gap:4px}.pd-page-intro{margin-bottom:19px}.pd-child-detail-grid{grid-template-columns:1fr}.pd-detail-image{height:190px}.pd-detail-body{padding:17px}.pd-detail-facts{gap:4px}.pd-detail-facts b{font-size:.7rem}.pd-enrol-layout{grid-template-columns:1fr}.pd-form-panel{padding:19px 15px}.pd-form-two{grid-template-columns:1fr;gap:0}.pd-enrol-aside>img{height:180px}.pd-attendance-toolbar{align-items:flex-start}.pd-attendance-toolbar label{width:100%}.pd-attendance-toolbar select{width:100%}.pd-attendance-legend{margin-inline-start:0}.pd-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:13px;gap:5px}.pd-attendance-summary>div:not(.pd-attendance-art){padding:10px;border:0}.pd-attendance-summary strong{font-size:1.5rem}.pd-attendance-art{height:75px}.pd-attendance-caption{font-size:.68rem}.pd-calendar-banner{padding:20px;display:block}.pd-calendar-banner h3{font-size:1.65rem}.pd-calendar-banner p{font-size:.8rem}.pd-calendar-banner img{width:100%;max-width:none;height:150px;margin-top:18px;transform:none}.pd-schedule-list{padding:4px 13px}.pd-schedule-event{gap:10px;flex-wrap:wrap}.pd-event-date{width:51px;height:55px}.pd-event-date b{font-size:1.2rem}.pd-event-copy{width:calc(100% - 65px);flex:1}.pd-event-copy h3{font-size:.9rem}.pd-event-copy p{font-size:.7rem}.pd-event-type{margin-inline-start:61px;font-size:.63rem}.pd-top-profile{border:0}.pd-welcome-photo>img{mask-image:none;mix-blend-mode:normal;opacity:.92}.pd-photo-note{bottom:12px}}
@media(prefers-reduced-motion:reduce){.pd-view{animation:none!important}.pd-nav-link,.pd-stat,.pd-primary{transition:none!important}}


/* HOME 1 VISUAL SYSTEM — shared sky blue, pink, warm ivory and midnight navy */
.tt-parent-app{font-family:"DM Sans","Segoe UI",system-ui,sans-serif;background:#FFF6E5;color:#0B0910}
.tt-parent-app h1,.tt-parent-app h2,.tt-parent-app h3,.tt-parent-app .pd-brand b,.tt-parent-app .pd-stat strong{font-family:"Poppins","Segoe UI",system-ui,sans-serif}
.tt-parent-app .pd-sidebar{background:#0B0910;color:#fff}
.tt-parent-app .pd-brand small{color:#F5B82E}
.tt-parent-app .pd-nav-link.active{background:#F05DAB;color:#0B0910;box-shadow:0 9px 22px #F05DAB38}
.tt-parent-app .pd-avatar{background:linear-gradient(135deg,#F5B82E,#F05DAB);color:#0B0910}
.tt-parent-app .pd-welcome{background:#211A2A}
.tt-parent-app .pd-welcome h2{color:#0B0910}
.tt-parent-app .pd-welcome h2 em,.tt-parent-app .pd-feature-copy h3 em,.tt-parent-app .pd-calendar-banner h3 em{color:#F05DAB}
.tt-parent-app .pd-primary{background:#0B0910;color:#fff}
.tt-parent-app .pd-pill i{background:#F05DAB;box-shadow:0 0 0 4px #F05DAB33}
.tt-parent-app .pd-photo-stamp{background:#F5B82E;color:#0B0910}
.tt-parent-app .pd-stat-icon.pink{background:#2B1725;color:#F05DAB}
.tt-parent-app .pd-stat-icon.blue{background:#292333;color:#F5B82E}
.tt-parent-app .pd-stat-icon.gold{background:#211A2A;color:#F5B82E}
.tt-parent-app .pd-tag,.tt-parent-app .pd-event-type{color:#F5B82E}
.tt-parent-app .pd-content{background:#FFF6E5}
.tt-parent-app[data-theme="dark"], [data-theme="dark"] .tt-parent-app{--pd-ink:#FFF6E5;--pd-muted:#B9A98B;--pd-line:#34475A;--pd-paper:#0B0910;--pd-bg:#0B0910;--pd-pink:#F05DAB;--pd-blue:#F5B82E;--pd-gold:#F5B82E;--pd-navy:#0B0910;background:#0B0910;color:#FFF6E5}
[data-theme="dark"] .tt-parent-app .pd-welcome{background:#1C3448}
[data-theme="dark"] .tt-parent-app .pd-welcome h2{color:#FFF6E5}
[data-theme="dark"] .tt-parent-app .pd-welcome-copy>p{color:rgba(11,9,16,.14)}
[data-theme="dark"] .tt-parent-app .pd-pill{background:#263E51;color:#FFF6E5}
[data-theme="dark"] .tt-parent-app .pd-photo-note{background:#0B0910;color:#FFF6E5}
[data-theme="dark"] .tt-parent-app .pd-photo-note b{color:#FFF6E5}
[data-theme="dark"] .tt-parent-app .pd-photo-note small{color:#B9A98B}
[data-theme="dark"] .tt-parent-app .pd-stat-icon.pink{background:#482D43;color:#F9B8D8}
[data-theme="dark"] .tt-parent-app .pd-stat-icon.blue,[data-theme="dark"] .tt-parent-app .pd-stat-icon.gold{background:#233F52;color:#438DE8}
[data-theme="dark"] .tt-parent-app .pd-content{background:#0B0910}


/* ===== admin-dashboard.css ===== */
.ad-app{--ad-bg:#FFF6E5;--ad-paper:#fffdf8;--ad-ink:#0B0910;--ad-muted:#655d69;--ad-line:rgba(11,9,16,.14);--ad-gold:#F5B82E;--ad-pink:#F05DAB;--ad-violet:#8A4DFF;display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh;background:var(--ad-bg);color:var(--ad-ink);font:15px/1.55 var(--ff-b)}.ad-app *{box-sizing:border-box}.ad-app button,.ad-app input,.ad-app select{font:inherit}.ad-app button{cursor:pointer}.ad-sidebar{background:#0B0910;color:#FFF6E5;min-height:100vh;height:100vh;position:sticky;top:0;display:flex;flex-direction:column;padding:22px 15px;overflow-y:auto;z-index:100}.ad-side-brand,.ad-admin-card{display:flex;align-items:center;gap:10px}.ad-side-brand{padding:0 7px 21px;border-bottom:1px solid #ffffff20}.ad-side-brand img{width:42px;height:42px;object-fit:contain;background:#fff6e5;border-radius:50%;padding:3px}.ad-side-brand b,.ad-side-brand small,.ad-admin-card b,.ad-admin-card small{display:block}.ad-side-brand b{font:800 1.2rem/1 var(--ff-d)}.ad-side-brand small{color:var(--ad-gold);font-size:.6rem;letter-spacing:.14em;font-weight:800;margin-top:6px}.ad-admin-card{padding:19px 5px}.ad-admin-card img{width:42px;height:42px;object-fit:cover;border-radius:50%;border:2px solid var(--ad-gold)}.ad-admin-card div{flex:1}.ad-admin-card b{font-size:.84rem}.ad-admin-card small{font-size:.68rem;color:#c7bdce}.ad-admin-card i{width:8px;height:8px;border-radius:50%;background:#61d6a1}.ad-nav-label,.ad-kicker,.ad-eyebrow{font-size:.65rem;letter-spacing:.13em;font-weight:800}.ad-nav-label{color:#a89db1;padding:4px 12px;margin:0 0 8px}.ad-side-nav{display:grid;gap:5px}.ad-nav-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;color:#e7deec;border-radius:11px;padding:11px 12px;text-align:left;font-size:.85rem;font-weight:600}.ad-nav-item>span{width:20px;color:var(--ad-gold);font-size:1.1rem;text-align:center}.ad-nav-item em{margin-left:auto;font-size:.68rem;font-style:normal;border-radius:20px;padding:2px 7px;background:#ffffff18}.ad-nav-item.active{background:var(--ad-gold);color:#0B0910}.ad-nav-item.active>span{color:#0B0910}.ad-nav-item:hover:not(.active){background:#ffffff12}.ad-sidebar-bottom{margin-top:auto;padding-top:20px}.ad-help{display:flex;gap:10px;padding:12px;border:1px solid #ffffff20;border-radius:12px;margin-bottom:13px}.ad-help>span{color:var(--ad-gold);font-size:1.2rem}.ad-help b,.ad-help small,.ad-help a{display:block}.ad-help b{font-size:.8rem}.ad-help small{font-size:.68rem;color:#c7bdce;margin:3px 0 7px}.ad-help a{font-size:.71rem;color:var(--ad-gold);text-decoration:none;font-weight:700}.ad-logout,.ad-back{display:flex;gap:10px;align-items:center;text-decoration:none;color:#eee4f0;padding:10px 12px;font-size:.83rem;font-weight:600}.ad-logout span{color:var(--ad-pink)}.ad-back{color:#aaa0b3;font-size:.75rem;border-top:1px solid #ffffff20;margin-top:5px;padding-top:14px}.ad-main{min-width:0}.ad-topbar{position:sticky;top:0;z-index:80;min-height:85px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px clamp(16px,3vw,40px);background:var(--ad-paper);border-bottom:1px solid var(--ad-line)}.ad-top-left{display:flex;align-items:center;gap:11px;min-width:0}.ad-eyebrow{display:block;color:var(--ad-muted);font-size:.6rem;margin-bottom:4px}.ad-topbar h1{font-size:clamp(1.15rem,2vw,1.65rem);letter-spacing:-.04em;color:var(--ad-ink)}.ad-topbar h1 span{color:#8F6200}.ad-top-actions{display:flex;align-items:center;gap:8px}.ad-search{display:flex;align-items:center;gap:8px;background:var(--ad-bg);border:1px solid var(--ad-line);border-radius:10px;padding:0 10px;min-width:180px;height:39px}.ad-search>span{font-size:1.25rem;color:var(--ad-muted)}.ad-search input{width:100%;min-width:0;background:transparent;border:0;outline:0;color:var(--ad-ink);font-size:.78rem}.ad-search input::placeholder{color:var(--ad-muted)}.ad-top-icon,.ad-notifications{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--ad-line);background:var(--ad-paper);color:var(--ad-ink);border-radius:10px;font-size:1.1rem;position:relative}.ad-notifications i{position:absolute;top:6px;right:6px;width:7px;height:7px;background:var(--ad-pink);border-radius:50%}.ad-profile{display:flex;align-items:center;gap:8px;border-left:1px solid var(--ad-line);padding-left:12px}.ad-profile img{width:35px;height:35px;border-radius:50%;object-fit:cover;border:2px solid var(--ad-gold)}.ad-profile b,.ad-profile small{display:block;white-space:nowrap}.ad-profile b{font-size:.74rem}.ad-profile small{font-size:.66rem;color:var(--ad-muted)}.ad-chevron{color:var(--ad-muted)}.ad-mobile-menu{display:none}.ad-content{max-width:1600px;margin:auto;padding:clamp(17px,2.8vw,36px) clamp(15px,3vw,40px) 12px}.ad-view{display:none;animation:adIn .3s ease both}.ad-view.active{display:block}@keyframes adIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.ad-welcome{display:grid;grid-template-columns:1fr .8fr;min-height:290px;background:#0B0910;color:#FFF6E5;border-radius:19px;overflow:hidden}.ad-welcome-copy{padding:clamp(22px,3.3vw,42px);align-self:center;position:relative;z-index:2}.ad-overline{display:inline-flex;align-items:center;gap:8px;color:#e6dce9;font-size:.63rem;font-weight:800;letter-spacing:.1em}.ad-overline i{width:7px;height:7px;border-radius:50%;background:var(--ad-gold);box-shadow:0 0 0 4px #f5b82e22}.ad-welcome h2{font:800 clamp(2rem,3.5vw,3.4rem)/.98 var(--ff-d);letter-spacing:-.05em;margin:18px 0 13px}.ad-welcome h2 em{font-style:normal;color:var(--ad-gold)}.ad-welcome-copy>p{color:#e2d9e4;max-width:410px;font-size:.92rem;margin-bottom:21px}.ad-gold-btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;border:0;border-radius:999px;background:var(--ad-gold);color:#0B0910;text-decoration:none;padding:11px 16px;font-weight:800;font-size:.8rem;transition:transform .2s,box-shadow .2s}.ad-gold-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #f5b82e28}.ad-welcome-image{position:relative;min-height:290px;overflow:hidden}.ad-welcome-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 27%);opacity:.83}.ad-image-caption{position:absolute;bottom:17px;left:17px;display:flex;align-items:center;gap:9px;background:#fff6e5;color:#0B0910;padding:9px 12px;border-radius:11px}.ad-image-caption>span{width:30px;height:30px;border-radius:9px;background:var(--ad-gold);display:grid;place-items:center}.ad-image-caption b,.ad-image-caption small{display:block}.ad-image-caption b{font-size:.76rem}.ad-image-caption small{font-size:.66rem;color:#655d69}.ad-round-stamp{position:absolute;right:16px;top:16px;width:69px;height:69px;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--ad-gold);color:#0B0910;font-size:.58rem;line-height:1.15;letter-spacing:.1em;font-weight:900;transform:rotate(8deg);border:2px dashed #0B0910}.ad-section-line,.ad-panel-head{display:flex;align-items:end;justify-content:space-between;gap:13px}.ad-section-line{margin:29px 0 15px}.ad-kicker{display:block;color:#805700;font-size:.62rem}.ad-section-line h2,.ad-panel-head h2{font:700 clamp(1.3rem,2vw,1.75rem)/1.1 var(--ff-d);letter-spacing:-.035em;margin-top:6px;color:var(--ad-ink)}.ad-updated{font-size:.7rem;color:var(--ad-muted)}.ad-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ad-stat{display:flex;align-items:flex-start;gap:10px;min-width:0;background:var(--ad-paper);border:1px solid var(--ad-line);border-radius:14px;padding:16px 12px;transition:transform .2s}.ad-stat:hover{transform:translateY(-3px)}.ad-stat-icon{display:grid;place-items:center;width:37px;height:37px;flex:none;border-radius:11px;font-size:1.15rem}.ad-stat-icon.gold{background:#fff0c8;color:#805700}.ad-stat-icon.pink{background:#ffe0f0;color:#a32065}.ad-stat-icon.violet{background:#ece2ff;color:#5c2cb4}.ad-stat-icon.ivory{background:#f2eadd;color:#5c4523}.ad-stat>div{min-width:0}.ad-stat small{display:block;color:var(--ad-muted);font-size:.7rem}.ad-stat strong{display:block;font:800 1.75rem/1.25 var(--ff-d);margin:3px 0}.ad-stat strong small{display:inline;font-size:.9rem}.ad-stat p{font-size:.67rem;color:var(--ad-muted)}.ad-stat p b{color:#18845c}.ad-stat-spark{margin-left:auto;color:#8F6200;font-weight:900}.ad-overview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:15px;margin-top:19px}.ad-panel{background:var(--ad-paper);border:1px solid var(--ad-line);border-radius:16px;padding:19px;min-width:0}.ad-panel-head{align-items:center;margin-bottom:13px}.ad-link-btn{border:0;background:transparent;color:#805700;font-weight:800;font-size:.76rem;white-space:nowrap}.ad-request{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--ad-line)}.ad-request>img,.ad-table-person img{width:40px;height:40px;object-fit:cover;border-radius:50%;flex:none}.ad-request>div{min-width:0;flex:1}.ad-request>div b,.ad-request>div small{display:block}.ad-request>div b{font-size:.8rem}.ad-request>div small{font-size:.69rem;color:var(--ad-muted)}.ad-status{display:inline-flex;align-items:center;white-space:nowrap;border-radius:99px;padding:4px 8px;font-size:.65rem;font-weight:800}.ad-status.pending{background:#fff0c8;color:#805700}.ad-status.review{background:#ece2ff;color:#5c2cb4}.ad-status.approved{background:#dff6e8;color:#176c45}.ad-row-arrow{width:29px;height:29px;display:grid;place-items:center;border:1px solid var(--ad-line);border-radius:8px;background:transparent;color:var(--ad-ink);flex:none}.ad-today-date{display:flex;align-items:center;gap:9px;padding:9px 11px;background:#fff0c8;border-radius:11px;color:#0B0910;margin-bottom:6px}.ad-today-date b,.ad-today-date span{font-size:.63rem;letter-spacing:.1em}.ad-today-date strong{font:800 1.35rem var(--ff-d);margin-left:auto}.ad-class-list article{display:flex;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid var(--ad-line)}.ad-class-list article:last-child{border:0}.ad-class-dot{width:8px;height:8px;border-radius:50%;flex:none}.gold-dot{background:#e2a400}.pink-dot{background:var(--ad-pink)}.violet-dot{background:var(--ad-violet)}.ad-class-list article div{min-width:0;flex:1}.ad-class-list b,.ad-class-list small{display:block}.ad-class-list b{font-size:.77rem}.ad-class-list small{font-size:.68rem;color:var(--ad-muted)}.ad-class-list article>span{font-size:.66rem;color:var(--ad-muted);white-space:nowrap}.ad-feature-strip{display:flex;align-items:center;gap:17px;margin-top:17px;padding:14px;background:#17121f;color:#fff6e5;border-radius:15px}.ad-feature-strip>img{width:98px;height:82px;object-fit:cover;border-radius:10px;flex:none}.ad-feature-strip>div{flex:1;min-width:0}.ad-feature-strip .ad-kicker{color:var(--ad-gold)}.ad-feature-strip h2{font:700 1.35rem var(--ff-d);margin:4px 0}.ad-feature-strip p{font-size:.76rem;color:#ded4e2}.ad-page-intro{margin:5px 0 22px}.ad-page-intro h2{font:800 clamp(1.8rem,3vw,2.5rem)/1.05 var(--ff-d);letter-spacing:-.05em;margin:8px 0}.ad-page-intro p{color:var(--ad-muted);font-size:.91rem}.ad-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.ad-search.wide{flex:1;min-width:220px}.ad-toolbar select,.ad-panel-head select{background:var(--ad-paper);color:var(--ad-ink);border:1px solid var(--ad-line);border-radius:9px;padding:9px 11px;min-height:39px;font-size:.78rem}.ad-table-wrap{overflow:auto;background:var(--ad-paper);border:1px solid var(--ad-line);border-radius:14px}.ad-table{width:100%;border-collapse:collapse;min-width:700px;text-align:left}.ad-table th{font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ad-muted);background:#f8f0e2;padding:12px 14px}.ad-table td{padding:13px 14px;border-top:1px solid var(--ad-line);font-size:.76rem;white-space:nowrap}.ad-table-person{display:flex;align-items:center;gap:9px}.ad-table-person b,.ad-table-person small{display:block}.ad-table-person b{font-size:.78rem}.ad-table-person small{font-size:.67rem;color:var(--ad-muted)}.ad-progress{display:inline-block;vertical-align:middle;width:58px;height:6px;border-radius:10px;background:#e9e0ee;margin-right:6px;overflow:hidden}.ad-progress i{display:block;height:100%;background:var(--ad-gold);border-radius:10px}.ad-demo-note{color:var(--ad-muted);font-size:.74rem;margin-top:12px}.ad-programs,.ad-instructors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.ad-programs article,.ad-instructors article{overflow:hidden;background:var(--ad-paper);border:1px solid var(--ad-line);border-radius:15px}.ad-programs article>img,.ad-instructors article>img{width:100%;height:170px;object-fit:cover}.ad-programs article>div,.ad-instructors article>div{padding:17px}.ad-programs h3,.ad-instructors h3{font:700 1.3rem var(--ff-d);margin:7px 0}.ad-programs p,.ad-instructors p{font-size:.8rem;color:var(--ad-muted);min-height:46px}.ad-programs footer,.ad-instructors footer{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--ad-line);padding-top:12px;margin-top:13px;font-size:.7rem;font-weight:700}.ad-programs footer span:last-child,.ad-instructors footer span:last-child{color:#18845c}.ad-enrol-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.ad-enrol-summary>div{padding:16px;background:var(--ad-paper);border:1px solid var(--ad-line);border-radius:13px}.ad-enrol-summary small,.ad-enrol-summary strong{display:block}.ad-enrol-summary small{font-size:.73rem;color:var(--ad-muted)}.ad-enrol-summary strong{font:800 1.75rem var(--ff-d);margin-top:4px}.ad-action{border:1px solid var(--ad-line);border-radius:8px;padding:7px 8px;font-size:.68rem;font-weight:800;background:transparent;color:var(--ad-ink)}.ad-action.approve{background:var(--ad-gold);border-color:var(--ad-gold);color:#0B0910}.ad-action.decline{color:#b02c63}.ad-muted-action{color:var(--ad-muted);font-size:.7rem}.ad-attendance-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:185px;background:#0B0910;color:#fff6e5;border-radius:16px;overflow:hidden;margin-bottom:17px}.ad-attendance-hero>div{padding:22px 28px}.ad-attendance-hero .ad-kicker{color:var(--ad-gold)}.ad-attendance-hero strong{display:block;font:800 3.1rem/1.1 var(--ff-d);margin:8px 0}.ad-attendance-hero strong small{font-size:1.4rem;color:var(--ad-gold)}.ad-attendance-hero p{color:#d9cedf}.ad-attendance-trend{display:inline-block;margin-top:10px;color:var(--ad-gold);font-size:.76rem;font-weight:800}.ad-attendance-hero img{width:38%;height:185px;object-fit:cover;align-self:stretch;mask-image:linear-gradient(90deg,transparent,#000 25%)}.ad-attendance-bars{display:grid;gap:18px;padding:9px 0}.ad-attendance-bars>div>span{display:flex;justify-content:space-between;gap:12px;font-size:.79rem;margin-bottom:7px}.ad-attendance-bars>div>span strong{color:#805700}.ad-attendance-bars>div>i{display:block;height:9px;background:#eee4f0;border-radius:20px;overflow:hidden}.ad-attendance-bars>div>i>b{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--ad-pink),var(--ad-gold))}.ad-recital-banner{display:grid;grid-template-columns:.85fr 1fr;background:#17121f;color:#fff6e5;border-radius:16px;overflow:hidden;margin-bottom:17px;min-height:220px}.ad-recital-banner>img{width:100%;height:100%;min-height:220px;object-fit:cover}.ad-recital-banner>div{padding:clamp(19px,3vw,32px);align-self:center}.ad-recital-banner .ad-kicker{color:var(--ad-gold)}.ad-recital-banner h2{font:800 clamp(1.6rem,2.7vw,2.4rem)/1.05 var(--ff-d);margin:10px 0}.ad-recital-banner h2 em{display:block;color:var(--ad-gold);font-style:normal}.ad-recital-banner p{color:#e0d5e5;margin-bottom:17px}.ad-events article{display:flex;align-items:center;gap:13px;padding:14px 0;border-top:1px solid var(--ad-line)}.ad-events article time{display:grid;place-items:center;align-content:center;width:46px;height:52px;background:#fff0c8;border-radius:10px;color:#0B0910;flex:none}.ad-events article time b{font:800 1.25rem var(--ff-d)}.ad-events article time small{font-size:.6rem;font-weight:800;letter-spacing:.1em}.ad-events article>div{flex:1}.ad-events article>div b,.ad-events article>div small{display:block}.ad-events article>div b{font-size:.82rem}.ad-events article>div small{font-size:.71rem;color:var(--ad-muted)}.ad-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--ad-line);margin-top:28px;padding:16px 0 7px;color:var(--ad-muted);font-size:.7rem}.ad-footer b{color:#805700}.ad-toast{position:fixed;bottom:20px;right:20px;z-index:500;max-width:min(390px,calc(100vw - 32px));padding:12px 16px;background:#0B0910;color:#FFF6E5;border:1px solid var(--ad-gold);border-radius:11px;box-shadow:0 15px 40px #0003;opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s;font-size:.83rem}.ad-toast.show{opacity:1;transform:translateY(0)}.ad-dialog{width:min(500px,calc(100vw - 28px));border:1px solid var(--ad-line);border-radius:17px;background:var(--ad-paper);color:var(--ad-ink);padding:24px;box-shadow:0 25px 90px #0004}.ad-dialog::backdrop{background:#090610a8;backdrop-filter:blur(4px)}.ad-dialog form{position:relative}.ad-dialog-close{position:absolute;right:0;top:0;border:1px solid var(--ad-line);background:transparent;color:var(--ad-ink);width:33px;height:33px;border-radius:50%;font-size:1.2rem}.ad-dialog h2{font:800 1.7rem var(--ff-d);margin:8px 0}.ad-dialog p{color:var(--ad-muted);font-size:.84rem;margin-bottom:15px}.ad-dialog label{display:block;font-size:.77rem;font-weight:700;margin:12px 0 5px}.ad-dialog input,.ad-dialog select{width:100%;padding:10px;border:1px solid var(--ad-line);border-radius:9px;background:var(--ad-bg);color:var(--ad-ink)}.ad-dialog .ad-gold-btn{margin-top:17px}.ad-app[data-theme=dark],[data-theme=dark] .ad-app{--ad-bg:#100d15;--ad-paper:#1b1721;--ad-ink:#fff6e5;--ad-muted:#c7bdce;--ad-line:rgba(255,246,229,.16);color:var(--ad-ink)}[data-theme=dark] .ad-app .ad-topbar,[data-theme=dark] .ad-app .ad-panel,[data-theme=dark] .ad-app .ad-stat,[data-theme=dark] .ad-app .ad-table-wrap,[data-theme=dark] .ad-app .ad-programs article,[data-theme=dark] .ad-app .ad-instructors article,[data-theme=dark] .ad-app .ad-enrol-summary>div{background:var(--ad-paper);color:var(--ad-ink)}[data-theme=dark] .ad-app .ad-topbar h1,[data-theme=dark] .ad-app .ad-section-line h2,[data-theme=dark] .ad-app .ad-panel-head h2,[data-theme=dark] .ad-app .ad-page-intro h2,[data-theme=dark] .ad-app .ad-stat strong,[data-theme=dark] .ad-app .ad-table td,[data-theme=dark] .ad-app .ad-programs h3,[data-theme=dark] .ad-app .ad-instructors h3{color:var(--ad-ink)}[data-theme=dark] .ad-app .ad-search,[data-theme=dark] .ad-app .ad-toolbar select,[data-theme=dark] .ad-app .ad-panel-head select,[data-theme=dark] .ad-app .ad-dialog input,[data-theme=dark] .ad-app .ad-dialog select{background:#100d15;color:#fff6e5;border-color:#4a3f51;color-scheme:dark}[data-theme=dark] .ad-app .ad-table th{background:#241d2a;color:#e1d5e6}[data-theme=dark] .ad-app .ad-status.pending{background:#4a3510;color:#ffdc7c}[data-theme=dark] .ad-app .ad-status.approved{background:#153b2c;color:#a7f0c5}[data-theme=dark] .ad-app .ad-status.review{background:#34234f;color:#d6baff}[data-theme=dark] .ad-app .ad-dialog{background:var(--ad-paper);color:var(--ad-ink)}
@media(max-width:1200px){.ad-app{grid-template-columns:225px minmax(0,1fr)}.ad-sidebar{padding-inline:12px}.ad-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-welcome{grid-template-columns:1fr .7fr}.ad-profile span:not(.ad-chevron){display:none}.ad-overview-grid{grid-template-columns:1fr}.ad-programs,.ad-instructors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.ad-app{display:block}.ad-sidebar{position:fixed;left:0;top:0;width:270px;max-width:86vw;transform:translateX(-105%);transition:transform .25s ease;box-shadow:15px 0 40px #0002}.ad-app.menu-open .ad-sidebar{transform:translateX(0)}[dir=rtl] .ad-sidebar{left:auto;right:0;transform:translateX(105%)}[dir=rtl] .ad-app.menu-open .ad-sidebar{transform:translateX(0)}.ad-mobile-menu{display:block;border:1px solid var(--ad-line);background:var(--ad-paper);color:var(--ad-ink);border-radius:9px;width:38px;height:38px}.ad-topbar{padding-inline:15px}.ad-search:not(.wide){min-width:130px}.ad-welcome{grid-template-columns:1fr .7fr}.ad-feature-strip{flex-wrap:wrap}.ad-feature-strip .ad-gold-btn{margin-left:auto}}
@media(max-width:620px){.ad-topbar{align-items:flex-start;flex-wrap:wrap}.ad-top-left{flex:1}.ad-top-actions{width:100%;justify-content:flex-end;gap:6px}.ad-search:not(.wide){flex:1;min-width:0}.ad-profile{padding-left:8px}.ad-profile span:not(.ad-chevron){display:block}.ad-profile span.ad-chevron{display:none}.ad-welcome{grid-template-columns:1fr}.ad-welcome-copy{padding:24px 21px}.ad-welcome-image{min-height:205px}.ad-welcome-image>img{mask-image:linear-gradient(180deg,#000,transparent 100%)}.ad-image-caption{bottom:11px;left:11px}.ad-round-stamp{width:59px;height:59px;font-size:.5rem}.ad-section-line{align-items:flex-start;flex-direction:column}.ad-stats{gap:8px}.ad-stat{padding:12px 9px;gap:7px}.ad-stat-icon{width:31px;height:31px;font-size:1rem}.ad-stat strong{font-size:1.45rem}.ad-stat p{font-size:.63rem}.ad-stat-spark{display:none}.ad-panel{padding:14px}.ad-request{gap:7px;flex-wrap:wrap}.ad-request>div{flex:1}.ad-request .ad-status{margin-left:47px}.ad-request .ad-row-arrow{margin-left:auto}.ad-feature-strip{align-items:flex-start}.ad-feature-strip>img{width:75px;height:75px}.ad-feature-strip>div{flex-basis:calc(100% - 95px)}.ad-feature-strip .ad-gold-btn{margin:0}.ad-enrol-summary{gap:7px}.ad-enrol-summary>div{padding:11px}.ad-enrol-summary small{font-size:.64rem}.ad-enrol-summary strong{font-size:1.4rem}.ad-programs,.ad-instructors{grid-template-columns:1fr}.ad-programs article>img,.ad-instructors article>img{height:200px}.ad-toolbar .ad-gold-btn{width:100%}.ad-search.wide{min-width:100%;flex-basis:100%}.ad-toolbar select{flex:1}.ad-attendance-hero>div{padding:17px}.ad-attendance-hero img{width:33%}.ad-attendance-hero strong{font-size:2.5rem}.ad-recital-banner{grid-template-columns:1fr}.ad-recital-banner>img{height:170px;min-height:170px}.ad-recital-banner>div{padding:20px}.ad-events article{gap:9px;flex-wrap:wrap}.ad-events article>div{min-width:calc(100% - 62px)}.ad-events article>.ad-status{margin-left:55px}.ad-footer{font-size:.66rem}.ad-topbar h1{font-size:1.15rem}.ad-profile img{width:31px;height:31px}.ad-profile b{font-size:.68rem}.ad-profile small{font-size:.6rem}}
@media(prefers-reduced-motion:reduce){.ad-app *{animation:none!important;transition:none!important}}

/* Shared dashboard chrome: deliberately mirrors Parent Dashboard */
.ad-app{font-family:"Figtree","Segoe UI",system-ui,sans-serif;--ad-bg:#FFF6E5;--ad-paper:#fff;--ad-ink:#0B0910;--ad-muted:#5B5560;--ad-line:rgba(11,9,16,.14);--ad-gold:#F5B82E;--ad-pink:#F05DAB;--ad-violet:#8A4DFF;grid-template-columns:258px minmax(0,1fr)}
.ad-app .pd-sidebar{background:#0B0910;color:#fff6e5;min-height:100vh;height:100vh;position:sticky;top:0;padding:27px 17px 22px;display:flex;flex-direction:column;z-index:100;overflow-y:auto}
.ad-app .pd-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff6e5;padding:0 5px 23px;border-bottom:1px solid #ffffff22}
.ad-app .pd-brand img{width:45px;height:45px;object-fit:contain}
.ad-app .pd-brand b{display:block;font:800 1.17rem/1.1 "Bricolage Grotesque",sans-serif;letter-spacing:-.04em}
.ad-app .pd-brand small{display:block;color:#F5B82E;font-size:.62rem;font-weight:800;letter-spacing:.13em;margin-top:5px}
.ad-app .pd-family{display:flex;align-items:center;gap:10px;padding:20px 4px}
.ad-app .pd-admin-avatar{width:43px;height:43px;object-fit:cover;border-radius:50%;border:2px solid #F5B82E}
.ad-app .pd-family>div{flex:1;min-width:0}.ad-app .pd-family b,.ad-app .pd-family small{display:block}
.ad-app .pd-family b{font-size:.85rem;color:#fff6e5}.ad-app .pd-family small{font-size:.7rem;color:#c7bdce}
.ad-app .pd-online{width:8px;height:8px;border-radius:50%;background:#62d6a1}
.ad-app .pd-nav-label{color:#a99db3;font-size:.64rem;letter-spacing:.14em;font-weight:800;margin:0;padding:2px 10px 10px}
.ad-app .pd-nav{display:grid;gap:5px}
.ad-app .pd-nav-link{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:#e9e0ed;text-align:left;font:600 .85rem "Figtree",sans-serif;transition:background .2s,transform .2s}
.ad-app .pd-nav-icon{display:inline-grid;place-items:center;width:20px;color:#F5B82E;font-size:1.1rem}
.ad-app .pd-nav-badge{margin-left:auto;border-radius:20px;background:#ffffff1c;color:#fff6e5;padding:2px 7px;font-size:.68rem}
.ad-app .pd-nav-link.active{background:#F5B82E;color:#0B0910;box-shadow:0 8px 22px #f5b82e20}
.ad-app .pd-nav-link.active .pd-nav-icon{color:#0B0910}
.ad-app .pd-nav-link:hover:not(.active){background:#ffffff12}
.ad-app .pd-sidebar-bottom{margin-top:auto;padding-top:20px}
.ad-app .pd-logout,.ad-app .pd-back{display:flex;align-items:center;gap:10px;text-decoration:none;padding:11px 12px;color:#eee5f0;font-size:.83rem;font-weight:700}
.ad-app .pd-logout{border-top:1px solid #ffffff22;padding-top:17px}.ad-app .pd-logout span{color:#F05DAB}
.ad-app .pd-back{color:#b7acbf;font-size:.76rem}
.ad-app .pd-overlay{display:none}
.ad-app .ad-topbar{min-height:88px;padding:16px clamp(18px,3vw,42px);background:var(--ad-paper);border-bottom:1px solid var(--ad-line);display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:80}
.ad-app .ad-mobile-menu{display:none}
.ad-app .ad-topbar h1{font:800 clamp(1.2rem,2vw,1.7rem)/1.1 "Bricolage Grotesque",sans-serif;letter-spacing:-.045em;color:var(--ad-ink)}
.ad-app .ad-eyebrow{display:block;color:var(--ad-muted);font-size:.61rem;letter-spacing:.13em;font-weight:800}
.ad-app .ad-top-actions{display:flex;align-items:center;gap:9px}
.ad-app .ad-top-icon,.ad-app .ad-notifications{width:39px;height:39px;border-radius:50%;border:1px solid var(--ad-line);background:var(--ad-paper);color:var(--ad-ink)}
.ad-app .ad-profile{display:flex;align-items:center;gap:8px;border-left:1px solid var(--ad-line);padding-left:13px}
.ad-app .ad-profile img{width:38px;height:38px;object-fit:cover;border-radius:50%;border:2px solid #F5B82E}
.ad-app .ad-profile b,.ad-app .ad-profile small{display:block}.ad-app .ad-profile b{font-size:.77rem}.ad-app .ad-profile small{font-size:.68rem;color:var(--ad-muted)}
.ad-app .ad-search{background:var(--ad-bg);border-color:var(--ad-line)}
.ad-app .ad-gold-btn{background:#F5B82E;color:#0B0910}
@media(max-width:900px){
 .ad-app{display:block}
 .ad-app .pd-sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;width:270px;max-width:86vw;transform:translateX(-105%);transition:transform .28s ease;box-shadow:15px 0 40px #0004;z-index:300}
 .ad-app .pd-sidebar.is-open{transform:translateX(0)}
 .ad-app .pd-overlay.is-visible{display:block;position:fixed;inset:0;background:#09061099;z-index:250}
 .ad-app .ad-mobile-menu{display:grid;place-items:center;flex:none}
 .ad-app .ad-topbar{padding:14px 16px;flex-wrap:wrap}
 .ad-app .ad-top-actions{gap:6px}
}
@media(max-width:620px){
 .ad-app .ad-topbar{align-items:flex-start}
 .ad-app .ad-top-actions{width:100%;justify-content:flex-end}
 .ad-app .ad-profile span:not(.ad-chevron){display:block}
 .ad-app .ad-search:not(.wide){flex:1;min-width:0}
}
[data-theme="dark"] .ad-app{--ad-bg:#100d15;--ad-paper:#1b1721;--ad-ink:#fff6e5;--ad-muted:#c7bdce;--ad-line:rgba(255,246,229,.16)}
[data-theme="dark"] .ad-app .pd-sidebar{background:#09070d}
[data-theme="dark"] .ad-app .ad-topbar,[data-theme="dark"] .ad-app .ad-panel,[data-theme="dark"] .ad-app .ad-stat,[data-theme="dark"] .ad-app .ad-table-wrap,[data-theme="dark"] .ad-app .ad-programs article,[data-theme="dark"] .ad-app .ad-instructors article,[data-theme="dark"] .ad-app .ad-enrol-summary>div{background:var(--ad-paper);color:var(--ad-ink)}
[data-theme="dark"] .ad-app .ad-topbar h1,[data-theme="dark"] .ad-app .ad-section-line h2,[data-theme="dark"] .ad-app .ad-panel-head h2,[data-theme="dark"] .ad-app .ad-page-intro h2,[data-theme="dark"] .ad-app .ad-stat strong,[data-theme="dark"] .ad-app .ad-table td,[data-theme="dark"] .ad-app .ad-programs h3,[data-theme="dark"] .ad-app .ad-instructors h3{color:var(--ad-ink)}

/* FINAL CONSISTENCY PASS — match the Parent Dashboard chrome and theme exactly */
.ad-app{--ad-bg:#FFF6E5;--ad-paper:#FFFFFF;--ad-ink:#0B0910;--ad-muted:#5B5560;--ad-line:rgba(11,9,16,.14);--ad-gold:#F5B82E;--ad-pink:#F05DAB;--ad-violet:#8A4DFF;--ad-radius:22px;color:var(--ad-ink);font-family:"Figtree","Segoe UI",system-ui,sans-serif;background:var(--ad-bg);}
.ad-app .pd-sidebar{background:#0B0910;color:#fff;min-height:100vh;position:sticky;top:0;height:100vh;padding:27px 17px 22px;display:flex;flex-direction:column;z-index:120;overflow-y:auto;}
.ad-app .pd-brand{gap:10px;color:#fff;padding:0 8px 27px;border-bottom:1px solid #ffffff20;text-decoration:none;}
.ad-app .pd-brand img{width:42px;height:42px;object-fit:contain;border-radius:50%;background:#fff;padding:3px;}
.ad-app .pd-brand b{font:800 1.22rem/1.1 "Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;letter-spacing:-.03em;}
.ad-app .pd-brand small{color:#F5B82E;font-size:.61rem;letter-spacing:.1em;margin-top:5px;font-weight:700;}
.ad-app .pd-family{gap:10px;padding:22px 6px 25px;}
.ad-app .pd-family b{font-size:.88rem;color:#fff6e5;}
.ad-app .pd-family small{font-size:.75rem;color:#D9CBAF;}
.ad-app .pd-nav-label{font-size:.65rem;letter-spacing:.15em;color:#B9A98B;padding:0 12px;margin:0 0 10px;}
.ad-app .pd-nav{display:grid;gap:6px;}
.ad-app .pd-nav-link{gap:12px;border:0;background:transparent;color:#E5D7BD;padding:12px 13px;border-radius:13px;font:600 .9rem "Figtree","Segoe UI",system-ui,sans-serif;text-align:start;transition:background .2s,color .2s,transform .2s;width:100%;cursor:pointer;}
.ad-app .pd-nav-link:hover{background:#ffffff10;transform:translateX(2px);}
.ad-app .pd-nav-link.active{background:#F05DAB;color:#0B0910;box-shadow:0 9px 22px #F05DAB28;}
.ad-app .pd-nav-icon{width:21px;text-align:center;color:inherit;font-size:1.2rem;line-height:1;}
.ad-app .pd-nav-badge{margin-inline-start:auto;border-radius:20px;background:#ffffff20;color:inherit;padding:2px 7px;font-size:.72rem;}
.ad-app .pd-nav-link.active .pd-nav-badge{background:#0B091017;}
.ad-app .pd-sidebar-bottom{margin-top:auto;padding-top:25px;display:grid;gap:13px;}
.ad-app .pd-logout,.ad-app .pd-back{display:flex;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;color:#E5D7BD;font-size:.86rem;font-weight:600;}
.ad-app .pd-logout{border-top:0;padding-top:8px;}.ad-app .pd-logout span{color:#F05DAB;}
.ad-app .pd-back{font-size:.78rem;color:#B9A98B;border-top:1px solid #ffffff20;padding-top:19px;}
.ad-app .ad-topbar{min-height:90px;padding:18px clamp(20px,3.2vw,48px);display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--ad-line);background:var(--ad-paper);position:sticky;top:0;z-index:80;}
.ad-app .ad-topbar h1{font:800 clamp(1.25rem,2vw,1.7rem)/1.1 "Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;letter-spacing:-.04em;color:var(--ad-ink);}
.ad-app .ad-eyebrow,.ad-app .ad-kicker{font-size:.67rem;letter-spacing:.15em;font-weight:800;color:var(--ad-muted);}
.ad-app .ad-top-icon,.ad-app .ad-notifications{width:39px;height:39px;border-radius:13px;border:1px solid var(--ad-line);background:var(--ad-paper);color:var(--ad-ink);display:grid;place-items:center;cursor:pointer;}
.ad-app .ad-profile{border-left:1px solid var(--ad-line);padding-left:16px;margin-left:5px;}
.ad-app .ad-profile b{color:var(--ad-ink);}.ad-app .ad-profile small{color:var(--ad-muted);}
.ad-app .ad-search,.ad-app .ad-toolbar select,.ad-app .ad-panel-head select{background:var(--ad-bg);color:var(--ad-ink);border-color:var(--ad-line);}
.ad-app .ad-gold-btn{background:#F5B82E;color:#0B0910;}
/* Dark mode: every dashboard surface and all text retain readable contrast */
[data-theme="dark"] .ad-app{--ad-bg:#0B0910;--ad-paper:#17121D;--ad-ink:#FFF6E5;--ad-muted:#D4C9B8;--ad-line:#403347;background:var(--ad-bg);color:var(--ad-ink);}
[data-theme="dark"] .ad-app .ad-main,[data-theme="dark"] .ad-app .ad-content{background:var(--ad-bg);color:var(--ad-ink);}
[data-theme="dark"] .ad-app .ad-topbar,[data-theme="dark"] .ad-app .ad-panel,[data-theme="dark"] .ad-app .ad-stat,[data-theme="dark"] .ad-app .ad-table-wrap,[data-theme="dark"] .ad-app .ad-programs article,[data-theme="dark"] .ad-app .ad-instructors article,[data-theme="dark"] .ad-app .ad-enrol-summary>div{background:var(--ad-paper);color:var(--ad-ink);border-color:var(--ad-line);}
[data-theme="dark"] .ad-app h1,[data-theme="dark"] .ad-app h2,[data-theme="dark"] .ad-app h3,[data-theme="dark"] .ad-app h4,[data-theme="dark"] .ad-app p,[data-theme="dark"] .ad-app li,[data-theme="dark"] .ad-app label,[data-theme="dark"] .ad-app .ad-table td,[data-theme="dark"] .ad-app .ad-table-person b,[data-theme="dark"] .ad-app .ad-stat strong,[data-theme="dark"] .ad-app .ad-profile b,[data-theme="dark"] .ad-app .ad-page-intro h2,[data-theme="dark"] .ad-app .ad-section-line h2,[data-theme="dark"] .ad-app .ad-panel-head h2,[data-theme="dark"] .ad-app .ad-programs h3,[data-theme="dark"] .ad-app .ad-instructors h3{color:var(--ad-ink);}
[data-theme="dark"] .ad-app .ad-eyebrow,[data-theme="dark"] .ad-app .ad-kicker,[data-theme="dark"] .ad-app .ad-page-intro p,[data-theme="dark"] .ad-app .ad-panel p,[data-theme="dark"] .ad-app .ad-table-person small,[data-theme="dark"] .ad-app .ad-stat small,[data-theme="dark"] .ad-app .ad-stat p,[data-theme="dark"] .ad-app .ad-profile small,[data-theme="dark"] .ad-app .ad-demo-note,[data-theme="dark"] .ad-app .ad-events small,[data-theme="dark"] .ad-app .ad-programs p,[data-theme="dark"] .ad-app .ad-instructors p{color:#D4C9B8;}
[data-theme="dark"] .ad-app .ad-search,[data-theme="dark"] .ad-app .ad-toolbar select,[data-theme="dark"] .ad-app .ad-panel-head select,[data-theme="dark"] .ad-app .ad-dialog input,[data-theme="dark"] .ad-app .ad-dialog select{background:#100d15;color:#FFF6E5;border-color:#51445a;color-scheme:dark;}
[data-theme="dark"] .ad-app input::placeholder{color:#b9adbf;}
[data-theme="dark"] .ad-app .ad-table th{background:#241d2a;color:#FFF6E5;}
[data-theme="dark"] .ad-app .ad-table td{border-color:#403347;}
[data-theme="dark"] .ad-app .ad-status.pending{background:#4a3510;color:#ffdc7c;}
[data-theme="dark"] .ad-app .ad-status.approved{background:#153b2c;color:#a7f0c5;}
[data-theme="dark"] .ad-app .ad-status.review{background:#34234f;color:#d6baff;}
[data-theme="dark"] .ad-app .ad-dialog{background:var(--ad-paper);color:var(--ad-ink);border-color:var(--ad-line);}
[data-theme="dark"] .ad-app .ad-gold-btn{background:#F5B82E;color:#0B0910;}
[data-theme="dark"] .ad-app .ad-mobile-menu{background:var(--ad-paper);color:var(--ad-ink);border-color:var(--ad-line);}
@media(max-width:900px){.ad-app{display:block;}.ad-app .pd-sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;width:258px;max-width:86vw;transform:translateX(-105%);transition:transform .28s ease;box-shadow:15px 0 40px #0004;z-index:300;}.ad-app .pd-sidebar.is-open{transform:translateX(0);}[dir="rtl"] .ad-app .pd-sidebar{left:auto;right:0;transform:translateX(105%);}[dir="rtl"] .ad-app .pd-sidebar.is-open{transform:translateX(0);}.ad-app .ad-mobile-menu{display:grid;place-items:center;flex:none;width:39px;height:39px;border:1px solid var(--ad-line);border-radius:13px;background:var(--ad-paper);color:var(--ad-ink);}.ad-app .ad-topbar{padding:18px 20px;}}
@media(max-width:620px){.ad-app .ad-topbar{align-items:flex-start;flex-wrap:wrap;}.ad-app .ad-top-actions{width:100%;justify-content:flex-end;flex-wrap:wrap;}.ad-app .ad-profile{padding-left:10px;}.ad-app .ad-search:not(.wide){flex:1;min-width:100px;}}

/* FINAL CONSISTENCY PATCH — Admin dashboard matches Parent Dashboard chrome and palette */
.ad-app{grid-template-columns:258px minmax(0,1fr);background:#FFF6E5;color:#0B0910;--ad-bg:#FFF6E5;--ad-paper:#fff;--ad-ink:#0B0910;--ad-muted:#5B5560;--ad-line:rgba(11,9,16,.14);--ad-gold:#F5B82E;--ad-pink:#F05DAB;--ad-violet:#8A4DFF}
.ad-app .pd-sidebar{width:auto;min-width:0;padding:27px 17px 22px;overflow-y:auto;scrollbar-width:none}
.ad-app .pd-sidebar::-webkit-scrollbar{display:none}
.ad-app .pd-brand{padding:0 8px 27px;gap:10px}
.ad-app .pd-brand img{width:42px;height:42px;border-radius:50%;background:#fff;padding:3px}
.ad-app .pd-brand b{font-size:1.22rem;letter-spacing:-.03em}
.ad-app .pd-brand small{color:#F5B82E;letter-spacing:.1em;font-size:.61rem}
.ad-app .pd-family{padding:22px 6px 25px}
.ad-app .pd-admin-avatar{width:42px;height:42px;border:0;border-radius:0;object-fit:cover}
.ad-app .pd-family b{font-size:.88rem}.ad-app .pd-family small{font-size:.75rem;color:#D9CBAF}
.ad-app .pd-nav-label{color:#B9A98B;padding:0 12px;margin:0 0 10px;font-size:.65rem;letter-spacing:.15em}
.ad-app .pd-nav{gap:6px}
.ad-app .pd-nav-link{gap:12px;padding:12px 13px;border-radius:13px;color:#E5D7BD;font:600 .9rem "Figtree","Segoe UI",system-ui,sans-serif}
.ad-app .pd-nav-icon{width:21px;color:#F5B82E;font-size:1.2rem}
.ad-app .pd-nav-link.active{background:#F05DAB;color:#0B0910;box-shadow:0 9px 22px #F05DAB28}
.ad-app .pd-nav-link.active .pd-nav-icon{color:#0B0910}
.ad-app .pd-nav-link:hover:not(.active){background:#ffffff10}
.ad-app .pd-sidebar-bottom{padding-top:25px;gap:13px}
.ad-app .pd-logout,.ad-app .pd-back{padding:8px 12px;color:#E5D7BD;font-size:.86rem;font-weight:600}
.ad-app .pd-logout{border-top:0;padding-top:8px}.ad-app .pd-logout span{color:#F05DAB}
.ad-app .pd-back{font-size:.78rem;color:#B9A98B;border-top:1px solid #ffffff20;padding-top:19px}
.ad-app .ad-topbar{min-height:90px;padding:18px clamp(20px,3.2vw,48px);background:var(--ad-paper);border-bottom:1px solid var(--ad-line);gap:20px}
.ad-app .ad-topbar h1{font-size:clamp(1.25rem,2vw,1.7rem);color:var(--ad-ink)}
.ad-app .ad-topbar h1 span{color:#F05DAB}
.ad-app .ad-eyebrow{font-size:.67rem;letter-spacing:.15em;color:var(--ad-muted)}
.ad-app .ad-top-icon,.ad-app .ad-notifications{width:39px;height:39px;border-radius:13px;background:var(--ad-paper);border-color:var(--ad-line);color:var(--ad-ink)}
.ad-app .ad-profile{border-left:1px solid var(--ad-line);padding-left:16px;margin-left:5px}
.ad-app .ad-profile img{width:37px;height:37px;border-radius:0;border:0}
.ad-app .ad-profile b{font-size:.88rem;color:var(--ad-ink)}.ad-app .ad-profile small{font-size:.75rem;color:var(--ad-muted)}
.ad-app .ad-search{background:var(--ad-bg);border-color:var(--ad-line);border-radius:13px}
.ad-app .ad-content{padding:clamp(20px,3vw,42px) clamp(18px,3.2vw,48px) 20px}
/* Keep the same immersive split hero as the parent portal, with accessible contrast. */
.ad-app .ad-welcome{grid-template-columns:1fr .9fr;min-height:380px;border-radius:27px;background:#211A2A;color:#FFF6E5}
.ad-app .ad-welcome-copy{padding:clamp(25px,4vw,49px)}
.ad-app .ad-overline{display:inline-flex;background:#fff;border-radius:30px;padding:7px 11px;color:#374e69;font-size:.63rem;letter-spacing:.08em}
.ad-app .ad-overline i{background:#F05DAB;box-shadow:0 0 0 4px #F05DAB20}
.ad-app .ad-welcome h2{color:#FFF6E5;font-size:clamp(2.1rem,3.6vw,3.4rem);line-height:.98}
.ad-app .ad-welcome h2 em{color:#F05DAB}
.ad-app .ad-welcome-copy>p{color:#E2D9E4;max-width:430px;font-size:.97rem}
.ad-app .ad-gold-btn{background:#F05DAB;color:#0B0910;border-radius:12px;padding:13px 18px;font-size:.9rem}
.ad-app .ad-gold-btn:hover{box-shadow:0 10px 22px #F05DAB28}
.ad-app .ad-welcome-image>img{mask-image:linear-gradient(90deg,transparent 0%,#000 25%);opacity:.58;mix-blend-mode:normal}
.ad-app .ad-image-caption{bottom:21px;left:21px;border-radius:15px;background:#fff;color:#0B0910;padding:10px 14px}
.ad-app .ad-image-caption>span{background:#2B1725;color:#F05DAB;border-radius:11px}
.ad-app .ad-round-stamp{background:#F5B82E;border:0;width:78px;height:78px;font-size:.65rem}
.ad-app .ad-section-line h2,.ad-app .ad-panel-head h2,.ad-app .ad-page-intro h2{color:var(--ad-ink)}
.ad-app .ad-kicker{color:var(--ad-muted)}
.ad-app .ad-link-btn,.ad-app .ad-footer b{color:#9C5D00}
.ad-app .ad-stat,.ad-app .ad-panel,.ad-app .ad-table-wrap,.ad-app .ad-programs article,.ad-app .ad-instructors article,.ad-app .ad-enrol-summary>div{background:var(--ad-paper);color:var(--ad-ink);border-color:var(--ad-line);border-radius:18px}
.ad-app .ad-stat-icon.pink{background:#2B1725;color:#F05DAB}.ad-app .ad-stat-icon.violet{background:#292333;color:#C4A7FF}.ad-app .ad-stat-icon.gold{background:#211A2A;color:#F5B82E}
.ad-app .ad-stat-spark{color:#F05DAB}.ad-app .ad-stat p b{color:#18845c}
.ad-app .ad-today-date{background:#FFF0C8;color:#0B0910}
.ad-app .ad-table th{background:#F5EBDD;color:#3F3543}
.ad-app .ad-search input{color:var(--ad-ink)}
/* Dark mode: explicitly set foreground/background pairs for every content type. */
[data-theme="dark"] .ad-app,[data-theme="dark"] .tt-parent-app .ad-app{--ad-bg:#0B0910;--ad-paper:#17121D;--ad-ink:#FFF6E5;--ad-muted:#D4C9B8;--ad-line:#403347;background:#0B0910;color:#FFF6E5;color-scheme:dark}
[data-theme="dark"] .ad-app .ad-content{background:#0B0910;color:#FFF6E5}
[data-theme="dark"] .ad-app .ad-topbar,[data-theme="dark"] .ad-app .ad-stat,[data-theme="dark"] .ad-app .ad-panel,[data-theme="dark"] .ad-app .ad-table-wrap,[data-theme="dark"] .ad-app .ad-programs article,[data-theme="dark"] .ad-app .ad-instructors article,[data-theme="dark"] .ad-app .ad-enrol-summary>div,[data-theme="dark"] .ad-app .ad-dialog{background:#17121D;color:#FFF6E5;border-color:#403347}
[data-theme="dark"] .ad-app h1,[data-theme="dark"] .ad-app h2,[data-theme="dark"] .ad-app h3,[data-theme="dark"] .ad-app p,[data-theme="dark"] .ad-app label,[data-theme="dark"] .ad-app td,[data-theme="dark"] .ad-app th,[data-theme="dark"] .ad-app .ad-stat strong,[data-theme="dark"] .ad-app .ad-request>div b,[data-theme="dark"] .ad-app .ad-class-list b,[data-theme="dark"] .ad-app .ad-table-person b,[data-theme="dark"] .ad-app .ad-programs h3,[data-theme="dark"] .ad-app .ad-instructors h3{color:#FFF6E5}
[data-theme="dark"] .ad-app .ad-eyebrow,[data-theme="dark"] .ad-app .ad-kicker,[data-theme="dark"] .ad-app .ad-updated,[data-theme="dark"] .ad-app .ad-stat small,[data-theme="dark"] .ad-app .ad-stat p,[data-theme="dark"] .ad-app .ad-request small,[data-theme="dark"] .ad-app .ad-class-list small,[data-theme="dark"] .ad-app .ad-table-person small,[data-theme="dark"] .ad-app .ad-page-intro p,[data-theme="dark"] .ad-app .ad-footer,[data-theme="dark"] .ad-app .ad-demo-note{color:#D4C9B8}
[data-theme="dark"] .ad-app .ad-search,[data-theme="dark"] .ad-app .ad-toolbar select,[data-theme="dark"] .ad-app .ad-panel-head select,[data-theme="dark"] .ad-app .ad-dialog input,[data-theme="dark"] .ad-app .ad-dialog select{background:#100D15;color:#FFF6E5;border-color:#51445A;color-scheme:dark}
[data-theme="dark"] .ad-app .ad-search input,[data-theme="dark"] .ad-app input,[data-theme="dark"] .ad-app select,[data-theme="dark"] .ad-app textarea{color:#FFF6E5}
[data-theme="dark"] .ad-app input::placeholder{color:#B9ADBF}
[data-theme="dark"] .ad-app .ad-table th{background:#241D2A;color:#FFF6E5}
[data-theme="dark"] .ad-app .ad-table td{border-color:#403347}
[data-theme="dark"] .ad-app .ad-status.pending{background:#4A3510;color:#FFDC7C}
[data-theme="dark"] .ad-app .ad-status.approved{background:#153B2C;color:#A7F0C5}
[data-theme="dark"] .ad-app .ad-status.review{background:#34234F;color:#D6BAFF}
[data-theme="dark"] .ad-app .ad-today-date{background:#352A1C;color:#FFF6E5}
[data-theme="dark"] .ad-app .ad-gold-btn{background:#F05DAB;color:#0B0910}
[data-theme="dark"] .ad-app .ad-row-arrow,[data-theme="dark"] .ad-app .ad-top-icon,[data-theme="dark"] .ad-app .ad-notifications{background:#17121D;color:#FFF6E5;border-color:#403347}
@media(max-width:900px){.ad-app{display:block}.ad-app .pd-sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;width:258px;max-width:86vw;transform:translateX(-105%);transition:transform .28s ease;box-shadow:15px 0 40px #0004;z-index:300}.ad-app .pd-sidebar.is-open{transform:translateX(0)}[dir="rtl"] .ad-app .pd-sidebar{left:auto;right:0;transform:translateX(105%)}[dir="rtl"] .ad-app .pd-sidebar.is-open{transform:translateX(0)}.ad-app .ad-mobile-menu{display:grid;place-items:center;flex:none;width:39px;height:39px;border:1px solid var(--ad-line);border-radius:13px;background:var(--ad-paper);color:var(--ad-ink)}.ad-app .ad-topbar{padding:14px 16px;flex-wrap:wrap}.ad-app .ad-overlay,.ad-app .pd-overlay.is-visible{display:block;position:fixed;inset:0;background:#09061099;z-index:250}.ad-app .ad-top-actions{gap:6px}.ad-app .ad-welcome{min-height:340px}}
@media(max-width:620px){.ad-app .ad-topbar{align-items:flex-start}.ad-app .ad-top-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.ad-app .ad-profile span:not(.ad-chevron){display:block}.ad-app .ad-profile span.ad-chevron{display:none}.ad-app .ad-search:not(.wide){flex:1;min-width:100px}.ad-app .ad-welcome{grid-template-columns:1fr;min-height:0}.ad-app .ad-welcome-copy{padding:25px 22px}.ad-app .ad-welcome-image{min-height:220px}.ad-app .ad-content{padding:18px 15px}.ad-app .ad-profile{padding-left:10px}}
/* Shared dashboard header controls: mirror the Parent Dashboard */
.ad-app .ad-top-actions{gap:9px;flex:0 0 auto}
.ad-app .ad-top-actions .pd-icon-btn{width:39px;height:39px;border-radius:13px;border:1px solid var(--pd-line);background:var(--pd-paper);color:var(--pd-ink);display:grid;place-items:center;font-size:1.2rem;flex:none}
.ad-app .ad-top-actions .pd-icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ad-app .ad-top-actions .pd-icon-btn .i-sun{display:none}
[data-theme="dark"] .ad-app .ad-top-actions .pd-icon-btn .i-moon{display:none}
[data-theme="dark"] .ad-app .ad-top-actions .pd-icon-btn .i-sun{display:block}
.ad-app .ad-profile{border-inline-start:1px solid var(--pd-line);border-left:0;padding-inline-start:16px;padding-left:0;margin-inline-start:5px;gap:9px}
.ad-app .ad-profile img{width:37px;height:37px;border-radius:0;border:0;object-fit:cover}
.ad-app .ad-profile b{color:var(--pd-ink);font-size:.78rem}
.ad-app .ad-profile small{color:var(--pd-muted);font-size:.68rem}
.ad-app .ad-topbar{min-height:90px;padding:18px clamp(20px,3.2vw,48px);gap:20px;background:var(--pd-paper);border-bottom:1px solid var(--pd-line)}
.ad-app .ad-topbar h1{color:var(--pd-ink)}
.ad-app .ad-eyebrow{font-size:.67rem;letter-spacing:.15em;color:var(--pd-muted)}
.ad-app .ad-topbar h1 span{color:var(--pd-pink)}
[data-theme="dark"] .ad-app .ad-topbar h1,[data-theme="dark"] .ad-app .ad-profile b{color:var(--pd-ink)}
@media(max-width:620px){.ad-app .ad-topbar{align-items:center;flex-wrap:nowrap;padding:14px 16px}.ad-app .ad-top-actions{width:auto;justify-content:flex-end;gap:6px}.ad-app .ad-top-actions .pd-icon-btn{width:35px;height:35px;border-radius:11px}.ad-app .ad-profile{padding-inline-start:8px;margin-inline-start:0;border:0}.ad-app .ad-profile img{width:34px;height:34px}.ad-app .ad-profile span{display:none}.ad-app .ad-profile span:first-of-type{display:block}.ad-app .ad-profile b{font-size:.68rem}.ad-app .ad-profile small{font-size:.6rem}}


/* ===== Unified button size (all pages) ===== */
.btn,.btn--sm,.btn--big,.h1-dk,.h1-ghost,.ab-dk,.ab-ghost,.it-ghost,.it-t__btn,.in-ghost,.pg-ghost,.cp-submit,.auth-submit{display:inline-flex!important;align-items:center;justify-content:center;gap:.55rem;min-height:52px!important;height:auto!important;padding:0 1.75rem!important;font:700 1rem/1 var(--ff-b)!important;border-radius:999px!important;text-decoration:none;white-space:nowrap;box-sizing:border-box}
.h1-ghost,.ab-ghost,.it-ghost,.in-ghost,.pg-ghost{border:1.5px solid color-mix(in srgb,currentColor 55%,transparent)!important;background:transparent;transition:background .25s,border-color .25s,transform .25s}
.h1-ghost:hover,.ab-ghost:hover,.it-ghost:hover,.in-ghost:hover,.pg-ghost:hover{background:color-mix(in srgb,currentColor 14%,transparent);border-color:currentColor!important;transform:translateY(-2px)}
.it-t__btn{margin-top:1.6rem}
/* header and mobile-menu buttons stay compact so they fit the 60px bar */
.site-header .btn,.site-header .btn--sm{min-height:42px!important;padding:0 1.3rem!important;font-size:.95rem!important}
@media (max-width:560px){.h1-cta .btn,.h1-cta .h1-ghost,.in-hero__cta .btn,.in-hero__cta .in-ghost{width:100%}}

/* ===== Home 2: dance year as a horizontal journey; even gallery grid ===== */
@media (min-width:1000px){
.h2-tl{grid-template-columns:repeat(5,1fr);gap:1.1rem;padding:4.4rem 0 0}
.h2-tl::before,.h2-tl::after{inset:auto;top:24px;left:10%;right:10%;width:auto;height:5px;margin:0}
.h2-tl::before{background:repeating-linear-gradient(90deg,var(--ln) 0 12px,transparent 12px 20px)}
.h2-tl::after{background:linear-gradient(90deg,var(--pink),var(--gold),var(--teal));transform:scaleX(var(--p));transform-origin:left}
.h2-tl .h2-ev{display:block;position:relative}
.h2-tl .h2-ev__dot{position:absolute;top:-4.4rem;left:50%;margin-left:-26px}
.h2-tl .h2-ev:nth-child(n) .h2-ev__c{grid-column:auto;height:100%;grid-template-rows:auto 1fr;border-top:6px solid var(--c);border-radius:24px}
.h2-tl .h2-ev__c figure{aspect-ratio:4/3}
.h2-tl .h2-ev__c>div{padding:1.1rem 1.2rem 1.4rem}
.h2-tl .h2-ev__c h3{font-size:1.25rem}
.h2-tl .h2-ev__c p{font-size:.92rem}
.h2-tl .h2-ev:nth-child(2) .h2-ev__dot{transition-delay:.1s}.h2-tl .h2-ev:nth-child(3) .h2-ev__dot{transition-delay:.2s}.h2-tl .h2-ev:nth-child(4) .h2-ev__dot{transition-delay:.3s}.h2-tl .h2-ev:nth-child(5) .h2-ev__dot{transition-delay:.4s}
}
@media (max-width:520px){.h2-mos{grid-template-columns:1fr}}

/* ===== Home 1 instructors: editorial studio portrait redesign ===== */
.h1-team{position:relative;isolation:isolate;overflow:hidden;background:#fff9ed!important;color:#17131b!important;padding-block:clamp(4.2rem,8vw,7.2rem)!important}
.h1-team::before{content:"OUR PEOPLE";position:absolute;z-index:-1;right:-.03em;top:.02em;font:900 clamp(5rem,15vw,13rem)/.85 var(--ff-b);letter-spacing:-.09em;color:rgba(23,19,27,.035);white-space:nowrap;pointer-events:none}
.h1-team::after{content:"";position:absolute;z-index:-1;width:clamp(180px,25vw,360px);height:clamp(180px,25vw,360px);border:1px solid rgba(242,181,68,.5);border-radius:50%;right:-7rem;bottom:-12rem;box-shadow:0 0 0 28px rgba(242,181,68,.08),0 0 0 58px rgba(242,181,68,.05);pointer-events:none}
.h1-team__g{grid-template-columns:minmax(230px,.72fr) minmax(0,1.6fr)!important;gap:clamp(2.2rem,5.5vw,6rem)!important;align-items:center!important}
.h1-team__g>div:first-child{position:relative;align-self:center;padding:0 0 1rem}
.h1-team__g>div:first-child::before{content:"MEET THE GUIDES";display:flex;align-items:center;gap:.65rem;color:#a56c00;font:800 .76rem/1 var(--ff-b);letter-spacing:.17em;margin-bottom:1.35rem}
.h1-team__g>div:first-child::after{content:"";display:block;width:66px;height:4px;background:#f2b544;border-radius:9px;margin-top:1.6rem}
.h1-team h2{font:700 clamp(2.25rem,4.1vw,4.25rem)/1.03 var(--ff-d)!important;letter-spacing:-.045em;max-width:10ch;margin:0;color:#17131b}
.h1-team .h1-sub{font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.8;color:#625b61;max-width:31ch;margin-top:1.2rem;margin-bottom:1.6rem!important}
.h1-team .h1-dk{background:#17131b!important;color:#fff!important;box-shadow:0 8px 0 #f2b544;transition:transform .25s,box-shadow .25s,background .25s!important}
.h1-team .h1-dk:hover{transform:translateY(-3px);box-shadow:0 11px 0 #f2b544;background:#3b2a43!important}
.h1-fan{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(.8rem,2vw,1.6rem);padding:1.25rem 0 .7rem!important;min-width:0}
.h1-pol{position:relative;display:flex;flex-direction:column;min-width:0;flex:initial!important;margin:0!important;padding:0 0 1.15rem!important;background:transparent!important;color:#17131b!important;border-radius:0!important;box-shadow:none!important;rotate:0deg!important;translate:0 0!important;overflow:visible;transition:transform .4s cubic-bezier(.2,.8,.2,1)!important}
.h1-pol:nth-child(2){margin-top:2.8rem!important}
.h1-pol:nth-child(3){margin-top:1.2rem!important}
.h1-pol::before{content:none!important}
.h1-pol figure{position:relative;display:block;margin:0 0 1.15rem!important;aspect-ratio: .77!important;overflow:hidden;border-radius:48% 48% 8px 8px!important;background:#e8d9c7;box-shadow:0 14px 32px rgba(39,25,16,.12)}
.h1-pol:nth-child(2) figure{border-radius:8px 8px 48% 48%!important}
.h1-pol figure::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.25);pointer-events:none}
.h1-pol img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.87);transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .5s!important}
.h1-pol:hover,.h1-pol:focus-within{transform:translateY(-8px)!important;rotate:0deg!important;translate:0 0!important;z-index:3}
.h1-pol:hover img,.h1-pol:focus-within img{transform:scale(1.055);filter:saturate(1.08)}
.h1-pol b{font:700 clamp(1.15rem,1.6vw,1.55rem)/1.15 var(--ff-d)!important;letter-spacing:-.025em;margin:0 0 .32rem!important;color:#17131b}
.h1-pol small{font:500 .9rem/1.5 var(--ff-b)!important;color:#70666b!important}
.h1-pol span{align-self:flex-start;display:inline-flex!important;align-items:center;margin-top:.8rem!important;padding:.42rem .72rem!important;border-radius:4px!important;background:transparent!important;border:1px solid #e2b449;color:#654500!important;font:800 .68rem/1 var(--ff-b)!important;letter-spacing:.07em;text-transform:uppercase}
.h1-pol:nth-child(2) span{border-color:#e783ad;color:#9b315d!important}
.h1-pol:nth-child(3) span{border-color:#4eb9a5;color:#167b6a!important}
[data-theme="dark"] .h1-team{background:#171522!important;color:#fff!important}
[data-theme="dark"] .h1-team::before{color:rgba(255,255,255,.035)}
[data-theme="dark"] .h1-team h2,[data-theme="dark"] .h1-team .h1-pol b{color:#fff!important}
[data-theme="dark"] .h1-team .h1-sub,[data-theme="dark"] .h1-team .h1-pol small{color:#d2cbd8!important}
[data-theme="dark"] .h1-team__g>div:first-child::before{color:#ffd16a}
[data-theme="dark"] .h1-pol span{color:#ffd16a!important;border-color:#bd9139}
[data-theme="dark"] .h1-pol:nth-child(2) span{color:#ffacd0!important;border-color:#b95783}
[data-theme="dark"] .h1-pol:nth-child(3) span{color:#83e5d5!important;border-color:#399c8d}
@media(max-width:900px){.h1-team__g{grid-template-columns:1fr!important;gap:2.2rem!important}.h1-team__g>div:first-child{max-width:650px}.h1-team h2{max-width:15ch}.h1-fan{max-width:850px;width:100%;margin-inline:auto}}
@media(max-width:560px){.h1-team{padding-block:3.5rem!important}.h1-team::before{font-size:5rem;top:.4rem}.h1-fan{gap:.7rem;padding-top:.2rem!important}.h1-pol:nth-child(2){margin-top:1.4rem!important}.h1-pol:nth-child(3){margin-top:.65rem!important}.h1-pol figure{aspect-ratio:.68!important;margin-bottom:.75rem!important;border-radius:42% 42% 6px 6px!important}.h1-pol:nth-child(2) figure{border-radius:6px 6px 42% 42%!important}.h1-pol b{font-size:1rem!important}.h1-pol small{font-size:.74rem!important;line-height:1.35!important}.h1-pol span{font-size:.56rem!important;padding:.35rem .42rem!important;letter-spacing:.02em}.h1-team .h1-dk{min-height:48px!important}}
@media(max-width:380px){.h1-fan{grid-template-columns:1fr;gap:1.4rem}.h1-pol,.h1-pol:nth-child(2),.h1-pol:nth-child(3){margin-top:0!important;display:grid;grid-template-columns:minmax(100px,.75fr) minmax(0,1fr);column-gap:.9rem;align-items:center}.h1-pol figure,.h1-pol:nth-child(2) figure{grid-row:span 3;aspect-ratio:.82!important;margin:0!important;border-radius:50% 50% 6px 6px!important}.h1-pol b{align-self:end}.h1-pol small{align-self:start}.h1-pol span{align-self:start;justify-self:start;margin-top:.2rem!important}}
@media(prefers-reduced-motion:reduce){.h1-pol,.h1-pol img,.h1-team .h1-dk{transition:none!important}}


/* Instructors section alignment refinement: equal-height, level portrait panels */
.h1-team__g{align-items:center;gap:clamp(1.5rem,3.5vw,3rem)}
.h1-fan{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(.65rem,1.2vw,1rem);padding:1.2rem 0 1.5rem;min-width:0}
.h1-pol{box-sizing:border-box;min-width:0;width:100%;flex:none;margin:0;padding:10px 10px 14px;rotate:0deg;translate:0 0;align-self:stretch;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
.h1-pol:hover,.h1-pol:focus-within{rotate:0deg;translate:0 -5px;transform:none;z-index:3}
.h1-pol::before{top:-9px;width:64px;height:19px;margin-inline-start:-32px;rotate:-2deg}
.h1-pol figure{width:100%;aspect-ratio:4/4.7;flex:0 0 auto;overflow:hidden;margin:0}
.h1-pol figure img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .55s ease}
.h1-pol:hover figure img{transform:scale(1.035)}
.h1-pol b{line-height:1.25;min-height:1.35em}
.h1-pol small{line-height:1.4;min-height:2.8em}
.h1-pol span{align-self:flex-start;margin-top:auto;padding:.35rem .65rem}
@media(max-width:900px){.h1-team__g{grid-template-columns:1fr;gap:1.2rem}.h1-fan{max-width:760px;width:100%;margin-inline:auto;gap:.8rem}.h1-team .h1-sub{max-width:55ch}}
@media(max-width:560px){.h1-fan{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;padding:1rem 0}.h1-pol{padding:6px 6px 10px;border-radius:5px}.h1-pol::before{width:42px;height:14px;top:-7px;margin-inline-start:-21px}.h1-pol figure{aspect-ratio:3/4}.h1-pol b{font-size:.84rem;margin-top:.5rem}.h1-pol small{font-size:.7rem;min-height:3.8em}.h1-pol span{font-size:.62rem;padding:.28rem .42rem}}
@media(max-width:370px){.h1-fan{gap:.35rem}.h1-pol{padding:5px 5px 8px}.h1-pol b{font-size:.76rem}.h1-pol small{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){.h1-pol,.h1-pol figure img{transition:none!important}}

/* =========================================================
   STUDENT SHOWCASE — fresh editorial gallery redesign
   Even card alignment, framed photography and clean info panels
   ========================================================= */
.h1-show{
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(125deg,#fff9eb 0%,#f5efff 58%,#edf8ff 100%);
  color:#171321;
}
.h1-show::before,.h1-show::after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(1px)}
.h1-show::before{width:300px;height:300px;inset-block-start:-190px;inset-inline-end:12%;background:rgba(243,155,203,.22)}
.h1-show::after{width:240px;height:240px;inset-block-end:-160px;inset-inline-start:30%;background:rgba(114,201,240,.2)}
.h1-show__g{grid-template-columns:minmax(235px,.72fr) minmax(0,2fr);gap:clamp(1.25rem,2.5vw,2.2rem);align-items:center}
.h1-show__t{max-width:360px}
.h1-show__t h2{max-width:10ch;font-size:clamp(2rem,3.2vw,3.15rem);line-height:1.04;letter-spacing:-.035em;color:#171321}
.h1-show__t .h1-sub{max-width:31ch;color:#655d70;line-height:1.7;margin-top:.85rem}
.h1-show__stats{gap:.65rem;margin-top:1.35rem}
.h1-show__stats li{min-height:48px;align-items:center;gap:.75rem;border:0;border-inline-start:3px solid var(--c);padding:.3rem 0 .3rem .85rem;background:rgba(255,255,255,.58);border-radius:0 12px 12px 0}
.h1-show__stats b{font-size:1.55rem;min-width:4.3rem;color:#171321;letter-spacing:-.035em}
.h1-show__stats small{font-size:.82rem;color:#655d70}
.h1-show__ctl{margin-top:1.2rem;gap:.5rem}
.h1-show__ctl button{width:42px;height:42px;border:1px solid #d6cddd;background:#fff;color:#20192a;box-shadow:0 5px 14px rgba(41,24,63,.08)}
.h1-show__ctl button:hover{background:#171321;border-color:#171321;color:#fff;translate:0 -2px}
.h1-sprog{height:5px;background:#ded6e7}
.h1-sprog i{background:linear-gradient(90deg,#f39bcb,#72c9f0,#f2b544)}
.h1-track{padding:.75rem .25rem 1.2rem;scroll-padding-inline:.25rem}
.h1-track ul{gap:1.05rem;align-items:stretch}
.h1-sc{
  flex:0 0 clamp(220px,19.5vw,258px);aspect-ratio:auto;height:350px;min-height:350px;
  display:flex;flex-direction:column;overflow:hidden;position:relative;
  border-radius:20px;border:1px solid rgba(40,27,54,.09);background:#fff;color:#171321;
  box-shadow:0 12px 30px rgba(48,31,64,.09);scroll-snap-align:start;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.h1-sc:hover{translate:0 -5px;transform:none;box-shadow:0 20px 34px rgba(48,31,64,.16);border-color:rgba(114,201,240,.65)}
.h1-sc img{position:relative;inset:auto;display:block;width:100%;height:238px;flex:0 0 238px;object-fit:cover;object-position:center 35%;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.h1-sc:hover img{scale:1;transform:scale(1.045)}
.h1-sc::after{content:"";position:absolute;inset:0 0 auto;height:238px;background:linear-gradient(180deg,rgba(12,9,20,.22),transparent 36%,rgba(12,9,20,.04));pointer-events:none}
.h1-sc__bd{top:12px;inset-inline-start:12px;max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:7px 7px 7px 2px;padding:.48rem .68rem;background:var(--c);color:#171321;font-size:.72rem;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.h1-sc div{position:relative;inset:auto;bottom:auto;display:flex;flex:1;flex-direction:column;justify-content:center;gap:.35rem;padding:.9rem 1rem 1rem;background:#fff}
.h1-sc div::before{content:"";width:30px;height:3px;border-radius:4px;background:var(--c);margin-bottom:.1rem}
.h1-sc b{font:600 1.08rem/1.22 var(--ff-d);color:#21182d}
.h1-sc small{font-size:.8rem;line-height:1.4;color:#716779}
[data-theme=dark] .h1-show{background:linear-gradient(125deg,#171321 0%,#211a30 58%,#172735 100%);color:#f8f5ff}
[data-theme=dark] .h1-show__t h2,[data-theme=dark] .h1-show__stats b{color:#fff}
[data-theme=dark] .h1-show__t .h1-sub,[data-theme=dark] .h1-show__stats small{color:#d0c7dc}
[data-theme=dark] .h1-show__stats li{background:rgba(255,255,255,.055)}
[data-theme=dark] .h1-show__ctl button{background:#282135;border-color:#574b65;color:#fff}
[data-theme=dark] .h1-show__ctl button:hover{background:var(--gold);border-color:var(--gold);color:#171321}
[data-theme=dark] .h1-sprog{background:#463b52}
[data-theme=dark] .h1-sc{background:#211a2b;border-color:rgba(255,255,255,.09);box-shadow:0 14px 30px rgba(0,0,0,.22)}
[data-theme=dark] .h1-sc div{background:#211a2b}
[data-theme=dark] .h1-sc b{color:#fff}
[data-theme=dark] .h1-sc small{color:#d2c9dd}
@media(max-width:960px){.h1-show__g{grid-template-columns:1fr;gap:1rem}.h1-show__t{max-width:680px}.h1-show__t h2{max-width:18ch}.h1-show__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.h1-show__stats li{min-width:0;flex-wrap:wrap;align-content:center;gap:.3rem;padding:.55rem .65rem}.h1-show__stats b{min-width:0;width:100%;font-size:1.4rem}.h1-show__stats small{font-size:.75rem}.h1-show__ctl{max-width:300px;margin-top:1rem}.h1-track{margin-inline:-.25rem}}
@media(max-width:560px){.h1-show__t h2{font-size:clamp(1.9rem,8vw,2.5rem)}.h1-show__stats{grid-template-columns:1fr;gap:.45rem}.h1-show__stats li{min-height:44px;flex-wrap:nowrap;padding:.35rem .65rem}.h1-show__stats b{width:auto;min-width:4.1rem;font-size:1.35rem}.h1-show__stats small{font-size:.8rem}.h1-sc{flex-basis:min(76vw,270px);height:330px;min-height:330px}.h1-sc img,.h1-sc::after{height:218px}.h1-sc img{flex-basis:218px}.h1-sc div{padding:.8rem .9rem}.h1-sc b{font-size:1.02rem}}
@media(prefers-reduced-motion:reduce){.h1-sc,.h1-sc img,.h1-show__ctl button{transition:none!important}}

/* STUDENT SHOWCASE — new performance-ticket gallery */
.h1-show{
  background:#f7f4ff;
  color:#17152a;
  padding-block:clamp(3.5rem,7vw,6.5rem);
}
.h1-show::before{width:390px;height:390px;inset-block-start:auto;inset-block-end:-250px;inset-inline-end:-100px;background:rgba(243,155,203,.24);filter:blur(0)}
.h1-show::after{width:240px;height:240px;inset-block-start:-130px;inset-block-end:auto;inset-inline-start:35%;background:rgba(114,201,240,.2);filter:blur(0)}
.h1-show__g{grid-template-columns:minmax(245px,.78fr) minmax(0,2.1fr);gap:clamp(1.5rem,3vw,3.2rem);align-items:center}
.h1-show__t{max-width:370px}
.h1-show__t h2{max-width:11ch;font-size:clamp(2.25rem,3.5vw,3.6rem);line-height:.98;letter-spacing:-.045em;color:#19152c}
.h1-show__t h2::after{content:"";display:block;width:66px;height:6px;border-radius:8px;background:linear-gradient(90deg,#f05ba8 0 50%,#f2b544 50%);margin-top:1.1rem}
.h1-show__t .h1-sub{font-size:.98rem;max-width:30ch;color:#625d72;line-height:1.75;margin-top:1rem}
.h1-show__stats{display:grid;grid-template-columns:1fr;gap:.35rem;margin-top:1.45rem}
.h1-show__stats li{display:flex;min-height:46px;align-items:center;gap:.85rem;padding:.25rem .75rem;border:0;border-inline-start:4px solid var(--c);border-radius:0 10px 10px 0;background:rgba(255,255,255,.72)}
.h1-show__stats b{min-width:4.4rem;font-size:1.55rem;line-height:1;color:#19152c;letter-spacing:-.04em}
.h1-show__stats small{font-size:.82rem;color:#625d72}
.h1-show__ctl{display:flex;align-items:center;gap:.55rem;margin-top:1.25rem}
.h1-show__ctl button{width:43px;height:43px;border:1px solid #d6cfe4;background:#fff;color:#20192f;box-shadow:0 5px 0 #e3dced;border-radius:50%;transition:transform .22s,background .22s,color .22s}
.h1-show__ctl button:hover{background:#19152c;border-color:#19152c;color:#fff;transform:translateY(-2px)}
.h1-sprog{height:4px;background:#dcd5e8;border-radius:20px;overflow:hidden}
.h1-sprog i{background:linear-gradient(90deg,#f05ba8,#f2b544,#31c7ad)}
.h1-track{padding:1rem .25rem 1.25rem;scroll-padding-inline:.25rem;overflow-x:auto;overscroll-behavior-inline:contain}
.h1-track ul{display:flex;gap:1rem;align-items:stretch;width:max-content}
.h1-sc{
  flex:0 0 clamp(340px,34vw,420px);height:245px;min-height:245px;aspect-ratio:auto;
  display:flex;flex-direction:row;align-items:stretch;position:relative;overflow:hidden;
  border:1px solid #e5deed;border-radius:18px 30px 18px 30px;background:#fff;color:#19152c;
  box-shadow:0 14px 0 rgba(44,31,73,.045),0 18px 38px rgba(44,31,73,.09);
  scroll-snap-align:start;transition:transform .35s ease,box-shadow .35s ease;
}
.h1-sc:hover{transform:translateY(-5px);translate:0 0;box-shadow:0 18px 0 rgba(44,31,73,.035),0 25px 42px rgba(44,31,73,.15);border-color:#d8cde9}
.h1-sc img{position:relative;inset:auto;display:block;flex:0 0 43%;width:43%;height:100%;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.h1-sc:hover img{transform:scale(1.055)}
.h1-sc::after{content:"";position:absolute;top:14px;bottom:14px;left:43%;width:1px;height:auto;background:repeating-linear-gradient(to bottom,#d6cde3 0 4px,transparent 4px 9px);pointer-events:none}
.h1-sc__bd{top:12px;inset-inline-start:12px;max-width:calc(43% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:6px;padding:.42rem .58rem;background:var(--c);color:#19152c;font-size:.68rem;font-weight:750;box-shadow:0 3px 12px #120d201f}
.h1-sc div{position:relative;inset:auto;bottom:auto;display:flex;flex:1;min-width:0;flex-direction:column;justify-content:center;gap:.55rem;padding:1.1rem 1rem 1.1rem 1.25rem;background:transparent}
.h1-sc div::before{content:"STAGE MOMENT";width:auto;height:auto;border-radius:0;background:none;margin:0 0 .2rem;color:#8a7c9e;font:800 .62rem/1.2 var(--ff-b, sans-serif);letter-spacing:.14em}
.h1-sc b{font:600 clamp(1.05rem,1.35vw,1.25rem)/1.18 var(--ff-d);color:#19152c}
.h1-sc small{font-size:.82rem;line-height:1.45;color:#71677f}
[data-theme=dark] .h1-show{background:linear-gradient(135deg,#171525 0%,#201b31 62%,#172d36 100%);color:#f9f5ff}
[data-theme=dark] .h1-show__t h2,[data-theme=dark] .h1-show__stats b{color:#fff}
[data-theme=dark] .h1-show__t .h1-sub,[data-theme=dark] .h1-show__stats small{color:#d0c7df}
[data-theme=dark] .h1-show__stats li{background:rgba(255,255,255,.065)}
[data-theme=dark] .h1-show__ctl button{background:#2b243b;border-color:#554967;color:#fff;box-shadow:0 5px 0 #171321}
[data-theme=dark] .h1-show__ctl button:hover{background:#f2b544;border-color:#f2b544;color:#17152a}
[data-theme=dark] .h1-sprog{background:#4b405b}
[data-theme=dark] .h1-sc{background:#282238;border-color:#494057;box-shadow:0 14px 0 rgba(0,0,0,.12),0 18px 38px rgba(0,0,0,.2);color:#fff}
[data-theme=dark] .h1-sc div{background:transparent}
[data-theme=dark] .h1-sc b{color:#fff}
[data-theme=dark] .h1-sc small{color:#d1c8de}
[data-theme=dark] .h1-sc div::before{color:#c3b4d8}
[data-theme=dark] .h1-sc::after{background:repeating-linear-gradient(to bottom,#655876 0 4px,transparent 4px 9px)}
@media(max-width:960px){
 .h1-show__g{grid-template-columns:1fr;gap:1rem}
 .h1-show__t{max-width:700px}
 .h1-show__t h2{max-width:18ch}
 .h1-show__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
 .h1-show__stats li{min-width:0;flex-wrap:wrap;align-content:center;gap:.35rem;padding:.65rem .7rem}
 .h1-show__stats b{min-width:0;width:100%;font-size:1.35rem}
 .h1-show__stats small{font-size:.75rem}
 .h1-show__ctl{max-width:320px;margin-top:1rem}
 .h1-track{margin-inline:-.25rem}
}
@media(max-width:560px){
 .h1-show{padding-block:3rem}
 .h1-show__t h2{font-size:clamp(2rem,8vw,2.7rem)}
 .h1-show__stats{grid-template-columns:1fr;gap:.4rem}
 .h1-show__stats li{min-height:42px;flex-wrap:nowrap;padding:.4rem .65rem}
 .h1-show__stats b{width:auto;min-width:4.2rem;font-size:1.3rem}
 .h1-show__stats small{font-size:.8rem}
 .h1-sc{flex-basis:min(86vw,370px);height:220px;min-height:220px;border-radius:16px 24px 16px 24px}
 .h1-sc img{flex-basis:40%;width:40%}
 .h1-sc::after{left:40%}
 .h1-sc__bd{max-width:calc(40% - 18px);font-size:.61rem;padding:.38rem .45rem;top:9px;inset-inline-start:9px}
 .h1-sc div{padding:.85rem .75rem .85rem .95rem;gap:.45rem}
 .h1-sc div::before{font-size:.54rem;letter-spacing:.1em}
 .h1-sc b{font-size:1rem}
 .h1-sc small{font-size:.73rem}
}
@media(prefers-reduced-motion:reduce){.h1-sc,.h1-sc img,.h1-show__ctl button{transition:none!important}}


/* Student Performance Highlights — dedicated editorial feature */
.h1-highlights{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(3.8rem,7vw,6.6rem);background:#fff9ef;color:#17121b}
.h1-highlights:before{content:"";position:absolute;z-index:-1;width:34rem;height:34rem;border:1px solid rgba(23,18,27,.07);border-radius:50%;right:-14rem;top:-17rem;box-shadow:0 0 0 45px rgba(23,18,27,.018),0 0 0 90px rgba(23,18,27,.018)}
.h1-highlights__head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2rem}
.h1-highlights__eyebrow{display:inline-flex;align-items:center;gap:.55rem;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800;color:#7656a7;margin-bottom:.75rem}
.h1-highlights__eyebrow i{width:8px;height:8px;border-radius:50%;background:#ed5ba6;box-shadow:0 0 0 5px rgba(237,91,166,.13)}
.h1-highlights__head h2{font-family:Fraunces,Georgia,serif;font-size:clamp(2.1rem,4.2vw,3.65rem);line-height:1.04;letter-spacing:-.045em;margin:0;max-width:720px}
.h1-highlights__head h2 em{font-weight:500;color:#8a65c4}
.h1-highlights__head p{max-width:590px;color:#6d6572;line-height:1.7;margin:.8rem 0 0}
.h1-highlights__link{flex-shrink:0;display:inline-flex;align-items:center;gap:1.1rem;text-decoration:none;color:#fff;background:#17121b;border-radius:999px;padding:.85rem 1.15rem;font-size:.82rem;font-weight:700;transition:transform .25s,background .25s}
.h1-highlights__link span{font-size:1.1rem;color:#ffc64c}.h1-highlights__link:hover{transform:translateY(-3px);background:#7656a7}
.h1-highlights__layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:1.1rem;align-items:stretch}
.h1-highlight-feature{position:relative;isolation:isolate;min-height:480px;border-radius:28px;overflow:hidden;background:#201827;color:white;box-shadow:0 18px 45px rgba(34,22,38,.12)}
.h1-highlight-feature>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.h1-highlight-feature:hover>img{transform:scale(1.045)}
.h1-highlight-feature__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,7,12,.12) 0%,rgba(9,7,12,.05) 35%,rgba(9,7,12,.9) 100%)}
.h1-highlight-feature__top{position:absolute;top:1.25rem;left:1.35rem;right:1.35rem;display:flex;justify-content:space-between;align-items:center;font-size:.68rem;font-weight:800;letter-spacing:.15em}
.h1-highlight-feature__top>span:first-child{padding:.5rem .7rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(20,15,24,.28);backdrop-filter:blur(8px)}
.h1-highlight-feature__spark{font-size:2rem;color:#ffd05d;animation:h1HighlightSpark 5s ease-in-out infinite}
.h1-highlight-feature__caption{position:absolute;left:clamp(1.2rem,3vw,2rem);right:clamp(1.2rem,3vw,2rem);bottom:clamp(1.3rem,3vw,2rem)}
.h1-highlights__pill{display:inline-flex;border-radius:5px;background:#f6c34b;color:#211827;padding:.38rem .62rem;font-size:.69rem;font-weight:800}
.h1-highlight-feature h3{font:600 clamp(1.75rem,3vw,2.8rem)/1.05 Fraunces,Georgia,serif;letter-spacing:-.03em;max-width:520px;margin:.85rem 0 .55rem}
.h1-highlight-feature p{max-width:460px;color:rgba(255,255,255,.83);line-height:1.65;margin:0;font-size:.9rem}
.h1-highlights__side{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.h1-highlight-row{position:relative;display:grid;grid-template-columns:34px 94px minmax(0,1fr) 22px;gap:.85rem;align-items:center;min-height:125px;padding:.8rem 1rem;border:1px solid #eee4dc;border-radius:20px;background:rgba(255,255,255,.82);transition:transform .25s,border-color .25s,box-shadow .25s;animation-delay:calc(var(--delay,0)*.08s)}
.h1-highlight-row:hover{transform:translateX(4px);border-color:var(--accent);box-shadow:0 12px 30px rgba(34,22,38,.07)}
.h1-highlight-row__num{font:600 1.1rem Fraunces,Georgia,serif;color:var(--accent);align-self:start;padding-top:.15rem}
.h1-highlight-row img{width:94px;height:94px;object-fit:cover;border-radius:14px;background:#eee}
.h1-highlight-row__copy{min-width:0}.h1-highlight-row__copy>span{font-size:.62rem;font-weight:800;letter-spacing:.13em;color:var(--accent)}
.h1-highlight-row__copy h3{font:600 1.15rem/1.2 Fraunces,Georgia,serif;margin:.25rem 0 .28rem;color:#211827}
.h1-highlight-row__copy p{font-size:.77rem;line-height:1.45;color:#776e7b;margin:0}
.h1-highlight-row__arrow{font-size:1.1rem;color:#7c7180;transition:transform .25s}.h1-highlight-row:hover .h1-highlight-row__arrow{transform:translate(2px,-2px);color:var(--accent)}
.h1-highlights__note{display:flex;align-items:center;gap:.8rem;padding:.45rem .5rem .1rem;color:#6d6572}.h1-highlights__note>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:#f6e8ff;color:#8a65c4;font-size:1.2rem}.h1-highlights__note p{font-size:.82rem;line-height:1.5;margin:0}.h1-highlights__note b{color:#211827}
[data-theme="dark"] .h1-highlights{background:#100d16;color:#f6efe0}
[data-theme="dark"] .h1-highlights:before{border-color:rgba(255,255,255,.08);box-shadow:0 0 0 45px rgba(255,255,255,.018),0 0 0 90px rgba(255,255,255,.018)}
[data-theme="dark"] .h1-highlights__head p,[data-theme="dark"] .h1-highlight-row__copy p,[data-theme="dark"] .h1-highlights__note{color:#c0b6c8}
[data-theme="dark"] .h1-highlights__head h2,[data-theme="dark"] .h1-highlight-row__copy h3,[data-theme="dark"] .h1-highlights__note b{color:#f6efe0}
[data-theme="dark"] .h1-highlight-row{background:#1b1623;border-color:#393041}
[data-theme="dark"] .h1-highlight-row__arrow{color:#bdb1c9}
[data-theme="dark"] .h1-highlights__note>span{background:#30213c}
[data-theme="dark"] .h1-highlights__link{background:#f4bf3d;color:#17121b}
@keyframes h1HighlightSpark{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(24deg) scale(1.12)}}
@media(max-width:900px){.h1-highlights__head{align-items:flex-start;flex-direction:column;gap:1.1rem}.h1-highlights__layout{grid-template-columns:1fr}.h1-highlight-feature{min-height:420px}.h1-highlights__side{display:grid;grid-template-columns:1fr 1fr}.h1-highlights__note{grid-column:1/-1}}
@media(max-width:600px){.h1-highlights{padding-block:3.3rem}.h1-highlights__head h2{font-size:clamp(2rem,9vw,2.8rem)}.h1-highlight-feature{min-height:370px;border-radius:22px}.h1-highlights__side{display:flex}.h1-highlight-row{grid-template-columns:23px 72px minmax(0,1fr) 16px;gap:.65rem;padding:.65rem .7rem;min-height:100px;border-radius:16px}.h1-highlight-row img{width:72px;height:76px;border-radius:11px}.h1-highlight-row__copy h3{font-size:1rem}.h1-highlight-row__copy p{font-size:.72rem}.h1-highlight-row__copy>span{font-size:.56rem}.h1-highlight-row__num{font-size:.95rem}.h1-highlight-row__arrow{font-size:.95rem}.h1-highlights__link{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.h1-highlight-feature>img,.h1-highlight-feature__spark,.h1-highlight-row,.h1-highlights__link{animation:none!important;transition:none!important}}

/* STUDENT PERFORMANCE HIGHLIGHTS — never leave this long section blank on narrow screens.
   The section is taller than a mobile viewport, so reveal observers must not hide its contents
   while waiting for an intersection threshold that may never be reached. */
.h1-js #student-highlights:not(.in) [data-rv]{opacity:1!important;transform:none!important;clip-path:none!important;visibility:visible!important}
#student-highlights{min-width:0;max-width:100%;overflow:clip}
#student-highlights .ab-wrap{min-width:0;width:100%;max-width:var(--wrap,1200px);margin-inline:auto}
@media(max-width:620px){#student-highlights{padding-inline:clamp(16px,5vw,24px)}#student-highlights .sh-head,#student-highlights .sh-stats,#student-highlights .sh-feat,#student-highlights .sh-bar,#student-highlights .sh-grid,#student-highlights .sh-cta{min-width:0;max-width:100%}#student-highlights .sh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}#student-highlights .sh-stats li{min-width:0;overflow-wrap:anywhere}#student-highlights .sh-head h2,#student-highlights .sh-lede{overflow-wrap:anywhere}}

/* STUDENT PERFORMANCE HIGHLIGHTS */
.sh{--sh-e:cubic-bezier(.2,.8,.2,1);--sh-r:20px;font-family:var(--ff-b);padding:clamp(3.5rem,7vw,6rem) var(--pad);background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--violet) 7%,var(--bg)));color:var(--text)}
.sh h2,.sh h3,.sh h4{font-family:var(--ff-d);color:var(--text);margin:0}
.sh p{margin:0}
.sh svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* header */
.sh-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.4rem 2rem;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.sh-head__t{max-width:720px}
.sh-eyebrow{display:flex;align-items:center;gap:.7rem;font:800 .74rem/1 var(--ff-b);letter-spacing:.16em;text-transform:uppercase;color:var(--t-pur)}
.sh-eyebrow:before{content:"";width:28px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--gold),var(--pink))}
.sh-head h2{margin-top:.9rem;font-size:clamp(1.9rem,3.8vw,2.8rem);font-weight:700;line-height:1.1}
.sh-lede{margin-top:1rem!important;max-width:56ch;font-size:clamp(1rem,1.3vw,1.1rem);line-height:1.7;color:var(--muted)}

/* stats */
.sh-stats{list-style:none;margin:0 0 clamp(1.4rem,2.5vw,2rem);padding:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--sh-r);box-shadow:0 10px 30px rgba(40,20,70,.06)}
.sh-stats li{padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:.35rem}
.sh-stats li+li{border-left:1px solid var(--line)}
.sh-stats b{font:700 clamp(2rem,3.6vw,2.9rem)/1 var(--ff-d);letter-spacing:-.02em;color:var(--t-pur);font-variant-numeric:tabular-nums}
.sh-stats small{font:600 .88rem/1.3 var(--ff-b);color:var(--muted)}

/* featured */
.sh-feat{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--sh-r) + 6px);overflow:hidden;box-shadow:0 22px 60px rgba(40,20,70,.1)}
.sh-feat__img{position:relative;margin:0;min-height:440px;overflow:hidden;background:linear-gradient(135deg,#d9c8ff,#ffd9ec)}
.sh-feat__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--sh-e)}
.sh-feat:hover .sh-feat__img img{transform:scale(1.05)}
.sh-badge{position:absolute;top:1.1rem;left:1.1rem;padding:.5rem .85rem;border-radius:999px;background:var(--plum);color:#fff;font:700 .74rem/1 var(--ff-b);letter-spacing:.06em;text-transform:uppercase}
.sh-badge:before{content:"";display:inline-block;width:7px;height:7px;margin-right:.5rem;border-radius:50%;background:var(--gold)}
.sh-feat__b{padding:clamp(1.5rem,3.4vw,2.8rem);display:flex;flex-direction:column;justify-content:center;gap:1rem}
.sh-kicker{font:800 .74rem/1 var(--ff-b);letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.sh-feat h3{font-size:clamp(1.6rem,2.8vw,2.3rem);font-weight:700;line-height:1.15;letter-spacing:-.02em}
.sh-feat__b>p:not(.sh-kicker){color:var(--muted);line-height:1.7}
.sh-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:.2rem 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.sh-facts>div{padding:.85rem 1rem}.sh-facts>div+div{border-left:1px solid var(--line)}
.sh-facts dt{font:700 .68rem/1 var(--ff-b);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sh-facts dd{margin:.4rem 0 0;font:700 .95rem/1.3 var(--ff-b)}
.sh-ticks{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.sh-ticks li{display:flex;align-items:flex-start;gap:.7rem;font-size:.95rem;line-height:1.5}
.sh-ticks li:before{content:"\2713";flex:none;display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border-radius:50%;background:color-mix(in srgb,var(--violet) 16%,transparent);color:var(--t-pur);font-size:.75rem;font-weight:900}
.sh-feat__a{align-self:flex-start;margin-top:.4rem}

/* filter bar */
.sh-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:clamp(2.2rem,4.5vw,3.4rem) 0 1.2rem}
.sh-bar__t{font-size:clamp(1.4rem,2.2vw,1.8rem);font-weight:700;letter-spacing:-.015em}
.sh-filters{display:flex;flex-wrap:wrap;gap:.5rem}
.sh-f{font:700 .88rem/1 var(--ff-b);padding:.65rem 1.05rem;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}
.sh-f:hover{border-color:var(--violet);transform:translateY(-2px)}
.sh-f.is-on{background:var(--text);color:var(--bg);border-color:var(--text)}
.sh-f:focus-visible{outline:3px solid var(--violet);outline-offset:3px}

/* cards */
.sh-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.sh-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--sh-r);overflow:hidden;box-shadow:0 8px 24px rgba(40,20,70,.06);}
.sh-card:hover{translate:0 -8px;box-shadow:0 24px 50px rgba(40,20,70,.16);border-color:color-mix(in srgb,var(--violet) 45%,var(--line))}
.sh-card[hidden]{display:none}
.sh-card figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#d9c8ff,#ffd9ec)}
.sh-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--sh-e)}
.sh-card:hover img{transform:scale(1.08)}
.sh-chip{position:absolute;top:.85rem;left:.85rem;padding:.42rem .75rem;border-radius:999px;font:800 .68rem/1 var(--ff-b);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.sh-chip--award{background:var(--gold);color:var(--plum)}
.sh-chip--recital{background:#6A33D8;color:#fff}
.sh-chip--showcase{background:var(--pink);color:var(--plum)}
.sh-card__b{display:flex;flex-direction:column;flex:1;gap:.6rem;padding:1.2rem 1.3rem 1.3rem}
.sh-card h4{font-size:1.25rem;font-weight:700;line-height:1.2;letter-spacing:-.01em}
.sh-card__b>p{font-size:.93rem;line-height:1.6;color:var(--muted)}
.sh-who{display:flex;align-items:center;gap:.75rem;margin-top:auto;padding-top:.95rem;border-top:1px solid var(--line)}
.sh-av{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--violet),var(--pink));color:#fff;font:800 .78rem/1 var(--ff-b);letter-spacing:.04em}
.sh-who b{display:block;font:700 .9rem/1.25 var(--ff-b)}.sh-who small{display:block;margin-top:2px;font:600 .78rem/1.2 var(--ff-b);color:var(--muted)}
.sh-empty{padding:2rem;text-align:center;color:var(--muted)}

/* closing call to action */
.sh-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem 2rem;margin-top:clamp(2rem,4vw,3rem);padding:clamp(1.5rem,3vw,2.2rem) clamp(1.5rem,3.4vw,2.6rem);border-radius:calc(var(--sh-r) + 4px);background:linear-gradient(120deg,#1b1030,#3a1a6e 60%,#5a2392);color:#fff}
.sh-cta h3{color:#fff;font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700;letter-spacing:-.015em}
.sh-cta p{margin-top:.4rem;color:rgba(255,255,255,.8)}
.sh-cta__b{display:flex;flex-wrap:wrap;gap:.7rem}
.sh .sh-cta__a{background:var(--gold);color:var(--plum)}
.sh .sh-cta__a:hover{background:#fff;color:var(--plum)}
.sh-cta .h1-link{color:#fff}

/* scroll reveal comes from the shared [data-rv] system; shUp is only used when filtering */
@keyframes shUp{from{opacity:0;transform:translateY(28px)}}

/* responsive */
@media(max-width:1000px){.sh-feat{grid-template-columns:1fr}.sh-feat__img{min-height:0;aspect-ratio:16/10}.sh-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sh-stats{grid-template-columns:repeat(2,1fr)}.sh-stats li:nth-child(3){border-left:0}.sh-stats li:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:620px){.sh-grid{grid-template-columns:1fr}.sh-facts{grid-template-columns:1fr}.sh-facts>div+div{border-left:0;border-top:1px solid var(--line)}.sh-head__a{align-self:flex-start}.sh-filters{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:.3rem;-webkit-overflow-scrolling:touch}.sh-f{white-space:nowrap}.sh-stats li{padding:1.1rem}.sh-cta__b{width:100%}.sh-cta__b>*{flex:1;justify-content:center}}
@media(prefers-reduced-motion:reduce){.sh *{animation:none!important;transition:none!important}.sh-card:hover{translate:none}.sh-f:hover{transform:none}}
[data-theme="dark"] .sh .sh-feat__a{background:var(--gold);color:var(--plum)}
[data-theme="dark"] .sh .sh-feat__a:hover{background:#fff}
/* match the page's heading weights (Fraunces is loaded at 500/600) */
.sh h2,.sh h3,.sh h4{font-weight:600}
.sh-head h2{letter-spacing:-.035em}
.sh-feat h3,.sh-bar__t,.sh-cta h3{letter-spacing:-.025em}
.sh-stats b{font-weight:600}


/* FINAL MOBILE HEADER FIX — keep brand and controls in separate, non-overlapping columns */
@media (max-width: 900px) {
  .site-header { height: 54px !important; }
  .site-header.scrolled { height: 54px !important; }
  .site-header .bar {
    width: 100% !important;
    max-width: none !important;
    padding-inline: clamp(7px, 2.4vw, 16px) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: clamp(5px, 1.8vw, 12px) !important;
    min-width: 0 !important;
  }
  .site-header .brand {
    justify-self: start !important;
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    white-space: nowrap !important;
  }
  .site-header .brand img {
    width: clamp(27px, 8vw, 32px) !important;
    height: clamp(27px, 8vw, 32px) !important;
    flex: 0 0 auto !important;
  }
  .site-header .brand__t {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 116px !important;
    overflow: hidden !important;
  }
  .site-header .brand b {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: clamp(12px, 3.8vw, 15px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.025em !important;
  }
  .site-header .brand small { display: none !important; }
  .site-header .actions {
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    min-width: max-content !important;
    gap: clamp(4px, 1.5vw, 7px) !important;
    margin: 0 !important;
  }
  .site-header .actions .btn--head,
  .site-header .actions > a.btn,
  .site-header .nav__extra { display: none !important; }
  .site-header .tool--rtl,
  .site-header .actions #theme,
  .site-header .burger {
    display: grid !important;
    place-items: center !important;
    position: relative !important;
    inset: auto !important;
    flex: 0 0 auto !important;
    width: clamp(29px, 9vw, 34px) !important;
    height: clamp(29px, 9vw, 34px) !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
  }
  .site-header .burger { gap: 3px !important; }
  .site-header .burger span { width: 15px !important; }
  .site-header .tool svg { width: 14px !important; height: 14px !important; }
  .site-header .nav { z-index: 101 !important; }
  .site-header .nav__extra { display: none !important; }
}
@media (max-width: 340px) {
  .site-header .bar { padding-inline: 6px !important; gap: 4px !important; }
  .site-header .brand { gap: 4px !important; }
  .site-header .brand img { width: 26px !important; height: 26px !important; }
  .site-header .brand__t { max-width: 90px !important; }
  .site-header .brand b { font-size: 12px !important; }
  .site-header .actions { gap: 4px !important; }
  .site-header .tool--rtl,
  .site-header .actions #theme,
  .site-header .burger { width: 28px !important; height: 28px !important; }
}


/* RESPONSIVE BRAND SUBTITLE — keep the full academy name visible and aligned */
@media (max-width: 900px) {
  .site-header,
  .site-header.scrolled {
    height: auto !important;
    min-height: 62px !important;
  }
  .site-header .bar {
    min-height: 62px !important;
    height: auto !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
  }
  .site-header .brand {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    white-space: normal !important;
    align-items: center !important;
  }
  .site-header .brand img {
    width: clamp(27px, 7.6vw, 34px) !important;
    height: clamp(27px, 7.6vw, 34px) !important;
  }
  .site-header .brand__t {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: clamp(112px, 38vw, 176px) !important;
    overflow: visible !important;
    white-space: normal !important;
    gap: 2px !important;
  }
  .site-header .brand b {
    font-size: clamp(12px, 3.6vw, 15px) !important;
    line-height: 1.05 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }
  .site-header .brand small {
    display: block !important;
    max-width: 100% !important;
    font-size: clamp(7px, 2.05vw, 9px) !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: pretty !important;
  }
}
@media (max-width: 380px) {
  .site-header,
  .site-header.scrolled,
  .site-header .bar { min-height: 64px !important; }
  .site-header .bar { padding-inline: 7px !important; gap: 5px !important; }
  .site-header .brand { gap: 4px !important; }
  .site-header .brand img { width: 27px !important; height: 27px !important; }
  .site-header .brand__t { max-width: clamp(108px, 39vw, 145px) !important; }
  .site-header .brand small { font-size: 7.5px !important; line-height: 1.12 !important; }
  .site-header .actions { gap: 4px !important; }
  .site-header .tool--rtl,
  .site-header .actions #theme,
  .site-header .burger { width: 29px !important; height: 29px !important; }
}
@media (max-width: 320px) {
  .site-header,
  .site-header.scrolled,
  .site-header .bar { min-height: 66px !important; }
  .site-header .brand__t { max-width: 112px !important; }
  .site-header .brand b { font-size: 12px !important; }
  .site-header .brand small { font-size: 7px !important; }
  .site-header .tool--rtl,
  .site-header .actions #theme,
  .site-header .burger { width: 27px !important; height: 27px !important; }
}


/* TABLET LANDSCAPE / 1024px: retain the full desktop navigation */
@media (min-width: 901px) and (max-width: 1100px) {
  .site-header, .site-header.scrolled { height: 64px !important; }
  .site-header .bar {
    width: calc(100% - 24px) !important;
    max-width: none !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    gap: 8px !important;
  }
  .site-header .brand { gap: 6px !important; min-width: 0 !important; }
  .site-header .brand img { width: 32px !important; height: 32px !important; }
  .site-header .brand__t { max-width: 150px !important; min-width: 0 !important; }
  .site-header .brand b { font-size: 15px !important; white-space: nowrap !important; }
  .site-header .brand small { display: block !important; font-size: 8px !important; line-height: 1.1 !important; white-space: nowrap !important; }
  .site-header .nav {
    position: static !important; justify-self: center !important;
    display: block !important; width: auto !important; max-height: none !important;
    overflow: visible !important; padding: 0 !important; margin: 0 !important;
    background: transparent !important; border: 0 !important; box-shadow: none !important;
    transform: none !important; opacity: 1 !important; visibility: visible !important;
  }
  .site-header .nav > ul { flex-direction: row !important; align-items: center !important; gap: 0 !important; }
  .site-header .nav__link { width: auto !important; padding: 7px 7px !important; font-size: 13px !important; justify-content: center !important; }
  .site-header .dd { position: absolute !important; top: calc(100% + .7rem) !important; left: 50% !important; display: block !important; min-width: 170px !important; margin: 0 !important; padding: .45rem !important; background: var(--surface) !important; color: var(--text) !important; box-shadow: 0 18px 40px rgba(0,0,0,.3) !important; opacity: 0 !important; visibility: hidden !important; transform: translate(-50%,8px) !important; }
  .site-header .has-dd:hover > .dd, .site-header .has-dd.open > .dd { opacity: 1 !important; visibility: visible !important; transform: translate(-50%,0) !important; }
  .site-header .dd a { padding: .6rem .75rem !important; color: var(--text) !important; }
  .site-header .actions { gap: 5px !important; }
  .site-header .tool, .site-header .tool--rtl, .site-header .actions #theme { display: grid !important; width: 30px !important; height: 30px !important; flex: 0 0 30px !important; }
  .site-header .burger { display: none !important; }
  .site-header .actions .btn--head, .site-header .actions > a.btn { display: inline-flex !important; min-height: 34px !important; padding: 0 13px !important; font-size: 13px !important; }
}

/* FINAL TABLET HEADER ALIGNMENT — equal outer gutters and balanced columns */
@media (min-width: 901px) and (max-width: 1100px) {
  .site-header,
  .site-header.scrolled {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .site-header .bar {
    width: calc(100% - 48px) !important;
    max-width: 1440px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(145px, 0.9fr) minmax(0, auto) auto !important;
    align-items: center !important;
    column-gap: clamp(8px, 1.25vw, 14px) !important;
  }
  .site-header .brand {
    justify-self: start !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: 6px !important;
  }
  .site-header .brand__t {
    min-width: 0 !important;
    max-width: 145px !important;
  }
  .site-header .brand b {
    font-size: 14px !important;
    line-height: 1.05 !important;
  }
  .site-header .brand small {
    font-size: 7.5px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    max-width: 145px !important;
  }
  .site-header .nav {
    justify-self: center !important;
    min-width: 0 !important;
    width: max-content !important;
  }
  .site-header .nav > ul {
    justify-content: center !important;
    gap: 1px !important;
    white-space: nowrap !important;
  }
  .site-header .nav__link {
    padding: 7px 6px !important;
    font-size: 12.5px !important;
    white-space: nowrap !important;
  }
  .site-header .actions {
    justify-self: end !important;
    gap: 5px !important;
    min-width: max-content !important;
    margin-inline-start: 0 !important;
  }
  .site-header .actions .btn--head,
  .site-header .actions > a.btn {
    padding-inline: 12px !important;
    font-size: 12.5px !important;
  }
}


/* Mobile navigation login: show inside the hamburger panel only */
.site-header .nav__mobile-login { display: none !important; }
@media (max-width: 900px) {
  .site-header .nav__mobile-login {
    display: block !important;
    margin: .65rem 0 .15rem !important;
    padding-top: .8rem !important;
    border-top: 1px solid rgba(255,255,255,.16) !important;
  }
  .site-header .nav__mobile-login > a.btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
  }
}


/* Corrected 1024px desktop header: balanced gutters, no nested Login in Dashboard */
@media (min-width: 901px) and (max-width: 1100px) {
  .site-header, .site-header.scrolled { width: 100% !important; box-sizing: border-box !important; }
  .site-header .bar {
    width: calc(100% - 48px) !important; max-width: 1440px !important; margin-inline: auto !important;
    padding-inline: 0 !important; box-sizing: border-box !important;
    display: grid !important; grid-template-columns: 180px minmax(0, 1fr) 126px !important;
    column-gap: 14px !important; align-items: center !important;
  }
  .site-header .brand { justify-self: start !important; min-width: 0 !important; width: 100% !important; gap: 6px !important; }
  .site-header .brand img { width: 32px !important; height: 32px !important; flex: 0 0 32px !important; }
  .site-header .brand__t { min-width: 0 !important; max-width: 142px !important; }
  .site-header .brand b { font-size: 14px !important; white-space: nowrap !important; }
  .site-header .brand small { display: block !important; font-size: 7.5px !important; line-height: 1.1 !important; white-space: normal !important; }
  .site-header .nav { justify-self: stretch !important; min-width: 0 !important; width: 100% !important; }
  .site-header .nav > ul { display: flex !important; justify-content: center !important; align-items: center !important; gap: 2px !important; white-space: nowrap !important; }
  .site-header .nav > ul > li { flex: 0 0 auto !important; }
  .site-header .nav__link { padding: 7px 5px !important; font-size: 12px !important; white-space: nowrap !important; }
  .site-header .nav__extra { display: none !important; }
  .site-header .actions { justify-self: end !important; display: flex !important; align-items: center !important; gap: 5px !important; min-width: 0 !important; }
  .site-header .actions .tool, .site-header .actions .tool--rtl, .site-header .actions #theme { width: 30px !important; height: 30px !important; flex: 0 0 30px !important; }
  .site-header .actions .btn--head, .site-header .actions > a.btn { display: inline-flex !important; min-height: 34px !important; padding: 0 11px !important; font-size: 12px !important; white-space: nowrap !important; }
  .site-header .burger { display: none !important; }
  .site-header .nav__mobile-login { display: none !important; }
}

/* Home 1 teacher portraits: consistent heights and clean responsive alignment */
.h1-team__g { align-items: center !important; }
.h1-fan { align-items: stretch !important; gap: clamp(.7rem, 1.5vw, 1.1rem) !important; }
.h1-pol,
.h1-pol:nth-child(2),
.h1-pol:nth-child(3) {
  margin-top: 0 !important;
  align-self: stretch !important;
  height: 100%;
  min-width: 0;
  display: flex !important;
  flex-direction: column !important;
}
.h1-pol figure,
.h1-pol:nth-child(2) figure {
  width: 100%;
  aspect-ratio: 4 / 4.8 !important;
  flex: 0 0 auto;
  border-radius: 16px !important;
  margin: 0 0 .9rem !important;
}
.h1-pol b { min-height: 1.4em; }
.h1-pol small { min-height: 2.8em; }
.h1-pol span { margin-top: auto !important; align-self: flex-start; }

@media (max-width: 560px) {
  .h1-team { padding-block: 3rem !important; }
  .h1-team__g { gap: 1.3rem !important; }
  .h1-fan {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .85rem !important;
    padding: .5rem 0 1rem !important;
  }
  .h1-pol,
  .h1-pol:nth-child(2),
  .h1-pol:nth-child(3) {
    display: flex !important;
    padding: 0 0 .9rem !important;
    height: 100%;
  }
  .h1-pol figure,
  .h1-pol:nth-child(2) figure {
    aspect-ratio: 4 / 4.5 !important;
    border-radius: 14px !important;
    margin-bottom: .65rem !important;
  }
  .h1-pol b { font-size: .98rem !important; line-height: 1.25; }
  .h1-pol small { font-size: .76rem !important; line-height: 1.4 !important; min-height: 2.8em; }
  .h1-pol span { font-size: .64rem !important; padding: .32rem .48rem !important; }
}
@media (max-width: 380px) {
  .h1-fan { grid-template-columns: minmax(0, 1fr) !important; gap: .85rem !important; }
  .h1-pol,
  .h1-pol:nth-child(2),
  .h1-pol:nth-child(3) {
    display: grid !important;
    grid-template-columns: 88px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    column-gap: .85rem;
    align-items: center !important;
    padding: .65rem !important;
    border: 1px solid rgba(23,19,27,.1);
    border-radius: 16px !important;
    background: rgba(255,255,255,.72) !important;
    box-shadow: 0 8px 24px rgba(39,25,16,.07) !important;
  }
  .h1-pol figure,
  .h1-pol:nth-child(2) figure {
    grid-column: 1;
    grid-row: 1 / 4;
    width: 88px;
    height: 112px;
    aspect-ratio: auto !important;
    margin: 0 !important;
    border-radius: 12px !important;
  }
  .h1-pol b { grid-column: 2; grid-row: 1; align-self: end; font-size: .94rem !important; margin: 0 0 .2rem !important; }
  .h1-pol small { grid-column: 2; grid-row: 2; align-self: start; min-height: 0 !important; font-size: .73rem !important; }
  .h1-pol span { grid-column: 2; grid-row: 3; align-self: start; justify-self: start; margin: .35rem 0 0 !important; font-size: .61rem !important; }
  .h1-pol::before { display: none !important; }
}
[data-theme="dark"] .h1-pol { background: rgba(23,18,29,.9) !important; border-color: rgba(255,255,255,.13); color: #fff6e5 !important; }


/* Home 2 rhythm accordion: reliable tap targets and fully visible mobile content */
.h2-rhy .h2-acc { position:relative; }
.h2-rhy .h2-pn { min-width:0; }
.h2-rhy .h2-pn__t { z-index:4; -webkit-tap-highlight-color:transparent; touch-action:manipulation; pointer-events:auto; }
.h2-rhy .h2-pn.on .h2-pn__t { pointer-events:none; }
.h2-rhy .h2-pn__b { visibility:hidden; }
.h2-rhy .h2-pn.on .h2-pn__b { visibility:visible; }
@media (max-width:760px) {
  .h2-rhy .h2-acc { display:flex; flex-direction:column; height:auto; gap:.65rem; }
  .h2-rhy .h2-pn { flex:0 0 78px; height:78px; min-height:78px; width:100%; transition:height .28s ease,min-height .28s ease; }
  .h2-rhy .h2-pn.on { flex:0 0 auto; height:auto; min-height:350px; padding-top:0; }
  .h2-rhy .h2-pn__t { position:absolute; inset:0 0 auto; height:78px; min-height:78px; flex-direction:row; justify-content:flex-start; align-items:center; gap:.85rem; padding:0 .9rem; text-align:left; }
  .h2-rhy .h2-pn__t b { width:42px; height:42px; }
  .h2-rhy .h2-pn__t span { writing-mode:horizontal-tb; transform:none; white-space:normal; text-align:left; line-height:1.2; font-size:clamp(.92rem,4vw,1.08rem); }
  .h2-rhy .h2-pn.on .h2-pn__t { align-items:center; padding:.8rem .9rem; pointer-events:none; }
  .h2-rhy .h2-pn.on .h2-pn__b { position:relative; inset:auto; bottom:auto; padding:5.4rem 1rem 1.15rem; opacity:1; visibility:visible; translate:none; pointer-events:auto; }
  .h2-rhy .h2-pn__b h3 { font-size:clamp(1.65rem,7vw,2.1rem); margin-bottom:.45rem; }
  .h2-rhy .h2-pn__b p { font-size:.94rem; line-height:1.5; margin-bottom:.8rem; }
  .h2-rhy .h2-ch { gap:.4rem; margin-bottom:.9rem; }
  .h2-rhy .h2-ch li { font-size:.75rem; padding:.32rem .62rem; }
  .h2-rhy .h2-pn__b a { max-width:100%; white-space:normal; line-height:1.35; padding:.72rem .95rem; }
}
@media (max-width:360px) {
  .h2-rhy .h2-pn.on { min-height:370px; }
  .h2-rhy .h2-pn__t { gap:.65rem; padding-inline:.75rem; }
  .h2-rhy .h2-pn__t b { width:38px; height:38px; }
  .h2-rhy .h2-pn.on .h2-pn__b { padding:5.15rem .85rem 1rem; }
}

/* Contact CTA mobile gutter fix: keep the copy comfortably inset from the panel edges. */
@media (max-width: 620px) {
  .cp-cta-inner {
    padding: 1.6rem clamp(16px, 5vw, 22px) 1.8rem;
    gap: 1.35rem;
    box-sizing: border-box;
    width: 100%;
  }
  .cp-cta-copy { min-width: 0; width: 100%; }
  .cp-cta-copy .ab-kicker { max-width: 100%; overflow-wrap: anywhere; }
  .cp-cta h2 { max-width: 100%; font-size: clamp(2rem, 8vw, 2.65rem); line-height: 1.04; overflow-wrap: normal; }
  .cp-cta-copy > p:not(.ab-kicker) { max-width: 100%; line-height: 1.55; overflow-wrap: anywhere; }
  .cp-cta-copy .btn { max-width: 100%; width: fit-content; white-space: normal; }
  .cp-cta-image { width: 100%; max-width: 320px; }
}
@media (max-width: 340px) {
  .cp-cta { max-width: calc(100% - 20px); }
  .cp-cta-inner { padding: 1.35rem 14px 1.5rem; }
  .cp-cta h2 { font-size: clamp(1.85rem, 8.2vw, 2.15rem); letter-spacing: -.035em; }
  .cp-cta-copy > p:not(.ab-kicker) { font-size: .92rem; }
  .cp-cta-copy .btn { padding: .8rem 1rem; }
}

/* CONTACT HERO ACTIONS — make both links clear, consistent buttons and prevent mobile overlap */
.cp-hero .ab-hero__actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.cp-hero .ab-hero__actions > a {
  box-sizing: border-box;
  min-width: 0;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  max-width: 100%;
  padding: 12px 22px;
  border-radius: 999px;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
}
.cp-hero .ab-hero__actions .cp-textlink {
  border: 1px solid rgba(255,255,255,.58);
  color: inherit;
  background: rgba(255,255,255,.045);
  font-weight: 700;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.cp-hero .ab-hero__actions .cp-textlink:hover,
.cp-hero .ab-hero__actions .cp-textlink:focus-visible {
  background: rgba(255,255,255,.11);
  border-color: var(--gold);
  transform: translateY(-2px);
}
@media (max-width: 620px) {
  .cp-hero .ab-hero__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 10px;
    margin-top: 20px;
  }
  .cp-hero .ab-hero__actions > a,
  .cp-hero .ab-hero__actions .btn,
  .cp-hero .ab-hero__actions .cp-textlink {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 13px 16px;
    justify-content: center;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}
@media (max-width: 360px) {
  .cp-hero .ab-hero__actions { gap: 9px; }
  .cp-hero .ab-hero__actions > a { font-size: .94rem; padding-inline: 12px; }
}


/* ===== Dashboard visual alignment with Home 1 ===== */
.tt-parent-app{
  --ff-d:"Fraunces",Georgia,serif;
  --ff-b:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
  --pd-ink:#0B0910;
  --pd-muted:#69616D;
  --pd-line:rgba(11,9,16,.14);
  --pd-paper:#FFF9EF;
  --pd-bg:#FFF4E2;
  --pd-pink:#F05DAB;
  --pd-blue:#438DE8;
  --pd-gold:#F5B82E;
  --pd-navy:#0B0910;
  --pd-radius:22px;
  font-family:var(--ff-b);
  background:var(--pd-bg);
  color:var(--pd-ink);
}
.tt-parent-app h1,.tt-parent-app h2,.tt-parent-app h3,
.tt-parent-app .pd-brand b,.tt-parent-app .ad-brand b{
  font-family:var(--ff-d);
}
.tt-parent-app[data-theme="dark"],[data-theme="dark"] .tt-parent-app{
  --ff-d:"Fraunces",Georgia,serif;
  --ff-b:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
  --pd-ink:#FFF6E5;
  --pd-muted:#D4C9B8;
  --pd-line:#403347;
  --pd-paper:#17121D;
  --pd-bg:#0B0910;
}
.tt-parent-app .pd-topbar,
.tt-parent-app .ad-topbar{
  position:sticky !important;
  top:0 !important;
  z-index:150 !important;
  background:var(--pd-paper);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
.tt-parent-app .pd-topbar h1,
.tt-parent-app .ad-topbar h1{font-family:var(--ff-d);font-weight:600}
.tt-parent-app .pd-nav-link,
.tt-parent-app button,
.tt-parent-app input,
.tt-parent-app select,
.tt-parent-app textarea{font-family:var(--ff-b)}
@media(max-width:900px){
  .tt-parent-app .pd-topbar,
  .tt-parent-app .ad-topbar{
    position:sticky !important;
    top:0 !important;
    min-height:76px;
    padding:12px 16px;
    z-index:180 !important;
  }
  .tt-parent-app .pd-main,
  .tt-parent-app .ad-main,
  .tt-parent-app .ad-app,
  .tt-parent-app .pd-shell{min-width:0}
}
@media(max-width:480px){
  .tt-parent-app .pd-topbar,
  .tt-parent-app .ad-topbar{gap:8px;padding:10px 12px}
  .tt-parent-app .pd-topbar h1,
  .tt-parent-app .ad-topbar h1{font-size:1.15rem;line-height:1.2}
  .tt-parent-app .pd-eyebrow,
  .tt-parent-app .ad-eyebrow{font-size:.58rem;letter-spacing:.08em}
}


/* Dashboard polish: consistent Home 1 black, gold and expressive accent palette */
.tt-parent-app .pd-welcome h2{color:#FFF6E5!important}
.tt-parent-app .pd-welcome-copy>p{color:#E7DCC9!important}
.tt-parent-app .pd-pill{background:#302719;color:#FFF6E5}
.tt-parent-app .pd-primary{background:#F5B82E;color:#0B0910}
.tt-parent-app .pd-welcome{background:#0B0910}
.tt-parent-app .pd-welcome-photo>img{mix-blend-mode:normal;opacity:.78;mask-image:linear-gradient(90deg,transparent 0%,#000 24%)}
.tt-parent-app .pd-photo-note{background:#17121D;color:#FFF6E5;border:1px solid #403347}
.tt-parent-app .pd-photo-note b{color:#FFF6E5}.tt-parent-app .pd-photo-note small{color:#D4C9B8}
.tt-parent-app .pd-nav-link.active{background:#F5B82E;color:#0B0910;box-shadow:0 9px 22px #F5B82E24}
.tt-parent-app .pd-nav-link.active .pd-nav-badge{background:#0B091017}
.tt-parent-app .pd-welcome h2 em,.tt-parent-app .pd-feature-copy h3 em{color:#F05DAB}
.tt-parent-app .ad-app{--ad-bg:#0B0910;--ad-paper:#17121D;--ad-ink:#FFF6E5;--ad-muted:#D4C9B8;--ad-line:#403347;--ad-gold:#F5B82E;--ad-pink:#F05DAB;--ad-violet:#8A4DFF;background:var(--ad-bg);color:var(--ad-ink)}
.tt-parent-app .ad-app .ad-topbar,.tt-parent-app .ad-app .ad-panel,.tt-parent-app .ad-app .ad-stat,.tt-parent-app .ad-app .ad-table-wrap,.tt-parent-app .ad-app .ad-programs article,.tt-parent-app .ad-app .ad-instructors article,.tt-parent-app .ad-app .ad-enrol-summary>div{background:var(--ad-paper);color:var(--ad-ink);border-color:var(--ad-line)}
.tt-parent-app .ad-app .ad-welcome{background:#0B0910;color:#FFF6E5}
.tt-parent-app .ad-app .ad-welcome-copy>p{color:#E7DCC9}
.tt-parent-app .ad-app .ad-kicker{color:#F5B82E}
.tt-parent-app .ad-app .ad-section-line h2,.tt-parent-app .ad-app .ad-panel-head h2,.tt-parent-app .ad-app .ad-page-intro h2,.tt-parent-app .ad-app .ad-stat strong,.tt-parent-app .ad-app .ad-table td,.tt-parent-app .ad-app .ad-programs h3,.tt-parent-app .ad-app .ad-instructors h3{color:#FFF6E5}
.tt-parent-app .ad-app .ad-topbar h1{color:#FFF6E5}
.tt-parent-app .ad-app .ad-search,.tt-parent-app .ad-app .ad-toolbar select,.tt-parent-app .ad-app .ad-panel-head select,.tt-parent-app .ad-app .ad-dialog input,.tt-parent-app .ad-app .ad-dialog select{background:#100d15;color:#FFF6E5;border-color:#4a3f51;color-scheme:dark}
.tt-parent-app .ad-app .ad-gold-btn,.tt-parent-app .ad-app .ad-nav-item.active{background:#F5B82E;color:#0B0910}
.tt-parent-app .ad-app .ad-welcome-image>img{mask-image:linear-gradient(90deg,transparent,#000 27%);opacity:.78}
/* Compact mobile header: keep menu/title/actions in one stable sticky bar */
@media(max-width:620px){
 .tt-parent-app .pd-topbar,.tt-parent-app .ad-app .ad-topbar{position:sticky!important;top:0;z-index:400!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;min-height:68px!important;gap:8px!important;padding:9px 12px!important;backdrop-filter:blur(18px)}
 .tt-parent-app .pd-top-left,.tt-parent-app .ad-app .ad-top-left{flex:1;min-width:0;gap:8px}
 .tt-parent-app .pd-topbar h1,.tt-parent-app .ad-app .ad-topbar h1{font-size:1rem!important;line-height:1.12!important;max-width:44vw;overflow-wrap:anywhere;margin:0}
 .tt-parent-app .pd-eyebrow,.tt-parent-app .ad-app .ad-eyebrow{font-size:.49rem!important;letter-spacing:.06em!important;line-height:1.2}
 .tt-parent-app .pd-top-actions,.tt-parent-app .ad-app .ad-top-actions{width:auto!important;flex:none!important;display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:5px!important}
 .tt-parent-app .pd-icon-btn,.tt-parent-app .ad-app .ad-top-icon,.tt-parent-app .ad-app .ad-notifications{width:34px;height:34px;min-width:34px;border-radius:10px}
 .tt-parent-app .pd-top-profile,.tt-parent-app .ad-app .ad-profile{display:none!important}
 .tt-parent-app .ad-app .ad-search{display:none!important}
 .tt-parent-app .ad-app .ad-mobile-menu,.tt-parent-app .pd-menu-btn{display:grid!important;place-items:center;flex:none;width:35px;height:35px;min-width:35px}
 .tt-parent-app .pd-content,.tt-parent-app .ad-app .ad-content{padding:16px 12px 20px}
}
@media(max-width:360px){
 .tt-parent-app .pd-topbar h1,.tt-parent-app .ad-app .ad-topbar h1{font-size:.88rem!important;max-width:38vw}
 .tt-parent-app .pd-eyebrow,.tt-parent-app .ad-app .ad-eyebrow{display:none}
 .tt-parent-app .pd-icon-btn,.tt-parent-app .ad-app .ad-top-icon,.tt-parent-app .ad-app .ad-notifications{width:31px;height:31px;min-width:31px}
}


/* FINAL DASHBOARD PROFILE + LIGHT THEME REPAIR */
.tt-parent-app .pd-family .pd-avatar,
.tt-parent-app .pd-family .pd-admin-avatar,
.tt-parent-app .pd-top-profile .pd-avatar,
.tt-parent-app .ad-profile img {
  width: 44px;
  height: 44px;
  min-width: 44px;
  flex: 0 0 44px;
  display: block;
  overflow: hidden;
  object-fit: cover;
  object-position: center 30%;
  border-radius: 50%;
  box-sizing: border-box;
}
.tt-parent-app .pd-family .pd-avatar img,
.tt-parent-app .pd-top-profile .pd-avatar img {
  display:block;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center 30%;
  border-radius:50%;
}
.tt-parent-app .pd-family > div:not(.pd-avatar) { min-width:0; flex:1 1 auto; }
.tt-parent-app .pd-family b,
.tt-parent-app .pd-family small,
.tt-parent-app .ad-app .pd-family b,
.tt-parent-app .ad-app .pd-family small,
.tt-parent-app .ad-profile b,
.tt-parent-app .ad-profile small {
  overflow-wrap:anywhere;
}
.tt-parent-app .ad-app .pd-family b { color:#FFF6E5 !important; }
.tt-parent-app .ad-app .pd-family small { color:#D9CBAF !important; }
.tt-parent-app .ad-profile img { object-position:center 25%; }
.tt-parent-app .ad-app .ad-profile { min-width:0; }
.tt-parent-app .ad-app .ad-profile span { min-width:0; }
.tt-parent-app .ad-app .ad-profile b { color:var(--ad-ink) !important; }
.tt-parent-app .ad-app .ad-profile small { color:var(--ad-muted) !important; }

/* Keep the brand mark and academy name inside the mobile slide-out sidebar. */
@media (max-width:900px) {
  .tt-parent-app .pd-sidebar .pd-brand,
  .tt-parent-app .ad-app .pd-sidebar .pd-brand {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    align-items:center;
    min-height:70px;
    flex:0 0 auto;
    margin-bottom:2px;
  }
  .tt-parent-app .pd-sidebar .pd-brand img,
  .tt-parent-app .ad-app .pd-sidebar .pd-brand img {
    display:block !important;
    width:42px !important;
    height:42px !important;
    flex:0 0 42px;
    object-fit:contain;
  }
  .tt-parent-app .pd-sidebar .pd-brand span,
  .tt-parent-app .ad-app .pd-sidebar .pd-brand span {
    display:block !important;
    visibility:visible !important;
    min-width:0;
  }
  .tt-parent-app .pd-sidebar .pd-brand b,
  .tt-parent-app .ad-app .pd-sidebar .pd-brand b {
    display:block !important;
    color:#FFF6E5 !important;
  }
}

/* Admin light mode: readable typography across all dashboard panels and profile labels. */
[data-theme="light"] .tt-parent-app .ad-app {
  --ad-bg:#FFF9EF;
  --ad-paper:#FFFFFF;
  --ad-ink:#17121B;
  --ad-muted:#655D69;
  --ad-line:rgba(23,18,27,.16);
  background:var(--ad-bg) !important;
  color:var(--ad-ink) !important;
}
[data-theme="light"] .tt-parent-app .ad-app .ad-main,
[data-theme="light"] .tt-parent-app .ad-app .ad-content {
  background:var(--ad-bg) !important;
  color:var(--ad-ink) !important;
}
[data-theme="light"] .tt-parent-app .ad-app .ad-topbar,
[data-theme="light"] .tt-parent-app .ad-app .ad-panel,
[data-theme="light"] .tt-parent-app .ad-app .ad-stat,
[data-theme="light"] .tt-parent-app .ad-app .ad-table-wrap,
[data-theme="light"] .tt-parent-app .ad-app .ad-programs article,
[data-theme="light"] .tt-parent-app .ad-app .ad-instructors article,
[data-theme="light"] .tt-parent-app .ad-app .ad-enrol-summary>div {
  background:#FFFFFF !important;
  color:#17121B !important;
  border-color:rgba(23,18,27,.15) !important;
}
[data-theme="light"] .tt-parent-app .ad-app .ad-topbar h1,
[data-theme="light"] .tt-parent-app .ad-app .ad-topbar h2,
[data-theme="light"] .tt-parent-app .ad-app .ad-content h2,
[data-theme="light"] .tt-parent-app .ad-app .ad-content h3,
[data-theme="light"] .tt-parent-app .ad-app .ad-content b,
[data-theme="light"] .tt-parent-app .ad-app .ad-content strong,
[data-theme="light"] .tt-parent-app .ad-app .ad-profile b {
  color:#17121B !important;
}
[data-theme="light"] .tt-parent-app .ad-app .ad-content p,
[data-theme="light"] .tt-parent-app .ad-app .ad-content small,
[data-theme="light"] .tt-parent-app .ad-app .ad-updated,
[data-theme="light"] .tt-parent-app .ad-app .ad-profile small {
  color:#655D69 !important;
}
[data-theme="light"] .tt-parent-app .ad-app .ad-welcome,
[data-theme="light"] .tt-parent-app .ad-app .ad-welcome-copy {
  color:#17121B;
}
[data-theme="light"] .tt-parent-app .ad-app .ad-welcome-copy p { color:#514957 !important; }
[data-theme="light"] .tt-parent-app .ad-app .ad-welcome-copy h2 { color:#17121B !important; }
[data-theme="light"] .tt-parent-app .ad-app .ad-welcome-copy h2 em { color:#B87A00 !important; }
[data-theme="light"] .tt-parent-app .ad-app input,
[data-theme="light"] .tt-parent-app .ad-app select,
[data-theme="light"] .tt-parent-app .ad-app textarea {
  color:#17121B !important;
  background:#FFFFFF !important;
  border-color:rgba(23,18,27,.2) !important;
}
[data-theme="light"] .tt-parent-app .ad-app input::placeholder,
[data-theme="light"] .tt-parent-app .ad-app textarea::placeholder { color:#77707B !important; }


/* =====================================================================
   FINAL DASHBOARD FIXES  (keep this block at the very end of the file)
   1. Admin dashboard – every text colour in LIGHT mode
   2. Mobile / tablet sidebar – logo + name always above the top bar
   3. Responsive, face-aware images in both dashboards
   ===================================================================== */

/* ---------- 1. ADMIN · LIGHT MODE ---------- */
html:not([data-theme="dark"]) .tt-parent-app .ad-app{
  --ad-bg:#FFF6E5;--ad-paper:#FFFFFF;--ad-ink:#0B0910;--ad-muted:#5B5560;--ad-line:rgba(11,9,16,.14);
  --pd-ink:#0B0910;--pd-muted:#5B5560;--pd-line:rgba(11,9,16,.14);--pd-paper:#FFFFFF;--pd-bg:#FFF6E5;
  background:var(--ad-bg);color:var(--ad-ink);color-scheme:light}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-main,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-content{background:var(--ad-bg);color:var(--ad-ink)}

/* top bar */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-topbar{background:#fff;color:#0B0910;border-color:var(--ad-line)}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-topbar h1,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-profile b{color:#0B0910}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-topbar h1 span{color:#B3236F}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-eyebrow,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-profile small{color:#5B5560}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-top-actions .pd-icon-btn,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-mobile-menu{background:#fff;color:#0B0910;border-color:var(--ad-line)}

/* headings, kickers, body copy on light surfaces */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-section-line h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-panel-head h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-page-intro h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-programs h3,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-instructors h3,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-stat strong,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-enrol-summary strong{color:#0B0910}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-kicker,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-link-btn,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-footer b,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-bars>div>span strong{color:#7A5200}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-page-intro p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-updated,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-demo-note,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-stat small,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-stat p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-request small,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-class-list small,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-class-list article>span,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-table-person small,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-programs p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-instructors p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-events article>div small,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-enrol-summary small,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-muted-action,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-footer{color:#5B5560}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-stat p b{color:#15724D}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-stat-spark{color:#A8266F}

/* cards / panels */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-panel,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-stat,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-table-wrap,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-programs article,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-instructors article,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-enrol-summary>div{background:#fff;color:#0B0910;border-color:var(--ad-line)}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-request>div b,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-class-list b,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-table-person b,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-events article>div b,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-bars>div>span b,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-row-arrow{color:#0B0910}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-today-date{background:#FFF0C8;color:#0B0910}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-events article time{background:#FFF0C8;color:#0B0910}

/* tables */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-table td{color:#0B0910;border-color:var(--ad-line)}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-table th{background:#F5EBDD;color:#3F3543}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-progress{background:#E9E0EE}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-action{background:transparent;color:#0B0910;border-color:rgba(11,9,16,.28)}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-action.approve{background:#F5B82E;border-color:#F5B82E;color:#0B0910}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-action.decline{color:#A81F57}

/* status chips */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-status.pending{background:#FFF0C8;color:#7A5200}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-status.review{background:#ECE2FF;color:#4F23A3}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-status.approved{background:#DFF6E8;color:#14633F}

/* search, selects, dialog */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-search{background:#fff;border-color:rgba(11,9,16,.22)}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-search>span{color:#5B5560}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-search input,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-toolbar select,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-panel-head select{background:#fff;color:#0B0910;border-color:rgba(11,9,16,.22);color-scheme:light}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-search input{background:transparent;border:0}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-search input::placeholder{color:#6B6470;opacity:1}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog{background:#fff;color:#0B0910;border-color:var(--ad-line)}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog label,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog-close{color:#0B0910}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog p{color:#5B5560}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog input,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-dialog select{background:#FFF6E5;color:#0B0910;border-color:rgba(11,9,16,.22);color-scheme:light}

/* dark feature panels (dark in BOTH themes, so their text stays light) */
.tt-parent-app .ad-app .ad-welcome,
.tt-parent-app .ad-app .ad-attendance-hero{background:#0B0910;color:#FFF6E5}
.tt-parent-app .ad-app .ad-feature-strip,
.tt-parent-app .ad-app .ad-recital-banner{background:#17121F;color:#FFF6E5}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-welcome h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-feature-strip h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-recital-banner h2,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-hero strong{color:#FFF6E5}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-welcome h2 em,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-recital-banner h2 em,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-hero strong small{color:#F5B82E}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-welcome-copy>p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-feature-strip p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-recital-banner p,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-hero p{color:#E7DCC9}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-welcome .ad-overline{color:#2B2433;background:#fff}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-welcome .ad-kicker,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-feature-strip .ad-kicker,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-recital-banner .ad-kicker,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-hero .ad-kicker,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-trend{color:#F5B82E}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-gold-btn{background:#F5B82E;color:#0B0910}

/* ---------- 2. SIDEBAR ABOVE THE TOP BAR (parent + admin, tablet/mobile) ---------- */
@media (max-width:940px){
  .tt-parent-app .pd-sidebar,
  .tt-parent-app .ad-app .pd-sidebar{z-index:600}
  .tt-parent-app .pd-overlay.is-visible,
  .tt-parent-app .ad-app .pd-overlay.is-visible{z-index:550}
  .tt-parent-app .pd-sidebar .pd-brand{flex:none;min-height:70px}
  .tt-parent-app .pd-sidebar .pd-brand img{flex:none;display:block}
  .tt-parent-app .pd-sidebar .pd-brand span{display:block;min-width:0;white-space:nowrap}
  .tt-parent-app .pd-sidebar .pd-brand b,
  .tt-parent-app .pd-sidebar .pd-brand small{color:inherit}
  .tt-parent-app .pd-sidebar .pd-brand b{color:#fff}
  .tt-parent-app .pd-sidebar .pd-brand small{color:#F5B82E}
}

/* ---------- 3. RESPONSIVE, FACE-AWARE IMAGES ---------- */
.tt-parent-app img{max-width:100%}

/* round avatars (children + people) – keep the face in the circle */
.tt-parent-app .ad-request>img,
.tt-parent-app .ad-table-person img{width:40px;height:40px;aspect-ratio:1/1;object-fit:cover;object-position:50% 18%;flex:none}
.tt-parent-app .ad-profile img,
.tt-parent-app .pd-family .pd-admin-avatar,
.tt-parent-app .pd-avatar img{object-fit:cover;object-position:50% 22%}
.tt-parent-app img[src*="teacher1"]{object-position:45% 14%}
.tt-parent-app .pd-avatar img[src*="parent1"]{object-position:54% 38%}
.tt-parent-app .ad-table-person img[src*="parent2"]{object-position:50% 25%}

/* wide hero / banner photos – landscape artwork, subjects kept in frame */
.tt-parent-app .ad-welcome-image>img{object-fit:cover;object-position:62% 30%}
.tt-parent-app .ad-feature-strip>img{width:clamp(84px,14vw,120px);height:auto;aspect-ratio:4/3;object-fit:cover;object-position:60% 30%;border-radius:10px}
.tt-parent-app .ad-attendance-hero>img{object-fit:cover;object-position:60% 28%}
.tt-parent-app .ad-recital-banner>img{object-fit:cover;object-position:60% 30%}

/* programme + instructor cards: ratio-based, never a fixed pixel crop */
.tt-parent-app .ad-programs article>img{width:100%;height:auto;aspect-ratio:16/11;object-fit:cover;object-position:50% 28%;display:block}
.tt-parent-app .ad-instructors article>img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;display:block}
.tt-parent-app .ad-instructors article>img[src*="teacher1"]{object-position:50% 10%}
.tt-parent-app .ad-instructors article>img[src*="malemaster1"]{object-position:40% 0%}
.tt-parent-app .ad-instructors article>img[src*="teacher2"]{object-position:50% 58%}

/* parent dashboard */
.tt-parent-app .pd-welcome-photo>img{object-fit:cover;object-position:62% 30%}
.tt-parent-app .pd-side-feature>img{object-fit:cover;object-position:50% 28%}
.tt-parent-app .pd-child>img{object-fit:cover;object-position:50% 18%}
.tt-parent-app .pd-detail-image{height:auto;aspect-ratio:2/1;max-height:280px;overflow:hidden}
.tt-parent-app .pd-detail-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.tt-parent-app .pd-enrol-aside>img{width:100%;height:auto;aspect-ratio:16/10;max-height:300px;object-fit:cover;object-position:50% 28%;display:block}
.tt-parent-app .pd-attendance-art img{object-fit:cover;object-position:50% 30%}
.tt-parent-app .pd-calendar-banner img{object-fit:cover;object-position:55% 30%}

@media (max-width:940px){
  .tt-parent-app .pd-side-feature{min-height:0;aspect-ratio:16/10}
  .tt-parent-app .ad-recital-banner{grid-template-columns:1fr}
  .tt-parent-app .ad-recital-banner>img{height:auto;min-height:0;aspect-ratio:16/9}
}
@media (max-width:620px){
  .tt-parent-app .ad-welcome{grid-template-columns:1fr}
  .tt-parent-app .ad-welcome-image{min-height:0;aspect-ratio:4/3}
  .tt-parent-app .ad-welcome-image>img{mask-image:linear-gradient(180deg,transparent 0%,#000 22%);opacity:.9}
  .tt-parent-app .ad-attendance-hero{flex-direction:column;align-items:stretch;gap:0}
  .tt-parent-app .ad-attendance-hero>img{width:100%;height:auto;aspect-ratio:16/9;mask-image:linear-gradient(180deg,transparent,#000 25%)}
  .tt-parent-app .ad-programs,
  .tt-parent-app .ad-instructors{grid-template-columns:1fr}
  .tt-parent-app .ad-instructors article>img{aspect-ratio:4/4.2}
  .tt-parent-app .pd-welcome-photo{min-height:0;aspect-ratio:4/3}
  .tt-parent-app .pd-calendar-banner img{width:100%;max-width:none;height:auto;aspect-ratio:16/9;transform:none}
}

/* Dark feature panels: beat the earlier blanket "dark text" light-mode rules (which use !important) */
html:not([data-theme="dark"]) .tt-parent-app .ad-app :is(.ad-welcome,.ad-feature-strip,.ad-recital-banner,.ad-attendance-hero) :is(h2,h3,strong,b){color:#FFF6E5 !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app :is(.ad-welcome,.ad-feature-strip,.ad-recital-banner,.ad-attendance-hero) :is(p,small){color:#E7DCC9 !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-attendance-hero strong small{color:#F5B82E !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-welcome .ad-welcome-copy h2 em,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-recital-banner h2 em{color:#F5B82E !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app :is(.ad-welcome,.ad-feature-strip,.ad-recital-banner,.ad-attendance-hero) .ad-kicker{color:#F5B82E !important}
/* small light chips that sit inside the dark panels keep dark text */
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-image-caption :is(b,small){color:#0B0910 !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-image-caption small{color:#5B5560 !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-gold-btn,
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-gold-btn span{color:#0B0910 !important}
html:not([data-theme="dark"]) .tt-parent-app .ad-app .ad-round-stamp{color:#0B0910 !important}

/* ---------- PARENT DASHBOARD · LIGHT MODE contrast repairs ---------- */
/* dark panels keep light text */
html:not([data-theme="dark"]) .tt-parent-app .pd-enrol-aside-copy h3,
html:not([data-theme="dark"]) .tt-parent-app .pd-calendar-banner h3{color:#FFF6E5 !important}
html:not([data-theme="dark"]) .tt-parent-app .pd-enrol-aside-copy p,
html:not([data-theme="dark"]) .tt-parent-app .pd-enrol-aside-copy li,
html:not([data-theme="dark"]) .tt-parent-app .pd-calendar-banner p,
html:not([data-theme="dark"]) .tt-parent-app .pd-calendar-location{color:#E7DCC9 !important}
html:not([data-theme="dark"]) .tt-parent-app .pd-enrol-aside-copy .pd-kicker,
html:not([data-theme="dark"]) .tt-parent-app .pd-calendar-banner .pd-kicker{color:#F5B82E !important}
html:not([data-theme="dark"]) .tt-parent-app .pd-enrol-aside-copy li::marker{color:#F5B82E}
/* dark date tiles */
html:not([data-theme="dark"]) .tt-parent-app .pd-date-tile.blue-tile b,
html:not([data-theme="dark"]) .tt-parent-app .pd-date-tile.blue-tile small,
html:not([data-theme="dark"]) .tt-parent-app .pd-date-tile.gold-tile b,
html:not([data-theme="dark"]) .tt-parent-app .pd-date-tile.gold-tile small,
html:not([data-theme="dark"]) .tt-parent-app .pd-event-date b,
html:not([data-theme="dark"]) .tt-parent-app .pd-event-date small{color:#F5B82E}
/* faint labels / arrows / accents on cream */
html:not([data-theme="dark"]) .tt-parent-app .pd-event-type{color:#7A5200}
html:not([data-theme="dark"]) .tt-parent-app .pd-stat-mark,
html:not([data-theme="dark"]) .tt-parent-app .pd-agenda-arrow{color:#6B6470}
html:not([data-theme="dark"]) .tt-parent-app .pd-child-label.pink-label,
html:not([data-theme="dark"]) .tt-parent-app #pdCrumb,
html:not([data-theme="dark"]) .tt-parent-app .pd-text-btn span,
html:not([data-theme="dark"]) .tt-parent-app label span,
html:not([data-theme="dark"]) .tt-parent-app .pd-footer b,
html:not([data-theme="dark"]) .tt-parent-app footer b{color:#B3236F}
html:not([data-theme="dark"]) .tt-parent-app .pd-event-type.rehearsal,
html:not([data-theme="dark"]) .tt-parent-app .pd-event-type.recital{color:#F5B82E}
html:not([data-theme="dark"]) .tt-parent-app .pd-text-btn span,
html:not([data-theme="dark"]) .tt-parent-app .pd-side-feature+*{ }
/* dark theme: gold text that was too deep on dark tiles/panels */
[data-theme="dark"] .tt-parent-app .pd-date-tile b,
[data-theme="dark"] .tt-parent-app .pd-date-tile small,
[data-theme="dark"] .tt-parent-app .pd-event-date b,
[data-theme="dark"] .tt-parent-app .pd-event-date small,
[data-theme="dark"] .tt-parent-app .pd-enrol-aside-copy .pd-kicker,
[data-theme="dark"] .tt-parent-app .pd-calendar-banner .pd-kicker,
[data-theme="dark"] .tt-parent-app .pd-child-label.blue-label{color:#F5B82E !important}
[data-theme="dark"] .tt-parent-app .pd-stat-icon.blue,
[data-theme="dark"] .tt-parent-app .pd-stat-icon.gold{color:#F5B82E !important}

/* ---------- ADMIN · DARK MODE leftovers ---------- */
[data-theme="dark"] .tt-parent-app .ad-app .ad-link-btn,
[data-theme="dark"] .tt-parent-app .ad-app .ad-attendance-bars>div>span strong{color:#F5B82E !important}
[data-theme="dark"] .tt-parent-app .ad-app .ad-action.decline{color:#FF8FB8 !important}
[data-theme="dark"] .tt-parent-app .ad-app .ad-events article time b,
[data-theme="dark"] .tt-parent-app .ad-app .ad-events article time small{color:#0B0910 !important}


/* ===== Consolidated from age.css ===== */
/* Home 1: "Find the right class" — age finder + expanding stage panels */
.ag{--ease:cubic-bezier(.2,.8,.2,1);position:relative;isolation:isolate;overflow:hidden;background:#150E29;color:#fff;padding:clamp(3rem,7vw,5.2rem) var(--pad)}
.ag::before,.ag::after{content:"";position:absolute;z-index:-1;border-radius:50%}
.ag::before{width:34rem;height:34rem;left:-12rem;top:-14rem;background:radial-gradient(circle,rgba(138,77,255,.5),transparent 68%)}
.ag::after{width:30rem;height:30rem;right:-10rem;bottom:-12rem;background:radial-gradient(circle,rgba(245,184,46,.28),transparent 68%)}
.ag-dots{position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(255,255,255,.1) 1.4px,transparent 1.5px) 0 0/26px 26px;mask-image:linear-gradient(180deg,#000,transparent 70%)}
.ag-w{max-width:var(--max);margin-inline:auto}
.ag *{box-sizing:border-box}
.ag button{font:inherit;cursor:pointer}
.ag-rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease) calc(var(--i,0)*.1s),transform .9s var(--ease) calc(var(--i,0)*.1s)}
.ag-js .ag-rv:not(.in){opacity:0}
.ag:not(.ag-ready) .ag-rv{opacity:1;transform:none}
.ag-ready .ag-rv.in{opacity:1;transform:none}
.ag-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.6rem}
.ag-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .9rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:var(--gold);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.ag-tag svg{width:1em;height:1em;fill:currentColor}
.ag h2{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.1;margin:.7rem 0 .35rem;color:#fff}
.ag-sub{margin:0;color:rgba(255,255,255,.78);max-width:34rem}
.ag-all{display:inline-flex;align-items:center;gap:.5rem;color:var(--gold);font-weight:700;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:.15rem}
.ag-all svg{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.ag-all:hover svg{transform:translateX(4px)}

/* age finder */
.ag-find{--gc:var(--teal);display:grid;grid-template-columns:auto 1fr;gap:1rem clamp(1rem,3vw,2rem);align-items:center;padding:1rem clamp(1rem,2.5vw,1.6rem);margin-bottom:1.1rem;border-radius:26px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px)}
.ag-bub{display:grid;place-items:center;width:5.6rem;height:5.6rem;border-radius:50%;background:var(--gc);color:#0B0910;text-align:center;line-height:1;box-shadow:0 0 0 6px color-mix(in srgb,var(--gc) 30%,transparent);transition:background .4s,box-shadow .4s,transform .3s}
.ag-bub.pop{animation:agPop .45s var(--ease)}
@keyframes agPop{40%{transform:scale(1.14) rotate(-6deg)}}
.ag-bub b{display:block;font-family:var(--ff-d);font-size:2.2rem;font-weight:600}
.ag-bub small{display:block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:-.15rem}
.ag-ctl{min-width:0}
.ag-q{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;margin-bottom:.8rem;font-weight:600}
.ag-q span{color:rgba(255,255,255,.8)}
.ag-q b{color:var(--gc);transition:color .4s}
.ag-range{-webkit-appearance:none;appearance:none;display:block;width:100%;height:14px;border-radius:14px;outline:0;cursor:pointer;background:linear-gradient(90deg,var(--teal) 0 19.2%,var(--gold) 19.2% 42.3%,var(--pink) 42.3% 73.1%,var(--violet) 73.1% 100%)}
.ag-range::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;border-radius:50%;background:#fff;border:4px solid var(--gc);box-shadow:0 4px 14px rgba(0,0,0,.5);transition:transform .2s,border-color .3s}
.ag-range::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:4px solid var(--gc);box-shadow:0 4px 14px rgba(0,0,0,.5)}
.ag-range:active::-webkit-slider-thumb{transform:scale(1.15)}
.ag-range:focus-visible{outline:3px solid #fff;outline-offset:6px}
.ag-labels{display:flex;margin-top:.55rem;font-size:.76rem;font-weight:700;color:rgba(255,255,255,.7)}
.ag-labels span:nth-child(1){width:19.2%}.ag-labels span:nth-child(2){width:23.1%}.ag-labels span:nth-child(3){width:30.8%}.ag-labels span:nth-child(4){width:26.9%}

/* expanding panels */
.ag-row{display:flex;gap:.8rem;height:clamp(440px,52vw,520px);margin:0;padding:0;list-style:none}
.ag-p{--c:var(--teal);position:relative;flex:1 1 0;min-width:0;border-radius:28px;overflow:hidden;background:var(--c);transition:flex .75s var(--ease)}
.ag-p.on{flex:3.4 1 0}
.ag-p>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.2s var(--ease)}
.ag-p.on>img{transform:scale(1)}
.ag-p::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 38%,transparent) 0%,rgba(11,9,16,.35) 40%,rgba(11,9,16,.92) 100%);transition:opacity .5s}
.ag-p.on::before{background:linear-gradient(180deg,transparent 25%,rgba(11,9,16,.55) 58%,rgba(11,9,16,.95) 100%)}
.ag-p__t{position:absolute;inset:0;z-index:3;width:100%;background:none;border:0;color:#fff;text-align:left;padding:0;border-radius:inherit}
.ag-p__t:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.ag-n{position:absolute;left:1rem;top:1rem;padding:.35rem .8rem;border-radius:999px;background:var(--c);color:#0B0910;font-weight:800;font-size:.85rem;white-space:nowrap}
.ag-v{position:absolute;left:50%;bottom:1.2rem;translate:-50% 0;writing-mode:vertical-rl;rotate:180deg;font-family:var(--ff-d);font-size:1.5rem;font-weight:600;white-space:nowrap;transition:opacity .35s}
.ag-p.on .ag-v{opacity:0;pointer-events:none}
.ag-big{position:absolute;right:1rem;top:.6rem;z-index:2;font-family:var(--ff-d);font-weight:600;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.6);opacity:0;transform:translateY(-14px);transition:opacity .5s .2s,transform .6s var(--ease) .2s;pointer-events:none}
.ag-p.on .ag-big{opacity:1;transform:none}
.ag-c{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:1.4rem clamp(1.1rem,2.5vw,1.8rem) 1.5rem;opacity:0;transform:translateY(22px);transition:opacity .4s,transform .5s var(--ease);pointer-events:none}
.ag-p.on .ag-c{opacity:1;transform:none;transition:opacity .6s .3s,transform .7s var(--ease) .3s;pointer-events:auto}
.ag-c>*{max-width:30rem}
.ag-age{display:inline-block;padding:.3rem .85rem;border-radius:999px;background:var(--c);color:#0B0910;font-weight:800;font-size:.8rem}
.ag-c h3{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.1;margin:.7rem 0 .4rem;color:#fff}
.ag-c p{margin:0 0 .8rem;color:rgba(255,255,255,.88);font-size:.98rem}
.ag-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1rem;padding:0;list-style:none}
.ag-chips li{padding:.3rem .8rem;border-radius:999px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);font-size:.8rem;font-weight:600}
.ag-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem}
.ag-len{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:rgba(255,255,255,.85)}
.ag-len svg{width:1.2em;height:1.2em;fill:none;stroke:var(--c);stroke-width:2.2;stroke-linecap:round}
.ag-len b{color:#fff}
.ag-cta{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.2rem;border-radius:999px;background:var(--c);color:#0B0910;font-weight:700;text-decoration:none;transition:transform .3s,box-shadow .3s}
.ag-cta:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.4)}
.ag-cta svg{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ag-spk{position:absolute;z-index:2;width:var(--s);height:var(--s);background:var(--c);right:var(--x);top:var(--y);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);opacity:0;transition:opacity .5s .5s}
.ag-p.on .ag-spk{opacity:.9;animation:agTw 3s ease-in-out infinite alternate}
@keyframes agTw{to{transform:rotate(40deg) scale(1.3)}}

@media (max-width:860px){
 .ag-row{flex-direction:column;height:auto}
 .ag-p{flex:none;height:76px;transition:height .7s var(--ease)}
 .ag-p.on{flex:none;height:min(470px,128vw)}
 .ag-v{writing-mode:horizontal-tb;rotate:none;left:9rem;translate:0 0;bottom:auto;top:50%;transform:translateY(-50%);font-size:1.25rem}
 .ag-p.on .ag-v{opacity:0}
 .ag-n{top:50%;transform:translateY(-50%)}
 .ag-big{font-size:2.6rem}
}
@media (max-width:560px){
 .ag-find{grid-template-columns:1fr;justify-items:start}
 .ag-bub{width:4.6rem;height:4.6rem}
 .ag-bub b{font-size:1.8rem}
 .ag-labels{font-size:.68rem}
}
@media (prefers-reduced-motion:reduce){
 .ag *,.ag *::before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
 .ag-rv{opacity:1!important;transform:none!important}
}

/* Responsive correction: age-group stage panels and CTA never clip on narrow phones */
@media (max-width: 560px) {
  .ag { padding-inline: clamp(12px, 4vw, 20px); }
  .ag-row { gap: .65rem; }
  .ag-p { border-radius: 22px; }
  .ag-p.on { height: 510px; }
  .ag-c { left: 0; right: 0; padding: 1rem 1rem 1.1rem; }
  .ag-c > * { max-width: 100%; }
  .ag-c h3 { font-size: clamp(1.45rem, 6vw, 1.8rem); margin-top: .55rem; }
  .ag-c p { font-size: .9rem; line-height: 1.48; margin-bottom: .7rem; }
  .ag-chips { gap: .35rem; margin-bottom: .75rem; }
  .ag-chips li { font-size: .73rem; padding: .28rem .6rem; }
  .ag-foot { display: flex; flex-direction: column; align-items: stretch; gap: .7rem; }
  .ag-len { flex-wrap: wrap; }
  .ag-cta { display: flex; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; justify-content: space-between; white-space: normal; gap: .65rem; padding: .75rem .95rem; line-height: 1.35; }
  .ag-cta svg { flex: 0 0 1.05em; }
}
@media (max-width: 380px) {
  .ag-p.on { height: 530px; }
  .ag-c { padding-inline: .85rem; }
  .ag-age { font-size: .74rem; }
  .ag-c h3 { font-size: 1.45rem; }
  .ag-chips li { font-size: .69rem; padding: .26rem .5rem; }
  .ag-cta { font-size: .92rem; }
}

/* Home 1 mobile repair: keep age labels clear of active content and let panels grow to fit text. */
@media (max-width: 560px) {
  .ag-row { align-items: stretch; overflow: visible; }
  .ag-p { width: 100%; min-width: 0; }
  .ag-p.on {
    height: auto;
    min-height: 530px;
    display: flex;
    align-items: flex-end;
  }
  .ag-p.on .ag-n,
  .ag-p.on .ag-v { opacity: 0; visibility: hidden; }
  .ag-p.on .ag-c {
    position: relative;
    inset: auto;
    width: 100%;
    min-width: 0;
    margin-top: 150px;
    padding: 1rem .9rem 1rem;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    transition: none;
    overflow-wrap: anywhere;
  }
  .ag-p.on .ag-c > * { max-width: 100%; min-width: 0; }
  .ag-p.on .ag-c h3 { overflow-wrap: anywhere; }
  .ag-p.on .ag-c p { overflow-wrap: anywhere; }
  .ag-p.on .ag-chips { min-width: 0; }
  .ag-p.on .ag-chips li { max-width: 100%; }
  .ag-p.on .ag-foot { width: 100%; min-width: 0; }
  .ag-p.on .ag-len { min-width: 0; flex-wrap: wrap; }
  .ag-p.on .ag-cta {
    width: 100%; max-width: 100%; min-width: 0;
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; justify-content: stretch;
    white-space: normal; overflow-wrap: anywhere; word-break: normal;
    padding: .75rem .85rem; line-height: 1.35;
  }
  .ag-p.on .ag-cta svg { width: 1.05em; height: 1.05em; min-width: 1.05em; }
}
@media (max-width: 380px) {
  .ag { padding-inline: 12px; }
  .ag-p.on { min-height: 0; }
  .ag-p.on .ag-c { margin-top: 135px; padding-inline: .8rem; }
  .ag-p.on .ag-age { font-size: .72rem; }
  .ag-p.on .ag-c h3 { font-size: 1.42rem; }
  .ag-p.on .ag-c p { font-size: .88rem; line-height: 1.45; }
  .ag-p.on .ag-chips { gap: .3rem; }
  .ag-p.on .ag-chips li { font-size: .68rem; padding: .25rem .45rem; }
  .ag-p.on .ag-cta { font-size: .88rem; }
}
@media (min-width: 561px) and (max-width: 860px) {
  .ag-p.on { height: auto; min-height: 470px; display: flex; align-items: flex-end; }
  .ag-p.on .ag-n, .ag-p.on .ag-v { opacity: 0; visibility: hidden; }
  .ag-p.on .ag-c { position: relative; inset: auto; width: 100%; margin-top: 145px; opacity: 1; transform: none; pointer-events: auto; }
  .ag-p.on .ag-cta { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}


/* ===== Consolidated from instructors.css ===== */
/* Instructors page: closing CTA */
.in-cta{background:#0B0910;color:#fff;padding:clamp(3rem,7vw,5.5rem) var(--pad);overflow:hidden;position:relative}
.in-cta::before{content:"";position:absolute;width:520px;height:520px;right:-120px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(138,77,255,.45),transparent 70%);animation:inGlow 7s ease-in-out infinite alternate}
@keyframes inGlow{to{transform:translate(-60px,50px) scale(1.15)}}
.in-cta__g{max-width:var(--max);margin-inline:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:2.5rem;align-items:center;position:relative}
.in-cta h2{font-size:clamp(1.9rem,3.8vw,3rem);max-width:17ch}
.in-cta p{color:#d9d3e3;margin-top:.8rem;max-width:46ch}
.in-pick{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}
.in-pick select{height:52px;padding:0 1.1rem;border-radius:99px;border:2px solid rgba(255,255,255,.35);background:transparent;color:#fff;font:600 1rem var(--ff-b)}
.in-pick option{color:#0B0910}
.in-av{display:flex;justify-content:center;flex-wrap:wrap;padding:0;margin:0;list-style:none}
.in-av li{text-align:center;margin:0 -8px;animation:inBob 3.2s ease-in-out infinite alternate;animation-delay:calc(var(--k)*.3s)}
.in-av span{display:block;width:clamp(72px,9vw,104px);aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid #0B0910;background:var(--c);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.in-av li:hover span{transform:scale(1.15) translateY(-6px);position:relative;z-index:2}
.in-av img{width:100%;height:100%;object-fit:cover}
.in-av b{display:block;font-size:.85rem;margin-top:.3rem}
@keyframes inBob{to{transform:translateY(-12px)}}
@media (max-width:820px){.in-cta__g{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.in-cta *,.in-cta::before{animation:none!important}}
/* How we teach */
.in-hw{padding:clamp(3rem,6vw,5rem) var(--pad)}
.in-hw__in{max-width:var(--max);margin-inline:auto}
.in-hw h2{font-size:clamp(1.7rem,3.2vw,2.5rem)}
.in-hw__sub{color:var(--muted);max-width:50ch;margin-top:.7rem}
.in-hw__g{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin:2.2rem 0 0;padding:0;list-style:none}
.in-hw__g li{background:var(--c);color:var(--t);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.in-hw__g li:hover{transform:translateY(-10px);box-shadow:0 22px 40px rgba(11,9,16,.22)}
.in-hw__g figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:0 0 90px 0}
.in-hw__g img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.in-hw__g li:hover img{transform:scale(1.12)}
.in-hw__g div{padding:1.2rem 1.3rem 1.6rem}
.in-hw__g h3{font-size:1.45rem}
.in-hw__g p{margin-top:.5rem;font-size:.98rem;line-height:1.5}
@media (max-width:980px){.in-hw__g{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.in-hw__g{grid-template-columns:1fr}}
/* CTA as a card */
.in-cta{background:transparent;color:inherit;padding:clamp(1rem,3vw,2rem) var(--pad) clamp(3rem,6vw,5rem)}
.in-cta::before{display:none}
.in-cta__g{background:#0B0910;color:#fff;border-radius:36px;padding:clamp(2rem,5vw,4rem);overflow:hidden;box-shadow:0 30px 60px rgba(11,9,16,.25)}
.in-cta__g::before{content:"";position:absolute;width:520px;height:520px;right:-120px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(138,77,255,.5),transparent 70%);animation:inGlow 7s ease-in-out infinite alternate}
.in-cta__g>*{position:relative}

/* Sticky jump bar (overrides the old static rule in style.css) */
.it-jump{position:sticky;top:60px;z-index:40}
/* Hero: teacher spotlight */
.in-hero{--c:#F5B82E;--t:#0B0910;position:relative;padding:calc(var(--hh) + clamp(2rem,5vw,4rem)) var(--pad) clamp(3rem,6vw,5rem);background:#0B0910;color:#fff;overflow:hidden}
.in-hero__glow{position:absolute;width:640px;height:640px;right:-120px;top:50%;margin-top:-300px;border-radius:50%;background:var(--c);opacity:.38;filter:blur(110px);transition:background-color .9s;animation:inGlow 8s ease-in-out infinite alternate}
.in-hero__g{position:relative;max-width:var(--max);margin-inline:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.in-hero h1{font-size:clamp(2.6rem,5.8vw,4.9rem);max-width:12ch;line-height:.98;animation:inUp .9s cubic-bezier(.2,.8,.2,1) both}
.in-hero__p{color:rgba(255,255,255,.8);max-width:46ch;margin-top:1.2rem;font-size:1.08rem;animation:inUp .9s .12s cubic-bezier(.2,.8,.2,1) both}
.in-hero__cta{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;margin-top:1.8rem;animation:inUp .9s .24s cubic-bezier(.2,.8,.2,1) both}
.in-ghost{color:#fff;font-weight:600;text-underline-offset:5px}
.in-facts{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0 0;padding:0;list-style:none;animation:inUp .9s .36s cubic-bezier(.2,.8,.2,1) both}
.in-facts li{padding:.45rem 1rem;border:1.5px solid rgba(255,255,255,.28);border-radius:99px;font-weight:600;font-size:.92rem}
.in-spot{animation:inUp 1s .2s cubic-bezier(.2,.8,.2,1) both}
.in-stage{position:relative;width:100%;max-width:470px;aspect-ratio:4/5;margin-inline:auto}
.in-stage::before,.in-stage::after{content:"";position:absolute;inset:0;border:2px solid rgba(255,255,255,.28);border-radius:999px 999px 28px 28px;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.in-stage::before{transform:rotate(-6deg) scale(1.02)}.in-stage::after{transform:rotate(6deg) scale(1.02)}
.in-stage:hover::before{transform:rotate(-10deg) scale(1.04)}.in-stage:hover::after{transform:rotate(10deg) scale(1.04)}
.in-sl{position:absolute;inset:0;z-index:1;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s}
.in-sl.on{opacity:1;visibility:visible}
.in-sl figure{position:absolute;inset:0;margin:0;overflow:hidden;border-radius:999px 999px 28px 28px;background:var(--c);clip-path:inset(100% 0 0 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1)}
.in-sl.on figure{clip-path:inset(0)}
.in-sl img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);transition:transform 1.6s cubic-bezier(.2,.8,.2,1)}
.in-sl.on img{transform:none}
.in-card{position:absolute;z-index:3;left:-9%;bottom:7%;max-width:250px;padding:1rem 1.2rem;border-radius:22px;background:#fff;color:#0B0910;box-shadow:0 22px 40px rgba(0,0,0,.4);opacity:0;transform:translateY(24px);transition:opacity .6s .3s,transform .7s .3s cubic-bezier(.2,.8,.2,1)}
.in-sl.on .in-card{opacity:1;transform:none}
.in-card b{display:block;font:700 1.35rem/1.1 var(--ff-d)}
.in-card span{display:inline-block;margin:.45rem 0;padding:.15rem .7rem;border-radius:99px;background:var(--c);color:var(--t);font-weight:700;font-size:.82rem}
.in-card p{margin:0;font-size:.9rem;line-height:1.4;color:#4a4450}
.in-card a{display:inline-block;margin-top:.4rem;font-weight:700;font-size:.9rem}
.in-th{display:flex;justify-content:center;gap:.8rem;margin-top:1.8rem}
.in-th button{width:56px;height:56px;padding:0;border-radius:50%;border:0;overflow:hidden;cursor:pointer;background:var(--c);opacity:.6;outline:3px solid transparent;outline-offset:3px;transition:opacity .3s,transform .3s,outline-color .3s}
.in-th button:hover{opacity:1;transform:translateY(-4px)}
.in-th button[aria-pressed=true]{opacity:1;outline-color:var(--c);transform:scale(1.12)}
.in-th img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.in-hero__g{grid-template-columns:1fr}.in-card{left:0}.in-stage{max-width:380px}}
@media (prefers-reduced-motion:reduce){.in-hero *,.in-hero__glow{animation:none!important}.in-sl figure,.in-sl img{transition:none}}

/* RESPONSIVE REPAIR — instructors page, 320px through wide desktop */
.it, .it * { box-sizing: border-box; }
.it { width: 100%; min-width: 0; overflow-x: clip; }
.it :where(img,svg,figure) { max-width: 100%; }
.it-t__g, .in-hero__g, .in-hw__in, .in-cta__g, .it-jump__in { min-width: 0; }
.it-t__g > *, .in-hero__g > *, .in-hw__g > *, .in-cta__g > * { min-width: 0; }
.it-t__tx { min-width: 0; overflow-wrap: anywhere; }
.it-t__ph { width: min(100%, 400px); min-width: 0; }
.it-t__ph figure { width: 100%; aspect-ratio: 4 / 5; }
.it-t__ph figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.it-t__tag { max-width: calc(100% - 12px); white-space: normal; overflow-wrap: anywhere; }
.it-bd { width: clamp(62px, 8vw, 104px); max-width: 24%; }
.it-st { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.it-st li { min-width: 0; overflow-wrap: anywhere; }
.it-st b { font-size: clamp(1.35rem, 2.8vw, 2.3rem); }
.it-st small { display: block; line-height: 1.35; }
.it-fc { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.it-fc li { min-width: 0; overflow-wrap: anywhere; }
.it-t__sp { min-width: 0; }
.it-t__sp li { max-width: 100%; overflow-wrap: anywhere; }
.it-t__btn { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.it-jump { max-width: 100%; }
.it-jump__in { justify-content: flex-start; width: 100%; padding-inline: clamp(12px, var(--pad), 32px); }
.in-hero { padding-inline: var(--pad); }
.in-hero__g { width: 100%; }
.in-hero h1 { overflow-wrap: anywhere; }
.in-stage { width: min(100%, 470px); }
.in-th { max-width: 100%; justify-content: flex-start; overflow-x: auto; overflow-y: visible; padding: 6px 7px 10px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.in-th button { flex: 0 0 48px; width: 48px; height: 48px; }
.in-card { width: min(250px, calc(100% - 16px)); left: 8px; }
.in-hw__g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.in-hw__g li { min-width: 0; }
.in-hw__g figure { width: 100%; }
.in-hw__g img { display: block; width: 100%; }
.in-cta__g { width: 100%; }
.in-av { gap: .6rem; }
.in-av li { margin: 0; min-width: 0; }
.in-av span { width: clamp(54px, 8vw, 92px); border-width: 3px; }
.in-pick { min-width: 0; }
.in-pick select { min-width: 0; max-width: 100%; }

@media (max-width: 1024px) {
  .it-t { padding-block: clamp(2.5rem, 5vw, 4rem); }
  .it-t__g { gap: clamp(1.5rem, 3.5vw, 2.5rem); }
  .it-t__ph { max-width: 340px; }
  .it-nm { font-size: clamp(2.15rem, 5vw, 3.5rem); }
  .in-hero__g { gap: clamp(1.5rem, 3vw, 2.5rem); }
  .in-hero h1 { font-size: clamp(2.35rem, 4.8vw, 4rem); }
}
@media (max-width: 860px) {
  .it-t__g { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .it-t__ph, .it-t--r .it-t__ph { order: 0; width: min(100%, 320px); margin-inline: auto; }
  .it-t__tx { width: 100%; }
  .it-st { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .it-fc { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .in-hw__g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .in-cta__g { grid-template-columns: minmax(0, 1fr); }
  .in-av { justify-content: center; }
}
@media (max-width: 560px) {
  .in-hero { padding-top: calc(var(--hh) + 1.6rem); padding-bottom: 2.6rem; }
  .in-hero__g { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .in-hero h1 { font-size: clamp(2.1rem, 9vw, 3rem); line-height: 1.02; max-width: 13ch; }
  .in-hero__p { font-size: .98rem; }
  .in-hero__cta { gap: .8rem; }
  .in-hero__cta .btn, .in-ghost { min-height: 46px; }
  .in-facts { gap: .45rem; margin-top: 1.25rem; }
  .in-facts li { font-size: .78rem; padding: .4rem .65rem; }
  .in-stage { width: min(100%, 300px); aspect-ratio: 4 / 4.7; }
  .in-card { bottom: 4%; padding: .8rem .9rem; border-radius: 16px; }
  .in-card b { font-size: 1.15rem; }
  .in-card p { font-size: .82rem; }
  .in-th { gap: .65rem; margin-top: 1rem; }
  .it-jump__in { padding-block: .45rem; gap: .3rem; }
  .it-jump__in > span { font-size: .75rem; margin-inline-end: .25rem; }
  .it-jump a { padding: .4rem .65rem; font-size: .8rem; }
  .it-jump a small { font-size: .65rem; }
  .it-t { padding: 2.5rem var(--pad, 1rem); }
  .it-t__g { gap: 1.6rem; }
  .it-t__ph, .it-t--r .it-t__ph { width: min(100%, 290px); max-width: 290px; }
  .it-t__ph figure { aspect-ratio: 4 / 4.7; }
  .it-t__ph::before, .it-t__ph::after { border-radius: 22px; }
  .it-t__ph figure { border-radius: 22px; outline-width: 4px; }
  .it-t__ph.it-in:hover::before { translate: -4px 0; rotate: -5deg; }
  .it-t__ph.it-in:hover::after { translate: 4px 0; rotate: 5deg; }
  .it-t__tag { inset: auto auto 5% 0; padding: .4rem .75rem; font-size: .78rem; border-width: 3px; }
  .it-bd { width: 68px; max-width: 24%; inset: -9px -5px auto auto; }
  .it-t__role { font-size: .82rem; }
  .it-nm { font-size: clamp(2rem, 10vw, 3rem); line-height: 1.05; overflow-wrap: anywhere; }
  .it-t__q { font-size: 1.12rem; }
  .it-t__bio { font-size: .92rem; line-height: 1.6; }
  .it-st { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
  .it-st li { padding-inline-start: .55rem; border-inline-start-width: 3px; }
  .it-st b { font-size: clamp(1.15rem, 6vw, 1.55rem); }
  .it-st small { font-size: .7rem; }
  .it-fc { grid-template-columns: minmax(0, 1fr); gap: .55rem; }
  .it-fc li { padding: .8rem .9rem; }
  .it-t__sp { gap: .4rem; }
  .it-t__sp li { font-size: .76rem; padding: .35rem .65rem; }
  .it-days { gap: .3rem; }
  .it-days i { padding: .35rem .55rem; font-size: .72rem; }
  .it-t__btn { display: flex; width: 100%; justify-content: center; align-items: center; text-align: center; padding: .85rem 1rem; }
  .in-hw { padding: 2.7rem var(--pad, 1rem); }
  .in-hw__g { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
  .in-hw__g li { border-radius: 20px; }
  .in-hw__g figure { aspect-ratio: 16 / 9; border-radius: 0 0 52px 0; }
  .in-hw__g div { padding: 1rem 1.05rem 1.2rem; }
  .in-hw__g h3 { font-size: 1.25rem; }
  .in-hw__g p { font-size: .9rem; }
  .in-cta { padding: 1rem var(--pad, 1rem) 2.7rem; }
  .in-cta__g { border-radius: 24px; padding: 1.3rem; gap: 1.5rem; }
  .in-cta h2 { font-size: clamp(1.7rem, 8vw, 2.35rem); }
  .in-pick { flex-direction: column; align-items: stretch; }
  .in-pick select, .in-pick .btn { width: 100%; min-height: 48px; justify-content: center; }
  .in-av { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem .4rem; }
  .in-av li { margin: 0; }
  .in-av span { width: min(100%, 68px); margin-inline: auto; }
  .in-av b { font-size: .75rem; }
}
@media (max-width: 360px) {
  .in-hero h1 { font-size: 2rem; }
  .in-stage { width: min(100%, 260px); }
  .in-card { width: calc(100% - 16px); left: 8px; }
  .in-th button { flex-basis: 42px; width: 42px; height: 42px; }
  .it-jump__in > span { display: none; }
  .it-t { padding-inline: 14px; }
  .it-t__ph, .it-t--r .it-t__ph { width: min(100%, 260px); max-width: 260px; }
  .it-nm { font-size: 2rem; }
  .it-st { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .it-st li:last-child { grid-column: 1 / -1; }
  .it-st small { font-size: .72rem; }
  .it-t__sp li { font-size: .72rem; }
  .in-cta__g { padding: 1.1rem; border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .it-t__ph::before, .it-t__ph::after, .it-t__ph figure img, .in-stage::before, .in-stage::after { transition: none !important; }
  .it-t__ph.it-in::before, .it-t__ph.it-in::after { rotate: 0deg; translate: 0 0; }
}

/* Responsive profile overlay refinements: keep the teacher card inside the stage image. */
@media (max-width: 860px) {
  .in-spot, .in-stage { min-width: 0; width: 100%; }
  .in-stage { max-width: min(380px, 100%); }
  .in-card { left: 8px; right: 8px; bottom: 12px; width: auto; max-width: none; padding: .85rem 1rem; border-radius: 18px; box-sizing: border-box; }
  .in-card b { font-size: clamp(1.05rem, 4.4vw, 1.3rem); overflow-wrap: anywhere; }
  .in-card span { max-width: 100%; white-space: normal; overflow-wrap: anywhere; font-size: .76rem; }
  .in-card p { font-size: .82rem; overflow-wrap: anywhere; }
  .in-card a { font-size: .84rem; }
}
@media (max-width: 380px) {
  .in-hero { padding-inline: 14px; }
  .in-hero__g { gap: 1.5rem; }
  .in-stage { width: min(100%, 300px); aspect-ratio: 4 / 4.8; }
  .in-card { left: 7px; right: 7px; bottom: 9px; padding: .7rem .8rem; }
  .in-card b { font-size: 1.05rem; line-height: 1.15; }
  .in-card span { margin: .3rem 0; padding: .14rem .55rem; font-size: .72rem; }
  .in-card p { font-size: .78rem; line-height: 1.35; }
  .in-card a { margin-top: .25rem; font-size: .8rem; }
  .in-th { gap: .55rem; margin-top: 1.25rem; }
  .in-th button { width: 44px; height: 44px; }
}
@media (max-width: 320px) {
  .in-hero { padding-inline: 12px; }
  .in-stage { width: 100%; }
  .in-card { left: 6px; right: 6px; bottom: 8px; padding: .62rem .72rem; }
  .in-card b { font-size: 1rem; }
  .in-card p { font-size: .75rem; }
}


/* Final alignment pass: center the teacher navigation and keep the CTA focused on the team. */
.it-jump__in { justify-content: center !important; text-align: center; }
.it-jump__in > span { margin-inline: 0 .5rem; }
.in-cta__g { align-items: center; }
.in-av { justify-content: center !important; align-items: start; }
.in-av li { margin-inline: 0 !important; }
.in-av span { width: clamp(68px, 8vw, 92px); }
.in-th { justify-content: center !important; }
@media (max-width: 820px) { .it-jump__in { justify-content: center !important; flex-wrap: wrap; } }


/* Program gallery image framing: avoid artificial zoom/cropping */
.pm-card img { transform: translateX(calc(var(--o) * 1px)) scale(1); object-position: center 28%; }
.pm-card:hover img { transform: translateX(calc(var(--o) * 1px)) scale(1.025); }
/* Upcoming program feature: keep the dancers framed naturally */
.uf__ph img { object-position: center 28%; transform: none; }
/* Center the complete logo + academy name lockup on authentication pages */
body.auth-page .auth-brand { margin-inline: auto; justify-content: center; }
body.auth-page .auth-brand-copy { text-align: center; align-items: center; }
@media (max-width: 520px) { body.auth-page .auth-brand { width: 100%; } }

/* ===== Programs: image framing + SVG icons (replaces emoji) ===== */
/* Finder result banner: 16:9 frame so heads and feet are no longer cropped */
.fr__ph{height:auto;aspect-ratio:16/9;min-height:230px}
.fr__ph img{object-position:center 12%}
.fr__ph::after{background:linear-gradient(180deg,transparent 45%,rgba(11,9,16,.85))}
/* Gallery cards use the portrait crops, so no parallax shift or zoom (it exposed card edges) */
.pm-card img{transform:none;object-position:center 20%}
.pm-card:hover img{transform:scale(1.03)}
/* Upcoming cards */
.uc__ph img,.uf__ph img{object-position:center 18%}

/* Icons */
.ic{display:block;width:1em;height:1em;flex:none}
.fm-s i,.fr-pair button i{color:currentColor}
.fm-s i{font-size:1rem}.fm-s i .ic{width:16px;height:16px}
.fr-pair button i .ic{width:13px;height:13px}
.fr__em{color:#0B0910}.fr__em .ic{width:26px;height:26px}
.pm-card__e{color:var(--t,#0B0910)}.pm-card__e .ic{width:28px;height:28px}
.pm-tile i{color:var(--t,#0B0910)}.pm-tile i .ic{width:26px;height:26px}
.uf__em{color:#0B0910}.uf__em .ic{width:26px;height:26px}
.uc__em{color:var(--t,#0B0910)}.uc__em .ic{width:22px;height:22px}
.pg-sty{display:inline-flex;align-items:center;gap:.4rem;color:#0B0910}
.pg-sty .ic{width:16px;height:16px}
@media (max-width:420px){.fr__em .ic{width:22px;height:22px}.fr__ph{aspect-ratio:4/3}}
