:root{--ink:#2b2924;--mute:#7a7468;--bg:#f6f2ea;--paper:#fbf9f4;--line:#d9d1c2;--gold:#8a7350}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.7 "Cormorant Garamond",Georgia,serif}
.sans{font-family:"Helvetica Neue",Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;font-size:11px}
a{color:inherit}
nav{position:sticky;top:0;z-index:9;background:rgba(246,242,234,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:14px 40px}
nav .brand{font-size:20px;letter-spacing:.06em}nav ul{list-style:none;display:flex;gap:26px;margin:0;padding:0}nav ul a{text-decoration:none;color:var(--mute)}nav ul a:hover{color:var(--ink)}
.hero{height:88vh;min-height:560px;background:url(../img/elbblick.jpg) center/cover;position:relative;display:flex;align-items:flex-end}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,14,.65),rgba(20,18,14,0) 60%)}
.hero div{position:relative;z-index:1;color:#fbf9f4;padding:0 8vw 9vh}.hero h1{font-weight:300;font-size:clamp(44px,7vw,92px);line-height:1;margin:.25em 0}
.hero p{max-width:520px;font-size:20px;font-style:italic}
section{padding:110px 8vw;border-bottom:1px solid var(--line)}section:nth-of-type(even){background:var(--paper)}
.k{color:var(--gold);margin-bottom:18px;display:block}h2{font-weight:300;font-size:clamp(32px,4vw,52px);line-height:1.1;margin:0 0 28px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.lead{font-size:21px;max-width:640px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-top:50px}
.facts div{padding:22px 20px 22px 0;border-bottom:1px solid var(--line)}.facts b{display:block;font-weight:400;font-size:26px}
.poem{font-style:italic;color:var(--mute);border-left:1px solid var(--gold);padding-left:24px;margin:30px 0}
img.w{width:100%;display:block}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gal a{display:block;overflow:hidden;aspect-ratio:4/3}.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.gal a:hover img{transform:scale(1.04)}
.gal .big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.two{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line)}.two>div{background:var(--paper);padding:46px}
.two h3{font-weight:300;font-size:34px;margin:6px 0 14px}.two ul{padding-left:18px;color:var(--mute)}
.open{counter-reset:o;list-style:none;padding:0;max-width:900px}.open li{counter-increment:o;padding:22px 0 22px 60px;border-bottom:1px solid var(--line);position:relative}
.open li:before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:22px;color:var(--gold);font-size:22px}.open b{font-weight:500}
.dl a{display:flex;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:21px}.dl a span{color:var(--mute)}
.note{background:#ece5d8;padding:26px 8vw;font-size:15px;color:var(--mute)}
footer{padding:60px 8vw;font-size:15px;color:var(--mute);display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px}
.btn{display:inline-block;border:1px solid var(--ink);padding:14px 30px;text-decoration:none;background:none;cursor:pointer}
@media(max-width:820px){nav{padding:12px 20px}nav ul{display:none}section{padding:70px 22px}.cols,.two{grid-template-columns:1fr;gap:30px}.facts{grid-template-columns:1fr 1fr}.gal{grid-template-columns:1fr 1fr}.two>div{padding:30px}.hero div{padding:0 22px 8vh}}
/* login */
.login{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr}.login .pic{background:url(../img/villa-winter.jpg) center/cover}
.login form{display:flex;flex-direction:column;justify-content:center;padding:8vw;gap:14px;background:var(--paper)}
.login input{font:inherit;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:none;outline:none}.login input:focus{border-color:var(--ink)}
.err{color:#9a3b2b;font-size:15px;min-height:1em}
@media(max-width:820px){.login{grid-template-columns:1fr}.login .pic{height:38vh}}
.login label{display:block}.login input{display:block;width:100%;margin-top:4px;font-size:18px;letter-spacing:0;text-transform:none}
