:root{--paper:oklch(96% .008 80);--ink:oklch(18% .01 70);--muted:oklch(53% .012 70);--line:oklch(84% .01 80);--accent:oklch(52% .2 29);--max:1440px;--pad:clamp(20px,4vw,64px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.45}img{display:block;width:100%;background:#ddd}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.site-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;gap:32px;height:72px;padding:0 var(--pad);border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--paper) 94%,transparent);backdrop-filter:blur(12px)}.logo{font-size:24px;font-weight:800;letter-spacing:-.08em}.logo span{color:var(--accent)}.main-nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:14px}.main-nav a:not(.nav-cta):hover,.back-link:hover{text-decoration:underline;text-underline-offset:5px}.nav-cta{padding:11px 16px;background:var(--ink);color:var(--paper)}.menu-toggle{display:none;border:0;background:none;font:inherit}.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:calc(100dvh - 72px);max-width:var(--max);margin:auto;padding:var(--pad);gap:clamp(32px,5vw,80px);align-items:center}.hero-copy h1,.case-hero h1{max-width:9ch;margin:20px 0;font-size:clamp(52px,7vw,112px);line-height:.91;letter-spacing:-.065em}.hero-copy em{font-weight:400}.issue{font-size:12px;text-transform:uppercase;letter-spacing:.12em}.hero-lead{max-width:36ch;font-size:clamp(18px,2vw,25px)}.hero-image img{height:min(72vh,780px);object-fit:cover}.hero-image figcaption,.caption{margin-top:10px;color:var(--muted);font-size:13px}.actions{display:flex;gap:10px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--ink);font-weight:700;white-space:nowrap;transition:transform .18s ease,background .18s ease,color .18s ease}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:var(--paper)}.secondary:hover{background:var(--ink);color:var(--paper)}.section{max-width:var(--max);margin:auto;padding:clamp(72px,10vw,150px) var(--pad);border-top:1px solid var(--line)}.section-title{max-width:800px;margin-bottom:48px}.section-title h2,.section h2,.contact h2,.case-section h2,.next-project h2{margin:0 0 18px;font-size:clamp(38px,5vw,72px);line-height:1;letter-spacing:-.055em}.section-title p{max-width:50ch;color:var(--muted);font-size:18px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px) 24px}.project-card--wide{grid-column:1/-1}.project-card img{aspect-ratio:4/3;object-fit:cover;transition:transform .2s ease}.project-card--wide img{aspect-ratio:2/1}.project-card:hover img{transform:scale(1.01)}.project-info{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid var(--ink)}.project-info b,.project-info small{display:block}.project-info small{margin-top:3px;color:var(--muted)}.project-link{font-size:14px;font-weight:700}.draft-note{max-width:70ch;margin-top:30px;padding:14px;border:1px solid var(--line);color:var(--muted);font-size:13px}.service-list{margin:0;padding:0;list-style:none}.service-list li{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--line)}.service-list h3{margin:0 0 8px;font-size:clamp(24px,3vw,42px);letter-spacing:-.04em}.service-list p{max-width:55ch;margin:0;color:var(--muted)}.process{background:var(--ink);color:var(--paper);max-width:none}.process h2,.process-track{max-width:calc(var(--max) - var(--pad)*2);margin-left:auto;margin-right:auto}.process-track{display:grid;grid-template-columns:repeat(6,1fr);margin-top:50px;border-top:1px solid color-mix(in oklch,var(--paper) 35%,transparent)}.process-track span{padding:18px 8px 0 0;font-size:13px}.team{display:grid;grid-template-columns:2fr 1fr;gap:10vw}.team p{max-width:55ch;font-size:18px}.team-quote{align-self:end;color:var(--accent);font-size:clamp(24px,3vw,38px)!important;line-height:1.1}.contact,.next-project{padding:clamp(80px,12vw,180px) var(--pad);background:var(--accent);color:white}.contact h2{max-width:14ch}.light{border-color:white;background:white;color:var(--accent)}.contact small{display:block;margin-top:16px}footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;padding:40px var(--pad);background:var(--ink);color:var(--paper)}footer p:last-child{text-align:right}.back-link{margin-left:auto}.project-count{font-size:13px}.case-hero{max-width:var(--max);margin:auto;padding:clamp(60px,8vw,120px) var(--pad) var(--pad)}.case-intro{max-width:40ch;font-size:clamp(20px,2.2vw,32px)}.case-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:50px 0 30px}.case-facts div{padding-top:12px;border-top:1px solid var(--ink)}.case-facts dt{font-size:12px;color:var(--muted)}.case-facts dd{margin:5px 0 0;font-size:16px}.case-hero>img{max-height:82vh;object-fit:cover}.case-nav{position:sticky;z-index:10;top:72px;display:flex;gap:25px;overflow:auto;padding:14px var(--pad);border-block:1px solid var(--line);background:var(--paper);white-space:nowrap}.case-nav a:hover{text-decoration:underline;text-underline-offset:4px}.case-section{max-width:var(--max);margin:auto;padding:clamp(70px,10vw,150px) var(--pad);border-bottom:1px solid var(--line)}.case-task,.drawings{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw}.case-task p{max-width:50ch;font-size:18px}.plan-layout{display:grid;grid-template-columns:1.4fr .6fr;gap:5vw;align-items:start}.plan-layout img{object-fit:contain;background:white}.plan-layout li{margin:14px 0}.case-gallery{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.case-gallery img{height:70vh;object-fit:cover}.drawings{background:#e7e7e3}.drawings img{align-self:center}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.material-grid article{padding-top:16px;border-top:1px solid var(--ink)}.swatch{display:block;width:100%;height:160px;margin-bottom:20px}.wood{background:#6e4e36}.stone{background:#d8d4cb}.brass{background:#a68a55}
.ai-method{background:#e7e7e3}.ai-method-intro{display:grid;grid-template-columns:minmax(170px,.45fr) 1.55fr;gap:7vw}.ai-method-intro h2{max-width:15ch}.ai-method-intro p:last-child{max-width:62ch;font-size:18px}.ai-method-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:70px;background:var(--line);border:1px solid var(--line)}.ai-method-steps article{padding:clamp(24px,3vw,44px);background:var(--paper)}.ai-method-steps span{color:var(--accent);font-size:13px}.ai-method-steps h3{margin:45px 0 12px;font-size:clamp(24px,2.5vw,38px);letter-spacing:-.04em}.ai-method-steps p{margin:0;color:var(--muted)}.ai-method-note{max-width:76ch;margin:42px 0 0;font-size:15px}.ai-method-note strong{color:var(--accent)}.team-heading{display:grid;grid-template-columns:1.5fr .5fr;gap:8vw;align-items:end;margin-bottom:60px}.team-heading>div>p{max-width:54ch;color:var(--muted);font-size:18px}.team-portraits{display:grid;grid-template-columns:1.15fr .85fr .7fr;gap:16px;align-items:start}.person img,.portrait-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover}.person:nth-child(2){margin-top:90px}.person:nth-child(3){margin-top:180px}.person>div:last-child{display:grid;grid-template-columns:1fr 1fr;padding-top:14px;border-top:1px solid var(--ink)}.person h3,.person p{margin:0}.person h3{font-size:22px}.person p{font-size:14px}.person small{grid-column:1/-1;max-width:40ch;margin-top:14px;color:var(--muted)}.portrait-placeholder{display:grid;place-items:center;background:var(--ink);color:var(--paper);text-align:center;font-size:13px;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:800px){.site-header{height:64px}.menu-toggle{display:block;margin-left:auto}.main-nav{position:absolute;top:64px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:12px var(--pad) 24px;background:var(--paper);border-bottom:1px solid var(--line)}.main-nav.is-open{display:flex}.main-nav a{padding:14px 0}.nav-cta{text-align:center}.hero{grid-template-columns:1fr;min-height:auto;padding-top:54px}.hero-copy h1,.case-hero h1{font-size:clamp(48px,15vw,74px)}.hero-image{margin:0}.hero-image img{height:55vh}.project-grid{grid-template-columns:1fr}.project-card--wide{grid-column:auto}.project-card--wide img,.project-card img{aspect-ratio:4/3}.project-info{display:block}.project-link{display:inline-block;margin-top:12px}.process-track{grid-template-columns:1fr 1fr;gap:12px}.team,.case-task,.drawings,.plan-layout,.case-gallery,.ai-method-intro,.team-heading{grid-template-columns:1fr}.ai-method-steps,.team-portraits{grid-template-columns:1fr;margin-top:42px}.ai-method-steps h3{margin-top:24px}.person:nth-child(2),.person:nth-child(3){margin-top:38px}.person img,.portrait-placeholder{aspect-ratio:4/5}.case-gallery img{height:auto}.case-facts{grid-template-columns:1fr 1fr}.material-grid{grid-template-columns:1fr}.project-count{display:none}footer{grid-template-columns:1fr;gap:18px}footer p{margin:0}footer p:last-child{text-align:left}.case-nav{top:64px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Full-screen editorial hero. The image layer can later be replaced by a muted room-tour video. */
.home-page{--ink:oklch(20% .015 60);--muted:oklch(52% .018 65);--line:oklch(80% .018 70);--accent:oklch(38% .045 58)}
.home-page .site-header{position:absolute;top:0;left:0;width:100%;height:88px;border-color:oklch(96% .01 75/.35);background:transparent;color:oklch(96% .01 75);backdrop-filter:none}.home-page .site-header .logo span{color:inherit}.home-page .main-nav{font-size:13px}.home-page .main-nav a:not(.nav-cta){text-shadow:0 1px 18px oklch(12% .02 55/.45)}.home-page .nav-cta{border:1px solid oklch(96% .01 75/.72);background:oklch(96% .01 75);color:var(--ink)}.home-page .hero{position:relative;display:block;isolation:isolate;min-height:100dvh;max-width:none;margin:0;padding:0;overflow:hidden;background:oklch(22% .02 55);color:oklch(96% .01 75)}.hero-media{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 54%;background:oklch(22% .02 55);animation:hero-settle 1.4s cubic-bezier(.16,1,.3,1) both}.hero-scrim{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,oklch(12% .025 55/.82) 0%,oklch(12% .025 55/.48) 42%,oklch(12% .025 55/.08) 72%),linear-gradient(0deg,oklch(12% .025 55/.68) 0%,transparent 35%,oklch(12% .025 55/.24) 100%)}.hero-content{position:absolute;left:var(--pad);bottom:clamp(128px,18vh,190px);width:min(850px,76vw)}.hero-kicker{margin:0 0 clamp(22px,3vh,38px);color:oklch(94% .012 75/.82)}.hero-content h1{max-width:none;margin:0;font-size:clamp(58px,8.25vw,148px);font-weight:500;line-height:.82;letter-spacing:-.07em}.hero-content h1 em{display:inline-block;padding-right:.06em;font-weight:400;line-height:1.05}.hero-content .hero-lead{max-width:43ch;margin:clamp(24px,3vh,38px) 0 0;color:oklch(96% .01 75/.88);font-size:clamp(16px,1.35vw,21px)}.hero-content .actions{align-items:center;margin-top:clamp(24px,3.5vh,40px);gap:26px}.hero-content .primary{border-color:oklch(96% .01 75);background:oklch(96% .01 75);color:var(--ink)}.hero-content .primary:hover{background:transparent;color:oklch(96% .01 75)}.hero-text-link{display:inline-flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid oklch(96% .01 75/.65);font-size:14px;font-weight:700}.hero-text-link span{transition:transform .2s cubic-bezier(.16,1,.3,1)}.hero-text-link:hover span{transform:translate(3px,3px)}.hero-meta{position:absolute;right:var(--pad);bottom:34px;display:grid;grid-template-columns:90px 150px 90px;gap:24px;color:oklch(96% .01 75/.78);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.hero-meta a{justify-self:end;border-bottom:1px solid oklch(96% .01 75/.48)}.hero-scroll{position:absolute;bottom:34px;left:var(--pad);display:flex;gap:18px;align-items:center;color:oklch(96% .01 75/.78);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.hero-scroll span{font-size:16px}.home-page .section:first-of-type{border-top:0}@keyframes hero-settle{from{transform:scale(1.035);opacity:.7}to{transform:scale(1);opacity:1}}

@media(max-width:800px){.home-page .site-header{height:68px}.home-page .menu-toggle{color:inherit}.home-page .main-nav{top:68px;background:var(--ink);border-color:oklch(96% .01 75/.24)}.home-page .main-nav a:not(.nav-cta){text-shadow:none}.home-page .hero{min-height:100svh}.hero-media{object-position:58% center}.hero-scrim{background:linear-gradient(90deg,oklch(12% .025 55/.75),oklch(12% .025 55/.16)),linear-gradient(0deg,oklch(12% .025 55/.82) 0%,transparent 62%,oklch(12% .025 55/.38) 100%)}.hero-content{bottom:116px;width:calc(100% - var(--pad)*2)}.hero-kicker{margin-bottom:20px;font-size:10px}.hero-content h1{font-size:clamp(48px,15.5vw,76px);line-height:.88}.hero-content .hero-lead{max-width:31ch;margin-top:22px;font-size:15px}.hero-content .actions{align-items:flex-start;flex-direction:column;gap:10px;margin-top:24px}.hero-content .button{min-height:46px}.hero-text-link{font-size:13px}.hero-meta{right:var(--pad);bottom:24px;display:flex;gap:16px}.hero-meta span:first-child,.hero-meta a{display:none}.hero-scroll{bottom:24px;font-size:0}.hero-scroll span{font-size:18px}}
@media(max-width:800px) and (max-height:700px){.hero-content{bottom:72px}.hero-kicker{margin-bottom:12px}.hero-content h1{font-size:clamp(42px,13.5vw,58px)}.hero-content .hero-lead{margin-top:14px;font-size:13px}.hero-content .actions{flex-direction:row;align-items:center;margin-top:14px}.hero-content .button{min-height:42px;padding-inline:14px;font-size:13px}.hero-text-link{font-size:12px}.hero-meta,.hero-scroll{bottom:16px}}

/* Soft grey-beige sampled from the ARISTODECOR reference. */
:root{--paper:oklch(91.5% .006 80)}

/* Editorial conversation-to-project section */
.home-page .ai-method{background:oklch(27% .025 58);color:var(--paper);border-top:0}.home-page .ai-method-intro{display:block}.home-page .ai-method-intro .issue{margin:0 0 clamp(36px,6vw,80px);color:oklch(91.5% .006 80/.62)}.home-page .ai-method-intro h2{max-width:12ch;margin:0;font-size:clamp(50px,7.4vw,112px);font-weight:500;line-height:.88;letter-spacing:-.065em}.home-page .ai-method-lead{max-width:48ch;margin:clamp(30px,5vw,64px) 0 0 auto;color:oklch(91.5% .006 80/.72);font-size:clamp(17px,1.5vw,22px);line-height:1.5}.home-page .ai-method-steps{display:block;margin:clamp(64px,9vw,130px) 0 0;padding:0;border:0;background:transparent;list-style:none}.home-page .ai-method-step{display:grid;grid-template-columns:70px minmax(220px,1fr) minmax(280px,1.25fr) 120px;gap:clamp(20px,4vw,70px);align-items:center;min-height:154px;padding:30px 0;border-top:1px solid oklch(91.5% .006 80/.3);transition:padding .55s cubic-bezier(.16,1,.3,1),background .55s cubic-bezier(.16,1,.3,1),color .35s ease}.home-page .ai-method-step:last-child{border-bottom:1px solid oklch(91.5% .006 80/.3)}.home-page .ai-method-step h3{margin:0;font-size:clamp(26px,2.7vw,43px);font-weight:500;line-height:1;letter-spacing:-.045em;transition:transform .55s cubic-bezier(.16,1,.3,1)}.home-page .ai-method-step p{max-width:52ch;margin:0;color:oklch(91.5% .006 80/.65);font-size:15px;transition:color .35s ease}.ai-step-index,.ai-step-result{font-size:11px;letter-spacing:.1em;text-transform:uppercase}.ai-step-index{align-self:start;color:oklch(91.5% .006 80/.58)}.ai-step-result{justify-self:end;color:oklch(91.5% .006 80/.62)}.home-page .ai-method-note{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,8vw,120px);max-width:none;margin:clamp(52px,7vw,90px) 0 0;padding-top:24px;border-top:1px solid oklch(91.5% .006 80/.3);font-size:14px}.home-page .ai-method-note p{max-width:52ch;margin:0;color:oklch(91.5% .006 80/.68)}.home-page .ai-method-note strong{color:var(--paper);font-weight:500}

/* Soft scroll reveals. Content stays static when reduced motion is requested. */
.motion-ready .reveal-item{opacity:0;transform:translate3d(0,26px,0);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal-item.is-visible{opacity:1;transform:translate3d(0,0,0)}

/* Tactile states shared across the site */
.project-card img{transform-origin:center;transition:transform .75s cubic-bezier(.16,1,.3,1),filter .5s ease}.project-info,.project-link,.person img,.process-track span{transition:transform .55s cubic-bezier(.16,1,.3,1),color .35s ease,filter .5s ease}.service-list li{transition:padding .55s cubic-bezier(.16,1,.3,1),background .45s ease}.button:active,.nav-cta:active{transform:translateY(1px) scale(.98)}

@media(hover:hover){.project-card:hover img{transform:scale(1.028);filter:saturate(.94) contrast(1.03)}.project-card:hover .project-link{transform:translateX(5px)}.service-list li:hover{padding-right:18px;padding-left:18px;background:color-mix(in oklch,var(--ink) 5%,transparent)}.person:hover img{transform:scale(1.018);filter:saturate(.9) contrast(1.04)}.process-track span:hover{transform:translateY(-4px);color:oklch(91.5% .006 80)}.home-page .ai-method-step:hover{padding-right:18px;padding-left:18px;background:var(--paper);color:var(--ink)}.home-page .ai-method-step:hover h3{transform:translateX(8px)}.home-page .ai-method-step:hover p,.home-page .ai-method-step:hover .ai-step-index,.home-page .ai-method-step:hover .ai-step-result{color:var(--muted)}}

@media(max-width:800px){.home-page .ai-method-intro .issue{margin-bottom:34px}.home-page .ai-method-intro h2{font-size:clamp(46px,14vw,68px);line-height:.92}.home-page .ai-method-lead{margin-top:28px;font-size:16px}.home-page .ai-method-steps{margin-top:58px}.home-page .ai-method-step{grid-template-columns:42px 1fr;gap:14px 12px;min-height:0;padding:28px 0}.home-page .ai-method-step h3{font-size:30px}.home-page .ai-method-step p{grid-column:2/-1;font-size:14px}.ai-step-index{grid-row:1/3}.ai-step-result{display:none}.home-page .ai-method-note{grid-template-columns:1fr;gap:18px;margin-top:44px}.motion-ready .reveal-item{transform:translate3d(0,18px,0)}}

@media(prefers-reduced-motion:reduce){.hero-media{animation:none}.project-card img,.project-info,.project-link,.person img,.process-track span,.service-list li,.home-page .ai-method-step,.home-page .ai-method-step h3{transition:none!important}}

/* Expandable service stages */
.services .service-list{border-bottom:1px solid var(--line)}.services .service-list>li{display:block;padding:0;border-top:1px solid var(--line);background:transparent}.service-list details{overflow:hidden}.service-list summary{display:grid;grid-template-columns:70px 1fr 34px;gap:20px;align-items:start;padding:clamp(26px,3vw,40px) 0;cursor:pointer;list-style:none;transition:padding .55s cubic-bezier(.16,1,.3,1),color .35s ease}.service-list summary::-webkit-details-marker{display:none}.service-number{padding-top:5px;color:var(--muted);font-size:12px}.service-summary{display:grid;grid-template-columns:minmax(280px,1fr) minmax(260px,.75fr);gap:clamp(32px,7vw,110px);align-items:start}.service-name{font-size:clamp(28px,3.1vw,47px);font-weight:700;line-height:1;letter-spacing:-.045em}.service-short{max-width:42ch;color:var(--muted);font-size:16px;line-height:1.5}.service-toggle{position:relative;width:28px;height:28px;margin-top:3px;justify-self:end}.service-toggle::before,.service-toggle::after{position:absolute;top:13px;left:4px;width:20px;height:1px;background:currentColor;content:"";transition:transform .45s cubic-bezier(.16,1,.3,1)}.service-toggle::after{transform:rotate(90deg)}details[open] .service-toggle::after{transform:rotate(0)}.service-details{padding:0 54px 34px 90px}.service-details ul{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0;padding:0;list-style:none}.service-details li{display:block;min-height:90px;padding:14px 20px 0 0;border-top:1px solid color-mix(in oklch,var(--ink) 35%,var(--line));color:var(--muted);font-size:14px;line-height:1.5}.service-details li::before{display:block;margin-bottom:10px;color:var(--ink);content:"0" counter(list-item);font-size:10px;letter-spacing:.1em}.service-details li:hover{padding:14px 20px 0 0;background:transparent}.service-list details[open] summary{color:var(--accent)}

/* AI authorship statement sits directly on the final step line. */
.home-page .ai-method{padding-bottom:clamp(52px,7vw,94px)}.home-page .ai-method-note{display:block;max-width:none;margin:0;padding:26px 0 0;border-top:0}.home-page .ai-method-note p{max-width:77ch;margin:0 0 0 auto;color:oklch(91.5% .006 80/.68);font-size:15px;line-height:1.55}.home-page .ai-method-note strong{color:var(--paper);font-weight:500}

/* Project route over a real technical plan */
.home-page .process{position:relative;isolation:isolate;overflow:hidden;padding-top:clamp(90px,10vw,150px);padding-bottom:clamp(72px,8vw,120px);background:oklch(18% .014 58);color:var(--paper)}.process-plan{position:absolute;z-index:-2;top:0;right:-8%;width:78%;height:100%;object-fit:cover;object-position:left center;filter:invert(1) grayscale(1) contrast(1.35);opacity:.085;mix-blend-mode:screen}.home-page .process::after{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,oklch(18% .014 58) 0%,oklch(18% .014 58/.92) 43%,oklch(18% .014 58/.54) 100%);content:""}.process-intro,.process-route,.process-note{position:relative;max-width:calc(var(--max) - var(--pad)*2);margin-right:auto;margin-left:auto}.process-intro{display:grid;grid-template-columns:minmax(160px,.45fr) 1.55fr;gap:clamp(30px,7vw,110px)}.process-intro .issue{margin:9px 0 0;color:oklch(91.5% .006 80/.58)}.process-intro h2{max-width:13ch;margin:0;font-size:clamp(48px,6.5vw,100px);font-weight:500;line-height:.9;letter-spacing:-.065em}.process-intro>p:last-child{grid-column:2;max-width:48ch;margin:32px 0 0;color:oklch(91.5% .006 80/.68);font-size:17px}.process-route{margin-top:clamp(72px,9vw,130px)}.process-route::before{position:absolute;top:0;right:0;left:0;height:1px;background:var(--paper);content:"";transform:scaleX(0);transform-origin:left;transition:transform 1.6s cubic-bezier(.16,1,.3,1)}.process-route.is-visible::before{transform:scaleX(1)}.process-route ol{display:grid;grid-template-columns:repeat(6,1fr);margin:0;padding:0;list-style:none}.process-step{min-height:265px;padding:24px clamp(14px,1.5vw,24px);border-left:1px solid oklch(91.5% .006 80/.22);transition:transform .65s cubic-bezier(.16,1,.3,1),background .45s ease,color .35s ease}.process-step:last-child{border-right:1px solid oklch(91.5% .006 80/.22)}.process-step>span{display:block;margin-bottom:clamp(54px,6vw,92px);color:oklch(91.5% .006 80/.5);font-size:11px;letter-spacing:.1em}.process-step h3{margin:0;font-size:clamp(19px,1.7vw,27px);font-weight:500;line-height:1.05;letter-spacing:-.035em}.process-step p{max-width:25ch;margin:16px 0 0;color:oklch(91.5% .006 80/.58);font-size:12px;line-height:1.5;transition:color .35s ease}.process-note{max-width:54ch;margin-top:30px;margin-right:var(--pad);color:oklch(91.5% .006 80/.62);font-size:13px;text-align:right}

/* Portraits zoom inside a fixed editorial crop. */
.person-portrait{overflow:hidden;width:100%;aspect-ratio:4/5;background:oklch(88% .008 75)}.person-portrait img{height:100%;object-fit:cover;transform:scale(1.001);transition:transform .85s cubic-bezier(.16,1,.3,1),filter .6s ease}.person>div:last-child{transition:border-color .45s ease}.person:hover .person-portrait img{transform:scale(1.07);filter:saturate(.94) contrast(1.035)}.person:hover>div:last-child{border-color:var(--accent)}

@media(hover:hover){.services .service-list>li:hover{padding:0;background:transparent}.service-list summary:hover{padding-right:14px;padding-left:14px;background:color-mix(in oklch,var(--ink) 4%,transparent)}.process-step:hover{z-index:1;transform:translateY(-14px);background:var(--paper);color:var(--ink)}.process-step:hover p,.process-step:hover>span{color:var(--muted)}}

@media(max-width:800px){.service-list summary{grid-template-columns:38px 1fr 28px;gap:12px}.service-summary{display:block}.service-name{display:block;font-size:29px}.service-short{display:block;margin-top:12px;font-size:14px}.service-details{padding:0 0 28px 50px}.service-details ul{grid-template-columns:1fr;gap:16px}.service-details li{min-height:0;padding-top:12px}.process-plan{right:-50%;width:155%;opacity:.065}.process-intro{grid-template-columns:1fr}.process-intro h2{font-size:clamp(46px,13vw,66px)}.process-intro>p:last-child{grid-column:auto;margin-top:0}.process-route{margin-top:62px;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:10px}.process-route::before{right:auto;width:1040px}.process-route ol{grid-template-columns:repeat(6,170px);width:max-content}.process-step{min-height:242px}.process-step>span{margin-bottom:58px}.process-note{margin-right:0;text-align:left}.person-portrait{aspect-ratio:4/5}}

@media(prefers-reduced-motion:reduce){.process-route::before{transform:scaleX(1);transition:none}.person-portrait img,.process-step,.service-list summary,.service-toggle::before,.service-toggle::after{transition:none!important}}

.service-list summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:800px){.process-route{scroll-snap-type:x proximity}.process-step{scroll-snap-align:start}}

/* A tighter editorial handoff from finished projects to the work behind them. */
.home-page .projects-section{padding-bottom:clamp(44px,4.5vw,68px)}
.services .services-kicker{max-width:none;margin:0;color:var(--muted);font-size:11px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase}

/* Clean, equal team grid */
.home-page .team-heading{display:block;max-width:980px;margin-bottom:clamp(54px,7vw,94px)}.home-page .team-heading .issue{margin:0 0 30px;color:var(--muted)}.home-page .team-heading h2{max-width:12ch;margin:0}.home-page .team-intro{max-width:58ch;margin:30px 0 0;color:var(--muted);font-size:18px}.home-page .team-portraits{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,32px);align-items:start;margin-top:0}.home-page .person{margin-top:0}.home-page .person-portrait{aspect-ratio:4/5}.home-page .person-copy{display:block;padding-top:14px;border-top:1px solid var(--ink)}.person-meta{display:flex;align-items:baseline;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.person-meta span,.person-meta p{margin:0}.home-page .person-copy h3{min-height:2em;margin:clamp(36px,4vw,58px) 0 22px;font-size:clamp(32px,3.1vw,48px);font-weight:500;line-height:.88;letter-spacing:-.055em}.home-page .person-copy h3 span{color:var(--muted);font-weight:400}.home-page .person-description{max-width:38ch;margin:0;color:var(--muted);font-size:14px;line-height:1.55}.home-page .person:hover .person-copy{border-color:var(--accent)}

@media(max-width:800px){.home-page .team-heading{margin-bottom:48px}.home-page .team-heading h2{font-size:clamp(46px,13vw,68px)}.home-page .team-intro{font-size:16px}.home-page .team-portraits{grid-template-columns:1fr;gap:54px;margin-top:0}.home-page .person{margin-top:0}.home-page .person-copy h3{margin-top:34px;font-size:42px}.home-page .person-description{font-size:15px}}

/* Compact team introduction: title and context share one row. */
.home-page .team-section{padding-top:clamp(68px,6.5vw,100px);padding-bottom:clamp(82px,8vw,120px)}.home-page .team-heading{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(18px,2vw,32px);row-gap:22px;max-width:none;margin-bottom:clamp(42px,4.5vw,66px)}.home-page .team-heading .issue{grid-column:1/-1;margin:0}.home-page .team-heading h2{grid-column:1/3;max-width:none;font-size:clamp(48px,5.2vw,78px);line-height:.93}.home-page .team-intro{grid-column:3;align-self:end;max-width:none;margin:0 0 6px;font-size:17px;line-height:1.5}

@media(max-width:800px){.home-page .team-section{padding-top:64px;padding-bottom:82px}.home-page .team-heading{display:block;margin-bottom:42px}.home-page .team-heading .issue{margin-bottom:24px}.home-page .team-heading h2{max-width:none;font-size:clamp(44px,12.5vw,62px)}.home-page .team-intro{margin-top:22px;font-size:16px}}

/* Compact floor-plan composition for the six project stages. */
.home-page .process{padding-top:clamp(68px,6.5vw,96px);padding-bottom:clamp(68px,6.5vw,96px)}.process-layout{position:relative;display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:clamp(48px,7vw,110px);align-items:stretch;max-width:calc(var(--max) - var(--pad)*2);margin:0 auto}.process-layout .process-intro{display:flex;flex-direction:column;max-width:none;margin:0}.process-layout .process-intro .issue{margin:0 0 clamp(34px,5vw,64px)}.process-layout .process-intro h2{max-width:8ch;margin:0;font-size:clamp(50px,5.4vw,82px);line-height:.89}.process-layout .process-intro>p:not(.issue):not(.process-note){max-width:38ch;margin:32px 0 0;color:oklch(91.5% .006 80/.68);font-size:15px;line-height:1.55}.process-layout .process-note{max-width:36ch;margin:auto 0 0;padding-top:18px;border-top:1px solid oklch(91.5% .006 80/.24);color:oklch(91.5% .006 80/.55);font-size:12px;line-height:1.5;text-align:left}.process-layout .process-route{align-self:stretch;margin:0}.process-layout .process-route ol{grid-template-columns:repeat(3,minmax(0,1fr));height:100%}.process-layout .process-step{min-height:185px;padding:22px clamp(16px,1.6vw,25px);border-bottom:1px solid oklch(91.5% .006 80/.22)}.process-layout .process-step:nth-child(3),.process-layout .process-step:nth-child(6){border-right:1px solid oklch(91.5% .006 80/.22)}.process-layout .process-step>span{margin-bottom:clamp(34px,3.5vw,54px)}.process-layout .process-step h3{font-size:clamp(19px,1.5vw,24px)}.process-layout .process-step p{margin-top:12px}.home-page .process-plan{right:-4%;width:72%;opacity:.07}.home-page .process::after{background:linear-gradient(90deg,oklch(18% .014 58) 0%,oklch(18% .014 58/.92) 32%,oklch(18% .014 58/.5) 100%)}

@media(hover:hover){.process-layout .process-step:hover{transform:translateY(-5px)}}

@media(max-width:800px){.home-page .process{padding-top:62px;padding-bottom:62px}.process-layout{display:block}.process-layout .process-intro h2{font-size:clamp(48px,13vw,64px)}.process-layout .process-intro>p:not(.issue):not(.process-note){margin-top:24px}.process-layout .process-note{margin-top:30px}.process-layout .process-route{margin-top:46px}.process-layout .process-route ol{grid-template-columns:repeat(6,170px);height:auto}.process-layout .process-step{min-height:225px}.process-layout .process-step:nth-child(3){border-right:0}.home-page .process-plan{right:-48%;width:155%}}

/* Centre the compact process composition within one desktop viewport. */
@media(min-width:801px){.home-page .process{display:grid;align-items:center;min-height:100dvh;padding-top:clamp(48px,6vh,82px);padding-bottom:clamp(48px,6vh,82px)}
/* Секция центрирует блок по вертикали, но при height:auto он получал высоту меньше
   собственного содержимого, и сетка этапов вылезала вниз: сверху оставался воздух,
   снизу карточки упирались в край. max-content даёт блоку реальную высоту. */
.home-page .process>.process-layout{height:max-content}
.process-layout{grid-template-columns:minmax(350px,.82fr) minmax(0,1.18fr);gap:clamp(50px,6vw,92px);align-items:center;width:100%}.process-layout .process-intro{align-self:center}.process-layout .process-intro .issue{margin-bottom:clamp(28px,4vh,44px)}.process-layout .process-intro h2{max-width:11ch;font-size:clamp(48px,4.5vw,70px);line-height:.9}.process-layout .process-intro>p:not(.issue):not(.process-note){margin-top:24px;font-size:14px}.process-layout .process-note{margin-top:36px;padding-top:16px}.process-layout .process-route{align-self:center}.process-layout .process-route ol{grid-auto-rows:clamp(158px,18vh,184px);height:auto}.process-layout .process-step{min-height:0;padding-top:18px;padding-bottom:18px}.process-layout .process-step>span{margin-bottom:clamp(24px,3vh,38px)}.process-layout .process-step h3{font-size:clamp(18px,1.4vw,22px)}.process-layout .process-step p{font-size:11px}}

/* Middle scale: generous stage cells without returning to the overlong version. */
@media(min-width:801px){.process-layout{grid-template-columns:minmax(330px,.68fr) minmax(0,1.32fr);gap:clamp(42px,5vw,76px)}.process-layout .process-route ol{grid-auto-rows:clamp(202px,21vh,232px)}.process-layout .process-step{padding:22px clamp(20px,1.8vw,28px)}.process-layout .process-step>span{margin-bottom:clamp(34px,4vh,50px)}.process-layout .process-step h3{font-size:clamp(21px,1.7vw,27px)}.process-layout .process-step p{max-width:27ch;font-size:12px;line-height:1.55}}

@media(min-width:801px){.process-layout .process-route ol{grid-auto-rows:clamp(260px,27vh,300px)}.process-layout .process-step{padding-top:26px;padding-bottom:26px}.process-layout .process-step>span{margin-bottom:clamp(54px,6vh,78px)}}

/* Blueprint line sequence: the route is drawn into place when it enters view. */
.process-drawing{display:none}
@media(min-width:801px){.process-layout{height:clamp(560px,68vh,740px);align-items:stretch}.process-layout .process-intro{align-self:stretch}.process-layout .process-note{margin-top:auto}.process-layout .process-route{position:relative;align-self:stretch;height:100%}.process-layout .process-route::before{content:none}.process-layout .process-route ol{grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:auto;height:100%}.process-layout .process-step,.process-layout .process-step:nth-child(3),.process-layout .process-step:nth-child(6){border:0}.process-layout .process-step>span{margin-bottom:clamp(52px,6vh,82px)}.process-drawing{position:absolute;z-index:2;inset:0;display:block;pointer-events:none}.drawing-line{position:absolute;display:block;background:oklch(91.5% .006 80/.38);transition:transform .82s cubic-bezier(.16,1,.3,1)}.drawing-top,.drawing-middle,.drawing-bottom{left:0;width:100%;height:1px;transform:scaleX(0);transform-origin:left}.drawing-left,.drawing-column-one,.drawing-column-two,.drawing-right{top:0;width:1px;height:100%;transform:scaleY(0);transform-origin:top}.drawing-top{top:0;transition-delay:.12s}.drawing-middle{top:50%;transition-delay:1.22s}.drawing-bottom{bottom:0;transition-delay:1.58s}.drawing-left{left:0;transition-delay:.48s}.drawing-column-one{left:33.333%;transition-delay:.68s}.drawing-column-two{left:66.666%;transition-delay:.86s}.drawing-right{right:0;transition-delay:.48s}.process-route.is-visible .drawing-top,.process-route.is-visible .drawing-middle,.process-route.is-visible .drawing-bottom{transform:scaleX(1)}.process-route.is-visible .drawing-left,.process-route.is-visible .drawing-column-one,.process-route.is-visible .drawing-column-two,.process-route.is-visible .drawing-right{transform:scaleY(1)}}

@media(prefers-reduced-motion:reduce){.drawing-line{transition:none!important;transform:none!important}}

/* Editorial pricing: design-project phase (package + standalone stages), then the realization phase. */
.pricing-section{--muted:oklch(45% .015 65);max-width:none;background:oklch(87.5% .012 72);border-top:0}.pricing-layout{max-width:calc(var(--max) - var(--pad)*2);margin:0 auto}.pricing-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);column-gap:clamp(50px,8vw,130px);row-gap:28px;align-items:end;margin-bottom:clamp(54px,7vw,96px)}.pricing-intro .issue{grid-column:1/-1;margin:0;color:var(--muted)}.pricing-intro h2{grid-column:1;max-width:13ch;margin:0}.pricing-intro>p:last-child{grid-column:2;justify-self:end;max-width:60ch;margin:0 0 7px;color:var(--muted);font-size:17px;line-height:1.55}.pricing-featured{display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(300px,.95fr) minmax(190px,.45fr);gap:clamp(34px,5vw,78px);padding:clamp(34px,4vw,58px);background:var(--ink);color:var(--paper)}.pricing-featured-heading h3{max-width:9ch;margin:clamp(62px,7vw,104px) 0 0;font-size:clamp(42px,5vw,76px);font-weight:500;line-height:.88;letter-spacing:-.06em}.price-index{color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.pricing-featured .price-index{color:oklch(91.5% .006 80/.58)}.pricing-featured-copy{align-self:end}.pricing-featured-copy>p{max-width:42ch;margin:0 0 32px;color:oklch(91.5% .006 80/.72);font-size:16px;line-height:1.55}.pricing-featured-copy ul{margin:0;padding:0;list-style:none}.pricing-featured-copy li{padding:10px 0;border-top:1px solid oklch(91.5% .006 80/.24);color:oklch(91.5% .006 80/.78);font-size:13px}.pricing-featured-price{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.price-value{margin:0;font-size:clamp(27px,2.8vw,42px);font-weight:500;line-height:1;letter-spacing:-.045em;white-space:nowrap}.price-value small{margin-left:5px;font-size:.42em;font-weight:400;letter-spacing:0}.price-value span{display:block;margin-top:8px;color:var(--muted);font-size:11px;font-weight:400;letter-spacing:0}.pricing-featured-price .price-value{font-size:clamp(32px,3vw,46px)}.pricing-featured-price .price-value small{color:oklch(91.5% .006 80/.6)}.pricing-button{border-color:var(--paper);background:var(--paper);color:var(--ink)}.pricing-button:hover{background:transparent;color:var(--paper)}.pricing-scope-note{grid-column:2/-1;margin:0;padding-top:18px;border-top:1px solid oklch(91.5% .006 80/.24);color:oklch(91.5% .006 80/.62);font-size:12px}.pricing-list{margin:0;padding:0;list-style:none;border-bottom:1px solid color-mix(in oklch,var(--ink) 30%,var(--line))}.price-row{display:grid;grid-template-columns:60px minmax(0,1fr) minmax(170px,.3fr);gap:clamp(26px,4vw,64px);align-items:start;padding:clamp(28px,3.5vw,46px) 0;border-top:1px solid color-mix(in oklch,var(--ink) 30%,var(--line))}.price-row h3{margin:0;font-size:clamp(25px,2.5vw,38px);font-weight:500;line-height:1;letter-spacing:-.045em}.price-row div>p{max-width:50ch;margin:13px 0 0;color:var(--muted);font-size:14px}.price-row>.price-value{justify-self:end;text-align:right}.pricing-entry{display:grid;grid-template-columns:1fr;gap:1px;margin-top:clamp(46px,6vw,78px);background:color-mix(in oklch,var(--ink) 24%,var(--line));border:1px solid color-mix(in oklch,var(--ink) 24%,var(--line))}.pricing-entry>a{display:grid;grid-template-columns:1fr auto;column-gap:30px;padding:clamp(26px,3vw,40px);background:oklch(87.5% .012 72)}.pricing-entry .price-index{grid-column:1/-1;margin-bottom:38px}.pricing-entry h3{grid-column:1;max-width:16ch;margin:0;font-size:clamp(23px,2.2vw,34px);font-weight:500;line-height:1.05;letter-spacing:-.04em}.pricing-entry p{grid-column:1;max-width:40ch;margin:16px 0 0;color:var(--muted);font-size:14px}.pricing-entry strong{grid-column:2;grid-row:2/4;align-self:end;font-size:clamp(20px,2vw,30px);font-weight:500;white-space:nowrap}
/* Карточка ведёт к форме заявки. Стрелка обязательна как аффорданс: блок,
   который работает как кнопка, должен выглядеть кликабельным, иначе это ловушка. */
.pricing-entry>a{position:relative;transition:background .28s ease}
/* Стрелка выведена из потока сетки: как грид-элемент она сдвигала строки и роняла цену наверх. */
.pricing-entry .entry-arrow{position:absolute;top:clamp(26px,3vw,40px);right:clamp(26px,3vw,40px);font-size:20px;line-height:1;color:var(--muted);transition:transform .3s cubic-bezier(.16,1,.3,1),color .22s ease}
@media(hover:hover){.pricing-entry>a:hover{background:var(--paper)}.pricing-entry>a:hover .entry-arrow{transform:translate(3px,3px);color:var(--accent)}}
@media(prefers-reduced-motion:reduce){.pricing-entry>a,.pricing-entry .entry-arrow{transition:none!important}}

@media(max-width:940px){.pricing-section{padding-top:64px;padding-bottom:76px}.pricing-intro{display:block;margin-bottom:46px}.pricing-intro .issue{margin-bottom:24px}.pricing-intro h2{max-width:11ch;font-size:clamp(44px,12.5vw,62px)}.pricing-intro>p:last-child{margin-top:24px;font-size:16px}.pricing-featured{grid-template-columns:1fr;gap:38px;padding:30px 24px}.pricing-featured-heading h3{margin-top:42px;font-size:48px}.pricing-featured-copy>p{font-size:15px}.pricing-featured-price{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center}.pricing-featured-price .price-value{font-size:34px}.pricing-button{min-height:44px;padding-inline:14px;font-size:13px}.pricing-scope-note{grid-column:auto;padding-top:16px}.price-row{grid-template-columns:36px 1fr;gap:12px 14px;padding:28px 0}.price-row h3{font-size:29px}.price-row div>p{font-size:14px}.price-row>.price-value{grid-column:2;justify-self:start;margin-top:8px;text-align:left;font-size:28px}.pricing-entry>a{grid-template-columns:1fr;padding:26px 22px}.pricing-entry .price-index{margin-bottom:28px}.pricing-entry h3{font-size:29px}.pricing-entry strong{grid-column:1;grid-row:auto;margin-top:24px;font-size:24px}}

/* Mobiland: a commercial case with an explicit project-to-reality story. */
.project-card--commercial{position:relative}.project-type{position:absolute;z-index:2;top:16px;left:16px;padding:8px 11px;background:var(--ink);color:var(--paper);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.project-card--commercial img{object-position:center 52%}

.mobiland-page{--mobiland-blue:oklch(34% .095 246);--mobiland-wood:oklch(60% .075 67)}.mobiland-page figure{margin:0}.mobiland-page figcaption{margin-top:10px;color:var(--muted);font-size:12px}.case-hero-figure{margin-top:32px!important}.case-hero-figure img{max-height:82vh;object-fit:cover;object-position:center 54%}.mobiland-hero .case-intro{max-width:46ch}.mobiland-hero .case-facts{margin-bottom:0}

.remote-section{max-width:none;background:var(--ink);color:var(--paper)}.remote-heading,.remote-route{max-width:calc(var(--max) - var(--pad)*2);margin-right:auto;margin-left:auto}.remote-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:30px clamp(50px,8vw,130px);align-items:end}.remote-heading .issue{grid-column:1/-1;margin:0;color:oklch(91.5% .006 80/.58)}.remote-heading h2{grid-column:1;margin:0}.remote-heading>p:last-child{grid-column:2;max-width:42ch;margin:0 0 8px;color:oklch(91.5% .006 80/.68);font-size:17px}.remote-route{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(60px,8vw,110px);padding:0;border-top:1px solid oklch(91.5% .006 80/.36);list-style:none}.remote-route li{min-height:300px;padding:22px clamp(16px,2vw,28px);border-left:1px solid oklch(91.5% .006 80/.22)}.remote-route li:last-child{border-right:1px solid oklch(91.5% .006 80/.22)}.remote-route span{color:oklch(91.5% .006 80/.52);font-size:10px;letter-spacing:.09em;text-transform:uppercase}.remote-route h3{margin:clamp(74px,8vw,112px) 0 14px;font-size:clamp(23px,2.2vw,34px);font-weight:500;line-height:1;letter-spacing:-.04em}.remote-route p{max-width:26ch;margin:0;color:oklch(91.5% .006 80/.62);font-size:13px;line-height:1.55}

.furniture-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:24px clamp(50px,8vw,130px);align-items:end}.furniture-heading .issue{grid-column:1/-1;margin:0}.furniture-heading h2{grid-column:1;max-width:13ch;margin:0}.furniture-heading>p:last-child{grid-column:2;max-width:44ch;margin:0 0 7px;color:var(--muted);font-size:17px}.furniture-gallery{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px;margin-top:clamp(52px,7vw,90px)}.furniture-gallery img{height:min(72vh,760px);object-fit:cover}.furniture-gallery figure:first-child img{object-position:center 52%}.furniture-gallery figure:last-child img{object-position:center 48%}.case-proof{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(0,1.55fr);gap:30px;margin-top:clamp(48px,6vw,80px);padding-top:20px;border-top:1px solid var(--ink)}.case-proof span{color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.case-proof p{max-width:45ch;margin:0;font-size:clamp(22px,2.6vw,38px);line-height:1.15;letter-spacing:-.035em}

.technical-feature{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:clamp(42px,7vw,110px);align-items:stretch;margin-top:clamp(76px,11vw,160px);padding:clamp(28px,4vw,58px);background:var(--mobiland-blue);color:var(--paper)}.technical-feature-copy{display:flex;flex-direction:column}.technical-feature-copy>.issue{margin:0;color:oklch(91.5% .006 80/.62)}.technical-feature h3{max-width:11ch;margin:clamp(62px,7vw,100px) 0 28px;font-size:clamp(36px,4.3vw,64px);font-weight:500;line-height:.92;letter-spacing:-.055em}.technical-feature-copy>p:not(.issue){max-width:48ch;margin:0 0 18px;color:oklch(91.5% .006 80/.7);font-size:15px;line-height:1.6}.technical-feature figure{align-self:stretch}.technical-feature figure img{height:100%;min-height:720px;object-fit:cover;object-position:center 42%}.technical-feature figcaption{color:oklch(91.5% .006 80/.58)}.technical-principle{margin-top:auto;padding-top:22px;border-top:1px solid oklch(91.5% .006 80/.28)}.technical-principle span{display:block;margin-bottom:24px;color:oklch(91.5% .006 80/.54);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.technical-principle strong{display:block;max-width:36ch;font-size:clamp(18px,1.65vw,25px);font-weight:500;line-height:1.25}.technical-principle p{max-width:48ch;margin:16px 0 0;color:oklch(91.5% .006 80/.62);font-size:13px;line-height:1.55}

.result-section>.issue{margin:0 0 28px}.result-section>h2{max-width:13ch}.result-lead{max-width:50ch;margin:28px 0 0 auto;color:var(--muted);font-size:18px}.comparison-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px;margin-top:clamp(58px,8vw,110px)}.comparison-grid figure{position:relative}.comparison-grid figure>span{position:absolute;z-index:1;top:14px;left:14px;padding:7px 10px;background:var(--paper);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.comparison-grid img{height:min(68vh,720px);object-fit:cover}.comparison-grid figure:first-child img{object-position:center 54%}.comparison-grid figure:last-child img{object-position:center 45%}.workspace-view{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:clamp(36px,6vw,90px);align-items:end;margin-top:clamp(70px,10vw,140px);padding:clamp(26px,3vw,42px);background:oklch(89% .01 78)}.workspace-view img{height:min(64vh,660px);object-fit:cover;object-position:center}.workspace-view>div{padding-bottom:8px}.workspace-view h3{max-width:12ch;margin:38px 0 18px;font-size:clamp(30px,3.5vw,52px);font-weight:500;line-height:.95;letter-spacing:-.05em}.workspace-view p:last-child{max-width:38ch;margin:0;color:var(--muted);font-size:14px;line-height:1.55}

.opening-section{display:grid;grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr);gap:clamp(50px,8vw,130px);align-items:start}.opening-copy{position:sticky;top:145px}.opening-copy h2{max-width:10ch;margin-top:40px}.opening-copy>p:last-child{max-width:40ch;margin-top:28px;color:var(--muted);font-size:17px}.opening-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px}.opening-photos figure:nth-child(2){margin-top:clamp(70px,9vw,130px)}.opening-photos img{aspect-ratio:3/4;object-fit:cover}.opening-section>.draft-note{grid-column:2;max-width:none;margin-top:16px}
.opening-copy h2 span{display:block;white-space:nowrap}

@media(hover:hover){.remote-route li{transition:background .45s ease,transform .55s cubic-bezier(.16,1,.3,1)}.remote-route li:hover{transform:translateY(-8px);background:oklch(91.5% .006 80/.07)}}

@media(max-width:800px){.project-type{top:10px;left:10px}.case-hero-figure img{height:auto;aspect-ratio:4/3}.remote-heading,.furniture-heading{display:block}.remote-heading .issue,.furniture-heading .issue{margin-bottom:24px}.remote-heading>p:last-child,.furniture-heading>p:last-child{margin-top:24px;font-size:16px}.remote-route{grid-template-columns:1fr;margin-top:50px}.remote-route li{min-height:0;padding:24px 0;border-right:0!important;border-left:0;border-bottom:1px solid oklch(91.5% .006 80/.22)}.remote-route h3{margin:42px 0 12px}.furniture-gallery,.comparison-grid,.workspace-view,.opening-section,.technical-feature{grid-template-columns:1fr}.furniture-gallery img,.comparison-grid img{height:auto;aspect-ratio:4/3}.furniture-gallery figure:last-child img,.comparison-grid figure:last-child img{aspect-ratio:3/4}.case-proof{grid-template-columns:1fr;gap:20px}.technical-feature{gap:38px;margin-top:72px;padding:28px 20px}.technical-feature h3{margin-top:48px}.technical-principle{margin-top:34px}.technical-feature figure img{height:auto;min-height:0;aspect-ratio:3/4}.result-lead{margin-left:0;font-size:16px}.workspace-view{padding:20px}.workspace-view img{height:auto;aspect-ratio:4/3}.workspace-view h3{margin-top:24px}.opening-copy{position:static}.opening-photos{margin-top:10px}.opening-section>.draft-note{grid-column:auto}.opening-copy>p:last-child{font-size:16px}}

@media(prefers-reduced-motion:reduce){.remote-route li{transition:none!important}}

/* Mobiland viewport pass: keep each argument readable within a common desktop fold. */
.case-offer{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:clamp(56px,9vw,150px);align-items:end;min-height:clamp(500px,62vh,640px);padding:clamp(64px,9vh,96px) var(--pad)}.case-offer-copy>.issue{margin:0 0 clamp(42px,7vh,72px)}.case-offer h2{max-width:12ch;margin:0;font-size:clamp(48px,5.2vw,78px)}.case-offer-copy>p:last-child{max-width:49ch;margin:30px 0 0;color:oklch(96% .008 80/.76);font-size:17px;line-height:1.55}.case-offer-action{padding-top:20px;border-top:1px solid oklch(96% .008 80/.48)}.case-offer-action dl{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 38px}.case-offer-action dl div{min-width:0}.case-offer-action dt{color:oklch(96% .008 80/.6);font-size:10px;letter-spacing:.09em;text-transform:uppercase}.case-offer-action dd{margin:7px 0 0;font-size:14px;line-height:1.35}.case-offer-action .button{min-width:180px}.case-offer-link{display:inline-flex;gap:10px;align-items:center;margin-left:22px;padding:13px 0;border-bottom:1px solid oklch(96% .008 80/.56);font-size:13px;font-weight:700}.case-offer-link span{transition:transform .2s cubic-bezier(.16,1,.3,1)}.case-offer-link:hover span{transform:translateX(4px)}

@media(min-width:801px){.mobiland-page .case-section{padding-top:clamp(64px,8vh,92px);padding-bottom:clamp(64px,8vh,92px)}.mobiland-page .remote-section{padding-top:clamp(64px,8vh,92px);padding-bottom:clamp(64px,8vh,92px)}.remote-route{margin-top:clamp(44px,6vh,64px)}.remote-route li{min-height:250px}.remote-route h3{margin-top:clamp(58px,7vh,78px)}.furniture-heading h2{max-width:17ch;font-size:clamp(48px,4.1vw,64px)}.furniture-gallery{margin-top:clamp(38px,5vh,56px)}.furniture-gallery img{height:min(62vh,620px)}.case-proof{margin-top:clamp(38px,5vh,56px)}.technical-feature{gap:clamp(42px,5vw,72px);margin-top:clamp(60px,8vh,86px);padding:clamp(32px,4vh,42px)}.technical-feature h3{max-width:14ch;margin:clamp(34px,5vh,48px) 0 22px;font-size:clamp(40px,3.3vw,52px)}.technical-feature-copy>p:not(.issue){margin-bottom:14px;font-size:14px;line-height:1.55}.technical-feature figure img{height:clamp(520px,62vh,610px);min-height:0}.technical-principle{margin-top:auto;padding-top:18px}.technical-principle span{margin-bottom:16px}.technical-principle strong{font-size:clamp(18px,1.45vw,22px)}.technical-principle p{margin-top:12px}.result-section>.issue{margin-bottom:22px}.result-section>h2{max-width:18ch;font-size:clamp(48px,4.1vw,64px)}.result-lead{margin-top:18px}.comparison-grid{margin-top:clamp(40px,6vh,64px)}.comparison-grid img{height:min(60vh,610px)}.workspace-view{margin-top:clamp(60px,8vh,90px)}.workspace-view img{height:min(58vh,590px)}.opening-copy h2{margin-top:30px;font-size:clamp(48px,4.1vw,64px)}}

@media(max-width:800px){.case-offer{grid-template-columns:1fr;gap:48px;min-height:0;padding:68px var(--pad)}.case-offer-copy>.issue{margin-bottom:36px}.case-offer h2{max-width:11ch;font-size:clamp(46px,13vw,62px)}.case-offer-copy>p:last-child{margin-top:24px;font-size:16px}.case-offer-action dl{grid-template-columns:1fr;gap:18px;margin-bottom:32px}.case-offer-action .button{width:100%}.case-offer-link{margin:14px 0 0}}

/* Inquiry offer: a concise project brief instead of a generic contact banner. */
.case-offer-copy h2 span{display:block}.case-offer-brief{border-top:1px solid oklch(96% .008 80/.48)}.case-offer-brief>div{display:grid;grid-template-columns:42px minmax(120px,.42fr) minmax(0,1fr);gap:18px;align-items:start;padding:20px 0;border-bottom:1px solid oklch(96% .008 80/.34)}.case-offer-brief span{color:oklch(96% .008 80/.56);font-size:10px;letter-spacing:.1em}.case-offer-brief h3{margin:0;font-size:17px;font-weight:500;line-height:1.2}.case-offer-brief p{max-width:34ch;margin:0;color:oklch(96% .008 80/.7);font-size:13px;line-height:1.5}.case-offer-meta{margin:22px 0 30px;color:oklch(96% .008 80/.7);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.case-offer-meta span{margin:0 8px;color:oklch(96% .008 80/.42)}.case-offer-buttons{display:flex;align-items:center;gap:22px}.case-offer-buttons .case-offer-link{margin:0}

@media(max-width:800px){.case-offer-copy h2 span{display:inline}.case-offer-copy h2 span+span::before{content:" "}.case-offer-brief>div{grid-template-columns:32px 1fr;gap:8px 12px}.case-offer-brief h3{grid-column:2}.case-offer-brief p{grid-column:2}.case-offer-meta{line-height:1.7}.case-offer-buttons{display:block}.case-offer-buttons .case-offer-link{display:inline-flex;margin-top:14px}}

/* Mobiland proof: the finished interior, the team at opening, and live project links. */
.case-section{scroll-margin-top:124px}.mobiland-page .live-proof-section{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:clamp(48px,8vw,124px);align-items:center;padding-top:48px;padding-bottom:48px}.live-proof-photo img{aspect-ratio:3/4;object-fit:cover}.live-proof-copy>h2{max-width:14ch;margin-top:30px;font-size:clamp(44px,4.2vw,60px)}.live-proof-lead{max-width:52ch;margin:20px 0 34px;color:var(--muted);font-size:16px;line-height:1.5}.proof-links{border-top:1px solid var(--ink)}.proof-links a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:13px 0;border-bottom:1px solid var(--line);transition:padding .4s cubic-bezier(.16,1,.3,1),color .25s ease}.proof-links span{display:block;font-size:16px;font-weight:700;line-height:1.2}.proof-links small{display:block;margin-bottom:3px;color:var(--muted);font-size:9px;font-weight:400;letter-spacing:.09em;text-transform:uppercase}.proof-links b{font-size:20px;font-weight:400;transition:transform .3s cubic-bezier(.16,1,.3,1)}.legal-disclaimer{max-width:72ch;margin:14px 0 0;color:var(--muted);font-size:10px;line-height:1.5}

@media(hover:hover){.proof-links a:hover{padding-right:8px;padding-left:8px;color:var(--accent)}.proof-links a:hover b{transform:translate(3px,-3px)}}

@media(max-width:800px){.case-section{scroll-margin-top:116px}.mobiland-page .live-proof-section{grid-template-columns:1fr;gap:44px;padding-top:56px;padding-bottom:64px}.live-proof-copy>h2{max-width:11ch;margin-top:26px;font-size:clamp(42px,12vw,58px)}.live-proof-lead{margin:22px 0 36px;font-size:16px}.proof-links a{padding:16px 0}.proof-links span{font-size:16px}.legal-disclaimer{font-size:10px}}

/* Desktop rhythm pass: each idea reads as a composed viewport, not an oversized crop. */
.service-details li::before{content:none}
.service-detail-index{color:var(--ink);font-size:10px;letter-spacing:.1em}
.person-meta p span{display:block}
.footer-brand>p{ text-align:left }

@media(min-width:801px){
  .home-page .services{padding-top:clamp(56px,6.5vh,72px);padding-bottom:clamp(64px,7vh,82px)}
  .services .section-title{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);column-gap:40px;row-gap:14px;align-items:end;max-width:none;margin-bottom:28px}
  .services .section-title .services-kicker{grid-column:1/-1;justify-self:start;margin:0;font-size:11px}
  .services .section-title h2{grid-column:1;max-width:none;margin:0;font-size:clamp(48px,4.4vw,64px)}
  .services .section-title h2>span{display:block}
  .services .section-title h2>span:first-child{white-space:nowrap}
  .services .section-title>p:last-child{grid-column:2;justify-self:end;max-width:43ch;margin:0 0 5px;font-size:16px}
  .service-list summary{grid-template-columns:54px 1fr 30px;gap:18px;padding:20px 0}
  .service-summary{grid-template-columns:minmax(360px,1.12fr) minmax(250px,.88fr);gap:clamp(30px,6vw,86px)}
  .service-name{font-size:clamp(30px,2.55vw,39px)}
  .service-short{align-self:center;font-size:15px}
  .service-details{padding:0 48px 22px 72px}
  .service-details ul{grid-template-columns:repeat(3,1fr);gap:0}
  .service-details li{display:grid;grid-template-columns:34px 1fr;gap:10px;min-height:62px;padding:10px 20px!important;border-top:0;font-size:13px}
  .service-details li+li{border-left:1px solid var(--line)}
  .service-list summary:hover{padding:20px 0;background:color-mix(in oklch,var(--ink) 4%,transparent)}

  .home-page .ai-method{max-width:none;margin:0;padding-top:clamp(58px,7vh,76px);padding-bottom:clamp(52px,6vh,68px)}
  .home-page .ai-method>div,.home-page .ai-method>ol{width:min(100%,calc(var(--max) - var(--pad)*2));margin-right:auto;margin-left:auto}
  .home-page .ai-method-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);gap:24px clamp(48px,8vw,118px);align-items:end}
  .home-page .ai-method-intro .issue{grid-column:1/-1;margin:0 0 18px}
  .home-page .ai-method-intro h2{grid-column:1;max-width:13ch;font-size:clamp(54px,5vw,72px);line-height:.9}
  .home-page .ai-method-lead{grid-column:2;max-width:42ch;margin:0 0 4px;font-size:17px}
  .home-page .ai-method-steps{margin-top:44px}
  .home-page .ai-method-step{grid-template-columns:48px minmax(230px,.85fr) minmax(320px,1.15fr) 100px;gap:clamp(20px,3vw,46px);min-height:108px;padding:20px 0}
  .home-page .ai-method-step h3{font-size:clamp(27px,2.35vw,36px)}
  .home-page .ai-method-step p{font-size:14px}
  .home-page .ai-method-note{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);gap:clamp(48px,8vw,118px);margin:0 auto;padding-top:22px;border-top:1px solid oklch(91.5% .006 80/.3)}
  .home-page .ai-method-note p{grid-column:2;max-width:none;margin:0;font-size:14px}
  .home-page .process{margin-top:0;border-top:0}

  .home-page .team-section{padding-top:clamp(56px,6.5vh,72px);padding-bottom:clamp(64px,7.5vh,84px)}
  .home-page .team-heading{margin-bottom:30px}
  .home-page .team-heading .issue{margin-bottom:0}
  .home-page .team-heading h2{font-size:clamp(50px,4.8vw,68px)}
  /* Интро стоит в третьей колонке сетки, ровно над третьим портретом. 15px держат его
     в трёх строках примерно от 1220 px, на 16px порог уходил за 1400. Ниже колонка
     слишком узкая, и четвёртая строка неизбежна без урезания текста. */
  .home-page .team-intro{font-size:15px}
  /* Портреты сняты в 4:5 и выровнены по лицам между собой. Фиксированная высота делала
     бокс почти квадратным и срезала снизу пятую часть кадра — у кого-то вместе с руками.
     Держим пропорцию исходника (она задана базовым правилом), кроп нулевой. */
  .home-page .person>div.person-copy{display:grid;grid-template-columns:28px 116px minmax(0,1fr);column-gap:10px;row-gap:26px;align-items:start;padding-top:12px}
  .home-page .person-meta{display:contents}
  .home-page .person-meta>span{grid-column:1;grid-row:1;padding-top:3px}
  .home-page .person-meta>p{grid-column:2;grid-row:1;line-height:1.3}
  .home-page .person-copy h3{grid-column:3;grid-row:1;justify-self:end;min-height:0;width:max-content;margin:0;font-size:clamp(27px,2vw,34px);line-height:.88}
  /* 36ch ломали самое длинное описание на четвёртую строку. Держим все три в трёх строках. */
  .home-page .person-description{grid-column:1/-1;grid-row:2;max-width:44ch;margin:0;font-size:13px}
}

