/* ППУ ТОР — общий стиль страниц «Работы», «Справочник», объектов и статей.
   Палитра: снег / графит / полярная ночь / пена. Шрифт: Geologica. Свет: тёплый боковой. */
@font-face{font-family:"Geologica";src:url(fonts/geologica-cyr.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Geologica";src:url(fonts/geologica-lat.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215}
:root{
  --ice:#EBF0F1; --sheet:#F8FAFA; --ink:#17232B; --steel:#54636D; --line:#C8D2D7;
  --cold:#2F93C4; --foam:#F1C84B; --foam2:#D4A62B; --on-foam:#231C08;
  --polar:#11273A; --polar2:#1A3650; --on-polar:#E4ECF0; --frost:#8CC8E2;
  --shadow-warm:0 30px 60px -36px rgba(40,26,4,.45);
  --f:"Geologica",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --ice:#0C171E; --sheet:#132129; --ink:#E5ECEF; --steel:#93A3AC; --line:#273741;
  --cold:#7CC3E6; --foam:#E2BB46; --foam2:#C49B2A; --on-foam:#1F1907;
  --polar:#0A1C2A; --polar2:#14304A; --shadow-warm:0 30px 60px -36px rgba(0,0,0,.7); color-scheme:dark}}
:root[data-theme="dark"]{
  --ice:#0C171E; --sheet:#132129; --ink:#E5ECEF; --steel:#93A3AC; --line:#273741;
  --cold:#7CC3E6; --foam:#E2BB46; --foam2:#C49B2A; --on-foam:#1F1907;
  --polar:#0A1C2A; --polar2:#14304A; --shadow-warm:0 30px 60px -36px rgba(0,0,0,.7); color-scheme:dark}
*{box-sizing:border-box}
html{overflow-x:clip;scroll-padding-top:84px}
body{margin:0;background:var(--ice);color:var(--ink);font:400 17px/1.6 var(--f);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--cold);outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}
@media(min-width:760px){.wrap{padding-inline:32px}}
.disp{font-weight:760;font-variation-settings:"SHRP" 100;letter-spacing:-.025em}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border-radius:6px;font:600 16px/1.2 var(--f);text-decoration:none;border:2px solid var(--ink);cursor:pointer;transition:background .2s,color .2s}
.btn.solid{background:var(--ink);color:var(--ice)}
.btn.solid:hover{background:transparent;color:var(--ink)}
.btn.quiet{background:transparent;color:var(--ink)}
.btn.quiet:hover{background:var(--ink);color:var(--ice)}
.btn.foam{background:var(--foam);border-color:var(--foam);color:var(--on-foam)}
.btn.foam:hover{background:transparent;color:var(--foam)}

/* шапка */
header.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--ice) 90%,transparent);backdrop-filter:blur(10px)}
header.top .wrap{display:flex;align-items:center;gap:28px;min-height:68px;padding-block:8px}
.logo{display:inline-flex;background:#F2F5F7;border-radius:6px;padding:6px 10px}
.logo img{height:24px;width:auto}
header.top nav{display:flex;gap:26px;margin-left:auto;font-weight:500;font-size:15.5px}
header.top nav a{text-decoration:none;color:var(--steel)}
header.top nav a:hover,header.top nav a[aria-current]{color:var(--ink)}
header.top .btn{min-height:42px;padding:9px 16px;font-size:15px}
@media(max-width:760px){header.top nav{display:none}header.top .btn{margin-left:auto}}

/* начало страницы */
.intro{padding-block:clamp(36px,6vw,88px) clamp(24px,4vw,48px)}
.crumb{display:flex;gap:8px;flex-wrap:wrap;font-size:14.5px;color:var(--steel);margin-bottom:18px}
.crumb a{text-decoration:none;color:var(--steel)}
.crumb a:hover{color:var(--ink);text-decoration:underline}
.intro h1{font:760 clamp(34px,5vw,72px)/1.02 var(--f);font-variation-settings:"SHRP" 100;letter-spacing:-.028em;max-width:18ch}
.intro .lead{margin-top:20px;color:var(--steel);font-size:clamp(17px,1.4vw,20px);max-width:52ch}

/* фото и свет */
.photo{position:relative;overflow:hidden;border-radius:8px;background:var(--line);box-shadow:var(--shadow-warm)}
.photo img{width:100%;height:100%;object-fit:cover}
.photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,206,120,.16),transparent 45%)}

/* работы */
.works{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(36px,5vw,72px) clamp(16px,2.4vw,32px);padding-bottom:clamp(56px,8vw,112px)}
.work{grid-column:span 6;display:grid;gap:16px;text-decoration:none;color:inherit}
.work.wide{grid-column:span 12;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end;gap:clamp(20px,3vw,48px)}
.work .photo{aspect-ratio:4/3}
.work.wide .photo{aspect-ratio:16/10}
.work .photo img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.work:hover .photo img{transform:scale(1.035)}
.work .where{font-size:14.5px;color:var(--steel)}
.work h2{font:700 clamp(22px,2vw,30px)/1.15 var(--f);font-variation-settings:"SHRP" 100;letter-spacing:-.015em;margin-top:4px;max-width:24ch}
.work.wide h2{font-size:clamp(28px,3vw,44px)}
.work:hover h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.facts li{font-size:14.5px;font-weight:500;padding:6px 10px;border-radius:5px;background:var(--sheet);border:1px solid var(--line)}
@media(max-width:860px){.work,.work.wide{grid-column:span 12;grid-template-columns:minmax(0,1fr)}}

