

:root{
--btn-primary-bg:transparent; --btn-primary-fg:var(--text);
--btn-primary-border:var(--text); --btn-primary-hover-bg:var(--row-selection);
--field-bg:var(--card);
}




.form{--field-bg:var(--bg);background:var(--card);
border:var(--divider-width) solid var(--divider);border-radius:var(--radius-card);
padding:var(--s4);margin:var(--s3) 0}
.form>:first-child{margin-top:0}
.form>:last-child{margin-bottom:0}

.form-plain{--field-bg:var(--card);background:none;border:0;border-radius:0;
padding:0;margin:var(--s2) 0}

.form-row{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:stretch}
.form-row>.input{flex:1 1 14em;width:auto}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);
margin:var(--s4) 0 0}



.field{display:flex;flex-direction:column;gap:var(--s2);margin:0 0 var(--s4)}
.field-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s2);
margin:0;font:600 var(--t4)/1.4 var(--font-sans);color:var(--text)}

.field-req{font-weight:400;font-size:var(--t5);color:var(--text-secondary)}
.field-hint{margin:0;font-size:var(--t5);line-height:1.5;color:var(--text-secondary)}

.field-error{display:flex;gap:var(--s2);align-items:flex-start;margin:0;
font-size:var(--t4);line-height:1.45;color:var(--bad)}
.field-error[hidden]{display:none}
.field-error-text{min-width:0}
.field-error-sign,.form-status-sign{display:inline-flex;flex:none;margin-top:.15em}
.field-error-sign svg,.form-status-sign svg{display:block;width:16px;height:16px}



.input{display:block;width:100%;min-height:var(--button-min-height);margin:0;
padding:10px 14px;border:1px solid var(--border-input);
border-radius:var(--radius-control);background:var(--field-bg);color:var(--text);
font:400 var(--t3)/1.45 var(--font-sans)}
.input::placeholder{color:var(--text-secondary);opacity:1}
.input:hover{border-color:var(--text-secondary)}
.input:focus{border-color:var(--water)}
.input:focus-visible{outline:var(--focus-width) solid var(--water);
outline-offset:var(--focus-offset)}
.input:disabled{opacity:.55;cursor:not-allowed}

.input[aria-invalid=true]{border:2px solid var(--bad);padding:9px 13px}
textarea.input{min-height:7.5em;resize:vertical;line-height:1.5}
select.input{cursor:pointer}

.input-short{max-width:16em}

.input-inline{display:inline-block;width:auto;min-height:0}




.check{display:flex;gap:10px;align-items:flex-start;margin:0;width:fit-content;
max-width:100%;font-size:var(--t4);line-height:1.5;color:var(--text);cursor:pointer}
.check-input{-webkit-appearance:none;appearance:none;flex:none;
display:inline-grid;place-content:center;width:20px;height:20px;margin:1px 0 0;
border:1.5px solid var(--border-input);border-radius:5px;
background:var(--field-bg);cursor:pointer}
.check-input::before{content:"";width:5px;height:10px;
border:solid var(--card);border-width:0 2.5px 2.5px 0;
transform:translateY(-1px) rotate(45deg) scale(0)}
.check-input:hover{border-color:var(--text-secondary)}
.check-input:checked{background:var(--water);border-color:var(--water)}
.check-input:checked::before{transform:translateY(-1px) rotate(45deg) scale(1)}
.check-input[type=radio]{border-radius:50%}
.check-input[type=radio]::before{width:10px;height:10px;border:0;border-radius:50%;
background:var(--water);transform:scale(0)}
.check-input[type=radio]:checked{background:var(--field-bg)}
.check-input[type=radio]:checked::before{transform:scale(1)}
.check-input:focus-visible{outline:var(--focus-width) solid var(--water);
outline-offset:var(--focus-offset)}
.check-input:disabled{opacity:.5;cursor:not-allowed}
.check-input[aria-invalid=true]{border:2px solid var(--bad)}
.check-text{min-width:0}

.check-input-sm{width:15px;height:15px;border-radius:4px;margin-top:0}
.check-input-sm::before{width:4px;height:8px;border-width:0 2px 2px 0}

.check>.check-input-sm{margin-top:3px}
@media (prefers-reduced-motion:no-preference){
.check-input::before{transition:transform .12s ease-out}
}



.btn-primary,.btn-secondary,.btn-quiet,.btn-link,.btn-icon{
display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
margin:0;font-family:var(--font-sans);text-decoration:none;cursor:pointer;
-webkit-appearance:none;appearance:none}

.btn-primary[hidden],.btn-secondary[hidden],.btn-quiet[hidden],.btn-link[hidden],
.btn-icon[hidden]{display:none}
.btn-primary,.btn-secondary{min-height:var(--button-min-height);
padding:var(--button-pad);border-radius:var(--button-radius);
font-size:var(--t3);font-weight:600;line-height:1.2}
.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);
border:var(--button-border) solid var(--btn-primary-border)}
.btn-primary:hover{background:var(--btn-primary-hover-bg)}
.btn-secondary{background:transparent;color:var(--text);
border:var(--button-border) solid var(--border-input)}
.btn-secondary:hover{background:var(--row-selection);border-color:var(--text-secondary)}

.btn-quiet{min-height:32px;padding:5px 12px;border-radius:var(--radius-control);
border:1px solid var(--border-input);background:var(--card);color:var(--text);
font-size:var(--t5);font-weight:400}
.btn-quiet:hover{border-color:var(--text-secondary)}

.btn-link{padding:0;border:0;background:none;color:var(--text-secondary);
font-size:inherit;font-weight:400;text-decoration:underline;
text-underline-offset:2px}
.btn-link:hover{color:var(--text)}

.btn-icon{width:36px;height:36px;padding:0;border-radius:50%;flex:none;
border:var(--divider-width) solid var(--divider);background:transparent;
color:var(--text-secondary)}
.btn-icon:hover{color:var(--text);border-color:var(--text-secondary)}
.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-quiet:focus-visible,
.btn-link:focus-visible,.btn-icon:focus-visible{outline:var(--focus-width) solid var(--water);
outline-offset:var(--focus-offset)}
.btn-primary:disabled,.btn-secondary:disabled,.btn-quiet:disabled,
.btn-link:disabled,.btn-icon:disabled{opacity:.5;cursor:default}



.fieldset{display:flex;flex-direction:column;gap:var(--s2);min-width:0;
margin:0 0 var(--s4);padding:0;border:0}
.fieldset-legend{padding:0;margin:0 0 var(--s1);
font:600 var(--t4)/1.4 var(--font-sans);color:var(--text)}



