@font-face{font-family:"City Sans";src:url("assets/fonts/manrope-cyrillic.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}

@font-face{font-family:"City Serif";src:url("assets/fonts/literata-cyrillic.woff2") format("woff2");font-weight:400 700;font-style:normal italic;font-display:swap}


:root{
  --ground:#e8efcf;--surface:#fff9eb;--surface-raised:#fffdf6;--surface-warm:#f3e2c4;
  --ink:#253a34;--ink-muted:#637269;--ink-faint:#879188;--accent:#c94f39;--accent-active:#aa3e2d;--on-accent:#fffdf6;
  --roof:#e88962;--roof-light:#f1b174;--park:#6e9d67;--park-light:#a6c97f;--sky:#dceeed;--road:#c8c0aa;--water:#70b2b6;--wood:#967156;
  --line:#c7c8b6;--line-strong:#89958a;--shadow:rgb(53 60 51/.16);--shadow-strong:rgb(39 45 39/.28);--wash:rgb(255 253 246/.9);
  --focus:#8b251b;--error:#9b3026;--selection:#f1c29e;--font-sans:"City Sans",system-ui,sans-serif;--font-serif:"City Serif",Georgia,serif;
  --ease:cubic-bezier(.22,.61,.36,1);--radius:.32rem;--nav-height:4.5rem;--copy:min(34rem,36vw);color-scheme:light
}


*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--surface)}
body{margin:0;min-width:20rem;overflow-x:clip;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:clamp(.98rem,.32vw + .91rem,1.1rem);line-height:1.52;text-rendering:optimizeLegibility}

::selection{background:var(--selection);color:var(--ink)}
a{color:inherit;text-underline-offset:.2em}
button,input,textarea{font:inherit}
a,button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:.18rem solid var(--focus);outline-offset:.24rem}

.skip-link{position:fixed;z-index:100;top:.7rem;left:.7rem;padding:.65rem .9rem;transform:translateY(-180%);background:var(--ink);color:var(--surface);transition:transform .18s var(--ease)}
.skip-link:focus{transform:none}


.site-nav{position:fixed;z-index:50;inset:0 0 auto;height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 clamp(1.2rem,4vw,4.6rem);background:linear-gradient(to bottom,var(--surface-raised),transparent);pointer-events:none}
.site-nav a{pointer-events:auto}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:780;letter-spacing:-.03em;text-decoration:none}
.brand svg{width:2.15rem;height:2.15rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.nav-links{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.4rem)}
.nav-links a{font-size:.78rem;font-weight:720;text-decoration:none}
.nav-links a:not(.nav-cta){border-bottom:1px solid transparent}
.nav-links a:not(.nav-cta):hover{border-color:currentColor}
.nav-cta{min-height:2.7rem;display:inline-flex;align-items:center;padding:.55rem .9rem;border:1px solid var(--ink);transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}
.nav-cta:hover{background:var(--ink);color:var(--surface);transform:translateY(-1px)}


.story-rail{position:fixed;z-index:40;right:clamp(.85rem,2.2vw,2.5rem);top:50%;display:flex;align-items:center;gap:.7rem;transform:translateY(-50%) rotate(90deg);transform-origin:center;color:var(--ink-muted);font-size:.65rem;font-style:normal;letter-spacing:.1em;text-transform:uppercase}
.rail-line{position:relative;width:8rem;height:1px;background:var(--line);overflow:hidden}
.rail-fill{position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left}
.rail-label b{color:var(--ink)}


.scene{position:fixed;z-index:0;inset:0;overflow:hidden;background:radial-gradient(75% 65% at 72% 20%,var(--surface-raised),transparent 70%),linear-gradient(to bottom,var(--surface) 0 42%,var(--sky) 72%,var(--ground))}
.scene canvas{display:block;width:100%;height:100%}
.scene-atmosphere{position:absolute;inset:0;pointer-events:none;background:radial-gradient(125% 96% at 52% 42%,transparent 46%,var(--shadow) 130%);opacity:.34}
.paper-grain{position:absolute;z-index:60;inset:-20%;pointer-events:none;opacity:.055;background-image:radial-gradient(circle at 20% 30%,var(--ink) 0 .45px,transparent .65px),radial-gradient(circle at 70% 60%,var(--ink) 0 .45px,transparent .65px);background-size:8px 11px,13px 9px;transform:rotate(.001deg)}

.cursor-flag{position:fixed;z-index:70;left:0;top:0;width:1.7rem;height:2.3rem;opacity:0;pointer-events:none;transform:translate3d(-4rem,-4rem,0)}
.cursor-flag::before{content:"";position:absolute;left:.35rem;top:.3rem;width:1px;height:1.75rem;background:var(--ink)}
.cursor-flag i{position:absolute;left:.4rem;top:.3rem;width:1.1rem;height:.75rem;background:var(--accent);clip-path:polygon(0 0,100% 20%,72% 100%,0 80%)}


