@font-face{font-family:Manrope;src:url('/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Space Grotesk;src:url('/fonts/space-grotesk-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:IBM Plex Mono;src:url('/fonts/ibm-plex-mono-400.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:dark;--ink:#eeeeee;--graphite:#d7d7d7;--paper:#111111;--white:#202020;--muted:#afafaf;--line:#707070;--accent:#eeeeee;--serif:Georgia,'Times New Roman',serif;--sans:Manrope,Arial,sans-serif;--display:'Space Grotesk',Arial,sans-serif;--mono:'IBM Plex Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}a{color:inherit;text-underline-offset:.22em}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,.button{min-height:46px}button{cursor:pointer}:focus-visible{outline:3px solid var(--graphite);outline-offset:3px}img{max-width:100%;height:auto}.wrap{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;top:-5rem;left:1rem;background:var(--white);padding:.8rem;z-index:10}.skip-link:focus{top:1rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;border-bottom:1px solid var(--ink)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:700 1.15rem var(--display);letter-spacing:-.05em}.brand img{width:27px;height:45px;object-fit:contain}.light-page .brand img{filter:invert(1)}.nav{display:flex;align-items:center;gap:clamp(14px,3vw,32px);font-size:.88rem}.nav a{min-height:44px;min-width:44px;padding-inline:4px;display:inline-flex;align-items:center;text-decoration:none}.nav a:hover{text-decoration:underline}.kicker,.eyebrow,.micro{font:400 .72rem/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase}.accent{color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:1px solid var(--ink);background:var(--ink);color:var(--white);text-decoration:none;font-weight:600}.button:hover{background:var(--graphite);border-color:var(--graphite)}.button.secondary{background:transparent;color:var(--ink)}.button.secondary:hover{background:var(--ink);color:var(--white)}.link-arrow{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-weight:600}.site-footer{margin-top:88px;border-top:1px solid var(--ink);padding:28px 0 36px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.82rem}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.display{font:700 clamp(3rem,8vw,7.8rem)/.84 var(--display);letter-spacing:-.085em}.paper-rule{border-top:1px solid var(--ink)}.muted{color:var(--muted)}.status{min-height:1.5em;color:var(--muted);font-size:.88rem}.status.error{color:#333}.status.success{color:#222}.field{display:grid;gap:6px}.field label,.field-label{font-weight:600;font-size:.9rem}.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #85827c;background:var(--white);color:var(--ink);border-radius:0}.field textarea{min-height:100px;resize:vertical}.field input:disabled,.field select:disabled{background:#e6e3dc;color:#777}.check-row{display:flex;align-items:flex-start;gap:11px}.check-row input{width:21px;height:21px;flex:none;margin:2px 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{border:1px solid var(--ink);padding:22px;background:var(--paper)}.notice{border-left:4px solid var(--ink);padding:12px 16px;background:#e8e4dd}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Music uses a poster masthead and perforation-like rule to echo the supplied print. */
.music-hero{min-height:calc(100svh - 84px);display:grid;grid-template-columns:1fr minmax(180px,27%);align-items:center;gap:40px;padding:clamp(48px,10vh,112px) 0 72px}.music-title{font:700 clamp(4.5rem,14.5vw,13.2rem)/.72 var(--display);letter-spacing:-.105em;margin:22px 0 32px}.music-title span{display:block}.music-aside{align-self:end;border-top:1px solid var(--ink);padding-top:16px}.music-aside strong{display:block;font:700 1.15rem var(--display)}.music-links{display:flex;gap:14px 24px;flex-wrap:wrap;margin-top:26px}.music-links a{min-height:44px;display:flex;align-items:center}.print-rule{height:11px;background:radial-gradient(circle,var(--ink) 1.25px,transparent 1.6px) left center/10px 6px repeat-x;border:0}.music-section{padding:58px 0;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}.music-section h2{font:700 clamp(2rem,4vw,3.8rem)/.95 var(--display);letter-spacing:-.07em;margin:0}.sound-list{border-top:1px solid var(--ink)}.sound-list a{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none}.sound-list a:hover span:first-child{text-decoration:underline}.sound-list small{font:400 .72rem var(--mono);color:var(--muted)}
/* Lessons hierarchy: one booking form, then pricing and teaching details in varied rows. */
.lessons-hero{padding:68px 0 56px;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,330px);gap:50px;align-items:end}.lessons-hero h1{font:700 clamp(3.2rem,8vw,7.7rem)/.86 var(--display);letter-spacing:-.09em;max-width:900px;margin:18px 0}.lessons-hero p{max-width:620px}.hero-note{padding:22px 0;border-top:3px solid var(--ink);align-self:end}.hero-note p{margin:.35rem 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:20px 0 16px}.section-heading h2{font:700 clamp(2rem,4vw,3.5rem)/.95 var(--display);letter-spacing:-.07em;margin:0}.subject-list{border-top:1px solid var(--ink)}.subject-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;padding:19px 4px;border-bottom:1px solid var(--line)}.subject-number{font:400 .78rem var(--mono);color:var(--muted)}.subject-row h3{margin:0;font:700 1.4rem var(--display);letter-spacing:-.04em}.subject-row p{margin:2px 0 0;color:var(--muted);font-size:.9rem}.pricing{padding:54px 0;display:grid;grid-template-columns:1fr 1fr;gap:50px}.price-list{border-top:1px solid var(--ink)}.price-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.price-row strong{font:700 1.25rem var(--display)}.booking{padding:32px 0 8px;display:grid;grid-template-columns:minmax(190px,.75fr) minmax(0,1.25fr);gap:48px}.booking h2{font:700 clamp(2.4rem,5vw,4.4rem)/.9 var(--display);letter-spacing:-.08em;margin:.2em 0}.booking-form{display:grid;gap:18px}.choice-group{border:0;padding:0;margin:0}.choice-group legend{font-weight:600;margin-bottom:8px}.choice-options{display:flex;gap:9px;flex-wrap:wrap}.choice-options label{display:flex;align-items:center;gap:8px;border:1px solid #85827c;background:var(--white);min-height:46px;padding:8px 12px;cursor:pointer}.choice-options input{accent-color:var(--ink);width:18px;height:18px}.slot-results{border-top:1px solid var(--line);max-height:280px;overflow:auto}.slot-item{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}.slot-item input{width:20px;height:20px;accent-color:var(--ink)}.lesson-detail{padding:52px 0;display:grid;grid-template-columns:1fr 1fr;gap:50px}.lesson-detail h2{font:700 clamp(2rem,4vw,3.5rem)/.95 var(--display);letter-spacing:-.07em;margin:0}.booking-summary{padding:18px;border:1px solid var(--ink);display:flex;justify-content:space-between;gap:16px}.terms-copy{max-width:760px;padding:58px 0}.terms-copy h1{font:700 clamp(3rem,7vw,6rem)/.9 var(--display);letter-spacing:-.08em}.terms-copy h2{margin-top:2em;font:700 1.4rem var(--display)}
/* Admin is schedule-led so the primary job stays visible at every viewport. */
.admin-shell{max-width:1180px;margin:0 auto;padding:0 24px 70px}.admin-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:42px 0 25px;border-bottom:1px solid var(--ink)}.admin-heading h1{font:700 clamp(2.6rem,6vw,5rem)/.9 var(--display);letter-spacing:-.08em;margin:8px 0}.admin-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:32px;padding-top:28px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.calendar-toolbar button{min-width:48px;background:transparent;border:1px solid var(--ink);font-size:1.2rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.calendar-cell{min-height:108px;padding:8px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink)}.calendar-cell.day-name{min-height:auto;background:#e6e3dc;font:400 .7rem var(--mono);text-align:center}.calendar-cell.outside{background:#eeece7;color:#888}.day-number{font:400 .78rem var(--mono)}.event-chip{display:block;margin-top:5px;padding:3px 5px;background:#dedbd4;border-left:3px solid var(--ink);font-size:.7rem;line-height:1.3;overflow-wrap:anywhere}.event-chip.open,.event-chip.block,.event-chip.reserve{border-color:var(--ink)}.cash-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.cash-row button{min-height:44px;min-width:44px}.admin-forms{display:grid;gap:15px}.admin-form{display:grid;gap:12px;padding:18px 0;border-top:1px solid var(--ink)}.admin-form h2{margin:0;font:700 1.5rem var(--display)}.admin-stack{display:grid;gap:28px}.event-list{display:grid;gap:8px}.event-line{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.82rem}.event-line button{min-height:44px;min-width:44px}.login-wrap{max-width:440px;margin:12vh auto;padding:28px;border:1px solid var(--ink)}.login-wrap h1{font:700 2.6rem var(--display);letter-spacing:-.07em;margin:0}.toast{padding:12px;border:1px solid var(--ink);background:var(--white)}.toast[hidden]{display:none}
@media(max-width:760px){.wrap{width:min(100% - 32px,600px)}.site-header{align-items:flex-start}.nav{gap:12px;flex-wrap:wrap;justify-content:flex-end}.nav a{min-height:44px;display:flex;align-items:center}.music-hero{min-height:auto;grid-template-columns:1fr;gap:40px;padding:70px 0 48px}.music-title{font-size:clamp(4.3rem,18vw,9rem)}.music-aside{max-width:360px}.music-section,.pricing,.lesson-detail{grid-template-columns:1fr;gap:24px}.lessons-hero{grid-template-columns:1fr;gap:18px;padding:50px 0 34px}.subject-row{grid-template-columns:48px 1fr;gap:12px}.subject-row .button{grid-column:2;justify-self:start}.booking{grid-template-columns:1fr;gap:22px}.site-footer{align-items:flex-start;flex-direction:column}.admin-shell{padding:0 16px 48px}.admin-grid{grid-template-columns:1fr}.admin-heading{align-items:flex-start;flex-direction:column}.calendar-cell{min-height:82px;padding:5px}.event-chip{font-size:.7rem;padding:3px 5px}.calendar-cell.day-name{font-size:.6rem;padding:5px 1px}.calendar-toolbar{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}}
@media(max-width:380px){body{font-size:15px}.brand{font-size:1rem}.brand img{width:22px;height:38px}.nav{font-size:.78rem;gap:7px}.music-title{font-size:19vw}.calendar-cell{min-height:68px;padding:3px}.day-number{font-size:.69rem}.event-chip{font-size:.68rem}.panel{padding:16px}}
.admin-toolbar h2{margin:0;font:700 1.35rem var(--display)}.event-line button{flex:none}.booking-detail{max-width:780px;margin:58px auto;min-height:45vh}.booking-detail h1{font:700 clamp(2.8rem,7vw,5rem)/.9 var(--display);letter-spacing:-.08em}.booking-detail .admin-stack{margin-top:24px}.admin-form button,.admin-toolbar button{min-height:46px}.choice-options label[hidden]{display:none}.choice-options input{min-width:20px;min-height:20px}[hidden]{display:none!important}
@media(max-width:380px){.admin-shell{padding-inline:12px}.admin-toolbar{justify-content:flex-start}.calendar-cell{min-height:62px}.event-chip{white-space:normal;overflow-wrap:anywhere}.admin-grid{gap:20px}.login-wrap{margin:8vh auto;padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:760px){.calendar-cell{min-height:44px}.calendar-cell:not(.day-name){padding:4px 2px}.calendar-grid .event-chip{display:none}.event-list{margin-top:16px}.event-line{align-items:flex-start;flex-wrap:wrap;padding:12px 0}}

.cash-row{min-height:44px}.cash-row button{min-width:44px;min-height:44px}
.admin-grid>*{min-width:0}.cash-row{flex-wrap:wrap;overflow-wrap:anywhere}.booking-admin-card details summary{min-height:44px;padding-block:10px;cursor:pointer}

.light-page .brand img{filter:none}
.status.error,.status.success{color:var(--ink)}
.field input,.field select,.field textarea,.choice-options label{border-color:var(--line)}
.field input:disabled,.field select:disabled{background:#292929;color:var(--muted)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:1}
.notice,.calendar-cell.day-name{background:#262626}
.calendar-cell.outside{background:#181818;color:var(--muted)}
.event-chip{background:#303030}
.preview-wrap{max-width:440px;margin:12vh auto;padding:28px;border:1px solid var(--line)}
.preview-wrap label{display:grid;gap:8px;margin:24px 0 16px}
.preview-wrap input{min-height:46px;padding:10px 12px;background:var(--white);color:var(--ink);border:1px solid var(--line)}
