@layer reset,base,art,layout,form,responsive,motion;
@layer reset{*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body,h1,h2,h3,p{margin:0}img{display:block;max-width:100%;height:auto}button,input,textarea,select{font:inherit}a{color:inherit}button{cursor:pointer}[hidden]{display:none!important}fieldset{min-width:0}button:disabled{cursor:wait}svg{display:block}::selection{background:var(--navy);color:var(--cream)}}
@layer base{
  :root{--orange:#f96b20;--navy:#202c46;--cream:#f6e9c5;--paper:#fff8e7;--rust:#9c3928;--line:#c8b994;--muted:#595c60;--sans:'Holywins Sans',Arial,sans-serif;--serif:'Holywins Serif',Georgia,serif;--ease:cubic-bezier(.22,1,.36,1)}
  body{background:var(--cream);color:var(--navy);font-family:var(--sans);font-size:1rem;line-height:1.45}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--navy);outline-offset:5px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--navy);outline-offset:3px}.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}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;background:var(--navy);color:var(--cream);padding:1rem;transform:translateY(-200%)}.skip-link:not(:focus){clip-path:inset(50%)}.skip-link:focus{transform:none}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:3.5rem;padding:1rem 1.35rem;border:1px solid var(--navy);border-radius:2px;text-decoration:none;font-size:1rem;font-weight:700;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s}.button>span:last-child:not(:first-child){font-size:1.4rem;line-height:1}.button-navy{background:var(--navy);color:var(--cream);box-shadow:4px 4px 0 #202c4640}.button:disabled{opacity:.8;transform:none;box-shadow:none}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-height:44px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--navy);padding:.65rem 0;text-decoration:none}.wordmark{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;text-decoration:none;font-weight:700;font-size:.95rem;letter-spacing:.07em;white-space:nowrap}.wordmark img{width:100px;height:auto}.icon{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:square;stroke-linejoin:miter}.button .icon{transition:transform .18s var(--ease)}.optional{font-size:.8rem;font-weight:400;color:var(--muted)}
}
@layer layout{
  .site-header{padding:1.2rem 6%;border-bottom:1px solid var(--line)}
  .hero{background:var(--orange);padding:1rem 6% 2.8rem;position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);overflow:clip}
  .hero-copy{display:contents}
  .hero-topline{grid-row:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 1rem;min-height:44px}
  .eyebrow{font-size:.75rem;text-transform:uppercase;font-weight:700;letter-spacing:.12em}
  .entry-link{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:.875rem;text-underline-offset:5px;white-space:nowrap}
  .entry-link .icon{width:17px;height:17px}
  .hero h1{grid-row:2;width:93%;margin:1.2rem 0 .4rem -2%;position:relative;z-index:2}
  .hero-title{transform:rotate(-3deg)}
  .event-meta{grid-row:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:1.2rem 0 0;position:relative;z-index:2}
  .event-date{display:flex;align-items:center;gap:.6rem;font-size:3.8rem;line-height:.9;letter-spacing:-.05em;font-weight:700}
  .event-date>span{font-size:1.05rem;line-height:1.2;letter-spacing:-.02em}.event-date small{font-size:.875rem;font-weight:400;letter-spacing:.04em}
  .event-time{white-space:nowrap;font-size:1rem;font-weight:700}.event-time>span[aria-hidden]{padding:0 .3rem;font-weight:400}
  .event-copy{grid-row:5;position:relative;z-index:2;margin-top:.8rem;min-width:0}.event-place{font-size:1rem;line-height:1.4}
  .location-link{display:inline-flex;align-items:center;gap:.6rem;font-size:.875rem;min-height:44px;text-underline-offset:4px}.location-link .icon{width:16px;height:16px}
  .hero-cta{display:flex;width:100%;margin-top:1rem}
  .registration{max-width:1320px;margin:auto;padding:3.4rem 6% 4rem;display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;position:relative}
  .registration-intro h2{overflow-wrap:anywhere;font-family:var(--serif);font-size:clamp(3.2rem,7vw,5rem);letter-spacing:-.045em;line-height:1}
  .registration-intro>p{font-size:1rem;margin-top:1.3rem;max-width:30ch}.registration-ornament{display:none}
  .form-panel{min-width:0;container:registration / inline-size}.form-heading{display:none;font-size:.875rem;text-transform:uppercase;letter-spacing:.13em;margin:0 0 1.8rem;padding-bottom:1rem;border-bottom:1px solid var(--navy)}
  .site-footer{max-width:1320px;margin:auto;color:var(--navy);padding:1.5rem 6% 2rem;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:1.5rem;border-top:1px solid var(--line);font-size:.875rem}
  .site-footer .wordmark{align-self:start;min-height:58px}.site-footer nav{display:flex;justify-content:flex-end;align-items:flex-start;flex-wrap:wrap;gap:.2rem 1.5rem}
  .site-footer nav>a,.art-credits summary{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;text-decoration:none}
  .art-credits summary{cursor:pointer;list-style:none}.art-credits summary::-webkit-details-marker{display:none}.art-credits summary .icon{width:15px;height:15px}
  .art-credits p{max-width:32ch;padding:.5rem 0 0;line-height:1.6}.art-credits p a{text-underline-offset:3px}.art-credits[open] .disclosure-plus{transform:rotate(45deg)}
  .back-top{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);transition:background .18s var(--ease)}
}
@layer art{
  .celestial-scene{grid-row:4;width:112%;max-width:740px;position:relative;isolation:isolate;align-self:center;margin:1rem -6% .3rem;min-width:0;pointer-events:none;user-select:none}
  .scene-art{display:block;width:100%;height:auto;overflow:visible}.floor-fragments-wide{display:none}
  /* Maps the 112 × 176 light surface to the scene's -190 120 1500 1320 viewBox.
     Both SVGs scale together; no per-frame geometry reads or full-scene filters. */
  .candle-art{position:absolute;left:39.0666667%;top:52.8787879%;width:7.4666667%;height:13.3333333%;overflow:hidden;contain:layout paint style;isolation:isolate}
}
@layer form{
  .form-block{padding:0;margin:0 0 .9rem;border:0}
  .form-block legend{font-weight:700;font-size:1.25rem;margin-bottom:1.2rem;padding:0}
  .field{display:flex;flex-direction:column;min-width:0;margin-bottom:1.3rem}
  #registration-form .field{margin-bottom:.65rem}
  .field label{font-size:.875rem;font-weight:700;margin-bottom:.5rem;line-height:1.4}
  .field label>.optional{margin-left:.3rem}
  .field input,.field textarea,.field select{width:100%;min-height:54px;border:1px solid #89816e;background:var(--paper);color:var(--navy);padding:.85rem 1rem;border-radius:2px;transition:background .2s,border-color .2s;font-size:1rem;appearance:none}
  .field input::placeholder{color:#6d6b65}
  .field input:focus,.field textarea:focus{background:#fffcef}
  .field-row{display:grid;grid-template-columns:5.25rem minmax(0,1fr);gap:1rem}
  .field textarea{resize:none;overflow-y:hidden;min-height:7rem;line-height:1.5}
  .field-help{font-size:.875rem;color:var(--muted);line-height:1.5;margin-top:.5rem}
  .field-help:first-child{margin:0 0 .7rem}
  .field-error{display:block;font-size:.825rem;line-height:1.45;color:#912918;margin-top:.4rem}
  .field-error:empty{display:none}
  .field-error[aria-hidden=true],.field-help[aria-hidden=true]{visibility:hidden}
  .field-feedback{display:grid;margin-top:.4rem}
  .field-feedback>.field-help,.field-feedback>.field-error{grid-area:1 / 1;margin:0}
  [aria-invalid=true]{border-color:#912918!important}
  .guardian-block{padding:1.3rem;border:1px solid var(--line);background:#eddcb2;margin-bottom:1.7rem}
  .guardian-block legend{padding:0 .5rem;margin-left:-.5rem}
  .check-field{font-size:.875rem;line-height:1.5}
  .check-field label{display:flex;align-items:flex-start;gap:.75rem;min-height:44px;padding:.6rem 0;cursor:pointer}
  .check-field input{appearance:none;flex:0 0 auto;display:grid;place-content:center;width:20px;height:20px;margin:0;border:1px solid #89816e;border-radius:2px;background:var(--paper);cursor:pointer;transition:background .15s,border-color .15s}
  .check-field input::before{content:"";width:10px;height:6px;border-left:2px solid var(--cream);border-bottom:2px solid var(--cream);transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform .15s var(--ease)}
  .check-field input:checked{background:var(--navy);border-color:var(--navy)}
  .check-field input:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
  .check-field a{text-underline-offset:3px}
  .check-field .field-error{margin:0 0 .35rem 2rem}
  .check-field input:disabled{cursor:default;opacity:.55}
  .check-field label:has(input:disabled){cursor:default;color:var(--muted)}
  .care-disclosure{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:.3rem 0 1.1rem}
  .care-disclosure summary{display:flex;align-items:center;gap:.5rem;min-height:64px;cursor:pointer;font-size:.875rem;font-weight:700;list-style:none}
  .care-disclosure summary::-webkit-details-marker{display:none}
  .disclosure-plus{margin-left:auto;transition:transform .2s var(--ease)}
  .care-disclosure[open] .disclosure-plus{transform:rotate(45deg)}
  .care-content{padding-bottom:.7rem}
  .privacy-check{margin:.5rem 0 .25rem}
  .turnstile-container{margin:.6rem 0}
  .submit-button{width:100%;margin-top:.75rem}
  .form-errors{min-height:2.9em;color:#912918;margin:.8rem 0 0;font-size:.875rem;line-height:1.45;overflow-wrap:anywhere}
  .form-errors:empty{visibility:hidden}
  .form-errors:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
  .honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .availability{padding:2rem 0;font-family:var(--serif);font-size:2rem;line-height:1.2}
  .availability .text-button{display:block;font-family:var(--sans);font-size:1rem;margin-top:1.5rem}
  .confirmation-view{padding:1rem 0}
  .confirmation-icon{width:64px;height:64px}
  .confirmation-view h3{font-family:var(--serif);font-size:clamp(2.6rem,5vw,4.2rem);line-height:1;letter-spacing:-.04em;margin:1.5rem 0}
  .confirmation-name{font-size:1.1rem;overflow-wrap:anywhere}
  .ticket{margin:1.5rem 0;padding:1.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .ticket>span{display:block;font-size:.8rem}
  .ticket strong{display:block;font-size:clamp(1.2rem,4vw,1.9rem);letter-spacing:.06em;margin:.35rem 0 1rem}
  .ticket p{font-size:.9rem}
  .confirmation-view>.button{width:100%;margin-top:1.5rem}
  .confirmation-view>.text-button{display:flex;width:100%;margin-top:.75rem}
  .privacy-page{max-width:780px;margin:auto;padding:4rem 6%}
  .privacy-page h1{font-family:var(--serif);font-size:3rem;line-height:1.1;margin:0 0 2rem}
  .privacy-page h2{font-size:1.1rem;margin:2rem 0 .7rem}
  .privacy-page p{line-height:1.65;margin:.5rem 0}
  .privacy-page .back-link{display:inline-block;min-height:44px;margin-bottom:1.5rem}
}
@layer responsive{
  @media(min-width:600px) and (max-width:999px){
    .hero{padding:1.5rem 7% 3.5rem}.hero h1{width:74%;max-width:600px;margin-top:1.4rem}
    .event-meta{max-width:530px;justify-content:flex-start;gap:3rem;margin-top:1.5rem}.event-date{font-size:4.4rem}
    .celestial-scene{width:110%;max-width:900px;margin:.4rem -5% -.3rem}
    .event-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:0 2rem;margin-top:.5rem}
    .event-place,.location-link{grid-column:1}.hero-cta{grid-column:2;grid-row:1 / 3;align-self:center;margin:0}
    .registration{max-width:760px;padding:4.5rem 7%}
  }
  @media(min-width:1000px){
    .hero{grid-template-columns:1fr 1.1fr;gap:3%;padding:3.5rem max(5%,calc((100vw - 1440px)/2)) 3.5rem;min-height:740px}
    .hero-copy{display:block;align-self:center;z-index:2}.hero-topline{min-height:0}.entry-link{display:none}
    .hero h1{width:110%;max-width:640px;margin:1.7rem 0 2rem -3%}
    .eyebrow{font-size:.8rem}.event-meta{justify-content:flex-start;gap:2rem;margin-top:1.8rem}
    .event-date{font-size:4.8rem}.event-date>span{font-size:1.2rem}.event-time{font-size:1.1rem}
    .event-copy{margin-top:1.8rem}.hero-cta{max-width:260px}
    .celestial-scene{grid-column:2;grid-row:1;align-self:center;width:112%;max-width:820px;margin:0 -6%}
    .floor-fragments-wide{display:inline}
    .registration{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:12%;padding:6rem 6% 6rem}
    .registration-intro{position:sticky;top:3rem;align-self:start}.registration-intro h2{font-size:clamp(3.7rem,5vw,5rem)}
    .registration-ornament{display:block;width:210px;height:auto;margin:3rem 0 0 -1rem}.form-heading{display:block;margin-top:.5rem}
    .field-row{grid-template-columns:6.25rem minmax(0,1fr)}
  }
  @media(min-width:1700px){.hero h1{max-width:680px}.hero{min-height:820px}.celestial-scene{max-width:850px}.event-date{font-size:5.2rem}}
  @media(max-width:599px){
    .registration-intro h2{font-size:clamp(2rem,7vw + 1.5rem,3.2rem)}
    .site-footer{grid-template-columns:1fr auto;gap:1rem}.site-footer nav{grid-row:2;grid-column:1 / -1;justify-content:flex-start;gap:.3rem 1.4rem}.site-footer .back-top{grid-column:2;grid-row:1}
    .hero h1{width:90%}
  }
  @media(max-width:359px){
    .hero-topline{gap:.5rem}.eyebrow{font-size:.68rem;letter-spacing:.09em}.entry-link{font-size:.8rem;gap:.3rem}
    .event-date{font-size:3.2rem}.event-time{font-size:.9rem}.event-meta{gap:.6rem}
    .care-disclosure summary{flex-wrap:wrap;gap:.3rem}.field-row{grid-template-columns:4.375rem minmax(0,1fr);gap:.7rem}.field input{padding-inline:.7rem}
    .button{gap:1rem;padding-inline:1rem}
  }
  @container registration (width < 17rem){.field-row{grid-template-columns:minmax(0,1fr)}.submit-button{gap:.5rem;padding-inline:.75rem}}
  @media(hover:hover) and (pointer:fine){
    .button:not(:disabled):hover{background:#2b3c5c;transform:translate(-2px,-2px);box-shadow:6px 6px 0 #202c4640}
    .button:not(:disabled):hover .arrow-down{transform:translateY(2px)}
    .location-link:hover,.site-footer nav>a:hover{text-decoration:underline;text-underline-offset:4px}.back-top:hover{background:#eddcb2}
    .field input:hover,.field textarea:hover{border-color:var(--navy)}
  }
  /* Press wins over hover, including when both match on a desktop pointer. */
  .button:not(:disabled):active{transition-duration:.07s;transform:translate(2px,2px);box-shadow:1px 1px 0 #202c4640;background:var(--navy)}
  .button:not(:disabled):active .icon{transform:translateY(0)}
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
  @media(forced-colors:active){.button,input,textarea,.back-top{border:2px solid ButtonText}.celestial-scene{forced-color-adjust:none}.wordmark img{forced-color-adjust:none}.check-field input{appearance:auto;background:none}.check-field input::before{display:none}}
}
@layer motion{
  .motion-toggle{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0;background:none;border:0;color:inherit;font:inherit}
  .motion-toggle .icon{width:15px;height:15px}
  .motion-toggle .motion-play,.motion-toggle[data-paused=true] .motion-pause{display:none}
  .motion-toggle[data-paused=true] .motion-play{display:inline}
  .busy-ring{display:none;stroke-dasharray:38 13}.button[aria-busy=true] .submit-arrow{display:none}.button[aria-busy=true] .busy-ring{display:block}
  @media(prefers-reduced-motion:no-preference){
    /* Fine lines follow the original perspective; the painted scene is fixed. */
    .scene-lines-ready .portal-rays path,.scene-lines-ready .floor-outline{stroke-dasharray:1;stroke-dashoffset:1}
    .scene-lines-ready.lines-started .portal-rays path{animation:ray-engrave .9s cubic-bezier(.22,.61,.36,1) both}
    .scene-lines-ready.lines-started .floor-outline{animation:floor-outline .62s var(--ease) .28s both}
    .guardian-block:not([hidden]),#care-consent-field:not([hidden]){animation:field-reveal .16s ease-out}
    .confirmation-view:not([hidden]) .confirmation-check{stroke-dasharray:42;animation:check-draw .28s var(--ease) .08s both}
    .button[aria-busy=true] .submit-icon{animation:busy-turn .85s linear infinite}
  }
  .details-transitioning{overflow:hidden}
  .details-transitioning summary:focus-visible{outline-offset:-3px}
  [data-expanded="false"] .disclosure-plus{transform:rotate(0)}
  @keyframes ray-engrave{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes floor-outline{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes field-reveal{from{opacity:.65}to{opacity:1}}
  @keyframes check-draw{from{stroke-dashoffset:42}to{stroke-dashoffset:0}}
  @keyframes busy-turn{to{transform:rotate(360deg)}}
}