/* Service hover is typographic, without boxing the row into a filled rectangle. */
@media(hover:hover) and (min-width:801px){
  .services .service-list>li:hover{padding:0;background:transparent}
  .services .service-list summary:hover{padding:20px 0;background:transparent}
  .services .service-name,.services .service-short,.services .service-number,.services .service-toggle{transition:color .35s ease,transform .5s cubic-bezier(.16,1,.3,1)}
  .services .service-list summary:hover .service-name{color:var(--accent);transform:translateX(8px)}
  .services .service-list summary:hover .service-short{color:var(--ink);transform:translateX(4px)}
  .services .service-list summary:hover .service-number{color:var(--accent)}
  .services .service-list summary:hover .service-toggle{transform:translateX(-5px)}
}

@media(min-width:801px){
  .services .service-details{padding-top:14px;border-top:0}
  .services .service-details li+li{border-left-color:color-mix(in oklch,var(--ink) 22%,var(--line))}
}

@media(prefers-reduced-motion:reduce){
  .services .service-name,.services .service-short,.services .service-number,.services .service-toggle{transition:none!important}
  .services .service-list summary:hover .service-name,.services .service-list summary:hover .service-short,.services .service-list summary:hover .service-toggle{transform:none}
}

@media(min-width:1100px){
  .services .service-list>li:last-child .service-name{white-space:nowrap}
}

