@font-face{font-family:Kievit;src:url('kievit.ttf');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:Kievit,Arial,sans-serif;background:#22291f;color:#fffaf0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d9bd86;outline-offset:5px}.experience{position:fixed;inset:0;touch-action:pan-x}.scene{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s;pointer-events:none;overflow:hidden}.scene.active{opacity:1;visibility:visible;pointer-events:auto}.photo,.shade{position:absolute;inset:0;width:100%;height:100%}.photo{object-fit:cover;object-position:center 58%;transform:scale(1.07);transition:transform 1.8s ease}.active .photo{transform:scale(1)}.shade{background:linear-gradient(#11201833,transparent 48%,#0c170fcc)}.signature{position:absolute;top:15%;left:15px;right:15px;text-align:center}.bird{width:125px;height:103px;filter:brightness(0) invert(1);object-fit:contain;margin-bottom:17px}.signature h1{font:400 clamp(30px,6.4vw,105px)/1.15 Georgia,serif;letter-spacing:3px;margin:0 0 15px}.signature p{font:clamp(12px,1.45vw,22px) Georgia,serif;letter-spacing:5px;margin:0}.brand{position:fixed;left:4%;top:22px;z-index:10;padding:0;background:none;border:0}.brand img{width:65px;height:74px;filter:brightness(0) invert(1)}.home-actions{position:absolute;bottom:48px;left:5%;right:12%;display:grid;grid-template-columns:1.4fr 1fr 1fr;backdrop-filter:blur(10px)}.home-actions button,.scene-action{border:1px solid #fff8;background:#17231855;color:#fffaf0;padding:24px;font-size:11px;letter-spacing:1.5px;min-height:70px}.home-actions button:first-child,.scene-action{background:#f3f0e8;color:#193b4b}.home-actions button+button{border-left:0}.scene-action{position:absolute;bottom:65px;left:50%;transform:translate(-50%,20px);width:min(420px,74%);opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .7s .25s,transform .7s .25s}.active .scene-action{opacity:1;transform:translate(-50%,0)}.scene-action span{font-size:24px}.scene-nav{position:fixed;right:22px;bottom:32px;z-index:12;display:flex;flex-direction:column;align-items:center;gap:16px}.scene-nav>button{background:#15251955;border:1px solid #fff6;color:#fff;width:36px;height:36px;font-size:20px}.scene-nav>button:disabled{opacity:.3;cursor:default}.dots{display:flex;flex-direction:column;gap:8px}.dots button{border:0;background:none;width:26px;height:24px;padding:8px}.dots button::after{content:'';display:block;width:7px;height:7px;border:1px solid #fff;border-radius:50%}.dots button[aria-current=true]::after{background:#fff}.counter{font-size:9px;letter-spacing:1px}.map-scene{background:#f3f0e8;color:#193b4b;padding:120px 100px 35px 5%;display:flex;flex-direction:column;gap:25px}.map-heading{flex-shrink:0}.map-heading h2{font:400 clamp(26px,3vw,45px) Georgia,serif;margin:0 0 12px}.map-heading p{margin:0 0 13px;font-size:17px}.map-heading a{color:inherit;font-size:10px;letter-spacing:1px}.map-scene iframe{width:100%;min-height:0;flex:1;border:0;background:#dedfd6}.on-map .brand img{filter:none}.on-map .scene-nav{color:#193b4b}.on-map .dots button::after{border-color:#193b4b}.on-map .dots button[aria-current=true]::after{background:#193b4b}.on-map .scene-nav>button{background:#193b4b;color:white}dialog{width:min(440px,90%);background:#f3f0e8;color:#193b4b;border:0;padding:50px 30px;text-align:center}dialog::backdrop{background:#0008;backdrop-filter:blur(5px)}dialog h2{font:28px Georgia,serif}dialog p{font-size:17px}.close{position:absolute;right:10px;top:10px;border:0;background:none;font-size:28px;color:inherit}.ok{padding:16px 25px;border:0;background:#193b4b;color:white;letter-spacing:1px}@media(max-width:600px){.brand{left:20px;top:15px}.brand img{width:55px;height:62px}.signature{top:20%}.bird{width:105px;height:87px}.signature h1{font-size:7.2vw;letter-spacing:1px}.signature p{font-size:12px;letter-spacing:3px}.home-actions{left:20px;right:70px;bottom:30px;grid-template-columns:1fr 1fr}.home-actions button{padding:18px 12px;min-height:58px;font-size:9px;letter-spacing:1px}.home-actions button:first-child{grid-column:1/-1}.home-actions button:nth-child(2){border-left:1px solid #fff8}.scene-nav{right:14px;bottom:30px;gap:10px}.scene-action{left:20px;bottom:40px;width:calc(100% - 90px);transform:translateY(20px);padding:20px;font-size:10px}.active .scene-action{transform:translateY(0)}.map-scene{padding:100px 65px 25px 20px;gap:18px}.map-heading p{font-size:15px;line-height:1.5}.map-heading a{font-size:9px}.map-heading h2{font-size:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.photo{transform:none!important}}

.home-actions{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr}.map-heading a.contact-phone{font-size:20px;letter-spacing:.5px;text-decoration:none}.events-scene .photo{object-position:center 53%}@media(max-width:600px){.home-actions{grid-template-columns:1fr 1fr}.home-actions button:first-child{grid-column:auto}.home-actions button:nth-child(3){border-left:1px solid #fff8}.home-actions button{padding:16px 8px;min-height:64px}}

.home-actions button{width:100%;height:100%;min-width:0;overflow-wrap:break-word}

/* Opening guest information, matching the restaurant's stationery. */
.guest-notice{width:min(800px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;padding:38px 48px 36px;border:1px solid #c6b38c;background:#f6f2e9;color:#193b4b;box-shadow:0 24px 90px #0005;text-align:center}
.guest-notice::backdrop{background:#0c1d26a8;backdrop-filter:blur(8px)}
.guest-close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:#193b4b;width:44px;height:44px;font:30px Georgia,serif}
.guest-brand{display:flex;flex-direction:column;align-items:center;gap:5px}.guest-brand img{width:66px;height:54px;object-fit:contain}.guest-brand span{font:17px Georgia,serif;letter-spacing:2px}.guest-brand small{font-size:8px;letter-spacing:2px}
.guest-notice .guest-eyebrow{font-size:9px;letter-spacing:2.5px;color:#7b6741;margin:26px 0 12px}.guest-notice h2{font:400 clamp(28px,4vw,42px)/1.1 Georgia,serif;margin:0 0 12px}.guest-notice .guest-intro{font-size:14px;color:#53656a;line-height:1.5;margin:0}
.guest-details{display:grid;grid-template-columns:1fr 1fr;margin:28px 0;border-top:1px solid #cfc5b1;border-bottom:1px solid #cfc5b1;text-align:left}.guest-details section{padding:26px 24px 26px 0}.guest-details section+section{padding:26px 0 26px 26px;border-left:1px solid #cfc5b1}.guest-label{font-size:9px;letter-spacing:1.8px;color:#7b6741}.guest-details h3{font:400 24px/1.25 Georgia,serif;margin:12px 0}.guest-details p{font-size:15px;line-height:1.65;margin:0}.guest-details strong{font-weight:600}.guest-phone{display:inline-block;color:#193b4b;font-size:20px;text-decoration:none;margin-top:14px;padding:5px 0}.guest-confirm{background:#193b4b;color:#fffaf0;border:1px solid #193b4b;padding:19px 30px;min-height:54px;font-size:11px;letter-spacing:1.5px}.guest-confirm:hover{background:#294e5d}
@media(max-width:600px){.guest-notice{padding:26px 22px 24px}.guest-brand img{width:48px;height:40px}.guest-notice .guest-eyebrow{margin-top:20px}.guest-details{grid-template-columns:1fr;margin:22px 0}.guest-details section,.guest-details section+section{padding:19px 0;border-left:0}.guest-details section+section{border-top:1px solid #cfc5b1}.guest-details h3{font-size:22px}.guest-details h3 br{display:none}.guest-details p{font-size:14px}.guest-confirm{width:100%}}

.guest-notice{width:min(720px,calc(100% - 32px));padding:26px 34px 26px}.guest-brand img{width:52px;height:43px}.guest-notice .guest-eyebrow{margin:18px 0 9px}.guest-notice h2{font-size:clamp(27px,3.6vw,36px)}.guest-details{margin:20px 0}.guest-details section{padding:14px 22px 19px 0}.guest-details section+section{padding:14px 0 19px 22px}.guest-illustration{display:block;width:100%;height:83px;object-fit:contain;margin:0 0 13px}.guest-details h3{font-size:22px}.guest-details p{font-size:14px}.guest-confirm{padding:16px 26px;min-height:50px}
@media(max-width:600px){.guest-notice{padding:22px 20px}.guest-details section,.guest-details section+section{padding:14px 0 18px}.guest-illustration{height:66px;margin-bottom:10px}.guest-details h3{font-size:21px}}


.header-contacts{position:fixed;right:4%;top:28px;z-index:11;display:flex;flex-direction:column;align-items:flex-end;gap:7px;color:#fffaf0;font-size:15px;line-height:1.4;text-shadow:0 1px 6px #0009;pointer-events:none}.header-contacts span:last-child{font-size:18px;letter-spacing:.5px}.on-map .header-contacts{color:#193b4b;text-shadow:none}@media(max-width:600px){.header-contacts{top:22px;right:16px;max-width:calc(100% - 100px);font-size:11px;text-align:right;gap:4px}.header-contacts span:last-child{font-size:14px}}

.header-contacts{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:.35px}.header-contacts span:last-child{font-family:inherit;font-variant-numeric:lining-nums;letter-spacing:1px}
/* One fixed home with seasonal photographs; sections are independent pages. */
.season-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;opacity:0;transform:scale(1.045);transition:opacity 1s ease,transform 6s linear;pointer-events:none}.season-photo.is-current{opacity:1;transform:scale(1)}
.home-actions{right:5%}.home-actions a{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;min-height:70px;padding:24px 12px;border:1px solid #fff8;background:#17231855;color:#fffaf0;font-size:11px;letter-spacing:1.5px;text-decoration:none}.home-actions a:first-child{background:#f3f0e8;color:#193b4b}.home-actions a+a{border-left:0}.header-contacts{pointer-events:auto}.header-contacts a{color:inherit;text-decoration:none}.header-contacts a:hover{text-decoration:underline;text-underline-offset:5px}.back-home{position:fixed;top:110px;left:4%;z-index:12;color:inherit;text-decoration:none;font-size:11px;letter-spacing:1.5px;padding:12px 0}.inner-page .map-scene{padding-top:160px}.season-pause{position:fixed;right:18px;bottom:8px;z-index:12;background:transparent;color:#fffaf0;border:0;width:44px;height:36px;font-size:20px}.inner-page .scene-action{opacity:1;transform:translate(-50%,0)}
@media(max-width:600px){.home-actions{left:20px;right:20px;bottom:48px}.home-actions a{min-height:62px;padding:16px 8px;font-size:9px}.home-actions a:nth-child(3){border-left:1px solid #fff8}.back-home{top:85px;left:20px}.inner-page .map-scene{padding:130px 20px 20px}.inner-page .scene-action{transform:none}.header-contacts{max-width:calc(100% - 100px)}}
@media(prefers-reduced-motion:reduce){.season-photo{transition:none;transform:none}}

.contact-information{display:flex;gap:24px 50px;flex-wrap:wrap;margin:20px 0}.contact-information h3{font:400 18px/1.4 Georgia,serif;margin:0 0 8px}.contact-information p{line-height:1.6;margin:0}.map-heading a.contact-email{font-size:17px;letter-spacing:0;text-underline-offset:4px}.inner-page .map-scene{overflow-y:auto;touch-action:pan-y}.inner-page .map-scene iframe{flex:1 0 260px;min-height:260px}@media(max-width:600px){.contact-information{gap:18px;margin:18px 0}.contact-information h3{font-size:17px}.map-heading a.contact-email{font-size:16px}}

.header-contacts .header-phone{font-family:inherit;font-size:18px;font-variant-numeric:lining-nums;letter-spacing:1px}@media(max-width:600px){.header-contacts .header-phone{font-size:14px}}

/* Decorative snow belongs only to the winter photograph. */
.winter-snow{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .9s ease;contain:strict}.is-winter .winter-snow{opacity:1}.winter-snow i{position:absolute;top:-12px;left:var(--x);width:var(--size);height:var(--size);border-radius:50%;background:#fff;opacity:var(--alpha);box-shadow:0 0 5px #fff5;animation:snowfall var(--fall) linear var(--delay) infinite;animation-play-state:paused}.is-winter .winter-snow i{animation-play-state:running}.snow-paused .winter-snow i{animation-play-state:paused}@keyframes snowfall{from{transform:translate3d(0,-15px,0)}to{transform:translate3d(var(--drift),calc(100dvh + 24px),0)}}@media(max-width:600px){.winter-snow i:nth-child(n+29){display:none}}@media(prefers-reduced-motion:reduce){.winter-snow{display:none}.winter-snow i{animation:none}}

/* Seasonal particles remain decorative and never intercept interaction. */
.season-effect{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .9s ease;contain:strict}.is-spring .petals,.is-autumn .leaves,.is-summer .butterflies{opacity:1}.season-particle{position:absolute;left:var(--x);top:-30px;width:var(--size);height:var(--size);animation:season-fall var(--duration) linear var(--delay) infinite;animation-play-state:paused}.season-particle b{display:block;width:100%;height:100%;animation:season-sway 4s ease-in-out var(--delay) infinite alternate;animation-play-state:paused}.is-spring .petals i,.is-spring .petals b,.is-autumn .leaves i,.is-autumn .leaves b,.is-summer .butterflies i,.is-summer .butterflies b{animation-play-state:running}
.petals b{background:linear-gradient(135deg,#fff1f3,#e9a2bb);border-radius:80% 10% 75% 40%;opacity:.8;box-shadow:inset 1px 1px 2px #fff8}.petals .tone-1 b{background:linear-gradient(135deg,#ffe9ef,#d981a5)}.petals .tone-2 b{opacity:.55}
.leaves b{height:145%;background:linear-gradient(90deg,#b75a24 48%,#e5a13d 49%,#c47b29 55%);clip-path:polygon(50% 0,64% 25%,88% 16%,81% 43%,100% 50%,74% 69%,66% 84%,53% 81%,52% 100%,46% 100%,47% 80%,29% 84%,22% 66%,0 50%,20% 42%,12% 17%,36% 25%);opacity:.8}.leaves .tone-1 b{background:linear-gradient(90deg,#94371e 48%,#d78d36 50%,#bb5424 55%)}.leaves .tone-2 b{background:linear-gradient(90deg,#b58b31 48%,#f4c267 50%,#d6a148 55%)}
.butterflies .season-particle{top:var(--y);left:-45px;animation-name:butterfly-flight}.butterflies b{position:relative;width:3px;height:65%;margin:auto;border-radius:50%;background:#5b422b;animation:butterfly-bob 3s ease-in-out var(--delay) infinite alternate;animation-play-state:inherit}.butterflies b::before,.butterflies b::after{content:'';position:absolute;top:-5px;width:var(--size);height:calc(var(--size)*1.1);background:linear-gradient(140deg,#fff4cc,#e6b96d);border:1px solid #ad82494d;animation:butterfly-wing var(--flutter) ease-in-out infinite alternate;animation-play-state:inherit}.butterflies b::before{right:2px;border-radius:80% 50% 65% 30%;transform-origin:right center}.butterflies b::after{left:2px;border-radius:50% 80% 30% 65%;transform-origin:left center}.butterflies .tone-1 b::before,.butterflies .tone-1 b::after{background:linear-gradient(140deg,#fffaf1,#e5d6b6)}.butterflies .tone-2 b::before,.butterflies .tone-2 b::after{background:linear-gradient(140deg,#f7d28b,#c7894c)}
@keyframes season-fall{from{transform:translate3d(0,-30px,0) rotate(0)}to{transform:translate3d(var(--drift),calc(100dvh + 70px),0) rotate(var(--turn))}}@keyframes season-sway{from{transform:rotate(-25deg) scaleX(.65)}to{transform:rotate(30deg) scaleX(1)}}@keyframes butterfly-flight{0%{transform:translate3d(-30px,0,0);opacity:0}8%{opacity:.85}50%{transform:translate3d(50vw,-55px,0)}90%{opacity:.85}100%{transform:translate3d(calc(100vw + 90px),35px,0);opacity:0}}@keyframes butterfly-wing{from{transform:scaleX(.25)}to{transform:scaleX(1)}}@keyframes butterfly-bob{from{transform:translateY(-15px) rotate(-10deg)}to{transform:translateY(15px) rotate(12deg)}}
.snow-paused .season-effect i,.snow-paused .season-effect b,.snow-paused .season-effect b::before,.snow-paused .season-effect b::after{animation-play-state:paused}@media(max-width:600px){.petals i:nth-child(n+19),.leaves i:nth-child(n+13),.butterflies i:nth-child(n+6){display:none}}@media(prefers-reduced-motion:reduce){.season-effect{display:none}.season-effect *,.season-effect *::before,.season-effect *::after{animation:none!important}}
/* Four softly patterned wings, a slender body and varied flight paths. */
.butterflies .season-particle{perspective:180px;animation-name:butterfly-natural-flight;opacity:.8}.butterflies b{height:calc(var(--size)*.9);width:2px;background:linear-gradient(#493a2b,#796142);border-radius:60% 60% 45% 45%;animation:butterfly-bank 3.7s ease-in-out var(--delay) infinite alternate;animation-play-state:inherit}.butterflies b::before,.butterflies b::after{top:calc(var(--size)*-.22);width:var(--size);height:calc(var(--size)*1.35);border:0;clip-path:polygon(4% 4%,28% 0,62% 9%,85% 24%,98% 42%,88% 52%,99% 68%,88% 89%,65% 100%,40% 89%,20% 64%,8% 42%);border-radius:55% 75% 65% 55%;background:radial-gradient(ellipse at 65% 31%,#f9e8b4 0 12%,transparent 14%),radial-gradient(ellipse at 65% 76%,#f4dca0 0 13%,transparent 16%),repeating-conic-gradient(from 20deg at 8% 48%,#a4814c50 0deg 2deg,transparent 3deg 24deg),linear-gradient(100deg,#c79650,#f0d294 50%,#ad7b3e);box-shadow:none;animation:butterfly-natural-wing var(--flutter) cubic-bezier(.4,0,.6,1) infinite alternate;animation-play-state:inherit}.butterflies b::before{right:1px;transform-origin:right center;scale:-1 1}.butterflies b::after{left:1px;transform-origin:left center}.butterflies .tone-1 b::before,.butterflies .tone-1 b::after{background:radial-gradient(ellipse at 70% 29%,#62543c 0 5%,transparent 7%),radial-gradient(ellipse at 67% 75%,#a89972 0 4%,transparent 6%),repeating-conic-gradient(from 20deg at 8% 48%,#b7aa8740 0deg 2deg,transparent 3deg 26deg),linear-gradient(100deg,#cfc4a8,#fff9e8 58%,#e0d8bc)}.butterflies .tone-2 b::before,.butterflies .tone-2 b::after{background:radial-gradient(ellipse at 66% 30%,#4c3625 0 6%,#edd499 7% 11%,transparent 13%),radial-gradient(ellipse at 65% 78%,#795335 0 5%,transparent 7%),repeating-conic-gradient(from 20deg at 8% 48%,#704b324d 0deg 2deg,transparent 3deg 24deg),linear-gradient(100deg,#996239,#d7a35e 60%,#a77543)}
.butterfly-antennae{position:absolute;left:-3px;top:-6px;width:8px;height:8px;border-left:1px solid #564630;border-right:1px solid #564630;border-radius:0 0 60% 60%;transform:perspective(15px) rotateX(-20deg)}
@keyframes butterfly-natural-wing{0%{transform:rotateY(8deg)}100%{transform:rotateY(76deg)}}
@keyframes butterfly-bank{0%{transform:translateY(-8px) rotate(-18deg) scale(.85)}50%{transform:translateY(9px) rotate(5deg) scale(1)}100%{transform:translateY(-5px) rotate(20deg) scale(.9)}}
@keyframes butterfly-natural-flight{0%{transform:translate3d(-40px,0,0) rotate(18deg);opacity:0}7%{opacity:.75}23%{transform:translate3d(23vw,-38px,0) rotate(-12deg)}46%{transform:translate3d(46vw,18px,0) rotate(15deg)}68%{transform:translate3d(68vw,-55px,0) rotate(-16deg)}90%{opacity:.75}100%{transform:translate3d(calc(100vw + 75px),-10px,0) rotate(10deg);opacity:0}}
.butterflies .tone-1{animation-direction:reverse}.butterflies .tone-2{animation-timing-function:ease-in-out}

/* Summer fireflies float close to the lawn in a warm, quiet glow. */
.is-summer .fireflies{opacity:1}.fireflies i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);animation:firefly-drift var(--duration) ease-in-out var(--delay) infinite alternate;animation-play-state:paused}.fireflies b{display:block;width:100%;height:100%;border-radius:50%;background:#fff4b0;box-shadow:0 0 5px 2px #ffe58b88,0 0 15px 5px #e9bd4b33;animation:firefly-glow var(--glow) ease-in-out var(--delay) infinite;animation-play-state:paused}.is-summer .fireflies i,.is-summer .fireflies b{animation-play-state:running}.snow-paused .fireflies i,.snow-paused .fireflies b{animation-play-state:paused}@keyframes firefly-drift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(var(--drift),var(--rise),0)}100%{transform:translate3d(calc(var(--drift)*-.5),-7px,0)}}@keyframes firefly-glow{0%,100%{opacity:.08;transform:scale(.65)}35%{opacity:.85;transform:scale(1)}65%{opacity:.25;transform:scale(.8)}82%{opacity:.6;transform:scale(.95)}}@media(max-width:600px){.fireflies i:nth-child(n+13){display:none}}@media(prefers-reduced-motion:reduce){.fireflies{display:none}.fireflies i,.fireflies b{animation:none!important}}

/* Keep notice text readable at narrow widths. */
.guest-details{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-details section{min-width:0}.guest-details h3{line-height:1.35;word-break:normal;overflow-wrap:break-word;letter-spacing:normal}.guest-details p{word-break:normal;overflow-wrap:break-word}.guest-label{display:block;line-height:1.5}.guest-phone{white-space:nowrap}
@media(max-width:600px){.guest-details{grid-template-columns:minmax(0,1fr)}.guest-notice{box-sizing:border-box;max-width:calc(100vw - 24px)}.guest-details h3{margin:12px 0 16px}.guest-details section+section{padding-top:22px}}