.form-status{display:flex;gap:var(--s2);align-items:flex-start;margin:0;
font-size:var(--t4);font-weight:600;line-height:1.45;color:var(--text)}
.form-status[hidden]{display:none}
.form-status .form-status-sign{display:none}
.form-status.is-ok{color:var(--ok)}
.form-status.is-ok .form-status-sign-ok{display:inline-flex}
.form-status.is-error{color:var(--bad)}
.form-status.is-error .form-status-sign-error{display:inline-flex}



.file-drop{display:block;border:1.5px dashed var(--border-input);
border-radius:var(--radius-card);padding:28px 22px;text-align:center;
background:var(--field-bg);cursor:pointer;margin:0}
.file-drop:hover{border-color:var(--text-secondary)}
.file-drop:focus-within{outline:var(--focus-width) solid var(--water);
outline-offset:var(--focus-offset)}

.file-drop-input:focus-visible{outline:none}
.file-drop-over{border-color:var(--water);background:var(--row-selection)}
.file-drop .icon-lg{width:28px;height:28px;color:var(--text-secondary)}
.file-drop-title{font-weight:600;margin:10px 0 2px}
.file-drop-browse{color:var(--water)}
.file-drop-sub{color:var(--text-secondary);font-size:var(--t5);margin:2px 0 0}

.file-drop-status{margin:var(--s2) 0 0;min-height:1.5em;font-size:var(--t4);
color:var(--text-secondary)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;
clip:rect(0 0 0 0);white-space:nowrap}




.vybor{display:flex;gap:6px 10px;align-items:flex-start;flex-wrap:wrap;
border:1px solid var(--border-input);border-radius:9px;padding:11px 14px;
margin:var(--s2) 0;background:var(--field-bg)}

.vybor-cel{flex:none;gap:10px;font-size:inherit;line-height:inherit}
.vybor-cel>.check-input{margin-top:2px}
.vybor b{min-width:140px;line-height:1.5}
.vybor span{color:var(--text-secondary);font-size:13.5px;line-height:1.55}
.vybor>.input{flex:1 1 100%}
.vybor.nelzya{opacity:.5;cursor:not-allowed}
.vybor:has(.check-input:checked){background:var(--row-selection);
border-color:var(--water);box-shadow:inset 3px 0 0 var(--water)}
.vybor:has(.check-input:checked) span{color:var(--text)}

.odnonabor{flex:1 1 100%;font-size:13px;margin:var(--s1) 0 0}

.consent{background:var(--bg);border:var(--divider-width) solid var(--divider);
border-radius:var(--radius-control);padding:12px 14px;margin:0 0 var(--s4);
font-size:var(--t4);color:var(--text-secondary)}
.consent .check{margin:10px 0 0}
.consent .check:first-child{margin-top:0}
.consent .field-error{margin:var(--s2) 0 0}
.usloviya{margin:10px 0 0;font-size:var(--t5)}
.usloviya summary{cursor:pointer;color:var(--water)}
.usloviya p{margin:6px 0 0;color:var(--text-secondary)}

@media (max-width:600px){
.form{padding:var(--s3)}
.vybor b{min-width:0}

.form-actions>.btn-primary,.form-row>.btn-primary{flex:1 1 100%}
}



* { box-sizing: border-box; min-width: 0; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
  overflow-x: hidden;
}
img, svg { max-width: 100%; }
a { color: var(--water); }
h1, h2, h3 { line-height: 1.2; margin: 0 0 10px; }
p { margin: 0 0 12px; }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.icon { width: 16px; height: 16px; display: inline-block; vertical-align: -3px; flex: none; }
.icon-lg { width: 22px; height: 22px; flex: none; }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}



