/* A single page-transition owner; no snapshot competes with the curtain. */
@view-transition { navigation:none; }
.page-enter { animation:none; }
.site-header { view-transition-name:none; }
:root { --ease-silk:cubic-bezier(.16,1,.3,1); }
.desktop-nav a::after { width:100%; transform:scaleX(0); transform-origin:right; transition:transform 720ms var(--ease-silk); }
.desktop-nav a:is(:hover,:focus-visible,[aria-current="page"])::after { transform:scaleX(1); transform-origin:left; }
.text-link,.book-link,.coastal-footer-nav>a,.coastal-footer-bottom>a { position:relative; text-decoration:none!important; }
.text-link,.book-link { border-bottom-color:transparent!important; transition:color 600ms ease; }
.text-link::after,.book-link::after,.coastal-footer-nav>a::after,.coastal-footer-bottom>a::after { content:''; position:absolute; bottom:5px; left:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform 800ms var(--ease-silk); }
.text-link::after,.book-link::after { transform:scaleX(.18); }
.text-link:is(:hover,:focus-visible)::after,.book-link:is(:hover,:focus-visible)::after,.coastal-footer-nav>a:is(:hover,:focus-visible)::after,.coastal-footer-bottom>a:is(:hover,:focus-visible)::after { transform:scaleX(1); transform-origin:left; }
.text-link:hover { gap:34px; }
.coastal-footer-nav>a { width:fit-content; }
.coastal-footer-nav>a::after { bottom:6px; }
.coastal-wordmark,.coastal-wordmark:hover { color:var(--shore); text-shadow:none; }
.coastal-wordmark>span { transform-origin:50% 75%; }
.marea-footer { isolation:isolate; }
.marea-footer> :not(.footer-light) { position:relative; z-index:1; }
.footer-light { position:absolute; top:0; left:0; width:min(1050px,100vw); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(186,210,153,.24) 0%,rgba(139,177,137,.14) 30%,rgba(113,157,128,.055) 49%,transparent 70%); pointer-events:none; opacity:0; transition:opacity 220ms ease; will-change:transform; z-index:0; }
.light-active>.footer-light { opacity:1; }
.nav-panel { backdrop-filter:none; background:#245963ed; }
.shore-nav::backdrop { background:transparent; }
/* Cormorant's real Cyrillic italic carries the literary accent. */
.gallery-intro h1 { font-size:clamp(76px,9.3vw,150px); letter-spacing:-.045em; }
.gallery-intro h1 em { color:#747861; }
.gallery-intro-count { font-family:var(--display); font-size:32px; }
.gallery-intro-count small { font:11px/1.6 var(--body); letter-spacing:.16em; }
.gallery-intro>div>p { font-size:16px; }
.gallery-chapters.portfolio-grid { display:block; margin-top:65px; }
.gallery-chapter { margin-bottom:95px; }
.gallery-chapter-heading { display:flex; align-items:center; gap:26px; margin-bottom:30px; }
.gallery-roman { font:400 clamp(72px,8vw,120px)/1 var(--display); color:#223c3521; }
.gallery-chapter-heading .eyebrow { color:var(--olive); font-size:11px; letter-spacing:.21em; }
.gallery-chapter-heading h2 { font:italic 400 clamp(28px,3vw,44px)/1.2 var(--display); margin-top:10px; }
.gallery-triptych { display:flex; gap:12px; overflow:hidden; }
.gallery-panel { flex:1 1 0%; min-width:0; height:clamp(440px,66svh,760px); clip-path:inset(0); transform:none; opacity:1; transition:flex 750ms var(--ease-silk),clip-path 1100ms var(--ease-silk),transform 1100ms var(--ease-silk),opacity 800ms ease; transition-delay:0ms,calc(var(--panel-order)*100ms),calc(var(--panel-order)*100ms),calc(var(--panel-order)*100ms); }
.gallery-waiting .gallery-panel { clip-path:inset(0 100% 0 0); transform:translateX(65px); opacity:0; }
.gallery-panel>button { display:block; position:relative; width:100%; height:100%; overflow:hidden; text-align:left; color:var(--salt); }
.gallery-panel img { width:100%; height:100%; object-fit:cover; transform:scale(1.045); transition:transform 1200ms var(--ease-silk); }
.gallery-panel-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 27%,#071d1725 47%,#071d17bd 100%); }
.gallery-panel-copy { position:absolute; inset:auto 26px 28px; display:flex; flex-direction:column; align-items:flex-start; }
.gallery-panel-number { font:11px/1.4 var(--body); letter-spacing:.2em; color:var(--shore); margin-bottom:14px; }
.gallery-panel-title { font:400 clamp(29px,2.6vw,43px)/1.02 var(--display); letter-spacing:-.025em; max-width:400px; }
.gallery-panel-detail { display:block; max-width:350px; font:14px/1.7 var(--body); margin-top:15px; }
.gallery-panel-open { display:block; width:fit-content; margin-top:20px; padding-bottom:6px; border-bottom:1px solid #f5f3e980; font-size:11px; letter-spacing:.1em; }
.gallery-panel>button:focus-visible { outline:2px solid var(--shore); outline-offset:-6px; }
/* Centre the cutout independently of GSAP's decorative transform. Its old
   translateX(-50%) was converted to a stale pixel offset after mobile resize. */
.aperitif-glass { left:0; right:0; margin-inline:auto; transform:none; }
/* Portrait drinks remain complete when menu photographs swap category. */
.menu-feature img[src*="aperitivo"],.dialog-dish img[src*="aperitivo"],.wide-editorial img[src*="aperitivo"] { object-fit:contain; object-position:center; }
.wide-editorial img[src*="aperitivo"] { height:auto; aspect-ratio:2/3; }
.visit-faq summary { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.visit-faq summary span { transition:rotate 260ms var(--ease-silk); }
@media (hover:hover) and (pointer:fine) and (min-width:801px) {
  .gallery-panel-detail { max-height:0; opacity:0; transform:translateY(12px); overflow:hidden; margin-top:0; transition:max-height 750ms var(--ease-silk),opacity 550ms ease,transform 750ms var(--ease-silk),margin 750ms var(--ease-silk); }
  .gallery-panel:is(:hover,:focus-within) { flex:2.25 1 0%; }
  .gallery-panel:is(:hover,:focus-within) img { transform:scale(1); }
  .gallery-panel:is(:hover,:focus-within) .gallery-panel-detail { max-height:210px; opacity:1; transform:none; margin-top:18px; }
}
@media (min-width:1101px) { .desktop-nav { font:400 21px/1.2 var(--display); gap:25px; } .book-link { font-size:13px; } }
@media (max-width:800px) {
  .gallery-intro h1 { font-size:clamp(64px,12vw,95px); }
  .gallery-triptych { display:grid; grid-template-columns:1fr; gap:22px; }
  .gallery-panel { height:620px; max-height:85svh; min-height:460px; }
  .gallery-panel { transition:transform 650ms var(--ease-silk),opacity 550ms ease; transition-delay:0ms; }
  .gallery-panel.gallery-panel-waiting { transform:translateY(28px); opacity:0; }
  .gallery-waiting .gallery-panel { clip-path:none; }
  .gallery-chapter { margin-bottom:65px; }
  .gallery-chapter-heading { gap:20px; margin-bottom:24px; }
  .gallery-panel-copy { inset:auto 24px 28px; }
  .gallery-panel-title { font-size:38px; }
  .gallery-panel-detail { font-size:14px; max-width:350px; }
  .gallery-chapters.portfolio-grid { margin-top:42px; }
  .menu-feature img[src*="aperitivo"] { aspect-ratio:2/3; max-height:72svh; }
  .dialog-dish img[src*="aperitivo"] { aspect-ratio:2/3; max-height:42svh; }
  .wide-editorial:has(img[src*="aperitivo"]) figure { width:100%; margin-inline:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .footer-light { display:none; }
  .gallery-panel,.gallery-panel img,.gallery-panel-detail,.desktop-nav a::after,.text-link::after,.book-link::after,.coastal-footer-nav>a::after,.coastal-footer-bottom>a::after { transition:none; }
  .gallery-panel { clip-path:none!important; transform:none!important; opacity:1!important; }
}