@media(min-width:941px){
  .home-page .pricing-section{padding-top:clamp(58px,7vh,76px);padding-bottom:clamp(64px,7.5vh,84px)}
  .pricing-intro{grid-template-columns:minmax(0,.95fr) minmax(320px,.75fr);margin-bottom:38px}
  .pricing-intro .issue{margin-bottom:-4px}
  .pricing-intro h2{max-width:13ch;font-size:clamp(52px,4.7vw,68px)}
  .pricing-intro>p:last-child{font-size:16px}
  .pricing-featured{grid-template-columns:minmax(260px,.82fr) minmax(330px,1.05fr) minmax(190px,.48fr);gap:clamp(34px,4vw,58px);min-height:430px;padding:34px 38px}
  .pricing-featured-heading h3{margin:42px 0 0;font-size:clamp(46px,4.2vw,62px)}
  .pricing-featured-copy{align-self:center}
  .pricing-featured-copy>p{margin-bottom:22px;font-size:15px}
  .pricing-featured-copy ul{counter-reset:project-scope;display:grid;gap:8px}
  .pricing-featured-copy li{counter-increment:project-scope;display:grid;grid-template-columns:28px 1fr;gap:8px;padding:2px 0;border:0;font-size:15px;line-height:1.35}
  .pricing-featured-copy li::before{color:oklch(91.5% .006 80/.46);content:"0" counter(project-scope);font-size:10px;letter-spacing:.08em}
  .pricing-featured-price{justify-content:center;gap:44px}
  .pricing-featured-price .price-value{font-size:clamp(34px,3vw,44px)}
  .pricing-scope-note{padding-top:14px}
  .pricing-stage-intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);column-gap:clamp(40px,5vw,72px);row-gap:22px;align-items:end;margin:clamp(72px,8vh,96px) 0 34px;padding:0;border-top:0}
  .pricing-stage-intro .issue{grid-column:1/-1;margin:0;color:var(--muted)}
  .pricing-stage-intro h3{grid-column:1;max-width:12ch;margin:0;font-size:clamp(44px,4vw,58px);font-weight:500;line-height:.94;letter-spacing:-.05em}
  .pricing-stage-intro>p:last-child{grid-column:2;justify-self:end;max-width:72ch;margin:0 0 6px;color:var(--muted);font-size:14px;line-height:1.5}
  .price-row{grid-template-columns:48px minmax(0,1fr) minmax(160px,.25fr);gap:24px;align-items:center;min-height:108px;padding:18px 0}
  .price-row h3{font-size:clamp(25px,2.2vw,33px)}
  .price-row div>p{margin-top:7px;font-size:13px}
  .price-requirement{display:block;margin-top:8px;color:var(--muted);font-size:11px}
  .price-row>.price-value{font-size:clamp(27px,2.45vw,36px)}
  .pricing-entry{margin-top:42px}
  .pricing-entry>a{padding:28px 32px}
  .pricing-entry .price-index{margin-bottom:26px}
}

