:root{--p-ink:#7a16d5;--p-core:#9333ea;--p-glow:#b674f1;--p-lilac:#f1e6fd;--p-haze:#e4cffb;--p-deep:#2d0b52;--on-deep-soft:#d9c4f5;--black:#0b0b0d;--white:#fff;--ink:#16161a;--ink-soft:#4a4a55;--rule:#e4e0ea;--wash:#f7f5fa;--on-black:#f4f2f7;--on-black-soft:#b9b4c4;--rule-dark:#2a2a30;--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--t-hero:clamp(2.75rem, 9vw, 6rem);--t-d1:clamp(2.25rem, 6vw, 4rem);--t-d2:clamp(1.75rem, 4vw, 2.75rem);--t-d3:clamp(1.375rem, 2.6vw, 1.875rem);--t-lead:clamp(1.0625rem, 1.7vw, 1.3125rem);--t-body:1rem;--t-small:.875rem;--t-label:.75rem;--lh-display:1.04;--lh-body:1.65;--track-label:.16em;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;--section-y:clamp(3.5rem, 9vw, 7rem);--gutter:clamp(1.25rem, 5vw, 3rem);--measure:62ch;--max-w:1200px;--max-w-narrow:760px;--radius:2px;--radius-img:16px;--radius-card:24px;--radius-pill:999px;--shadow-lift:0 22px 40px -20px #2d0b5280;--shadow-rest:0 10px 24px -18px #2d0b5259;--ease-out:cubic-bezier(.16, 1, .3, 1);--t-quick:.16s;--t-move:.42s;--focus:3px solid var(--p-core);--focus-offset:3px}@font-face{font-family:Playfair Display;src:url(/fonts/playfair-display-latin-700-normal.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2000-206F,U+2192,U+2212}@font-face{font-family:Playfair Display;src:url(/fonts/playfair-display-latin-500-normal.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2000-206F,U+2192,U+2212}@font-face{font-family:Poppins;src:url(/fonts/poppins-latin-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2000-206F,U+2192,U+2212}@font-face{font-family:Poppins;src:url(/fonts/poppins-latin-600-normal.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2000-206F,U+2192,U+2212}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:var(--font-body);font-size:var(--t-body);line-height:var(--lh-body);color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}img,picture,svg,video{max-width:100%;display:block}[hidden]{display:none!important}input,button,textarea,select{font:inherit;color:inherit}p,li{overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:var(--lh-display);letter-spacing:-.015em;text-wrap:balance}p{text-wrap:pretty}::selection{background:var(--p-core);color:var(--white)}html{accent-color:var(--p-core);caret-color:var(--p-ink)}a{color:var(--p-ink);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset);border-radius:var(--radius)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ground-black{background:var(--black);color:var(--on-black)}.ground-black h1,.ground-black h2,.ground-black h3,.ground-black h4{color:var(--white)}.ground-black a:not(.btn),.ground-black .label{color:var(--p-glow)}.ground-black .lead{color:var(--on-black-soft)}.ground-black :focus-visible{outline-color:var(--p-glow)}.ground-white{background:var(--white);color:var(--ink)}.ground-wash{background:var(--wash);color:var(--ink)}.section{padding-block:var(--section-y)}.wrap{width:100%;max-width:var(--max-w);padding-inline:var(--gutter);margin-inline:auto}.wrap-narrow{max-width:var(--max-w-narrow)}.label{font-family:var(--font-body);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--p-ink);margin-bottom:var(--s-4);font-weight:600;display:block}.lead{font-size:var(--t-lead);color:var(--ink-soft);max-width:var(--measure)}.display-1{font-size:var(--t-d1)}.display-2{font-size:var(--t-d2)}.display-3{font-size:var(--t-d3)}.accent{color:var(--p-ink);font-style:italic;font-weight:500}.ground-black .accent{color:var(--p-glow)}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--s-5)}.prose h2{font-size:var(--t-d2);margin-top:var(--s-8)}.prose h3{font-size:var(--t-d3);margin-top:var(--s-7)}.prose ul,.prose ol{padding-left:var(--s-5)}.prose li+li{margin-top:var(--s-2)}.prose strong{font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-5);min-height:48px;font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--t-quick) ease, color var(--t-quick) ease, border-color var(--t-quick) ease, box-shadow var(--t-move) var(--ease-out), transform var(--t-move) var(--ease-out);border:2px solid #0000;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow-rest)}.btn:focus-visible{border-radius:var(--radius-pill)}.btn-primary{background:var(--p-core);color:var(--white);border-color:var(--p-core)}.btn-primary:hover{background:var(--p-ink);border-color:var(--p-ink)}.btn-ghost{color:var(--ink);background:0 0;border-color:currentColor}.btn-ghost:hover{background:var(--ink);color:var(--white)}.ground-black .btn-ghost{color:var(--white)}.ground-black .btn-ghost:hover{background:var(--white);color:var(--black)}.btn-row{gap:var(--s-3);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:no-preference){.btn:hover{transform:translateY(-2px)}.btn:active{transition-duration:80ms;transform:translateY(0)scale(.97)}@supports (animation-timeline:view()){.reveal{animation:linear both reveal-rise view();animation-range:entry entry 70%}}}.framed{padding:var(--s-2);background:var(--white);border-radius:var(--radius-card);transform:rotate(var(--frame-tilt,2deg));transition:transform var(--t-move) var(--ease-out);box-shadow:0 30px 50px -24px #0000008c}.framed img{border-radius:calc(var(--radius-card) - var(--s-2))}@media (prefers-reduced-motion:no-preference){.framed{animation:frame-settle .9s var(--ease-out) .12s backwards}.framed:hover{transform:rotate(0)scale(1.02)}}@keyframes frame-settle{0%{transform:translateY(32px)rotate(0)scale(.94)}}.pill{padding:var(--s-1) var(--s-3);border-radius:var(--radius-pill);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;border:1.5px solid;font-weight:600;display:inline-block}@keyframes reveal-rise{0%{transform:translateY(56px) rotate(var(--reveal-tilt,0deg)) scale(.94)}to{transform:none}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--p-core);color:var(--white);padding:var(--s-3) var(--s-4);z-index:100;font-weight:600;text-decoration:none;position:absolute;top:0;left:0;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.grid{gap:var(--s-5);display:grid}@media (width>=640px){.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width>=900px){.grid-3{grid-template-columns:repeat(3,1fr)}}.table-scroll{overflow-x:auto}@media (width<=760px){.table-scroll{overflow-x:visible}}.timetable{border-collapse:collapse;width:100%}@media (width>=761px){.timetable{min-width:40rem}}.timetable th{text-align:left;font-family:var(--font-body);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);padding:var(--s-4) var(--s-3);border-bottom:1px solid var(--rule);font-weight:600}.timetable td{padding:var(--s-4) var(--s-3);border-bottom:1px solid var(--rule);font-size:var(--t-small);vertical-align:top}.timetable .c-day,.timetable .c-time{white-space:nowrap;font-weight:600}.timetable .c-age,.timetable .c-teacher{color:var(--ink-soft)}.timetable .c-style a{font-weight:600}.timetable .c-venue{line-height:1.4}.timetable .c-venue .room,.timetable .c-venue .town,.timetable .c-style .room,.timetable .session-note{color:var(--ink-soft);font-size:var(--t-label);display:block}.timetable .session-note{margin-top:var(--s-1);max-width:28ch;font-style:italic}.timetable .c-book{text-align:right;white-space:nowrap}.timetable .book{padding:var(--s-2) var(--s-4);border:1px solid var(--p-core);border-radius:var(--radius-pill);min-height:44px;line-height:28px;font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--p-ink);transition:background-color var(--t-quick) ease, color var(--t-quick) ease;font-weight:600;text-decoration:none;display:inline-block}.timetable .book:hover{background:var(--p-core);color:var(--white)}@media (width>=761px){.timetable tbody tr:hover td{background:var(--wash)}}@media (width<=760px){.timetable thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.timetable tbody tr{padding:var(--s-5) 0;border-bottom:1px solid var(--rule);display:block}.timetable td{padding:0 0 var(--s-2) 5.5rem;border:0;display:block;position:relative}.timetable td:before{content:attr(data-label);width:5rem;font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);font-weight:600;position:absolute;top:.2em;left:0}.timetable .c-day,.timetable .c-time{white-space:normal}.timetable .c-book{text-align:left}.timetable .c-book:before{content:""}.timetable .c-book .book{margin-top:var(--s-3)}}.site-header[data-astro-cid-ctg3m53h]{background:var(--black);color:var(--on-black);z-index:50;border-bottom:1px solid var(--rule-dark);position:sticky;top:0}.header-inner[data-astro-cid-ctg3m53h]{align-items:center;gap:var(--s-5);flex-wrap:wrap;min-height:68px;display:flex}.brand[data-astro-cid-ctg3m53h]{align-items:center;gap:var(--s-3);color:var(--white);margin-right:auto;text-decoration:none;display:inline-flex}.brand[data-astro-cid-ctg3m53h] .brand-mark{width:auto;height:52px;transition:transform .5s var(--ease-out);display:block}@media (prefers-reduced-motion:no-preference){.brand[data-astro-cid-ctg3m53h]:hover .brand-mark{transform:translateY(-5px)rotate(-8deg)}}.brand-name[data-astro-cid-ctg3m53h]{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.3rem;font-weight:700}.site-nav[data-astro-cid-ctg3m53h] ul[data-astro-cid-ctg3m53h]{gap:var(--s-5);margin:0;padding:0;list-style:none;display:flex}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]{color:var(--on-black);font-size:var(--t-small);letter-spacing:.04em;padding-block:var(--s-2);font-weight:600;text-decoration:none;display:inline-block;position:relative}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]:after{content:"";border-radius:var(--radius-pill);background:var(--p-glow);height:3px;transition:transform .3s var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]:hover{color:var(--white)}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]:hover:after{transform:scaleX(1)}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h][aria-current=page]{color:var(--white)}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h][aria-current=page]:after{background:var(--p-core);transform:scaleX(1)}.nav-toggle[data-astro-cid-ctg3m53h],.nav-toggle-label[data-astro-cid-ctg3m53h]{display:none}@media (width<=900px){.nav-toggle-label[data-astro-cid-ctg3m53h]{cursor:pointer;order:3;place-items:center;width:48px;height:48px;display:grid}.bars[data-astro-cid-ctg3m53h],.bars[data-astro-cid-ctg3m53h]:before,.bars[data-astro-cid-ctg3m53h]:after{background:var(--white);content:"";width:22px;height:2px;display:block;position:relative}.bars[data-astro-cid-ctg3m53h]:before{position:absolute;top:-7px}.bars[data-astro-cid-ctg3m53h]:after{position:absolute;top:7px}.nav-toggle[data-astro-cid-ctg3m53h]:focus-visible+.nav-toggle-label[data-astro-cid-ctg3m53h]{outline:3px solid var(--p-glow);outline-offset:2px}.site-nav[data-astro-cid-ctg3m53h]{padding-bottom:var(--s-4);flex-basis:100%;order:5;display:none}.nav-toggle[data-astro-cid-ctg3m53h]:checked~.site-nav[data-astro-cid-ctg3m53h]{display:block}.site-nav[data-astro-cid-ctg3m53h] ul[data-astro-cid-ctg3m53h]{flex-direction:column;gap:0}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]{padding:var(--s-3) 0;border-bottom:1px solid var(--rule-dark);width:100%}.site-nav[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]:after{width:2.5rem;right:auto}.header-cta[data-astro-cid-ctg3m53h]{order:2}}@media (width<=480px){.header-inner[data-astro-cid-ctg3m53h]{gap:var(--s-3)}.brand[data-astro-cid-ctg3m53h]{gap:var(--s-2)}.brand-name[data-astro-cid-ctg3m53h]{font-size:1.1rem}}@media (width<=359px){.brand-name[data-astro-cid-ctg3m53h]{display:none}}.site-footer[data-astro-cid-gcn2mc3v]{padding-block:var(--s-8) var(--s-6)}.footer-grid[data-astro-cid-gcn2mc3v]{gap:var(--s-7);grid-template-columns:1fr;display:grid}@media (width>=640px){.footer-grid[data-astro-cid-gcn2mc3v]{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.footer-grid[data-astro-cid-gcn2mc3v]{grid-template-columns:1.4fr 1fr 1fr 1fr}}.footer-brand[data-astro-cid-gcn2mc3v]{font-family:var(--font-display);color:var(--white);margin-bottom:var(--s-4);font-size:1.6rem;line-height:1.15}.footer-note[data-astro-cid-gcn2mc3v]{font-size:var(--t-small);color:var(--on-black-soft);max-width:34ch}.footer-h[data-astro-cid-gcn2mc3v]{font-family:var(--font-body);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--p-glow);margin-bottom:var(--s-4);font-weight:600}ul[data-astro-cid-gcn2mc3v]{margin:0;padding:0;list-style:none}li[data-astro-cid-gcn2mc3v]+li[data-astro-cid-gcn2mc3v]{margin-top:var(--s-2)}li[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]{color:var(--on-black-soft);font-size:var(--t-small);text-decoration:none}li[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]:hover{color:var(--white);text-decoration:underline}.footer-base[data-astro-cid-gcn2mc3v]{margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid var(--rule-dark);gap:var(--s-4);font-size:var(--t-small);color:var(--on-black-soft);flex-wrap:wrap;justify-content:space-between;display:flex}.legal[data-astro-cid-gcn2mc3v]{gap:var(--s-5);display:flex}.legal[data-astro-cid-gcn2mc3v] li[data-astro-cid-gcn2mc3v]+li[data-astro-cid-gcn2mc3v]{margin-top:0}
