@font-face{font-family:"Svir Sans";src:url("/SvirSans-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Svir Sans";src:url("/SvirSans-Bold.ttf") format("truetype");font-weight:700;font-display:swap}
:root{--paper:#f4f2ed;--ink:#181818;--red:#ca2027;--muted:#5e5b57;--line:#d1cdc5;--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Svir Sans",Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img,svg{display:block;max-width:100%}p{line-height:1.6}h1,h2,p{margin-top:0}em{font-style:normal;color:var(--red)}:focus-visible{outline:2px solid var(--red);outline-offset:5px}.wrap{width:min(1340px,calc(100% - 96px));margin-inline:auto}
header{height:72px;background:#f4f2edf2;position:sticky;top:0;z-index:4;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-inline:max(48px,calc((100% - 1340px)/2));gap:20px;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:8px;font-size:18px;letter-spacing:-.04em}.brand img{width:38px;mix-blend-mode:multiply}.brand b{font-weight:900}nav{display:flex;gap:32px;font-size:14px}.head-cta{white-space:nowrap;font-weight:700;font-size:14px;border-bottom:1px solid;padding-block:7px}.head-cta span{color:var(--red);margin-left:10px}nav a:hover,.head-cta:hover{color:var(--red)}.reading{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(var(--reading,0));transform-origin:left}
.hero{min-height:min(720px,calc(100svh - 72px));display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:24px;padding-block:48px}.eyebrow,.plate-label{font:700 11px/1.3 "Svir Sans",sans-serif;letter-spacing:.12em}.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:24px}.eyebrow i{height:8px;width:8px;background:var(--red);display:inline-block}.hero h1{font-size:clamp(65px,9vw,146px);letter-spacing:-.095em;line-height:.86;margin:0 0 30px;font-weight:900}.hero-desc{max-width:365px;color:var(--muted);font-size:17px;margin-bottom:26px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:32px;min-height:52px;background:var(--red);color:white;padding:0 17px;font-size:14px;font-weight:700;border:0;transition:background .25s}.button:hover{background:#9f121b}.button span{font-size:20px;transition:transform .25s}.button:hover span{transform:translate(3px,2px)}.hero-model,.service-panel,.process-visual{background-size:25px 25px;background-image:linear-gradient(to right,#b4aea438 1px,transparent 1px),linear-gradient(to bottom,#b4aea438 1px,transparent 1px);border:1px solid var(--line);position:relative;overflow:hidden}.hero-model{padding:17px 17px 14px;background-color:#eeebe4;isolation:isolate}.hero-model:after{content:"";height:1px;background:#ca202777;position:absolute;inset:0 0 auto;animation:scan 7s infinite;pointer-events:none}.plate-label{display:flex;justify-content:space-between;gap:10px;color:var(--muted);position:relative;z-index:1}.villa{width:100%;overflow:visible}.model-layer{transition:opacity .55s,transform .65s var(--ease);transform-origin:center}.model-layer.off{opacity:0;transform:translateY(30px)}.hero-model .model-layer{animation:assemble .95s var(--ease) both;animation-delay:calc(.35s + var(--layer)*.24s)}.hero-copy>*{animation:assemble .8s var(--ease) both;animation-delay:calc(.2s + var(--order,0)*.12s)}.hero-copy h1{--order:1}.hero-desc{--order:2}.hero-copy .button{--order:3}@keyframes assemble{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes scan{0%{transform:translateY(0);opacity:0}15%,75%{opacity:1}95%,100%{transform:translateY(550px);opacity:0}}
.strip{background:var(--ink);color:white;overflow:hidden;padding:14px 0;font:700 12px/1.5 "Svir Sans",sans-serif;letter-spacing:.14em}.strip div{width:max-content;animation:ticker 32s linear infinite;white-space:nowrap}.strip b{color:#ff5a63;margin:0 23px}@keyframes ticker{to{transform:translateX(-50%)}}
.services,.brief{padding-block:102px}.section-head h2{font-size:clamp(42px,6vw,92px);font-weight:900;letter-spacing:-.085em;line-height:.95;margin:0 0 20px}.section-head>p:last-child:not(.eyebrow){color:var(--muted);max-width:450px}.services-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px;align-items:start;margin-top:38px}.service-panel{position:sticky;top:93px;padding:16px;background-color:#eeebe4}.service-panel p{font-weight:700;margin:8px 0 0}.service-art{width:100%;aspect-ratio:10/7}.service-art path{fill:none;stroke:var(--red);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;animation:draw .85s var(--ease) both}@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}.service-item{border-top:1px solid var(--line)}.service-item:last-child{border-bottom:1px solid var(--line)}.service-item summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:10px;padding:20px 0;font-weight:800;font-size:clamp(16px,2vw,24px)}.service-item summary::-webkit-details-marker{display:none}.service-item summary span{font:700 12px "Svir Sans",sans-serif;color:var(--red)}.service-item summary b{font-weight:400;color:var(--red);transition:transform .3s}.service-item[open] summary b{transform:rotate(45deg)}.service-item p{margin:0 26px 20px 48px;color:var(--muted);animation:assemble .35s var(--ease)}
.process{background:#1b1b1b;color:#f4f2ed;padding-block:90px}.process-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:55px;align-items:start}.process-visual{position:sticky;top:95px;padding:18px;background-color:#242322;border-color:#534e49;background-image:linear-gradient(to right,#b4aea420 1px,transparent 1px),linear-gradient(to bottom,#b4aea420 1px,transparent 1px)}.process-visual .plate-label{color:#d0cbc2}.process em{color:#ff5a63}.phase-meter{display:flex;gap:5px}.phase-meter i{width:25%;height:3px;background:#5f5753;transition:background .4s}.phase-meter i.active{background:#ff5a63}.steps .section-head{margin-bottom:30px}.step{background:none;color:inherit;border:0;border-top:1px solid #504d49;width:100%;display:grid;grid-template-columns:32px 1fr 18px;gap:9px;text-align:left;padding:16px 0;transition:color .3s}.step:last-child{border-bottom:1px solid #504d49}.step strong{font-size:20px}.step span,.step b{color:#ff6b72}.step p{font-size:14px;color:#d2cbc2;margin:4px 0 0}.step[aria-pressed=true],.step:hover{color:#ff6b72}
.brief{display:grid;grid-template-columns:1fr 1fr;gap:48px}form{display:grid;gap:15px;align-content:start}form label{font-size:13px;font-weight:700;display:grid;gap:7px}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:12px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:0;background:#fffdf9;color:var(--ink);padding:11px;min-height:46px}textarea{resize:vertical}form .button{justify-self:start}.form-status{margin:0;color:var(--muted);min-height:1.5em}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px;padding-block:28px}footer img{width:220px;mix-blend-mode:multiply}footer span{font-size:13px;color:var(--muted)}footer a:last-child{font-size:27px;color:var(--red)}
.intro[hidden]{display:none}.intro{position:fixed;inset:0;display:grid;place-items:center;z-index:10;background:var(--paper);pointer-events:none}.intro-stage{text-align:center;font:700 11px "Svir Sans",sans-serif;letter-spacing:.2em}.intro-mark{width:min(34vw,190px);aspect-ratio:1;position:relative;margin:16px auto;mix-blend-mode:multiply}.intro-mark img{position:absolute;inset:0;width:100%;animation:logo-parts .66s var(--ease) both}.intro-mark img:nth-child(1){clip-path:inset(0 0 46% 0);--x:-45px;--y:-18px}.intro-mark img:nth-child(2){clip-path:inset(54% 0 0 0);--x:45px;--y:18px;animation-delay:.1s}.intro-mark img:nth-child(3){clip-path:polygon(35% 33%,87% 33%,87% 68%,51% 68%,51% 54%,35% 54%);--x:0;--y:35px;animation-delay:.2s}@keyframes logo-parts{from{opacity:0;transform:translate(var(--x),var(--y))}to{opacity:1;transform:none}}.flying-mark{position:fixed;z-index:11;pointer-events:none;transform-origin:top left;mix-blend-mode:multiply}.intro-stage small{color:var(--muted)}.reveal.ready{opacity:0;transform:translateY(24px)}.reveal{transition:opacity .65s,transform .75s var(--ease)}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}header{padding-inline:24px}.hero{gap:14px}.hero h1{font-size:clamp(59px,9.7vw,100px)}.process-grid{gap:24px}.services-layout{gap:24px}}
@media(max-width:650px){html{scroll-padding-top:72px}.wrap{width:calc(100% - 32px)}header{padding-inline:16px;height:60px;gap:10px}nav{display:none}.hero,.services-layout,.process-grid,.brief{grid-template-columns:1fr}.hero{padding-block:40px 24px;gap:26px}.hero h1{font-size:clamp(63px,13vw,90px);margin-bottom:20px}.hero-desc{font-size:15px}.services,.brief,.process{padding-block:59px}.services-layout{margin-top:24px}.service-panel{position:relative;top:auto}.service-art{max-height:150px}.process-visual{top:60px;z-index:2}.process-visual svg{max-height:25svh}.process-visual .plate-label{font-size:9px}.brief{gap:18px}footer img{width:155px}footer span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reveal.ready{opacity:1;transform:none}}
[hidden]{display:none!important}
.request-card{align-self:start;min-width:0}.request-card,.service-panel,.project-sheet,.service-item,.step{transition:opacity .7s,transform .75s var(--ease)}.ready:not(.reveal){opacity:0;transform:translateY(16px)}.request-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:0 0 30px;gap:8px}.request-progress li{padding-bottom:11px;position:relative;border-bottom:2px solid var(--line);font-size:clamp(11px,1.5vw,14px);font-weight:700;color:var(--muted);white-space:nowrap}.request-progress li span{font-family:"Svir Sans",sans-serif;margin-right:3px}.request-progress li:after{content:"";position:absolute;inset:auto 0 -2px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.request-progress li.done:after,.request-progress li[aria-current]:after{transform:scaleX(1)}.request-progress li[aria-current]{color:var(--red)}.request-step{min-width:0;border:0;margin:0;padding:0;display:grid;gap:15px;animation:assemble .44s var(--ease) both}.request-step legend{padding:0;margin-bottom:18px;font-weight:800;font-size:clamp(19px,2.5vw,31px);letter-spacing:-.045em}.request-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.back-step,.admin-page .outline{background:transparent;border:1px solid var(--line);padding:12px 14px;color:var(--ink);font-weight:700}.back-step:hover,.admin-page .outline:hover{border-color:var(--red);color:var(--red)}button:disabled{opacity:.6;cursor:wait}.request-success{animation:assemble .5s var(--ease) both}.request-success b{display:grid;place-items:center;background:var(--red);color:white;width:54px;height:54px;font-size:30px;margin-bottom:20px;animation:stamp .55s var(--ease) both}.request-success h3{font-size:clamp(25px,4vw,42px);margin:0;letter-spacing:-.055em}.request-success p{color:var(--muted);margin-top:10px}@keyframes stamp{from{transform:scale(1.65) rotate(-15deg);opacity:0}to{transform:none;opacity:1}}.next-label{font-size:14px!important}
.admin-page header{padding-inline:0}.admin-page .wordmark{font-weight:900;color:var(--red)}.admin-page .admin{max-width:920px;padding-block:45px}.admin-page h1{font-size:clamp(35px,7vw,70px);letter-spacing:-.07em}.admin-page .admin-card{padding:clamp(14px,3vw,30px);margin-top:20px;border:1px solid var(--line);background:#faf8f4}.admin-page .admin-check{display:flex;align-items:center;gap:10px}.admin-page input[type=checkbox]{width:auto;min-height:0;accent-color:var(--red)}.admin-page .actions{display:flex;flex-wrap:wrap;gap:10px}.admin-page table{width:100%;border-collapse:collapse;text-align:left}.admin-page td,.admin-page th{padding:8px 4px;border-bottom:1px solid var(--line);font-size:clamp(11px,2vw,15px)}.admin-page pre{white-space:pre-wrap;overflow-wrap:anywhere}.admin-page summary{cursor:pointer;padding-block:8px}
@media(prefers-reduced-motion:reduce){.ready:not(.reveal){opacity:1;transform:none}.strip div{animation:none!important}.hero-model:after{display:none}}

.hero-model .model-layer {
  translate: 0 var(--cut-y, 0px);
  transition: translate .52s var(--ease);
}
.cut-control {
  position: relative;
  z-index: 1;
  padding: 12px 0 1px;
  border-top: 1px solid var(--line);
}
.cut-heading output {
  color: var(--red);
  text-align: right;
  letter-spacing: .04em;
}
.cut-control input[type="range"] {
  display: block;
  width: 100%;
  min-height: 32px;
  margin: 2px 0;
  padding: 0;
  border: 0;
  background: transparent;
  accent-color: var(--red);
  cursor: ew-resize;
}
.cut-scale {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 11px;
}

.process-visual {
  background-color: #151515;
  box-shadow: inset 0 0 65px #0008;
}
.process-scene { position: relative; overflow: hidden; margin: 4px 0 14px; }
.process-figure {
  position: absolute; inset: 12% auto auto 5%;
  font-size: clamp(105px, 17vw, 250px); line-height: 1; font-weight: 900;
  color: #ffffff0c; letter-spacing: -.1em; user-select: none;
}
.process-drawing { position: relative; width: 100%; }
.process-crosshair { fill: none; stroke: #ffffff24; stroke-dasharray: 2 7; }
.process-beam {
  fill: none; stroke: #ff414b; stroke-width: 2.3; stroke-linecap: round;
  stroke-linejoin: round; stroke-dasharray: 1; filter: drop-shadow(0 0 8px #ff213dcc);
}
.process-readout {
  position: absolute; bottom: 5%; left: 5%; display: flex; align-items: center; gap: 8px;
  color: #ffc0c0; font-size: 11px; font-weight: 700; letter-spacing: .14em;
}
.process-readout i { width: 6px; height: 6px; background: currentColor; }

.brief {
  width: min(1410px, calc(100% - 96px));
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 28px;
  align-items: start;
}
.brief .section-head { grid-column: 1 / -1; }
.brief .section-head h2 { font-size: clamp(46px, 6vw, 94px); }
.brief .section-head > p:last-child { max-width: 610px; }
.project-sheet,.brief .request-card { min-width: 0; align-self: stretch; }
.project-sheet {
  display: flex; flex-direction: column;
  background: #e9e3d9; border: 1px solid #c8bfb4;
  box-shadow: 0 9px 22px #20160e12;
}
.sheet-top,.sheet-footer {
  display:flex; align-items:center; gap:10px; padding:16px 22px;
  font-size:11px; font-weight:700; letter-spacing:.12em;
}
.sheet-top { justify-content:space-between; background:#a71926; color:#fff; }
.sheet-body {
  position: relative; isolation:isolate; flex:1; overflow:hidden;
  padding: clamp(18px,3vw,37px);
  background-image:linear-gradient(90deg,#a897811a 1px,transparent 1px),linear-gradient(#a897811a 1px,transparent 1px);
  background-size:22px 22px;
}
.sheet-body h3,.request-title { margin:0 0 24px; font-size:clamp(23px,2.8vw,37px); letter-spacing:-.055em; }
.sheet-watermark {
  position:absolute; z-index:-1; bottom:-22px; right:22px;
  color:#b5202b14; font-size:190px; line-height:.9; font-weight:900; letter-spacing:-.09em;
}
.sheet-data { margin:0; display:grid; gap:13px; }
.sheet-data div { border-bottom:1px solid #b5a99c; padding:0 0 9px; min-width:0; }
.sheet-data dt { font-size:11px; font-weight:700; letter-spacing:.07em; color:#594e47; }
.sheet-data dd { margin:4px 0 0; font-size:clamp(14px,1.6vw,19px); line-height:1.28; color:#594e47; overflow-wrap:anywhere; }
.sheet-data dd.filled { color:#241a15; font-weight:700; }
.sheet-data dd[data-preview="details"] { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.sheet-footer { margin-top:auto; border-top:1px solid #c8bfb4; color:#8b1420; }
.sheet-footer i { width:7px; height:7px; background:currentColor; }
.project-sheet[data-stage="3"] .sheet-footer { background:#a71926; color:#fff; }
.brief .request-card { background:#fcfaf6; border:1px solid #d4cabe; padding:clamp(18px,3vw,38px); }
.brief .request-title { margin-bottom:16px; }
.brief .request-progress { margin:0 0 28px; }
.brief .request-step legend { margin-bottom:4px; }
.request-hint { margin:0 0 2px; font-size:14px; color:#544b44; }
.brief .request-step :is(input,select,textarea) { min-height:51px; background:#fff; font-size:16px; }
.brief .request-step textarea { min-height:105px; }
.brief .request-actions { margin-top:6px; }
@media(max-width:820px) {
  .brief { width:calc(100% - 40px); grid-template-columns:minmax(0,1fr); gap:18px; }
  .brief .request-card { grid-row:2; }
  .brief .project-sheet { grid-row:3; }
}
.admin-login {max-width:540px;margin:70px auto;}
.admin-login h1 {font-size:clamp(32px,5vw,54px);margin-bottom:22px;}
.admin-login form {margin-bottom:16px;}
.admin-page header form {margin:0;}
.admin-page header form button {min-height:36px;}

header .language-switch { display:flex; gap:3px; align-items:center; flex-shrink:0; }
.language-switch a { display:block; padding:6px 5px; color:var(--muted); text-decoration:none; font-size:11px; font-weight:700; }
.language-switch a[aria-current] { color:var(--red); box-shadow:inset 0 -2px var(--red); }
.language-switch a:hover { color:var(--red); }
html[lang="ru"] .hero h1, html[lang="en"] .hero h1 { font-size:clamp(52px,7.15vw,112px); }
@media(max-width:430px) {
  html[lang="ru"] .hero h1, html[lang="en"] .hero h1 { font-size:clamp(41px,12vw,58px); }
  header .language-switch { gap:0; }
  .language-switch a { padding-inline:4px; }
}
@media(max-width:430px) {
  header .head-cta { font-size:10px; }
  header .head-cta span { margin-left:2px; }
  header .brand { font-size:13px; gap:5px; }
  header .brand img { width:29px; height:auto; }
}