/* Inquiry form and footer: a real next step instead of a generic closing banner. */
.home-page .contact,.case-page .contact{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(440px,.98fr);gap:clamp(58px,9vw,142px);align-items:start;min-height:700px;padding:clamp(64px,8vh,88px) var(--pad);background:oklch(35% .065 53);color:oklch(96% .008 80)}
.contact-intro .issue{margin:0 0 34px;color:oklch(96% .008 80/.62)}
.contact-intro h2{max-width:10.5ch;margin:0;font-size:clamp(46px,4vw,56px);font-weight:600;line-height:.94;letter-spacing:-.055em}
.contact-intro>p:not(.issue){max-width:45ch;margin:28px 0 0;color:oklch(96% .008 80/.72);font-size:16px;line-height:1.55}
.contact-intro>p.contact-promise{max-width:20ch;margin:24px 0 0;color:oklch(96% .008 80/.86);font-size:clamp(27px,2.4vw,34px);font-weight:500;line-height:1.08;letter-spacing:-.035em}
.contact-intro>p.contact-promise+p{margin-top:32px}
.contact-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:52px 0 0;padding-top:16px;border-top:1px solid oklch(96% .008 80/.32)}
.contact-facts dt{color:oklch(96% .008 80/.54);font-size:9px;letter-spacing:.09em;text-transform:uppercase}
.contact-facts dd{margin:6px 0 0;font-size:13px}
.inquiry-form{padding-top:0;border-top:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
.form-grid label{display:block}
.form-grid label>span:first-child{display:block;margin-bottom:7px;color:oklch(96% .008 80/.58);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.form-wide{grid-column:1/-1}
.inquiry-form input,.inquiry-form select,.inquiry-form textarea{width:100%;padding:10px 0;border:0;border-bottom:1px solid oklch(96% .008 80/.34);border-radius:0;outline:0;background:transparent;color:oklch(96% .008 80);font:inherit;font-size:16px;transition:border-color .2s ease}
.select-shell{position:relative;display:block}
.select-shell::after{position:absolute;top:14px;right:4px;width:8px;height:8px;border-right:1px solid oklch(96% .008 80/.62);border-bottom:1px solid oklch(96% .008 80/.62);content:"";pointer-events:none;transform:rotate(45deg);transform-origin:center;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .2s ease}
.select-shell:focus-within::after{border-color:oklch(96% .008 80);transform:translateY(-2px) rotate(45deg)}
.inquiry-form select{padding-right:36px;appearance:none;color-scheme:dark;cursor:pointer}
.inquiry-form select option{background:oklch(35% .065 53);color:oklch(96% .008 80)}
.inquiry-form textarea{min-height:76px;resize:vertical}
.inquiry-form input::placeholder,.inquiry-form textarea::placeholder{color:oklch(96% .008 80/.38)}
.inquiry-form input:focus,.inquiry-form select:focus,.inquiry-form textarea:focus{border-color:oklch(96% .008 80)}
.form-consent{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;margin-top:24px;color:oklch(96% .008 80/.68);font-size:11px;line-height:1.45}
.form-consent input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--paper)}
.form-consent a{text-decoration:underline;text-underline-offset:3px}
.form-privacy-note{margin:8px 0 0 28px;color:oklch(96% .008 80/.78);font-size:11px;line-height:1.45}
.form-privacy-note a{text-decoration:underline;text-underline-offset:3px}
.form-submit{display:flex;align-items:center;margin-top:24px}
.form-submit .button{flex:0 0 auto;border-color:oklch(96% .008 80);background:oklch(96% .008 80);color:oklch(35% .065 53)}
.form-status{min-height:1.4em;margin:12px 0 0;color:oklch(96% .008 80/.78);font-size:12px}

