/* Shared finishing touches; decorations never participate in page sizing. */
:root{--tabbar-h:86px;}
html{scroll-padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px);}
.app{isolation:isolate;}
.app>.floral-bg{overflow:clip;background:url('assets/gift-floral.svg') left top/76px auto no-repeat,url('assets/gift-floral.svg') right bottom/90px auto no-repeat;opacity:.28;}
.app::before,.app::after{max-width:24%;}
.app .view{min-width:0;overflow-wrap:anywhere;}
.view> .page-title{font-family:'Cormorant Garamond',Georgia,serif;color:#805722;}
.view :is(.field,.field-pair,.card,.menu-item){min-width:0;}
.view :is(input,select,textarea){max-width:100%;}
.view :is(video,iframe){max-width:100%;}
.view :is(.page-sub,.menu-text small){text-wrap:pretty;}
/* Fit every destination within the bar, including Home and Share, rather
   than relying on horizontal scrolling. Compact labels wrap when needed. */
#app .tabbar{container-type:inline-size;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.12fr) repeat(4,minmax(0,1fr));grid-auto-rows:74px;gap:2px;align-content:center;align-items:end;padding:6px 4px calc(6px + env(safe-area-inset-bottom));overflow:hidden;scrollbar-width:none;background:#fff9eff5;border-top:1px solid #e8d5b6;box-shadow:0 -3px 18px #9e702512;}
.tabbar::-webkit-scrollbar{display:none;}
#app .tabbar .tab{position:relative;display:grid;grid-template-rows:24px 20px;place-content:center;justify-items:center;gap:3px;min-width:0;width:100%;height:64px;min-height:64px;padding:7px 0;margin:0;border:1px solid #d6b47a;border-radius:10px;font-size:clamp(7px,2cqw,8.5px);font-weight:500;letter-spacing:0;white-space:normal;line-height:10px;color:#8a6029;background:linear-gradient(160deg,#fffdf8,#faf0de);isolation:isolate;transition:background .2s ease,color .2s ease;}
#app .tabbar .tab svg{width:clamp(20px,5.4cqw,24px);height:24px;align-self:center;fill:none;stroke-width:1.7;transform:none;filter:none;}
#app .tabbar .tab-label{display:flex;align-items:center;justify-content:center;width:100%;height:20px;min-width:0;text-align:center;white-space:normal;overflow-wrap:normal;line-height:10px;}
#app .tabbar .tab.active{background:linear-gradient(145deg,#b78032,#8b551c);color:#fff9e9;border-color:#a4702a;}
#app .tabbar .tab .tab-seal{width:30px;height:28px;align-self:center;object-fit:contain;margin:0;transform:none;animation:none;filter:none;}
#app .tabbar .tab--center{height:74px;min-height:74px;min-width:0;grid-template-rows:36px 20px;align-content:end;padding:3px 0 7px;border-radius:14px;}
#app .tabbar .tab--center .tab-seal{width:clamp(28px,8cqw,38px);height:36px;animation:gallerySealPulse 3s ease-in-out infinite;transform-origin:center;}
@keyframes gallerySealPulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 3px #e8ad4877);}50%{transform:scale(1.07);filter:drop-shadow(0 0 7px #f6c65cc9);}}
#app .tabbar .tab:focus-visible{outline:2px solid #875719;outline-offset:-3px;}
#app .tabbar .tab::before{content:'';position:absolute;inset:0;z-index:-1;border:0;border-radius:inherit;background:transparent;box-shadow:0 0 3px #c9943555;animation:showcaseGoldGlow 3.6s ease-in-out infinite;pointer-events:none;}
@keyframes showcaseGoldGlow{0%,100%{opacity:.5;box-shadow:0 0 3px #c9943533,inset 0 0 3px #efbc5633;}50%{opacity:1;box-shadow:0 0 9px #dfa23988,inset 0 0 6px #efbc5655;}}
@media(min-width:430px){#app .tabbar .tab{font-size:8.5px;}}
@media(prefers-reduced-motion:reduce){#app .tabbar .tab::before{animation:none;opacity:.75;}#app .tabbar .tab{transition:none;}#app .tabbar .tab--center .tab-seal{animation:none;transform:none;filter:drop-shadow(0 0 3px #e8ad4877);}#app .tabbar{scroll-behavior:auto;}}
