
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

  :root{
    --bg:#F6F3EE;
    --bg-alt:#EDE7DD;
    --fg:#141316;
    --fg-soft:#57545C;
    --fg-faint:#8A8790;
    --accent:#5F6B85;
    --accent-strong:#3E4759;
    --line:rgba(20,19,22,.14);
    --card:#FFFFFF;
    --stage-glow: rgba(150,161,190,.35);
    --role-vocal:#3E4759; --role-vocal-bg:rgba(95,107,133,.14);
    --role-acting:#95542F; --role-acting-bg:rgba(179,102,63,.16);
    --role-dance:#6B3F60; --role-dance-bg:rgba(122,79,110,.16);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#131215;
      --bg-alt:#1B1A1E;
      --fg:#F3F1EC;
      --fg-soft:#BFBBB4;
      --fg-faint:#847F87;
      --accent:#9BA6C2;
      --accent-strong:#C4CCE0;
      --line:rgba(243,241,236,.16);
      --card:#1C1B1F;
      --stage-glow: rgba(155,166,194,.28);
      --role-vocal:#AEB9D2; --role-vocal-bg:rgba(155,166,194,.18);
      --role-acting:#E3A377; --role-acting-bg:rgba(224,138,91,.18);
      --role-dance:#D3A0C4; --role-dance-bg:rgba(192,136,179,.18);
    }
  }
  :root[data-theme="dark"]{
    --bg:#131215;
    --bg-alt:#1B1A1E;
    --fg:#F3F1EC;
    --fg-soft:#BFBBB4;
    --fg-faint:#847F87;
    --accent:#9BA6C2;
    --accent-strong:#C4CCE0;
    --line:rgba(243,241,236,.16);
    --card:#1C1B1F;
    --stage-glow: rgba(155,166,194,.28);
    --role-vocal:#AEB9D2; --role-vocal-bg:rgba(155,166,194,.18);
    --role-acting:#E3A377; --role-acting-bg:rgba(224,138,91,.18);
    --role-dance:#D3A0C4; --role-dance-bg:rgba(192,136,179,.18);
  }

  *{box-sizing:border-box;}
  button, select, input, textarea{ font-family:'Inter',ui-sans-serif,system-ui,sans-serif; }
  button{
    appearance:none; -webkit-appearance:none; -moz-appearance:none;
    background:none; border:none; margin:0; padding:0; color:inherit; cursor:pointer;
  }
  select{ appearance:none; -webkit-appearance:none; -moz-appearance:none; }
  body{
    margin:0;
    background:var(--bg);
    color:var(--fg);
    font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{display:block;max-width:100%;}
  a{color:inherit;}
  ::selection{background:var(--accent);color:var(--bg);}

  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  @media (max-width:720px){ .wrap{padding:0 20px;} }

  h1,h2,h3{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;text-wrap:balance;margin:0;}
  .mono{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;}
  .eyebrow{
    font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
    font-size:0.78125rem; font-weight:600;  text-transform:uppercase;
    color:var(--accent-strong); display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:"→";width:22px;flex:0 0 22px;display:inline-block;font-size:1.125rem;line-height:1;}

  /* ===== NAV ===== */
  .nav{
    position:sticky; top:0; z-index:50;
    background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .home-page{--hero-header-offset:77px;}
  .home-page .nav{
    position:fixed;left:0;right:0;
    transition:background .2s ease,border-color .2s ease;
  }
  .home-page .nav.is-at-top:not(.is-menu-open){
    background:transparent;border-bottom-color:transparent;
    backdrop-filter:none;-webkit-backdrop-filter:none;
  }
  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px;}
  .brand{display:flex;align-items:center;text-decoration:none;}
  .brand img, .foot-brand img{height:58px;width:auto;}
  .foot-brand img{height:42px;}
  .brand .logo-dark, .foot-brand .logo-dark{display:none;}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .brand .logo-default,
    :root:not([data-theme="light"]) .foot-brand .logo-default{display:none;}
    :root:not([data-theme="light"]) .brand .logo-dark,
    :root:not([data-theme="light"]) .foot-brand .logo-dark{display:block;}
  }
  :root[data-theme="dark"] .brand .logo-default,
  :root[data-theme="dark"] .foot-brand .logo-default{display:none;}
  :root[data-theme="dark"] .brand .logo-dark,
  :root[data-theme="dark"] .foot-brand .logo-dark{display:block;}
  .nav-links{display:flex;gap:34px;list-style:none;margin:0;padding:0;}
  .nav-links a{font-size:0.90625rem;font-weight:600;text-decoration:none;color:var(--fg-soft);transition:color .15s;}
  .nav-links a:hover{color:var(--fg);}
  .nav-links a.nav-event, .nav-mobile-panel a.nav-event{color:var(--accent-strong) !important;}
  .nav-actions{display:flex;align-items:center;gap:12px;min-width:0;}
  .nav-cta{
    display:inline-flex;align-items:center;justify-content:center;min-height:44px;line-height:1.25;
    font-size:0.84375rem;font-weight:700;padding:11px 20px;border-radius:100px;
    background:var(--stage);color:var(--on-stage);text-decoration:none;white-space:nowrap;
    transition:transform .15s, opacity .15s;
  }
  .nav-cta:hover{opacity:.85;}
  .nav-toggle{
    display:none; background:none; border:none; cursor:pointer; padding:8px; margin:-8px;
    color:var(--fg); align-items:center; justify-content:center;
  }
  .nav-toggle svg{width:24px;height:24px;display:block;}
  .nav-actions .nav-toggle{margin:0;flex-shrink:0;}
  .nav-toggle .icon-close{display:none;}
  .nav-toggle.is-open .icon-open{display:none;}
  .nav-toggle.is-open .icon-close{display:block;}
  .nav-mobile-panel{
    display:none;
    position:absolute; left:0; right:0; top:100%;
    background:var(--bg); border-bottom:1px solid var(--line);
    padding:6px 0 22px; box-shadow:0 20px 34px rgba(0,0,0,.14);
  }
  .nav-mobile-panel.is-open{display:block;}
  .nav-mobile-panel .wrap{display:flex;flex-direction:column;gap:0;}
  .nav-mobile-panel a{
    padding:15px 2px; font-size:0.96875rem; font-weight:600; color:var(--fg); text-decoration:none;
    border-bottom:1px solid var(--line);
  }
  .nav-mobile-panel a.btn{
    border-bottom:none; margin-top:16px; text-align:center; justify-content:center;
  }
  @media (max-width:1100px){
    .nav-links{display:none;}
    .nav-toggle{display:flex;}
  }
  @media (max-width:520px){
    .nav-inner{gap:12px;}
    .nav-actions{gap:8px;}
    .nav-cta{padding:10px 14px;white-space:normal;text-align:center;}
  }
  @media (min-width:1101px){
    .nav-toggle{display:none !important;}
    .nav-mobile-panel{display:none !important;}
  }

  /* ===== HERO ===== */
  .hero{
    position:relative;
    background:
      radial-gradient(60% 60% at 82% 8%, var(--stage-glow), transparent 70%),
      radial-gradient(45% 45% at 8% 95%, var(--stage-glow), transparent 70%),
      var(--bg);
    padding:calc(76px + var(--hero-header-offset,0px)) 0 96px;
    border-bottom:1px solid var(--line);
    overflow:hidden;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;
  }
  @media (max-width:940px){ .hero-grid{grid-template-columns:1fr;} }

  .hero-eyebrow-row{display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap;}
  .hero h1{
    font-size:clamp(40px,5.6vw,68px);
    line-height:1.03;
    font-weight:900;

  }
  .hero h1 em{
    font-style:normal;color:var(--accent-strong);
    position:relative;
  }
  .hero-sub{
    margin-top:24px; font-size:1.125rem; line-height:1.55; color:var(--fg-soft); max-width:46ch;
  }
  .hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;}
  .tag{
    font-size:0.8125rem; font-weight:700; padding:8px 14px; border-radius:100px;
    border:1px solid var(--line); color:var(--fg-soft);
    display:flex; align-items:center; gap:8px;
  }
  .tag .mono{color:var(--accent-strong);font-weight:600;}
  .hero-ctas{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;}
  .btn{
    font-size:0.9375rem;font-weight:700;padding:15px 26px;border-radius:100px;
    text-decoration:none;display:inline-flex;align-items:center;gap:10px;
    transition:transform .15s ease, opacity .15s ease, background .15s ease;
    border:1px solid transparent; cursor:pointer;
  }
  .btn-primary{background:var(--fg);color:var(--bg);}
  .btn-primary:hover{transform:translateY(-2px);opacity:.9;}
  .btn-ghost{border-color:var(--line);color:var(--fg);background:color-mix(in srgb, var(--fg) 9%, transparent);}
  .btn-ghost:hover{border-color:var(--fg-faint);background:color-mix(in srgb, var(--fg) 15%, transparent);}

  /* ===== STUDIO OPENING (announcement) ===== */
  .opening{
    position:relative; overflow:hidden; background:var(--fg);
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:80px 0;
  }
  .opening::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:
      radial-gradient(60% 70% at 85% 10%, var(--stage-glow), transparent 70%),
      radial-gradient(50% 60% at 5% 100%, var(--stage-glow), transparent 70%);
  }
  .opening-grid{
    position:relative; z-index:1;
    display:grid; grid-template-columns:.85fr 1fr; gap:56px; align-items:center;
  }
  @media (max-width:940px){ .opening-grid{grid-template-columns:1fr;} }
  .opening-badge{
    display:inline-flex; align-items:center; gap:10px;
    font-family:'Inter',ui-sans-serif,system-ui,sans-serif; font-size:0.78125rem; font-weight:700;  text-transform:uppercase;
    color:var(--bg); background:color-mix(in srgb, var(--bg) 14%, transparent);
    border:1px solid color-mix(in srgb, var(--bg) 30%, transparent);
    padding:9px 16px 9px 13px; border-radius:100px;
  }
  .pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);position:relative;flex:none;}
  .pulse-dot::after{
    content:""; position:absolute; inset:-4px; border-radius:50%;
    border:1.5px solid var(--accent); animation:pulse-ring 1.8s ease-out infinite;
  }
  @keyframes pulse-ring{
    0%{transform:scale(.6);opacity:1;}
    100%{transform:scale(1.9);opacity:0;}
  }
  @media (prefers-reduced-motion:reduce){ .pulse-dot::after{animation:none;} }
  .opening-content h2{
    font-size:clamp(30px,4vw,44px); font-weight:900;
    color:var(--bg); margin-top:18px;
  }
  .opening-dates{
    font-weight:800; font-size:clamp(22px,2.6vw,30px);
    color:var(--accent); margin-top:10px;
  }
  .opening-content > p{
    color:color-mix(in srgb, var(--bg) 82%, transparent); font-size:1rem; line-height:1.65;
    margin-top:16px; max-width:52ch;
  }
  .opening-activities{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
  .opening-activities li{display:flex;align-items:center;gap:11px;font-size:1.0625rem;font-weight:700;color:var(--bg);}
  .opening-emoji{font-size:1.25rem;}
  .opening-times-label{
    margin-top:22px; font-size:0.8125rem; font-weight:600;
    color:color-mix(in srgb, var(--bg) 70%, transparent);
  }
  .opening-times{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
  .opening-time{
    font-family:'Inter',ui-sans-serif,system-ui,sans-serif; font-weight:600; font-size:0.875rem;
    padding:8px 14px; border-radius:100px; color:var(--bg);
    background:color-mix(in srgb, var(--bg) 10%, transparent);
    border:1px solid color-mix(in srgb, var(--bg) 26%, transparent);
  }
  .opening-note{margin-top:22px; font-size:0.96875rem; font-weight:600; color:var(--bg);}
  .opening-cta.btn{margin-top:24px; background:var(--accent); color:#fff;}
  .opening-cta.btn:hover{opacity:.88;}

  /* ===== SECTION SHELL ===== */
  section{padding:96px 0;}
  .section-alt{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:52px;flex-wrap:wrap;}
  .section-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:700;max-width:20ch;}
  .section-head p{color:var(--fg-soft);font-size:1rem;max-width:38ch;margin-top:10px;line-height:1.55;}
  .scene-no{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:0.8125rem;color:var(--fg-faint);}

  /* ===== WHY (3 pillars) ===== */
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;}
  @media (max-width:820px){ .pillars{grid-template-columns:1fr;} }
  .pillar{background:var(--card);padding:36px 32px;}
  .pillar .mono{color:var(--fg-faint);font-size:0.8125rem;}
  .pillar h3{font-size:1.1875rem;font-weight:700;margin-top:16px;line-height:1.3;}
  .pillar p{color:var(--fg-soft);font-size:0.90625rem;line-height:1.6;margin-top:10px;}

  .who-row{
    margin-top:44px; display:flex; gap:14px 40px; flex-wrap:wrap; align-items:center;
    padding-top:36px; border-top:1px solid var(--line);
  }
  .who-item{display:flex;align-items:baseline;gap:8px;font-size:0.90625rem;color:var(--fg-soft);}
  .who-item b{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:0.875rem;color:var(--fg);font-weight:600;}

  /* ===== PROGRAMS ===== */
  .programs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media (max-width:900px){ .programs{grid-template-columns:1fr;} }
  .program-card{
    background:var(--card); border:1px solid var(--line); border-radius:22px;
    padding:34px 30px; display:flex; flex-direction:column; gap:18px;
  }
  .program-card .mono{font-size:0.75rem;color:var(--fg-faint);text-transform:uppercase;}
  .program-card h3{font-size:1.5rem;font-weight:700;}
  .program-card p{color:var(--fg-soft);font-size:0.90625rem;line-height:1.6;flex:1;}
  .program-meta{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--line);}
  .program-meta div{display:flex;justify-content:space-between;font-size:0.8125rem;color:var(--fg-soft);}
  .program-meta div b{color:var(--fg);font-weight:600;}

  .price-note{
    margin-top:40px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
    padding:26px 28px; border-radius:18px; background:var(--card); border:1px solid var(--line);
  }
  .price-note p{margin:0;font-size:0.90625rem;color:var(--fg-soft);max-width:52ch;line-height:1.55;}
  .price-note strong{color:var(--fg);}

  /* ===== PRICE MODAL ===== */
  .price-modal{
    position:relative; width:100%; max-width:560px; max-height:86vh; overflow-y:auto;
    background:var(--card); border:1px solid var(--line); border-radius:24px;
    padding:36px 32px 32px;
  }
  .price-modal-close{
    position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--bg-alt); color:var(--fg-soft); font-size:1.25rem; line-height:1; cursor:pointer;
    transition:color .15s;
  }
  .price-modal-close:hover{color:var(--fg);}
  .price-modal h3{font-size:1.375rem;font-weight:800;}
  .price-modal-sub{font-size:0.875rem;color:var(--fg-soft);margin-top:8px;line-height:1.5;}

  .price-trial{
    display:flex; justify-content:space-between; align-items:center; gap:16px;
    margin-top:24px; padding:16px 18px; border-radius:14px; background:var(--bg-alt);
  }
  .price-trial-title{font-size:0.875rem;font-weight:700;color:var(--fg);}
  .price-trial-title span{display:block;font-weight:500;color:var(--fg-soft);font-size:0.75rem;margin-top:2px;}
  .price-trial-value{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:1.0625rem;color:var(--fg);white-space:nowrap;}

  .price-plans-label{
    margin-top:26px; font-size:0.75rem; font-weight:700;
    text-transform:uppercase; color:var(--fg-faint);
  }
  .price-plans{display:flex;flex-direction:column;gap:12px;margin-top:28px;}
  .price-plan{
    position:relative; border:1px solid var(--line); border-radius:16px; padding:18px 20px;
  }
  .price-plan.is-best{
    border-color:color-mix(in srgb, var(--accent) 55%, transparent);
    background:color-mix(in srgb, var(--accent) 7%, transparent);
  }
  .price-plan-badge{
    position:absolute; top:-11px; left:16px;
    font-size:0.75rem; font-weight:800;  text-transform:uppercase;
    padding:4px 11px; border-radius:100px; background:var(--accent); color:#fff;
  }
  .price-plan-head{display:flex; justify-content:space-between; align-items:flex-start; gap:14px;}
  .price-plan-title{font-size:0.90625rem;font-weight:700;color:var(--fg);display:flex;align-items:center;gap:8px;}
  .price-plan-title .emoji{font-size:1rem;}
  .price-plan-sub{font-size:0.78125rem;color:var(--fg-soft);margin-top:4px;line-height:1.4;}
  .price-plan-price{text-align:right;flex:none;}
  .price-plan-total{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:1rem;color:var(--fg);white-space:nowrap;}
  .price-plan-unit{font-size:0.75rem;color:var(--fg-faint);margin-top:2px;}
  .price-plan-per{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:0.75rem;font-weight:600;color:var(--fg-soft);margin-top:3px;}
  .price-plan-save{
    margin-top:12px; padding-top:12px; border-top:1px dashed color-mix(in srgb, var(--accent) 45%, transparent);
    font-size:0.78125rem; font-weight:700; color:var(--accent-strong);
    display:flex; align-items:baseline; gap:6px;
  }
  .price-plan-save b{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:0.84375rem;}
  .price-modal-cta{margin-top:26px;width:100%;justify-content:center;}

  /* ===== FOUNDER ===== */
  .founder{display:grid;grid-template-columns:.9fr 1fr;gap:56px;align-items:start;}
  @media (max-width:860px){ .founder{grid-template-columns:1fr;} }
  .founder-photo{
    position:sticky; top:100px;
    border-radius:24px; overflow:hidden; aspect-ratio:3/4; border:1px solid var(--line);
  }
  @media (max-width:860px){ .founder-photo{position:relative;top:0;} }
  .founder-photo img{
    width:100%;height:100%;object-fit:cover;object-position:top center;
    filter:grayscale(1) contrast(1.05); transition:filter .5s ease;
  }
  .founder-photo:hover img{filter:grayscale(0) contrast(1);}
  .founder-badge{
    position:absolute; left:18px; bottom:18px; background:color-mix(in srgb, var(--bg) 85%, transparent);
    backdrop-filter:blur(6px); border:1px solid var(--line); border-radius:100px;
    padding:8px 16px; font-size:0.78125rem; font-weight:700; font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
  }
  .founder-text .eyebrow{margin-bottom:18px;}
  .founder-text h2{font-size:clamp(28px,3.6vw,42px);font-weight:900;}
  .founder-role{color:var(--accent-strong);font-weight:700;font-size:1rem;margin-top:10px;}
  .founder-text p.bio{color:var(--fg-soft);font-size:1rem;line-height:1.7;margin-top:20px;max-width:52ch;}

  .bio-list{
    list-style:none; margin:0; padding:0; max-width:52ch;
    display:flex; flex-direction:column; gap:11px;
  }
  .bio-list li{
    position:relative; padding-left:24px;
    font-size:0.875rem; line-height:1.55; color:var(--fg-soft);
  }
  .bio-list li::before{
    content:"→"; position:absolute; left:0; top:0;
    color:var(--fg-faint); font-size:1em; line-height:inherit;
  }
  .bio-list.lg{margin-top:22px;gap:13px;}
  .bio-list.lg li{font-size:1rem;line-height:1.6;padding-left:24px;}

  /* ===== TEACHERS ===== */
  .teachers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start;}
  @media (max-width:980px){ .teachers-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:620px){ .teachers-grid{grid-template-columns:1fr;} }
  .teacher-card{
    background:var(--card); border:1px solid var(--line); border-radius:22px; overflow:hidden;
    display:flex; flex-direction:column;
  }
  .teacher-photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bg-alt);}
  .teacher-photo img{
    width:100%;height:100%;object-fit:cover;object-position:top center;
    filter:grayscale(1) contrast(1.05);
    transition:transform .5s ease, filter .5s ease;
  }
  .teacher-card:hover .teacher-photo img{transform:scale(1.03);filter:grayscale(0) contrast(1);}
  .teacher-photo .exp{
    position:absolute; top:14px; right:14px; background:color-mix(in srgb, var(--fg) 78%, transparent);
    color:var(--bg); font-family:'Inter',ui-sans-serif,system-ui,sans-serif; font-size:0.75rem; font-weight:600;
    padding:6px 10px; border-radius:100px;
  }
  .teacher-photo .top-badge{
    position:absolute; top:14px; left:14px;
    background:var(--accent); color:#fff;
    font-family:'Inter',ui-sans-serif,system-ui,sans-serif; font-size:0.75rem; font-weight:700;
     text-transform:uppercase;
    padding:6px 11px 6px 9px; border-radius:100px;
    display:flex; align-items:center; gap:5px; white-space:nowrap;
  }
  .teacher-photo .top-badge svg{width:11px;height:11px;flex:none;}
  .teacher-body{padding:22px 22px 26px;display:flex;flex-direction:column;gap:12px;flex:1;}
  .teacher-body h3{font-size:1.125rem;font-weight:700;line-height:1.25;}
  .teacher-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .role-pill{
    display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:100px;
    font-size:0.75rem; font-weight:700;  text-transform:uppercase;
    width:fit-content;
  }
  .role-pill.role-vocal{color:var(--role-vocal);background:var(--role-vocal-bg);}
  .role-pill.role-acting{color:var(--role-acting);background:var(--role-acting-bg);}
  .role-pill.role-dance{color:var(--role-dance);background:var(--role-dance-bg);}
  .teacher-insta{
    width:30px;height:30px;border-radius:50%;border:1px solid var(--line);flex:none;
    display:flex;align-items:center;justify-content:center;color:var(--fg-soft);
    transition:color .15s,border-color .15s;
  }
  .teacher-insta:hover{color:var(--accent-strong);border-color:var(--accent-strong);}
  .teacher-insta svg{width:15px;height:15px;}
  .teacher-body p{font-size:0.84375rem;line-height:1.55;color:var(--fg-soft);margin:0;flex:1;}
  .teacher-body .bio-list{flex:1;}

  /* ===== FIND US (Instagram + location) ===== */
  .find-us-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;align-items:stretch;}
  @media (max-width:900px){ .find-us-grid{grid-template-columns:1fr;} }
  .insta-card{
    background:var(--card); border:1px solid var(--line); border-radius:22px;
    padding:30px; display:flex; flex-direction:column; gap:24px;
  }
  .insta-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
  .insta-who{display:flex;align-items:center;gap:14px;}
  .insta-who svg{width:34px;height:34px;color:var(--accent-strong);flex:none;}
  .insta-handle{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-weight:700;font-size:1rem;}
  .insta-sub{font-size:0.8125rem;color:var(--fg-soft);margin-top:2px;}
  .insta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
  [class^="elfsight-app-"]{min-height:420px;border-radius:14px;background:var(--bg-alt);}
  .insta-tile{
    aspect-ratio:1; border-radius:14px; background:var(--bg-alt); border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center; color:var(--fg-faint);
    transition:color .15s, border-color .15s;
  }
  .insta-tile svg{width:26px;height:26px;}
  .insta-tile:hover{color:var(--accent-strong);border-color:var(--accent-strong);}

  .location-card{
    background:var(--card); border:1px solid var(--line); border-radius:22px;
    padding:32px 30px; display:flex; flex-direction:column;
  }
  .location-map-mark{
    width:52px;height:52px;border-radius:50%; background:var(--bg-alt);
    display:flex;align-items:center;justify-content:center;color:var(--accent-strong);
  }
  .location-map-mark svg{width:24px;height:24px;}
  .location-address{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-weight:700;font-size:1.1875rem;line-height:1.4;margin-top:24px;}
  .metro-list{display:flex;flex-direction:column;gap:20px;margin-top:16px;}
  .location-email{
    display:flex; align-items:center; gap:9px; margin-top:16px;
    font-size:0.875rem; font-weight:600; color:var(--fg-soft); text-decoration:none;
  }
  .location-email svg{width:17px;height:17px;color:var(--fg-faint);flex:none;}
  .location-email:hover{color:var(--accent-strong);}
  .metro-chip,.metro-route-link{font-size:0.875rem;font-weight:600;color:var(--fg-soft);}
  .metro-chip{display:flex;align-items:center;gap:9px;}
  .metro-dot{
    width:24px;height:24px;border-radius:50%;flex:none;
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:0.75rem;font-weight:800;font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
  }
  .metro-dot.metro-green{background:#1E8449;}
  .metro-dot.metro-blue{background:#1565C0;}

  /* ===== CTA / CONTACT ===== */
  .cta-section{position:relative;background:var(--stage);color:var(--on-stage);}
  .cta-box{
    background:none; color:var(--on-stage); border-radius:0; padding:0;
    display:grid; grid-template-columns:1fr .82fr; gap:48px; align-items:center;
    position:relative;
  }
  @media (max-width:860px){ .cta-box{grid-template-columns:1fr;} }
  .cta-copy .eyebrow{color:var(--accent-strong);}
  .cta-copy h2{font-size:clamp(26px,3.4vw,38px);font-weight:900;color:var(--bg);margin-top:16px;}
  .cta-copy p{color:color-mix(in srgb, var(--bg) 72%, transparent);font-size:0.96875rem;line-height:1.6;margin-top:16px;max-width:44ch;}

  .lead-form{
    background:color-mix(in srgb, var(--bg) 8%, transparent);
    border:1px solid color-mix(in srgb, var(--bg) 22%, transparent);
    border-radius:20px; padding:26px; display:flex; flex-direction:column; gap:14px;
    position:relative; z-index:1;
  }
  .lead-form .field{display:flex;flex-direction:column;gap:6px;}
  .lead-form label{font-size:0.75rem;font-weight:600;color:color-mix(in srgb, var(--bg) 65%, transparent);text-transform:uppercase;}
  .lead-form input, .lead-form select{
    width:100%;
    background:color-mix(in srgb, var(--bg) 10%, transparent);
    border:1px solid color-mix(in srgb, var(--bg) 26%, transparent);
    color:var(--bg); border-radius:10px; padding:12px 14px; font-size:0.90625rem;
    outline:none;
  }
  .lead-form input::placeholder{color:color-mix(in srgb, var(--bg) 45%, transparent);}
  .select-wrap{position:relative;}
  .select-wrap select{padding-right:38px;}
  .select-wrap .select-chevron{
    position:absolute; right:14px; top:50%; transform:translateY(-50%);
    width:16px; height:16px; color:var(--bg); opacity:.7; pointer-events:none;
  }
  .lead-form select option{color:#111;}
  .lead-form input:focus, .lead-form select:focus{border-color:var(--accent-strong);}

  .multiselect{position:relative;}
  .multiselect-toggle{
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
    background:color-mix(in srgb, var(--bg) 10%, transparent);
    border:1px solid color-mix(in srgb, var(--bg) 26%, transparent);
    color:var(--bg); border-radius:10px; padding:12px 14px; font-size:0.90625rem; font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
    cursor:pointer; text-align:left;
  }
  .multiselect-toggle .ms-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .multiselect-toggle .ms-chevron{width:16px;height:16px;flex:none;opacity:.7;transition:transform .15s;}
  .multiselect.open .multiselect-toggle .ms-chevron{transform:rotate(180deg);}
  .multiselect.open .multiselect-toggle{border-color:var(--accent-strong);}
  .multiselect-panel{
    position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:20;
    background:var(--card); border:1px solid var(--line); border-radius:14px;
    padding:8px; box-shadow:0 16px 40px rgba(0,0,0,.28);
    max-height:260px; overflow-y:auto;
  }
  .multiselect-panel label.ms-option{
    display:flex; align-items:baseline; gap:9px; padding:9px 10px; border-radius:8px;
    font-size:0.875rem; font-weight:600; color:var(--fg); cursor:pointer;
    text-transform:none;
  }
  .ms-option:hover{background:var(--bg-alt);}
  .ms-option span{font-weight:500;color:var(--fg-soft);font-size:0.8125rem;text-transform:none;}
  .ms-option input{accent-color:var(--accent-strong);width:15px;height:15px;flex:none;}
  .lead-form button[type="submit"]{
    width:100%; margin-top:6px; background:var(--bg); color:var(--fg); border:none; border-radius:100px;
    padding:14px; font-size:0.9375rem; font-weight:700; cursor:pointer; font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
    transition:opacity .15s;
  }
  .lead-form button[type="submit"]:hover{opacity:.88;}
  .lead-form .success{
    display:none; text-align:center; padding:20px 6px; font-size:0.9375rem; line-height:1.5;
  }
  .lead-form .success strong{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;display:block;font-size:1.125rem;margin-bottom:6px;}
  .lead-form.sent .field, .lead-form.sent button{display:none;}
  .lead-form.sent .success{display:block;}

  /* ===== FOOTER ===== */
  footer{padding:52px 0 40px;}
  .foot-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:32px;}
  .foot-brand{display:flex;align-items:center;text-decoration:none;}
  footer nav{display:flex;gap:24px;list-style:none;padding:0;margin:0;flex-wrap:wrap;}
  footer nav a{font-size:0.84375rem;color:var(--fg-soft);text-decoration:none;}
  footer nav a:hover{color:var(--fg);}
  .foot-copy{font-size:0.78125rem;color:var(--fg-faint);font-family:'Inter',ui-sans-serif,system-ui,sans-serif;}

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important;}
  }