.site-footer{display:grid;grid-template-columns:minmax(300px,1.15fr) minmax(280px,.7fr) minmax(260px,.65fr);column-gap:clamp(52px,8vw,128px);align-items:start;padding:clamp(60px,6vw,84px) var(--pad) 28px;background:oklch(16% .014 58);color:var(--paper)}
.footer-label{margin:0 0 24px;color:oklch(91.5% .006 80/.46);font-size:10px;letter-spacing:.1em;text-align:left;text-transform:uppercase}
.footer-logo{display:block;width:max-content;font-size:clamp(64px,5.8vw,88px);font-weight:800;line-height:.78;letter-spacing:-.09em}
.footer-logo span{color:oklch(52% .09 48)}
.site-footer .footer-tagline{max-width:20ch;margin:34px 0 0;color:oklch(91.5% .006 80/.68);font-size:clamp(20px,1.8vw,26px);line-height:1.16;text-align:left}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px}
.site-footer .footer-nav a{width:max-content;border-bottom:1px solid transparent;color:oklch(91.5% .006 80/.78);font-size:15px;transition:color .25s ease,border-color .25s ease}
.site-footer .footer-nav a:hover{border-color:currentColor;color:var(--paper)}
.footer-location>p:not(.footer-label){max-width:25ch;margin:0;color:oklch(91.5% .006 80/.7);font-size:15px;line-height:1.45;text-align:left}
.footer-location>p:not(.footer-label)+p{margin-top:18px;color:oklch(91.5% .006 80/.46);font-size:12px}
.footer-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr auto 1fr;gap:34px;align-items:end;margin-top:clamp(64px,7vw,96px);padding-top:18px;border-top:1px solid oklch(91.5% .006 80/.24);color:oklch(91.5% .006 80/.52);font-size:10px}
.footer-bottom p{margin:0}
.footer-bottom>div{display:flex;gap:24px}
.footer-up{justify-self:end;border-bottom:1px solid transparent}
.footer-up:hover{border-color:currentColor;color:var(--paper)}

