/* Photograph-led opening and pinned scenes, inspired by the supplied reference. */
.site-header{position:fixed;inset:0 0 auto;min-height:5.5rem;background:transparent;box-shadow:none;transition:background .45s var(--ease),box-shadow .45s var(--ease)}
.site-header.is-scrolled,.menu-open .site-header{background:rgba(25,26,23,.97);box-shadow:0 1px 0 var(--rule)}
.header-contact{display:none}.hero-rail{display:none}
.hero{height:calc(100svh - 3.75rem);min-height:42rem;max-height:none;background:var(--deep)}
.hero-media{inset:0}.hero-slide img{object-position:center;transition:transform 8s cubic-bezier(.2,.3,.4,1)}
.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.55),transparent 28%,rgba(0,0,0,.28) 72%,rgba(0,0,0,.65)),linear-gradient(90deg,rgba(0,0,0,.3),rgba(0,0,0,.22))}
.hero-content{inset:47% auto auto 50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 3rem);display:flex;flex-direction:column;align-items:center}
.hero-content h1{writing-mode:vertical-rl;font-size:clamp(2rem,7.8vw,2.7rem);line-height:1.95;letter-spacing:.17em;text-shadow:0 2px 28px #0009;animation-duration:1.4s}
.hero-content h1 span{white-space:nowrap;display:block}
.hero-content .hero-description{writing-mode:horizontal-tb;text-align:center;font-size:.8rem;line-height:2;letter-spacing:.1em;margin:1.8rem 0 0;animation-delay:.3s}
.hero-bottom{inset:auto 1.5rem 1.5rem;gap:1rem}.hero-location{display:none}.hero-controls{gap:.3rem;padding:0}.slide-dots button{width:2.75rem}.scroll-link{font-size:.6rem;letter-spacing:.18em}.slide-counter{display:none}

.background-scene{position:relative;isolation:isolate}.scene-backdrop{position:sticky;top:0;height:100svh;overflow:hidden;z-index:0;background:var(--deep)}.scene-backdrop>img{width:100%;height:100%;object-fit:cover}.scene-shade{position:absolute;inset:0;background:rgba(12,13,10,.44)}.scene-content{position:relative;z-index:1;margin-top:-100svh}.scene-title{min-height:83svh;padding:6rem 1.5rem 4rem;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--white);gap:1rem}.scene-title .eyebrow{color:var(--paper);justify-content:center;font-size:.68rem;gap:.7rem}.scene-title .eyebrow span{font-size:.7rem;letter-spacing:.08em}.scene-title .eyebrow span::before{width:1rem;margin-right:.7rem}.scene-title h2{writing-mode:vertical-rl;font-size:clamp(1.65rem,5.8vw,2.2rem);line-height:2;letter-spacing:.15em;text-shadow:0 2px 20px #0008}.scene-title h2>span{display:block;white-space:nowrap}
.philosophy{padding:0;background:transparent}.philosophy-paper{background:var(--paper);padding-block:4.5rem}.philosophy-layout{grid-template-columns:1fr;gap:2.5rem}.philosophy-lead>p{font-family:var(--serif);font-size:1.5rem;line-height:2;letter-spacing:.08em}.philosophy-lead .signature{display:block;margin:2rem 0 0;font-size:1.1rem}.philosophy-copy p{font-size:1rem;line-height:2.2}.philosophy-copy p+p{margin-top:1.5rem}
.space-section{padding:0}.space-scene .scene-shade{background:linear-gradient(180deg,rgba(10,12,8,.32),rgba(10,12,8,.35) 55%,rgba(10,12,8,.72))}.space-scene .scene-backdrop img{object-position:58% center}.scene-quote{min-height:44svh;text-align:center;padding:3rem 1.5rem 5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--white)}.scene-quote-title{font-family:var(--serif);font-size:clamp(1.05rem,3vw,2rem);letter-spacing:.1em}.scene-quote>p:last-child{font-size:.85rem;line-height:2.2;margin-top:1.75rem}.space-details-panel{position:relative;background:var(--ink)}
.floating-book{display:none}.header-book,.floating-book,.reservation .filled-button{position:relative}.header-book::before,.header-book::after{content:'';position:absolute;width:.65rem;height:.65rem;pointer-events:none;border-color:var(--paper);transition:width .3s,height .3s}.header-book::before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}.header-book::after{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid}.header-book:hover::before,.header-book:hover::after{width:1rem;height:1rem}
@media(min-width:768px){
 .hero{height:100svh;min-height:47rem}.hero-content{top:50%}.hero-content h1{font-size:2.9rem}.hero-bottom{inset:auto 3rem 2rem}.slide-counter{display:inline}.hero-controls{gap:.7rem}.philosophy-paper{padding-block:6rem}.philosophy-layout{grid-template-columns:.95fr 1.05fr;gap:4rem;align-items:center}.philosophy-lead>p{font-size:1.6rem}.scene-title{padding-block:7rem 4rem;min-height:85svh}.scene-title h2{font-size:2.5rem}.scene-title .eyebrow{margin-bottom:2rem}.scene-quote>p:last-child{font-size:1rem}.scene-quote{min-height:50svh;padding-bottom:7rem}
}
@media(min-width:1024px){
 .site-header{min-height:5.75rem;padding:.9rem 3rem;gap:1.3rem}.site-header .brand-name{font-size:1.8rem}.site-header .brand-sub{font-size:.6rem}.site-header .desktop-nav{gap:1.2rem}.site-header .desktop-nav a{font-size:.75rem;letter-spacing:.06em}.site-header:not(.is-scrolled)>.brand,.site-header:not(.is-scrolled)>.desktop-nav{visibility:hidden;opacity:0}.site-header>.brand,.site-header>.desktop-nav{transition:opacity .4s var(--ease)}
 .header-contact{display:flex;align-items:center;flex-shrink:0}.header-phone{display:none}.header-book{color:var(--paper);padding:.65rem 1.2rem;min-height:3.25rem;border:1px solid #ece8df65;gap:1.5rem;font-size:.8rem;background:#11120f3b;backdrop-filter:blur(8px)}.site-header:not(.is-scrolled) .header-contact{position:absolute;top:2rem;right:3rem;display:grid;gap:.8rem}.site-header:not(.is-scrolled) .header-phone{display:grid;text-align:center;line-height:1.7}.header-phone span{font-size:.7rem;letter-spacing:.16em}.header-phone strong{font:1.45rem Georgia,serif;font-weight:400;letter-spacing:.08em}.header-book:hover{background:var(--paper);color:var(--deep)}
 .hero-rail{position:absolute;left:3rem;top:4rem;bottom:6rem;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:2rem}.hero-brand{display:flex;flex-direction:row-reverse;align-items:start;gap:.6rem;text-shadow:0 2px 22px #0009;padding-top:2rem}.hero-brand-name{position:relative;font-family:var(--serif);font-size:4.6rem;line-height:1.2;letter-spacing:.18em;writing-mode:vertical-rl}.hero-brand-name small{position:absolute;top:-2.2rem;right:0;left:0;writing-mode:horizontal-tb;font-size:.9rem;letter-spacing:.25em;text-align:center}.hero-brand-type{writing-mode:vertical-rl;font-size:.65rem;letter-spacing:.2em;margin-top:.15rem}.hero-brand-place{writing-mode:vertical-rl;font-size:.75rem;letter-spacing:.3em;margin-top:8rem}.hero-nav{display:grid;width:9rem}.hero-nav a{font-family:var(--serif);font-size:.82rem;letter-spacing:.12em;padding:.55rem .5rem;text-align:center;transition:color .25s,background .25s}.hero-nav a:hover{background:#11120f55;color:var(--brass)}
 .hero-shade{background:linear-gradient(90deg,rgba(4,6,3,.68),rgba(4,6,3,.02) 40%,rgba(4,6,3,.25) 70%,rgba(4,6,3,.6)),linear-gradient(180deg,rgba(0,0,0,.35),transparent 35%,rgba(0,0,0,.32))}.hero-slide img{object-position:center}.hero-content{inset:53% 13% auto auto;transform:translateY(-50%);flex-direction:row-reverse;align-items:center;gap:2rem;width:auto;max-width:none}.hero-content h1{font-size:clamp(2.5rem,3.4vw,3.6rem);line-height:1.95;letter-spacing:.2em}.hero-content .hero-description{writing-mode:vertical-rl;text-align:left;font-size:.9rem;line-height:2.3;letter-spacing:.12em;margin:0}.hero-bottom{inset:auto 3rem 2rem}.hero-location{display:flex;position:absolute;left:50%;transform:translateX(-50%);font-size:.7rem;margin:0;white-space:nowrap;letter-spacing:.14em}.hero-location>span{width:1rem}.hero-controls{gap:1rem}.scene-title h2{font-size:2.9rem}.scene-title .eyebrow{font-size:.75rem}.scene-title .eyebrow span{font-size:.8rem}.philosophy-paper{padding-block:7rem}.philosophy-layout{gap:6rem}.philosophy-lead>p{font-size:2.05rem}.philosophy-lead .signature{font-size:1.25rem}.philosophy-copy{max-width:32rem}.space-scene .scene-title{min-height:90svh}.scene-quote{min-height:52svh}
 .floating-book{display:flex;align-items:center;justify-content:center;gap:1.4rem;position:fixed;right:0;top:50%;z-index:80;width:3.7rem;padding:1.5rem .7rem;background:rgba(17,18,15,.96);border:1px solid var(--brass);border-right:0;writing-mode:vertical-rl;font-family:var(--serif);font-size:.85rem;letter-spacing:.13em;transform:translate(105%,-50%);visibility:hidden;opacity:0;transition:transform .5s var(--ease),opacity .5s,visibility .5s,background .25s}.floating-book.is-visible{transform:translate(0,-50%);visibility:visible;opacity:1}.floating-book:hover{background:var(--brass);color:var(--deep)}
}
@media(min-width:1440px){.site-header{padding-inline:4rem}.site-header .desktop-nav{gap:2rem}.site-header .brand-name{font-size:2rem}.site-header:not(.is-scrolled) .header-contact{right:4rem}.hero-rail{left:4rem;top:4.5rem}.hero-brand-name{font-size:5.2rem}.hero-content{right:14%}.hero-bottom{inset-inline:4rem}.scene-title{min-height:88svh}}
@media(prefers-reduced-motion:reduce){.scene-backdrop{position:absolute;inset:0;height:100%}.scene-content{margin-top:0}.hero-content>*{animation:none}.floating-book{transition:none}}
@media print{.header-contact,.hero-rail,.floating-book{display:none}.scene-backdrop{position:absolute;inset:0;height:100%}.scene-content{margin-top:0}.scene-title{min-height:28rem;padding:3rem}.scene-title h2{font-size:2rem}}
.philosophy-lead>p{font-size:clamp(1.05rem,5.1vw,1.6rem)}
.philosophy-lead>p>span{display:block;white-space:nowrap}
@media(min-width:768px){.philosophy-lead>p{font-size:clamp(1.05rem,2.2vw,2.05rem)}}

/* Access and matching reservation buttons. */
.access-heading{margin-bottom:2.5rem}
.access-heading .eyebrow{margin-bottom:0;font-weight:400}
.access-map{width:calc(100% - var(--gutter)*2);max-width:110rem;margin:3rem auto 0;background:var(--charcoal);border:1px solid var(--rule)}
.access-map iframe{display:block;width:100%;height:22rem;border:0}
.reservation-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;width:100%;max-width:48rem;margin:2.5rem auto 0;align-items:stretch}
.reservation-actions>a{width:100%;min-width:0;height:6rem;border:1px solid var(--ink);border-radius:0;padding:1rem 1.5rem;transition:color .25s,background .25s}
.reservation-actions .filled-button{min-width:0;justify-content:space-between}
.reservation-actions .phone-book{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:1rem 1.1rem;background:transparent;color:var(--ink)}
.reservation-actions .phone-book:hover{background:var(--ink);color:var(--paper)}
.reservation-actions .phone-book span{font-size:.7rem;letter-spacing:.05em}
.reservation-actions .phone-book strong{font-size:clamp(1.45rem,6vw,1.8rem);line-height:1.5;white-space:nowrap}
.site-footer .copyright{line-height:1.9;letter-spacing:.05em}
.site-footer .copyright span{display:block}
@media(min-width:768px){.access-map{margin-top:4rem}.access-map iframe{height:clamp(25rem,34vw,35rem)}.reservation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.reservation-actions>a{height:6.5rem;padding-inline:2rem}.reservation-actions .phone-book strong{font-size:1.75rem}}

.reservation h2>span{display:block;white-space:nowrap}
@media(min-width:768px){.reservation h2>span{display:inline-block}}

/* The supplied center-out fill animation, in Kogane's ink and brass palette. */
.reservation-actions .reservation-button{position:relative;isolation:isolate;overflow:hidden;transition:color .5s ease}
.reservation-actions .reservation-button::before{content:"";position:absolute;inset:0;z-index:0;background:var(--button-fill);transform:scaleY(0);transform-origin:center;transition:transform .5s ease;pointer-events:none}
.reservation-actions .reservation-button .text{position:relative;z-index:1}
.reservation-actions .reservation-button:is(:hover,:focus-visible)::before{transform:scaleY(1)}
.reservation-actions .filled-button{--button-fill:var(--brass);justify-content:center}
.reservation-actions .filled-button .text{font-size:inherit}
.reservation-actions .filled-button:is(:hover,:focus-visible){background:var(--ink);border-color:var(--ink);color:var(--deep)}
.reservation-actions .phone-book{--button-fill:var(--ink)}
.reservation-actions .phone-book:is(:hover,:focus-visible){background:transparent;color:var(--paper)}
@media(prefers-reduced-motion:reduce){.reservation-actions .reservation-button,.reservation-actions .reservation-button::before{transition:none}}

/* Clear, centered reservation labels. */
.header-book{justify-content:center;min-width:10.75rem;gap:0;text-align:center}
.mobile-booking a{min-width:0;white-space:nowrap;padding-inline:.5rem}
@media(min-width:1024px){.floating-book{gap:0;min-height:11rem;padding-block:1.75rem}}

/* An ink, amber and brass introduction inspired by the storefront lighting. */
.site-intro{display:none;position:fixed;inset:0;z-index:300;isolation:isolate;overflow:hidden;place-items:center;background:#100f0d;color:#efe8da;opacity:1;transition:opacity .7s cubic-bezier(.4,0,.2,1)}
html.intro-active{overflow:hidden}
.intro-active .site-intro{display:grid}
.intro-active:not(.intro-revealing) .hero-content>*{animation-play-state:paused}
.site-intro.is-leaving{opacity:0;pointer-events:none}
.intro-ambient{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 15% 0%,rgba(181,112,43,.2),transparent 47%),radial-gradient(ellipse at 95% 85%,rgba(128,77,29,.12),transparent 48%),linear-gradient(105deg,transparent 13%,rgba(211,164,91,.04) 13.1%,transparent 13.2%,transparent 86%,rgba(211,164,91,.025) 86.1%,transparent 86.2%);animation:intro-light-enter 1.8s ease-out both}
.intro-frame{position:absolute;inset:clamp(1.5rem,4vw,3.5rem);pointer-events:none}
.intro-frame::before,.intro-frame::after{content:"";position:absolute;width:clamp(2.5rem,5vw,4.5rem);height:clamp(2.5rem,5vw,4.5rem);border-color:rgba(184,143,80,.35);border-style:solid;animation:intro-light-enter 1.2s .2s ease both}
.intro-frame::before{top:0;left:0;border-width:1px 0 0 1px}
.intro-frame::after{right:0;bottom:0;border-width:0 1px 1px 0}
.intro-name{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;padding:2rem 1rem;text-align:center;font-family:var(--serif);font-weight:500}
.intro-lead-line{display:block;width:1px;height:clamp(2.5rem,7vh,4.5rem);margin-bottom:2rem;background:linear-gradient(transparent,#b89561);transform-origin:top;animation:intro-rule-vertical .75s cubic-bezier(.2,0,.2,1) both}
.intro-category{margin:0 0 1.9rem;font-size:clamp(.65rem,2.6vw,.82rem);line-height:1.8;letter-spacing:.2em;text-indent:.2em;color:#c6b796;white-space:nowrap;animation:intro-name-enter .7s .12s cubic-bezier(.2,0,.2,1) both}
.intro-generation{font-size:.82rem;line-height:1.5;letter-spacing:.36em;text-indent:.36em;color:#c7a570;animation:intro-name-enter .7s .26s cubic-bezier(.2,0,.2,1) both}
.intro-title{display:flex;gap:.13em;margin:.55rem 0 1.6rem;font-size:clamp(3.1rem,6.2vw,5rem);line-height:1.45;letter-spacing:.06em;text-shadow:0 0 38px rgba(204,162,96,.1)}
.intro-title>span{display:block;animation:intro-name-enter .85s cubic-bezier(.2,0,.2,1) both}
.intro-title>span:nth-child(1){animation-delay:.32s}.intro-title>span:nth-child(2){animation-delay:.43s}.intro-title>span:nth-child(3){animation-delay:.54s}
.intro-place{display:flex;align-items:center;gap:1.1rem;font-size:.78rem;line-height:1.7;letter-spacing:.3em;text-indent:.3em;color:#d5c6aa;animation:intro-name-enter .7s .72s cubic-bezier(.2,0,.2,1) both}
.intro-place::before,.intro-place::after{content:"";width:1.7rem;height:1px;background:#8f734c}
.intro-finish-line{display:block;width:6.5rem;height:1px;margin-top:2rem;background:linear-gradient(90deg,transparent,#b89561,transparent);transform-origin:center;animation:intro-rule-horizontal .9s .85s cubic-bezier(.2,0,.2,1) both}
@keyframes intro-name-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-light-enter{from{opacity:0}to{opacity:1}}
@keyframes intro-rule-vertical{from{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}
@keyframes intro-rule-horizontal{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(max-height:540px){.intro-lead-line{height:1.5rem;margin-bottom:1rem}.intro-category{margin-bottom:1rem}.intro-title{margin:.25rem 0 .8rem;font-size:2.8rem}.intro-finish-line{margin-top:1.2rem}}
@media(prefers-reduced-motion:reduce){html.intro-active{overflow:visible}.site-intro,.intro-active .site-intro{display:none}.site-intro *{animation:none!important}}
@media print{.site-intro,.intro-active .site-intro{display:none}html.intro-active{overflow:visible}}
