
:root{
  --pine:#10241c; --pine2:#173528; --moss:#2f5a43; --cream:#f4efe5; --paper:#fbf8f2;
  --gold:#c9a45c; --clay:#b5562c; --ink:#1b1b18; --mute:#6c6a62; --line:rgba(16,36,28,.14);
  --display:'Frank Ruhl Libre',serif; --body:'Heebo',sans-serif;
  --r:22px; --ease:cubic-bezier(.2,.7,.1,1);
}
html[lang=ru],html[lang=en]{--display:'Cormorant Garamond',serif;--body:'Manrope',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.wrap{width:min(1240px,92vw);margin-inline:auto}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.08;letter-spacing:-.01em}
.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);font-weight:600;display:inline-flex;align-items:center;gap:.7em}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
section{position:relative}
.sec{padding:clamp(80px,11vw,150px) 0}
.h2{font-size:clamp(2.2rem,5vw,4rem);margin:.35em 0 .4em}
.lead{font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--mute);max-width:640px}

/* preloader */
#pre{position:fixed;inset:0;background:var(--pine);z-index:999;display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
#pre.done{opacity:0;visibility:hidden}
#pre svg{width:min(340px,70vw)}
#pre path{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:900;stroke-dashoffset:900;animation:draw 1.8s var(--ease) forwards}
#pre .pw{color:var(--cream);text-align:center;font-family:'Cormorant Garamond',serif;letter-spacing:.4em;font-size:1rem;margin-top:18px;opacity:0;animation:fade .8s .9s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}

/* header */
header{position:fixed;top:0;inset-inline:0;z-index:50;transition:background .4s,padding .4s,box-shadow .4s;padding:22px 0}
header.solid{background:rgba(16,36,28,.92);backdrop-filter:blur(12px);padding:12px 0;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--cream)}
.logo{display:flex;align-items:center;gap:12px;font-family:'Cormorant Garamond',serif;font-weight:700;font-size:1.35rem;letter-spacing:.14em}
.logo svg{width:38px;height:38px}
.logo small{display:block;font-family:var(--body);font-size:.62rem;letter-spacing:.28em;opacity:.7;font-weight:500}
.menu{display:flex;gap:28px;font-size:.92rem}
.menu a{opacity:.85;position:relative}
.menu a::after{content:"";position:absolute;inset-inline-start:0;bottom:-4px;height:1px;width:0;background:var(--gold);transition:width .35s var(--ease)}
.menu a:hover{opacity:1}.menu a:hover::after{width:100%}
.right{display:flex;align-items:center;gap:14px}
.langs{display:flex;border:1px solid rgba(244,239,229,.3);border-radius:99px;overflow:hidden}
.langs button{background:none;border:0;color:var(--cream);padding:6px 11px;font-size:.78rem;cursor:pointer;letter-spacing:.06em}
.langs button.on{background:var(--gold);color:var(--pine);font-weight:700}
.btn{display:inline-flex;align-items:center;gap:.6em;background:var(--gold);color:var(--pine);border:0;border-radius:99px;padding:.95em 1.6em;font-weight:700;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s,background .3s;font-size:.95rem}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(201,164,92,.35)}
.btn.ghost{background:transparent;color:var(--cream);border:1px solid rgba(244,239,229,.45)}
.btn.ghost:hover{background:rgba(244,239,229,.08);box-shadow:none}
.btn.dark{background:var(--pine);color:var(--cream)}
.burger{display:none;background:none;border:0;color:var(--cream);font-size:1.6rem;cursor:pointer}

