@import "https://fonts.googleapis.com/css2?family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,600&family=Jost:ital,wght@0,300;0,400;0,500;0,600;1,400&family=JetBrains+Mono:wght@400;500&display=swap";:root{--ink-900:#0b0a24;--ink-800:#100e33;--ink-700:#151342;--ink-600:#201d5c;--ink-500:#2f2b7a;--ink-400:#4a46a0;--ink-300:#7b78c0;--ink-200:#b6b4dd;--ink-100:#dedcef;--ink-050:#f0eff8;--gold-900:#6d451a;--gold-800:#8a5a22;--gold-700:#b9792f;--gold-600:#c9974f;--gold-500:#d9a95f;--gold-400:#e2b478;--gold-300:#eecb9b;--gold-200:#f3dca9;--gold-100:#f9edd4;--gold-050:#fdf7ea;--cream-050:#fffdf9;--cream-100:#fbf8f3;--cream-200:#f4efe6;--cream-300:#e8e1d4;--cream-400:#d3caba;--stone-500:#9a9285;--stone-600:#6f6960;--stone-700:#4a4640;--white:#ffffff;--success-600:#2e7d5b;--success-100:#e4f2ea;--warning-600:#c98a2e;--warning-100:#fbf0dc;--danger-600:#b3383a;--danger-100:#f8e6e6;--info-600:#3b5ba9;--info-100:#e7ecf8;--gradient-gold:linear-gradient(100deg,#b9792f 0%,#e2b478 28%,#f3dca9 46%,#c9974f 66%,#8a5a22 100%);--gradient-gold-soft:linear-gradient(100deg,#e2b478 0%,#f3dca9 50%,#d9a95f 100%);--gradient-ink:linear-gradient(160deg,#201d5c 0%,#151342 55%,#0b0a24 100%);--gradient-duotone:linear-gradient(95deg,#d9a95f 0%,#c9974f 35%,#4a46a0 72%,#151342 100%);--surface-page:var(--cream-100);--surface-card:var(--white);--surface-raised:var(--cream-050);--surface-sunken:var(--cream-200);--surface-inverse:var(--ink-700);--surface-inverse-raised:var(--ink-600);--surface-accent:var(--gold-050);--text-heading:var(--ink-700);--text-body:var(--stone-700);--text-muted:var(--stone-600);--text-subtle:var(--stone-500);--text-on-inverse:var(--cream-100);--text-on-inverse-muted:var(--ink-200);--text-accent:var(--gold-800);--text-link:var(--ink-500);--text-link-hover:var(--gold-800);--border-hairline:var(--cream-300);--border-default:var(--cream-400);--border-strong:var(--ink-200);--border-accent:var(--gold-600);--border-inverse:rgba(243,220,169,.28);--accent-primary:var(--gold-700);--accent-primary-hover:var(--gold-800);--accent-primary-press:var(--gold-900);--accent-secondary:var(--ink-700);--focus-ring:rgba(201,151,79,.55);--overlay-scrim:rgba(11,10,36,.62)}:root{--font-script:"Great Vibes",cursive;--font-display:"Cormorant Garamond",Georgia,serif;--font-body:"Jost","Helvetica Neue",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--fs-100:12px;--fs-200:13px;--fs-300:15px;--fs-400:17px;--fs-500:20px;--fs-600:26px;--fs-700:34px;--fs-800:46px;--fs-900:64px;--fs-1000:88px;--lh-tight:1.06;--lh-snug:1.2;--lh-normal:1.5;--lh-loose:1.7;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--ls-tightest:-0.02em;--ls-tight:-0.01em;--ls-normal:0;--ls-wide:0.06em;--ls-widest:0.18em;--type-hero-family:var(--font-display);--type-hero-size:var(--fs-1000);--type-hero-weight:var(--fw-light);--type-hero-lh:var(--lh-tight);--type-h1-size:var(--fs-800);--type-h2-size:var(--fs-700);--type-h3-size:var(--fs-600);--type-eyebrow-size:var(--fs-100);--type-eyebrow-ls:var(--ls-widest);--type-body-size:var(--fs-300);--type-body-lh:var(--lh-loose);--type-caption-size:var(--fs-200)}:root{--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--gutter-inline:24px;--gutter-inline-lg:64px;--measure-prose:62ch;--container-max:1200px;--container-narrow:760px;--section-y:var(--space-9);--control-h-sm:34px;--control-h-md:44px;--control-h-lg:54px}:root{--radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-xl:22px;--radius-pill:999px;--radius-card:var(--radius-lg);--radius-control:var(--radius-pill);--radius-input:var(--radius-sm);--radius-image:var(--radius-md)}:root{--shadow-none:none;--shadow-xs:0 1px 2px rgba(21,19,66,.06);--shadow-sm:0 2px 8px rgba(21,19,66,.07);--shadow-md:0 10px 28px -12px rgba(21,19,66,.18);--shadow-lg:0 26px 60px -24px rgba(21,19,66,.28);--shadow-gold:0 12px 30px -14px rgba(185,121,47,.45);--shadow-inset-hairline:inset 0 0 0 1px var(--border-hairline);--blur-veil:saturate(140%) blur(14px)}:root{--ease-glide:cubic-bezier(.22,.61,.36,1);--ease-in-out:cubic-bezier(.45,0,.55,1);--ease-entrance:cubic-bezier(.16,.84,.44,1);--dur-instant:90ms;--dur-fast:160ms;--dur-base:260ms;--dur-slow:520ms;--dur-ambient:1400ms;--transition-control:background-color var(--dur-fast) var(--ease-glide),color var(--dur-fast) var(--ease-glide),border-color var(--dur-fast) var(--ease-glide),transform var(--dur-fast) var(--ease-glide)}*,*::before,*::after{box-sizing:border-box}body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-lh);-webkit-font-smoothing:antialiased;text-wrap:pretty}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-heading);font-weight:var(--fw-regular);line-height:var(--lh-snug);margin:0 0 var(--space-4)}h1{font-size:var(--type-h1-size);letter-spacing:var(--ls-tight)}h2{font-size:var(--type-h2-size);letter-spacing:var(--ls-tight)}h3{font-size:var(--type-h3-size)}p{margin:0 0 var(--space-4);max-width:var(--measure-prose)}a{color:var(--text-link);text-decoration:none;border-bottom:1px solid var(--border-accent);transition:color var(--dur-fast)var(--ease-glide),border-color var(--dur-fast)var(--ease-glide)}a:hover{color:var(--text-link-hover);border-color:var(--gold-800)}small{font-size:var(--type-caption-size)}::selection{background:var(--gold-200);color:var(--ink-700)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.vd-eyebrow{font-family:var(--font-body);font-size:var(--type-eyebrow-size);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--text-accent);font-weight:var(--fw-medium)}.vd-script{font-family:var(--font-script);font-weight:400;line-height:1.25}.vd-gold-text{background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;color:transparent}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:88px}img{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}figure,blockquote{margin:0}.container{max-width:calc(var(--container-max) + 2 * var(--gutter-inline-lg));margin:0 auto;padding-inline:var(--gutter-inline-lg)}.container-narrow{max-width:calc(var(--container-narrow) + 2 * var(--gutter-inline-lg))}.section{position:relative;padding-block:var(--section-y)}.section-sunken{background:var(--surface-sunken)}.section-ink{background:var(--gradient-ink);color:var(--text-on-inverse);overflow:hidden}.section-head{text-align:center;margin:0 auto var(--space-7);max-width:var(--container-narrow)}.lede p{color:var(--text-muted)}.section-head .lede p{margin-inline:auto}.section-head .vd-eyebrow,.about-copy .vd-eyebrow,#contact .vd-eyebrow{margin-bottom:var(--space-3)}.script-word{font-size:max(1.22em,28px);line-height:.7;display:inline-block;padding-inline:.04em;background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;color:transparent}.section-ink .script-word,.hero .script-word{background-image:var(--gradient-gold-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h-md);padding-inline:var(--space-5);border-radius:var(--radius-control);border:1px solid transparent;font:var(--fw-medium)var(--fs-200)/1 var(--font-body);letter-spacing:var(--ls-wide);text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:var(--transition-control),box-shadow var(--dur-fast)var(--ease-glide),filter var(--dur-fast)var(--ease-glide)}.btn-lg{height:var(--control-h-lg);padding-inline:var(--space-6)}.btn:active{transform:translateY(1px)scale(.99)}.btn-primary{background:var(--gradient-gold);color:var(--ink-700);border-color:transparent;box-shadow:var(--shadow-gold)}.btn-primary:hover{color:var(--ink-700);filter:brightness(1.06);border-color:transparent}.btn-outline{background:0 0;color:var(--ink-700);border-color:var(--border-accent)}.btn-outline:hover{background:var(--gold-050);color:var(--ink-700);border-color:var(--border-accent)}.btn-inverse-outline{background:0 0;color:var(--cream-050);border-color:var(--border-accent)}.btn-inverse-outline:hover{background:var(--ink-600);color:var(--cream-050);border-color:var(--gold-400)}.badge{display:inline-flex;align-items:center;height:24px;padding-inline:var(--space-3);border-radius:var(--radius-pill);background:var(--surface-accent);color:var(--text-accent);border:1px solid var(--gold-300);font:var(--fw-medium)11px/1 var(--font-body);letter-spacing:var(--ls-wide);text-transform:uppercase;white-space:nowrap}.badge-inverse{background:rgba(243,220,169,.14);color:var(--gold-200);border-color:var(--border-inverse)}.badge-gold{background:var(--gradient-gold);color:var(--ink-700);border-color:transparent}.tag{height:var(--control-h-sm);padding-inline:var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-body);font:var(--fw-medium)var(--fs-200)/1 var(--font-body);letter-spacing:var(--ls-wide);text-transform:uppercase;cursor:pointer;transition:var(--transition-control)}.tag:hover{background:var(--gold-050)}.tag[aria-pressed=true]{background:var(--ink-700);border-color:var(--ink-700);color:var(--cream-050)}.icon{flex:none}.ornament{display:flex;align-items:center;gap:var(--space-3);color:var(--gold-600);max-width:320px;margin:var(--space-6)0;font-size:var(--fs-300)}.ornament span{flex:1;height:2px;background:var(--gradient-gold);opacity:.7}.card{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--dur-base)var(--ease-glide),box-shadow var(--dur-base)var(--ease-glide)}.card-body{padding:var(--space-5)}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.site-header{position:sticky;top:0;z-index:10;background:var(--ink-700);border-bottom:1px solid var(--border-inverse)}.header-inner{display:flex;align-items:center;gap:var(--space-6);min-height:76px}.site-header a:not(.btn),.site-footer a{border-bottom:0}.logo img{height:48px;width:auto}.menu{display:flex;gap:var(--space-5);margin-inline-start:auto}.menu a{color:var(--ink-200);font-size:var(--fs-200);letter-spacing:var(--ls-wide);text-transform:uppercase;padding-block:var(--space-2)}.menu a:hover{color:var(--gold-300)}.header-actions{display:flex;align-items:center;gap:var(--space-4)}.lang-switch{display:flex;gap:var(--space-1)}.lang-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:var(--control-h-sm);border-radius:var(--radius-pill);color:var(--ink-200);font-size:var(--fs-200);letter-spacing:var(--ls-wide);text-transform:uppercase}.lang-switch a:hover{color:var(--cream-050);background:var(--ink-600)}.lang-switch a[aria-current]{color:var(--ink-700);background:var(--gold-300)}.hero{position:relative;overflow:hidden;background:var(--gradient-ink);color:var(--text-on-inverse);padding-block:110px 120px}.hero-glow{position:absolute;inset:0;opacity:.5;pointer-events:none;background:radial-gradient(60% 80% at 78% 22%,rgba(226,180,120,.28) 0%,transparent 62%)}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);gap:var(--space-8);align-items:center}.hero .vd-eyebrow{color:var(--gold-300)}.hero-title{font-size:clamp(var(--fs-800),6vw,72px);font-weight:var(--fw-light);line-height:1.04;letter-spacing:var(--ls-tightest);color:var(--cream-050);margin:20px 0 0}.hero-lede p{margin-top:26px;max-width:46ch;font-size:19px;font-weight:var(--fw-light);line-height:1.6;color:var(--ink-200)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.credentials{display:flex;flex-wrap:wrap;gap:var(--space-3)var(--space-6);margin-top:var(--space-7);color:var(--ink-200);font-size:var(--fs-200)}.credentials li{display:inline-flex;align-items:center;gap:var(--space-2)}.credentials .icon{color:var(--gold-400)}.hero-photo{position:relative;aspect-ratio:5/4;border-radius:var(--radius-image);overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:58% 42%}.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,10,36,0) 46%,rgba(11,10,36,.8) 100%)}.hero-photo figcaption{position:absolute;z-index:1;left:var(--space-5);right:var(--space-5);bottom:var(--space-4)}.hero-photo-title{display:block;font:var(--fw-light)24px/1.1 var(--font-display);color:var(--cream-050)}.hero-photo-sub{display:block;margin-top:var(--space-1);font-size:11px;letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--gold-300)}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-8);align-items:center}.portrait{aspect-ratio:3/4;border-radius:var(--radius-image);overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}.placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:var(--gradient-ink);color:var(--gold-300)}.placeholder .icon{opacity:.35}.placeholder span{font-size:var(--fs-200);letter-spacing:var(--ls-wide);color:var(--ink-200);opacity:.7}.teacher-name{margin:0 0 var(--space-1);font-size:var(--fs-600)}.teacher-role{margin-bottom:var(--space-4);font-size:var(--fs-100);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-accent)}.callout{display:flex;gap:var(--space-3);align-items:flex-start;max-width:var(--measure-prose);margin:0 0 var(--space-4);padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface-accent);border:1px solid var(--gold-300)}.callout .icon{color:var(--gold-700);margin-top:2px}.callout p{margin:0;font-size:14px}.callout .callout-label{margin-bottom:6px;font-size:var(--fs-100);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-accent)}.milestones{display:grid;gap:var(--space-4)}.milestones li{display:grid;grid-template-columns:74px 1fr;gap:var(--space-4);align-items:baseline}.milestone-year{font:var(--fw-light)24px/1 var(--font-display);color:var(--gold-800)}.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:var(--space-6)}.class-media{position:relative;aspect-ratio:16/10;background:var(--gradient-ink);display:flex;align-items:flex-start;padding:var(--space-4)}.class-media::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 80% 20%,rgba(226,180,120,.18) 0%,transparent 60%)}.class-media .badge{position:relative;z-index:1}.class-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.class-title-row h3{margin-bottom:var(--space-2)}.meta{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--fs-200);margin-bottom:var(--space-3)}.meta .icon{color:var(--gold-700)}.num,.amount{font-family:var(--font-display)}.meta .num{font-size:var(--fs-300);color:var(--text-heading)}.class-card .card-body>p:last-child{margin-bottom:0}.testimonial{text-align:center}.testimonial .container{position:relative}.testimonial .ornament{margin:0 auto var(--space-6);max-width:200px}.testimonial blockquote p{max-width:none;margin:0;font:var(--fw-light)var(--fs-700)/1.35 var(--font-display);color:var(--cream-050)}.testimonial figcaption{margin-top:var(--space-5);color:var(--gold-300)}.testimonial figure+figure{margin-top:var(--space-8)}.price-card .card-body{display:flex;flex-direction:column;height:100%;padding:var(--space-6)}.price-card{position:relative}.price-card .badge{position:absolute;top:var(--space-5);right:var(--space-5)}.price-note{color:var(--text-muted)}.price-amount{margin:var(--space-2)0 var(--space-5);display:flex;align-items:baseline;gap:var(--space-2)}.amount{font-size:var(--fs-900);font-weight:var(--fw-light);line-height:1;color:var(--text-heading)}.unit{color:var(--text-muted);font-size:var(--fs-300)}.features{display:grid;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--border-hairline)}.features li{display:flex;gap:var(--space-2);align-items:flex-start}.features .icon{color:var(--gold-700);margin-top:5px}.price-featured{background:var(--gradient-ink);border-color:var(--ink-600);color:var(--text-on-inverse);box-shadow:var(--shadow-lg)}.price-featured h3,.price-featured .amount{color:var(--cream-050)}.price-featured .price-note,.price-featured .unit{color:var(--ink-200)}.price-featured .features{border-color:var(--border-inverse)}.price-featured .features .icon{color:var(--gold-400)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center}.contact-card .card-body{padding:var(--space-6)}.contact-list{display:grid;gap:14px;font-size:var(--fs-300)}.contact-list li{display:flex;align-items:center;gap:var(--space-3)}.contact-list .icon{color:var(--gold-700)}.contact-card .card:hover,.contact-card:hover{transform:none;box-shadow:var(--shadow-sm)}.site-footer{background:var(--ink-800);color:var(--ink-200);padding-block:var(--space-8)var(--space-6)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-7)}.footer-logo{height:54px;width:auto}.footer-text p{margin-top:var(--space-4);font-size:14px;color:var(--ink-300);max-width:34ch}.footer-links,.footer-social{display:grid;gap:10px;align-content:start;font-size:14px}.site-footer a{color:var(--ink-200)}.site-footer a:hover{color:var(--gold-300)}.footer-legal{margin-top:var(--space-7)}.footer-legal p{max-width:none;margin:0;padding-top:var(--space-4);border-top:1px solid var(--border-inverse);font-size:12px;color:var(--ink-300)}@media(max-width:960px){.container{padding-inline:var(--gutter-inline)}.header-inner{flex-wrap:wrap;gap:var(--space-3)var(--space-4);padding-block:var(--space-3)}.menu{order:3;width:100%;margin:0;justify-content:center;gap:var(--space-4);overflow-x:auto}.header-actions{margin-inline-start:auto}.hero{padding-block:var(--space-8)var(--space-9)}.hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:var(--space-7)}.portrait{max-width:420px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-grid{grid-template-columns:1fr;max-width:480px;margin-inline:auto}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>:first-child{grid-column:1/-1}}@media(max-width:640px){:root{--section-y:var(--space-8)}.header-actions .btn{display:none}.hero-title{font-size:var(--fs-800)}.hero-lede p{font-size:var(--fs-400)}.card-grid{grid-template-columns:1fr}.testimonial blockquote p{font-size:var(--fs-600)}.actions .btn{flex:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important}.card:hover,.btn:active{transform:none}}