:root{--night:#0a1326;--night2:#172139;--gold:#e8b968;--lightgold:#ffe2a6;--paper:#fff9ef;--ink:#2c211f;--line:#d8c5a8;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);font-family:'DM Sans',system-ui,sans-serif;color:var(--paper);line-height:1.5}a{color:inherit}.hero{min-height:100svh;display:flex;flex-direction:column;position:relative;overflow:hidden;background:#080e1d}.hero-art{position:absolute;inset:0;background:url('/assets/jks-christmas-hero.png') center 28%/cover no-repeat;animation:art-appear 2s var(--ease) both;will-change:transform}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,11,24,.25) 75%,rgba(7,11,24,.96));pointer-events:none}.hero-bottom{position:relative;z-index:1;text-align:center;margin:auto auto 0;padding:3.5rem 1.5rem 3.2rem;animation:rise-in 1.1s .45s both}.hero-spark{color:var(--lightgold);font-size:2rem;display:block;text-shadow:0 0 18px #ffac48;animation:twinkle 3.5s ease-in-out infinite}.hero-kicker,.eyebrow{letter-spacing:.32em;font-size:.7rem;font-weight:700;color:var(--gold)}.hero-lead{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.45rem,2.7vw,2.2rem);margin:.3rem 0 1.4rem}.button{font:600 .91rem 'DM Sans',sans-serif;border:1px solid transparent;cursor:pointer;border-radius:999px;padding:1rem 2.1rem;min-height:3.3rem;display:inline-flex;gap:.8rem;align-items:center;justify-content:center;text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s var(--ease),filter .3s}.button:hover{transform:translateY(-4px);filter:brightness(1.07);box-shadow:0 10px 35px #da9e466b}.button:active{transform:translateY(-1px)}.button-primary{color:#23190e;background:linear-gradient(120deg,#f7dda9,#daa54e 60%,#f4d499);box-shadow:0 8px 35px #d3933461}.event-section{padding:5rem 1.5rem 5.5rem;text-align:center;background:radial-gradient(ellipse at 50% -20%,#76412770,transparent 65%),linear-gradient(180deg,#0a1326,#14213b)}.section-line{height:2rem;display:flex;align-items:center;gap:1rem;justify-content:center;color:var(--gold);margin:0 auto 1rem}.section-line:before,.section-line:after{content:'';width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.section-line:after{transform:rotate(180deg)}.section-line span{font-size:1rem}.eyebrow{margin:0 0 1.4rem}.event-details{max-width:900px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.event-details>div{padding:1.15rem 1rem;border-top:1px solid #c69d6585;border-bottom:1px solid #c69d6585}.event-details span{font-size:.69rem;letter-spacing:.21em;color:#d9ac70;display:block;margin-bottom:.45rem}.event-details strong{font:600 clamp(1.3rem,2.1vw,1.65rem) 'Cormorant Garamond',Georgia,serif;color:#fff1d9}.event-note{font-size:.94rem;color:#e4d3c1;margin:1.8rem auto 0;max-width:550px}.rsvp-section{background:radial-gradient(ellipse at 50% 0,#9c5b2a48,transparent 40%),linear-gradient(180deg,#14213b 0%,#0b1529 100%);padding:3rem 1.2rem 4.5rem}.form-shell{max-width:700px;margin:auto;padding:clamp(1.55rem,5vw,3.3rem);border-radius:1.5rem;background:linear-gradient(135deg,#fffaf2,#f6ead9);color:var(--ink);border:1px solid #efd9b1;box-shadow:0 20px 65px #0006}.form-shell>.eyebrow{text-align:center;color:#99651d}.form-shell h1{text-align:center;font:600 clamp(2.6rem,6vw,4rem)/1 'Cormorant Garamond',Georgia,serif;margin:.3rem 0}.form-intro{text-align:center;color:#756457;margin:0 0 2rem;font-size:.92rem}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label,legend{font-size:.9rem;font-weight:600}label{display:block;margin-bottom:1.15rem}label>span:not(.optional),legend>span{color:#9b6322}.optional{font-weight:400;color:#877b6d}input:not([type]),input[type=text],textarea{font:inherit;color:var(--ink);width:100%;display:block;border:1px solid var(--line);padding:.84rem .95rem;border-radius:.65rem;margin-top:.43rem;background:#fffdf8;transition:border-color .25s,box-shadow .25s}textarea{resize:vertical}input:focus-visible,textarea:focus-visible,.button:focus-visible{outline:2px solid #d9a34d;outline-offset:3px}fieldset{border:0;padding:0;margin:0 0 1.2rem}legend{margin-bottom:.65rem}.option-stack,.option-row{display:flex;gap:.65rem;flex-wrap:wrap}.option-stack{flex-direction:column}.option{display:flex;align-items:center;gap:.6rem;padding:.7rem .95rem;border:1px solid #dcc6a7;border-radius:.7rem;background:#fffdf8;cursor:pointer;margin:0;font-weight:500;transition:background .25s,transform .25s var(--ease),border-color .25s,box-shadow .25s}.option:hover{transform:translateY(-2px);border-color:#bc8e47}.option:has(input:checked){background:#fff0cf;border-color:#ac7429;box-shadow:inset 0 0 0 1px #d0a35d}.option input{accent-color:#ac7429;width:16px;height:16px;margin:0}.option span{color:var(--ink)!important}.option-stack .option{width:100%}.conditional.hidden{display:none}.conditional:not(.hidden){animation:reveal-field .42s var(--ease) both}.submit{width:100%;margin-top:.8rem}.submit:disabled{opacity:.6;cursor:wait;transform:none;box-shadow:none}.privacy{margin:.95rem 0 0;text-align:center;font-size:.75rem;color:#8a7969}.message{margin:.8rem 0 0;text-align:center;font-weight:600}.message.success{color:#32633e}.message.error{color:#a83d30}.hp{position:absolute;left:-9999px;opacity:0}.footer-star{text-align:center;color:var(--gold);padding-top:2rem;font-size:1.1rem;text-shadow:0 0 16px #eead54}.reveal{opacity:1;transform:none}.js-motion .reveal:not(.is-visible){opacity:0;transform:translateY(23px)}.js-motion .reveal{transition:opacity .85s var(--ease),transform .85s var(--ease)}.js-motion .reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes art-appear{from{opacity:.5;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}@keyframes rise-in{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-field{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes twinkle{0%,100%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.12)}}@media(max-width:640px){.hero{min-height:90svh}.hero-art{background-size:94% auto;background-position:center 14%;background-color:#090f1f}.hero:after{background:linear-gradient(180deg,transparent 45%,#0a1326 86%)}.hero-bottom{padding-bottom:2.4rem}.event-section{padding:3.5rem 1.3rem}.event-details{grid-template-columns:1fr;gap:.5rem}.event-details>div{padding:.65rem;border-bottom:0}.event-details>div:last-child{border-bottom:1px solid #c69d6585}.two-cols{grid-template-columns:1fr;gap:0}.form-shell{border-radius:1rem}.dietary-options .option{padding:.65rem .8rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal:not(.is-visible){opacity:1;transform:none}}

/* Restaurant directions */
.venue-link{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#e8b96899;transition:color .2s,text-decoration-color .2s}.venue-link:hover,.venue-link:focus-visible{color:var(--lightgold);text-decoration-color:var(--lightgold)}