main{position:relative;z-index:10}
.chapter{position:relative;min-height:136svh;padding:var(--nav-height) clamp(1.25rem,7vw,7rem) 18svh;display:grid;align-items:start;pointer-events:none}
.chapter::before{content:"";min-height:16svh}
.chapter-copy{position:sticky;top:16svh;width:var(--copy);pointer-events:auto}
.chapter-copy-left{justify-self:start}
.chapter-copy-right{justify-self:end}
.chapter-copy-center{justify-self:center;top:11svh;width:min(51rem,72vw);text-align:center}
.chapter-copy>*{opacity:.32;transform:translate3d(0,1rem,0);transition:opacity .86s var(--ease),transform 1.05s var(--ease),filter 1s var(--ease)}
.chapter.is-active .chapter-copy>*{opacity:1;transform:none}
.chapter.is-retiring .chapter-copy>*{opacity:0;transform:translate3d(0,8vh,0) scale(.98);filter:blur(18px)}
.chapter-copy>:nth-child(2){transition-delay:90ms}
.chapter-copy>:nth-child(3){transition-delay:180ms}
.chapter-copy>:nth-child(4){transition-delay:270ms}
.chapter-hero{min-height:145svh}
.chapter-final{min-height:150svh;padding-bottom:5rem}


.eyebrow{margin:0 0 1rem;color:var(--ink-muted);font-size:.68rem;font-weight:780;letter-spacing:.14em;line-height:1.3;text-transform:uppercase}
h1,h2{margin:0;font-weight:740;letter-spacing:-.058em;line-height:.97;text-wrap:balance}
h1{max-width:12ch;font-size:clamp(3.2rem,5.7vw,6.7rem)}
h2{font-size:clamp(2.5rem,4.3vw,5.35rem)}
h1+p,h2+p{margin-top:1.45rem}
h2 em{font-family:var(--font-serif);font-weight:500;color:var(--accent)}
p{max-width:36rem}
.lead{max-width:30rem;color:var(--ink-muted);font-size:clamp(1.05rem,.42vw + .95rem,1.3rem)}

.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.button{min-height:3rem;display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.1rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);font-weight:740;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease)}
.button:hover{transform:translate(-1px,-2px);box-shadow:.28rem .35rem 0 var(--shadow)}
.button:active{transform:none;box-shadow:none}
.button-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.button-primary:hover{background:var(--accent-active)}
.button-quiet{background:transparent}
.scroll-cue{margin-top:clamp(3rem,8vh,6rem);color:var(--ink-muted);font-size:.76rem;font-weight:680}
.scroll-cue span{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;margin-right:.35rem;border:1px solid var(--line-strong);transform:rotate(-5deg)}


.model-sheet,.form-board{padding:clamp(1.3rem,2.4vw,2.35rem);background:var(--wash);border:1px solid var(--line-strong);box-shadow:.65rem .75rem 0 var(--shadow);transform:rotate(.45deg)}
.model-sheet::before,.form-board::before{content:"";position:absolute;z-index:-1;inset:.45rem -.45rem -.45rem .45rem;border:1px solid var(--line);background:var(--surface-warm)}
.build-list{margin:1.55rem 0 0}
.build-list div{display:grid;grid-template-columns:6rem 1fr;gap:1rem;padding:.58rem 0;border-top:1px solid var(--line)}
.build-list dt{font-weight:760}
.build-list dd{margin:0;color:var(--ink-muted)}

.margin-note{max-width:25rem;margin-top:1.8rem;padding:.8rem 1rem;border-left:.2rem solid var(--accent);background:var(--wash);color:var(--ink-muted);font-family:var(--font-serif);font-style:italic}
.service-lines{margin:1.6rem 0 0;padding:0;list-style:none}
.service-lines li{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.6rem 0;border-top:1px solid var(--line)}
.service-lines span{font-weight:760}
.service-lines small{color:var(--ink-muted)}

.chapter-panorama h2{font-size:clamp(3rem,6vw,7.25rem)}
.chapter-panorama p:not(.eyebrow){margin-inline:auto}
.works-copy{top:9svh}
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.35rem}
.work-building{position:relative;min-height:5.2rem;display:grid;align-content:center;gap:.2rem;padding:.78rem .9rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);text-align:left;cursor:pointer;box-shadow:.35rem .42rem 0 var(--shadow);transition:transform .24s var(--ease),background .24s var(--ease),box-shadow .24s var(--ease)}
.work-building::before{content:"";position:absolute;left:.6rem;top:-.38rem;width:42%;height:.38rem;background:var(--roof);transform:skewX(-38deg);border:1px solid var(--ink);border-bottom:0}
.work-building:nth-child(even)::before{background:var(--roof-light)}
.work-building:hover,.work-building:focus-visible{transform:translate(-2px,-3px);background:var(--surface-warm);box-shadow:.48rem .58rem 0 var(--shadow)}
.work-building span{font-weight:780;line-height:1.15}
.work-building small{color:var(--ink-muted)}