/* Legal pages share the studio system but remain clearly utilitarian. */
.legal-page{overflow-x:hidden}
.legal-page main{max-width:980px;margin:0 auto;padding:clamp(72px,9vw,120px) var(--pad)}
.legal-page h1{max-width:14ch;margin:0 0 40px;font-size:clamp(43px,6.4vw,78px);line-height:.92;letter-spacing:-.055em;overflow-wrap:break-word}
.legal-page h2{margin:52px 0 16px;font-size:clamp(24px,3vw,30px);letter-spacing:-.035em}
.legal-page h3{margin:28px 0 10px;font-size:18px;letter-spacing:-.02em}
.legal-page p,.legal-page li,.legal-page dd{max-width:76ch;color:var(--muted);line-height:1.65;overflow-wrap:anywhere}
.legal-page li+li{margin-top:7px}
.legal-page a{text-decoration:underline;text-underline-offset:4px}
.legal-lead{margin:0 0 36px;color:var(--ink)!important;font-size:clamp(18px,2.2vw,23px);line-height:1.45!important}
.legal-draft-note{margin-bottom:34px;padding:18px 20px;border:1px solid var(--accent);background:oklch(75% .14 65/.08);color:var(--ink)!important}
.legal-version{display:flex;flex-wrap:wrap;gap:12px 32px;margin:0 0 48px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.legal-version p{display:grid;gap:4px;margin:0;font-size:12px}
.legal-version span,.legal-details dt{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.legal-placeholder{display:inline;padding:.08em .28em;background:oklch(88% .13 92/.66);color:oklch(30% .06 72);font-weight:650;overflow-wrap:anywhere}
.legal-details{margin:24px 0 0;border-top:1px solid var(--line)}
.legal-details>div{display:grid;grid-template-columns:minmax(180px,.38fr) 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}
.legal-details dt,.legal-details dd{min-width:0;margin:0}
.legal-details dd{color:var(--ink)}
.legal-doc-links{display:grid;gap:12px;margin-top:64px;padding-top:24px;border-top:1px solid var(--ink);font-size:15px}
@media(max-width:640px){.legal-page .site-header{gap:12px}.legal-page .back-link{font-size:13px;white-space:nowrap}.legal-page h1{max-width:100%;font-size:clamp(36px,10.2vw,46px);overflow-wrap:normal}.legal-details>div{grid-template-columns:minmax(0,1fr);gap:6px}.legal-version{display:grid;gap:14px}.legal-placeholder{box-decoration-break:clone;-webkit-box-decoration-break:clone}}

@media(max-width:940px){
  .pricing-stage-intro{display:block;margin:64px 0 30px;padding:0;border-top:0}
  .pricing-stage-intro .issue{margin:0 0 20px;color:var(--muted)}
  .pricing-stage-intro h3{max-width:11ch;margin:0;font-size:clamp(38px,10.5vw,48px);font-weight:500;line-height:.96;letter-spacing:-.045em}
  .pricing-stage-intro>p:last-child{max-width:46ch;margin:20px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
  .price-requirement{display:block;margin-top:9px;color:var(--muted);font-size:11px}
}

@media(min-width:801px) and (max-width:1100px){
  .site-footer{grid-template-columns:1fr 1fr;column-gap:64px}
  .footer-brand{grid-column:1;grid-row:1/3}
  .footer-navigation{grid-column:2;grid-row:1}
  .footer-location{grid-column:2;grid-row:2;margin-top:46px}
  .footer-bottom{grid-column:1/-1;grid-row:3}
}

@media(max-width:800px){
  .home-page .projects-section{padding-bottom:38px}
  .home-page .services{padding-top:46px;padding-bottom:70px}
  .services .section-title{margin-bottom:34px}
  .services .section-title .services-kicker{margin-bottom:18px;font-size:10px}
  .service-details li{display:grid;grid-template-columns:30px 1fr;gap:10px;min-height:0;padding:10px 0;border-top:0;font-size:13px}
  .service-details li+li{border-top:1px solid var(--line)}
  .service-list summary:hover{padding-right:0;padding-left:0;background:transparent}
  .home-page .ai-method{max-width:none;padding-top:60px;padding-bottom:54px}
  .home-page .ai-method-note{padding-top:20px;border-top:1px solid oklch(91.5% .006 80/.3)}
  .home-page .ai-method-note p{margin:0}
  .home-page .team-section{padding-bottom:70px}
  .home-page .person>div.person-copy{display:grid;grid-template-columns:28px 104px minmax(0,1fr);column-gap:8px;row-gap:24px;align-items:start;padding-top:12px}
  .home-page .person-meta{display:contents}
  .home-page .person-meta>span{grid-column:1;grid-row:1;padding-top:3px}
  .home-page .person-meta>p{grid-column:2;grid-row:1;line-height:1.3}
  .home-page .person-copy h3{grid-column:3;grid-row:1;justify-self:end;min-height:0;width:max-content;margin:0;font-size:clamp(28px,8.5vw,38px);line-height:.9}
  .home-page .person-description{grid-column:1/-1;grid-row:2;max-width:38ch;margin:0;font-size:15px}
  .person-meta p span{display:block}
  .home-page .contact,.case-page .contact{grid-template-columns:1fr;gap:50px;min-height:0;padding:64px var(--pad)}
  .contact-intro .issue{margin-bottom:26px}
  .contact-intro h2{font-size:clamp(42px,11.5vw,52px)}
  .contact-intro>p.contact-promise{margin-top:20px;font-size:27px}
  .contact-facts{grid-template-columns:1fr 1fr;gap:18px 24px;margin-top:38px}
  .form-grid{grid-template-columns:1fr;gap:22px}
  .form-wide{grid-column:auto}
  .form-submit{display:block}
  .form-submit .button{width:100%}
  .site-footer{grid-template-columns:1fr;gap:0;padding:48px var(--pad) 26px}
  .footer-label{margin:0 0 20px}
  .footer-logo{font-size:72px}
  .site-footer .footer-tagline{margin-top:28px;font-size:21px}
  .footer-navigation{margin-top:48px}
  .footer-nav{grid-template-columns:1fr 1fr;gap:14px 28px}
  .footer-location{margin-top:44px}
  .footer-bottom{grid-column:1;grid-template-columns:1fr;gap:14px;margin-top:58px}
  .footer-bottom>div{display:grid;gap:10px}
  .footer-up{justify-self:start;margin-top:6px}
}

/* Portfolio case system: five real projects, one predictable reading pattern. */
.case-page{--muted:oklch(45% .012 70)}
.case-page figure{margin:0}
.case-page figcaption{margin-top:10px;color:var(--muted);font-size:12px}
.case-page .back-link{display:flex;align-items:center;min-height:44px}
.case-page .case-nav{align-items:center;padding-top:0;padding-bottom:0}
.case-page .case-nav a{display:flex;align-items:center;min-height:48px}
.case-page .contact{scroll-margin-top:120px}
.case-page .case-offer-copy>p:last-child,.case-page .case-offer-action dt,.case-page .case-offer-brief span,.case-page .case-offer-brief p,.case-page .case-offer-meta,.case-page .case-offer-meta span{color:#fff}
.residential-hero h1 span{font-weight:400;letter-spacing:-.03em}
.residential-hero .case-intro{max-width:48ch}
.residential-hero .case-hero-figure{margin-top:32px}
.residential-hero .case-hero-figure img{width:100%;height:min(78vh,820px);object-fit:cover}
.ostrov-neoclassic-page .residential-hero .case-hero-figure img{object-position:center 52%}
.ostrov-student-page .residential-hero .case-hero-figure img{object-position:center 48%}
.paveletskaya-page .residential-hero .case-hero-figure img{object-position:center 56%}
.simvol-page .residential-hero .case-hero-figure img{object-position:center 45%}
.case-task-copy p{margin:0}
.case-task-copy p+p{margin-top:22px}
.residential-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:20px clamp(32px,4vw,64px);align-items:end;margin-bottom:clamp(48px,7vw,88px)}
.residential-heading .issue{grid-column:1/-1;margin:0}
.residential-heading h2{grid-column:1;max-width:21ch;margin:0}
.residential-heading>p:last-child{grid-column:2;max-width:44ch;margin:0 0 7px;color:var(--muted);font-size:17px}
.residential-plan-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:clamp(40px,6vw,90px);align-items:center}
.residential-plan-layout figure img{aspect-ratio:1.414/1;object-fit:contain;background:oklch(98% .004 80)}
.design-decisions{margin:0;padding:0;border-top:1px solid var(--ink);list-style:none}
.design-decisions li{display:grid;grid-template-columns:36px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.design-decisions li>span{padding-top:4px;color:var(--muted);font-size:10px;letter-spacing:.1em}
.design-decisions h3{margin:0;font-size:clamp(22px,2vw,30px);font-weight:500;line-height:1.05;letter-spacing:-.035em}
.design-decisions p{max-width:38ch;margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
.residential-gallery{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);gap:clamp(34px,5vw,72px) 16px}
.residential-gallery figure{min-width:0}
.residential-gallery img{width:100%;height:min(66vh,680px);object-fit:cover}
.residential-gallery .gallery-wide{grid-column:1/-1}
.residential-gallery .gallery-wide img{height:min(76vh,780px);object-position:center 52%}
.residential-gallery .gallery-portrait-wide img{object-position:center 46%}
.residential-gallery .gallery-landscape{align-self:end}
.residential-gallery .gallery-landscape img{height:min(52vh,520px)}
.material-study{max-width:none;background:oklch(87.8% .012 74)}
.material-study-heading,.texture-grid{width:min(100%,calc(var(--max) - var(--pad)*2));margin-right:auto;margin-left:auto}
.material-study-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:20px clamp(32px,4vw,64px);align-items:end}
.material-study-heading .issue{grid-column:1/-1;margin:0}
.material-study-heading h2{grid-column:1;max-width:21ch;margin:0}
.material-study-heading>p:last-child{grid-column:2;max-width:48ch;margin:0 0 7px;color:var(--muted);font-size:15px;line-height:1.55}
.texture-grid{display:grid;grid-template-columns:1.15fr .85fr 1fr;gap:clamp(22px,3vw,42px);margin-top:clamp(52px,7vw,86px)}
.texture-card{min-width:0}
.texture-card:nth-child(2){margin-top:clamp(48px,6vw,86px)}
.texture-media{height:clamp(260px,30vw,430px);overflow:hidden;background:var(--line)}
.texture-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.28);transform-origin:center;transition:transform .65s cubic-bezier(.16,1,.3,1)}
.texture-card h3{margin:22px 0 10px;font-size:clamp(23px,2.1vw,31px);font-weight:500;line-height:1.05;letter-spacing:-.035em}
.texture-card p{max-width:38ch;margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.texture-floor .texture-media img{object-position:center 78%;transform:scale(1.42)}
.texture-wood .texture-media img{object-position:68% 50%;transform:scale(1.38)}
.texture-stone .texture-media img{object-position:58% 64%;transform:scale(1.36)}
.texture-textile .texture-media img{object-position:35% 72%;transform:scale(1.36)}
.texture-tile .texture-media img{object-position:50% 30%;transform:scale(1.3)}
.texture-plaster .texture-media img{object-position:50% 24%;transform:scale(1.4)}
.texture-glass .texture-media img{object-position:50% 48%;transform:scale(1.32)}
.texture-dark-stone .texture-media img{object-position:72% 46%;transform:scale(1.28)}
.texture-light-stone .texture-media img{object-position:50% 48%;transform:scale(1.3)}
.texture-blue .texture-media img{object-position:55% 48%;transform:scale(1.34)}
.texture-graphite .texture-media img{object-position:58% 46%;transform:scale(1.34)}
.residential-documentation{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:clamp(48px,8vw,120px);align-items:center;padding-bottom:clamp(36px,4vw,56px)}
.residential-documentation figure img{aspect-ratio:1.414/1;object-fit:contain;background:oklch(98% .004 80)}
.residential-documentation h2{max-width:12ch;margin:28px 0 24px}
.residential-documentation>div>p:not(.issue){max-width:46ch;color:var(--muted);font-size:16px;line-height:1.55}
.residential-documentation .documentation-note{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:12px}

/* Related work: one clear next case plus two supporting routes through the portfolio. */
.related-projects{max-width:var(--max);margin:0 auto;padding:clamp(40px,4.2vw,60px) var(--pad) clamp(72px,7vw,100px);border-bottom:1px solid var(--line)}
.related-projects-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:end}
.related-projects-heading .issue{grid-column:1/-1;margin:0}
.related-projects-heading h2{max-width:18ch;margin:0;font-size:clamp(44px,5vw,72px);line-height:.94;letter-spacing:-.055em}
.related-all-link{display:inline-flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ink);font-size:13px;font-weight:700}
.related-all-link span,.related-card-arrow{transition:transform .25s cubic-bezier(.16,1,.3,1)}
.related-project-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);grid-template-rows:1fr 1fr;gap:18px clamp(20px,3vw,42px);margin-top:clamp(32px,3.5vw,44px)}
.related-card{min-width:0;border-bottom:1px solid var(--ink)}
.related-card--next{grid-row:1/3}
.related-card:not(.related-card--next){display:block}
.related-card-media{display:block;overflow:hidden;background:var(--line)}
.related-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.16,1,.3,1),filter .45s ease}
.related-card--next .related-card-media{aspect-ratio:4/3}
.related-card:not(.related-card--next) .related-card-media{aspect-ratio:16/9}
.related-card-copy{position:relative;display:block;min-height:112px;padding:16px 42px 16px 0}
.related-card-index,.related-card-title,.related-card-meta{display:block}
.related-card-index{color:var(--muted);font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.related-card-title{margin-top:16px;font-size:clamp(23px,2.2vw,34px);font-weight:600;line-height:1;letter-spacing:-.04em}
.related-card:not(.related-card--next) .related-card-title{margin-top:12px;font-size:clamp(20px,1.7vw,26px)}
.related-card-meta{margin-top:8px;color:var(--muted);font-size:13px}
.related-card-arrow{position:absolute;right:0;bottom:16px;font-size:24px;font-weight:400}

@media(hover:hover){
  .texture-card:hover .texture-media img{transform:scale(1.34)}
  .texture-floor:hover .texture-media img,.texture-plaster:hover .texture-media img{transform:scale(1.47)}
  .texture-wood:hover .texture-media img{transform:scale(1.43)}
  .related-card:hover .related-card-media img{transform:scale(1.025);filter:saturate(.94) contrast(1.03)}
  .related-card:hover .related-card-arrow,.related-all-link:hover span{transform:translateX(5px)}
}

/* Launch hardening: prevent the mobile hero from widening the page. */
html,body{max-width:100%;overflow-x:clip}
.home-page .site-header{right:0;max-width:100vw}
.footer-label{color:oklch(91.5% .006 80/.66)}
.footer-location>p:not(.footer-label)+p{color:oklch(91.5% .006 80/.66)}

@media(max-width:800px){
  .menu-toggle{min-width:52px;min-height:44px;padding:0 4px;text-align:right}
  .hero-content{max-width:calc(100vw - var(--pad)*2)}
  .hero-content h1{max-width:100%;font-size:clamp(47px,15vw,64px)}
  .hero-content h1 em{max-width:100%;font-size:.78em;line-height:1.12;letter-spacing:-.075em;white-space:nowrap}
  .hero-meta{max-width:calc(100vw - var(--pad)*2);overflow:hidden}
  .residential-hero .case-hero-figure img{height:auto;aspect-ratio:4/3}
  .residential-heading,.material-study-heading{display:block}
  .residential-heading .issue,.material-study-heading .issue{margin-bottom:24px}
  .residential-heading h2,.material-study-heading h2{max-width:12ch}
  .residential-heading>p:last-child,.material-study-heading>p:last-child{margin-top:24px;font-size:15px}
  .residential-plan-layout,.residential-documentation{grid-template-columns:1fr}
  .residential-plan-layout{gap:42px}
  .residential-gallery{grid-template-columns:1fr;gap:38px}
  .residential-gallery .gallery-wide{grid-column:auto}
  .residential-gallery img,.residential-gallery .gallery-wide img,.residential-gallery .gallery-landscape img{height:auto;aspect-ratio:4/3}
  .residential-gallery figure:nth-child(3) img,.residential-gallery figure:nth-child(5) img{aspect-ratio:3/4}
  .texture-grid{grid-template-columns:1fr;gap:38px;margin-top:46px}
  .texture-card:nth-child(2){margin-top:0}
  .texture-media{height:auto;aspect-ratio:4/3}
  .residential-documentation{gap:44px}
  .residential-documentation h2{margin-top:24px}
  .case-page .contact{scroll-margin-top:112px}
  .related-projects-heading{grid-template-columns:1fr}
  .related-projects-heading h2{max-width:11ch}
  .related-all-link{justify-self:start}
  .related-project-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:42px;margin-top:46px}
  .related-card--next{grid-row:auto}
  .related-card:not(.related-card--next){display:block}
  .related-card--next .related-card-media,.related-card:not(.related-card--next) .related-card-media{aspect-ratio:4/3}
  .related-card-copy{min-height:106px}
}

