@font-face{font-family:Frank Ruhl Libre;src:url(../brand/fonts/FrankRuhlLibre-Bold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Frank Ruhl Libre;src:url(../brand/fonts/FrankRuhlLibre-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(../brand/fonts/Inter-SemiBold.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(../brand/fonts/Inter-SemiBold.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(../brand/fonts/Inter-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(../brand/fonts/Inter-SemiBold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Birthstone;src:url(../brand/fonts/Birthstone-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--color-cream:#f5f0e8;--color-paper:#fdfaf4;--color-ink:#2a2420;--color-ink-soft:#4a4038;--color-caramel:#a67c52;--color-caramel-deep:#8b623d;--color-slate:#7a9aa8;--color-slate-deep:#5f7f8c;--color-trail:#3d4a3a;--font-display:"Frank Ruhl Libre", "Times New Roman", serif;--font-sans:"Inter", system-ui, sans-serif;--font-script:"Birthstone", cursive;--radius-soft:1.25rem;--shadow-soft:0 18px 40px #2a24201f;--max:68rem;--nav-h:4.25rem}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--color-caramel) var(--color-cream)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-cream);border-left:1px solid #2a242014}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--color-caramel) 0,var(--color-caramel-deep) 100%);border:2px solid var(--color-cream);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#b88a5c 0,var(--color-ink-soft) 100%)}::-webkit-scrollbar-corner{background:var(--color-cream)}body{min-height:100vh;font-family:var(--font-sans);color:var(--color-ink);background:radial-gradient(ellipse 80% 50% at 10% -10%,#7a9aa82e,transparent 55%),radial-gradient(ellipse 70% 40% at 100% 0,#a67c5224,transparent 50%),linear-gradient(180deg,var(--color-cream) 0,#ebe4d8 100%);background-attachment:fixed;margin:0;font-size:1.05rem;line-height:1.6}img{max-width:100%;display:block}a{color:var(--color-caramel-deep);text-underline-offset:.2em;text-decoration-thickness:1px;transition:color .2s}a:hover{color:var(--color-ink)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600;line-height:1.15}h1{margin:0 0 .5rem;font-size:calc(clamp(2.4rem,5vw,3.6rem))}h2{margin:0 0 .4rem;font-size:calc(clamp(1.5rem,3vw,2rem))}p{color:var(--color-ink-soft);margin:0 0 .85rem}.site-shell{flex-direction:column;min-height:100vh;display:flex}body.is-home-page{height:100%;overflow:hidden}html:has(body.is-home-page){height:100%;overflow:hidden}.site-shell.is-home{height:100dvh;max-height:100dvh;overflow:hidden}.site-shell.is-home .site-header{flex-shrink:0}.site-shell.is-home .site-main.is-home{flex:1;min-height:0;overflow:hidden}.site-header{z-index:40;height:var(--nav-h);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f0e8e0;border-bottom:1px solid #2a24201a;justify-content:space-between;align-items:center;gap:1rem;padding:0 calc(clamp(1rem,3vw,2rem));display:flex;position:sticky;top:0}.brand-mark{font-family:var(--font-display);color:var(--color-ink);white-space:nowrap;align-items:baseline;gap:.35rem;font-size:1.45rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark .amp{color:var(--color-caramel);font-style:italic}.brand-mark .city{font-family:var(--font-script);color:var(--color-caramel);margin-left:.15rem;font-size:1.35rem}.site-nav{letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;justify-content:flex-end;gap:.35rem .9rem;font-size:.82rem;display:flex}.site-nav a{color:var(--color-ink-soft);padding:.2rem 0;text-decoration:none;position:relative}.site-nav a:after{content:"";background:var(--color-caramel);transform-origin:0;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-nav a.router-link-active,.site-nav a:hover{color:var(--color-ink)}.site-nav a.router-link-active:after,.site-nav a:hover:after{transform:scaleX(1)}.site-main{flex:1}.site-main:not(.is-home){width:min(100% - 2rem,var(--max));margin:0 auto;padding:2.5rem 0 4rem}.site-footer{text-align:center;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-soft);border-top:1px solid #2a24201a;padding:1.5rem calc(clamp(1rem,3vw,2rem)) 2rem;font-size:.85rem}.site-footer .script{font-family:var(--font-script);letter-spacing:0;text-transform:none;color:var(--color-caramel);font-size:1.25rem}.hero{height:100%;min-height:0;color:var(--color-paper);place-items:center;display:grid;position:relative;overflow:hidden}.hero__media{background:linear-gradient(#2a24208c,#2a242059 45%,#2a2420b3),url(../brand/hero-offroad.jpg) 50%/cover no-repeat;position:absolute;inset:0}.hero__content{z-index:1;text-align:center;width:min(100% - 2rem,36rem);max-height:100%;padding:calc(clamp(.75rem,2vh,2rem)) 0;animation:.9s both rise-in;position:relative}.hero:has(.featured-banner) .hero__content{max-height:calc(100% - 6.5rem);margin-bottom:6.5rem;padding-bottom:.5rem}.hero__logo{width:calc(min(62vw,16rem));height:auto;margin:0 auto calc(clamp(.5rem,1.5vh,1.25rem));animation:1.1s cubic-bezier(.2,.8,.2,1) both logo-in;display:block}.hero__brand{font-family:var(--font-display);color:var(--color-paper);margin:0;font-size:calc(clamp(2rem,6vw,3.6rem));font-weight:600;line-height:1}.hero__brand .amp{color:#d4a574;font-style:italic}.hero__tag{letter-spacing:.28em;text-transform:uppercase;color:#fdfaf4e6;margin:.85rem 0 .35rem;font-size:.95rem}.hero__city{font-family:var(--font-script);color:#d4a574;margin-bottom:1rem;font-size:calc(clamp(1.8rem,4vw,2.4rem));display:block}.hero__lead{color:#fdfaf4e0;max-width:28rem;margin:0 auto calc(clamp(.75rem,2vh,1.5rem))}@media (height<=720px){.hero__logo{width:calc(min(48vw,11rem))}.hero__lead{display:none}.hero__city{margin-bottom:.5rem}}.hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn,.hero__actions{justify-content:center}.btn{min-height:2.75rem;font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;border:1.5px solid #0000;border-radius:999px;align-items:center;padding:.65rem 1.35rem;font-size:.82rem;font-weight:600;text-decoration:none;transition:transform .2s,background .2s,color .2s,border-color .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--solid{background:var(--color-caramel);border-color:var(--color-caramel)}.btn--ghost,.btn--ghost:hover,.btn--solid,.btn--solid:hover{color:var(--color-paper)}.btn--solid:hover{background:var(--color-caramel-deep)}.btn--ghost{background:#fdfaf41a;border-color:#fdfaf48c}.btn--ghost:hover{background:#fdfaf42e}.btn--ink{background:var(--color-ink);color:var(--color-cream);border-color:var(--color-ink)}.btn--ink:hover{background:var(--color-ink-soft);color:var(--color-cream)}.page-head{margin-bottom:1.75rem;animation:.55s both rise-in}.page-head .eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-caramel);margin:0 0 .35rem;font-size:.78rem}.page-head .script-note{font-family:var(--font-script);color:var(--color-slate-deep);font-size:1.45rem}.stack{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.panel{background:var(--color-paper);border-radius:var(--radius-soft);box-shadow:var(--shadow-soft);border:1px solid #2a24201a;padding:1.25rem 1.35rem;animation:.55s both rise-in}.stack>.panel:nth-child(2){animation-delay:50ms}.stack>.panel:nth-child(3){animation-delay:.1s}.stack>.panel:nth-child(4){animation-delay:.15s}.stack>.panel:nth-child(5){animation-delay:.2s}.panel h2{color:var(--color-ink)}.meta{letter-spacing:.04em;color:var(--color-slate-deep);font-size:.9rem}.gallery-row,.person-row{grid-template-columns:auto 1fr;align-items:start;gap:1rem;display:grid}.avatar,.thumb{border:2px solid var(--color-caramel);background:var(--color-cream);-o-object-fit:cover;object-fit:cover;border-radius:50%}.thumb{border-radius:.85rem;width:9rem;height:6rem}.error{color:#8a2f2f;font-weight:600}.chip{letter-spacing:.08em;text-transform:uppercase;color:var(--color-caramel-deep);border:1px solid #a67c5273;border-radius:999px;margin-top:.35rem;padding:.2rem .65rem;font-size:.75rem;display:inline-block}.event-lead{align-items:center;gap:.65rem;margin:.65rem 0 0;display:flex}.event-lead__photo{border:2px solid var(--color-caramel);background:var(--color-cream);-o-object-fit:cover;object-fit:cover;border-radius:50%;flex-shrink:0;width:2.5rem;height:2.5rem}.btn--ghost-ink{color:var(--color-ink-soft);background:0 0;border-color:#2a242040}.btn--ghost-ink:hover{color:var(--color-ink);background:#2a24200f}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.rsvp{border-top:1px dashed #2a242024;margin-top:1.15rem;padding-top:1rem}.rsvp__head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.5rem;display:flex}.rsvp__head h3{font-family:var(--font-display);margin:0;font-size:1.35rem}.rsvp__list{color:var(--color-ink-soft);margin:0 0 .85rem;padding-left:1.1rem}.rsvp__you{color:var(--color-caramel-deep);font-size:.9em}.rsvp__form{gap:.75rem;margin-top:.75rem;display:grid}.rsvp__label{color:var(--color-ink-soft);gap:.35rem;font-size:.85rem;display:grid}.rsvp__input{background:var(--color-cream);width:100%;min-height:2.75rem;color:var(--color-ink);font:inherit;border:1.5px solid #2a24202e;border-radius:.85rem;padding:.55rem .85rem}.rsvp__input:focus{outline-offset:1px;border-color:var(--color-caramel);outline:2px solid #a67c5273}.rsvp__mine{gap:.65rem;margin-top:.65rem;display:grid}.rsvp__mine p{margin:0}.chat{gap:1rem;padding:1.1rem 1.2rem 1.25rem;display:grid}.chat__list{gap:.75rem;max-height:calc(min(55vh,28rem));padding-right:.25rem;display:grid;overflow-y:auto}.chat__msg{background:var(--color-cream);border:1px solid #2a24201a;border-radius:.9rem;padding:.75rem .9rem}.chat__msg--mine{background:#a67c521a;border-color:#a67c5273}.chat__msg p{white-space:pre-wrap;word-break:break-word;margin:.35rem 0 0}.chat__meta{color:var(--color-ink-soft);flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;font-size:.85rem;display:flex}.chat__meta strong{color:var(--color-ink);font-family:var(--font-display);font-size:1.05rem;font-weight:600}.chat__delete{color:var(--color-caramel-deep);font:inherit;cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;margin-left:auto;font-size:.8rem;text-decoration:underline}.chat__form{border-top:1px dashed #2a242024;gap:.75rem;padding-top:.85rem;display:grid}.chat__textarea{resize:vertical;min-height:5rem;line-height:1.45}.chat__actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.admin-shell{background:radial-gradient(ellipse 70% 40% at 100% 0,#a67c521f,transparent 50%),var(--color-cream);min-height:100vh}.admin-header{background:#fdfaf4e6;border-bottom:1px solid #2a24201f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;padding:.9rem calc(clamp(1rem,3vw,2rem));display:flex}.admin-header__brand{font-family:var(--font-display);flex-wrap:wrap;align-items:baseline;gap:.75rem 1rem;font-size:1.35rem;font-weight:600;display:flex}.admin-header__brand a{color:var(--color-ink);text-decoration:none}.admin-header__public{font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--color-caramel-deep)!important}.admin-nav{letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.4rem .85rem;font-size:.8rem;display:flex}.admin-nav a{color:var(--color-ink-soft);text-decoration:none}.admin-nav a.router-link-active{color:var(--color-ink);text-underline-offset:.2em;text-decoration:underline}.admin-logout{color:var(--color-caramel-deep);font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;font-size:.8rem}.admin-main{width:min(100% - 2rem,52rem);margin:0 auto;padding:2rem 0 4rem}.admin-login{max-width:28rem;margin:3rem auto}.admin-form{gap:.75rem;display:grid}.admin-form__checkbox{flex-direction:row;align-items:center;gap:.55rem;display:flex}.admin-form__checkbox input{width:1.05rem;height:1.05rem;accent-color:var(--ink,#2a2420);margin:0}.admin-editor{margin-bottom:1.25rem}.admin-json{white-space:pre-wrap;word-break:break-word;background:#2a24200d;border-radius:.75rem;margin:.5rem 0 .85rem;padding:.75rem;font-size:.78rem;line-height:1.4;overflow:auto}@media (width<=720px){.site-header{height:auto;min-height:var(--nav-h);flex-direction:column;align-items:flex-start;padding-top:.85rem;padding-bottom:.85rem}.site-nav{justify-content:flex-start}.gallery-row,.person-row{grid-template-columns:1fr}}.featured-banner{z-index:2;background:linear-gradient(#2a242000,#2a2420bf 35%,#2a2420eb);padding:.85rem 1rem 1rem;animation:1s .15s both rise-in;position:absolute;bottom:0;left:0;right:0}.featured-banner__inner{text-align:center;width:min(100%,40rem);color:var(--color-paper);margin:0 auto}.featured-banner__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:#d4a574;margin:0;font-size:.72rem}.featured-banner__title{font-family:var(--font-display);color:var(--color-paper);margin:.2rem 0 .25rem;font-size:calc(clamp(1.35rem,3.5vw,1.85rem));font-weight:600}.featured-banner__meta,.featured-banner__summary{color:#fdfaf4e0;margin:0 0 .35rem;font-size:.92rem}.featured-banner__meta{letter-spacing:.04em;text-transform:uppercase;color:#fdfaf4b8;font-size:.8rem}.featured-banner .btn{margin-top:.35rem}.special-content{gap:.85rem;margin-bottom:1.5rem;display:grid}.special-content h2,.special-content h3{margin:.4rem 0 0}.special-content ol,.special-content p,.special-content ul{color:var(--color-ink-soft);margin:0}.special-content ol,.special-content ul{padding-left:1.25rem}.special-content img,.special-content__img{border-radius:var(--radius-soft);width:100%;box-shadow:var(--shadow-soft)}.special-content hr{border:0;border-top:1px solid #2a242024;width:100%;margin:.5rem 0}.richtext-editor{background:var(--color-paper);border:1px solid #2a242029;border-radius:.9rem;overflow:hidden}.richtext-editor .ql-toolbar.ql-snow{background:#2a242008;border:0;border-bottom:1px solid #2a242024;padding:.55rem .65rem}.richtext-editor .ql-container.ql-snow{font:inherit;color:var(--color-ink);border:0;height:auto;font-size:1rem}.richtext-editor .ql-editor{min-height:16rem;padding:.95rem 1.05rem;line-height:1.55}.richtext-editor .ql-editor.ql-blank:before{color:#2a242066;font-style:normal;left:1.05rem;right:1.05rem}.richtext-editor .ql-editor h2,.richtext-editor .ql-editor h3,.richtext-editor .ql-editor ol,.richtext-editor .ql-editor p,.richtext-editor .ql-editor ul{margin:0 0 .75rem}.richtext-editor .ql-snow .ql-stroke{stroke:var(--color-ink)}.richtext-editor .ql-snow .ql-fill{fill:var(--color-ink)}.richtext-editor .ql-snow .ql-picker{color:var(--color-ink)}.richtext-editor .ql-snow .ql-hidden{display:none!important}.special-signup{margin-top:1.25rem}.special-signup__done,.special-signup__form{gap:.9rem;display:grid}.special-signup__field{gap:.4rem;display:grid}.special-signup__field>label{color:var(--color-ink);font-weight:600}.special-signup__req{color:var(--color-caramel-deep)}.special-signup__choices{flex-wrap:wrap;gap:.55rem 1rem;display:flex}.special-signup__choice{color:var(--color-ink);align-items:center;gap:.4rem;display:inline-flex}.input{background:var(--color-paper);width:100%;min-height:2.6rem;color:var(--color-ink);font:inherit;border:1px solid #2a24202e;border-radius:.75rem;padding:.55rem .75rem}textarea.input{resize:vertical;min-height:5rem}.editor-stack{gap:.85rem;display:grid}.editor-toolbar{flex-wrap:wrap;gap:.5rem;display:flex}.editor-card{background:#fdfaf4b3;border:1px solid #2a24201f;border-radius:.9rem;gap:.65rem;padding:.85rem;display:grid}.editor-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.editor-card__actions{gap:.35rem;display:flex}.editor-card__actions button{color:var(--color-caramel-deep);font:inherit;cursor:pointer;text-underline-offset:.12em;background:0 0;border:0;font-size:.85rem;text-decoration:underline}.editor-check{color:var(--color-ink);align-items:center;gap:.45rem;font-weight:600;display:inline-flex}.admin-create,.admin-special,.stack-form{gap:1rem;display:grid}.admin-special__actions{flex-wrap:wrap;gap:.75rem;display:flex}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes logo-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.calendar-layout{grid-template-columns:minmax(0,1.2fr) minmax(16rem,.85fr);grid-template-areas:"detail list";align-items:start;gap:1.25rem;display:grid}.calendar-detail{top:calc(1rem + var(--nav-h,4.5rem));grid-area:detail;position:sticky}.calendar-list{grid-area:list;min-height:0}.calendar-list__scroll{gap:.55rem;max-height:calc(min(70vh,42rem));margin:0;padding:0 .2rem 0 0;list-style:none;display:grid;overflow:auto}.calendar-list__item{text-align:left;border-radius:var(--radius-soft);background:var(--color-paper);width:100%;color:inherit;cursor:pointer;border:1px solid #2a24201f;gap:.2rem;padding:.85rem .95rem;transition:border-color .2s,background .2s,transform .2s;display:grid}.calendar-list__row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.calendar-list__copy{gap:.2rem;min-width:0;display:grid}.calendar-list__icon{flex:none}.calendar-detail__head{align-items:flex-start;gap:.85rem;margin-bottom:.35rem;display:flex}.calendar-detail__head h2{margin-top:0}.special-icon{width:1.65rem;height:1.65rem;color:var(--color-ink);vertical-align:middle;background:#2a24200f;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.special-icon svg{width:1rem;height:1rem}.special-icon--sm{width:1.25rem;height:1.25rem}.special-icon--sm svg{width:.75rem;height:.75rem}.special-icon--md{color:#8a4b2b;background:#d4a57438;width:2rem;height:2rem}.special-icon--md svg{width:1.05rem;height:1.05rem}.special-icon--lg{color:#8a4b2b;background:#d4a57438;width:2.75rem;height:2.75rem}.special-icon--lg svg{width:1.4rem;height:1.4rem}.special-icon--banner{color:#f3d2ad;background:#fdfaf41f;border:1px solid #fdfaf438;width:3rem;height:3rem;margin:0 auto .35rem}.special-icon--banner svg{width:1.45rem;height:1.45rem}.btn .special-icon{margin-right:.35rem}.btn--ink .special-icon{color:var(--color-cream);background:#fdfaf41f}.icon-picker{border:0;margin:0;padding:0}.icon-picker legend{padding:0;font-weight:650}.icon-picker__grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.55rem;margin-top:.55rem;display:grid}.icon-picker__option{border-radius:var(--radius-soft);background:var(--color-paper);color:inherit;cursor:pointer;border:1px solid #2a24201f;justify-items:center;gap:.35rem;padding:.65rem .4rem;font-size:.78rem;display:grid}.icon-picker__option.is-active{border-color:var(--color-ink);background:#2a24200d}.icon-picker__none{background:#2a24200f;border-radius:999px;justify-content:center;align-items:center;width:1.65rem;height:1.65rem;font-size:1rem;line-height:1;display:inline-flex}.calendar-list__item:hover{border-color:#2a242047;transform:translateY(-1px)}.calendar-list__item.is-active{border-color:var(--color-ink);background:#2a24200a}.calendar-list__date{letter-spacing:.04em;color:var(--color-slate-deep);font-size:.82rem}.calendar-list__title{color:var(--color-ink);font-weight:650}.calendar-list__meta{color:var(--color-slate-deep);font-size:.82rem}@media (width<=720px){.calendar-layout{grid-template-columns:1fr;grid-template-areas:"list""detail"}.calendar-detail{position:static}.calendar-list__scroll{max-height:calc(min(40vh,22rem))}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}