.form-board{width:min(38rem,43vw);top:6svh;transform:rotate(-.35deg)}
.form-board h2{font-size:clamp(2.6rem,4vw,4.8rem)}
form{margin-top:1.45rem}
.field{display:grid;gap:.38rem;margin-bottom:.95rem}
.field label{font-size:.78rem;font-weight:780}
.field input,.field textarea{width:100%;padding:.75rem .82rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);resize:vertical;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 .18rem var(--selection)}
.field [aria-invalid="true"]{border-color:var(--error)}
.field-hint,.field-error{min-height:1em;font-size:.69rem;line-height:1.35}
.field-hint{color:var(--ink-muted)}
.field-error{color:var(--error)}
.submit-button{width:100%;margin-top:.35rem}
.form-status{min-height:1.35em;margin:.65rem 0 0;color:var(--accent);font-size:.76rem;font-weight:720}
.privacy-note{margin:.3rem 0 0;color:var(--ink-muted);font-size:.67rem}
.site-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:2.2rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--ink-muted);font-size:.7rem}


.case-dialog{width:min(39rem,calc(100vw - 2rem));max-height:min(43rem,calc(100svh - 2rem));overflow:auto;padding:clamp(1.4rem,3vw,2.5rem);border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);box-shadow:.8rem 1rem 0 var(--shadow-strong)}
.case-dialog::backdrop{background:var(--shadow-strong)}
.case-dialog h2{margin-bottom:1.25rem;font-size:clamp(2rem,4vw,3.5rem)}
.case-dialog h3{margin:1.15rem 0 .3rem;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}
.case-dialog p{color:var(--ink-muted)}
.dialog-close{position:absolute;right:1rem;top:1rem;width:2.75rem;height:2.75rem;border:1px solid var(--line-strong);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;font-size:1.5rem}
.dialog-done{margin-top:1.1rem}


.no-js .scene,.no-js .story-rail{display:none}
.no-js .chapter{min-height:auto;padding-block:5rem;background:var(--surface)}
.no-js .chapter-copy{position:relative;top:auto}
.no-js .chapter-copy>*{opacity:1;transform:none}
.no-js-poster{position:relative;z-index:5;max-width:34rem;margin:5.8rem auto 1rem;padding:1rem}
.no-js-poster img{display:block;width:100%;height:auto}

@media(pointer:fine){.js .cursor-flag{opacity:1}
}


@media(max-width:820px){:root{--nav-height:3.8rem;--copy:min(100%,31rem)}
.site-nav{padding-inline:1rem}
.brand svg{width:1.8rem;height:1.8rem}
.nav-links>a:not(.nav-cta){display:none}
.nav-cta{min-height:2.45rem;padding-inline:.72rem}
.story-rail{right:-2.4rem}
.chapter{min-height:123svh;padding:var(--nav-height) 1.15rem 14svh}
.chapter::before{min-height:50svh}
.chapter-copy,.chapter-hero .chapter-copy,.works-copy,.form-board{position:relative;top:auto;width:min(100%,31rem);justify-self:start}
.chapter-copy-right{justify-self:end}
.chapter-copy-center{width:100%;text-align:left}
.chapter-hero{padding-top:16svh}
.chapter-hero::before{display:none}
h1{font-size:clamp(3rem,14vw,4.45rem)}
h2,.chapter-panorama h2{font-size:clamp(2.55rem,12vw,4rem)}
.model-sheet,.form-board{padding:1.2rem;transform:none}
.model-sheet{margin-top:-8svh}
.paper-grain{opacity:.038}
}

@media(max-width:820px){.chapter-copy{isolation:isolate}
.chapter-copy:not(.model-sheet):not(.form-board)::before{content:"";position:absolute;z-index:-1;inset:-1.2rem -1rem;background:linear-gradient(180deg,var(--wash) 0 76%,transparent);pointer-events:none}
}

@media(max-width:420px){body{font-size:.98rem}
.chapter{padding-inline:1rem}
.chapter::before{min-height:52svh}
.actions{display:grid}
.button{width:100%}
.work-grid{grid-template-columns:1fr}
.work-building{min-height:4.5rem}
.scroll-cue{margin-top:2.5rem}
.site-footer{flex-direction:column}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
.chapter-copy>*,.chapter.is-retiring .chapter-copy>*{opacity:1;transform:none;filter:none}
.cursor-flag{display:none}
}

@media(prefers-contrast:more){:root{--line:var(--ink-muted);--line-strong:var(--ink)}
.scene-atmosphere,.paper-grain{display:none}
}

@media print{.scene,.site-nav,.story-rail{display:none}
.chapter{min-height:auto;break-inside:avoid;padding:2rem 0}
.chapter-copy{position:static;width:100%}
.chapter-copy>*{opacity:1;transform:none}
}