/* страница объекта */
.cover{margin-top:0;margin-bottom:clamp(40px,6vw,80px)}
.cover .photo{aspect-ratio:16/9;max-height:78vh}
.cover.portrait .photo{aspect-ratio:4/5;max-width:620px}
.cover .compare{aspect-ratio:3/4;max-width:560px;max-height:none}
.cover figcaption{margin-top:12px;font-size:14px;color:var(--steel)}
.case{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:clamp(32px,6vw,96px);align-items:start;padding-bottom:clamp(56px,8vw,104px)}
.prose{max-width:66ch}
.prose h2{font:700 clamp(24px,2.2vw,32px)/1.15 var(--f);font-variation-settings:"SHRP" 100;letter-spacing:-.015em;margin:clamp(36px,4vw,56px) 0 14px}
.prose h2:first-child{margin-top:0}
.prose h3{font:650 21px/1.25 var(--f);margin:32px 0 10px}
.prose p,.prose li{font-size:18px;line-height:1.65}
.prose p+p{margin-top:16px}
.prose ul,.prose ol{padding-left:1.2em;margin:14px 0}
.prose li+li{margin-top:6px}
.prose a{text-decoration-thickness:1px;text-underline-offset:3px}
.prose figure{margin:28px 0}
.prose figure .photo{aspect-ratio:4/3}
.prose figcaption{margin-top:10px;font-size:14.5px;color:var(--steel)}
.prose table{border-collapse:collapse;width:100%;margin:18px 0;font-size:16px}
.prose td,.prose th{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}
.passport{position:sticky;top:92px;border-radius:8px;padding:24px;background-color:var(--foam);color:var(--on-foam);box-shadow:var(--shadow-warm);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.05' numOctaves='3' seed='7'/%3E%3CfeDiffuseLighting lighting-color='%23fff6d8' surfaceScale='3'%3E%3CfeDistantLight azimuth='225' elevation='52'/%3E%3C/feDiffuseLighting%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)' opacity='.5'/%3E%3C/svg%3E");background-blend-mode:multiply}
.passport h2{font:700 20px/1.2 var(--f);font-variation-settings:"SHRP" 100}
.passport dl{margin:14px 0 0;display:grid}
.passport dl div{padding:11px 0;border-top:1px solid rgba(35,28,8,.22)}
.passport dt{font-size:13.5px;font-weight:600;opacity:.75}
.passport dd{margin:3px 0 0;font-size:16px;font-weight:500;line-height:1.4}
@media(max-width:960px){.case{grid-template-columns:minmax(0,1fr)}.passport{position:static;order:-1}}

/* сравнение до/после */
.compare{position:relative;aspect-ratio:3/4;max-width:620px;max-height:80vh;--x:50%;touch-action:pan-y;user-select:none}
.compare img{position:absolute;inset:0}
.compare .after{clip-path:inset(0 0 0 var(--x))}
.compare .bar{position:absolute;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15),0 0 24px 4px rgba(255,226,150,.55);pointer-events:none}
.compare .bar::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.3);
  background-image:linear-gradient(90deg,transparent 14px,var(--ink) 14px 16px,transparent 16px 28px,var(--ink) 28px 30px,transparent 30px)}
.compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.compare .tag{position:absolute;bottom:14px;padding:6px 10px;border-radius:5px;background:rgba(18,38,30,.84);color:#EEF3F5;font:600 14px/1 var(--f);pointer-events:none}
.compare .t1{left:14px}.compare .t2{right:14px}
.compare:has(input:focus-visible){outline:3px solid var(--cold);outline-offset:3px}

/* следующий объект */
.next{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-block:28px;border-top:1px solid var(--line);margin-bottom:clamp(48px,7vw,96px)}
.next a{font-weight:600;font-size:18px}

/* справочник */
.guide{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start;padding-bottom:clamp(56px,8vw,112px)}
.filters{position:sticky;top:92px;display:grid;gap:18px}
.filters label{display:grid;gap:8px;font-size:14.5px;font-weight:600}
.filters input{font:500 16px/1.3 var(--f);color:var(--ink);background:var(--sheet);border:1px solid var(--line);border-radius:6px;padding:12px 14px;min-height:48px;width:100%}
.topics{display:flex;flex-direction:column;gap:2px}
.topics button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:6px;font-weight:500;color:var(--steel)}
.topics button:hover{color:var(--ink);background:var(--sheet)}
.topics button[aria-pressed="true"]{color:var(--on-foam);background:var(--foam)}
.topics button:focus-visible{outline:3px solid var(--cold)}
.topics small{font-size:14px;opacity:.75}
.count{font-size:14.5px;color:var(--steel);margin-bottom:8px}
.items{display:grid}
.item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;padding:24px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.item:last-child{border-bottom:1px solid var(--line)}
.item h2{font:700 clamp(20px,1.8vw,25px)/1.2 var(--f);font-variation-settings:"SHRP" 100;letter-spacing:-.01em;max-width:34ch}
.item p{grid-column:1;color:var(--steel);max-width:60ch}
.item .tp{grid-row:1;grid-column:2;font-size:14px;color:var(--steel);white-space:nowrap;padding-top:4px}
.item:hover h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.empty{padding:32px 0;color:var(--steel)}
@media(max-width:860px){.guide{grid-template-columns:minmax(0,1fr)}.filters{position:static}.topics{flex-direction:row;flex-wrap:wrap}.topics button{border:1px solid var(--line)}.item{grid-template-columns:minmax(0,1fr)}.item .tp{grid-row:auto;grid-column:1;order:-1;padding:0}}