@media(prefers-reduced-motion:reduce){
  .texture-media img,.related-card-media img,.related-card-arrow,.related-all-link span{transition:none!important}
}

/* Cookie-баннер и управление согласием на аналитику */
.cookie-banner{position:fixed;z-index:60;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(18px,3vw,52px);align-items:center;max-width:var(--max);margin:0 auto;padding:clamp(20px,2.6vw,28px) var(--pad);background:oklch(16% .014 58);color:oklch(96% .008 80);transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s ease}
.cookie-banner--enter,.cookie-banner--leave{transform:translateY(100%);opacity:0}
.cookie-banner-title{margin:0 0 6px;font-size:17px;font-weight:700;letter-spacing:-.015em}
.cookie-banner-text{max-width:74ch;margin:0;color:oklch(96% .008 80/.72);font-size:14px;line-height:1.5}
.cookie-banner-text a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.cookie-banner-text a:hover{color:oklch(96% .008 80)}
.cookie-banner-actions{display:flex;gap:10px}
.cookie-button{min-height:46px;padding:0 22px;border:1px solid oklch(96% .008 80);background:transparent;color:oklch(96% .008 80);font:inherit;font-size:15px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .18s ease,color .18s ease}
.cookie-button:hover{background:oklch(96% .008 80);color:oklch(16% .014 58)}
.cookie-banner .cookie-button:focus-visible{outline:3px solid oklch(96% .008 80);outline-offset:3px}
@media(max-width:760px){
  .cookie-banner{grid-template-columns:1fr;gap:16px;padding:20px var(--pad) 22px}
  .cookie-banner-actions{display:grid;grid-template-columns:1fr 1fr}
  .cookie-button{padding:0 12px}
}

