/* Way Home: photographic editorial. Text remains HTML; decorative linework lives in ornaments.css. */
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--ink);color:var(--paper);font:400 18px/1.5 var(--body);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,summary{font:inherit;cursor:pointer}button{color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}h1,h2,h3,p,figure,ul,dl,dd{margin:0}ul{padding:0;list-style:none}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:.94}h1 span,h2 span{display:block}h1{font-size:calc(clamp(64px,7.25vw,142px) * var(--title-scale))}h2{font-size:calc(clamp(58px,7.15vw,136px) * var(--title-scale))}address{font-style:normal}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #e3a175;outline-offset:7px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:40;left:20px;top:12px;padding:12px 20px;background:var(--paper);color:var(--ink);transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}
.wordmark{font-family:var(--wordmark);font-size:clamp(30px,2.9vw,50px);line-height:1;letter-spacing:-.025em;white-space:nowrap}.wordmark .h{display:inline-block;position:relative}.wordmark svg{position:absolute;left:-.08em;bottom:-.29em;width:.86em;height:.34em;overflow:visible}.wordmark path{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}
.site-header{position:fixed;top:0;left:0;right:0;z-index:10;padding:22px var(--gutter);display:flex;align-items:center;gap:clamp(20px,3vw,54px);min-height:88px;background:linear-gradient(#30221b55,transparent);transition:background-color .2s}.site-header.is-scrolled{position:fixed;background:#30221b;border-bottom:1px solid #fff4ea1a}.desktop-nav{display:flex;align-items:center;gap:clamp(24px,3vw,50px);margin-left:auto;font-size:clamp(14px,1.12vw,20px)}.desktop-nav a{display:flex;align-items:center;min-height:44px}.desktop-nav a:hover{text-decoration:underline;text-underline-offset:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 25px;min-height:48px;border:1px solid transparent;border-radius:2px;font-size:clamp(15px,1.28vw,22px);line-height:1.3;transition:background-color .2s,color .2s}.button-outline{border-color:#fff4eac7;background:#30221b15}.button-outline:hover{background:var(--paper);color:var(--ink)}.button-primary{background:var(--accent);color:var(--paper)}.button-primary:hover{background:#9c3b19}.header-order{font-size:clamp(14px,1.12vw,20px);padding:12px 22px}.mobile-nav{display:none}
main{max-width:1920px;margin:auto}.scene{isolation:isolate;position:relative;width:100%;min-width:0;aspect-ratio:1672/941;min-height:590px;overflow:hidden;background:var(--ink);scroll-margin-top:0}.scene-photo{position:absolute;inset:0;z-index:-2;display:block}.scene-photo img{width:100%;height:100%;object-fit:cover}.scene::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(transparent 68%,#1a120e32)}.scene-copy{position:absolute;z-index:1}.scene-copy p{font-size:clamp(17px,1.48vw,27px);line-height:1.5;margin-top:24px}.scene .text-link{font-size:clamp(16px,1.42vw,25px)}.text-link{display:inline-flex;align-items:center;gap:.25em;min-height:44px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em;transition:text-decoration-color .2s,color .2s}.text-link:hover{color:#f8ba91;text-decoration-color:transparent}.text-link span{display:inline-block;transition:transform .2s}.text-link:hover span{transform:translate(2px,-2px)}.hero{height:100svh;min-height:650px;max-height:1180px;aspect-ratio:auto}.hero::before{background:linear-gradient(90deg,#160e081a,transparent 66%),linear-gradient(transparent 48%,#1a120e36)}.hero-copy{left:var(--gutter);bottom:5.3%;max-width:88%}.hero-copy h1{max-width:12em}.hero-copy .text-link{margin-top:20px}.hero-copy p{margin-top:24px;max-width:47em}.mobile-break{display:none}.signature{color:var(--ink)}.signature-copy{top:5.8%;left:4.8%;max-width:65%}.scene-copy .eyebrow{font:400 clamp(12px,1.08vw,18px)/1.4 var(--body);text-transform:uppercase;letter-spacing:.15em;margin:0 0 14px}.signature h2{font-size:calc(clamp(62px,7.5vw,144px) * var(--title-scale))}.section-bottom{position:absolute;left:4.8%;right:4.8%;bottom:5.1%;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--paper)}.section-bottom p{font-size:clamp(15px,1.38vw,24px);letter-spacing:.07em}.season-copy{top:10%;right:3.8%;text-align:right;max-width:44%}.season-copy h2{font-size:calc(clamp(56px,7.05vw,133px) * var(--title-scale))}.season-copy p{letter-spacing:.04em;font-size:clamp(17px,1.45vw,25px)}.ritual::before{background:linear-gradient(transparent 54%,#0f100d54)}.ritual-copy{left:4%;right:4%;bottom:5.4%;text-align:center}.ritual-copy h2{font-size:calc(clamp(55px,6.8vw,130px) * var(--title-scale))}.ritual-copy p{margin-top:20px}.ritual-copy .text-link{margin-top:12px}.room{color:var(--ink)}.room-copy{top:10.5%;left:8.7%;max-width:70%}.room h2{font-size:calc(clamp(60px,6.9vw,132px) * var(--title-scale))}.room-copy p{margin-top:18px}.room .section-bottom{left:4.1%;right:4.1%}.room::before{background:linear-gradient(transparent 76%,#19110b3d)}.order{aspect-ratio:1915/821;min-height:480px}.order::before{background:linear-gradient(90deg,transparent 40%,#1b0e0324 100%)}.order-copy{left:53.5%;right:4%;top:40%}.order-copy h2{font-size:calc(clamp(58px,6.2vw,120px) * var(--title-scale));white-space:nowrap}.order-copy p{margin-top:20px;font-size:clamp(17px,1.55vw,28px)}.order-copy .button{margin-top:28px;min-width:185px}.visit::before{background:linear-gradient(transparent 40%,#1b140c77 92%),linear-gradient(90deg,#1b140c25,transparent 70%)}.visit-copy{left:3.8%;bottom:10.8%;max-width:90%}.visit-copy h2{font-size:calc(clamp(60px,7vw,134px) * var(--title-scale))}.visit-copy address{margin-top:20px;font-size:clamp(16px,1.38vw,24px)}.visit-actions{display:flex;align-items:center;gap:32px;margin-top:10px}.visit-actions .text-link:last-child{font-size:clamp(14px,1.1vw,19px)}.site-footer{position:absolute;bottom:2.5%;left:3.8%;right:3.8%;border-top:1px solid #fff4ea70;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:clamp(14px,1.1vw,19px)}.site-footer .wordmark{font-size:clamp(24px,2vw,38px)}.site-footer>a{min-height:36px;display:inline-flex;align-items:center}
.content-dialog{color:var(--ink);background:var(--paper);border:0;width:min(680px,calc(100% - 40px));max-height:calc(100svh - 64px);padding:36px 40px 42px;overscroll-behavior:contain}.content-dialog::backdrop{background:#150e09b3}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.dialog-heading .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.13em}.dialog-close{background:transparent;color:var(--ink);border:1px solid var(--line);min-height:44px;padding:8px 14px;display:flex;align-items:center;gap:14px;font-size:14px}.dialog-close:hover{background:#eadaca}.dialog-close span{font-size:24px;line-height:1}.content-dialog h2{font-size:clamp(42px,5vw,62px);line-height:1.02;margin-bottom:18px}.content-dialog h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:32px 0 12px;font-weight:400}.content-dialog p{font-size:16px;line-height:1.6}.drink-list{font-size:17px;line-height:1.4}.drink-list li{padding:12px 0;border-bottom:1px solid var(--line)}.content-dialog .menu-note{color:#6b5343;margin-top:24px;font-size:14px}.content-dialog .button{margin-top:22px}.content-dialog address{font-size:18px;line-height:1.6}.hours>div{display:flex;justify-content:space-between;gap:24px;padding:9px 0;border-bottom:1px solid var(--line);font-size:16px}.no-script-visit{padding:40px;color:var(--ink);background:var(--paper)}.no-script-visit h2{font-size:40px}.no-script-visit p{margin-top:16px}
.review-control{position:relative;z-index:20;bottom:auto;left:auto;width:max-content;margin:16px auto;display:flex;align-items:center;gap:0;background:#fff4eaed;color:var(--ink);font:12px/1.4 var(--body);border:1px solid #d5c5b8;border-radius:3px}.review-control[hidden]{display:none}.review-control summary{min-height:38px;padding:10px 12px;list-style:none;display:flex;gap:16px;align-items:center}.review-control summary::-webkit-details-marker{display:none}.review-control nav{position:absolute;left:0;bottom:calc(100% + 6px);width:175px;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);padding:5px}.review-control nav a{padding:11px}.review-control nav a:hover,.review-control nav a[aria-current]{background:#e9d9ca}.review-control>button{font:20px/1 var(--body);border:0;border-left:1px solid var(--line);padding:0 10px;min-height:38px;color:var(--muted);background:transparent}
@media(min-width:1921px){.site-header{padding-inline:max(var(--gutter),calc((100vw - 1920px)/2 + 74px))}}
@media(max-width:1000px) and (min-width:761px){.hero-copy p{max-width:37em}.signature-copy{top:6%}.signature h2{font-size:calc(66px * var(--title-scale))}.scene{min-height:610px}.order-copy{top:39%;left:51%}.order-copy h2{font-size:calc(62px * var(--title-scale))}.order-copy p{max-width:19em}.order{min-height:440px}.room-copy{left:5%;max-width:88%}}
@media(max-width:760px){
:root{--gutter:22px}html{scroll-padding-top:74px}body{font-size:16px}.site-header{min-height:76px;padding:16px 22px;gap:16px}.wordmark{font-size:33px}.desktop-nav{display:none}.header-order{margin-left:auto;font-size:12px;padding:10px 12px;min-height:42px}.mobile-nav{display:block}.mobile-nav summary{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.menu-bars{display:inline-block;width:18px;height:8px;border-block:1px solid currentColor}.mobile-nav[open] summary .menu-bars{height:1px;border-bottom:0}.mobile-nav nav{position:absolute;top:100%;right:0;left:0;background:var(--ink);padding:14px 22px 24px;border-bottom:1px solid #fff4ea36;display:flex;flex-direction:column}.mobile-nav nav a{padding:11px 0;min-height:44px;font-family:var(--serif);font-size:30px}.site-header:has(.mobile-nav[open]){background:var(--ink)}
.scene{aspect-ratio:auto;min-height:0;height:740px;height:clamp(660px,94svh,860px)}.hero{height:100svh;min-height:690px;max-height:1050px}.hero .scene-photo img{object-position:60% center}.hero::before{background:linear-gradient(transparent 20%,#160e0830 42%,#160e08c4 100%)}.hero-copy{left:22px;right:22px;max-width:none;bottom:45px}.hero-copy h1{font-size:calc(clamp(42px,12vw,78px) * var(--title-scale));letter-spacing:-.035em;line-height:1.01}.scene-copy p{font-size:16px;line-height:1.55}.hero-copy p{margin-top:20px;max-width:25em}.hero-copy .text-link{margin-top:16px}.mobile-break{display:block}.scene .text-link{font-size:16px}.signature .scene-photo img{object-position:86% center}.signature-copy{left:22px;right:22px;top:38px;max-width:none}.signature h2{font-size:calc(clamp(44px,12.7vw,77px) * var(--title-scale));line-height:1.01}.scene-copy .eyebrow{font-size:11px;margin-bottom:12px}.signature::before{background:linear-gradient(#fff4ea50,transparent 30%,transparent 72%,#160e0870)}.section-bottom{left:22px;right:22px;bottom:28px;gap:8px;align-items:flex-start;flex-direction:column}.section-bottom p{font-size:14px;letter-spacing:.015em;max-width:25em}.season .scene-photo img{object-position:58% center}.season::before{background:linear-gradient(#21170d61,transparent 38%,transparent 75%,#21170d7a)}.season-copy{left:22px;right:22px;top:36px;max-width:none;text-align:left}.season-copy h2{font-size:calc(clamp(46px,12.8vw,78px) * var(--title-scale))}.season-copy p{font-size:15px;letter-spacing:.015em;margin-top:16px}.ritual{height:690px;background:#282b26}.ritual .scene-photo img{object-fit:cover;object-position:50% 34%}.ritual::before{background:linear-gradient(transparent 35%,#11150f45 60%,#11150fde 100%)}.ritual-copy{bottom:35px;left:18px;right:18px}.ritual-copy h2{font-size:calc(clamp(38px,10.4vw,67px) * var(--title-scale));line-height:1.03}.ritual-copy p{font-size:15px;margin-top:18px}.room .scene-photo img{object-position:68% center}.room::before{background:linear-gradient(transparent 36%,#1e130843 64%,#1e1308cb 100%)}.room-copy{top:auto;bottom:140px;left:22px;right:22px;max-width:none;color:var(--paper)}.room h2{font-size:calc(clamp(47px,12.7vw,79px) * var(--title-scale));line-height:1}.room-copy p{margin-top:18px}.room .section-bottom{left:22px;right:22px;bottom:26px}.order{height:760px;min-height:0}.order .scene-photo img{object-position:50% 70%}.order::before{background:linear-gradient(#21170d58,transparent 45%,#21170d12)}.order-copy{left:22px;right:22px;top:38px}.order-copy h2{font-size:calc(clamp(47px,13.2vw,78px) * var(--title-scale));white-space:normal}.order-copy p{font-size:15px;margin-top:14px;max-width:22em}.order-copy .button{min-width:0;padding:12px 18px;min-height:46px;font-size:15px;margin-top:22px}.visit{height:760px;min-height:0}.visit .scene-photo img{object-position:54% center}.visit::before{background:linear-gradient(transparent 25%,#1b140c65 52%,#1b140ce3 100%)}.visit-copy{left:22px;right:22px;bottom:120px;max-width:none}.visit-copy h2{font-size:calc(clamp(46px,13vw,78px) * var(--title-scale));line-height:1.01}.visit-copy address{font-size:14px;line-height:1.7;margin-top:20px}.address-separator{display:none}.visit-actions{gap:8px 20px;flex-wrap:wrap;margin-top:14px}.visit-actions .text-link:last-child{font-size:14px}.site-footer{left:22px;right:22px;bottom:25px;padding-top:16px;font-size:12px;gap:10px}.site-footer .wordmark{font-size:27px}.content-dialog{width:calc(100% - 24px);max-height:calc(100svh - 24px);padding:24px 24px 30px}.dialog-heading{margin-bottom:24px}.content-dialog h2{font-size:44px}.drink-list{font-size:16px}.content-dialog h3{margin-top:26px}.hours>div{font-size:14px;gap:12px}.review-control{bottom:auto;left:auto;font-size:11px}.review-control summary{min-height:36px;padding:8px 10px}.review-control>button{min-height:36px}
}
@media(max-width:359px){.site-header{padding-inline:16px;gap:11px}.wordmark{font-size:29px}.header-order{padding:9px;font-size:11px}.mobile-nav summary{font-size:11px}.menu-bars{width:14px}.hero-copy,.signature-copy,.season-copy,.room-copy,.order-copy,.visit-copy{left:18px;right:18px}.hero-copy h1{font-size:calc(40px * var(--title-scale))}.hero-copy p{font-size:15px}.scene .section-bottom{left:18px;right:18px}.ritual-copy h2{font-size:calc(35px * var(--title-scale))}.content-dialog{padding:20px}.site-footer{left:18px;right:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Cambo body / Oranienbaum titles; the approved 75% scale is unchanged. */
body { font-synthesis: none; }
/* Oranienbaum is regular-only. Synthetic bold is intentional for this preview. */
h1, h2, .scene-copy h1, .scene-copy h2 {
  font-weight: 700;
  font-synthesis: weight;
  letter-spacing: -.018em;
  line-height: 1.06;
  text-wrap: balance;
}
.scene-copy p { font-size: clamp(19px, 1.55vw, 27px); text-wrap: pretty; }
.scene-copy .eyebrow { font-size: clamp(12px, 1.05vw, 18px); }
.scene .text-link, .section-bottom p { font-size: clamp(18px, 1.45vw, 25px); }
.section-bottom p, .season-copy p { letter-spacing: .015em; }
.desktop-nav, .header-order { font-size: clamp(16px, 1.2vw, 21px); }
.button { font-size: clamp(16px, 1.35vw, 23px); }
.visit-copy address { font-size: clamp(18px, 1.5vw, 26px); }
.visit-actions .text-link:last-child { font-size: clamp(16px, 1.3vw, 22px); }
.site-footer { font-size: 15px; }
.content-dialog p, .drink-list, .content-dialog address, .hours>div { font-size: 18px; }
.content-dialog .menu-note, .dialog-close { font-size: 15px; }
.content-dialog h3, .dialog-heading .eyebrow { font-size: 12px; }
@media (max-width: 760px) {
  .scene-copy p, .scene .text-link, .section-bottom p, .visit-copy address { font-size: 18px; }
  .scene-copy .eyebrow { font-size: 12px; }
  .header-order, .mobile-nav summary { font-size: 13px; }
  .header-order { white-space: nowrap; flex-shrink: 0; }
  .order-copy .button, .visit-actions .text-link:last-child { font-size: 16px; }
  .site-footer { font-size: 13px; }
  .hero-copy p { max-width: 22em; }
}
@media (max-width: 359px) {
  .site-header { gap: 8px; }
  .header-order, .mobile-nav summary { font-size: 11px; }
  .header-order { padding-inline: 8px; }
  .mobile-nav summary { gap: 6px; }
  .menu-bars { width: 12px; }
  .hero-copy p { font-size: 16px; }
}

/* Compact persistent navigation, with the image softly visible on scroll. */
html { scroll-padding-top: 100px; }
.site-header { min-height: 76px; padding-block: 14px; }
.site-header.is-scrolled {
  background: #30221ba6;
  -webkit-backdrop-filter: blur(12px) saturate(.85);
  backdrop-filter: blur(12px) saturate(.85);
  border-bottom-color: #fff4ea24;
}
.header-order { min-height: 44px; padding-block: 10px; }
.site-footer .social-link { gap: 9px; white-space: nowrap; }
.social-icon { display: block; flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
@media (max-width: 760px) {
  html { scroll-padding-top: 90px; }
  .site-header { min-height: 68px; padding-block: 12px; }
  .header-order { min-height: 42px; padding-block: 9px; }
  .site-footer .social-link { gap: 7px; }
  .social-icon { width: 16px; height: 16px; }
}

/* Photo captions settle in once, without blurring or moving the photographs. */
.text-reveal.reveal-pending { opacity: 0; transform: translateY(6px); }
.text-reveal.is-revealing { animation: copy-appear .9s cubic-bezier(.22,.61,.36,1) both; }
@keyframes copy-appear {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .text-reveal.reveal-pending, .text-reveal.is-revealing { opacity: 1; transform: none; animation: none; }
}

/* Scroll depth uses native timelines; there is no per-frame JavaScript work. */
@supports (animation-timeline: view()) and (animation-range: entry 0px entry 180px) {
  /* Clip the photo without creating a nested scroll container for word timelines. */
  .scene { overflow: clip; view-timeline-name: --scene; view-timeline-axis: block; }
  .scene-photo {
    animation: photo-depth 1s linear both;
    animation-timeline: --scene;
    animation-range: cover 0% cover 100%;
    transform-origin: center;
  }
  .text-reveal.has-word-reveal {
    view-timeline-name: --copy; view-timeline-axis: block;
    animation: copy-depth 1s linear both;
    animation-timeline: --scene;
    animation-range: cover 0% cover 100%;
  }
  .hero-copy { --copy-lead: -180px; }
  .text-reveal .reveal-word {
    display: inline-block;
    animation: word-appear 1s ease-out both;
    animation-timeline: --copy;
    animation-range: entry calc(var(--word-start) + var(--copy-lead, 0px)) entry calc(var(--word-end) + var(--copy-lead, 0px));
  }
  .text-link .reveal-word { transition: none; }
  .text-link:hover .reveal-word { transform: none; }
  a.has-word-reveal::after,
  a.has-word-reveal > span[aria-hidden],
  .has-word-reveal .text-link::after,
  .has-word-reveal .text-link > span[aria-hidden] {
    animation: word-appear 1s ease-out both;
    animation-timeline: --copy;
    animation-range: entry calc(40px + var(--copy-lead, 0px)) entry calc(180px + var(--copy-lead, 0px));
  }
  .has-word-reveal:focus-within .reveal-word,
  a.has-word-reveal:focus-visible::after,
  a.has-word-reveal:focus-visible > span[aria-hidden],
  .has-word-reveal .text-link:focus-visible::after,
  .has-word-reveal .text-link:focus-visible > span[aria-hidden] {
    animation: none !important; opacity: 1;
  }
}
@keyframes photo-depth {
  from { transform: translateY(-2%) scale(1.06); }
  to { transform: translateY(2%) scale(1.06); }
}
@keyframes copy-depth { from { translate: 0 -6px; } to { translate: 0 8px; } }
@keyframes word-appear { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .scene-photo { animation: none !important; transform: none; }
  .text-reveal.has-word-reveal { animation: none !important; translate: none; }
  .text-reveal .reveal-word,
  a.has-word-reveal::after,
  a.has-word-reveal > span[aria-hidden],
  .has-word-reveal .text-link::after,
  .has-word-reveal .text-link > span[aria-hidden] { animation: none !important; opacity: 1; }
}

/* Keep the About destination comfortable beside the existing section links. */
@media (min-width: 761px) and (max-width: 1100px) {
  .desktop-nav { gap: 20px; font-size: 16px; }
  .site-header { gap: 22px; }
}