/* статья */
.reader{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:clamp(28px,6vw,96px);align-items:start;padding-bottom:clamp(56px,8vw,104px)}
.toc{position:sticky;top:92px;display:grid;gap:4px;font-size:15px}
.toc b{font-size:14px;color:var(--steel);font-weight:600;margin-bottom:6px}
.toc a{text-decoration:none;color:var(--steel);padding:5px 0 5px 12px;border-left:2px solid var(--line)}
.toc a:hover{color:var(--ink);border-left-color:var(--foam2)}
.toc .back{margin-top:14px;border:0;padding-left:0;font-weight:600;color:var(--ink)}
.note{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);font-size:14.5px;color:var(--steel)}
.related{margin-top:48px;display:grid;gap:10px}
.related h2{margin:0 0 6px}
@media(max-width:960px){.reader{grid-template-columns:minmax(0,1fr)}.toc{position:static}}

/* заявка: тёплое окно в полярной ночи */
.req-wrap{padding-bottom:clamp(56px,8vw,104px)}
.req{position:relative;isolation:isolate;overflow:hidden;background:var(--polar);color:var(--on-polar);border-radius:10px;padding:clamp(24px,4vw,56px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px)}
.req::before{content:"";position:absolute;z-index:-1;right:-6%;top:50%;width:min(720px,80%);aspect-ratio:1;transform:translateY(-50%);background:radial-gradient(closest-side,rgba(255,196,96,.42),rgba(255,170,70,.16) 45%,transparent 74%)}
.req::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 22%,rgba(166,216,198,.16) 0 1.5px,transparent 2px) 0 0/26px 26px,radial-gradient(circle at 60% 70%,rgba(166,216,198,.1) 0 1px,transparent 1.5px) 0 0/19px 19px;-webkit-mask:linear-gradient(90deg,#000 0 40%,transparent 70%);mask:linear-gradient(90deg,#000 0 40%,transparent 70%)}
.req h2{font:760 clamp(30px,4vw,54px)/1.02 var(--f);font-variation-settings:"SHRP" 100;letter-spacing:-.025em}
.req .lead{color:color-mix(in srgb,var(--on-polar) 72%,var(--polar));margin-top:16px;max-width:44ch}
.ph{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:26px}
.ph .num{font:760 clamp(22px,2.4vw,30px)/1 var(--f);font-variation-settings:"SHRP" 100;user-select:all}
.ph button{font:500 14px/1 var(--f);background:transparent;color:inherit;border:1px solid color-mix(in srgb,var(--on-polar) 40%,transparent);border-radius:6px;padding:10px 12px;cursor:pointer;min-height:40px}
.req form{display:grid;gap:12px}
.req label{display:grid;gap:6px;font-size:14px;color:color-mix(in srgb,var(--on-polar) 75%,var(--polar))}
.req input,.req select,.req textarea{font:500 16px/1.3 var(--f);color:var(--on-polar);background:color-mix(in srgb,var(--on-polar) 8%,var(--polar));border:1px solid color-mix(in srgb,var(--on-polar) 24%,transparent);border-radius:6px;padding:12px 14px;min-height:48px;width:100%}
.req .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.req small{font-size:13.5px;color:color-mix(in srgb,var(--on-polar) 60%,var(--polar))}
@media(max-width:860px){.req,.req .two{grid-template-columns:minmax(0,1fr)}}

footer{padding-block:28px;color:var(--steel);font-size:14px}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01s!important;animation:none!important}}
@media(max-width:960px){.toc b,.toc a:not(.back){display:none}.toc .back{margin-top:0}}
.send{display:flex;flex-wrap:wrap;gap:10px}
.req .btn.ghost{background:transparent;border-color:color-mix(in srgb,var(--on-polar) 45%,transparent);color:var(--on-polar)}
.req .btn.ghost:hover{background:var(--on-polar);color:var(--polar)}
.foot{display:grid;grid-template-columns:1.4fr 1.2fr .8fr;gap:16px 32px;line-height:1.55}
.foot b{color:var(--ink)}
.foot a{color:var(--ink)}
@media(max-width:860px){.foot{grid-template-columns:1fr}}
