@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Prata&display=swap');
:root{--ink:#242321;--muted:#77736e;--line:#dcd9d4;--bg:#f7f6f3;--serif:Georgia,'Times New Roman',serif;--sans:Manrope,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.container{width:min(1440px,calc(100% - 112px));margin-inline:auto}.site-header{background:#f7f6f3}.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:26px}.brand{display:flex;align-items:center;gap:22px;flex-shrink:0}.brand img{width:35px;height:49px;object-fit:contain}.brand-divider{height:35px;width:1px;background:#555}.brand-name{font-size:13px;font-weight:700;letter-spacing:.36em;white-space:nowrap}.nav{display:flex;gap:38px;align-items:center;margin-left:auto;margin-right:42px}.nav a{font-size:12px}.nav a:hover,.contact-info a:hover{text-decoration:underline;text-underline-offset:5px}.btn{min-height:42px;padding:12px 23px;display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid transparent;font-size:12px;font-weight:600;transition:background .2s,color .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn-dark{background:#242321;color:#fff}.btn-outline{border-color:#81838a;background:transparent}.btn-light{background:#fff;color:#242321}.menu-toggle{display:none}.hero{overflow:hidden;background:linear-gradient(115deg,#f7f6f3 35%,#eeece8)}.hero-layout{position:relative;min-height:430px;display:flex;align-items:center}.hero-text{width:60%;z-index:2;padding:50px 0 62px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.035em}.with-line{display:flex;align-items:center;gap:16px}.with-line:after{content:'';display:block;width:37px;height:1px;background:#666}.hero h1,.section-side h2,.about h2,.contact h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em}.hero h1{font-size:clamp(43px,4.5vw,76px);line-height:1.02;margin:17px 0 20px;max-width:760px}.hero-lead{font-size:16px;line-height:1.55;max-width:410px;margin:0 0 24px}.hero-actions{display:flex;gap:18px}.hero-visual{position:absolute;right:-5vw;top:0;bottom:0;width:58%;background-image:url('assets/hero.webp');background-size:cover;background-position:50% center;mask-image:linear-gradient(to right,transparent 0%,black 22%);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 22%)}.section{padding:42px 0 66px}.section-kicker{margin:0 0 26px}.section-kicker span{margin:0 18px;color:#666}.works{background:#f7f6f3}.works-layout,.services-layout{display:grid;grid-template-columns:22% minmax(0,1fr);gap:28px}.section-side h2{font-size:clamp(37px,3.6vw,58px);line-height:1.04;margin:16px 0 18px}.section-side p{font-size:14px;line-height:1.5;margin:0}.projects-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:8px;overscroll-behavior-inline:contain}.projects-track::-webkit-scrollbar{display:none}.project-card{flex:0 0 calc((100% - 18px)/2);min-width:0;scroll-snap-align:start}.project-card img{width:100%;aspect-ratio:352/232;object-fit:cover;transition:transform .3s}.project-card a:hover img{transform:scale(1.015)}.project-card>a,.project-image{display:block;overflow:hidden}.project-title{font-family:var(--serif);font-size:26px;letter-spacing:-.03em;margin-top:8px}.project-title span{font-family:var(--sans);font-size:17px}.project-card p{margin:0;font-size:12px}.works-controls{display:flex;gap:9px;margin-top:34px}.slider-arrow{width:38px;height:38px;border:1px solid #a9a9ab;background:transparent;font-size:20px}.slider-arrow:hover{background:#242321;color:#fff}.slider-arrow:disabled{opacity:.35;cursor:default}.preview-note{font-size:10px;color:#777;margin:18px 0 0 24%}.services{background:#f0eeea;border-top:1px solid #dedbd6}.services-layout{align-items:center}.service-list{border-top:1px solid #d7d3cd}.service-list details{border-bottom:1px solid #d7d3cd}.service-list summary{list-style:none;display:grid;grid-template-columns:32px minmax(135px,1.05fr) minmax(165px,1.4fr) minmax(90px,.6fr) 36px;align-items:center;gap:14px;min-height:74px;padding:10px 0;cursor:pointer}.service-list summary::-webkit-details-marker{display:none}.service-number{font-size:12px}.service-name{font:22px/1.12 var(--serif);letter-spacing:-.04em}.service-description{font-size:11px;line-height:1.45;padding-left:15px;border-left:1px solid #bcbfc4}.service-price{font-size:13px;text-align:right;white-space:nowrap}.service-icon{width:33px;height:33px;display:grid;place-items:center;background:#242321;color:#fff;font-size:20px;transition:transform .2s}details[open] .service-icon{transform:rotate(90deg)}.service-details{padding:4px 45px 24px 46px;font-size:13px;line-height:1.65;max-width:650px}.service-details a{text-decoration:underline;text-underline-offset:4px}.about{position:relative;min-height:380px;overflow:hidden;background:#e2e6e6}.about-image{position:absolute;inset:0;background:url('assets/baikal.webp') center center/cover no-repeat}.about:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,246,243,.92) 0%,rgba(247,246,243,.74) 24%,rgba(247,246,243,.12) 59%,transparent 80%);z-index:1}.about-content{position:relative;z-index:2;padding:40px 0 52px}.about h2{font-size:clamp(42px,4.3vw,68px);line-height:1.1;margin:28px 0 10px}.mission{font:clamp(22px,2.1vw,32px)/1.2 var(--serif);letter-spacing:-.03em;margin:0;max-width:550px}.short-line{display:block;width:43px;height:1px;background:#333;margin:22px 0}.about-text{max-width:425px;font-size:12px;line-height:1.55;margin:0}.contact{background:#201f1d;color:#fff;padding:45px 0 48px}.contact-layout{display:grid;grid-template-columns:25% 46% 1fr;gap:32px}.contact h2{font-size:clamp(37px,3.4vw,57px);line-height:1.03;margin:0 0 22px}.contact-intro>p{font-size:12px;line-height:1.6}.contact-form{display:flex;flex-direction:column;gap:10px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contact input:not([type=checkbox]),.contact textarea{width:100%;border:1px solid #8e9197;border-radius:0;background:transparent;color:white;padding:12px;font-size:12px;outline-offset:3px}.contact input::placeholder,.contact textarea::placeholder{color:#d1d1d1}.contact textarea{resize:vertical;min-height:85px}.consent{display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.5;color:#ccc}.consent input{accent-color:#fff;margin-top:2px}.contact-form .btn{align-self:flex-start;min-width:230px}.form-help{font-size:10px;line-height:1.45;color:#c1c1c1;margin:0}.contact-info{border-left:1px solid #65676a;padding-left:32px;display:flex;flex-direction:column;gap:15px;font-size:12px}.footer-logo{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:25px;letter-spacing:.27em;font-size:12px;text-align:center}.footer-logo img{filter:invert(1);width:42px;height:56px;object-fit:contain}.footer{background:#191816;color:#bcbcbc;font-size:11px}.footer .container{display:flex;justify-content:space-between;padding-top:16px;padding-bottom:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid #6b83c0;outline-offset:3px}
@media(min-width:1500px){.hero-visual{right:calc((1440px - 100vw)/2)}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}.nav{gap:22px;margin-right:10px}.brand-name{letter-spacing:.2em}.hero-text{width:64%}.hero h1{font-size:clamp(42px,5vw,60px)}.contact-layout{grid-template-columns:24% 48% 1fr;gap:20px}.contact-info{padding-left:18px}.service-list summary{gap:8px;grid-template-columns:25px minmax(110px,1fr) minmax(140px,1.2fr) 82px 32px}}
@media(max-width:760px){.container{width:calc(100% - 36px)}.header-inner{height:68px}.brand{gap:12px}.brand img{width:27px;height:38px}.brand-divider{height:28px}.brand-name{font-size:10px;letter-spacing:.19em}.header-cta{display:none}.menu-toggle{display:flex;width:40px;height:40px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:6px;align-items:center}.menu-toggle span{display:block;width:22px;height:1px;background:#242321}.nav{display:none;position:absolute;top:68px;left:0;right:0;z-index:20;background:#f7f6f3;padding:20px 18px 24px;box-shadow:0 14px 18px #00000013;margin:0;flex-direction:column;align-items:flex-start;gap:20px}.nav.is-open{display:flex}.nav a{font-size:15px}.hero-layout{min-height:690px;align-items:flex-start}.hero-text{width:100%;padding:45px 0 0}.hero h1{font-size:clamp(42px,9.6vw,62px);max-width:570px}.desktop-br{display:none}.hero-lead{font-size:14px;max-width:330px}.hero-visual{top:auto;bottom:0;left:-18px;right:-18px;width:calc(100% + 36px);height:330px;background-position:center 47%;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 16%);mask-image:linear-gradient(to bottom,transparent 0%,black 16%)}.hero-actions{gap:10px}.hero-actions .btn{padding:12px 13px;font-size:11px}.section{padding:35px 0 45px}.works-layout,.services-layout{display:block}.section-side h2{font-size:43px;margin:0 0 12px}.section-side p{font-size:13px}.works-controls{margin:17px 0}.projects-track{margin-right:-18px;padding-right:18px;gap:12px}.project-card{flex-basis:84%;max-width:450px}.project-title{font-size:26px}.preview-note{margin:13px 0 0}.services-layout .section-side{margin-bottom:25px}.service-list summary{grid-template-columns:24px minmax(0,1fr) 34px;gap:9px;min-height:76px}.service-name{font-size:22px}.service-description{grid-column:2;grid-row:2;border:0;padding:0;font-size:11px}.service-price{grid-column:2;grid-row:3;text-align:left;font-size:11px;color:#555}.service-icon{grid-column:3;grid-row:1/4;align-self:center}.service-details{padding:0 40px 20px 32px}.about{min-height:490px}.about-image{background-position:60% center}.about:before{background:linear-gradient(90deg,rgba(247,246,243,.93),rgba(247,246,243,.66) 60%,rgba(247,246,243,.18))}.about-content{padding:37px 0 55px}.about h2{font-size:clamp(38px,9vw,56px);margin-top:34px}.mission{font-size:25px}.about-text{max-width:320px}.contact-layout{display:block}.contact-intro{margin-bottom:26px}.contact h2{font-size:47px}.contact-form{margin-bottom:32px}.contact-info{border-left:0;border-top:1px solid #555;padding:22px 0 0}.footer-logo{align-self:flex-start;align-items:flex-start;margin-top:10px}.footer-logo span{text-align:left}.form-fields{grid-template-columns:1fr}}
@media(max-width:380px){.brand-name{font-size:9px;letter-spacing:.13em}.hero-layout{min-height:680px}.hero h1{font-size:40px}.hero-actions .btn{padding:10px}.about h2{font-size:37px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.projects-track{scroll-behavior:auto}}

/* Warm Editorial refinement */
.btn svg,.project-title svg{vertical-align:middle;flex-shrink:0;transition:transform .25s ease}.btn:hover svg,.project-card a:hover .project-title svg{transform:translate(2px,-2px)}
.slider-arrow{display:inline-flex;align-items:center;justify-content:center;color:var(--ink);border-color:#c6c2bc;background:transparent;transition:background .25s,color .25s,border-color .25s}.slider-arrow:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.service-icon{background:transparent;color:var(--ink);border:1px solid #bcb8b1}.service-icon svg{transition:transform .3s ease}details[open] .service-icon{transform:none}details[open] .service-icon svg{transform:rotate(45deg)}.service-list summary:hover .service-name{opacity:.65}.service-list summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.works,.services{transition:background-color .3s}.project-card img{aspect-ratio:4/3;object-fit:cover}.project-card a:hover img{transform:scale(1.035)}.project-card a{overflow:visible}.project-card .project-title{display:flex;align-items:center;gap:8px}.project-card .project-title svg{width:16px;height:16px}
.hero-visual{filter:saturate(.83)}.hero h1{letter-spacing:-.055em}.about-image{background-position:center 56%}.about:before{pointer-events:none}
.contact input:not([type=checkbox]),.contact textarea{border-color:#706e6b;transition:border-color .2s,background .2s}.contact input:not([type=checkbox]):focus,.contact textarea:focus{border-color:#f7f6f3;background:#ffffff09}.contact-form .btn{min-height:47px}.contact-info a{overflow-wrap:anywhere}.footer-logo img{filter:invert(1)}
@media(max-width:760px){.hero-visual{height:310px;background-position:center center}.hero-layout{min-height:665px}.project-card{flex-basis:88%}.about-image{background-position:60% center}.contact{padding-top:54px}.contact h2{font-size:clamp(40px,10vw,54px)}.slider-arrow{width:43px;height:43px}}
@media(min-width:761px){.reveal{animation:gentle-in .65s both}.hero-visual{width:57%}}@keyframes gentle-in{from{opacity:.82;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.reveal{animation:none!important}}

/* V2.3 — hero composition correction: source image remains intact */
@media (min-width: 761px) {
  .hero { background: #f7f6f3; }
  .hero-layout { min-height: clamp(450px, 35vw, 565px); isolation: isolate; }
  .hero-text { width: 54%; max-width: 690px; padding: 55px 0 66px; position: relative; z-index: 2; }
  .hero h1 { font-size: clamp(43px, 4.15vw, 67px); line-height: 1.045; max-width: 650px; text-wrap: balance; }
  .hero-visual {
    width: 66%; top: 0; bottom: 0; right: calc((min(1440px, 100vw - 112px) - 100vw) / 2);
    background-image: url('assets/hero.webp');
    background-size: cover;
    background-position: 57% 52%;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.15) 13%, rgba(0,0,0,.65) 27%, #000 43%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.15) 13%, rgba(0,0,0,.65) 27%, #000 43%);
    z-index: 1;
  }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .hero-text { width: 56%; }
  .hero h1 { font-size: clamp(40px, 4.5vw, 51px); }
  .hero-visual { right: -32px; width: 64%; background-position: 56% center; }
}
@media (max-width: 760px) {
  .hero { background: #f7f6f3; }
  .hero-layout { display: flex; flex-direction: column; min-height: 0; }
  .hero-text { width: 100%; padding: 45px 0 32px; z-index: 2; }
  .hero h1 { font-size: clamp(39px, 9.3vw, 59px); line-height: 1.06; max-width: 600px; overflow-wrap: normal; }
  .hero-visual {
    position: relative; top: auto; bottom: auto; left: 50%; right: auto;
    transform: translateX(-50%); width: 100vw; height: auto;
    aspect-ratio: 1.64; flex-shrink: 0;
    background-size: cover; background-position: 56% 51%;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 15%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 15%);
  }
}
@media (max-width: 380px) {
  .hero h1 { font-size: 37px; }
  .hero-actions { flex-wrap: wrap; }
}

/* V2.4: fix hero text ghosting by eliminating column overlap */
@media (min-width: 761px) {
 .hero-layout{display:grid;grid-template-columns:minmax(0,45%) minmax(0,55%);align-items:center;min-height:clamp(420px,32vw,520px);isolation:isolate}
 .hero-text{grid-column:1;position:relative;z-index:2;width:100%;max-width:none;padding:48px 12px 54px 0}
 .hero h1{font-size:clamp(39px,3.75vw,60px);line-height:1.045;max-width:100%;overflow-wrap:normal;text-wrap:pretty;letter-spacing:-.052em}
 .hero-visual{position:relative;grid-column:2;right:auto;left:auto;top:auto;bottom:auto;width:calc(100% + max(0px,(100vw - min(1440px,100vw - 112px))/2));height:100%;min-height:420px;background-size:cover;background-position:52% center;mask-image:linear-gradient(to right,transparent 0%,#000 13%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 13%);z-index:1}
}
@media (min-width:761px) and (max-width:1100px){.hero-layout{grid-template-columns:minmax(0,48%) minmax(0,52%)}.hero h1{font-size:clamp(37px,4vw,48px)}.hero-visual{right:auto;width:calc(100% + 32px);background-position:55% center}}
@media (max-width:760px){.hero-text{position:relative}.hero-visual{background-position:58% center}.hero h1{overflow-wrap:break-word}}
