*{box-sizing:border-box}
:root{--noir:#0b0b0a;--noir2:#15140f;--ivoire:#f7f2e8;--ivoire2:#ebe4d1;--or:#b99352;--or-clair:#e5c987;--or-fonce:#765318;--encre:#1b1a16;--serif:"Bodoni 72","Didot","Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif}
html{scroll-behavior:smooth}
body{margin:0;font:19px/1.8 var(--serif);color:var(--encre);background:var(--ivoire)}
h1,h2,h3,.logo,.foot-title,.statement,.equation,.band-text{font-weight:400;letter-spacing:-.01em}
#progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--or);transform:scaleX(0);transform-origin:left;z-index:60}
.top{position:sticky;top:0;z-index:50;background:rgba(11,11,10,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(198,161,91,.3);display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 2rem;padding:1rem clamp(1rem,4vw,3rem)}
.logo{font-size:1.5rem;color:var(--ivoire);text-decoration:none;letter-spacing:.04em}
nav{display:flex;flex-wrap:wrap;gap:.2rem 1.8rem;margin:0 auto}
nav a{color:#d8d1bd;text-decoration:none;font-size:.95rem;font-variant-caps:all-small-caps;letter-spacing:.14em;padding:.4rem 0;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
nav a:hover,nav a[aria-current]{color:var(--or-clair);border-bottom-color:var(--or)}
.reserve{order:3;background:var(--or);color:var(--noir);text-decoration:none;padding:.55rem 1.4rem;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:1rem;transition:background .3s}
.reserve:hover{background:var(--or-clair)}
a{color:var(--or-fonce)}
.s-noir a:not(.btn),.banner a:not(.btn),footer a{color:var(--or)}
a:focus-visible{outline:2px solid var(--or);outline-offset:3px}
.rule{display:block;width:4rem;height:1px;background:var(--or);margin:1.2rem 0}
.center .rule,.banner:not(.hero) .rule{margin-left:auto;margin-right:auto}
.banner{background:linear-gradient(rgba(11,11,10,.82),rgba(11,11,10,.95)),url(hero-champs.svg) center/cover;color:var(--ivoire);padding:clamp(3.5rem,9vw,7rem) clamp(1rem,4vw,3rem);text-align:center}
.banner-in{max-width:46rem;margin:0 auto}
.banner h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.12;margin:0}
.banner .lead{font-size:1.15rem;color:#d8d1bd;margin:0;font-style:italic}
.banner.hero{min-height:min(48rem,calc(100vh - 4.5rem));text-align:left;padding-top:clamp(3rem,9vw,8rem);padding-bottom:clamp(3rem,9vw,8rem);background:linear-gradient(90deg,rgba(8,8,7,.96) 0%,rgba(8,8,7,.86) 37%,rgba(8,8,7,.16) 78%),url(hero-colzotto-v2.png) center/cover;color:var(--ivoire);overflow:hidden}
.hero-grid{max-width:76rem;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
.hero .banner-in{margin:0;max-width:none}
.hero h1{font-size:clamp(2.4rem,5.8vw,4.8rem)}
.hero .rule{margin:1.6rem 0}
.hero-plate{min-height:14rem}
.actions{display:flex;flex-wrap:wrap;gap:1rem;margin:2.2rem 0 0}
.btn{display:inline-block;background:var(--or);color:var(--noir);padding:.8rem 2rem;text-decoration:none;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:1.05rem;border:1px solid var(--or);transition:background .3s,color .3s}
.btn:hover{background:var(--or-clair)}
.btn.ghost{background:transparent;color:var(--or-clair)}
.btn.ghost:hover{background:var(--or);color:var(--noir)}
.btn.dark{background:var(--noir);color:var(--ivoire);border-color:var(--noir)}
.btn.dark:hover{background:var(--or);color:var(--noir);border-color:var(--or)}
.credit{font-size:.78rem;color:#a89f88;margin:1.5rem 0 0;font-style:italic}
.eyebrow{margin:0 0 1rem;color:var(--or-clair);font-family:Arial,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.story-credit{text-align:center;margin:0;padding-bottom:1.5rem}
.wrap{max-width:68rem;margin:0 auto;padding:clamp(4rem,9vw,8rem) clamp(1rem,4vw,3rem)}
.s-ivoire{background:var(--ivoire)}
.s-noir{background:var(--noir);color:var(--ivoire)}
.s-or{background:var(--or);color:var(--noir)}
.center{text-align:center}
.small{font-size:.85rem;font-style:italic;margin:.5rem 0 0}
h2{font-size:clamp(1.8rem,3.8vw,2.8rem);line-height:1.15;margin:0}
h3{font-size:1.45rem;margin:0 0 .4rem}
.intro{font-size:1.2rem;max-width:40rem;margin:0 auto}
.statement{font-size:clamp(1.7rem,4vw,3.1rem);line-height:1.3;margin:0;text-align:center;font-style:italic}
.ingredient-rail{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(118,83,24,.35);margin-top:4rem;padding-top:1rem;overflow:hidden;color:var(--or-fonce);font-family:Arial,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.ingredient-rail span{white-space:nowrap;transition:transform .5s,color .5s}.ingredient-rail span:hover{color:var(--encre);transform:translateY(-3px)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.signature-section{border-top:1px solid rgba(198,161,91,.25)}.signature-photo{overflow:hidden;box-shadow:0 2rem 5rem rgba(0,0,0,.35)}.signature-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s ease}.signature-photo:hover img{transform:scale(1.035)}
figure{margin:0}
figure img{display:block;max-width:100%;height:auto}
figcaption{font-size:.8rem;color:#8a8472;margin-top:.5rem;font-style:italic}
.split figure img[data-par]{width:100%;transform:scale(1.1)}
.split figure:has(img[data-par]){overflow:hidden}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3rem);margin-top:2.5rem}
.trio>div{border-top:1px solid var(--or);padding-top:1.2rem}
.dishes-mini a{display:block;text-align:center;text-decoration:none;color:var(--encre);border:0;padding:0}
.dishes-mini img{width:100%;max-width:18rem;height:auto;margin:0 auto 1rem;display:block;transition:transform .6s}
.dishes-mini a:hover img{transform:scale(1.04)}
.dishes-mini p{margin:0;font-style:italic;color:var(--or-fonce)}
.note-menu{font-style:italic;margin-top:1.5rem}
.band-text{font-size:clamp(1.8rem,4vw,3rem);margin:0 0 1.5rem;font-style:italic}
.dish-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);margin-top:2.5rem}
.dish{display:flex;flex-direction:column;gap:1.2rem;align-items:center;text-align:center}
.dish img{width:100%;max-width:19rem;height:auto}
.dish p{margin:0}
.tag{color:var(--or);font-style:italic;font-size:.95rem}
.dish.sig h3{color:var(--or-clair)}
.stage{position:sticky;top:7rem;align-self:start;height:min(70vh,34rem);aspect-ratio:4/5;margin:0 auto}
.stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .8s,transform .8s}
.stage img:not(:first-child){opacity:0}
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);padding-bottom:2rem}
.steps{position:relative;padding-left:2.2rem;border-left:1px solid rgba(198,161,91,.35)}
.step{position:relative;min-height:72vh;display:flex;flex-direction:column;justify-content:center}
.step::before{content:"";position:absolute;left:calc(-2.2rem - 6px);top:50%;width:11px;height:11px;border-radius:50%;background:var(--noir);border:1px solid var(--or);transition:background .5s,transform .5s}
.step h3{font-size:clamp(1.8rem,3.4vw,2.6rem);color:var(--or-clair)}
.step p{color:#d8d1bd;max-width:26rem}
.equation{font-size:clamp(1.8rem,5vw,3.6rem);color:var(--or-clair);margin:1.5rem 0;font-style:italic;line-height:1.2}
.s-noir .center>p:last-child{max-width:38rem;margin-left:auto;margin-right:auto;color:#d8d1bd}
main.narrow{max-width:46rem;margin:0 auto;padding:3rem 1rem 5rem}
main.narrow h2{font-size:1.9rem;margin-top:3rem;color:var(--encre)}
main.narrow h1{font-size:2rem}
.note{background:var(--ivoire2);border-left:3px solid var(--or);padding:.5rem 1.4rem 1rem;margin:1.8rem 0}
.note.real{border-left-color:#3c6a8a}
.modal{display:none;position:fixed;inset:0;z-index:100;background:rgba(11,11,10,.82);place-items:center;padding:1rem}
.modal:target{display:grid}
.modal-box{background:var(--ivoire);max-width:30rem;padding:2.5rem;border-top:3px solid var(--or);text-align:center}
.modal-box h2{margin-bottom:1rem}
footer{background:var(--noir);color:#c9c2ae;padding:4rem clamp(1rem,4vw,3rem);font-size:.95rem;border-top:1px solid rgba(198,161,91,.3)}
.foot-grid{max-width:68rem;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:2.5rem}
.foot-title{font-size:1.25rem;color:var(--or);margin:0 0 .8rem}
footer ul{list-style:none;padding:0;margin:0}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity 1s ease var(--d,0s),transform 1s ease var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
.js .w{opacity:.2;transition:opacity .5s}
.js .w.lit{opacity:1}
.js .stage img{opacity:0;transform:scale(.96)}
.js .stage img.on{opacity:1;transform:none}
.js .step{opacity:.3;transition:opacity .6s}
.js .step.on{opacity:1}
.js .step.on::before{background:var(--or);transform:scale(1.5)}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){.hero h1{animation:rise 1.2s both}.hero .lead{animation:rise 1.2s .2s both}.hero .actions{animation:rise 1.2s .4s both}.hero-plate{animation:fade 1.8s .1s both}}
@media(max-width:860px){.top{position:static}.logo{margin-right:auto}.reserve{order:2}nav{order:3;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;margin:0;gap:1.4rem;padding-bottom:.2rem}nav a{white-space:nowrap}.hero-grid,.split,.story,.foot-grid,.dish-grid,.trio{grid-template-columns:1fr}.hero-plate{display:none}.banner.hero{min-height:40rem;background:linear-gradient(90deg,rgba(8,8,7,.97),rgba(8,8,7,.68)),url(hero-colzotto-v2.png) 66% center/cover}.ingredient-rail{justify-content:flex-start;overflow:auto;padding-bottom:.5rem}.stage{position:sticky;top:0;height:38vh;z-index:5;background:var(--noir);width:100%;aspect-ratio:auto}.step{min-height:55vh}.steps{padding-left:1.4rem}.step::before{left:calc(-1.4rem - 6px)}.hero .banner-in{text-align:left}}
@media(max-width:500px){.logo{font-size:1.2rem}.reserve{padding:.45rem .8rem;font-size:.85rem;letter-spacing:.08em}.top{flex-wrap:wrap;gap:.4rem .8rem}}
