@font-face{font-family:Circular;src:url('assets/fonts/circular-regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:Circular;src:url('assets/fonts/circular-medium.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Blacker;src:url('assets/fonts/blacker-condensed.ttf') format('truetype');font-display:swap}
:root{--bg:#f1f1ef;--surface:#fff;--ink:#282a29;--muted:#686b69;--line:rgba(40,42,41,.17);--header:rgba(241,241,239,.84);--gold:#9a6b1a;--shadow:0 30px 90px rgba(26,29,28,.14)}
html[data-theme=dark]{--bg:#1f2426;--surface:#252b2d;--ink:#f1f0eb;--muted:#aeb5b6;--line:rgba(241,240,235,.17);--header:rgba(31,36,38,.84);--gold:#d7ad5b;--shadow:0 30px 90px rgba(0,0,0,.36)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Circular,Arial,sans-serif;transition:background-color .7s cubic-bezier(.2,.8,.2,1),color .7s cubic-bezier(.2,.8,.2,1)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.masthead{position:fixed;z-index:20;top:0;left:0;width:100%;height:104px;padding:28px clamp(24px,5vw,78px);display:flex;align-items:center;justify-content:space-between;background:var(--header);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:background-color .7s}
.brand{width:126px;line-height:0}.brand img,footer>img{display:block;width:100%}html[data-theme=dark] .brand img,html[data-theme=dark] footer>img{filter:invert(1) brightness(.93)}
.masthead nav{display:flex;align-items:center;gap:30px}.book-link,.theme-toggle{border:0;background:none;padding:8px 0}.book-link{font-size:15px;border-bottom:1px solid currentColor}.theme-toggle{width:26px;height:26px;padding:2px}.theme-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5}.theme-toggle .sun,html[data-theme=dark] .theme-toggle .moon{display:none}html[data-theme=dark] .theme-toggle .sun{display:block}
.guestlist{min-height:100svh;padding:112px 24px 58px;display:grid;place-items:center}
.eyebrow{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:600}.guestlist-intro{min-width:0}.intro-copy{max-width:690px}.intro-copy h1,.form-heading h2,.visit-content h2{margin:.28em 0 .25em;font-family:Blacker,Georgia,serif;font-weight:400;line-height:.84;letter-spacing:-.025em}.intro-copy h1{font-size:clamp(76px,9vw,150px);color:var(--gold);background-image:url('assets/textures/gold-leaf.png');background-size:440px auto;background-position:center;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px .2px rgba(255,245,205,.45)) drop-shadow(0 2px 1px rgba(65,39,4,.22))}.intro-copy p,.form-heading p,.visit-content>p{max-width:520px;color:var(--muted);font-size:17px;line-height:1.65}
figcaption{margin-top:13px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.guestlist-intro{display:none}.registration{width:min(820px,100%);padding:29px 34px 26px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.form-heading{margin-bottom:18px}.form-heading h2{font-size:clamp(43px,3.7vw,52px)}.form-heading p{margin:0;max-width:420px;font-size:13px;line-height:1.45}
form{display:grid;gap:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:grid;gap:4px;font-size:11px;font-weight:600;letter-spacing:.04em}input,select,textarea{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:5px 0 7px;outline:none;transition:border-color .25s}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--ink)}fieldset{margin:2px 0 0;padding:4px 0 0;border:0}legend{padding:0 0 6px;text-transform:uppercase;letter-spacing:.14em;font-size:10px}.check{display:grid;grid-template-columns:18px 1fr;align-items:start;gap:10px;margin:0;font-size:12px;font-weight:400;letter-spacing:0;line-height:1.35}.check input{appearance:none;width:17px;height:17px;margin:0;border:1px solid var(--muted);padding:0}.check input:checked{background:var(--ink);box-shadow:inset 0 0 0 4px var(--surface)}.submit{display:block;width:100%;border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:12px 15px;text-align:left;transition:background .25s,color .25s}.submit:hover{background:transparent;color:var(--ink)}.privacy{margin:-3px 0 0;color:var(--muted);font-size:10px;line-height:1.4}.form-result{font-size:13px;line-height:1.4}.form-result:empty{display:none}.form-result.error{color:#a94a3b}.verify-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.verify-links button{border:1px solid var(--line);background:transparent;padding:8px 10px}.optional{color:var(--muted);font-weight:400}.date-field{display:grid;gap:4px;min-width:0}.field-label{font-size:11px;font-weight:600;letter-spacing:.04em}.date-picker{position:relative;min-width:0}.date-trigger{width:100%;min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0 7px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .25s,color .25s}.date-trigger.is-placeholder{color:var(--muted)}.date-trigger:hover,.date-trigger:focus-visible,.date-trigger[aria-expanded=true]{border-color:var(--ink);outline:0}.date-trigger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex:none}.date-calendar{position:fixed;z-index:1000;inset:auto;margin:0;left:var(--calendar-left,12px);top:var(--calendar-top,12px);width:var(--calendar-width,286px);max-width:calc(100vw - 24px);padding:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 22px 60px rgba(25,27,26,.2);color:var(--ink)}html[data-theme=dark] .date-calendar{box-shadow:0 22px 62px rgba(0,0,0,.5)}.date-calendar[hidden]{display:none}.date-calendar:popover-open{display:block}.date-calendar-head{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;margin-bottom:10px}.date-calendar-head>span{text-align:center;font-family:Circular,sans-serif;font-size:15px;line-height:1.3}.date-calendar-head button{width:30px;height:30px;border:0;background:transparent;color:var(--ink);font-size:15px;cursor:pointer;transition:color .2s,background-color .2s}.date-calendar-head button:hover,.date-calendar-head button:focus-visible{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink);outline:0}.date-weekdays,.date-days{display:grid;grid-template-columns:repeat(7,1fr)}.date-weekdays{padding:5px 0 7px;border-bottom:1px solid var(--line);color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.08em;text-align:center;text-transform:uppercase}.date-days{gap:2px;padding-top:7px}.date-day{aspect-ratio:1;border:0;background:transparent;color:var(--ink);font:inherit;font-size:11px;cursor:pointer;position:relative;transition:background-color .18s,color .18s}.date-day:hover:not(:disabled),.date-day:focus-visible{background:color-mix(in srgb,var(--ink) 9%,transparent);outline:0}.date-day.is-outside{color:var(--muted);opacity:.48}.date-day.is-today::after{content:"";position:absolute;left:50%;bottom:3px;width:3px;height:3px;border-radius:50%;background:var(--ink);transform:translateX(-50%)}.date-day.is-selected{background:var(--ink);color:var(--surface)}.date-day.is-selected::after{background:var(--surface)}.date-day:disabled{color:var(--muted);opacity:.22;cursor:not-allowed}
footer{position:fixed;z-index:10;left:0;right:0;bottom:0;padding:18px clamp(24px,5vw,78px);display:flex;align-items:center;justify-content:space-between;font-size:11px;pointer-events:none}footer>img{width:62px}footer div{display:flex;gap:28px;color:var(--muted);pointer-events:auto}footer a{color:var(--ink);text-decoration:none}
.visit-dialog{width:min(700px,calc(100vw - 40px));height:fit-content;min-height:0;max-height:calc(100svh - 40px);padding:0;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);overflow:auto}.visit-dialog::backdrop{background:rgba(18,20,20,.68);backdrop-filter:blur(7px)}.visit-dialog[open]{display:block;animation:dialog-in .55s cubic-bezier(.2,.8,.2,1)}@keyframes dialog-in{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}.visit-media{display:none!important}.visit-content{position:relative;overflow:visible;padding:24px 32px 22px}.visit-content h2{margin-top:.18em;margin-bottom:.18em;font-size:46px;color:var(--ink);background-image:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:currentColor;filter:none}.visit-content>p{max-width:430px;margin:0;color:var(--muted);font-size:12px;line-height:1.4}.visit-content form{margin-top:12px;gap:7px}.visit-content input,.visit-content select,.visit-content textarea{padding-top:3px;padding-bottom:5px}.visit-content textarea{min-height:30px;max-height:38px;resize:none}.visit-content .submit{margin-top:2px;padding-block:10px}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:none;display:flex;align-items:center;gap:7px;font-size:10px}.dialog-close span{font-size:20px;font-weight:300}.visit-dialog.closing{animation:dialog-out .35s ease forwards}@keyframes dialog-out{to{opacity:0;transform:translateY(15px) scale(.99)}}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .registration{
    transform:perspective(1400px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg));
    will-change:transform;
  }
}
@media(min-width:561px){html,body{height:100%;overflow:hidden}.guestlist{height:100svh;min-height:0}}
@media(max-width:900px){.masthead{height:84px}.brand{width:100px}.guestlist{padding-top:96px}.field-row{grid-template-columns:1fr 1fr}footer div{flex-direction:column;gap:4px;text-align:right}}
@media(max-width:560px){.masthead{padding-inline:20px}.masthead nav{gap:18px}.book-link{font-size:13px}.guestlist{padding:88px 14px 48px}.registration{padding:25px 21px 22px}.form-heading h2{font-size:42px}.field-row{grid-template-columns:1fr}.visit-dialog{width:calc(100vw - 20px);max-height:calc(100svh - 20px)}.visit-content{padding:45px 21px 22px}.visit-content h2{font-size:44px}.date-calendar{max-width:calc(100vw - 24px)}.dialog-close{right:15px;top:11px}footer{padding:12px 20px}footer div span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
