:root{--ink:#213e3e;--paper:#f6f3eb;--sand:#e8e1d3;--muted:#62716a;--accent:#bd9c72}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #bd9c72;outline-offset:6px}header{min-height:100px;padding:18px 4.5%;display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--paper)}.brand{font-family:Georgia,serif;font-size:25px;letter-spacing:3px;line-height:1.25;white-space:nowrap}.brand span{font-style:italic}.brand small{display:block;font:8px/2 Arial,sans-serif;letter-spacing:1.8px}nav{display:flex;gap:28px;align-items:center;font-size:13px}.button{display:inline-block;background:var(--ink);color:#fff;padding:15px 25px;font-size:13px;letter-spacing:.4px;border:1px solid transparent;transition:background .2s}.button:hover{background:#365555;text-decoration:none}.light{background:var(--paper);color:var(--ink)}.light:hover{background:var(--sand)}#toggle{display:none}.hero{min-height:690px;height:calc(100svh - 100px);max-height:980px;background:linear-gradient(90deg,rgba(9,27,29,.76),rgba(9,27,29,.1)),url('assets/restaurant.jpg') center 55%/cover;color:white;position:relative;display:flex;align-items:center}.hero-inner{padding:65px 8%;width:100%}.eyebrow{font:10px/1.8 Arial,sans-serif;letter-spacing:2.8px;font-weight:bold}h1,h2,h3{font-family:Georgia,serif;font-weight:normal;line-height:1.08}h1{font-size:clamp(54px,6.4vw,100px);letter-spacing:-3px;margin:27px 0}em{font-weight:normal;color:inherit}h2{font-size:clamp(38px,4vw,61px);letter-spacing:-1.7px;margin:20px 0 30px}h3{font-size:30px;margin:14px 0 22px}.intro{font-size:17px;line-height:1.8;color:#eee9df}.actions{display:flex;align-items:center;gap:35px;margin-top:35px}.textlink{font-size:13px;border-bottom:1px solid #ffffff70;padding:10px 0}.hero-bottom{position:absolute;bottom:28px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px}.ribbon{display:flex;justify-content:space-around;padding:24px 5%;border-bottom:1px solid #d4d6ca;font-size:11px;letter-spacing:1.2px}.ribbon span+span:before{content:'';margin-right:65px;color:var(--accent)}.section{max-width:1340px;margin:auto;padding:110px 7%}.about{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.about p:not(.eyebrow){max-width:470px;color:#5a6860}figure{margin:0}figure img{width:100%;height:490px;object-fit:cover}figcaption{font-size:10px;letter-spacing:1.4px;margin-top:15px}.underlink{display:inline-block;border-bottom:1px solid var(--ink);font-size:13px;padding-bottom:5px;margin-top:18px}.menu-section{background:var(--sand)}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:center;margin-bottom:40px}.section-head>p{max-width:300px;font-size:14px;color:#5a6860}.menu-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;align-items:center}.menu-art{background:var(--ink);color:var(--paper);padding:55px 35px;text-align:center;min-height:355px;display:flex;flex-direction:column;justify-content:center;border:10px double #9ba69b}.menu-art span{font:italic 64px/.95 Georgia,serif;letter-spacing:2px}.menu-art p{font-size:9px;letter-spacing:3px;margin-top:35px}.menu-layout p{max-width:490px}details{font-size:12px;margin-top:25px}summary{cursor:pointer}details p{font-size:12px}.gallery{display:grid;grid-template-columns:1.45fr 1fr;gap:25px}.gallery button{border:0;background:none;padding:0;cursor:zoom-in;text-align:left;color:var(--ink);font:11px Arial}.gallery img{width:100%;height:380px;object-fit:cover;transition:filter .2s}.gallery button:hover img{filter:brightness(1.1)}.gallery span{display:block;margin-top:13px;letter-spacing:1px}.fine{font-size:12px;color:var(--muted)}.reserve{background:var(--ink);color:var(--paper);text-align:center;padding:90px 20px}.reserve h2{font-size:clamp(48px,5.5vw,80px)}.reserve p:not(.eyebrow){color:#d6dbd1;margin:30px auto}.visit{display:grid;grid-template-columns:1fr 1fr;gap:12%}.visit address{font-style:normal;margin-bottom:10px}.visit h3{font-size:25px}.visit h3:not(:first-child){margin-top:44px}.email{overflow-wrap:anywhere}footer{background:#e9e5dc;padding:50px 6% 25px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:center;padding-bottom:35px}.footer-top p,.footer-top>a:last-child{font-size:12px}.footer-bottom{border-top:1px solid #c8cec2;padding-top:25px;display:flex;flex-wrap:wrap;gap:20px;font-size:10px}.footer-bottom details{width:100%;margin-top:0}.footer-bottom details p{max-width:800px}dialog{border:0;background:var(--paper);max-width:95vw;max-height:94svh;padding:25px}dialog::backdrop{background:#061f25da}dialog img{display:block;max-width:85vw;max-height:75svh;object-fit:contain}dialog button{display:block;margin-left:auto;margin-bottom:15px;background:var(--ink);color:white;border:0;padding:10px;cursor:pointer}dialog p{font-size:12px}@media(max-width:1000px){nav{gap:16px}nav .button{padding:12px}header{padding:18px 4%}.brand{font-size:22px}.ribbon span+span:before{margin-right:15px}.section{padding:80px 6%}}@media(max-width:760px){header{position:relative;min-height:85px;flex-wrap:wrap}#toggle{display:block;border:1px solid #b8c2b9;background:transparent;padding:9px;color:var(--ink)}nav{display:none;width:100%;flex-direction:column;align-items:stretch;padding:20px 0}nav.open{display:flex}.hero{height:calc(100svh - 85px);min-height:620px;background-position:58% center}.hero-inner{padding:45px 7%}h1{font-size:57px;letter-spacing:-2px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}.actions{gap:22px;flex-wrap:wrap}.hero-bottom span:last-child{display:none}.hero-bottom{font-size:8px;letter-spacing:1px}.ribbon{gap:12px;font-size:9px;text-align:center}.ribbon span+span:before{display:none}.section{padding:65px 7%}.about,.visit,.menu-layout{grid-template-columns:1fr;gap:40px}figure img{height:350px}.section-head{display:block;margin-bottom:30px}.menu-art{min-height:300px}.menu-layout{gap:35px}.gallery{grid-template-columns:1fr;gap:25px}.gallery img{height:300px}.reserve{padding:70px 7%}.footer-top{align-items:flex-start;flex-direction:column;gap:20px}.footer-bottom{gap:15px}h2{font-size:43px}p{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Original restaurant identity, preserved at its natural aspect ratio. */
.brand{display:inline-flex;align-items:center;line-height:1}
.brand-logo{display:block;width:100px;height:100px;object-fit:contain;mix-blend-mode:multiply}
header{min-height:132px;padding-top:12px;padding-bottom:12px}
.hero{height:calc(100svh - 132px)}
.menu-art{padding:35px;min-height:390px;background:var(--paper);border:1px solid #c2c7b9;color:var(--ink)}
.menu-logo{display:block;width:230px;max-width:100%;height:auto;margin:0 auto;mix-blend-mode:multiply}
.menu-art p{margin-top:24px}
.footer-top .brand-logo{width:120px;height:120px}
.gallery{grid-template-columns:1fr 1fr}
.gallery img{height:340px}
@media(max-width:760px){header{min-height:112px;padding:10px 7%}.brand-logo{width:90px;height:90px}.hero{height:calc(100svh - 112px)}.menu-art{min-height:345px}.menu-logo{width:210px}.gallery{grid-template-columns:1fr}.gallery img{height:300px}}

.menu-heading{display:grid;grid-template-columns:170px 1fr;gap:45px;align-items:center;border-bottom:1px solid #c4c8b9;padding-bottom:40px}.menu-heading .menu-logo{width:160px}.menu-heading p{max-width:620px}.menu-nav{display:flex;flex-wrap:wrap;gap:9px;padding:30px 0 40px}.menu-nav a{border:1px solid #b3bdaf;padding:9px 15px;font-size:12px;background:#f6f3eb70}.menu-nav a:hover{background:var(--ink);color:white;text-decoration:none}.menu-content{display:grid;grid-template-columns:1fr 1fr;gap:55px 65px;align-items:start}.menu-category{scroll-margin-top:30px}.category-head{border-bottom:1px solid var(--ink);padding-bottom:12px;margin-bottom:8px}.category-head h3{font-size:32px;margin:0 0 8px}.category-head>p{font-size:10px;letter-spacing:2px;text-transform:uppercase;margin:0;color:#53645b}.dish{display:grid;grid-template-columns:1fr auto;gap:20px;padding:17px 0;border-bottom:1px solid #cbd0c0}.dish h4{font-size:14px;font-weight:600;margin:0;line-height:1.5}.dish p{font-size:12px;line-height:1.65;margin:5px 0 0;color:#526257}.dish-price{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.menu-note{border-top:1px solid var(--ink);padding-top:22px;margin-top:55px}.menu-note a{text-decoration:underline}@media(max-width:760px){nav.menu-nav{display:flex;flex-direction:row;width:100%;padding:25px 0 35px}.menu-heading{grid-template-columns:100px 1fr;gap:20px}.menu-heading .menu-logo{width:100px}.menu-heading h3{font-size:25px}.menu-content{grid-template-columns:1fr;gap:40px}.dish-price{font-size:13px}.dish{gap:12px}.menu-nav a{font-size:11px;padding:7px 12px}}

/* Decorative separators use CSS instead of platform-dependent symbols. */
.ribbon span+span:before{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);vertical-align:middle}
@media(max-width:760px){.ribbon span+span:before{display:none}}


/* Inline SVG keeps the word animation active in mobile browsers. */
.animated-logo{flex-shrink:0;overflow:visible}

/* Italian accents: warm terracotta, olive and fine tricolour details. */
:root{--ink:#293f35;--accent:#b55d43;--sand:#eae2d3;--olive:#6d7954;--terracotta:#ab5039}
header{border-top:4px solid transparent;border-image:linear-gradient(to right,#526e52 0 33.33%,#f6f3eb 33.33% 66.66%,#b55d43 66.66%) 1}
.hero .eyebrow{display:inline-block;border-bottom:1px solid #f6f3eb80;padding-bottom:12px}
.hero .light{background:#b85f45;color:#fff}.hero .light:hover{background:#9c4934}
.ribbon{color:#686c4a}.ribbon span:first-child{font-family:Georgia,serif;font-style:italic;font-size:17px;letter-spacing:.4px}
.menu-section{position:relative}.menu-section:before{content:'';display:block;height:5px;background:linear-gradient(to right,#6d7954 0 33.33%,#f6f3eb 33.33% 66.66%,#b55d43 66.66%)}
.menu-section h2 em,.about h2 em,.visit h2 em{color:var(--terracotta)}
.category-head{border-color:var(--terracotta)}.category-head h3{color:var(--terracotta)}
.menu-nav a:hover{background:var(--terracotta);border-color:var(--terracotta)}
.reserve{background:linear-gradient(120deg,#263d32,#3e5140)}
.reserve .eyebrow{color:#e4bf94}.reserve h2 em{color:#e5c5a4}
.legal-page{max-width:900px;margin:auto;padding:80px 7% 100px}.legal-page h1{font-size:clamp(38px,6vw,65px);letter-spacing:-1.8px;overflow-wrap:anywhere}.legal-page h2{font-size:29px;letter-spacing:-.6px;margin-top:42px;margin-bottom:15px}.legal-page p,.legal-page li{font-size:15px;line-height:1.85}.legal-page a{text-decoration:underline;overflow-wrap:anywhere}.legal-page address{font-style:normal}.legal-page ul{padding-left:22px}.legal-page .eyebrow{color:var(--terracotta)}.legal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 7%;border-bottom:1px solid #d4d6ca}.legal-header img{width:90px;height:90px;object-fit:contain;mix-blend-mode:multiply}.legal-footer{padding:25px 7%;display:flex;gap:30px;flex-wrap:wrap;font-size:13px}@media(max-width:760px){.legal-page{padding-top:45px}.ribbon span:first-child{font-size:13px}.hero .eyebrow{letter-spacing:1.7px}}

/* Restrained scrolling: fixed glass header, once-only entrances, fine progress. */
body > header{position:sticky;top:0;z-index:30;transition:background-color .35s ease,box-shadow .35s ease}
body > header.is-scrolled{background:rgba(246,243,235,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 6px 28px rgba(22,42,32,.09)}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;transform:scaleX(0);transform-origin:left center;background:#b55d43;z-index:60;pointer-events:none}
.scroll-reveal{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.65,.25,1),filter .8s ease}
.scroll-reveal.reveal-pending{opacity:0;transform:translate3d(0,25px,0);filter:blur(5px)}
.gallery button{overflow:hidden}.gallery img{transition:transform .65s cubic-bezier(.2,.65,.25,1),filter .3s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.gallery button:hover img{transform:scale(1.025)}}
@media(max-width:760px){body > header.is-scrolled{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scroll-reveal{transition-duration:.6s}.scroll-reveal.reveal-pending{transform:translate3d(0,16px,0);filter:blur(2px)}}
@media(prefers-reduced-motion:reduce){.scroll-reveal,.scroll-reveal.reveal-pending{opacity:1;transform:none;filter:none;transition:none}body > header{transition:none}.scroll-progress{display:none}}
@media print{.scroll-reveal,.scroll-reveal.reveal-pending{opacity:1;transform:none;filter:none}body > header{position:static}.scroll-progress{display:none}}
html{scroll-padding-top:148px}@media(max-width:760px){html{scroll-padding-top:128px}}

/* Main message resolves gently from blur when the page opens. */
.hero-title-line{display:block;animation:heroTitleFocus 1.35s cubic-bezier(.2,.65,.25,1) both}
.hero-title-line:first-child{animation-delay:.12s}.hero-title-line:last-child{animation-delay:.42s}
@keyframes heroTitleFocus{from{opacity:0;filter:blur(12px);transform:translate3d(0,18px,0)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}}
@media(max-width:760px){@keyframes heroTitleFocus{from{opacity:0;filter:blur(7px);transform:translate3d(0,12px,0)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}}}
@media(prefers-reduced-motion:reduce){.hero-title-line{animation:none;opacity:1;filter:none;transform:none}}
@media print{.hero-title-line{animation:none;opacity:1;filter:none;transform:none}}