:root {
  
  --copper-button: var(--copper);
  --data-road: #2D6E6E;              
  --data-water: var(--water);       
  --data-building: var(--text);     
  --data-label: var(--text-secondary); 
  --data-zoning: var(--ornament);   
  
  --ok-fill: transparent; --warn-fill: transparent; --bad-fill: transparent;
}
:root[data-theme="dark"] { --data-road: #5FB3B3; }


:root[data-theme="dark"] {
  --warn: #D9A441;
}


:root[data-theme="dark"] {
  --copper-button: #A85A32;
}


:root[data-theme="light"] {
  --bg: #F7F4EC; --card: #FFFFFF; --text: #17140F; --text-secondary: #55524C;
  --border-input: #7A776F; --divider: #A8A59C; --water: #17497E;
  --row-selection: #DBE5EF; --search-highlight: #FFF0A8; --search-highlight-alt: #FFF0A8;
  --copper: #8A4A2A;
  
  --ok: #1B7A3C; --warn: #8F5600; --bad: #B23126;
  --ok-fill: #DFF1E3; --warn-fill: #FBEDD0; --bad-fill: #FBE1DE;
  --ornament: #B8895F; color-scheme: light;
}



.ornament-wash {
  position: absolute; top: 0; left: 0; right: 0; height: 1300px;
  overflow: hidden; z-index: 0; pointer-events: none;
  color: var(--copper); opacity: .12;
}
.ornament-wash svg { width: 100%; height: 100%; display: block; }
header.shapka, .rail, main, footer.podval { position: relative; z-index: 1; }


.ornament-band {
  position: relative; height: 220px; overflow: hidden; opacity: .14;
  color: var(--copper); border-top: var(--divider-width) solid var(--divider);
  border-bottom: var(--divider-width) solid var(--divider);
}
.ornament-band svg { width: 100%; height: 520px; display: block; margin-top: -140px; }
.ornament-host { position: relative; overflow: hidden; }
.ornament-inline {
  position: absolute; inset: 0; z-index: 0; opacity: .12; color: var(--copper);
  pointer-events: none;
}
.ornament-inline svg { width: 100%; height: 100%; display: block; }
#news.ornament-host > *:not(.ornament-inline),
footer.ornament-host .podval-inner { position: relative; z-index: 1; }
@media (prefers-color-scheme: dark) {}

:root[data-theme="light"] .ornament-wash { opacity: .08; }
:root[data-theme="light"] .ornament-inline { opacity: .07; }


.reverse-example {
  max-width: 1180px; margin: 28px auto 0; padding: 16px 22px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  border: var(--divider-width) solid var(--divider); border-radius: var(--radius-card);
  background: var(--card);
}
.reverse-example p { margin: 0; flex: 1 1 200px; font-size: 15px; color: var(--text-secondary); }
.reverse-example b { color: var(--text); }

.reverse-pair { display: flex; align-items: center; gap: 8px; flex: none; }
.reverse-pair .tag { font-size: 13px; }
.reverse-arrow { color: var(--text-secondary); font-size: 18px; line-height: 1; }

.contact-mail { font-size: 18px; }




header.shapka {
  height: var(--header-height);
  border-bottom: var(--divider-width) solid var(--divider);
  position: sticky; top: 0; z-index: 20;
  background: rgba(251, 248, 241, .86);
}
:root[data-theme="dark"] header.shapka, :root:not([data-theme="light"]) header.shapka {
  background: rgba(26, 24, 25, .82);
}
@supports (backdrop-filter: blur(1px)) {
  header.shapka { backdrop-filter: blur(10px) saturate(1.3); }
}
.shapka-inner {
  max-width: 1180px; margin: 0 auto; padding: 0 24px; height: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.shapka-left { display: flex; align-items: center; gap: 40px; min-width: 0; flex: 1 1 auto; }


.lockup { height: 44px; width: auto; display: block; flex: none; }
.lockup .swage-mark { color: var(--copper); }
.lockup .swage-word { color: var(--text); }

.lockup-link { display: inline-flex; flex: none; color: inherit; text-decoration: none; border-radius: 4px; }
.lockup-link:focus-visible { outline: 2px solid var(--copper); outline-offset: 4px; }
.podval-brand .lockup-link { margin-bottom: 10px; }
.podval-brand .lockup-link .lockup { margin-bottom: 0; }
nav.glavnaya { display: flex; gap: 22px; align-items: center; white-space: nowrap; overflow-x: auto; min-width: 0; }
nav.glavnaya a {
  color: var(--text-secondary); text-decoration: none; font-size: var(--t4);
  padding: 6px 2px; border-bottom: 2px solid transparent; transition: color .12s, border-color .12s;
}
nav.glavnaya a:hover { color: var(--text); }

nav.glavnaya a[aria-current="page"] { color: var(--text); border-color: var(--text); font-weight: 600; }
.shapka-right { display: flex; align-items: center; gap: 16px; flex: none; }
.voyti { color: var(--text-secondary); text-decoration: none; font-size: var(--t4); }
.voyti:hover { color: var(--text); text-decoration: underline; }
.cta-header {
  background: var(--copper-button); color: #fff; text-decoration: none;
  padding: 9px 18px; border-radius: var(--button-radius); font-size: var(--t4); font-weight: 600;
  transition: filter .12s;
}
.cta-header:hover { filter: brightness(1.08); }

nav.glavnaya a { flex: none; }
@media (max-width: 960px) {
  header.shapka { height: auto; }
  .shapka-inner { padding: 10px 24px; flex-wrap: wrap; row-gap: 8px; }
  .shapka-left { display: contents; }
  .shapka-right { order: 2; margin-left: auto; }
  nav.glavnaya { order: 3; flex: 1 0 100%; }
}
@media (max-width: 720px) {
  .shapka-inner { padding: 10px 14px; }
  nav.glavnaya { gap: 12px; }
  .cta-header { display: none; }
}


.rail {
  position: fixed; right: 20px; top: 50%; transform: translateY(-50%);
  display: flex; flex-direction: column; z-index: 15;
  background: rgba(251, 248, 241, .86); border: var(--divider-width) solid var(--divider);
  border-radius: 14px; padding: 14px 14px 14px 12px;
}
:root[data-theme="dark"] .rail, :root:not([data-theme="light"]) .rail {
  background: rgba(26, 24, 25, .82);
}
@supports (backdrop-filter: blur(1px)) {
  .rail { backdrop-filter: blur(10px) saturate(1.3); }
}

.rail-list { position: relative; display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }

.rail-list::before {
  content: ''; position: absolute; left: 16px; top: 19px; bottom: 19px; width: 2px;
  background: var(--divider); z-index: 0;
}
.rail-item {
  position: relative; z-index: 1; display: flex; align-items: center;
  text-decoration: none; color: var(--text-secondary); padding: 6px 4px;
  transition: color .15s;
}
.rail-marker {
  width: 26px; height: 26px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12px; font-family: var(--font-mono);
  border: 2px solid var(--text-secondary); color: var(--text-secondary);
  background: var(--card); transition: background .15s, border-color .15s, color .15s;
}
.rail-label {
  margin-left: 10px; font-size: 15px; line-height: 1.2; white-space: nowrap;
  transition: max-width .15s, opacity .15s, margin-left .15s;
}
.rail-item:hover { color: var(--text); }
.rail-item:hover .rail-marker { border-color: var(--text); color: var(--text); }

.rail-item.done .rail-marker { border-color: var(--text); color: var(--text); }

.rail-item.active { color: var(--text); }
.rail-item.active .rail-label { font-weight: 700; }
.rail-item.active .rail-marker {
  background: var(--text); border-color: var(--text); color: var(--card);
}


@media (min-width: 1024px) and (max-width: 1279px) {
  .rail { padding-right: 10px; }
  .rail-label {
    max-width: 0; opacity: 0; overflow: hidden; margin-left: 0;
  }
  .rail-item:hover .rail-label, .rail-item:focus .rail-label, .rail-item:focus-visible .rail-label {
    max-width: 160px; opacity: 1; margin-left: 10px;
  }
}

@media (max-width: 1023px) { .rail { display: none; } }



:root { --content-width: 1180px; }
@media (min-width: 1024px) and (max-width: 1279px) { :root { --content-width: 860px; } }
@media (min-width: 1280px) and (max-width: 1599px) { :root { --content-width: 1000px; } }
main { max-width: var(--content-width); margin: 0 auto; padding: 0 24px; }
section { padding: 64px 0; border-top: var(--divider-width) solid var(--divider); position: relative; }

.section-alt, .dark-band {
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding-left: max(24px, calc((100vw - var(--content-width)) / 2 + 24px));
  padding-right: max(24px, calc((100vw - var(--content-width)) / 2 + 24px));
}
.section-alt { background: var(--card); }
section:first-of-type { border-top: none; }

.section-kicker {
  color: var(--copper); font-size: 15px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; margin: 0 0 10px;
}
.section-head { max-width: 720px; margin: 0 0 32px; }
.section-head h2 { font-size: clamp(28px, 3.4vw, 40px); }
.section-head p { color: var(--text-secondary); font-size: var(--t3); }

.section-kicker.c-water { color: var(--data-water); }
.section-kicker.c-zoning { color: var(--data-zoning); }
.section-kicker.c-alert { color: var(--data-alert); }
.section-kicker.c-ok { color: var(--ok); }
.section-kicker.c-label { color: var(--data-label); }
.mini-head { font-size: 16px; font-weight: 600; margin: 0 0 10px; }


.hero { padding-top: 48px; position: relative; overflow: hidden; }
.hero-top { position: relative; z-index: 1; }

.hero-top {
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: start;
  margin: 0 0 32px;
}
.hero h1 { font-size: var(--hero); }
.hero .lead { font-size: var(--t2); color: var(--text-secondary); }

.hero-side {
  display: flex; flex-direction: column; align-items: flex-start; gap: 20px;
  padding: 24px; border: var(--divider-width) solid var(--divider);
  border-radius: var(--radius-card); background: var(--card);
}

.hero-stats { display: flex; flex-direction: column; gap: 18px; }
.stat { display: flex; flex-direction: column; }
.stat-num { font-size: 44px; font-weight: 600; line-height: 1; color: var(--ok); }
.stat.stat-warn .stat-num { color: var(--warn); }

.stat-cap { font-size: 14px; color: var(--text-secondary); margin-top: 4px; white-space: nowrap; }

.hero-seal { width: 120px; height: 120px; color: var(--text); align-self: center; }
.hero-seal svg { width: 100%; height: 100%; display: block; }

.hero-mark-bg {
  position: absolute; top: -40px; right: -60px; width: 480px; height: 480px;
  color: var(--copper); opacity: .1; z-index: -1; pointer-events: none;
}
.hero-mark-bg svg { width: 100%; height: 100%; display: block; }
@media (max-width: 1100px) { .hero-mark-bg { width: 320px; height: 320px; right: -80px; } }
@media (max-width: 640px) { .hero-mark-bg { display: none; } }
@media (max-width: 1100px) {
  .hero-top { grid-template-columns: 1fr; }
  .hero-side { flex-direction: row; align-items: center; justify-content: space-between; }
  .hero-stats { flex-direction: row; gap: 28px; }
  .stat-cap { white-space: normal; }
}
@media (max-width: 640px) {
  .hero-side { flex-direction: column; align-items: flex-start; }
}

.hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin: 20px 0 8px; }

:root {
  --btn-primary-bg: var(--copper-button); --btn-primary-fg: #fff;
  --btn-primary-border: var(--copper-button); --btn-primary-hover-bg: var(--copper-button);
}
.btn-primary:hover { filter: brightness(1.08); }
.hero-note { font-size: var(--t5); color: var(--text-secondary); margin-bottom: 18px; }

.hero-who { font-size: var(--t5); color: var(--text-secondary); margin: -6px 0 4px; }

.hero-stats-note { font-size: 13px; color: var(--text-secondary); margin: 6px 0 0; }

.hero-devices { font-size: var(--t5); color: var(--text-secondary); margin: -10px 0 18px; }


.counts-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px;
  margin: 0 0 28px;
}