/* Complete the supplied visual direction across viewports and both themes. */
:root{--stage:#141316;--on-stage:#F6F3EE;--stage-muted:#C2BEC8;--stage-accent:#CAD3E9;color-scheme:light;}
:root[data-theme="dark"]{color-scheme:dark;}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;}}
html{scroll-behavior:smooth;scroll-padding-top:100px;}
html.has-modal,html.has-route-modal{overflow:hidden;}
[hidden]{display:none !important;}
main:focus{outline:none;}
:focus-visible{outline:3px solid var(--accent-strong);outline-offset:5px;}
.skip-link{position:fixed;top:12px;left:16px;z-index:200;padding:12px 18px;background:var(--fg);color:var(--bg);border-radius:8px;transform:translateY(-160%);}
.skip-link:focus{transform:translateY(0);}
.nav-links{gap:clamp(14px,1.8vw,26px);}
.nav-links a,.nav-cta{font-size:.875rem;}
.nav-toggle{width:44px;height:44px;padding:10px;}
.nav-mobile-panel{max-height:calc(100dvh - 76px);overflow:auto;}
.hero-grid>*{min-width:0;}
.hero-portrait{position:relative;aspect-ratio:3/4;border-radius:26px;overflow:hidden;margin:0;background:var(--bg-alt);border:1px solid var(--line);}
.hero-portrait>img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:grayscale(1);}
.hero-caption{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(20,19,22,.84);backdrop-filter:blur(12px);color:#F6F3EE;border:1px solid #FFFFFF30;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;}
.hero-caption .mono{font-size:.75rem;color:#CAD3E9;margin-bottom:3px;}
.hero-caption strong{font-size:1.125rem;}
.hero-caption>span:last-child{font-size:.875rem;color:#D9D5DF;}
.hero-sub{max-width:47ch;}
.hero-tags .tag{font-size:.875rem;}
.btn{min-height:48px;line-height:1.45;justify-content:center;text-align:center;}
.opening{background:var(--stage);}
.opening-grid{grid-template-columns:.85fr 1fr;}
.opening-badge{color:var(--on-stage);background:#FFFFFF0D;border-color:#FFFFFF30;}
.opening-badge .pulse-dot{background:var(--stage-accent);}
.opening-badge .pulse-dot::after{display:none;}
.opening-content h2,.opening-activities li,.opening-note{color:var(--on-stage);}
.opening-dates{color:var(--stage-accent);}
.opening-content>p,.opening-times-label{color:var(--stage-muted);}
.opening-time{color:var(--on-stage);background:#FFFFFF0D;border-color:#FFFFFF30;}
.opening-cta.btn{background:var(--on-stage);color:var(--stage);}
.opening :focus-visible,.cta-box :focus-visible{outline-color:var(--stage-accent);}
.event-poster{min-height:530px;display:flex;flex-direction:column;border:1px solid #FFFFFF30;border-radius:26px;padding:30px 34px;background:#1F2027;color:var(--on-stage);}
.event-poster-top{font-size:.8125rem;color:var(--stage-accent);}
.event-poster-date{display:flex;flex-direction:column;font-size:clamp(90px,9.5vw,134px);font-weight:900;line-height:.96;margin:38px 0 18px;}
.event-poster-date>span:last-child{align-self:flex-end;color:var(--stage-accent);}
.event-poster-month{font-size:1.1875rem;font-weight:700;}
.event-poster-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;border-top:1px solid #FFFFFF30;padding-top:22px;margin-top:30px;line-height:1.5;}
.event-poster-bottom>span:first-child{font-size:1rem;font-weight:600;}
.event-poster-bottom>.mono{font-size:.75rem;text-align:right;color:var(--stage-muted);}
.pillar p,.program-card p,.bio-list li,.teacher-body p,.price-note p{font-size:1rem;line-height:1.65;}
.program-card{padding:30px 26px;}
.program-card h3{font-size:1.45rem;overflow-wrap:break-word;}
.program-meta>div{gap:16px;font-size:.875rem;line-height:1.5;}
.program-meta b{max-width:22ch;text-align:right;}
.who-item,.who-item b{font-size:.9375rem;line-height:1.5;}
.teacher-photo .exp{top:auto;bottom:16px;right:16px;font-size:.75rem;background:rgba(20,19,22,.85);color:#F6F3EE;}
.teacher-photo .top-badge{font-size:.75rem;background:#46536D;color:#FFF;}
.teacher-insta{width:44px;height:44px;}
.teacher-insta svg{width:18px;height:18px;}
.role-pill{font-size:.75rem;line-height:1.5;}
.founder-badge{max-width:calc(100% - 36px);font-size:.75rem;line-height:1.5;}
.teacher-body{padding:24px;}
.teacher-body h3{font-size:1.1875rem;}
.location-card,.insta-card{min-width:0;}
.location-email{overflow-wrap:anywhere;}
.instagram-feed-wrap{position:relative;flex:1;min-width:0;}
#instagramFeed{min-height:0;border-radius:14px;overflow:hidden;}
#instagramFeed.has-feed{min-height:300px;}
.cta-box>*{min-width:0;}
.cta-copy .scene-no{color:var(--stage-muted) !important;}
.cta-copy .eyebrow{color:var(--stage-accent);}
.cta-copy h2{color:var(--on-stage);}
.cta-copy p{color:var(--stage-muted);font-size:1rem;}
.lead-form{background:#FFFFFF0D;border-color:#FFFFFF30;}
.lead-form label{font-size:.875rem;line-height:1.5;text-transform:none;color:var(--stage-muted);}
.lead-form input,.lead-form select,.multiselect-toggle{font-size:1rem;color:var(--on-stage);background:#FFFFFF0D;border-color:#FFFFFF40;line-height:1.5;min-height:48px;}
.lead-form input::placeholder{color:#B8B4BD;}
.lead-form select option{color:var(--fg);background:var(--card);}
.select-wrap .select-chevron{color:var(--on-stage);}
.lead-form input:focus,.lead-form select:focus,.multiselect.open .multiselect-toggle{border-color:var(--stage-accent);outline:2px solid var(--stage-accent);outline-offset:2px;}
.lead-form .form-hint{font-size:.75rem;line-height:1.5;color:var(--stage-muted);}
.lead-form .ms-option{align-items:center !important;min-height:44px;flex-wrap:wrap;gap:4px 9px !important;font-size:.9375rem !important;}
.lead-form .ms-option input{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0;padding:0;}
.lead-form .ms-option span{font-size:.8125rem;}
.multiselect-toggle .ms-label{white-space:normal;overflow-wrap:anywhere;}
.multiselect-panel{max-height:280px;}
.lead-form button[type="submit"]{background:var(--on-stage);color:var(--stage);min-height:48px;}
.lead-form button[type="submit"]:disabled{cursor:progress;opacity:.65;}
.form-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.lead-form .success{color:var(--on-stage);font-size:1rem;}
.price-modal{position:fixed;inset:0;margin:auto;height:fit-content;color:var(--fg);width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:36px 28px 28px;overscroll-behavior:contain;box-shadow:0 28px 100px #0005;}
.price-modal::backdrop{background:rgba(10,10,12,.66);backdrop-filter:blur(5px);}
.price-modal-close{top:12px;right:12px;width:44px;height:44px;font-size:1.5rem;}
.price-modal h3{padding-right:34px;}
.price-modal-sub{font-size:1rem;line-height:1.6;}
.price-plan-title{font-size:1rem;line-height:1.5;align-items:flex-start;}
.price-plan-title .emoji{flex:none;}
.price-plan-total{font-size:1rem;}
.price-plan-sub,.price-plan-save{font-size:.875rem;line-height:1.5;}
.price-plan-unit,.price-plan-per,.price-plan-badge,.price-plans-label,.price-trial-title span{font-size:.75rem;line-height:1.5;}
.price-plan-badge{background:#46536D;}
.price-plan-save{flex-wrap:wrap;}
.price-plan-save b{white-space:nowrap;}
.price-trial-title{font-size:.9375rem;line-height:1.5;}
.price-modal-cta{font-size:.9375rem;}
footer nav a{font-size:.875rem;padding:8px 0;}
@media(max-width:1100px){.nav-links{display:none;}.nav-toggle{display:flex;}}
@media(max-width:940px){
  .hero-grid{grid-template-columns:1fr 0.85fr;gap:32px;}
  .hero h1{font-size:clamp(36px,5.1vw,48px);}
  .hero-sub{font-size:1rem;}
  .hero{padding:calc(56px + var(--hero-header-offset,0px)) 0 56px;}
  .hero-tags{gap:8px;}
  .opening-grid{grid-template-columns:1fr 1fr;gap:32px;}
  .event-poster{padding:26px;min-height:480px;}
  .event-poster-date{font-size:clamp(84px,12vw,112px);}
  .event-poster-bottom{flex-wrap:wrap;}
}
@media(max-width:720px){
  section{padding:64px 0;}
  .hero{padding:calc(40px + var(--hero-header-offset,0px)) 0 56px;}
  .hero-grid{grid-template-columns:1fr;gap:34px;}
  .hero h1{font-size:clamp(36px,8vw,48px);line-height:1.08;}
  .hero-portrait{max-width:480px;width:100%;justify-self:center;aspect-ratio:4/4.7;}
  .hero-sub{font-size:1rem;margin-top:20px;}
  .hero-ctas{margin-top:26px;gap:10px;}
  .hero-ctas .btn{width:100%;}
  .hero-tags{margin:0 0 22px;}
  .tag{padding:8px 12px;}
  .opening{padding:56px 0;}
  .opening-grid{grid-template-columns:1fr;gap:32px;}
  .event-poster{min-height:0;padding:26px;max-width:480px;width:100%;justify-self:center;}
  .event-poster-date{flex-direction:row;justify-content:center;gap:4px;font-size:clamp(76px,18vw,120px);margin:34px 0 18px;line-height:1;}
  .event-poster-month{font-size:1rem;}
  .event-poster-bottom{margin-top:24px;}
  .section-head{margin-bottom:30px;gap:8px;}
  .section-head p{margin-bottom:0;}
  .pillar{padding:28px 24px;}
  .founder{gap:30px;}
  .founder-photo{max-width:480px;width:100%;justify-self:center;}
  .founder-text .bio-list.lg{max-width:none;}
  .price-note{padding:24px;gap:20px;}
  .price-note .btn{width:100%;}
  .cta-box{gap:28px;}
  .lead-form{padding:22px 18px;}
  .insta-card,.location-card{padding:24px;}
  .location-address{font-size:1.125rem;}
  .foot-inner{gap:26px;}
  .price-plan-head{flex-wrap:wrap;gap:12px;}
  .price-plan-price{text-align:left;}
  .price-trial{flex-wrap:wrap;}
  .price-modal{padding:32px 20px 24px;}
  .price-plan{padding:18px 16px;}
  .opening-times{gap:8px;}
  .opening-time{padding:8px 12px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation:none !important;transition:none !important;}}

/* Keep the portrait video uncropped, with a reachable sound control. */
.studio-video{position:relative;aspect-ratio:9/16;width:100%;max-width:430px;justify-self:center;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:var(--bg-alt);}
.studio-video video{display:block;width:100%;height:100%;object-fit:contain;}
.video-sound-toggle{position:absolute;right:16px;bottom:16px;z-index:2;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #FFFFFF70;border-radius:50%;background:rgba(20,19,22,.86);color:#FFF;backdrop-filter:blur(8px);transition:background .15s;}
.video-sound-toggle:hover{background:#141316;}
.video-sound-toggle:focus-visible{outline:3px solid #FFF;outline-offset:4px;}
.video-sound-toggle svg{width:23px;height:23px;pointer-events:none;}
.video-sound-toggle .sound-waves{display:none;}
.video-sound-toggle.is-unmuted .sound-muted-mark{display:none;}
.video-sound-toggle.is-unmuted .sound-waves{display:block;}
@media(max-width:720px){.studio-video{max-width:430px;border-radius:22px;}}

/* Program details stay inside the pricing dialog. */
.price-note{padding:0;background:none;border:0;justify-content:center;margin-top:32px;}

/* Only biographies that actually overflow receive a collapse control. */
.teacher-bio{position:relative;flex:0 0 auto;}
.teacher-bio.is-collapsible:not(.is-expanded){max-height:10.5rem;overflow:hidden;}
.teacher-bio.is-collapsible:not(.is-expanded)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:24px;background:linear-gradient(transparent,var(--card));pointer-events:none;}
.teacher-more{align-self:flex-start;margin-top:auto;min-height:44px;padding:8px 0;font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;color:var(--accent-strong);}
.teacher-more:hover{color:var(--fg);}

/* A quiet pulse draws attention to the open-days announcement. */
.opening-badge .pulse-dot::after{display:block;inset:-5px;border-color:var(--stage-accent);animation:pulse-ring 2s ease-out infinite;}
@media(prefers-reduced-motion:reduce){.opening-badge .pulse-dot::after{display:none;}}

/* Inter is the shared family; JavaScript applies the exact size-dependent metrics. */
body{font-optical-sizing:auto;letter-spacing:-0.01095978em;}

/* Keep the trial condition within the same card as its price. */
.price-trial{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;}
.price-trial-policy{grid-column:1/-1;margin:0;font-size:.875rem;line-height:1.5;color:var(--fg-soft);}
@media(max-width:380px){.price-trial{grid-template-columns:1fr;}}

/* Shared, expanded footer with direct routes to studio information. */
.site-footer{padding:64px 0 28px;border-top:1px solid var(--line);background:var(--bg-alt);}
.footer-grid{display:grid;grid-template-columns:1.15fr .85fr .95fr 1.1fr;gap:36px;align-items:start;}
.footer-grid>*{min-width:0;}
.footer-about .foot-brand{gap:12px;width:fit-content;}
.footer-about .foot-brand img{height:52px;}
.footer-name{font-size:1.375rem;font-weight:700;}
.footer-about p{max-width:29ch;font-size:.9375rem;line-height:1.65;color:var(--fg-soft);margin:18px 0 0;}
.site-footer .footer-col{display:block;}
.footer-col h2{font-size:1rem;line-height:1.4;font-weight:700;margin:0 0 14px;}
.footer-links{list-style:none;margin:0;padding:0;}
.footer-links a{display:inline-flex;align-items:center;min-height:40px;padding:7px 0;font-size:.875rem;line-height:1.5;color:var(--fg-soft);text-decoration:none;overflow-wrap:anywhere;}
.footer-links a:hover,.footer-links a[aria-current="page"]{color:var(--fg);text-decoration:underline;text-underline-offset:4px;}
.footer-payment-note,.footer-metro{font-size:.8125rem;line-height:1.65;color:var(--fg-soft);margin:18px 0 0;}
.footer-contacts address{font-size:.9375rem;font-style:normal;line-height:1.65;color:var(--fg-soft);}
.footer-contacts .footer-metro{margin:8px 0 14px;}
.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;}
.footer-bottom>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:.8125rem;color:var(--fg-soft);text-decoration:none;}
.footer-bottom>a:hover{color:var(--fg);}

/* The rules are a standalone reading page, with a linked contents list. */
.rules-header{padding:48px 0 56px;border-bottom:1px solid var(--line);}
.back-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-bottom:28px;font-size:.875rem;color:var(--fg-soft);text-decoration:none;}
.back-link:hover{color:var(--fg);}
.rules-header .eyebrow{margin-bottom:18px;}
.rules-header h1{max-width:18ch;font-size:clamp(2.25rem,5vw,4rem);font-weight:800;line-height:1.08;}
.rules-disciplines{font-size:.9375rem;line-height:1.6;color:var(--accent-strong);margin:24px 0;}
.rules-intro{max-width:68ch;font-size:1.0625rem;line-height:1.75;color:var(--fg-soft);margin:14px 0 0;}
.rules-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;padding-top:56px;padding-bottom:80px;align-items:start;}
.rules-toc{position:sticky;top:108px;max-height:calc(100dvh - 132px);overflow-y:auto;}
.rules-toc h2{font-size:1rem;margin:0 0 16px;}
.rules-toc ol{margin:0;padding-left:24px;}
.rules-toc li{padding-left:4px;color:var(--fg-faint);font-size:.8125rem;}
.rules-toc a{display:block;min-height:40px;padding:8px 0;font-size:.875rem;line-height:1.55;color:var(--fg-soft);text-decoration:none;}
.rules-toc a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:4px;}
.rules-article{min-width:0;}
.rule-section{padding:0 0 36px;margin:0 0 36px;border-bottom:1px solid var(--line);scroll-margin-top:12px;}
.rule-section h2{display:flex;gap:14px;align-items:baseline;font-size:clamp(1.3rem,2.3vw,1.625rem);font-weight:700;line-height:1.3;text-wrap:initial;margin:0 0 22px;}
.rule-number{flex:none;font-size:.8125rem;font-weight:600;color:var(--fg-faint);font-variant-numeric:tabular-nums;}
.rule-list{display:grid;gap:14px;list-style:disc;margin:0;padding-left:22px;}
.rule-list li{padding-left:4px;font-size:1rem;line-height:1.75;color:var(--fg-soft);}
.rule-list li::marker{content:"→  ";color:var(--accent);}
.rule-section>p,.rule-payment p,.rules-help p{font-size:1rem;line-height:1.75;color:var(--fg-soft);margin:14px 0 0;}
.rule-payment{padding:24px;background:var(--card);border:1px solid var(--line);border-radius:18px;margin:0 0 24px;}
.rule-payment h3{font-size:1.125rem;line-height:1.4;}
.rule-agreement{padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--card);}
.rule-agreement .rules-manifesto{font-size:1.375rem;font-weight:700;line-height:1.4;color:var(--fg);margin-top:24px;}
.rules-help h2{font-size:1.5rem;line-height:1.35;text-wrap:initial;}
.rules-help-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.rules-help-links .btn{font-size:.875rem;padding:14px 22px;}

/* Station routes are loaded on demand and share one full-screen player. */
.metro-route-row{display:flex;align-items:center;flex-wrap:wrap;gap:20px 10px;}
.metro-route-link{position:relative;display:inline;padding:0;border:0;background:none;line-height:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;white-space:nowrap;}
/* The link stays visually inline while remaining easy to tap. */
.metro-route-link::after{content:"";position:absolute;top:50%;right:0;left:0;height:44px;transform:translateY(-50%);}
.metro-route-link:hover{color:var(--fg);}
.route-dialog{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:var(--stage);color:var(--on-stage);}
.route-dialog[open]{display:flex;}
.route-dialog::backdrop{background:var(--stage);}
.route-screen{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:var(--stage);color:var(--on-stage);}
.route-screen:fullscreen{width:100vw;height:100vh;height:100dvh;}
.route-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));padding-right:max(20px,env(safe-area-inset-right));padding-left:max(20px,env(safe-area-inset-left));border-bottom:1px solid #FFFFFF26;}
.route-toolbar h2{font-size:1.0625rem;font-weight:600;line-height:1.4;text-wrap:initial;}
.route-close{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #FFFFFF40;border-radius:100px;font-size:.875rem;font-weight:600;color:var(--on-stage);}
.route-close:hover{background:#FFFFFF14;}
.route-close svg{width:20px;height:20px;flex:none;}
.route-dialog :focus-visible{outline-color:var(--stage-accent);}
.route-media{position:relative;display:flex;align-items:center;justify-content:center;flex:1 1 0;min-height:0;overflow:hidden;padding-bottom:max(8px,env(safe-area-inset-bottom));padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);}
.route-video{display:block;width:100%;height:100%;min-height:0;object-fit:contain;background:var(--stage);}
.route-loading{position:absolute;top:16px;left:50%;transform:translateX(-50%);margin:0;padding:10px 16px;border:1px solid #FFFFFF26;border-radius:100px;background:#141316E6;color:var(--on-stage);font-size:.875rem;white-space:nowrap;pointer-events:none;}
.route-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:var(--stage);text-align:center;}
.route-error p{font-size:1rem;line-height:1.5;margin:0;}
.route-error a{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;text-underline-offset:4px;}
@media(max-width:420px){.route-close{padding:8px;}.route-close span{display:none;}.route-toolbar{gap:12px;padding-right:16px;padding-left:16px;}}
@media(max-width:1000px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 48px;}
  .rules-layout{grid-template-columns:210px minmax(0,1fr);gap:32px;}
}
@media(max-width:760px){
  .rules-header{padding:28px 0 36px;}
  .rules-layout{grid-template-columns:1fr;gap:40px;padding-top:32px;padding-bottom:56px;}
  .rules-toc{position:static;max-height:none;padding:24px;background:var(--bg-alt);border:1px solid var(--line);border-radius:18px;}
  .rules-toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;}
  .rule-section{padding-bottom:28px;margin-bottom:28px;}
  .rule-agreement{padding:24px;}
}
@media(max-width:520px){
  .site-footer{padding-top:40px;}
  .footer-grid{grid-template-columns:1fr;gap:30px;}
  .footer-about p{max-width:38ch;}
  .footer-col h2{margin-bottom:10px;}
  .footer-links a{min-height:44px;}
  .footer-bottom{margin-top:28px;}
  .rules-toc ol{grid-template-columns:1fr;}
  .rules-intro{font-size:1rem;}
  .rule-section h2{gap:10px;}
  .rule-payment{padding:20px;}
  .rules-help-links .btn{width:100%;}
}