/* hero */
.hero{min-height:100vh;background:linear-gradient(180deg,#0c1d16 0%,#173528 55%,#2c4b3a 100%);color:var(--cream);overflow:hidden;display:flex;align-items:center}
.sky{position:absolute;inset:0;background:radial-gradient(1200px 600px at 75% 18%,rgba(201,164,92,.28),transparent 60%),radial-gradient(800px 500px at 10% 0%,rgba(181,86,44,.18),transparent 60%)}
.sun{position:absolute;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,#f0d69b,#c9a45c 60%,transparent 70%);top:16%;inset-inline-end:14%;filter:blur(1px);opacity:.85}
.mts{position:absolute;inset-inline:0;bottom:0;height:70%;pointer-events:none}
.mts svg{position:absolute;bottom:0;width:100%;height:auto;will-change:transform}
.hero .wrap{position:relative;z-index:3;padding-top:120px;padding-bottom:140px}
.hero h1{font-size:clamp(2.8rem,7.6vw,7rem);max-width:13ch}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{font-size:clamp(1.05rem,1.6vw,1.35rem);opacity:.85;max-width:560px;margin:26px 0 38px}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.coords{position:absolute;bottom:34px;inset-inline-start:4vw;z-index:4;font-size:.72rem;letter-spacing:.3em;opacity:.6}
.scrollhint{position:absolute;bottom:30px;inset-inline-end:4vw;z-index:4;width:1px;height:60px;background:linear-gradient(var(--gold),transparent);animation:sh 2s infinite}
@keyframes sh{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* marquee */
.marq{background:var(--gold);color:var(--pine);overflow:hidden;white-space:nowrap;padding:16px 0;font-family:var(--display);font-size:1.4rem;font-weight:700}
.marq div{display:inline-block;animation:mq 38s linear infinite}
html[dir=rtl] .marq div{animation-direction:reverse}
.marq span{margin:0 28px}.marq i{font-style:normal;opacity:.5}
@keyframes mq{to{transform:translateX(-50%)}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:60px}
.stat{background:var(--paper);padding:34px 28px;transition:background .4s}
.stat:hover{background:var(--cream)}
.stat b{display:block;font-family:var(--display);font-size:clamp(2.4rem,4.4vw,3.6rem);color:var(--pine);line-height:1}
.stat span{display:block;margin-top:12px;color:var(--mute);font-size:.95rem}
.why{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:end}

/* models */
.dark{background:var(--pine);color:var(--cream)}
.dark .lead{color:rgba(244,239,229,.7)}
.models{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:60px}
.model{background:var(--pine2);border:1px solid rgba(244,239,229,.1);border-radius:var(--r);padding:38px 32px;position:relative;overflow:hidden;transition:transform .5s var(--ease),border-color .4s}
.model:hover{transform:translateY(-8px);border-color:var(--gold)}
.model .num{font-family:var(--display);font-size:4.4rem;color:var(--gold);opacity:.35;line-height:1}
.model h3{font-size:1.75rem;margin:18px 0 12px}
.model p{color:rgba(244,239,229,.72);font-size:.98rem}
.model ul{list-style:none;margin-top:20px;display:grid;gap:9px}
.model li{display:flex;gap:10px;font-size:.93rem}
.model li::before{content:"";flex:0 0 7px;height:7px;border-radius:50%;background:var(--gold);margin-top:.6em}
.model.feat{background:linear-gradient(160deg,#2f5a43,#173528)}
.tag{position:absolute;top:24px;inset-inline-end:24px;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;background:var(--gold);color:var(--pine);padding:5px 10px;border-radius:99px;font-weight:700}

/* process */
.steps{margin-top:60px;display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative}
.steps::before{content:"";position:absolute;top:27px;inset-inline:4%;height:1px;background:var(--line)}
.steps .bar{position:absolute;top:27px;inset-inline-start:4%;height:2px;background:var(--clay);width:0;transition:width 2.2s var(--ease)}
.step{position:relative;padding-inline-end:16px}
.dot{width:56px;height:56px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;font-family:var(--display);font-size:1.3rem;color:var(--pine);position:relative;z-index:2;transition:background .5s,color .5s,border-color .5s}
.step.on .dot{background:var(--pine);color:var(--gold);border-color:var(--pine)}
.step h4{margin:20px 0 6px;font-size:1.05rem}
.step p{font-size:.88rem;color:var(--mute)}
.after{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.after div{border:1px dashed rgba(181,86,44,.45);border-radius:16px;padding:22px}
.after b{display:block;font-family:var(--display);font-size:1.3rem;margin-bottom:4px}
.after span{color:var(--mute);font-size:.92rem}

/* calc */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:28px;overflow:hidden;margin-top:56px;box-shadow:0 30px 80px rgba(16,36,28,.14)}
.calc .in{background:var(--cream);padding:46px}
.calc .out{background:var(--pine);color:var(--cream);padding:46px;display:flex;flex-direction:column;justify-content:space-between}
.ctrl{margin-bottom:30px}
.ctrl label{display:flex;justify-content:space-between;font-weight:600;margin-bottom:12px}
.ctrl label output{font-family:var(--display);font-size:1.5rem;color:var(--clay)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--clay) var(--p,50%),rgba(16,36,28,.15) var(--p,50%));outline:none}
html[dir=rtl] input[type=range]{background:linear-gradient(-90deg,var(--clay) var(--p,50%),rgba(16,36,28,.15) var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--pine);border:4px solid var(--gold);cursor:pointer}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--pine);border:4px solid var(--gold);cursor:pointer}
.big{font-family:var(--display);font-size:clamp(2.8rem,5vw,4.4rem);color:var(--gold);line-height:1}
.rows{display:grid;gap:14px;margin:26px 0}
.rows div{display:flex;justify-content:space-between;border-bottom:1px solid rgba(244,239,229,.12);padding-bottom:10px}
.rows b{font-family:var(--display);font-size:1.25rem}
.bars{display:flex;align-items:flex-end;gap:4px;height:90px;margin-top:10px}
.bars i{flex:1;background:var(--gold);opacity:.85;border-radius:3px 3px 0 0;transition:height .5s var(--ease)}
.bars i.cap{background:var(--clay)}
.note{font-size:.78rem;opacity:.6;margin-top:16px;line-height:1.5}

/* region */
.region{display:grid;grid-template-columns:1fr 1.25fr;gap:50px;margin-top:56px;align-items:stretch}
#map{height:560px;border-radius:var(--r);overflow:hidden;z-index:1;border:1px solid var(--line)}
.places{display:grid;gap:10px;max-height:560px;overflow:auto;padding-inline-end:6px}
.place{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border-radius:16px;border:1px solid var(--line);cursor:pointer;transition:background .3s,border-color .3s,transform .3s}
.place:hover,.place.on{background:var(--cream);border-color:var(--clay);transform:translateX(0) scale(1.01)}
.place .ic{flex:0 0 44px;height:44px;border-radius:12px;background:var(--pine);color:var(--gold);display:grid;place-items:center;font-size:1.25rem}
.place h4{font-size:1.02rem}
.place p{font-size:.86rem;color:var(--mute)}
.place .km{margin-inline-start:auto;font-size:.78rem;color:var(--clay);white-space:nowrap;font-weight:700}
.pin{width:34px;height:34px;border-radius:50% 50% 50% 0;background:var(--pine);transform:rotate(-45deg);display:grid;place-items:center;border:3px solid var(--gold);box-shadow:0 6px 14px rgba(0,0,0,.3)}
.pin span{transform:rotate(45deg);font-size:15px}
.pin.home{background:var(--clay)}
.leaflet-popup-content{font-family:var(--body);font-size:.9rem}

/* history */
.hist{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 4vw 30px;margin-top:50px;scrollbar-width:none}
.hist::-webkit-scrollbar{display:none}
.era{flex:0 0 min(380px,80vw);scroll-snap-align:start;background:var(--cream);border-radius:var(--r);padding:34px;position:relative;min-height:300px;display:flex;flex-direction:column}
.era .yr{font-family:var(--display);font-size:3.2rem;color:var(--clay);line-height:1}
.era h3{font-size:1.5rem;margin:14px 0 10px}
.era p{color:var(--mute);font-size:.95rem}
.era .art{margin-top:auto;height:70px;opacity:.9}
.histnav{display:flex;gap:10px;justify-content:flex-end}
.histnav button{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:1.2rem;transition:background .3s}
.histnav button:hover{background:var(--pine);color:var(--gold)}

/* season */
.season{display:grid;grid-template-columns:1.4fr 1fr;gap:50px;margin-top:50px;align-items:center}
.chart{background:var(--paper);color:var(--ink);border-radius:var(--r);padding:34px}
.chart .cols{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;height:260px;align-items:end;direction:ltr}
.chart .col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;cursor:default}
.chart .col i{width:100%;border-radius:8px 8px 3px 3px;height:0;transition:height 1.2s var(--ease)}
.chart .col i.w{background:linear-gradient(#8fb4c9,#4e7d97)}
.chart .col i.s{background:linear-gradient(var(--gold),var(--clay))}
.chart .col i.m{background:linear-gradient(#9bb59d,var(--moss))}
.chart .col em{font-style:normal;font-size:.72rem;color:var(--mute);margin-top:8px}
.chart .col b{position:absolute;top:-4px;font-size:.72rem;opacity:0;transition:opacity .3s}
.chart .col:hover b{opacity:1}
.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;font-size:.85rem}
.legend span{display:flex;align-items:center;gap:7px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.seasons{display:grid;gap:16px}
.seasons div{border-inline-start:3px solid var(--gold);padding:6px 0 6px 18px;padding-inline-start:18px}
.seasons b{font-family:var(--display);font-size:1.4rem;display:block}
.seasons span{opacity:.75;font-size:.95rem}

/* plots */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-top:40px}
.filters button{border:1px solid var(--line);background:none;border-radius:99px;padding:.6em 1.3em;cursor:pointer;transition:all .3s}
.filters button.on{background:var(--pine);color:var(--cream);border-color:var(--pine)}
.plots{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:30px}
.plot{border-radius:var(--r);overflow:hidden;background:var(--cream);transition:transform .5s var(--ease),box-shadow .5s;display:flex;flex-direction:column}
.plot:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(16,36,28,.16)}
.plot .pic{height:250px;position:relative;overflow:hidden}
.plot .pic svg{position:absolute;inset:0;width:100%;height:100%;transition:transform 1.2s var(--ease)}
.plot:hover .pic svg{transform:scale(1.06)}
.plot .badge{position:absolute;top:18px;inset-inline-start:18px;background:rgba(251,248,242,.92);border-radius:99px;padding:5px 12px;font-size:.75rem;font-weight:700;z-index:2}
.plot .ex{position:absolute;top:18px;inset-inline-end:18px;background:var(--clay);color:#fff;border-radius:99px;padding:5px 12px;font-size:.7rem;font-weight:700;z-index:2;letter-spacing:.06em}
.plot .bd{padding:28px 30px 30px;display:flex;flex-direction:column;flex:1}
.plot h3{font-size:1.6rem}
.plot p{color:var(--mute);font-size:.94rem;margin:8px 0 18px}
.specs{display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin-top:auto;font-size:.86rem}
.specs b{display:block;font-family:var(--display);font-size:1.2rem}
.plot .more{margin-top:20px;font-weight:700;color:var(--clay);display:inline-flex;gap:.5em;cursor:pointer;background:none;border:0;padding:0}
.hide{display:none!important}

/* about */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.portrait{aspect-ratio:4/5;border-radius:200px 200px var(--r) var(--r);background:linear-gradient(170deg,var(--moss),var(--pine));position:relative;overflow:hidden;display:grid;place-items:center;color:var(--gold)}
.portrait .ini{font-family:'Cormorant Garamond',serif;font-size:8rem;font-weight:700;letter-spacing:.06em}
.portrait small{position:absolute;bottom:26px;inset-inline:0;text-align:center;color:var(--cream);opacity:.7;font-size:.8rem;letter-spacing:.2em}
.quote{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.3;margin:24px 0}
.creds{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:30px}
.creds div{background:var(--cream);border-radius:16px;padding:20px}
.creds b{display:block;font-size:1rem;margin-bottom:4px}
.creds span{font-size:.88rem;color:var(--mute)}

/* faq */
.faq{max-width:900px;margin:50px auto 0}
.q{border-bottom:1px solid var(--line)}
.q button{width:100%;text-align:start;background:none;border:0;padding:26px 0;font-family:var(--display);font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:700;display:flex;justify-content:space-between;gap:20px;cursor:pointer;color:var(--ink)}
.q button i{font-style:normal;transition:transform .4s var(--ease);color:var(--clay);font-size:1.6rem;line-height:1}
.q.open button i{transform:rotate(45deg)}
.q .a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.q .a p{padding-bottom:26px;color:var(--mute)}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:60px}
.contact form{background:var(--paper);color:var(--ink);border-radius:28px;padding:44px;display:grid;gap:18px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px;color:var(--mute)}
.fld input,.fld select,.fld textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px;outline:none;transition:border-color .3s,box-shadow .3s;color:var(--ink)}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--clay);box-shadow:0 0 0 4px rgba(181,86,44,.1)}
.fld textarea{min-height:110px;resize:vertical}
.err{color:#b3261e;font-size:.8rem;margin-top:5px;min-height:1em}
.ok{background:var(--moss);color:var(--cream);border-radius:16px;padding:22px;display:none}
.consent{display:flex;gap:10px;font-size:.84rem;color:var(--mute);align-items:flex-start}
.consent input{margin-top:5px}
.cinfo{display:grid;gap:22px;margin-top:40px}
.cinfo div{display:flex;gap:16px;align-items:center}
.cinfo .ic{width:52px;height:52px;border-radius:50%;border:1px solid rgba(244,239,229,.25);display:grid;place-items:center;color:var(--gold);font-size:1.2rem}

footer{background:#0b1813;color:rgba(244,239,229,.6);padding:70px 0 34px;font-size:.88rem}
footer .big2{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,8.6vw,8.4rem);color:var(--cream);opacity:.08;line-height:.9;letter-spacing:.06em;font-weight:700;white-space:nowrap;overflow:hidden}
.fgrid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-top:30px;border-top:1px solid rgba(244,239,229,.1);padding-top:26px}
.disc{max-width:760px;font-size:.78rem;line-height:1.6;opacity:.75}

