@font-face {
    font-family: 'Fraunces';
    src: url('/fonts/fraunces-normal-400.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Fraunces';
    src: url('/fonts/fraunces-italic-400.woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

.ga {
    --ga-navy: #0d1522;
    --ga-navy-2: #131e31;
    --ga-panel: #17233a;
    --ga-gold: #d2a75a;
    --ga-cream: #f2ecdf;
    --ga-cream-2: #c9c2b2;
    background: var(--ga-navy);
    color: var(--ga-cream);
    margin: -24px;
    font-family: inherit;
}
@media (min-width: 768px) {
    .ga { margin: -36px; }
}

.ga-hero {
    position: relative;
    min-height: 420px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.ga-hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 30%;
}
.ga-hero-overlay {
    position: relative;
    width: 100%;
    padding: 96px 28px 32px;
    background: linear-gradient(180deg, rgba(13,21,34,0) 0%, rgba(13,21,34,0.55) 45%, rgba(13,21,34,0.92) 100%);
}
.ga-hero-kicker {
    font-size: 13px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ga-gold);
    margin: 0 0 8px;
}
.ga-hero-title {
    font-family: 'Fraunces', serif;
    font-weight: 560;
    font-size: 44px;
    line-height: 1.04;
    letter-spacing: -0.02em;
    margin: 0 0 10px;
}
.ga-hero-sub {
    font-size: 16px;
    line-height: 1.5;
    color: var(--ga-cream);
    max-width: 34ch;
    margin: 0;
}
@media (min-width: 768px) {
    .ga-hero { min-height: 520px; }
    .ga-hero-title { font-size: 60px; }
    .ga-hero-overlay { padding: 120px 48px 44px; }
}

.ga-section { padding: 28px 24px 4px; }
@media (min-width: 768px) { .ga-section { padding: 36px 48px 8px; } }

.ga-h2 {
    font-family: 'Fraunces', serif;
    font-weight: 560;
    font-size: 24px;
    letter-spacing: -0.01em;
    color: var(--ga-cream);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(210, 167, 90, 0.35);
}
.ga-intro {
    font-size: 15px;
    line-height: 1.65;
    color: var(--ga-cream-2);
    margin: 0;
    max-width: 58ch;
}
.ga-body {
    font-size: 15px;
    line-height: 1.6;
    color: var(--ga-cream-2);
    margin: 0 0 14px;
}

.ga-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}
.ga-tab {
    font: inherit;
    font-size: 13.5px;
    min-height: 44px;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid rgba(242, 236, 223, 0.28);
    background: transparent;
    color: var(--ga-cream-2);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ga-tab:hover { border-color: var(--ga-gold); color: var(--ga-cream); }
.ga-tab.is-active {
    background: var(--ga-gold);
    border-color: var(--ga-gold);
    color: #1a1408;
    font-weight: 600;
}

.ga-panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: var(--ga-panel);
    border: 1px solid rgba(242, 236, 223, 0.08);
    border-radius: 16px;
    padding: 22px;
}
@media (min-width: 768px) {
    .ga-panel { flex-direction: row; align-items: flex-start; }
    .ga-panel-text { flex: 1 1 55%; }
    .ga-panel .ga-video, .ga-panel .ga-ytcard { flex: 0 0 320px; max-width: 320px; }
}
.ga-panel-name {
    font-family: 'Fraunces', serif;
    font-weight: 560;
    font-size: 21px;
    margin: 0 0 4px;
    color: var(--ga-cream);
}
.ga-panel-detail {
    font-size: 13.5px;
    color: var(--ga-gold);
    margin: 0 0 10px;
}
.ga-panel-desc { font-size: 14.5px; line-height: 1.6; color: var(--ga-cream-2); margin: 0; }
.ga-panel-link { margin: 12px 0 0; font-size: 14px; }

.ga-video {
    width: 100%;
    border-radius: 12px;
    background: #000;
    aspect-ratio: 9 / 16;
    max-height: 520px;
    object-fit: cover;
    display: block;
}
.ga-videos {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 18px;
}
@media (min-width: 640px) { .ga-videos { grid-template-columns: 1fr 1fr; } }

.ga-ytcard {
    position: relative;
    display: block;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    background: #000;
}
.ga-ytcard img { width: 100%; display: block; aspect-ratio: 4/3; object-fit: cover; }
.ga-ytcard-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    color: #fff;
    text-shadow: 0 2px 12px rgba(0,0,0,0.6);
}
.ga-ytcard-caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 22px 12px 10px;
    font-size: 12.5px;
    color: #fff;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,0.75));
}

