:root{--ink:#0c0c0c;--ink-muted:#5c574f;--cream:#fef9f3;--sand:#f3ebe3;--warm:#e8dfd4;--blush:#e8cfc8;--accent:#8f4a4a;--border:#ddd3c8;--focus:#0c0c0c;--white:#fff;--error:#b42318;--success:#2f6b4f;--rose-nude:var(--blush);--rose:var(--blush);--rose-deep:var(--accent);--font-display:"Barlow Condensed", sans-serif;--font-body:"Barlow", sans-serif;--radius-control:2px;--space-xs:.5rem;--space-sm:.75rem;--space-md:1.25rem;--space-lg:2rem;--space-xl:3.5rem;--space-2xl:5.5rem;--max-width:1120px;--nav-height:4.75rem;--ease-out:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 70% 45% at 0% 0%, var(--blush) 0%, transparent 55%), radial-gradient(ellipse 50% 40% at 100% 0%, var(--warm) 0%, transparent 50%), var(--sand);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.55}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;margin:0;font-weight:700;line-height:1.05}p{margin:0}#root{min-height:100vh}.site-shell{flex-direction:column;min-height:100vh;display:flex}.site-main{flex:1}.container{width:min(100% - 2rem, var(--max-width));margin-inline:auto}.site-nav{z-index:20;height:var(--nav-height);background:color-mix(in srgb, var(--cream) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;display:flex;position:sticky;top:0}.site-nav__inner{justify-content:space-between;align-items:center;gap:var(--space-md);width:min(100% - 2rem, var(--max-width));margin-inline:auto;display:flex}.brand{align-items:center;gap:.85rem;min-width:0;display:inline-flex}.brand__logo-link{align-items:center;min-width:0;display:inline-flex}.brand-logo{object-fit:contain;width:auto;height:auto;display:block}.brand-logo--nav{width:clamp(9.5rem,28vw,13.5rem);height:auto}.brand-logo--hero{filter:drop-shadow(0 8px 24px #00000040);width:min(100%,28rem);height:auto}.brand-logo--footer{width:clamp(10rem,32vw,14rem);height:auto;margin-bottom:var(--space-sm)}.site-nav__links{align-items:center;gap:var(--space-md);margin:0;padding:0;list-style:none;display:flex}.site-nav__links a{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);transition:color .18s var(--ease-out);font-size:1.05rem;font-weight:600}.site-nav__links a:hover,.site-nav__links a[aria-current=page]{color:var(--ink)}.site-nav__toggle{border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:var(--radius-control);cursor:pointer;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;padding:.4rem .7rem;font-weight:600;display:none}.site-footer{border-top:1px solid var(--border);background:var(--cream);padding:var(--space-lg) 0;margin-top:var(--space-2xl)}.site-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-md);width:min(100% - 2rem, var(--max-width));flex-wrap:wrap;margin-inline:auto;display:flex}.site-footer__brand-block{gap:var(--space-xs);display:grid}.site-footer a{color:var(--ink);transition:border-color .18s var(--ease-out);border-bottom:1px solid #0000;font-weight:500}.site-footer a:hover{border-bottom-color:var(--ink)}.site-footer__meta{color:var(--ink-muted);font-size:.95rem}.social-link{color:currentColor;transition:color .18s var(--ease-out), transform .18s var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.social-link svg{width:1.25rem;height:1.25rem}.social-link:hover{color:var(--accent);transform:translateY(-1px)}.social-link--nav{color:var(--ink)}.social-link--nav svg{width:1.5rem;height:1.5rem}.social-link--hero{color:var(--cream);align-self:flex-end;margin-bottom:.35rem}.social-link--hero svg{width:1.75rem;height:1.75rem}.social-link--footer{gap:.4rem;margin-left:.35rem}.social-link--inline{color:var(--accent);vertical-align:middle;gap:.3rem}.btn{border-radius:var(--radius-control);min-height:2.75rem;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .18s var(--ease-out), color .18s var(--ease-out), border-color .18s var(--ease-out), transform .18s var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.35rem;font-size:1.05rem;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible,.site-nav__links a:focus-visible,.site-footer a:focus-visible,.brand__logo-link:focus-visible,.social-link:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.btn--primary{background:var(--ink);color:var(--white)}.btn--primary:hover{background:#2a2a2a}.btn--secondary{color:var(--ink);border-color:var(--ink);background:0 0}.btn--secondary:hover{background:var(--ink);color:var(--cream)}.btn--ghost{background:color-mix(in srgb, var(--cream) 70%, transparent);color:var(--ink);border-color:var(--border)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.hero{min-height:calc(100vh - var(--nav-height));color:var(--cream);isolation:isolate;align-items:end;display:grid;position:relative;overflow:hidden}.hero__media{z-index:-2;position:absolute;inset:0}.hero__media img{object-fit:cover;object-position:center 62%;filter:grayscale()sepia(.45)saturate(.85)contrast(1.05)brightness(.78);width:100%;height:100%}.hero__scrim{z-index:-1;background: linear-gradient(90deg, #5c4a3a94 0%, color-mix(in srgb, var(--warm) 42%, transparent) 40%, transparent 72%),  linear-gradient(180deg, transparent 0%, transparent 52%, color-mix(in srgb, var(--warm) 35%, transparent) 70%, color-mix(in srgb, #6b5344 55%, var(--sand)) 86%, color-mix(in srgb, #4a3b32 78%, var(--warm)) 100%);position:absolute;inset:0}.hero__content{width:min(100% - 2rem, var(--max-width));padding:var(--space-2xl) 0 var(--space-xl);animation:rise-in .7s var(--ease-out) both;text-shadow:0 1px 16px #3d322980;margin-inline:auto}.hero__brand{margin-bottom:var(--space-lg);filter:drop-shadow(0 2px 12px #3d322973);flex-wrap:wrap;align-items:flex-end;gap:1rem;max-width:min(100%,32rem);display:flex}.hero h1{max-width:14ch;margin-bottom:var(--space-md);font-size:clamp(2rem,6vw,3.4rem)}.hero p{max-width:36ch;color:var(--cream);margin-bottom:var(--space-lg);font-size:1.15rem}.hero__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.hero .btn--primary{background:var(--cream);color:var(--ink)}.hero .btn--primary:hover{background:var(--white)}.hero .btn--secondary{border-color:var(--cream);color:var(--cream)}.hero .btn--secondary:hover{background:var(--cream);color:var(--ink)}.section{padding:var(--space-2xl) 0}.section__header{margin-bottom:var(--space-lg);max-width:40rem;animation:rise-in .65s var(--ease-out) both}.section__eyebrow{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-xs);font-size:.95rem;font-weight:600}.section__header h2{margin-bottom:var(--space-sm);font-size:clamp(2rem,5vw,3rem)}.section__header p{color:var(--ink-muted);font-size:1.1rem}.pillars{gap:var(--space-lg);border-top:1px solid var(--border);padding-top:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.pillar{animation:rise-in .7s var(--ease-out) both}.pillar:nth-child(2){animation-delay:80ms}.pillar:nth-child(3){animation-delay:.16s}.pillar h3{margin-bottom:var(--space-xs);color:var(--ink);font-size:1.75rem}.pillar p{color:var(--ink-muted)}.gallery-band{grid-template-columns:1.2fr 1fr 1fr;gap:.5rem;min-height:18rem;display:grid}.gallery-band figure{background:var(--warm);min-height:14rem;margin:0;position:relative;overflow:hidden}.gallery-band img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease-out)}.gallery-band figure:hover img{transform:scale(1.03)}.gallery-band figcaption{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--cream);background:#2a1f2273;padding:.25rem .45rem;font-size:.85rem;position:absolute;bottom:.75rem;left:.75rem}.about-grid{gap:var(--space-xl);grid-template-columns:1fr 1.1fr;align-items:center;display:grid}.about-media{background:var(--warm);min-height:22rem;animation:rise-in .7s var(--ease-out) both;margin:0;overflow:hidden}.about-media img{object-fit:cover;width:100%;height:100%;min-height:22rem}.about-copy{animation:rise-in .75s var(--ease-out) both;animation-delay:60ms}.about-copy h1{margin-bottom:var(--space-md);font-size:clamp(2.4rem,6vw,3.6rem)}.about-copy p+p{margin-top:var(--space-md)}.about-copy p{color:var(--ink-muted);font-size:1.1rem}.about-copy .btn{margin-top:var(--space-lg)}.signup-page{padding:var(--space-xl) 0 var(--space-2xl)}.signup-layout{gap:var(--space-xl);grid-template-columns:.9fr 1.1fr;align-items:start;display:grid}.signup-intro h1{margin-bottom:var(--space-md);font-size:clamp(2.4rem,6vw,3.6rem)}.signup-intro p{color:var(--ink-muted);max-width:34ch}.signup-form{gap:var(--space-md);padding:var(--space-lg) 0;border-top:1px solid var(--border);display:grid}.form-row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.field{gap:.4rem;display:grid}.field label{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-size:.95rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--cream);width:100%;color:var(--ink);border-radius:var(--radius-control);transition:border-color .16s var(--ease-out);padding:.7rem .8rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--rose) 45%, transparent);outline:none}.field textarea{resize:vertical;min-height:6.5rem}.field__error{color:var(--error);font-size:.9rem}.checkbox-group{gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.checkbox{color:var(--ink);cursor:pointer;align-items:center;gap:.45rem;display:inline-flex}.checkbox input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.form-status{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);background:var(--cream);color:var(--ink-muted)}.form-status--error{border-color:color-mix(in srgb, var(--error) 40%, var(--border));color:var(--error)}.form-status--success{border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.success-panel{border-top:1px solid var(--border);padding-top:var(--space-lg);animation:rise-in .5s var(--ease-out) both}.success-panel h2{margin-bottom:var(--space-sm);font-size:2.4rem}.success-panel p{color:var(--ink-muted);margin-bottom:var(--space-lg)}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=860px){.pillars,.gallery-band,.about-grid,.signup-layout,.form-row{grid-template-columns:1fr}.gallery-band{grid-template-columns:1fr 1fr}.gallery-band figure:first-child{grid-column:1/-1}.site-nav__toggle{display:inline-flex}.site-nav__links{top:var(--nav-height);background:var(--cream);border-bottom:1px solid var(--border);padding:var(--space-sm) 1rem var(--space-md);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;left:0;right:0}.site-nav__links.is-open{display:flex}.site-nav__links a{border-bottom:1px solid var(--border);padding:.75rem 0}.hero{min-height:calc(100svh - var(--nav-height))}}@media (width<=520px){.gallery-band{grid-template-columns:1fr}.gallery-band figure:first-child{grid-column:auto}.hero__actions{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.events-page h1{margin-bottom:var(--space-sm);font-size:clamp(2.4rem,6vw,3.6rem)}.events-layout{gap:var(--space-xl);grid-template-columns:1fr 1.05fr;align-items:start;display:grid}.calendar-panel{border-top:1px solid var(--border);padding-top:var(--space-md)}.calendar-panel__toolbar{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.calendar-panel__toolbar h2{text-align:center;font-size:1.5rem}.calendar-weekdays{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);text-align:center;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.35rem;font-size:.8rem;display:grid}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.calendar-day{aspect-ratio:1;background:var(--cream);color:var(--ink);cursor:pointer;border-radius:var(--radius-control);transition:background .16s var(--ease-out), border-color .16s var(--ease-out);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.2rem;display:flex}.calendar-day:hover{border-color:var(--border)}.calendar-day.is-outside{color:color-mix(in srgb, var(--ink-muted) 55%, transparent);background:0 0}.calendar-day.is-today{border-color:var(--ink)}.calendar-day.is-selected{background:var(--ink);color:var(--cream)}.calendar-day.has-events .calendar-day__number{font-weight:700}.calendar-day__number{font-family:var(--font-display);font-size:1rem;line-height:1}.calendar-day__dots{gap:.15rem;min-height:.35rem;display:flex}.calendar-day__dots i{background:var(--accent);border-radius:50%;width:.28rem;height:.28rem;display:block}.calendar-day.is-selected .calendar-day__dots i{background:var(--cream)}.events-list-panel__header{margin-bottom:var(--space-md);border-top:1px solid var(--border);padding-top:var(--space-md)}.events-list-panel__header h2{font-size:1.6rem}.events-list{gap:var(--space-md);margin:0;padding:0;list-style:none;display:grid}.events-list__item{justify-content:space-between;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border);display:flex}.events-list__item h3{margin:.2rem 0 .35rem;font-size:1.45rem}.events-list__item h3 a:hover{color:var(--accent)}.events-list__meta,.events-list__location,.field__hint{color:var(--ink-muted);font-size:.95rem}.location-link{color:inherit;text-underline-offset:.2em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:1px}.location-link:hover{color:var(--accent)}.events-list__aside{gap:var(--space-sm);flex-shrink:0;align-content:start;justify-items:end;display:grid}.event-detail-layout{gap:var(--space-xl);grid-template-columns:1.05fr .95fr;align-items:start;display:grid}.event-detail-copy h1{margin-bottom:var(--space-sm);font-size:clamp(2.4rem,6vw,3.6rem)}.event-detail-copy__meta,.event-detail-copy__location,.event-detail-copy__price{color:var(--ink-muted);margin-bottom:.35rem}.event-detail-copy__price{color:var(--ink);font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:var(--space-sm) 0 var(--space-md);font-size:1.35rem}.event-detail-copy__summary{margin-bottom:var(--space-md);font-size:1.15rem}.event-detail-copy__body{gap:var(--space-md);color:var(--ink-muted);margin-bottom:var(--space-lg);display:grid}.event-detail-register{border-top:1px solid var(--border);padding-top:var(--space-lg)}.event-detail-register h2{margin-bottom:var(--space-md);font-size:2rem}.event-register-form__price{justify-content:space-between;align-items:baseline;gap:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;display:flex}.event-register-form__price strong{font-size:1.35rem}.field-label{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-size:.95rem;font-weight:600}.square-card{gap:.4rem;display:grid}.square-card__frame{border:1px solid var(--border);background:var(--cream);border-radius:var(--radius-control);min-height:5.5rem;padding:.75rem}.square-card__frame.is-ready{border-color:var(--ink)}@media (width<=860px){.events-layout,.event-detail-layout,.events-list__item{grid-template-columns:1fr}.events-list__item{flex-direction:column}.events-list__aside{justify-items:stretch}}.admin-shell{background:var(--sand);min-height:100vh;color:var(--ink)}.admin-shell--centered{padding:var(--space-lg);place-items:center;display:grid}.admin-topbar{justify-content:space-between;gap:var(--space-md);padding:var(--space-md) clamp(1rem, 4vw, 2rem);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--cream) 92%, transparent);flex-wrap:wrap;align-items:center;display:flex}.admin-topbar__eyebrow{color:var(--ink-muted);margin:0;font-size:.85rem}.admin-topbar__title{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:1.6rem}.admin-topbar__actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.admin-main{width:min(100% - 2rem,1100px);padding:var(--space-xl) 0 var(--space-2xl);margin:0 auto}.admin-card{width:min(100%,28rem);padding:var(--space-lg);background:var(--cream);border:1px solid var(--border)}.admin-card h1{margin-bottom:var(--space-sm)}.admin-muted{color:var(--ink-muted)}.admin-back{margin-top:var(--space-md)}.admin-section__header{justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:end;display:flex}.admin-form,.admin-roster{gap:var(--space-md);margin-bottom:var(--space-xl);display:grid}.admin-form__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.admin-table{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.admin-table__head,.admin-table__row{gap:var(--space-sm);border-bottom:1px solid var(--border);grid-template-columns:1.4fr 1.3fr .6fr .7fr auto;align-items:center;padding:.9rem 0;display:grid}.admin-table--roster .admin-table__head,.admin-table--roster .admin-table__row{grid-template-columns:1fr 1.2fr 1fr .7fr .6fr}.admin-table__head{color:var(--ink-muted);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}.admin-status{border:1px solid var(--border);border-radius:var(--radius-control);text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;font-size:.85rem;display:inline-block}.admin-status--published,.admin-status--paid{border-color:var(--success);color:var(--success)}.admin-status--draft,.admin-status--pending{color:var(--ink-muted)}.admin-status--cancelled,.admin-status--failed,.admin-status--refunded{border-color:var(--error);color:var(--error)}@media (width<=800px){.admin-table__head{display:none}.admin-table__row,.admin-table--roster .admin-table__row{grid-template-columns:1fr;gap:.35rem}}