.counts-grid .stat-num { font-size: clamp(26px, 2.4vw, 34px); white-space: nowrap; }
.counts-grid .stat-cap { white-space: normal; }
#counts[hidden], #counts [hidden] { display: none; }
.counts-pairs { list-style: none; margin: 0 0 20px; padding: 0; max-width: 520px; }
.counts-pairs li {
  display: flex; justify-content: space-between; gap: 16px; padding: 6px 0;
  border-bottom: var(--divider-width) solid var(--divider);
}
.counts-pair-n { color: var(--text-secondary); }
.counts-note { font-size: 13px; color: var(--text-secondary); max-width: 70ch; margin: 0; }
@media (max-width: 900px) { .counts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .counts-grid .stat-num { font-size: 22px; } }


.btn-primary-prelaunch { display: none; }
.prelaunch .btn-primary-live { display: none; }
.prelaunch .btn-primary-prelaunch { display: inline-flex; }
.dropzone-title-prelaunch { display: none; }
.prelaunch .dropzone-title-live { display: none; }
.prelaunch .dropzone-title-prelaunch { display: block; }
.prelaunch .dropzone { cursor: default; }

.hero-status-prelaunch { display: none; }
.prelaunch .hero-status-prelaunch { display: block; }
.hero-status { font-size: 13px; color: var(--text-secondary); margin: -4px 0 14px; }
.dropzone-note-prelaunch { display: none; }
.prelaunch .dropzone-note-prelaunch { display: block; }
.dropzone-note { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

.demo-result { display: none; }
.prelaunch .demo-result { display: block; list-style: none; margin: 12px 0 0; padding: 0; font-size: var(--t5); text-align: left; }
.prelaunch .demo-result li { margin: 4px 0; }
.prelaunch .dropzone { border-style: solid; border-width: var(--divider-width); border-color: var(--divider); text-align: left; }
.prelaunch .dropzone .icon-lg { display: none; }
.prelaunch .dropzone-title { margin-top: 0; }


.dropzone {
  border: 1.5px dashed var(--border-input); border-radius: var(--radius-card);
  padding: 18px 22px; text-align: center; background: var(--card); max-width: 480px;
}
.dropzone .icon-lg { color: var(--text-secondary); }
.dropzone-title { font-weight: 600; margin: 8px 0 4px; }
.dropzone-sub { color: var(--text-secondary); font-size: var(--t5); margin: 0; }
.dropzone select {
  margin-top: 12px; padding: 8px 12px; border-radius: var(--radius-control);
  border: var(--divider-width) solid var(--border-input); background: var(--bg); color: var(--text);
  font-family: var(--font-sans); font-size: var(--t4);
}


.hero-visual {
  position: relative; border: var(--divider-width) solid var(--divider);
  border-radius: var(--radius-card); overflow: hidden;
}
.hero-visual .split {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch;
}
.hero-visual .stage { position: relative; height: 440px; overflow: hidden; background: var(--card); }

.hero-visual .stage > svg {
  display: block; position: absolute; inset: 0; width: 100%; height: 100%;
}

.hero-visual .source-stage {
  background: #14110F; --text-secondary: #C9A27A; --divider: #33291f;
}
.hero-visual .stage-label {
  position: absolute; top: 12px; left: 14px; font-size: 12px; font-weight: 600;
  letter-spacing: .03em; text-transform: uppercase; z-index: 2;
  color: var(--text-secondary); background: rgba(20,17,15,.55); padding: 3px 8px; border-radius: 5px;
}
.hero-visual .result-stage .stage-label {
  color: var(--text-secondary); background: var(--bg);
}
.hero-visual .stage-arrow {
  display: flex; align-items: center; justify-content: center; padding: 0 18px;
  color: var(--text-secondary); border-left: var(--divider-width) solid var(--divider);
  border-right: var(--divider-width) solid var(--divider); background: var(--bg);
}
.legend-chips {
  position: absolute; top: 12px; right: 12px; z-index: 2; display: flex; gap: 6px; flex-wrap: wrap;
  justify-content: flex-end; max-width: 60%;
}
.legend-chips .chip {
  display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text);
  background: var(--bg); border: var(--divider-width) solid var(--divider);
  border-radius: 20px; padding: 3px 8px 3px 6px;
}
.legend-chips .chip i { width: 8px; height: 8px; border-radius: 50%; display: block; }
.seal-badge {
  position: absolute; left: 14px; bottom: 14px; z-index: 2; width: 34px; height: 34px;
  color: var(--warn); opacity: .9;
}
.seal-badge svg { width: 100%; height: 100%; display: block; }
.hero-visual .loss-badge {
  position: absolute; right: 14px; bottom: 14px; z-index: 2; max-width: 56%;
  background: var(--bg); border: 1.5px solid var(--warn); color: var(--warn);
  border-radius: 8px; padding: 8px 12px; font-size: 12px; display: flex; align-items: center; gap: 10px;
}
.loss-badge .loss-num { font-size: 26px; font-weight: 600; line-height: 1; flex: none; }
.loss-badge span:last-child { line-height: 1.3; }
@media (max-width: 1024px) {
  .hero-visual .split { grid-template-columns: 1fr; }
  .hero-visual .stage { height: 320px; }
  
  .hero-visual .stage-arrow {
    border-left: none; border-right: none; padding: 6px 0;
    border-top: var(--divider-width) solid var(--divider);
    border-bottom: var(--divider-width) solid var(--divider);
  }
  .hero-visual .stage-arrow svg { transform: rotate(90deg); }
}