.ga-facts { list-style: none; margin: 0; padding: 0; }
.ga-facts li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(242, 236, 223, 0.12);
}
.ga-facts li:last-child { border-bottom: 0; }
.ga-facts span {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ga-gold);
}
.ga-facts strong { font-size: 14.5px; font-weight: 500; color: var(--ga-cream); line-height: 1.5; }
@media (min-width: 768px) {
    .ga-facts li { flex-direction: row; align-items: baseline; gap: 24px; }
    .ga-facts span { flex: 0 0 150px; }
}

.ga-caption { font-size: 12.5px; color: var(--ga-cream-2); opacity: 0.85; margin: 10px 0 0; }

.ga-cta { margin: 18px 0 6px; }
.ga-contact { font-size: 14px; }

.ga-footer {
    margin-top: 34px;
    padding: 22px 24px 30px;
    border-top: 1px solid rgba(242, 236, 223, 0.12);
    font-size: 12.5px;
    color: var(--ga-cream-2);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
@media (min-width: 768px) { .ga-footer { padding: 26px 48px 36px; flex-direction: row; justify-content: space-between; } }
.ga-footer p { margin: 0; }

/* Photos strip on dark ground */
.ga .ds-photos img, .ga [class*='photos'] img { border-radius: 12px; }

.ga a { color: var(--ga-gold); }
.ga a:hover { color: #e3c07f; }

.ga-cards { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 640px) { .ga-cards { grid-template-columns: repeat(3, 1fr); } }
.ga-card {
    background: var(--ga-panel);
    border: 1px solid rgba(242, 236, 223, 0.08);
    border-radius: 16px;
    padding: 20px;
}
.ga-card h3 { font-family: 'Fraunces', serif; font-weight: 560; font-size: 18px; margin: 0 0 8px; color: var(--ga-cream); }
.ga-card p { font-size: 14px; line-height: 1.55; color: var(--ga-cream-2); margin: 0; }

.ga-teacher { display: flex; flex-direction: column; gap: 18px; }
@media (min-width: 640px) { .ga-teacher { flex-direction: row; align-items: flex-start; } .ga-teacher img { flex: 0 0 240px; max-width: 240px; } }
.ga-teacher img { width: 100%; border-radius: 12px; display: block; }
.ga-teacher h3 { font-family: 'Fraunces', serif; font-weight: 560; font-size: 20px; margin: 0 0 8px; color: var(--ga-cream); }
.ga-teacher p { font-size: 14.5px; line-height: 1.6; color: var(--ga-cream-2); margin: 0 0 10px; }

.ga-faq-item { border-bottom: 1px solid rgba(242, 236, 223, 0.12); }
.ga-faq-item:last-child { border-bottom: 0; }
.ga-faq-q {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-height: 52px;
    padding: 12px 0;
    background: none;
    border: 0;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    color: var(--ga-cream);
    text-align: left;
    cursor: pointer;
}
.ga-faq-icon { font-size: 20px; color: var(--ga-gold); }
.ga-faq-a { font-size: 14px; line-height: 1.6; color: var(--ga-cream-2); margin: 0 0 14px; }

.ga-selo { display: flex; align-items: center; gap: 22px; margin-top: 34px; padding: 22px 24px 0; border-top: 1px solid rgba(242, 236, 223, 0.12); }
.ga-selo img { width: 110px; height: auto; display: block; flex: none; }
.ga-selo p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--ga-cream-2); max-width: 340px; }
@media (min-width: 768px) { .ga-selo { padding: 26px 48px 0; } }

.ga-musiclab{margin-top:36px;padding-top:32px;padding-bottom:30px;background:#101a2b;border-top:1px solid rgba(210,167,90,.35);border-bottom:1px solid rgba(210,167,90,.35);}
.ga-mlogo{display:block;width:104px;height:104px;object-fit:contain;border-radius:50%;margin-bottom:18px;}
.ga-sec-kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ga-gold);}
.ga-ml-title{font-family:'Fraunces',serif;font-weight:560;font-size:clamp(36px,5vw,54px);line-height:1.08;margin:10px 0 18px;}
.ga-ml-lead{font-size:21px;line-height:1.4;color:var(--ga-cream);}
.ga-musiclab p{line-height:1.65;max-width:65ch;}
.ga-ml-intro p:not(.ga-ml-lead):not(.ga-sec-kicker),.ga-ml-journey p,.ga-ml-keepsake p{font-size:14.5px;color:var(--ga-cream-2);}
.ga-ml-journey{display:grid;grid-template-columns:1fr;gap:0;margin:28px 0;}
.ga-ml-journey article{padding:20px 0;border-top:1px solid rgba(210,167,90,.25);}
.ga-ml-journey span{font-size:12px;color:var(--ga-gold);}
.ga-ml-journey h3,.ga-ml-keepsake h3{font-family:'Fraunces',serif;font-weight:560;font-size:22px;line-height:1.2;margin:10px 0;}
.ga-ml-keepsake{padding-left:18px;border-left:2px solid var(--ga-gold);}
@media(min-width:768px){.ga-ml-journey{grid-template-columns:1fr 1fr;column-gap:30px;}}