/* Таблица файлов и переключатель на странице о cookie */
.cookie-table{width:100%;margin:22px 0 30px;border-collapse:collapse;font-size:15px;text-align:left}
.cookie-table caption{margin-bottom:12px;color:var(--muted);font-size:13px;text-align:left}
.cookie-table th,.cookie-table td{padding:12px 14px 12px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--muted);line-height:1.55}
.cookie-table th{border-bottom-color:var(--ink);color:var(--ink);font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.cookie-table td:last-child,.cookie-table th:last-child{padding-right:0;white-space:nowrap}
.cookie-table code{color:var(--ink);font-size:13px;overflow-wrap:anywhere}
.consent-controls{margin:26px 0 30px;padding:22px 24px;border:1px solid var(--line);background:oklch(88% .01 78/.42)}
.consent-current{margin:0 0 16px!important;color:var(--ink)!important;font-weight:650}
.consent-buttons{display:flex;flex-wrap:wrap;gap:10px}
.consent-buttons .button{min-height:46px;font-size:15px}
.consent-buttons .button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
@media(max-width:640px){
  .cookie-table,.cookie-table thead,.cookie-table tbody,.cookie-table tr,.cookie-table th,.cookie-table td{display:block}
  .cookie-table thead{display:none}
  .cookie-table tr{padding:14px 0;border-bottom:1px solid var(--line)}
  .cookie-table td{padding:0 0 6px;border-bottom:0;white-space:normal}
  .cookie-table td:last-child{white-space:normal}
  .consent-buttons .button{width:100%}
}

/* Скрытое поле-ловушка для ботов: невидимо и недоступно с клавиатуры */
.form-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Модальная заявка: та же форма, что и в секции перед подвалом, но без ухода со страницы.
   Нативный dialog берёт на себя Esc, ловушку фокуса и блокировку фона. */
.inquiry-modal{width:min(1180px,calc(100vw - 2*var(--pad)));max-width:none;max-height:min(880px,calc(100dvh - 40px));margin:auto;padding:0;border:0;background:transparent;color:oklch(96% .008 80)}
.inquiry-modal[open]{display:flex}
.inquiry-modal::backdrop{background:oklch(12% .02 55/.62);backdrop-filter:blur(5px)}
/* Прокручивается только содержимое, поэтому кнопка закрытия лежит рядом с ним, а не внутри. */
.inquiry-modal-inner{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(370px,.98fr);gap:clamp(36px,5vw,88px);align-items:start;padding:clamp(30px,3.6vw,58px);overflow-y:auto;overscroll-behavior:contain;background:oklch(35% .065 53)}
.inquiry-modal-close{position:absolute;z-index:1;top:12px;right:12px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid oklch(96% .008 80/.32);background:transparent;color:oklch(96% .008 80);font:inherit;font-size:24px;line-height:1;cursor:pointer;transition:background .22s ease,border-color .22s ease}
.inquiry-modal .contact-intro h2{max-width:12ch}
.inquiry-modal .contact-facts{margin-bottom:0}
@media(hover:hover){.inquiry-modal-close:hover{border-color:oklch(96% .008 80/.75);background:oklch(96% .008 80/.12)}}
@media(prefers-reduced-motion:reduce){.inquiry-modal-close{transition:none!important}}
@media(max-width:900px){
  .inquiry-modal{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
  .inquiry-modal-inner{grid-template-columns:1fr;gap:30px;padding:24px 20px 30px}
  /* В окне поля должны начинаться как можно выше, поэтому вступление сжато по вертикали. */
  .inquiry-modal .contact-intro h2{max-width:11ch;font-size:clamp(34px,8vw,44px)}
  .inquiry-modal .contact-intro .issue{margin-bottom:16px}
  .inquiry-modal .contact-intro>p.contact-promise{margin-top:14px;font-size:22px}
  .inquiry-modal .contact-intro>p.contact-promise+p{margin-top:16px;font-size:15px}
  .inquiry-modal .contact-facts{margin-top:22px}
  .inquiry-modal-close{top:8px;right:8px;width:38px;height:38px;font-size:22px}
}

/* Коллаж со съёмки в студии: три кадра внахлёст с небольшим поворотом. Углы держим
   малыми — у сайта строгая сетка, «раскиданные снимки» не должны читаться скрапбуком. */
.studio-collage{display:flex;justify-content:center;align-items:flex-start;margin-top:clamp(46px,6vw,86px)}
.studio-collage figure{position:relative;flex:0 0 auto;margin:0;padding:0;border:8px solid var(--paper);background:var(--paper);box-shadow:0 16px 38px oklch(18% .01 70/.16)}
.studio-collage img{display:block;width:100%;height:auto}
.studio-collage figure:nth-child(1){width:46%;margin-top:38px;transform:rotate(-2.4deg)}
.studio-collage figure:nth-child(2){z-index:2;width:26%;margin-left:-3%;transform:rotate(1.8deg)}
.studio-collage figure:nth-child(3){width:27%;margin-left:-2.4%;margin-top:54px;transform:rotate(-1.1deg)}
@media(max-width:800px){
  .studio-collage{display:grid;grid-template-columns:1fr 1fr;align-items:start;margin-top:40px}
  .studio-collage figure{border-width:6px}
  /* Ширины задаём теми же nth-child: медиазапрос не повышает специфичность,
     и общее правило для figure проиграло бы десктопным процентам. */
  .studio-collage figure:nth-child(1){grid-column:1/-1;grid-row:1;width:88%;margin:0 auto;transform:rotate(-1.8deg)}
  .studio-collage figure:nth-child(2){grid-column:1;grid-row:2;width:100%;margin:-14px 0 0;transform:rotate(1.6deg)}
  .studio-collage figure:nth-child(3){grid-column:2;grid-row:2;width:100%;margin:14px 0 0 -10px;transform:rotate(-1.2deg)}
}

/* Заголовки «Сначала слушаем. / Затем проектируем.» и «Выберите нужный / объём проекта»
   ломаются жёстким <br> ровно на две строки. Ограничение ширины в ch добавляло к этому
   свои переносы, поэтому его снимаем; на мобильном кегль подобран под длинную строку. */
.home-page .ai-method-intro h2,.pricing-intro h2{max-width:none}
@media(max-width:800px){
  .home-page .ai-method-intro h2{font-size:clamp(30px,9.8vw,68px)}
  .pricing-intro h2{font-size:clamp(30px,9.8vw,62px)}
}

/* iOS подставляет под ↗ и ↘ эмодзи-шрифт. В разметке стоит селектор текстового
   начертания U+FE0E, это правило — второй рубеж для браузеров, где он игнорируется. */
.hero-text-link span,.hero-meta a span,.entry-arrow,.proof-links b,.footer-up span,.project-link,.back-link{font-variant-emoji:text}

/* Контакты в подвале. Телефон и почта — обязательные сведения о владельце сайта,
   поэтому стоят на каждой странице, а не только на странице контактов. */
.footer-contact{margin:0 0 10px;font-size:17px;letter-spacing:-.01em}
.footer-contact a{border-bottom:1px solid oklch(91.5% .006 80/.32);transition:border-color .35s cubic-bezier(.16,1,.3,1)}
.footer-contact a:hover{border-color:var(--paper)}
.footer-where{max-width:24ch;margin:0;color:oklch(91.5% .006 80/.68);font-size:14px;line-height:1.5}
.footer-contact+.footer-where{margin-top:22px}
.footer-where+.footer-where{margin-top:6px}
@media(prefers-reduced-motion:reduce){.footer-contact a{transition:none!important}}
@media(max-width:800px){.footer-contact{font-size:16px}}

/* Страница контактов. Акцент переопределён на кофейный: красный из :root —
   наследство эпохи «Код Ремонт», в новых блоках его нет. */
.contacts-page{--accent:oklch(38% .045 58)}
.contacts-main{max-width:var(--max);margin:auto}
.contacts-hero{padding:clamp(56px,8vw,104px) var(--pad) clamp(44px,6vw,72px)}
.contacts-hero h1{max-width:12ch;margin:0 0 30px;font-size:clamp(52px,7vw,112px);font-weight:500;line-height:.91;letter-spacing:-.065em}
.contacts-lead{max-width:46ch;margin:0;color:var(--muted);font-size:clamp(18px,1.7vw,21px);line-height:1.45}
.channel-list{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}
.channel{display:grid;grid-template-columns:54px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}
.channel-number{padding-top:7px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em}
.channel-body{min-width:0}
.channel-label{margin:0 0 8px;color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.channel-value{margin:0 0 10px;font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1.05;letter-spacing:-.04em;overflow-wrap:anywhere}
.channel-value a{border-bottom:1px solid var(--line);transition:border-color .35s cubic-bezier(.16,1,.3,1),color .35s cubic-bezier(.16,1,.3,1)}
.channel-value a:hover{border-color:var(--accent);color:var(--accent)}
.channel-note{max-width:46ch;margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.channels-note,.contacts-docs-note{max-width:55ch;margin:34px 0 0;color:var(--muted);font-size:14px;line-height:1.6}
.contacts-legal .legal-details dd a{border-bottom:1px solid var(--line)}
.contacts-docs{display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:22px;font-size:14px}
.contacts-docs a{border-bottom:1px solid var(--line);transition:border-color .35s cubic-bezier(.16,1,.3,1),color .35s cubic-bezier(.16,1,.3,1)}
.contacts-docs a:hover{border-color:var(--accent);color:var(--accent)}
@media(prefers-reduced-motion:reduce){.channel-value a,.contacts-docs a{transition:none!important}}
@media(max-width:800px){.channel{grid-template-columns:38px 1fr;gap:16px;padding:24px 0}.contacts-hero h1{font-size:clamp(44px,13vw,68px)}}

/* Страницы после отправки формы: подтверждение и отказ. Обе работают без JS —
   номер заявки и причина отказа подставляются на сервере. */
.done-page{--accent:oklch(38% .045 58)}
.done-main{max-width:var(--max);margin:auto}
.done-hero{padding:clamp(56px,8vw,104px) var(--pad) clamp(44px,6vw,72px)}
.done-hero h1{max-width:13ch;margin:0 0 26px;font-size:clamp(48px,6.4vw,100px);font-weight:500;line-height:.92;letter-spacing:-.06em}
.done-number,.done-reason{display:inline-block;max-width:62ch;margin:0 0 26px;padding:11px 17px;border:1px solid var(--line);font-size:15px;line-height:1.45;letter-spacing:-.01em}
.done-number b{font-weight:700}
.done-reason{color:var(--muted)}
.done-lead{max-width:48ch;margin:0;color:var(--muted);font-size:clamp(18px,1.7vw,21px);line-height:1.45}
.done-contacts .channel-value{margin:0 0 14px}
.done-contacts .channels-note{margin-top:26px}
.done-contacts .channels-note a{border-bottom:1px solid var(--line)}
.done-contacts .channels-note a:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:800px){.done-hero h1{font-size:clamp(40px,12vw,62px)}}

/* Подвал юридических страниц и 404. Статья 18.1 части 2 152-ФЗ требует
   неограниченного доступа к политике — значит ссылка на неё должна быть на
   каждой странице, включая ту, куда посетитель попал по ошибке. */
.legal-footer{max-width:980px;margin:0 auto;padding:0 var(--pad) clamp(56px,7vw,96px)}
.legal-footer-brand{margin:0 0 14px;padding-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.legal-footer-contacts{display:flex;flex-wrap:wrap;gap:8px 26px;margin:0 0 18px;font-size:17px;letter-spacing:-.01em}
.legal-footer-contacts a{border-bottom:1px solid var(--line);transition:border-color .35s cubic-bezier(.16,1,.3,1),color .35s cubic-bezier(.16,1,.3,1)}
.legal-footer-links{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:14px}
.legal-footer-links a{border-bottom:1px solid var(--line);transition:border-color .35s cubic-bezier(.16,1,.3,1),color .35s cubic-bezier(.16,1,.3,1)}
.legal-footer-contacts a:hover,.legal-footer-links a:hover{border-color:var(--accent);color:var(--accent)}
.legal-footer-note{margin:22px 0 0;color:var(--muted);font-size:12px}
@media(prefers-reduced-motion:reduce){.legal-footer-contacts a,.legal-footer-links a{transition:none!important}}

/* Читаемость юридических страниц.
   Приглушённый #706b64 на бумаге #e5e2de давал 4.11:1 при пороге 4.5:1 —
   под правило попадал весь содержательный текст, включая перечни данных и
   сроки хранения. Новое значение даёт около 6:1.
   Подписи к реквизитам были 10px прописными при том же контрасте. */
.legal-page{--muted:oklch(45% .012 70);--accent:oklch(38% .045 58)}
.legal-page .legal-version span,.legal-page .legal-details dt{font-size:12px;letter-spacing:.06em}
.legal-page .legal-version p{font-size:13px}

/* Строка согласия под формой — самый мелкий текст на странице, а прочесть его
   человек обязан до того, как отметит галочку. */
.form-consent{font-size:13px;color:oklch(96% .008 80/.78)}

/* Плашка архивной копии юридического документа. */
.legal-archive-note{max-width:76ch;margin:0 0 32px;padding:14px 17px;border:1px solid var(--line);color:var(--muted);font-size:14px;line-height:1.55}
