@font-face{font-family:Instrument Serif;src:url("assets/fonts/instrument-serif-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Instrument Serif;src:url("assets/fonts/instrument-serif-italic.ttf") format("truetype");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Instrument Sans;src:url("assets/fonts/instrument-sans-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Instrument Sans;src:url("assets/fonts/instrument-sans-bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}

:root{
  --forest:#061f1a;
  --pine:#0a2a24;
  --pine-light:#10372f;
  --ivory:#f3e7d3;
  --parchment:#c9bda9;
  --brass:#b88a45;
  --brass-soft:rgba(184,138,69,.34);
  --oxblood:#7b1e2d;
  --oxblood-light:#963244;
  --clay:#c56f66;
  --sans:"Instrument Sans","PingFang TC","Noto Sans TC",sans-serif;
  --serif:"Instrument Serif","Noto Serif TC","Songti TC",serif;
  --page-pad:clamp(1.25rem,4vw,4rem);
  --section-pad:clamp(5rem,10vw,9rem);
  --container:87.5rem;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
  font-synthesis:none;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem;background:var(--forest)}
body{margin:0;min-width:20rem;background:var(--forest);color:var(--ivory);font-family:var(--sans);font-size:1rem;line-height:1.6;text-rendering:optimizeLegibility;overflow-x:hidden}
body.menu-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{color:inherit}
a{color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
address{font-style:normal}
[hidden]{display:none!important}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:1000;transform:translateY(-180%);background:var(--ivory);color:var(--forest);padding:.75rem 1rem;text-decoration:none;transition:transform .25s var(--ease)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:2px solid var(--brass);outline-offset:4px}

.page-grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.62'/%3E%3C/svg%3E")}
.site-loader{position:fixed;inset:0;z-index:120;display:grid;place-content:center;gap:1.25rem;background:var(--forest);transition:opacity .7s var(--ease),visibility .7s var(--ease)}
.site-loader span{font:400 clamp(2rem,5vw,4rem)/1 var(--serif);letter-spacing:-.04em}
.site-loader i{display:block;width:10rem;height:1px;background:rgba(243,231,211,.2);overflow:hidden;position:relative}
.site-loader i::after{content:"";position:absolute;inset:0;background:var(--brass);transform:scaleX(.2);transform-origin:left;animation:loader 1.1s var(--ease) infinite}
.is-ready .site-loader{opacity:0;visibility:hidden}
@keyframes loader{0%{transform:translateX(-100%) scaleX(.25)}60%{transform:translateX(20%) scaleX(.55)}100%{transform:translateX(120%) scaleX(.2)}}

.site-header{position:fixed;inset:0 0 auto;z-index:70;height:4.75rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--page-pad);border-bottom:1px solid rgba(243,231,211,.15);background:linear-gradient(180deg,rgba(4,19,16,.88),rgba(4,19,16,.08));transition:background .45s var(--ease),height .45s var(--ease),border-color .45s var(--ease)}
.site-header.is-scrolled{height:4.25rem;background:rgba(6,31,26,.92);border-color:rgba(184,138,69,.24);backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.brand{display:block;width:9.8rem;height:3.55rem;overflow:hidden}
.brand img{object-fit:contain;object-position:left center}
.desktop-nav{display:flex;align-items:center;gap:clamp(1.25rem,2.2vw,2.5rem)}
.desktop-nav a,.footer-links a{font-size:.675rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;white-space:nowrap;position:relative}
.desktop-nav a::after,.footer-links a::after{content:"";position:absolute;left:0;right:0;bottom:-.45rem;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after,.footer-links a:hover::after{transform:scaleX(1);transform-origin:left}
.header-actions{justify-self:end;display:flex;align-items:center;gap:.7rem}
.language-toggle,.menu-toggle{border:1px solid rgba(184,138,69,.6);border-radius:999px;background:rgba(6,31,26,.42);min-width:2.75rem;min-height:2.75rem;cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease),transform .25s var(--ease)}
.language-toggle:hover,.menu-toggle:hover{background:rgba(184,138,69,.18);border-color:var(--brass)}.language-toggle:active,.menu-toggle:active{transform:scale(.96)}
.language-toggle{font-size:.68rem;font-weight:700;letter-spacing:.12em;color:var(--ivory)}
.menu-toggle{display:none;position:relative}
.menu-toggle i{position:absolute;left:.65rem;right:.65rem;height:1px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.menu-toggle i:first-of-type{top:1.1rem}.menu-toggle i:last-of-type{top:1.55rem}
.menu-toggle[aria-expanded="true"] i:first-of-type{top:1.34rem;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] i:last-of-type{top:1.34rem;transform:rotate(-45deg)}

.button{display:inline-flex;min-height:2.9rem;align-items:center;justify-content:center;padding:.1rem 1.35rem;border:1px solid transparent;border-radius:999px;text-decoration:none;font-size:.69rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:transform .25s var(--ease),background .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)}
.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.98)}
.button--primary{background:var(--oxblood);border-color:var(--brass);color:#fff7e8;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.button--primary:hover{background:var(--oxblood-light)}
.button--outline{background:rgba(6,31,26,.18);border-color:var(--brass);color:#efd198}
.button--outline:hover{background:var(--brass);color:var(--forest)}

.mobile-menu{position:fixed;inset:4.25rem 0 0;z-index:65;padding:clamp(2rem,8vw,4rem) var(--page-pad);background:rgba(6,31,26,.98);backdrop-filter:blur(18px);overflow:auto}
.mobile-menu nav{display:grid;border-top:1px solid var(--brass-soft);margin-bottom:2rem}
.mobile-menu nav a{font:400 clamp(2.5rem,10vw,4rem)/1 var(--serif);letter-spacing:-.04em;text-decoration:none;padding:.65rem 0;border-bottom:1px solid var(--brass-soft);animation:menuIn .6s var(--ease) both}
.mobile-menu nav a:nth-child(2){animation-delay:.05s}.mobile-menu nav a:nth-child(3){animation-delay:.1s}.mobile-menu nav a:nth-child(4){animation-delay:.15s}.mobile-menu nav a:nth-child(5){animation-delay:.2s}
.mobile-menu p{margin:2rem 0 0;color:var(--parchment);font-size:.85rem}
@keyframes menuIn{from{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:none}}

.hero{position:relative;min-height:100dvh;display:grid;align-items:end;overflow:hidden;background:#041511}
.hero-media,.hero-wash{position:absolute;inset:0}
.hero-media img{object-position:58% center;transform:scale(1.02);animation:heroScale 1.6s var(--ease) both}
.hero-wash{background:linear-gradient(90deg,rgba(3,19,15,.98) 0%,rgba(3,19,15,.9) 35%,rgba(3,19,15,.33) 68%,rgba(3,19,15,.12) 100%),linear-gradient(0deg,rgba(3,18,15,.7) 0%,transparent 40%)}
.hero-content{position:relative;z-index:1;width:min(100%,var(--container));margin-inline:auto;padding:clamp(8.75rem,16vh,11rem) var(--page-pad) clamp(5.25rem,10vh,7.5rem)}
.eyebrow{margin:0 0 1.2rem;color:#d5ab61;font-size:.67rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.hero h1{max-width:72rem;margin:0;font:400 clamp(4.2rem,7.7vw,8.7rem)/.84 var(--serif);letter-spacing:-.058em;text-wrap:balance}
.hero h1 span,.hero h1 em{display:block}.hero h1 em{color:#d8b36f;font-weight:400}
.hero-lower{margin-top:clamp(2rem,4vw,3.5rem);display:grid;grid-template-columns:minmax(18rem,30rem) auto;align-items:center;gap:2rem;width:max-content;max-width:100%}
.hero-lower p{margin:0;color:rgba(243,231,211,.72);font-family:var(--serif);font-size:clamp(1.05rem,1.3vw,1.25rem);line-height:1.45}
.hero-caption{position:absolute;z-index:2;inset:auto var(--page-pad) 1.35rem;display:flex;justify-content:space-between;color:rgba(243,231,211,.55);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
@keyframes heroScale{from{opacity:.35;transform:scale(1.09)}to{opacity:1;transform:scale(1.02)}}

.section{width:min(100%,var(--container));margin-inline:auto;padding:var(--section-pad) var(--page-pad)}
.story{display:grid;grid-template-columns:minmax(20rem,.78fr) minmax(0,1.22fr);gap:clamp(4rem,9vw,10rem);align-items:center}
.story-copy h2,.plate-heading h2,.menus h2,.experience h2,.booking h2,.visit h2{margin:0;font:400 clamp(3.3rem,5.4vw,6rem)/.92 var(--serif);letter-spacing:-.05em;text-wrap:balance}
.story-copy .lede{max-width:35rem;margin:2rem 0 1.8rem;color:var(--parchment);font-size:1.02rem;line-height:1.75}
.text-link{display:inline-flex;align-items:center;gap:.7rem;padding:.65rem 1rem;border:1px solid var(--brass-soft);border-radius:999px;color:#ebca8c;text-decoration:none;font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:background .3s var(--ease),border-color .3s var(--ease),transform .25s var(--ease)}
.text-link:hover{background:rgba(184,138,69,.12);border-color:var(--brass);transform:translateY(-2px)}.text-link:active{transform:scale(.98)}
.text-link span:last-child{transition:transform .35s var(--ease)}.text-link:hover span:last-child{transform:translate(.25rem,-.2rem)}
.story-media{display:grid;grid-template-columns:1.08fr .92fr;gap:1.1rem;align-items:end}
.media-frame{margin:0;position:relative;overflow:hidden;border:1px solid var(--brass-soft);background:var(--pine)}
.media-frame img{transition:transform 1s var(--ease)}.media-frame:hover img{transform:scale(1.035)}
.media-frame figcaption{position:absolute;left:0;bottom:0;background:rgba(6,31,26,.88);padding:.7rem .85rem;color:var(--ivory);font-size:.59rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.story-chef{aspect-ratio:4/5}.story-room{aspect-ratio:4/5.5;margin-bottom:clamp(2rem,6vw,6rem)}

.plate-story{border-top:1px solid var(--brass-soft)}
.plate-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(3rem,9vw,9rem);align-items:end;margin-bottom:clamp(3.5rem,7vw,6rem)}
.plate-heading .eyebrow{grid-column:1/-1}.plate-heading h2 em,.menus h2 em,.experience h2 em,.booking h2 em{color:#d7af68;font-weight:400}
.plate-heading>p:last-child{max-width:34rem;margin:0 0 .4rem;color:var(--parchment);line-height:1.75}
.plate-sequence{display:grid;grid-template-columns:.72fr 1.28fr;gap:1rem;align-items:stretch}
.plate-step{position:relative;min-width:0}
.plate-step-number{font-size:.64rem;font-weight:700;letter-spacing:.15em;color:#d5ab61}
.plate-step--reference{display:flex;align-items:center;justify-content:center;background:#0b2721;border:1px solid var(--brass-soft);padding:clamp(1.5rem,4vw,4rem)}
.plate-reference-card{width:min(100%,25rem);transform:rotate(-2.5deg);padding:1rem;background:var(--ivory);color:var(--forest);box-shadow:0 1.5rem 3.5rem rgba(2,14,11,.38)}
.reference-image{aspect-ratio:4/3;margin:.7rem 0 1rem;overflow:hidden}.plate-reference-card p{margin:0;font-family:var(--serif);font-size:1.05rem;line-height:1.35}
.plate-step--result{min-height:42rem;overflow:hidden;border:1px solid var(--brass-soft)}
.plate-step--result>img{position:absolute;inset:0;object-position:center 40%}
.plate-step--result::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,17,14,.94))}
.plate-step--result>.plate-step-number{position:absolute;z-index:2;top:1.5rem;left:1.5rem;background:rgba(6,31,26,.76);padding:.5rem}
.plate-result-copy{position:absolute;z-index:2;inset:auto 2rem 2rem;max-width:34rem}.plate-result-copy h3{margin:0 0 .5rem;font:400 clamp(2rem,3.2vw,3.6rem)/1 var(--serif);letter-spacing:-.04em}.plate-result-copy p{margin:0;color:var(--parchment)}
.plate-archive{display:grid;grid-template-columns:.65fr .65fr 1.7fr;gap:1rem;margin-top:1rem}
.plate-archive figure{margin:0;aspect-ratio:4/5;overflow:hidden}.plate-archive figure img{transition:transform .9s var(--ease)}.plate-archive figure:hover img{transform:scale(1.045)}
.plate-cta{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:clamp(1.5rem,4vw,4rem);border:1px solid var(--brass-soft);background:var(--pine)}
.plate-cta p{max-width:12ch;margin:0;font:400 clamp(2rem,3.6vw,4rem)/.98 var(--serif);letter-spacing:-.04em}

.menus{display:grid;grid-template-columns:minmax(19rem,.72fr) minmax(0,1.28fr);gap:clamp(4rem,10vw,11rem);border-top:1px solid var(--brass-soft)}
.menus-intro{align-self:start;position:sticky;top:7.5rem}.menus-intro>p:not(.eyebrow){max-width:28rem;color:var(--parchment)}.menus-intro>p:nth-of-type(2){margin-top:2rem}.menu-note{margin-top:2.5rem!important;padding-top:1.1rem;border-top:1px solid var(--brass-soft);font-size:.78rem}
.menu-list{display:grid}
.menu-item{display:grid;grid-template-columns:10rem 1fr;gap:clamp(1.25rem,3vw,2.5rem);align-items:center;padding:1.4rem 0;border-top:1px solid var(--brass-soft)}
.menu-item:last-child{border-bottom:1px solid var(--brass-soft)}
.menu-item-media{aspect-ratio:4/3;overflow:hidden}.menu-item-media img{transition:transform .8s var(--ease)}.menu-item:hover img{transform:scale(1.05)}
.menu-item-copy{display:grid;grid-template-columns:2rem 1fr;column-gap:1rem;align-items:baseline}.menu-item-copy>span{grid-row:1/3;color:#d2a65b;font-size:.62rem}.menu-item h3{margin:0;font:400 clamp(1.55rem,2.3vw,2.5rem)/1 var(--serif);letter-spacing:-.035em}.menu-item p{grid-column:2;margin:.5rem 0 0;max-width:31rem;color:var(--parchment);font-size:.88rem}

.experience{width:100%;max-width:none;padding-inline:0;display:grid;grid-template-columns:1.12fr .88fr;min-height:48rem;background:var(--ivory);color:var(--forest)}
.experience-media{min-height:48rem;overflow:hidden}.experience-media img{filter:saturate(.82) contrast(1.06)}
.experience-copy{padding:var(--section-pad) var(--page-pad);display:flex;flex-direction:column;justify-content:center}.experience-copy .eyebrow{color:var(--oxblood)}.experience h2 em{color:var(--oxblood)}
.experience-copy>p:not(.eyebrow){max-width:34rem;margin:2rem 0 3rem;color:#5f574e}
.experience-details{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid rgba(6,31,26,.2)}
.experience-details div{padding:1rem 0;border-bottom:1px solid rgba(6,31,26,.2)}.experience-details dt{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.experience-details dd{margin:.3rem 0 0;font-family:var(--serif);font-size:1.05rem}

.gallery{display:grid;grid-template-columns:1.4fr .7fr 1fr 1.25fr;height:19rem;overflow:hidden;border-top:1px solid var(--brass-soft);border-bottom:1px solid var(--brass-soft)}
.gallery figure{margin:0;overflow:hidden;border-right:1px solid var(--brass-soft)}.gallery figure:last-child{border-right:0}.gallery img{transition:transform 1s var(--ease),filter 1s var(--ease);filter:saturate(.85)}.gallery figure:hover img{transform:scale(1.055);filter:saturate(1)}

.booking{display:grid;grid-template-columns:minmax(18rem,.62fr) minmax(0,1.38fr);gap:clamp(3rem,8vw,9rem);padding-top:clamp(5rem,9vw,8rem)}
.booking-intro{align-self:start;position:sticky;top:7.5rem}.booking-intro>p:not(.eyebrow){max-width:30rem;color:var(--parchment)}.booking-intro>p:nth-of-type(2){margin-top:2rem}
.booking-policy{max-width:30rem;margin-top:2rem;padding:1.15rem 1.25rem;border:1px solid var(--brass);border-radius:1rem;background:rgba(123,30,45,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.booking-policy span{display:block;color:#e2bd78;font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.booking-policy p{margin:.55rem 0 0;color:var(--ivory);font-size:.82rem;line-height:1.65}
.booking-contact{margin-top:3rem;border-top:1px solid var(--brass-soft)}.booking-contact p{display:grid;grid-template-columns:6rem 1fr;gap:1rem;margin:0;padding:.9rem 0;border-bottom:1px solid var(--brass-soft);font-size:.84rem}.booking-contact span{color:#d0a55e;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.booking-contact a{text-decoration:none}
.booking-shell{min-width:0;border-top:1px solid var(--brass)}
.form-required-note{margin:0;padding:1rem 0;border-bottom:1px solid var(--brass-soft);color:#d4b072;font-size:.72rem;line-height:1.55;letter-spacing:.035em}.field label[data-required]::after,.required-mark{content:" *";color:#e79a90}
.form-status{min-height:0;padding:0;color:var(--clay);font-size:.86rem}.form-status:not(:empty){padding:1rem;border-bottom:1px solid rgba(197,111,102,.45);background:rgba(123,30,45,.18)}
.form-section{padding:2.5rem 0;border-bottom:1px solid var(--brass-soft)}
.form-section-heading{display:grid;grid-template-columns:2.75rem 1fr;align-items:baseline;margin-bottom:1.5rem}.form-section-heading span{color:#d2a75d;font-size:.64rem}.form-section-heading h3,.artwork-toggle-row h3{margin:0;font:400 clamp(1.8rem,2.8vw,2.8rem)/1 var(--serif);letter-spacing:-.035em}
.form-grid{display:grid;gap:1.15rem}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.field{display:grid;align-content:start;gap:.45rem;min-width:0}.field--wide{grid-column:1/-1}.field label{font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#d4b072}
.field input,.field select,.field textarea{width:100%;min-width:0;max-width:100%;border:1px solid rgba(184,138,69,.42);border-radius:.75rem;background:var(--pine);color:var(--ivory);outline:0;transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}
.field input,.field select{height:3.15rem;padding:0 .9rem}.field textarea{resize:vertical;min-height:6.4rem;padding:.8rem .9rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass);background:var(--pine-light);box-shadow:0 0 0 3px rgba(184,138,69,.12)}
.field [aria-invalid="true"]{border-color:var(--clay)}.field-error{min-height:1rem;margin:0;color:#e79a90;font-size:.72rem}.field-help{margin:0;color:rgba(243,231,211,.55);font-size:.72rem}
.form-section--art{padding-bottom:0}.artwork-toggle-row{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;padding-bottom:2.5rem}.artwork-toggle-row .eyebrow{margin-bottom:.6rem}.artwork-toggle-row>div>p:last-child{max-width:35rem;margin:.8rem 0 0;color:var(--parchment);font-size:.88rem}
.toggle-control{display:grid;justify-items:center;gap:.5rem;cursor:pointer}.toggle-control input{position:absolute;opacity:0;pointer-events:none}.toggle-control>span{display:block;width:3.6rem;height:1.9rem;border:1px solid var(--brass);border-radius:2rem;background:#12352e;position:relative;transition:background .35s var(--ease)}.toggle-control>span::after{content:"";position:absolute;width:1.25rem;height:1.25rem;border-radius:50%;top:.27rem;left:.28rem;background:var(--ivory);transition:transform .4s var(--ease)}.toggle-control input:checked+span{background:var(--oxblood)}.toggle-control input:checked+span::after{transform:translateX(1.65rem)}.toggle-control input:focus-visible+span{outline:2px solid var(--brass);outline-offset:4px}.toggle-control b{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}
.artwork-panel{padding:2rem;background:#08231e;border-top:1px solid var(--brass-soft);animation:panelIn .55s var(--ease) both}
@keyframes panelIn{from{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:none}}
.upload-field{margin-top:1.2rem;border:1px dashed rgba(184,138,69,.65);min-height:12rem;background:rgba(6,31,26,.55);transition:border-color .25s var(--ease),background .25s var(--ease)}.upload-field.is-dragging{border-color:var(--ivory);background:rgba(184,138,69,.12)}
.upload-empty{min-height:12rem;display:grid;place-items:center;align-content:center;gap:.35rem;text-align:center;cursor:pointer;padding:1.4rem}.upload-mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--brass);border-radius:50%;font:400 1.5rem/1 var(--serif);color:#d8b36f}.upload-empty strong{font:400 1.35rem/1.1 var(--serif)}.upload-empty small{color:var(--parchment)}.upload-empty b{margin-top:.55rem;color:#ebcb8d;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}
.upload-preview{display:grid;grid-template-columns:9rem 1fr;gap:1.3rem;align-items:center;padding:1rem}.upload-preview img{aspect-ratio:1;object-fit:cover}.upload-preview>div{min-width:0}.upload-preview strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-preview small{display:block;color:var(--parchment);margin:.25rem 0 1rem}.upload-actions{display:flex;gap:.65rem;align-items:center}.upload-actions label,.upload-actions button,.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;border:1px solid var(--brass-soft);border-radius:999px;background:transparent;padding:.25rem .85rem;color:#ebca8c;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease),transform .25s var(--ease)}.upload-actions label:hover,.upload-actions button:hover,.text-button:hover{background:rgba(184,138,69,.12);border-color:var(--brass);transform:translateY(-1px)}
.consent{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;margin-top:1.5rem;color:var(--parchment);font-size:.78rem;cursor:pointer}.consent input{width:1.1rem;height:1.1rem;margin-top:.18rem;accent-color:var(--oxblood)}
.submit-button{width:100%;margin-top:1.4rem;position:relative}.submit-button i{display:none;width:1.1rem;height:1px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}.submit-button i::after{content:"";position:absolute;inset:0;background:white;animation:submitLoad 1s ease infinite}.submit-button.is-loading i{display:block}.submit-button.is-loading span{display:none}.submit-button:disabled{cursor:wait;opacity:.7}
@keyframes submitLoad{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.submit-note{text-align:center;margin:.75rem 0 0;color:rgba(243,231,211,.5);font-size:.7rem}
.booking-success{padding:clamp(2rem,5vw,5rem) 0}.booking-success h3{max-width:43rem;margin:0;font:400 clamp(2.7rem,5vw,5.4rem)/.94 var(--serif);letter-spacing:-.05em}.booking-success>p:not(.eyebrow){max-width:32rem;color:var(--parchment);margin:1.5rem 0}.booking-success dl{display:grid;margin:3rem 0;border-top:1px solid var(--brass-soft)}.booking-success dl div{display:grid;grid-template-columns:8rem 1fr;padding:.85rem 0;border-bottom:1px solid var(--brass-soft)}.booking-success dt{color:#d4aa61;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.booking-success dd{margin:0;font-family:var(--serif);font-size:1.05rem}.booking-success .text-button{display:block;margin-top:1.4rem}

.visit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(4rem,9vw,10rem);border-top:1px solid var(--brass-soft)}
.visit-details{align-self:end}.visit-details address{font:400 clamp(1.35rem,2vw,2rem)/1.35 var(--serif);margin-bottom:2.2rem}.visit-details address span{color:var(--parchment)}.visit-details>div{margin-bottom:2rem;border-top:1px solid var(--brass-soft)}.visit-details>div p{display:grid;grid-template-columns:8rem 1fr;margin:0;padding:.7rem 0;border-bottom:1px solid var(--brass-soft);font-size:.86rem}.visit-details>div span{color:#d3aa62;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.map-preview{grid-column:1/-1;position:relative;min-height:clamp(20rem,38vw,30rem);margin-top:calc(clamp(4rem,9vw,10rem) * -.45);overflow:hidden;border:1px solid var(--brass-soft);border-radius:1.5rem;background:var(--pine)}
.map-preview iframe{display:block;width:100%;height:100%;min-height:inherit;border:0;filter:saturate(.62) sepia(.12) contrast(1.03)}
.map-preview-caption{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;border:1px solid rgba(243,231,211,.16);border-radius:999px;background:rgba(6,31,26,.9);backdrop-filter:blur(12px);box-shadow:0 .8rem 2.5rem rgba(2,12,10,.35)}
.map-preview-caption span{color:#d7af68;font-size:.61rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.map-preview-caption strong{font:400 1rem/1.2 var(--serif)}

.site-footer{width:min(100%,var(--container));margin-inline:auto;padding:4rem var(--page-pad) 2rem;display:grid;grid-template-columns:1fr auto;gap:4rem;border-top:1px solid var(--brass-soft)}
.footer-brand img{width:10rem;height:4rem;object-fit:contain;object-position:left}.footer-brand p{margin:.7rem 0 0;color:var(--parchment);font-family:var(--serif)}
.footer-instagram{gap:.6rem;margin-top:1.35rem}.footer-instagram svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.6}.footer-instagram .icon-fill{fill:currentColor;stroke:none}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:start;gap:1.25rem 2rem}.footer-meta{grid-column:1/-1;display:flex;align-items:center;gap:1.6rem;padding-top:1.3rem;border-top:1px solid var(--brass-soft);color:rgba(243,231,211,.5);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase}.footer-meta p{margin:0}.footer-meta a{text-decoration:none}.footer-links .footer-admin{margin-top:-.65rem;padding:.58rem .85rem;border:1px solid rgba(184,138,69,.6);border-radius:999px;color:#d8b46f;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .2s var(--ease)}.footer-links .footer-admin::after{display:none}.footer-admin:hover,.footer-admin:focus-visible{border-color:var(--brass);background:rgba(184,138,69,.12);color:var(--ivory)}.footer-admin:active{transform:scale(.97)}
.floating-whatsapp{position:fixed;z-index:62;right:1.25rem;bottom:1.25rem;display:inline-flex;min-height:3.25rem;align-items:center;justify-content:center;gap:.7rem;padding:.25rem 1.1rem;border:1px solid var(--brass);border-radius:999px;background:rgba(6,31,26,.94);color:#fff7e8;text-decoration:none;font-size:.67rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 1rem 3rem rgba(2,12,10,.45),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(14px);transition:transform .25s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.floating-whatsapp svg{width:1.35rem;height:1.35rem;fill:none;stroke:#d7af68;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.floating-whatsapp:hover{transform:translateY(-3px);background:var(--oxblood);border-color:#d7af68}.floating-whatsapp:active{transform:scale(.98)}
.mobile-reserve{display:none}

.legal-page{background:var(--ivory);color:var(--forest);min-height:100dvh}.legal-header{height:4.5rem;display:flex;align-items:center;justify-content:space-between;padding:0 var(--page-pad);border-bottom:1px solid rgba(6,31,26,.18)}.legal-header a{text-decoration:none}.legal-header .brand{mix-blend-mode:multiply}.legal-back{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.legal-main{width:min(100%,58rem);margin:auto;padding:clamp(4rem,10vw,8rem) var(--page-pad)}.legal-main .eyebrow{color:var(--oxblood)}.legal-main h1{margin:0 0 3rem;font:400 clamp(3.6rem,7vw,6.8rem)/.9 var(--serif);letter-spacing:-.055em}.legal-copy{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem)}.legal-copy section{border-top:1px solid rgba(6,31,26,.18);padding-top:1.2rem}.legal-copy h2{font:400 1.65rem/1.1 var(--serif);margin:0 0 1rem}.legal-copy p,.legal-copy li{color:#554f47;font-size:.9rem}.legal-copy ul{padding-left:1.1rem}.legal-copy a{color:var(--oxblood)}.legal-footer{width:min(100%,58rem);margin:auto;padding:1.5rem var(--page-pad) 3rem;border-top:1px solid rgba(6,31,26,.18);font-size:.7rem;color:#71685d}.not-found{display:grid;min-height:100dvh;place-items:center;padding:var(--page-pad);text-align:center;background:linear-gradient(rgba(6,31,26,.86),rgba(6,31,26,.94)),url("assets/images/ig-dining-room.webp") center/cover}.not-found h1{font:400 clamp(5rem,18vw,12rem)/.7 var(--serif);margin:0;color:#d5ad66}.not-found h2{font:400 clamp(2rem,5vw,4rem)/1 var(--serif);margin:2rem 0 1rem}.not-found p{max-width:34rem;margin:0 auto 2rem;color:var(--parchment)}

.reveal{opacity:0;transform:translateY(1.25rem);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.is-visible{opacity:1;transform:none}

@media(max-width:70rem){
  .desktop-nav{display:none}.menu-toggle{display:block}.header-book{display:none}.site-header{grid-template-columns:1fr auto;height:4.25rem}.brand{width:8.8rem;height:3.25rem}
  .story{gap:4rem}.booking{gap:4rem}.form-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}.plate-step--result{min-height:36rem}
}

@media(max-width:48rem){
  :root{--page-pad:1.25rem;--section-pad:5rem}
  body{padding-bottom:4.1rem}.page-grain{opacity:.025}.site-header{padding-inline:1rem}.brand{width:8.2rem}
  .hero{min-height:44rem}.hero-media img{object-position:60% center}.hero-wash{background:linear-gradient(180deg,rgba(3,19,15,.18) 0%,rgba(3,19,15,.7) 54%,rgba(3,19,15,.98) 86%)}
  .hero-content{padding:8.5rem var(--page-pad) 6.2rem}.hero h1{font-size:clamp(3.55rem,16vw,5.2rem);line-height:.88}.hero-lower{width:100%;grid-template-columns:1fr;margin-top:2rem}.hero-lower p{max-width:28rem;font-size:1rem}.hero-lower .button{width:100%}.hero-caption{inset:auto var(--page-pad) 1.1rem}.hero-caption span:last-child{display:none}
  .story,.menus,.booking,.visit{grid-template-columns:1fr;gap:3.5rem}.story-media{grid-template-columns:1fr 1fr;gap:.7rem}.story-room{margin-bottom:2.5rem}.story-copy h2,.plate-heading h2,.menus h2,.experience h2,.booking h2,.visit h2{font-size:clamp(3rem,13vw,4.5rem)}
  .plate-heading{grid-template-columns:1fr;gap:1.75rem}.plate-heading .eyebrow{grid-column:auto}.plate-sequence{grid-template-columns:1fr}.plate-step--reference{min-height:30rem}.plate-step--result{min-height:36rem}.plate-archive{grid-template-columns:1fr 1fr}.plate-cta{grid-column:1/-1;min-height:17rem}
  .menus-intro,.booking-intro{position:static}.menu-item{grid-template-columns:7.5rem 1fr}.menu-item-copy{grid-template-columns:1.5rem 1fr}.menu-item h3{font-size:1.6rem}
  .experience{grid-template-columns:1fr;min-height:0}.experience-media{min-height:28rem}.experience-copy{padding:5rem var(--page-pad)}
  .gallery{grid-template-columns:1.2fr .8fr;height:28rem}.gallery figure:nth-child(n+3){display:none}
  .form-grid--two,.form-grid--three{grid-template-columns:minmax(0,1fr)}.artwork-toggle-row{grid-template-columns:1fr}.toggle-control{grid-template-columns:auto 1fr;justify-self:start;justify-items:start;align-items:center}.artwork-panel{padding:1.25rem}.upload-preview{grid-template-columns:6.5rem 1fr}
  .map-preview{min-height:23rem;margin-top:0;border-radius:1.1rem}.map-preview-caption{align-items:flex-start;flex-direction:column;border-radius:1rem}.map-preview-caption strong{font-size:.9rem}
  .site-footer{grid-template-columns:1fr;gap:2.2rem;padding-bottom:2rem}.footer-links{display:grid;grid-template-columns:1fr 1fr;justify-content:start;gap:1rem}.footer-links .footer-admin{grid-column:1/-1;justify-self:start;margin-top:.35rem}.footer-meta{grid-column:auto;flex-wrap:wrap}.footer-instagram{width:max-content;max-width:100%}
  .floating-whatsapp{right:.75rem;bottom:4.55rem;min-height:3rem;padding:.2rem .9rem;font-size:.62rem}
  .mobile-reserve{position:fixed;z-index:60;left:.75rem;right:.75rem;bottom:.65rem;display:flex;min-height:3.25rem;align-items:center;justify-content:center;border-radius:999px;background:var(--oxblood);border:1px solid var(--brass);color:#fff7e8;text-decoration:none;font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;box-shadow:0 1rem 3rem rgba(2,12,10,.5);transition:transform .3s var(--ease),opacity .3s var(--ease)}
  .mobile-reserve.is-hidden{opacity:0;transform:translateY(140%);pointer-events:none}
  .legal-copy{grid-template-columns:1fr}.legal-header .brand{width:7.8rem}
}

@media(max-width:24rem){
  .language-toggle{min-width:2.35rem}.menu-toggle{min-width:2.55rem}.hero h1{font-size:3.35rem}.story-media{grid-template-columns:1fr}.story-room{margin:0}.menu-item{grid-template-columns:1fr}.menu-item-media{aspect-ratio:16/9}.menu-item-copy{padding-top:.5rem}.experience-details{grid-template-columns:1fr}.plate-step--result{min-height:31rem}.upload-preview{grid-template-columns:1fr}.upload-preview img{aspect-ratio:16/10}.floating-whatsapp span{display:none}.floating-whatsapp{width:3rem;padding:0}
}

@media(min-width:100rem){.hero-content{padding-left:max(var(--page-pad),calc((100vw - var(--container))/2 + 4rem));padding-right:max(var(--page-pad),calc((100vw - var(--container))/2 + 4rem))}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.hero-media img{transform:none}}