.ga-ml-intro{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;}
.ga-ml-leadphoto{margin:0;min-width:0;}.ga-ml-leadphoto img{display:block;width:100%;height:auto;border-radius:12px;}
.ga-ml-leadphoto figcaption{font-size:12px;color:var(--ga-cream-2);line-height:1.5;margin-top:9px;}
@media(min-width:900px){.ga-ml-intro{grid-template-columns:1fr 1.2fr;gap:30px;}}

.ga-ml-records{margin-top:20px;}.ga-ml-records h3{font-family:'Fraunces',serif;font-size:26px;margin:30px 0 18px;}
.ga-ml-film{margin:0;}.ga-ml-film video{display:block;width:100%;height:auto;background:#000;border-radius:12px;}
.ga-ml-film figcaption{font-size:12px;line-height:1.5;color:var(--ga-cream-2);margin-top:9px;}
#music-lab-experience{scroll-margin-top:24px;}

.ga-ml-summary{display:grid;gap:20px;border-top:1px solid rgba(210,167,90,.18);border-bottom:1px solid rgba(210,167,90,.18);}
.ga-ml-summary-title{display:flex;gap:12px;align-items:center;}.ga-ml-summary-title img{width:48px;height:48px;object-fit:contain;}.ga-ml-summary-title h2{font-family:'Fraunces',serif;font-size:24px;line-height:1.2;margin:0;}
.ga-ml-summary figure{margin:0;max-width:260px;}.ga-ml-summary figure img{width:100%;height:auto;display:block;border-radius:8px;}.ga-ml-summary figcaption{font-size:11px;color:var(--ga-cream-2);margin-top:6px;}
.ga-ml-more{display:inline-block;color:var(--ga-gold);font-size:14px;margin-top:8px;}
@media(min-width:768px){.ga-ml-summary{grid-template-columns:1.4fr 1fr;align-items:center;gap:32px;}.ga-ml-summary figure{justify-self:end;}}

.ga-media-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 20px;}.ga-media-buttons a{border:1px solid var(--ga-gold);color:var(--ga-cream);background:rgba(210,167,90,.08);padding:10px 18px;border-radius:6px;text-decoration:none;}

.ga-hotspot{border-radius:6px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ga-hotspot:focus-visible{outline:3px solid #d2a75a;outline-offset:2px}

*{box-sizing:border-box}html{background:#0d1522;color:#f2ecdf}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}main{max-width:1040px;margin:auto}main .ga{margin:0!important;min-height:100vh}img{max-width:100%}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #d2a75a;outline-offset:4px}h1,h2,h3{line-height:1.2}.ga-hero-overlay{box-sizing:border-box}.gallery{display:flex;gap:16px;overflow-x:auto;padding:12px 0 8px;scroll-snap-type:x mandatory}.photo{border:0;padding:0;background:transparent;border-radius:12px;cursor:zoom-in;flex:none;max-width:100%;scroll-snap-align:start}.photo img{display:block;max-height:500px;width:auto;max-width:100%;object-fit:contain;border-radius:12px}.gallery .photo:not(:only-child){max-width:85%}.contact-button{display:inline-flex;align-items:center;min-height:48px;padding:12px 20px;border:1px solid #d2a75a;border-radius:6px;color:#f2ecdf!important;background:#17233a;text-decoration:none}.faq{border-bottom:1px solid rgba(242,236,223,.12)}.faq summary{list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-size:22px;color:#d2a75a}.faq[open] summary:after{content:'−'}.ga-section:last-child{padding-bottom:32px}#photo-viewer{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:60px 16px 85px;border:0;background:#080c12;color:#f2ecdf;overflow:auto}#photo-viewer::backdrop{background:#080c12}#photo-viewer[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}.viewer-image{max-width:100%;max-height:100%;overflow:auto}.viewer-image img{max-height:75dvh;max-width:100%;object-fit:contain;cursor:zoom-in}.viewer-image.zoom img{max-width:none;max-height:none;width:1600px;cursor:zoom-out}.viewer-footer{position:fixed;bottom:0;left:0;right:0;padding:14px 20px;display:flex;align-items:center;gap:12px;background:#080c12}.viewer-footer span{flex:1;text-align:center;font-size:13px}#photo-viewer button{min-width:44px;min-height:44px;border:1px solid #d2a75a;color:#f2ecdf;background:#17233a;border-radius:6px;font-size:22px;cursor:pointer}#close-photo{position:fixed;top:12px;right:16px;z-index:2}.ga-selo img{max-width:32%}.ga-ml-summary{padding-bottom:24px}@media(max-width:360px){.ga-hero-title{font-size:38px}.ga-hero-overlay{padding-left:22px;padding-right:22px}.ga-selo{gap:14px}}
