.lang-switcher{position:relative}.lang-switcher__btn{display:flex;align-items:center;gap:.4rem;padding:.45rem .85rem;background:transparent;border:1px solid var(--color-line);border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.08em;color:var(--color-ink);cursor:pointer;transition:all var(--t-fast) var(--ease)}.lang-switcher__btn:hover{border-color:var(--color-pink);color:var(--color-pink)}.lang-switcher__menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:160px;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius);padding:.4rem;box-shadow:0 20px 40px -10px #2d1b2e26;animation:rise var(--t-fast) var(--ease);z-index:100}.lang-switcher__item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem .75rem;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;font-size:.9rem;color:var(--color-ink);cursor:pointer;transition:background var(--t-fast)}.lang-switcher__item:hover{background:var(--color-pink-soft)}.lang-switcher__item.is-active{background:var(--color-pink);color:#fff}.lang-switcher__code{font-weight:700;letter-spacing:.08em;font-size:.75rem}.lang-switcher__name{font-family:var(--font-heading)}@media (max-width: 900px){.lang-switcher{width:100%;margin-top:.5rem}.lang-switcher__btn{width:100%;justify-content:space-between}}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--color-pink-bg) 85%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid transparent;transition:border-color var(--t-med) var(--ease),background var(--t-med)}.site-header--scrolled{border-bottom-color:var(--color-line);background:color-mix(in srgb,var(--color-pink-bg) 95%,transparent)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;padding-top:1.1rem;padding-bottom:1.1rem;gap:1rem}.logo{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--color-ink)}.logo__img{height:50px;width:auto;display:block;object-fit:contain}.logo__mark{width:50px;height:50px;border-radius:50%;background:var(--color-pink);color:#fff;font-family:var(--font-heading);font-weight:700;font-size:1rem;letter-spacing:.05em;align-items:center;justify-content:center;flex-shrink:0}.logo__text{display:flex;flex-direction:column;line-height:1.1}.logo__name{font-family:var(--font-heading);font-size:1.05rem;font-weight:500;letter-spacing:-.01em}.site-nav{display:flex;align-items:center;gap:1.75rem}.site-nav a,.site-nav .link-btn{font-size:.9rem;font-weight:500;color:var(--color-ink);text-decoration:none;position:relative;padding:.4rem 0;background:none;border:none;cursor:pointer;font-family:inherit}.site-nav a:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-pink);transform:scaleX(0);transform-origin:right;transition:transform var(--t-med) var(--ease);border-radius:999px}.site-nav a:hover:after,.site-nav a.active:after{transform:scaleX(1);transform-origin:left}.site-nav a.active{color:var(--color-pink)}.theme-toggle{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:.3rem;line-height:1;border-radius:var(--radius-sm);transition:opacity var(--t-fast)}.theme-toggle:hover{opacity:.7}.hamburger{display:none;background:none;border:none;width:32px;height:32px;flex-direction:column;justify-content:center;gap:6px;padding:0}.hamburger span{display:block;height:2px;background:var(--color-ink);transition:transform var(--t-med) var(--ease),opacity var(--t-fast)}.hamburger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger.is-open span:nth-child(2){opacity:0}.hamburger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media (max-width: 900px){.hamburger{display:flex}.site-nav{position:absolute;top:100%;left:0;right:0;background:var(--color-pink-bg);flex-direction:column;align-items:flex-start;padding:1.5rem var(--gutter);border-bottom:1px solid var(--color-line);transform:translateY(-10px);opacity:0;pointer-events:none;transition:all var(--t-med) var(--ease);gap:.6rem}.site-nav--open{transform:translateY(0);opacity:1;pointer-events:all}.site-nav a,.site-nav .link-btn{font-size:1.1rem;width:100%;padding:.6rem 0;border-bottom:1px solid var(--color-line)}.logo__name{font-size:.95rem}.logo__img{height:40px}}.site-footer{background:var(--color-ink);color:var(--color-cream);padding:5rem 0 2rem;margin-top:6rem;position:relative;overflow:hidden}.site-footer:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--color-pink),transparent)}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem;padding-bottom:4rem;border-bottom:1px solid rgba(255,255,255,.12)}.footer-logo{height:50px;width:auto;display:block;object-fit:contain;margin-bottom:1rem;filter:brightness(0) invert(1)}.footer-logo-mark{width:50px;height:50px;border-radius:50%;background:var(--color-pink);color:#fff;font-family:var(--font-heading);font-weight:700;font-size:1rem;letter-spacing:.05em;align-items:center;justify-content:center;margin-bottom:1rem}.footer-name{font-family:var(--font-heading);font-size:1.4rem;margin-bottom:.4rem;color:var(--color-cream)}.footer-tag{font-size:.85rem;color:#fff9;margin:0}.footer-col h4{font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin-bottom:1.2rem}.footer-col a{display:block;color:var(--color-cream);font-size:.95rem;padding:.3rem 0;text-decoration:none;transition:color var(--t-fast)}.footer-col a:hover{color:var(--color-accent)}.footer-bottom{padding-top:2rem;text-align:center;font-size:.85rem;color:#fff6}.footer-bottom p{margin:0}@media (max-width: 768px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.footer-brand{grid-column:span 2}}.hero{position:relative;padding:clamp(3rem,8vw,7rem) 0 clamp(4rem,10vw,9rem);overflow:hidden}.hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero__shape{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}.hero__shape--1{width:550px;height:550px;background:var(--color-pink-light);top:-200px;right:-100px}.hero__shape--2{width:400px;height:400px;background:var(--color-accent);bottom:-150px;left:-100px;opacity:.3}.hero__shape--3{width:300px;height:300px;background:var(--color-pink-soft);top:40%;left:30%;opacity:.4}.hero__decorations{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.deco{position:absolute;font-size:2rem;color:var(--color-pink);opacity:.15;-webkit-user-select:none;user-select:none}.deco--1{top:8%;left:5%;font-size:2.5rem;opacity:.2}.deco--2{top:20%;right:8%;font-size:3rem;opacity:.1}.deco--3{bottom:25%;left:12%;font-size:1.8rem;opacity:.2}.deco--4{bottom:10%;right:20%;font-size:2.2rem;opacity:.15}.deco--5{top:55%;left:50%;font-size:1.5rem;opacity:.1}.hero__inner{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;position:relative}.hero__title{font-family:var(--font-display);font-weight:700;font-size:clamp(4rem,10vw,8rem);line-height:.95;letter-spacing:-.01em;margin:1.5rem 0}.hero__title-italic{font-style:italic;font-weight:600;color:var(--color-pink)}.hero__subtitle{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:540px;color:var(--color-ink-soft);line-height:1.55;margin-bottom:2rem}.hero__actions{display:flex;gap:.8rem;flex-wrap:wrap}.hero__visual{position:relative}.hero__poster{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 60px -20px #e91e6340;transform:rotate(2deg);transition:transform var(--t-slow) var(--ease)}.hero__poster:hover{transform:rotate(0) scale(1.02)}.hero__poster img{width:100%;height:auto;display:block}.hero__poster-fallback{flex-direction:column;align-items:center;justify-content:center;gap:.6rem;aspect-ratio:4/5;padding:2rem;background:linear-gradient(135deg,var(--color-pink) 0%,#ff8fb3 100%);color:#fff;text-align:center}.hero__poster-fallback-eyebrow{font-size:.85rem;text-transform:uppercase;letter-spacing:.15em;opacity:.9}.hero__poster-fallback-title{font-family:var(--font-heading);font-size:2.4rem;line-height:1.05;font-weight:700}.hero__poster-fallback-note{font-size:.95rem;opacity:.95}@keyframes wiggle{0%,to{transform:rotate(-8deg)}25%{transform:rotate(-4deg) scale(1.05)}50%{transform:rotate(-10deg)}75%{transform:rotate(-6deg) scale(1.05)}}.hero__years{position:absolute;bottom:-30px;left:-30px;width:130px;height:130px;background:var(--color-pink);color:#fff;border-radius:50%;display:grid;place-items:center;text-align:center;font-family:var(--font-display);box-shadow:0 15px 40px -10px #e91e6380;transform:rotate(-8deg);transition:transform var(--t-med) var(--ease);cursor:default}.hero__years:hover{animation:wiggle .5s var(--ease)}.hero__years-num{font-size:2.5rem;font-weight:700;line-height:1}.hero__years-label{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;margin-top:4px}@media (max-width: 900px){.hero__inner{grid-template-columns:1fr}.hero__visual{max-width:400px;margin:0 auto}.hero__years{width:100px;height:100px;bottom:-15px;left:-15px}.hero__years-num{font-size:1.8rem}}.summer-ages{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.age-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);text-align:center;transition:transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.age-card:hover{transform:translateY(-3px);border-color:var(--color-pink)}.age-card__label{font-family:var(--font-heading);font-size:1.3rem;font-weight:600;color:var(--color-ink)}.age-card__price{font-size:1.05rem;color:var(--color-pink);font-weight:600;margin-bottom:.5rem}.summer-cta{display:flex;justify-content:center;margin-top:2.5rem}.btn--large{padding:1rem 2.5rem;font-size:1.05rem}@media (max-width: 700px){.summer-ages{grid-template-columns:1fr}}.summer-section{background:var(--color-pink-soft);position:relative}.summer-section--embedded{background:transparent;margin-top:1rem}.summer-header{text-align:center;max-width:720px;margin:0 auto 3rem}.summer-header h2{margin:.75rem 0}.summer-intro{color:var(--color-ink-soft);font-size:1.1rem}.summer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem}.summer-card{background:var(--color-cream);border-radius:var(--radius-lg);padding:2rem;border:1px solid var(--color-line);transition:transform var(--t-med) var(--ease),box-shadow var(--t-med)}.summer-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -15px #e91e6326}.summer-card h3{font-family:var(--font-display);font-size:1.6rem;margin-bottom:1.25rem;font-style:italic;font-weight:600}.summer-card ul{list-style:none;padding:0;margin:0 0 1.5rem}.summer-card li{border-bottom:1px dashed var(--color-line);font-size:.95rem;position:relative;padding:.55rem 0 .55rem 1.5rem}.summer-card li:before{content:"♪";position:absolute;left:0;color:var(--color-pink)}.summer-card li:last-child{border-bottom:none}.summer-slots{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.slot{background:var(--color-pink-bg);border-radius:var(--radius);padding:.75rem;text-align:center}.slot__label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.15em;color:var(--color-pink)}.slot__time{display:block;font-family:var(--font-display);font-size:1.1rem;margin-top:4px}.summer-note{font-size:.85rem;color:var(--color-muted);line-height:1.5;margin:1rem 0}.price-row{display:flex;justify-content:space-between;align-items:baseline;padding:.85rem 0;border-bottom:1px dashed var(--color-line)}.price-row:last-of-type{border-bottom:none;margin-bottom:.5rem}.price-row strong{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--color-pink)}.weeks-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.week{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;background:var(--color-pink-bg);border-radius:var(--radius);font-size:.85rem}.week__num{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--color-pink);color:#fff;font-family:var(--font-display);font-weight:700;font-size:.9rem;flex-shrink:0}.week__range{font-weight:500}.week__note{font-size:.7rem;color:var(--color-muted)}@media (max-width: 1000px){.summer-grid{grid-template-columns:1fr}}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3rem;flex-wrap:wrap}.section-head h2{margin-top:.75rem;max-width:600px}.courses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.course-card{display:flex;flex-direction:column;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:inherit;transition:transform var(--t-med) var(--ease),box-shadow var(--t-med);opacity:0;animation:rise var(--t-slow) var(--ease) forwards}.course-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -20px #e91e6333}.course-card__image{position:relative;aspect-ratio:16/10;background:var(--color-pink-soft);overflow:hidden}.course-card__image img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease)}.course-card:hover .course-card__image img{transform:scale(1.06)}.course-card__age{position:absolute;top:1rem;left:1rem;padding:.3rem .75rem;background:var(--color-cream);border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.course-card__body{padding:1.5rem;flex:1;display:flex;flex-direction:column}.course-card__body h3{font-family:var(--font-heading);font-size:1.4rem;margin-bottom:.6rem}.course-card__body p{color:var(--color-ink-soft);font-size:.9rem;flex:1;margin-bottom:1rem}.course-card__cta{font-size:.85rem;font-weight:600;color:var(--color-pink);letter-spacing:.05em}.quote-section{background:var(--color-ink);color:var(--color-cream);text-align:center}.big-quote{max-width:900px;margin:0 auto;position:relative}.big-quote__mark{font-family:var(--font-display);font-size:8rem;line-height:1;color:var(--color-accent);opacity:.4;display:block;margin-bottom:-2rem}.big-quote p{font-family:var(--font-heading);font-style:italic;font-size:clamp(1.5rem,3.5vw,2.5rem);font-weight:400;line-height:1.3;letter-spacing:-.01em;margin-bottom:1.5rem}.big-quote cite{font-family:var(--font-body);font-style:normal;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent)}.page-header{text-align:center;margin-bottom:3rem}.page-header h1{margin:.75rem 0 1rem}.page-header__sub{color:var(--color-ink-soft);font-size:1.1rem;max-width:600px;margin:0 auto}.filter-bar{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem;margin-bottom:3rem}.filter-chip{padding:.55rem 1.2rem;border-radius:999px;border:1px solid var(--color-line);background:transparent;color:var(--color-ink);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--t-fast) var(--ease);font-family:inherit}.filter-chip:hover{border-color:var(--color-pink);color:var(--color-pink)}.filter-chip.is-active{background:var(--color-pink);color:#fff;border-color:var(--color-pink)}.courses-list{display:flex;flex-direction:column;gap:1rem}.course-row{display:grid;grid-template-columns:280px 1fr;gap:2rem;padding:1.5rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:all var(--t-med) var(--ease);opacity:0;animation:rise var(--t-slow) var(--ease) forwards;position:relative;overflow:hidden}.course-row:hover{border-color:var(--color-pink);transform:translate(4px);box-shadow:0 10px 30px -10px #e91e6326}.course-row__image{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;background:var(--color-pink-soft)}.course-row__image img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease)}.course-row:hover .course-row__image img{transform:scale(1.04)}.course-row__content{display:flex;flex-direction:column;justify-content:center;position:relative}.course-row__meta{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.course-row__price{font-family:var(--font-heading);font-weight:600;color:var(--color-pink);font-size:1.1rem}.course-row__content h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:.5rem}.course-row__content p{color:var(--color-ink-soft);margin:0;max-width:700px}.course-row__arrow{position:absolute;bottom:0;right:0;font-size:2rem;color:var(--color-pink);transition:transform var(--t-med) var(--ease)}.course-row:hover .course-row__arrow{transform:translate(8px)}.loading-state,.empty-state{display:grid;place-items:center;padding:4rem 0;color:var(--color-muted)}@media (max-width: 720px){.course-row{grid-template-columns:1fr;gap:1rem}.course-row__image{aspect-ratio:16/9}}.back-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--color-ink-soft);margin-bottom:2rem}.course-detail{display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:start}.course-detail__image{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 60px -20px #e91e6333;position:sticky;top:6rem}.course-detail__image img{width:100%;display:block}.course-detail__content h1{margin:.75rem 0 1rem;font-size:clamp(2.5rem,5vw,4rem)}.course-detail__desc{font-size:1.1rem;color:var(--color-ink-soft);line-height:1.6;margin-bottom:2rem}.course-detail__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;padding:1.5rem;background:var(--color-pink-soft);border-radius:var(--radius);margin-bottom:2rem}.meta-item{display:flex;flex-direction:column}.meta-item__label{font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--color-pink);margin-bottom:.4rem}.meta-item__value{font-family:var(--font-heading);font-size:1.3rem;font-weight:500}.reg-form{margin-top:2rem;padding:2rem;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-cream);animation:rise var(--t-med) var(--ease)}.reg-form h3{font-family:var(--font-heading);font-style:italic;font-weight:400;margin-bottom:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 900px){.course-detail{grid-template-columns:1fr;gap:2rem}.course-detail__image{position:static}.form-row{grid-template-columns:1fr}}.teachers-intro{max-width:760px;margin:0 auto 4rem;text-align:center}.teachers-intro .lead{font-family:var(--font-heading);font-size:clamp(1.25rem,2.2vw,1.6rem);font-style:italic;font-weight:400;line-height:1.4;margin-bottom:1.5rem;color:var(--color-ink)}.teachers-intro .muted{font-size:1rem;line-height:1.7}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.5rem}.teacher-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);transition:all var(--t-med) var(--ease);opacity:0;animation:rise var(--t-slow) var(--ease) forwards}.teacher-card:hover{transform:translateY(-4px);border-color:var(--color-pink);box-shadow:0 20px 40px -15px #e91e6333}.teacher-card__avatar{width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,var(--color-pink),var(--color-pink-light));color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem;box-shadow:0 10px 25px -8px #e91e6366}.teacher-card h3{font-family:var(--font-heading);font-size:1.1rem;font-weight:500;margin:0}.teacher-card p.teacher-card__role{font-size:.85rem;color:var(--color-muted);margin:.25rem 0 0}.teachers-photo-section{display:flex;justify-content:center;align-items:center;margin:0 auto 4rem;width:100%}.teachers-photo{margin:0 auto;max-width:min(900px,100%);width:100%}.teachers-photo img{width:100%;max-height:700px;object-fit:contain;border-radius:var(--radius-lg);display:block;margin:0 auto}.teachers-photo figcaption{margin-top:.75rem;font-size:.85rem;color:var(--color-muted);font-style:italic;text-align:center}a.teacher-card{text-decoration:none;color:inherit}.teacher-detail{max-width:860px;margin:0 auto}.teacher-detail__hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 0 2.5rem;gap:1.25rem}.teacher-detail__photo{width:160px;height:160px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--color-pink),var(--color-pink-light));display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px #e91e6366;flex-shrink:0}.teacher-detail__photo img{width:100%;height:100%;object-fit:cover}.teacher-detail__initials{font-family:var(--font-display);font-size:3rem;font-weight:700;color:#fff;line-height:1}.teacher-detail__name{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.5rem);font-weight:400;color:var(--color-ink);margin:0}.teacher-detail__role{font-style:italic;color:var(--color-muted);font-size:1.1rem;margin:0}.teacher-detail__tabs{display:flex;gap:0;border-bottom:2px solid var(--color-line);margin-bottom:2.5rem}.teacher-detail__tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--color-muted);cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}.teacher-detail__tab.is-active{color:var(--color-pink);border-bottom-color:var(--color-pink)}.teacher-detail__bio{white-space:pre-wrap;line-height:1.8;color:var(--color-ink-soft);font-size:1.05rem;margin-bottom:2.5rem}.teacher-detail__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.teacher-detail__gallery-item{aspect-ratio:1;border-radius:var(--radius);overflow:hidden;cursor:pointer;position:relative}.teacher-detail__gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-med) var(--ease)}.teacher-detail__gallery-item:hover img{transform:scale(1.05)}.teacher-detail__video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.teacher-detail__video-item iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:var(--radius)}.teacher-detail__video-caption{font-size:.85rem;color:var(--color-muted);margin-top:.5rem}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s var(--ease)}.lightbox__img{max-width:min(90vw,1000px);max-height:90vh;object-fit:contain;border-radius:var(--radius);display:block}.lightbox__close{position:absolute;top:1.5rem;right:1.5rem;background:#ffffff26;border:none;color:#fff;font-size:1.5rem;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--t-fast)}.lightbox__close:hover{background:#ffffff40}.lightbox__arrow{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:1.5rem;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--t-fast)}.lightbox__arrow:hover{background:#ffffff40}.lightbox__arrow--prev{left:1.5rem}.lightbox__arrow--next{right:1.5rem}.contact-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start}.contact-info h1{margin:.75rem 0 1rem}.contact-info .muted{font-size:1.05rem;margin-bottom:2.5rem}.contact-block{padding:1.25rem 0;border-bottom:1px solid var(--color-line)}.contact-block__label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-pink);margin-bottom:.4rem}.contact-block__value{font-family:var(--font-heading);font-size:1.4rem;color:var(--color-ink);text-decoration:none}.contact-block__value:hover{color:var(--color-pink)}.contact-socials{display:flex;gap:1rem;margin-top:2rem}.contact-socials a{padding:.5rem 1rem;border:1px solid var(--color-line);border-radius:999px;font-size:.85rem;color:var(--color-ink);text-decoration:none}.contact-socials a:hover{border-color:var(--color-pink);color:var(--color-pink)}.contact-form{background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:2.5rem}@media (max-width: 900px){.contact-wrap{grid-template-columns:1fr}}.auth-page{min-height:calc(100vh - 200px);display:grid;place-items:center;padding:4rem var(--gutter);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;width:600px;height:600px;border-radius:50%;background:var(--color-pink-light);filter:blur(100px);opacity:.2;top:-200px;right:-200px;z-index:-1}.auth-card{width:100%;max-width:460px;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:3rem;box-shadow:0 30px 60px -20px #e91e631a;animation:rise var(--t-slow) var(--ease)}.auth-card h1{font-size:clamp(2rem,4vw,3rem);margin:.75rem 0 2rem}.auth-error{padding:.75rem 1rem;background:#e91e6312;border:1px solid var(--color-pink);border-radius:var(--radius-sm);color:var(--color-pink-dark);font-size:.9rem;margin-bottom:1rem}.auth-switch{text-align:center;font-size:.9rem;color:var(--color-ink-soft);margin:2rem 0 0}.auth-switch a{font-weight:600}@media (max-width: 500px){.auth-card{padding:2rem 1.5rem}}.account-header{margin-bottom:4rem}.account-header h1{margin:.75rem 0 .4rem}.account-section{margin-bottom:4rem}.account-section h2{font-family:var(--font-heading);font-style:italic;font-weight:400;font-size:2rem;margin-bottom:2rem}.empty-card{padding:3rem 2rem;background:var(--color-pink-soft);border-radius:var(--radius-lg);text-align:center}.empty-card p{margin-bottom:1.5rem;color:var(--color-ink-soft)}.reg-list{display:grid;gap:1rem}.reg-row{display:grid;grid-template-columns:100px 1fr;gap:1.5rem;padding:1rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);align-items:center}.reg-row img{width:100px;height:80px;object-fit:cover;border-radius:var(--radius)}.reg-row__body h3{font-family:var(--font-heading);font-size:1.25rem;margin:0 0 .4rem}.status{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-top:.5rem}.status--pending{background:#fbbf2433;color:#92660a}.status--confirmed{background:#2d5e3e26;color:#2d5e3e}.status--cancelled{background:#e91e631a;color:var(--color-pink-dark)}.admin-page{background:var(--color-pink-soft);min-height:100vh}.admin-header{margin-bottom:2.5rem}.admin-header h1{margin:.75rem 0 0}.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--color-line);flex-wrap:wrap}.admin-tabs button{padding:.85rem 1.5rem;background:transparent;border:none;font-size:.9rem;font-weight:500;color:var(--color-ink-soft);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;transition:color var(--t-fast)}.admin-tabs button:hover{color:var(--color-ink)}.admin-tabs button.is-active{color:var(--color-pink);border-bottom-color:var(--color-pink)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-card{padding:2rem 1.5rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);display:flex;flex-direction:column}.stat-card--accent{background:var(--color-pink);color:#fff;border-color:var(--color-pink)}.stat-card--accent .stat-card__label{color:var(--color-accent)}.stat-card__label{font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--color-pink);margin-bottom:1rem}.stat-card__value{font-family:var(--font-heading);font-size:3rem;font-weight:500;line-height:1}.admin-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-cream);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-line);font-size:.9rem}.admin-table th,.admin-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--color-line)}.admin-table th{font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--color-ink-soft);background:var(--color-pink-soft)}.admin-table tr:last-child td{border-bottom:none}.admin-table .actions{display:flex;gap:.5rem}.admin-table .actions button{padding:.4rem .8rem;background:transparent;border:1px solid var(--color-line);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;font-family:inherit;transition:all var(--t-fast)}.admin-table .actions button:hover{border-color:var(--color-pink);color:var(--color-pink)}.message-list{display:grid;gap:1rem}.message-item{padding:1.5rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg)}.message-item.is-unread{border-left:4px solid var(--color-pink)}.message-item__head{display:flex;align-items:baseline;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap;font-size:.9rem}.message-item__subject{font-weight:600;margin:.5rem 0}.message-item__body{color:var(--color-ink-soft);margin-bottom:1rem;white-space:pre-wrap}.songs-admin__subtabs{display:flex;gap:.4rem;margin-bottom:1.5rem;flex-wrap:wrap}.songs-admin__subtabs button{padding:.5rem 1.1rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius);font-size:.85rem;font-weight:500;cursor:pointer;font-family:inherit;color:var(--color-ink-soft);transition:all var(--t-fast)}.songs-admin__subtabs button:hover{border-color:var(--color-pink);color:var(--color-pink)}.songs-admin__subtabs button.is-active{background:var(--color-pink);border-color:var(--color-pink);color:#fff}.artists-admin-list{display:flex;flex-direction:column;gap:.5rem}.artist-admin-item{background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden}.artist-admin-item--open{border-color:var(--color-pink)}.artist-admin-item__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;flex-wrap:wrap}.artist-admin-item__name{flex:1;min-width:0}.artist-expand-btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.95rem;display:flex;align-items:center;padding:0;text-align:left}.artist-edit-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.artist-edit-input{padding:.4rem .75rem;border:1px solid var(--color-pink);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;min-width:200px}.artist-admin-item__actions{display:flex;gap:.4rem;flex-shrink:0}.artist-admin-item__actions button{padding:.3rem .75rem;background:transparent;border:1px solid var(--color-line);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;font-family:inherit;transition:all var(--t-fast)}.artist-admin-item__actions button:hover{border-color:var(--color-pink);color:var(--color-pink)}.artist-admin-item__lyrics{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--color-line)}.scraper-panel{background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:1.75rem 2rem}.scraper-panel__title{font-family:var(--font-heading);font-size:1.1rem;margin:0 0 .5rem}.scraper-panel__btns{display:flex;gap:.75rem;flex-wrap:wrap}.scraper-progress{margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem}.scraper-progress__bar-wrap{height:8px;background:var(--color-line);border-radius:999px;overflow:hidden}.scraper-progress__bar{height:100%;background:var(--color-pink);border-radius:999px;transition:width .4s ease}.scraper-progress__info{display:flex;justify-content:space-between;font-size:.82rem;color:var(--color-ink-soft);flex-wrap:wrap;gap:.25rem}.scraper-progress__status{font-size:.82rem}.tag{display:inline-block;padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;background:var(--color-line);color:var(--color-ink-soft)}.tag--ok{background:#d4f3e7;color:#166534}.tag--err{background:#fde8e8;color:#991b1b}@media (max-width: 768px){.admin-table{font-size:.8rem}.admin-table th,.admin-table td{padding:.6rem}}.songs-header{text-align:center;max-width:640px;margin:0 auto 3rem}.songs-header h1{margin:.75rem 0 .5rem}.songs-search{max-width:560px;margin:0 auto 2.5rem}.songs-search__input{width:100%;padding:.9rem 1.25rem;background:var(--color-cream);border:2px solid var(--color-line);border-radius:999px;font-family:var(--font-body);font-size:1rem;color:var(--color-ink);transition:border-color var(--t-fast) var(--ease);outline:none}.songs-search__input:focus{border-color:var(--color-pink)}.songs-letters{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;max-width:800px;margin:0 auto 1.25rem}.letter-btn{min-width:2.4rem;height:2.4rem;padding:0 .65rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius);color:var(--color-ink);font-family:var(--font-heading);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--t-fast) var(--ease)}.letter-btn:hover{background:var(--color-pink-bg);border-color:var(--color-pink);color:var(--color-pink)}.letter-btn.is-active{background:var(--color-pink);border-color:var(--color-pink);color:#fff}.songs-count{text-align:center;margin-bottom:1.5rem;font-size:.9rem}.songs-loading{display:flex;justify-content:center;padding:3rem 0}.songs-empty{text-align:center;padding:3rem 0}.songs-list{display:flex;flex-direction:column;gap:.75rem;max-width:800px;margin:0 auto}.song-item{background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--t-med) var(--ease),box-shadow var(--t-med)}.song-item--open{border-color:var(--color-pink);box-shadow:0 8px 24px -8px #e91e6326}.song-item__header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background var(--t-fast)}.song-item__header:hover{background:var(--color-pink-bg)}.song-item__info{display:flex;flex-direction:column;gap:.2rem}.song-item__title{font-family:var(--font-heading);font-size:1.15rem;font-weight:500;color:var(--color-ink)}.song-item__artist{font-size:.85rem;color:var(--color-muted)}.song-item__meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.song-item__chevron{font-size:.65rem;color:var(--color-pink);transition:transform var(--t-med) var(--ease)}.song-item__lyrics{padding:1.25rem 1.5rem 1.5rem;border-top:1px solid var(--color-line);animation:rise var(--t-med) var(--ease) forwards}.lyrics-text{font-family:var(--font-body);font-size:1rem;line-height:1.8;white-space:pre-wrap;color:var(--color-ink);margin:0;background:var(--color-pink-bg);border-radius:var(--radius);padding:1.5rem}.songs-sub-list{display:flex;flex-direction:column;gap:.4rem}.songs-no-lyrics{font-size:.9rem;padding:.25rem 0}.song-sub-item{background:var(--color-white, #fff);border:1px solid var(--color-line);border-radius:var(--radius);overflow:hidden}.song-sub-item--open{border-color:var(--color-pink)}.song-sub-item__header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background var(--t-fast)}.song-sub-item__header:hover{background:var(--color-pink-bg)}.song-sub-item__title{font-size:1rem;font-weight:500;color:var(--color-ink)}.song-sub-item__lyrics{padding:1rem 1.1rem 1.1rem;border-top:1px solid var(--color-line)}.song-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.1rem;background:var(--color-white, #fff);border:1px solid var(--color-line);border-radius:var(--radius);text-decoration:none;color:var(--color-ink);font-size:1rem;font-weight:500;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.song-link:hover{background:var(--color-pink-bg);border-color:var(--color-pink);color:var(--color-pink)}.song-link__title{flex:1}.song-link__arrow{font-size:.9rem;color:var(--color-pink);flex-shrink:0;transition:transform var(--t-fast)}.song-link:hover .song-link__arrow{transform:translate(3px)}.teachers-photo-section{margin-bottom:3rem}.teachers-photo{margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 50px -15px #e91e6333}.teachers-photo img{width:100%;height:auto;display:block;max-height:520px;object-fit:cover}.teachers-photo figcaption{background:var(--color-pink);color:#fff;text-align:center;padding:.75rem 1rem;font-family:var(--font-heading);font-style:italic;font-size:1.1rem;letter-spacing:.02em}.song-detail__loading{display:flex;justify-content:center;padding:5rem 0}.song-detail__back{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-heading);font-size:.95rem;color:var(--color-pink);text-decoration:none;margin-bottom:2.5rem;transition:opacity var(--t-fast)}.song-detail__back:hover{opacity:.75}.song-detail__header{max-width:700px;margin:0 auto 2.5rem;text-align:center}.song-detail__artist-name{display:block;font-family:var(--font-heading);font-size:1rem;color:var(--color-pink);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.6rem}.song-detail__title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3rem);font-weight:400;line-height:1.15;color:var(--color-ink);margin:0}.song-detail__body{max-width:700px;margin:0 auto}.song-detail__lyrics{font-family:var(--font-body);font-size:1.05rem;line-height:1.9;white-space:pre-wrap;color:var(--color-ink);margin:0;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:2.5rem}.song-detail__footer{max-width:700px;margin:1.5rem auto 0;text-align:right}.song-detail__source{font-family:var(--font-heading);font-size:.9rem;color:var(--color-muted);text-decoration:none;transition:color var(--t-fast)}.song-detail__source:hover{color:var(--color-pink)}:root{--color-pink: #e91e63;--color-pink-dark: #c2185b;--color-pink-light: #ff6090;--color-pink-soft: #ffd6e7;--color-pink-bg: #fff5f8;--color-ink: #2d1b2e;--color-ink-soft: #5a3d5c;--color-cream: #ffffff;--color-line: rgba(45, 27, 46, .1);--color-muted: rgba(45, 27, 46, .55);--color-accent: #fbbf24;--font-display: "Caveat", cursive;--font-heading: "Fraunces", serif;--font-body: "Poppins", system-ui, sans-serif;--max-w: 1280px;--gutter: clamp(1.25rem, 4vw, 3rem);--radius-sm: 4px;--radius: 8px;--radius-lg: 16px;--ease: cubic-bezier(.22, 1, .36, 1);--t-fast: .2s;--t-med: .4s;--t-slow: .7s}[data-theme=dark]{--color-pink-bg: #1a0d14;--color-cream: #231520;--color-ink: #f5e8f0;--color-ink-soft: #c9a8be;--color-line: rgba(245, 232, 240, .1);--color-muted: rgba(245, 232, 240, .5);--color-pink-soft: #4a1535}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-pink-bg);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5{font-family:var(--font-heading);font-weight:500;line-height:1.05;letter-spacing:-.02em;margin:0;color:var(--color-ink)}h1{font-size:clamp(2.5rem,7vw,5.5rem);font-weight:400}h2{font-size:clamp(2rem,4.5vw,3.5rem);font-weight:500}h3{font-size:clamp(1.4rem,2.5vw,2rem);font-weight:500}p{margin:0 0 1rem}a{color:var(--color-pink);text-decoration:none;transition:color var(--t-fast) var(--ease)}a:hover{color:var(--color-pink-dark)}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}.container{max-width:var(--max-w);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.section{padding:clamp(4rem,10vw,8rem) 0}.section--tight{padding:clamp(3rem,6vw,5rem) 0}.eyebrow{font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-pink);display:inline-flex;align-items:center;gap:.6rem}.eyebrow:before{content:"";display:inline-block;width:28px;height:1px;background:var(--color-pink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.9rem 1.75rem;border-radius:999px;border:1px solid transparent;font-weight:500;font-size:.95rem;letter-spacing:.01em;cursor:pointer;text-decoration:none;transition:all var(--t-med) var(--ease);position:relative;overflow:hidden}.btn--primary{background:var(--color-pink);color:#fff}.btn--primary:hover{background:var(--color-pink-dark);color:#fff;transform:scale(1.05) translateY(-2px);box-shadow:0 8px 20px -5px #e91e6366}.btn--ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn--ghost:hover{background:var(--color-ink);color:#fff}.btn--cream{background:var(--color-cream);color:var(--color-ink)}.btn--cream:hover{background:var(--color-pink-soft);color:var(--color-ink)}.btn--small{padding:.55rem 1.1rem;font-size:.85rem}.field{margin-bottom:1.25rem}.field label{display:block;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-soft);margin-bottom:.5rem}.field input,.field textarea,.field select{width:100%;padding:.85rem 1rem;background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:1rem;color:var(--color-ink);transition:border-color var(--t-fast) var(--ease)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--color-pink)}.field textarea{min-height:140px;resize:vertical}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rise{opacity:0;animation:rise var(--t-slow) var(--ease) forwards}.rise-1{animation-delay:.1s}.rise-2{animation-delay:.25s}.rise-3{animation-delay:.4s}.rise-4{animation-delay:.55s}.text-center{text-align:center}.muted{color:var(--color-muted)}.divider{height:1px;background:var(--color-line);margin:2rem 0}.tag{display:inline-block;padding:.3rem .75rem;border-radius:999px;background:var(--color-pink-soft);color:var(--color-ink-soft);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--color-line);border-top-color:var(--color-pink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--color-ink);color:var(--color-cream);padding:1rem 1.5rem;border-radius:var(--radius);font-size:.9rem;z-index:1000;box-shadow:0 20px 40px -10px #0000004d;animation:rise .3s var(--ease)}.toast--success{background:#2d5e3e}.toast--error{background:var(--color-pink-dark)}@media (max-width: 768px){body{font-size:15px}}