.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

.steps-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1200px) { .steps-grid-4 { grid-template-columns: repeat(2, 1fr); } }



.paths-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto repeat(4, auto); gap: 20px 40px; }
.path-col { display: grid; grid-template-rows: subgrid; grid-row: span 5; }
.path-col-eng { border-left: var(--divider-width) solid var(--divider); padding-left: 40px; }
.path-head { margin-bottom: 4px; align-self: start; }
.path-head h3 { font-size: var(--t2); margin: 0 0 4px; }
.path-head p { margin: 0; color: var(--text-secondary); font-size: 15px; }
.steps-grid-1 { display: contents; }

.steps-more { margin: 28px 0 0; text-align: center; }

@supports not (grid-template-rows: subgrid) {
  .path-head { min-height: 68px; }
  .steps-grid-1 { display: grid; grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 900px) {
  .paths-grid { grid-template-columns: 1fr; }
  
  .path-col { display: block; }
  .path-col-eng { border-left: none; padding-left: 0; border-top: var(--divider-width) solid var(--divider); padding-top: 24px; }
  .steps-grid-1 { display: grid; grid-template-columns: 1fr; gap: 16px; }
}
.step-card {
  border: var(--divider-width) solid var(--divider); border-radius: var(--radius-card);
  background: var(--card); padding: 18px; display: flex; flex-direction: column; gap: 10px;
}

.step-num {
  width: 30px; height: 30px; border-radius: 50%; background: transparent;
  border: 2px solid var(--copper); color: var(--copper);
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: var(--t4);
}

.steps-grid-1 { --step-gap: 20px; }
.steps-grid-1 > .step-card { position: relative; }
.steps-grid-1 > .step-card + .step-card::before {
  content: "\2193" / ""; position: absolute; left: 0; right: 0;
  top: calc(-1 * var(--step-gap)); height: var(--step-gap);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; line-height: 1; color: var(--text-secondary);
}
@media (max-width: 900px) { .steps-grid-1 { --step-gap: 16px; } }

.steps-grid-1 > .step-skip { position: relative; }
.steps-grid-1 > .step-skip::before {
  content: ""; position: absolute; left: 50%;
  top: calc(-1 * var(--step-gap) + 4px); bottom: calc(-1 * var(--step-gap) + 5px);
  border-left: 1.5px solid var(--text-secondary);
}
.steps-grid-1 > .step-skip::after {
  content: ""; position: absolute; left: 50%; bottom: calc(-1 * var(--step-gap) + 5px);
  width: 8px; height: 8px; margin-left: -3.25px;
  border-right: 1.5px solid var(--text-secondary); border-bottom: 1.5px solid var(--text-secondary);
  transform: rotate(45deg);
}
@media (max-width: 900px) {
  .steps-grid-1 > .step-skip { display: none; }
  .steps-grid-1 > .step-skip + .step-card::before {
    content: "\2193" / ""; position: absolute; left: 0; right: 0;
    top: calc(-1 * var(--step-gap)); height: var(--step-gap);
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; line-height: 1; color: var(--text-secondary);
  }
}
.step-card h3 { font-size: var(--t3); margin: 0; }
.step-card p { color: var(--text-secondary); font-size: 16px; margin: 0; }
.step-mini {
  border-top: var(--divider-width) solid var(--divider); padding-top: 10px; margin-top: auto;
  font-size: 15px; font-weight: 600;
}


.step-demo {
  margin-top: auto; padding-top: 12px; border-top: var(--divider-width) solid var(--divider);
  display: flex; align-items: center; gap: 10px; min-height: 60px;
}
.step-demo > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.step-demo strong { font-size: 14px; }
.step-demo span { font-size: 13px; color: var(--text-secondary); }
.step-demo svg { flex: none; color: var(--text-secondary); }
.format-icon.small { width: 26px; height: 26px; }
.mini-seal { width: 40px; height: 40px; color: var(--copper); flex: none; }
.mini-seal svg { width: 100%; height: 100%; display: block; }
.step-result-num { display: flex; flex-direction: column; }
.step-result-num .mono { font-size: 26px; font-weight: 600; line-height: 1; color: var(--ok); }
.step-result-num small { font-size: 12px; color: var(--text-secondary); margin-top: 2px; }
@media (max-width: 900px) { .steps-grid { grid-template-columns: 1fr; } }


.fhome .k-gis { --fh-c: var(--data-water); }
.fhome .k-cad { --fh-c: var(--copper); }
.fhome .k-other { --fh-c: var(--text); }
.fh-kick { margin: 0; }
.fh-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  grid-template-areas: "head card" "cat card"; column-gap: 48px; align-items: start; }
.fh-head { grid-area: head; margin: 0 0 24px; }
.fh-cat { grid-area: cat; }
.fh-card { grid-area: card; align-self: stretch; display: flex; flex-direction: column;
  border: var(--divider-width) solid var(--divider); border-radius: var(--radius-card);
  padding: 18px 20px 14px; min-height: 300px; }

.fh-box { flex: 1 1 0; min-height: 0; display: flex; }
.fh-cloud { --fh-k: var(--fh-kw); flex: 1; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap;
  justify-content: center; align-content: center; align-items: baseline;
  gap: 8px 20px; line-height: 1.15; }