/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}

/* modal */
.modal{position:fixed;inset:0;background:rgba(11,24,19,.7);backdrop-filter:blur(6px);z-index:200;display:none;place-items:center;padding:20px}
.modal.open{display:grid}
.modal .box{background:var(--paper);border-radius:26px;max-width:620px;width:100%;padding:40px;position:relative;max-height:90vh;overflow:auto}
.modal .x{position:absolute;top:16px;inset-inline-end:18px;background:none;border:0;font-size:1.8rem;cursor:pointer}

.wa{position:fixed;bottom:22px;inset-inline-end:22px;z-index:60;background:var(--clay);color:#fff;border-radius:99px;padding:14px 20px;font-weight:700;box-shadow:0 14px 30px rgba(181,86,44,.4);display:flex;gap:8px;align-items:center;transform:translateY(120px);transition:transform .5s var(--ease)}
.wa.show{transform:none}

@media (max-width:980px){
  .menu{display:none}
  .menu.open{display:flex;flex-direction:column;position:absolute;top:100%;inset-inline:0;background:var(--pine);padding:24px 6vw;gap:18px}
  .burger{display:block}
  .right .btn{display:none}
  .stats{grid-template-columns:repeat(2,1fr)}
  .why,.calc,.region,.season,.about,.contact{grid-template-columns:1fr}
  .models,.after{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;gap:30px}
  .steps::before,.steps .bar{display:none}
  .plots{grid-template-columns:1fr}
  #map{height:420px}
  .f2,.creds{grid-template-columns:1fr}
  .calc .in,.calc .out,.contact form{padding:30px}
}