/* Shared navigation and page layout. The original design stylesheet is retained. */
.site-nav { background:var(--ink); border-bottom:3px solid var(--charcoal); position:relative; z-index:3; }
.site-nav-inner { max-width:1100px; margin:auto; padding:1rem 2rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.site-brand { color:var(--parchment); border:0; display:flex; flex-direction:column; flex-shrink:0; line-height:1.15; }
.nav-logo { display:block; width:88px; height:auto; }
.site-brand:hover { color:var(--amber); }
.nav-links { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; list-style:none; }
.nav-links a { display:block; color:var(--parchment); border:2px solid transparent; border-radius:8px; padding:.55rem .85rem .4rem; font-family:'Josefin Sans',sans-serif; font-size:.8rem; font-weight:600; letter-spacing:.1em; line-height:1.3; }
.nav-links a:hover, .nav-links a[aria-current="page"] { background:var(--parchment); color:var(--ink); border-color:var(--amber); }
a:focus-visible { outline:3px solid var(--faded-red); outline-offset:5px; }
.hero-brand { line-height:0; }
.hero-logo { display:block; width:clamp(220px,28vw,320px); max-width:100%; height:auto; margin:0 auto; }
.footer-logo { display:block; width:120px; height:auto; margin:1.5rem auto; }
.page-hero { padding:3rem 1.5rem 2.5rem; }
.page-hero .hero-title { font-size:clamp(2.5rem,7vw,5rem); }
.page-hero .hero-year { text-transform:none; letter-spacing:.12em; }
.page-hero .hero-eyes { margin-top:1.5rem; }
.breadcrumbs { max-width:900px; margin:auto; padding:1.2rem 2rem 0; display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; font-family:'Josefin Sans',sans-serif; font-size:.8rem; letter-spacing:.1em; }
.page-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
.route-card { display:block; color:var(--ink); }
.route-card:hover { border-color:var(--ink); color:var(--ink); }
.route-arrow { display:block; margin-top:1.5rem; font-family:'Josefin Sans',sans-serif; font-weight:600; font-size:.75rem; letter-spacing:.12em; color:var(--faded-red); }
.visit-summary { text-align:center; }
.visit-summary p { margin:0 0 .8rem; }
.visit-summary a { display:inline-block; margin:.5rem .65rem; }
.menu-categories { display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem; margin:2rem 0 1rem; font-family:'Josefin Sans',sans-serif; font-weight:600; font-size:.9rem; letter-spacing:.1em; }
.menu-note { text-align:center; margin-top:1rem; }
.menu-description { text-align:center; font-size:.95rem; margin-bottom:1.5rem; }
.menu-group { scroll-margin-top:1.5rem; }
.menu-image { width:100%; height:100%; object-fit:cover; display:block; }
.menu-plan { text-align:center; }
.menu-plan p { margin-bottom:1rem; }
.footer .nav-links { justify-content:center; margin:1.5rem auto; }
.footer .footer-brand { font-family:'Special Elite',cursive; text-transform:none; opacity:1; }
.footer a { color:var(--parchment); }
.footer .footer-phone { display:inline-block; margin-top:1rem; font-family:'Josefin Sans',sans-serif; letter-spacing:.08em; }
.skip-link { position:fixed; left:1rem; top:1rem; transform:translateY(-200%); z-index:10000; background:var(--cream); color:var(--ink); padding:.6rem 1rem; border:3px solid var(--ink); border-radius:6px; }
.skip-link:focus { transform:translateY(0); }

/* Interior photographs: warm film frames, matching the original ink-and-paper palette. */
.photo-container { max-width:1100px; margin:0 auto; padding:3.5rem 2rem; }
.photo-stage { position:relative; background:radial-gradient(ellipse at 50% 35%,var(--dark-sepia),var(--ink) 75%); color:var(--parchment); border-bottom:6px solid var(--ink); }
.photo-stage::before { content:''; position:absolute; inset:12px; border:1px solid rgba(212,165,74,.25); pointer-events:none; }
.photo-section-heading { text-align:center; margin:0 auto 2.5rem; }
.photo-eyebrow { font-family:'Josefin Sans',sans-serif; font-size:.7rem; font-weight:600; letter-spacing:.28em; color:var(--cocoa); }
.photo-section-heading h2 { font-family:'Limelight',cursive; font-size:clamp(2rem,5vw,3.5rem); line-height:1.3; font-weight:400; margin:.65rem 0 .8rem; }
.photo-section-heading p { font-size:.95rem; letter-spacing:.08em; }
.photo-stage .photo-eyebrow { color:var(--amber); }
.photo-stage .photo-section-heading h2 { color:var(--parchment); text-shadow:2px 2px 0 var(--burnt-umber); }
.photo-stage-tail { text-align:center; margin-top:2rem; font-family:'Special Elite',cursive; font-size:.72rem; letter-spacing:.14em; color:var(--amber); }
.film-photo { min-width:0; position:relative; }
.photo-mount { position:relative; padding:0 10px; background:var(--ink); border:3px solid var(--ink); border-radius:7px; box-shadow:6px 7px 0 var(--cocoa); transition:transform .65s ease,box-shadow .65s ease; }
.photo-stage .photo-mount { border-color:var(--amber); box-shadow:8px 9px 0 rgba(0,0,0,.35); }
.photo-perforations { height:17px; background:repeating-linear-gradient(90deg,var(--parchment) 0 9px,transparent 9px 23px) center / 23px 5px repeat-x; opacity:.65; }
.photo-window { aspect-ratio:4/3; overflow:hidden; position:relative; isolation:isolate; background:var(--dark-sepia); border:1px solid rgba(245,230,200,.35); }
.photo-window img { display:block; width:100%; height:100%; object-fit:cover; filter:sepia(.08) saturate(.88); transform:scale(1.025); transition:filter 1.2s ease; }
.photo-window::after { content:''; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 65px rgba(26,26,26,.22); background:linear-gradient(135deg,rgba(245,230,200,.06),transparent 50%); }
.photo-window::before { content:''; position:absolute; inset:10px; z-index:1; border:1px solid rgba(245,230,200,.28); pointer-events:none; background:linear-gradient(110deg,transparent 40%,rgba(250,246,237,.12) 49%,transparent 58%) 180% 0 / 250% 100%; transition:background-position 1.6s ease; }
.film-photo.visible .photo-window img { animation:photo-drift 16s ease-out both; }
.film-photo figcaption { display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:start; padding:1.35rem .4rem .2rem; }
.photo-number { font-family:'Special Elite',cursive; color:var(--cocoa); font-size:.85rem; border:1px solid currentColor; border-radius:50%; width:2rem; height:2rem; display:grid; place-items:center; line-height:1; padding-top:3px; }
.photo-title { display:block; font-family:'Josefin Sans',sans-serif; font-size:1.1rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; line-height:1.5; }
.film-photo figcaption p { font-size:.85rem; line-height:1.8; margin-top:.35rem; }
.photo-star { color:var(--cocoa); line-height:1.8; }
.photo-stage .photo-number,.photo-stage .photo-star { color:var(--amber); }
.photo-stage figcaption p { color:var(--parchment); }
.photo-feature .photo-window { aspect-ratio:16/9; }
.photo-paper { background:rgba(250,246,237,.18); }
.photo-duet { display:grid; grid-template-columns:1.65fr 1fr; align-items:center; gap:3rem; }
.photo-duet .photo-lamp .photo-window { aspect-ratio:3/4; }
.photo-duet .photo-lounge .photo-mount { transform:rotate(-1deg); }
.photo-duet .photo-lamp .photo-mount { transform:rotate(1.5deg); }
.photo-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; align-items:start; }
.photo-pair .film-photo:nth-child(2) { margin-top:3rem; }
.photo-portraits { max-width:850px; margin:auto; }
.photo-portraits .photo-window { aspect-ratio:3/4; }
.photo-menu .photo-container { padding-top:0; }
@keyframes photo-drift { from { transform:scale(1.025); } to { transform:scale(1.065); } }
@media(hover:hover) and (pointer:fine) {
  .film-photo:hover .photo-mount { transform:translateY(-5px) rotate(0); box-shadow:8px 12px 0 var(--cocoa); }
  .photo-stage .film-photo:hover .photo-mount { box-shadow:8px 12px 0 rgba(0,0,0,.35); }
  .film-photo:hover .photo-window::before { background-position:-80% 0; }
  .film-photo:hover img { filter:sepia(0) saturate(1); }
}
@media(max-width:600px) {
  .photo-container { padding:2.5rem 1.25rem; }
  .photo-section-heading { margin-bottom:1.75rem; }
  .photo-eyebrow { font-size:.65rem; letter-spacing:.18em; }
  .photo-stage::before { inset:8px; }
  .photo-mount { padding:0 5px; box-shadow:4px 5px 0 var(--cocoa); }
  .photo-perforations { height:12px; background-size:20px 4px; }
  .photo-window::before { inset:7px; }
  .photo-feature .photo-window { aspect-ratio:4/3; }
  .film-photo figcaption { gap:.7rem; padding:1.15rem .15rem .2rem; }
  .photo-title { font-size:.9rem; letter-spacing:.08em; }
  .photo-number { width:1.6rem; height:1.6rem; font-size:.7rem; }
  .film-photo figcaption p { font-size:.8rem; }
  .photo-star { display:none; }
  .photo-duet,.photo-pair { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
  .photo-duet .photo-lamp { width:80%; justify-self:center; }
  .photo-pair .film-photo:nth-child(2) { margin-top:0; }
  .photo-stage-tail { font-size:.6rem; letter-spacing:.06em; }
}
@media(prefers-reduced-motion:reduce) {
  .film-photo,.film-photo.visible { opacity:1; transform:none; transition:none; }
  .film-photo.visible .photo-window img { animation:none; transform:none; }
  .photo-mount,.photo-window img,.photo-window::before { transition:none; }
}
/* Individual cast illustrations live in the text flow so photos and links stay clear. */
.buddy-feature { display:grid; grid-template-columns:200px minmax(0,1fr); gap:2rem; align-items:center; max-width:800px; margin:0 auto; }
.buddy-feature .intro-text { margin:0; text-align:left; }
.buddy-feature-reverse { grid-template-columns:minmax(0,1fr) 200px; }
.buddy-feature-reverse .buddy-art { grid-column:2; grid-row:1; }
.buddy-feature-reverse .intro-text { grid-column:1; grid-row:1; }
.buddy-art { width:200px; max-width:100%; margin:0; justify-self:center; }
.buddy-art img { display:block; width:100%; height:auto; object-fit:contain; transform-origin:50% 92%; filter:drop-shadow(2px 5px 1px rgba(62,50,41,.13)); }
.buddy-art.visible img { animation:buddy-breathe 5.6s ease-in-out infinite; }
.buddy-bartender.visible img { animation:buddy-shaker 5.2s ease-in-out infinite; }
.buddy-singer.visible img { animation:buddy-groove 3.8s ease-in-out infinite; }
.buddy-chat { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; align-items:center; margin:1rem auto 0; }
.buddy-chat .intro-text { text-align:left; margin:0; }
.buddy-pair { display:flex; justify-content:center; align-items:end; gap:.25rem; }
.buddy-pair .buddy-art { width:50%; max-width:190px; }
.buddy-pair .buddy-art img { height:260px; object-position:center bottom; }
.buddy-chat .buddy-conversation.visible img { animation-delay:-2.4s; }
.buddy-visit { display:flex; align-items:center; justify-content:center; gap:1.75rem; margin:-1rem auto 2.5rem; }
.buddy-visit .buddy-art { width:145px; }
.buddy-eyebrow { display:block; font-family:'Josefin Sans',sans-serif; font-size:1.1rem; font-weight:600; letter-spacing:.16em; color:var(--faded-red); margin-bottom:.5rem; }
.buddy-visit p { font-size:1rem; }
@keyframes buddy-breathe { 0%,100% { transform:translateY(0) rotate(-.6deg); } 50% { transform:translateY(-4px) rotate(.6deg); } }
@keyframes buddy-shaker { 0%,65%,100% { transform:rotate(0); } 72%,84% { transform:rotate(-1.4deg) translateY(-2px); } 78%,90% { transform:rotate(1.4deg); } }
@keyframes buddy-groove { 0%,100% { transform:rotate(-1.1deg); } 50% { transform:rotate(1.1deg) translateY(-3px); } }
@media(hover:hover) and (pointer:fine) { .buddy-art:hover img { animation-play-state:paused; } }
@media(max-width:600px) {
  .buddy-feature,.buddy-feature-reverse { grid-template-columns:minmax(0,1fr); gap:1rem; }
  .buddy-art { width:155px; }
  .buddy-feature-reverse .buddy-art,.buddy-feature-reverse .intro-text { grid-column:auto; grid-row:auto; }
  .buddy-feature .intro-text,.buddy-chat .intro-text { text-align:center; }
  .buddy-chat { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .buddy-pair { max-width:310px; width:100%; margin:auto; }
  .buddy-pair .buddy-art img { height:210px; }
  .buddy-visit { gap:.8rem; margin:0 auto 2rem; }
  .buddy-visit .buddy-art { width:105px; flex-shrink:0; }
  .buddy-eyebrow { font-size:.85rem; }
  .buddy-visit p { font-size:.85rem; }
}
@media(prefers-reduced-motion:reduce) {
  .buddy-art,.buddy-art.visible { opacity:1; transform:none; transition:none; }
  .buddy-art.visible img { animation:none; }
}
@media(max-width:768px) {
  .site-nav-inner { flex-direction:column; gap:.8rem; padding:1rem; }
  .site-brand { align-items:center; }
  .nav-logo { width:76px; }
  .nav-links { gap:.25rem; justify-content:center; }
  .nav-links a { font-size:.72rem; padding:.5rem .6rem .35rem; }
  .page-links { grid-template-columns:1fr; }
  .breadcrumbs { padding:1rem 1.2rem 0; }
}