.fh-cloud li { margin: 0; }
.fh-cloud a { color: var(--fh-c); text-decoration: none; }
.fh-cloud a:hover, .fh-list a:hover { text-decoration: underline; }
.fh-cloud .s5 { font-size: 34px; font-weight: 700; }
.fh-cloud .s4 { font-size: 28px; font-weight: 600; }
.fh-cloud .s3 { font-size: 22px; font-weight: 600; }
.fh-cloud .s2 { font-size: 18px; font-weight: 500; }
.fh-cloud .s1, .fh-cloud .fh-more { font-size: 15px; font-weight: 400; }
@supports (width: 1cqw) {
  .fh-box { container-type: size; }
  .fh-cloud { --fh-u: min(calc(var(--fh-k) * 1cqw), calc(var(--fh-k) / 1.1 * 1cqh), 64px);
    row-gap: calc(var(--fh-u) * .3); column-gap: calc(var(--fh-u) * .55); line-height: 1.1; }
  .fh-cloud .s5 { font-size: var(--fh-u); }
  .fh-cloud .s4 { font-size: calc(var(--fh-u) * .82); }
  .fh-cloud .s3 { font-size: calc(var(--fh-u) * .66); }
  .fh-cloud .s2 { font-size: calc(var(--fh-u) * .54); }
  .fh-cloud .s1, .fh-cloud .fh-more { font-size: max(14px, calc(var(--fh-u) * .44)); }
}
.fh-cloud .fh-more a { color: var(--text-secondary); text-decoration: underline; }
.fh-more-narrow { display: none; }
.fh-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px;
  margin: 14px 0 0; padding-top: 12px; border-top: var(--divider-width) solid var(--divider);
  font-size: 14px; color: var(--text-secondary); }
.fh-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  background: var(--fh-c); margin-right: 7px; vertical-align: 1px; }
.fh-all { margin-left: auto; color: var(--text); }
.fh-tabs { display: inline-flex; gap: 2px; padding: 3px; max-width: 100%;
  border: var(--divider-width) solid var(--border-input); border-radius: 10px;
  margin: 0 0 14px; overflow-x: auto; scrollbar-width: none; }
.fh-tabs::-webkit-scrollbar { display: none; }
.fh-tabs button { flex: none; white-space: nowrap; font: inherit; font-size: 14px;
  padding: 7px 12px; border: 0; border-radius: 7px; background: transparent;
  color: var(--text); cursor: pointer; }
.fh-tabs button[aria-selected="true"] { background: var(--text); color: var(--card); }
.fh-tabs button:focus-visible { outline: 2px solid var(--copper); outline-offset: -2px; }
.fh-panels { display: grid; }
.fh-panel { grid-area: 1 / 1; display: flex; flex-direction: column; }
.fh-panel[hidden] { display: flex; visibility: hidden; }
.fh-list { flex: 1; display: flex; flex-direction: column; list-style: none; margin: 0;
  padding: 0; border-top: var(--divider-width) solid var(--divider); }
.fh-list li { display: flex; align-items: baseline; gap: 12px; margin: 0; padding: 8px 0;
  border-bottom: var(--divider-width) solid var(--divider); font-size: 15px; }
.fh-list a { flex: 0 0 10.5em; font-weight: 600; color: var(--text); text-decoration: none; }
.fh-list span { color: var(--text-secondary); }
.fh-list .fh-foot { margin-top: auto; font-size: 14px; }
.fh-list .fh-foot a { flex: none; font-weight: 400; color: var(--text); text-decoration: underline; }
@media (max-width: 900px) {
  .fh-grid { grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "head" "card" "cat"; row-gap: 24px; }
  .fh-head { margin: 0; }
  .fh-card { min-height: 0; padding: 16px 14px 12px; }
  
  .fh-box { flex: none; aspect-ratio: 1 / 1.1; }
  .fh-cloud { --fh-k: var(--fh-kn); gap: 6px 14px; }
  .fh-cloud .s5 { font-size: 26px; }
  .fh-cloud .s4 { font-size: 22px; }
  .fh-cloud .s3 { font-size: 18px; }
  .fh-cloud .s2 { font-size: 16px; }
  .fh-cloud .s1, .fh-cloud .fh-more { font-size: 14px; }
  .fh-tail, .fh-more-wide { display: none; }
  .fh-more-narrow { display: list-item; }
}
@supports (width: 1cqw) {
  @media (max-width: 900px) {
    .fh-cloud { row-gap: calc(var(--fh-u) * .3); column-gap: calc(var(--fh-u) * .55); }
    .fh-cloud .s5 { font-size: var(--fh-u); }
    .fh-cloud .s4 { font-size: calc(var(--fh-u) * .82); }
    .fh-cloud .s3 { font-size: calc(var(--fh-u) * .66); }
    .fh-cloud .s2 { font-size: calc(var(--fh-u) * .54); }
    .fh-cloud .s1, .fh-cloud .fh-more { font-size: max(13px, calc(var(--fh-u) * .44)); }
  }
}

@media (max-width: 640px) {
  .fh-tabs { display: flex; }
  .fh-tabs button { flex: 1 0 auto; padding: 7px 9px; font-size: 13.5px; }
  .fh-list li { flex-direction: column; gap: 2px; }
  .fh-list a { flex: none; }
}
.format-icon {
  width: 34px; height: 34px; border-radius: var(--radius-control);
  border: var(--divider-width) solid var(--divider); display: flex; align-items: center;
  justify-content: center; flex: none; color: var(--text-secondary);
}

.format-icon.sev-ok { color: var(--ok); border-color: var(--ok); background: var(--ok-fill); }
.format-icon.sev-warn { color: var(--warn); border-color: var(--warn); background: var(--warn-fill); }
.format-icon.sev-bad { color: var(--bad); border-color: var(--bad); background: var(--bad-fill); }

.chip-row { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }

.tag {
  font-size: 12px; font-weight: 600; padding: 4px 9px; border-radius: 12px;
  border: 1.5px solid var(--divider); white-space: normal; max-width: 100%;
  line-height: 1.35; overflow-wrap: break-word; word-break: break-word;
  box-sizing: border-box;
}
.tag-ok { color: var(--ok); border-color: var(--ok); background: var(--ok-fill); }
.tag-warn { color: var(--warn); border-color: var(--warn); background: var(--warn-fill); }
.tag-bad { color: var(--bad); border-color: var(--bad); background: var(--bad-fill); }

:root[data-theme="light"] .tag-ok,
:root[data-theme="light"] .tag-warn,
:root[data-theme="light"] .tag-bad,
:root[data-theme="light"] .format-icon.sev-ok,
:root[data-theme="light"] .format-icon.sev-warn,
:root[data-theme="light"] .format-icon.sev-bad { border-width: 2px; }


