:root{color-scheme:light;--sage:#476B4B;--ink:#0d0d0d;--mute:#6b6b6b;--line:#e7e5e0;--h:calc(100px + env(safe-area-inset-top,0px));--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:"Jost","Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button{font-family:inherit}
.hd{position:fixed;inset:0 0 auto;height:var(--h);padding:env(safe-area-inset-top,0px) clamp(18px,4vw,48px) 0;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;z-index:20;border-bottom:1px solid var(--line)}
.logo{display:block;line-height:0}
.logo img{height:68px;width:auto}
.right{display:flex;align-items:center;gap:clamp(14px,2.4vw,34px)}
.lang{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.lang span{color:#bbb}
.lang button,.m-lang button{background:none;border:0;cursor:pointer;color:var(--mute);font-size:inherit;letter-spacing:inherit;text-transform:inherit;padding:10px 0}
.lang button.on{color:var(--ink)}
.book{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 24px;background:var(--sage);color:#fff;text-decoration:none;font-size:11px;font-weight:400;letter-spacing:.28em;transition:background .3s}
.book:hover{background:#3a5a3e}
.burger{background:none;border:0;width:44px;height:44px;margin-right:-10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer}
.burger i{display:block;width:24px;height:1px;background:#000}
.burger i:nth-child(2){width:16px;align-self:flex-end;margin-right:10px}
.ov{position:fixed;inset:0;background:rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .5s;z-index:30}
.ov.on{opacity:1;pointer-events:auto}
.panel{position:fixed;top:0;right:0;height:100%;height:100dvh;width:min(440px,100%);background:#fff;transform:translateX(100%);transition:transform .6s cubic-bezier(.76,0,.24,1);z-index:40;padding:calc(110px + env(safe-area-inset-top,0px)) 44px calc(36px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column}
.panel.on{transform:none}
.panel nav{display:flex;flex-direction:column}
.panel nav a{color:var(--ink);text-decoration:none;font-family:var(--serif);font-weight:300;font-size:clamp(38px,11vw,50px);line-height:1;padding:20px 0;border-bottom:1px solid var(--line);opacity:0}
.panel.on nav a{animation:up .8s .25s cubic-bezier(.2,.7,.2,1) forwards}
.panel.on nav a:nth-child(2){animation-delay:.35s}.panel.on nav a:nth-child(3){animation-delay:.45s}
.panel nav a:hover,.panel nav a:active{color:var(--sage)}
.m-lang{margin-top:auto;display:flex;align-items:center;gap:18px;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.m-lang span{width:28px;height:1px;background:#ccc}
.m-lang button.on{color:var(--ink)}
.close{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:20px;width:44px;height:44px;background:none;border:0;font-size:34px;font-weight:200;line-height:1;cursor:pointer}
main{padding-top:var(--h)}
.page{display:none}
.page.on{display:block;animation:fade 1s ease both}
.hero{display:block;width:100%;height:calc(100vh - var(--h));height:calc(100svh - var(--h));object-fit:cover;object-position:center 40%}
.wrap{max-width:720px;margin:0 auto;padding:72px 28px 110px}
#bio.wrap{max-width:1080px}
#gallery.wrap{max-width:1240px}
h1{font-family:var(--serif);font-weight:300;font-size:clamp(46px,9vw,76px);line-height:1;letter-spacing:.02em;text-align:center}
h1::after{content:"";display:block;width:44px;height:1px;background:var(--sage);margin:28px auto 56px}
.bio-grid{display:grid;grid-template-columns:340px 1fr;gap:72px;align-items:start}
.portrait{width:100%;height:auto;display:block;position:sticky;top:calc(var(--h) + 40px)}
.bio-text p{font-size:17px;line-height:1.95;color:#2b2b2b;margin-bottom:26px}
.bio-text p:first-child::first-letter{font-family:var(--serif);font-size:4.4em;float:left;line-height:.8;padding:8px 12px 0 0;color:var(--sage)}
.routes{list-style:none;padding:0;margin:8px 0 34px;counter-reset:r;border-top:1px solid var(--line)}
.routes li{counter-increment:r;display:flex;gap:20px;align-items:baseline;padding:17px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:22px;line-height:1.3}
.routes li::before{content:counter(r,upper-roman);flex:0 0 38px;font-size:15px;letter-spacing:.1em;color:var(--sage)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.th{border:0;padding:0;background:none;cursor:zoom-in;display:block}
.th img{width:100%;height:auto;display:block;transition:opacity .4s}
.th:hover img{opacity:.9}
.lb{position:fixed;inset:0;background:#fff;display:none;align-items:center;justify-content:center;z-index:50;cursor:zoom-out;padding:20px}
.lb.on{display:flex;animation:fade .4s both}
.lb img{max-width:100%;max-height:100%;object-fit:contain}
.ft{text-align:center;font-size:10px;color:#8a8a8a;padding:28px 20px calc(28px + env(safe-area-inset-bottom,0px));letter-spacing:.28em;text-transform:uppercase;border-top:1px solid var(--line)}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:800px){
.wrap{padding:52px 24px 80px}
h1::after{margin:22px auto 40px}
.bio-grid{grid-template-columns:1fr;gap:36px}
.portrait{position:static;width:calc(100% + 48px);max-width:none;margin:0 -24px}
.bio-text p{font-size:16.5px;line-height:1.9}
.grid{grid-template-columns:1fr}
}
@media(max-width:560px){:root{--h:calc(72px + env(safe-area-inset-top,0px))}.logo img{height:42px}.lang{display:none}.book{padding:0 14px;min-height:38px;font-size:10px;letter-spacing:.18em}.right{gap:6px}.burger{width:38px;margin-right:-8px}.hd{padding-left:16px;padding-right:16px}.panel{padding-left:28px;padding-right:28px}}
@media(min-width:561px){.m-lang{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.panel nav a{opacity:1}}

/* luxury refinements */
.book{min-height:46px;padding:0 30px;letter-spacing:.32em}
.panel nav{counter-reset:n}
.panel nav a{counter-increment:n;display:flex;align-items:baseline}
.panel nav a::before{content:"0" counter(n);font-family:var(--sans);font-size:11px;letter-spacing:.24em;color:var(--sage);width:44px;flex:0 0 44px}
.panel nav a:first-child{border-top:1px solid var(--line)}
.bio-q{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(28px,5.4vw,46px);line-height:1.25;text-align:center;color:var(--ink);max-width:760px;margin:-8px auto 72px}
.bio-q::before,.bio-q::after{content:"";display:block;width:1px;height:44px;background:var(--sage);margin:0 auto 26px}
.bio-q::after{margin:26px auto 0}
.pf{position:relative;position:sticky;top:calc(var(--h) + 40px)}
.pf::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--sage);z-index:0}
.pf .portrait{position:relative;z-index:1;top:auto}
.wrap{padding-top:96px;padding-bottom:130px}
.bio-text p{font-size:18px;line-height:2}
.routes li{font-size:24px;padding:20px 0}
.ft{padding-top:40px;padding-bottom:calc(40px + env(safe-area-inset-bottom,0px));letter-spacing:.34em}
@media(max-width:800px){.logo img{height:52px}.bio-q{margin-bottom:52px}.pf{position:relative;top:auto;margin:0 18px 0 0}.pf .portrait{width:100%;max-width:none;margin:0}.wrap{padding-top:64px;padding-bottom:90px}.bio-text p{font-size:17px}}
@media(max-width:560px){.logo img{height:42px}}

/* gallery masonry + lightbox navigation */
.grid{display:block;columns:3 280px;column-gap:20px}
.th{display:block;width:100%;margin:0 0 20px;break-inside:avoid}
.lbn,.lbc{position:absolute;background:none;border:0;cursor:pointer;color:#111;font-family:Georgia,serif;font-weight:200;width:56px;height:56px;line-height:1;z-index:2}
.lbn{top:50%;transform:translateY(-50%);font-size:44px}
.lbc{top:calc(8px + env(safe-area-inset-top,0px));right:8px;font-size:38px}
.lb img{max-height:calc(100% - 20px);max-width:calc(100% - 20px)}
@media(max-width:640px){.grid{columns:2;column-gap:10px}.th{margin-bottom:10px}.lbn{font-size:34px;width:44px}}

/* gallery loading: soft placeholder + fade-in */
.th{background:#f1efea}
.th img{opacity:0;transform:translateY(10px);transition:opacity .8s ease,transform .8s ease}
.th img.ld{opacity:1;transform:none}
.th:hover img.ld{opacity:.9}

/* bio: horizontal photo strip */
.strip-wrap{position:relative;margin-top:88px}
.strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip img{flex:0 0 auto;height:clamp(320px,52vw,460px);width:auto;display:block;scroll-snap-align:start;background:#f1efea}
.sb{display:none;position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid #d9d6cf;background:rgba(255,255,255,.94);color:#111;font:300 26px/1 Georgia,serif;cursor:pointer;z-index:2;transition:background .3s,color .3s}
.sb:hover{background:var(--sage,#476B4B);color:#fff;border-color:var(--sage,#476B4B)}
.sb.prev{left:-24px}.sb.next{right:-24px}
@media(hover:hover) and (min-width:801px){.sb{display:block}}
@media(max-width:800px){.strip-wrap{margin:56px -24px 0}.strip{padding:0 24px;scroll-padding-left:24px;gap:10px}.strip img{height:min(62vh,420px)}}

/* CTA: SALTA LA FILA */
.book{background:#56905c;color:#fff}
.book:hover{background:#4a7d50;opacity:1}
@media(max-width:560px){.book{white-space:normal;text-align:center;line-height:1.3;max-width:92px;padding:6px 10px;min-height:40px;font-size:10px;letter-spacing:.14em}}

html[lang="ru"] .book-it,html[lang="it"] .book-ru{display:none}

/* v2: scrolling fixes */
.lb .prev{left:6px}.lb .next{right:6px}
.lbn{width:64px;height:64px;-webkit-tap-highlight-color:transparent}
.lbx{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom,0px));text-align:center;font-size:11px;letter-spacing:.28em;color:#777;pointer-events:none}
body.lock{overflow:hidden}
.lb{overscroll-behavior:contain;touch-action:pan-y}
.th img{transform:none;transition:opacity .5s ease}
.strip{scroll-snap-type:x proximity;cursor:grab;touch-action:pan-x pan-y}
.strip.drag{scroll-snap-type:none;cursor:grabbing;scroll-behavior:auto;user-select:none}
.strip img{-webkit-user-drag:none;user-select:none}
.sb{-webkit-tap-highlight-color:transparent}
.sb.prev{left:14px}.sb.next{right:14px}
.sb.off{opacity:0;pointer-events:none}

/* home slideshow */
.hero-wrap{position:relative;width:100%;height:calc(100vh - var(--h));height:calc(100svh - var(--h));overflow:hidden;background:#fff}
.hs{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:0;transition:opacity 2.8s cubic-bezier(.45,0,.25,1)}
.hs.prev{opacity:1;z-index:1;transition:none}
.hs.on{opacity:1;z-index:2}
@media(prefers-reduced-motion:reduce){.hs{transition:none}}