.dark-band {
  --bg: #1A1819; --card: #242223; --text: #ECE6DC; --text-secondary: #9C9892;
  --divider: #413E3D; --border-input: #706C69; --water: #8AB8E8;
  --copper: #C16A3D; --ok: #6CA176; --warn: #D9A441; --bad: #E06A5F;
  --ornament: #543526; --data-road: #5FB3B3;
  background: var(--bg); color: var(--text);
}
.verdict-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.verdict-card {
  border: var(--divider-width) solid var(--divider); border-radius: var(--radius-card);
  background: var(--card); padding: 16px; text-align: center;
}
.verdict-card .stamp-wrap { width: 88px; height: 88px; margin: 0 auto 10px; color: var(--text); }
.verdict-card .stamp-wrap svg { width: 100%; height: 100%; display: block; }
.verdict-card:first-child .stamp-wrap { color: var(--ok); }
.verdict-card.state-broken .stamp-wrap { color: var(--bad); }
.verdict-card h3 { font-size: 17px; margin: 0 0 4px; }
.verdict-card p { font-size: 15px; color: var(--text-secondary); margin: 0; }
.verdict-number { font-family: var(--font-mono); font-size: var(--result-number); font-weight: 600; margin: 18px 0; }
@media (max-width: 900px) { .verdict-grid { grid-template-columns: 1fr; } }


.schema-wrap {
  border: var(--divider-width) solid var(--divider); border-radius: var(--radius-card);
  background: var(--card); padding: 20px; overflow-x: auto;
}

.schema-wrap svg { display: block; margin: 0 auto; width: 100%; height: auto; }
.schema-caption { font-size: var(--t5); color: var(--text-secondary); margin-top: 10px; }


.previews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 1024px) {
  .previews-grid { grid-template-columns: repeat(2, 1fr); }
}
.preview-card {
  border: var(--divider-width) solid var(--divider); border-radius: var(--radius-card);
  background: var(--card); overflow: hidden;
}
.preview-card .preview-img { padding: 10px; }
.preview-card .preview-img svg { display: block; width: 100%; height: auto; }
.preview-meta { padding: 10px 14px 14px; border-top: var(--divider-width) solid var(--divider); }
.preview-meta h3 { font-size: var(--t4); margin: 0 0 2px; }
.preview-meta p { font-size: var(--t5); color: var(--text-secondary); margin: 0; }


.trust-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.trust-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.trust-list li { display: flex; gap: 10px; font-size: 16px; color: var(--text-secondary); }
.trust-list svg { color: var(--ok); flex: none; margin-top: 2px; }
.limits-list { margin: 0; padding-left: 18px; font-size: 16px; color: var(--text-secondary); }
@media (max-width: 900px) { .trust-grid { grid-template-columns: 1fr; } }

.limits-list + .mini-head { margin-top: 20px; }

.surveyors-list { max-width: 640px; }


.faq-list { display: flex; flex-direction: column; gap: 2px; }
.faq-item { border-bottom: var(--divider-width) solid var(--divider); }
.faq-item summary {
  cursor: pointer; padding: 14px 0; font-weight: 600; font-size: var(--t4);
  list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary .chev { transition: transform .15s; flex: none; color: var(--text-secondary); }
.faq-item[open] summary .chev { transform: rotate(90deg); }
.faq-item p { padding: 0 0 16px; color: var(--text-secondary); font-size: 16px; max-width: 70ch; }


#about .section-head p { max-width: 70ch; }
.about-principles {
  list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column;
  gap: 10px; max-width: 70ch; font-size: 16px;
}
.about-principles li { padding-left: 20px; position: relative; }
.about-principles li::before { content: "—"; position: absolute; left: 0; color: var(--copper); }
.about-feedback { font-size: 16px; max-width: 70ch; }

.contact-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }


.news-group + .news-group { margin-top: 24px; }
.news-month {
  font-size: var(--t5); font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; color: var(--text-secondary); margin: 0 0 10px;
}
.news-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.news-list li { font-size: 16px; }

.news-signup {
  margin-top: 24px; padding-top: 20px; border-top: var(--divider-width) solid var(--divider);
}
.news-signup p.news-signup-lead { margin: 0 0 12px; font-size: 16px; color: var(--text-secondary); }
.notify-note { font-size: var(--t5); color: var(--text-secondary); margin: 0; }
.notify-note + .notify-note { margin-top: 6px; }

.notify-consent {
  flex: 1 1 100%;
  font-size: var(--t5); color: var(--text-secondary); cursor: pointer;
}
.notify-consent .check-text a { color: inherit; }

.form-trap { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }


footer.podval {
  border-top: var(--divider-width) solid var(--divider); padding: 40px 0 32px;
  color: var(--text-secondary); font-size: var(--t5);
}
.podval-inner {
  max-width: 1180px; margin: 0 auto; padding: 0 24px;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 32px;
}
footer.podval a { color: var(--text-secondary); text-decoration: underline; }
footer.podval nav { display: flex; gap: 16px; flex-wrap: wrap; align-content: flex-start; }
.podval-brand { max-width: 360px; }
.podval-brand .lockup { height: 26px; margin-bottom: 10px; }
.podval-brand p { margin: 0; font-size: var(--t5); color: var(--text-secondary); }

.podval-copy { margin-top: 10px; }



.legal-page { padding: 48px 24px 72px; }
@media (max-width: 640px) { .legal-page { padding: 32px 16px 56px; } }
.legal-page h1 { font-size: var(--t1); margin-bottom: 6px; }
.legal-page .legal-draft {
  display: inline-block; margin: 0 0 28px; padding: 6px 12px;
  border: var(--divider-width) solid var(--warn); border-radius: var(--radius-control);
  color: var(--warn); font-weight: 600; font-size: var(--t4);
}
.legal-page h2 { margin-top: 36px; font-size: 19px; }
.legal-page ul { padding-left: 20px; }
.legal-page li { margin: 4px 0; }
.legal-page table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: var(--t4); }
.legal-page th, .legal-page td {
  border: var(--divider-width) solid var(--divider); padding: 8px 10px;
  text-align: left; vertical-align: top;
}
.legal-page th { background: var(--card); }
.legal-page code {
  font-family: var(--font-mono); font-size: .92em; background: var(--card);
  padding: 1px 4px; border-radius: 4px;
}
.legal-page .back-link { display: inline-block; margin-bottom: 20px; }

.notfound-links { padding-left: 0; list-style: none; margin-top: 24px; }
.notfound-links li { margin: 10px 0; font-size: var(--t2); }



.theme-toggle { margin-right: 4px; }
.theme-toggle .icon-moon { display: none; }
:root[data-theme="light"] .theme-toggle .icon-sun { display: none; }
:root[data-theme="light"] .theme-toggle .icon-moon { display: block; }


@media (prefers-reduced-motion: no-preference) {
  .stamp-anim { animation: stamp-in .4s cubic-bezier(.2,.9,.3,1.2) both; }
  @keyframes stamp-in {
    0% { opacity: 0; transform: scale(1.5) rotate(-8deg); }
    100% { opacity: 1; transform: scale(1) rotate(-6deg); }
  }
  
  
  .hero-visual .result-stage { animation: reveal-h .38s ease-out both; }
  @keyframes reveal-h { 0% { clip-path: inset(0 100% 0 0); } 100% { clip-path: inset(0 0 0 0); } }
  .seal-badge, .loss-badge { animation: fade-up .3s ease-out both; animation-delay: .38s; }
  @keyframes fade-up { 0% { opacity: 0; transform: translateY(6px); } 100% { opacity: 1; transform: translateY(0); } }
}

@media (max-width: 640px) {
  main { padding: 0 16px; }
  section { padding: 40px 0; }
  .verdict-grid { grid-template-columns: 1fr; }
  
  #steps, #verdict, #engineering, #previews { display: none; }
  .ornament-wash { height: 520px; }
  .hero-stats { gap: 12px; }
  .stat-num { font-size: 32px; }
  .hero-visual .stage { height: 260px; }
  .reverse-example { margin-top: 20px; padding: 14px 16px; }
}


.signup-card {
  margin-top: 32px; padding: 24px; max-width: 720px;
  border: var(--divider-width) solid var(--divider); border-left: 4px solid var(--copper);
  border-radius: var(--radius-card); background: var(--card);
}
.signup-card h3 { font-size: var(--t2); margin: 0 0 6px; }
.signup-card .signup-lead { margin: 0 0 16px; color: var(--text-secondary); font-size: 16px; }
.signup-form { display: flex; flex-direction: column; gap: 12px; position: relative; --field-bg: var(--bg); }
.signup-form .field { margin: 0; }
.signup-card .notify-note { margin-top: 14px; }
@media (max-width: 560px) {
  .signup-card { padding: 18px 16px; }
}


.contact-form { max-width: 640px; margin: 24px 0 16px; position: relative; }
.contact-form textarea.input { min-height: 180px; }

.contact-consent { font-size: var(--t5); color: var(--text-secondary); cursor: pointer; }
.contact-consent .check-text a { color: inherit; }


.link-page { padding: 64px 24px 88px; display: flex; justify-content: center; }
.link-card {
  width: 100%; max-width: 560px; padding: 32px;
  border: var(--divider-width) solid var(--divider); border-top: 4px solid var(--copper);
  border-radius: var(--radius-card); background: var(--card);
}
.link-card h1 { font-size: var(--t1); margin: 0 0 10px; }
.link-card p { color: var(--text-secondary); font-size: 16px; }
.link-card form { margin: 20px 0 4px; }
.link-card button { cursor: pointer; }
.link-card button:disabled { opacity: .75; cursor: progress; }
.link-back { margin: 24px 0 0; }
@media (max-width: 560px) {
  .link-page { padding: 32px 16px 56px; }
  .link-card { padding: 22px 18px; }
}


.about-page .about-lead { font-size: 18px; max-width: 70ch; }
.about-page h2 { margin-top: 36px; font-size: 19px; }
.about-page .about-principles { margin-top: 12px; }
.about-more { font-weight: 600; }


.fpage { border-top: none; padding-top: 24px; }
.fpage-total { color: var(--text-secondary); font-size: 14px; margin: 0; }
.fcontrols { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: end;
  margin: 0 0 24px; }
.fcontrols[hidden] { display: none; }
.fsearch { display: flex; flex-direction: column; gap: 4px; flex: 1 1 260px; max-width: 420px; }
.fsearch-label { font-size: 14px; color: var(--text-secondary); }
.fkinds { display: flex; flex-wrap: wrap; gap: 8px; }
.fbtn { font: inherit; font-size: 14px; padding: 8px 14px; border-radius: 999px; cursor: pointer;
  border: var(--divider-width) solid var(--divider); background: var(--card); color: var(--text); }
.fbtn:hover { border-color: var(--text); }
.fbtn[aria-pressed="true"] { background: var(--text); color: var(--card); border-color: var(--text); }
.fbtn:focus-visible { outline: 2px solid var(--copper); outline-offset: 2px; }
.fnone { color: var(--text-secondary); margin: 0 0 20px; }
.fnone[hidden] { display: none; }
.fgroups { display: flex; flex-direction: column; gap: 14px; }
.fgroup { border: var(--divider-width) solid var(--divider); border-radius: 8px; background: var(--card); }
.fgroup[hidden] { display: none; }
.fgroup-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer;
  font-weight: 700; list-style: none; }
.fgroup-head::-webkit-details-marker { display: none; }
.fgroup-head::after { content: "+"; margin-left: auto; color: var(--text-secondary); font-weight: 400; }
.fgroup[open] > .fgroup-head::after { content: "−"; }
.fgroup-head:focus-visible { outline: 2px solid var(--copper); outline-offset: -2px; }
.fgroup-count { font-weight: 400; font-size: 14px; color: var(--text-secondary);
  padding: 1px 8px; border-radius: 999px; border: var(--divider-width) solid var(--divider); }
.fkind-icon { width: 22px; height: 22px; flex: none; }
.fgroup-gis .fgroup-head { color: var(--data-water); }
.fgroup-cad .fgroup-head { color: var(--copper); }
.fgroup-exchange .fgroup-head { color: var(--data-road); }
.fgroup-table .fgroup-head { color: var(--text-secondary); }
.fgroup-list { list-style: none; margin: 0; padding: 0;
  border-top: var(--divider-width) solid var(--divider); }
.frow { display: grid; grid-template-columns: minmax(150px, 220px) minmax(90px, 160px) auto;
  gap: 2px 16px; align-items: center; padding: 9px 14px;
  border-top: var(--divider-width) solid var(--divider); }
.frow:first-child { border-top: none; }
.frow[hidden] { display: none; }
.fmt-name { font-weight: 700; color: var(--text); }
.frow-ext { font-size: 13px; color: var(--text-secondary); overflow-wrap: anywhere; }
.frow .chip-row { display: flex; gap: 6px; justify-self: end; }
.fmt-line { grid-column: 1 / -1; font-size: 14px; color: var(--text-secondary); }
.fnew { margin-top: 32px; padding: 18px 20px; border: var(--divider-width) dashed var(--divider);
  border-radius: 8px; }
.fnew h2 { margin: 0 0 6px; font-size: var(--t3); }
.fnew p { margin: 0 0 10px; max-width: 62ch; }
@media (max-width: 700px) {
  .frow { grid-template-columns: 1fr auto; }
  .frow-ext { grid-column: 1; grid-row: 2; }
  .frow .chip-row { grid-column: 2; grid-row: 1 / span 2; }
}


.pair-page { max-width: 760px; margin: 0 auto; }
.pair-page h3 { margin: 20px 0 4px; font-size: var(--t4); }
.pair-page .btn-primary { display: inline-block; }
.frow-pairs a { margin-right: 12px; white-space: nowrap; }

.frow-pairs { overflow-wrap: break-word; }

.pair-page h1 { font-size: 2em; }
