@font-face{font-family:"Rubik";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/rubik-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Rubik";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/rubik-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Rubik";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/rubik-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Rubik";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/rubik-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Rubik";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/rubik-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Rubik";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/rubik-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Lora";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lora-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Lora";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lora-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Lora";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/lora-cyrillic-400-italic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Lora";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/lora-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/lora-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/lora-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Caveat";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/caveat-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Caveat";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/caveat-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* ecole-progres.ru — «почтовая открытка»: авиапочтовая кайма, марки языков, штемпели дат, P.S.-заметки */
:root{
  --paper:#F8F4EA; --card:#FFFEFA; --soft:#F0EADC; --ink:#1F2A44; --ink2:#38425C; --muted:#6B7185; --line:#E1D9C7; --line2:#CFC5AE;
  --red:#C2412D; --blue:#2E5AA8;
  --de:#3D5A80; --fr:#B0503A; --es:#C08419; --zh:#A23B3B; --it:#4E7A57;
  --head:Rubik,"Segoe UI",Arial,sans-serif; --text:Lora,Georgia,serif; --hand:Caveat,"Comic Sans MS",cursive;
  --r:10px; --sec:var(--blue);
  --airmail:repeating-linear-gradient(-45deg,var(--red) 0 14px,transparent 14px 22px,var(--blue) 22px 36px,transparent 36px 44px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--head);overflow-x:hidden}
img,svg{max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px}
.skip:focus{left:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding-left:26px;padding-right:26px}
.narrow{max-width:880px}
h1,h2,h3{font-family:var(--head);font-weight:600;line-height:1.16;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(30px,4.4vw,52px)}
h2{font-size:clamp(23px,2.5vw,31px)}
.lead{font:400 clamp(17px,1.5vw,20px)/1.6 var(--text);color:var(--ink2);margin:16px 0 0;max-width:760px}
.hand{font-family:var(--hand);font-weight:500}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 22px;border-radius:999px;border:2px solid var(--ink);background:transparent;font:500 15.5px/1 var(--head);text-decoration:none;cursor:pointer;transition:background .15s,color .15s}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#111a30}
.btn-line:hover{background:var(--ink);color:#fff}
.btn[disabled]{opacity:.4;pointer-events:none}
.cap{font:500 12.5px/1.3 var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(248,244,234,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.site-header::before{content:"";display:block;height:6px;background:var(--airmail)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;height:66px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-stamp{display:inline-block;width:44px;height:50px;padding:4px;background:radial-gradient(circle at 4px 4px,transparent 2px,var(--card) 2.4px) -4px -4px/8px 8px;filter:drop-shadow(0 1px 2px rgba(31,42,68,.15))}
.logo-stamp .in{display:grid;place-items:center;width:100%;height:100%;background:var(--card);box-shadow:inset 0 0 0 2px var(--card),inset 0 0 0 3.2px var(--red);color:var(--red);font:600 16px/1 var(--head);position:relative;padding-bottom:6px}
.logo-stamp small{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-size:6.5px;letter-spacing:.08em;color:var(--blue)}
.logo-text{display:flex;flex-direction:column;line-height:1.1}
.logo-text b{font-weight:600;font-size:18px}
.logo-text span{font:500 17px/1 var(--hand);color:var(--blue);margin-top:2px}
.main-nav{display:flex;gap:2px}
.main-nav a{padding:8px 11px;border-radius:999px;text-decoration:none;font-size:15px;color:var(--ink2);white-space:nowrap}
.main-nav a:hover{background:var(--soft);color:var(--ink)}
.main-nav a[aria-current=page]{background:var(--ink);color:#fff}
.header-actions{display:flex;align-items:center;gap:8px}
.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:var(--card);cursor:pointer}
.icon-btn:hover{border-color:var(--ink)}
.menu-toggle{display:none}

/* search */
.search-modal{position:fixed;inset:0;z-index:90;background:rgba(31,42,68,.45);display:flex;align-items:flex-start;justify-content:center;padding:10vh 16px 16px}
.search-modal[hidden]{display:none}
.modal-open{overflow:hidden}
.search-box{width:100%;max-width:680px;background:var(--card);border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.25);overflow:hidden}
.search-box::before{content:"";display:block;height:6px;background:var(--airmail)}
.search-field{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.search-field input{flex:1;border:0;outline:0;font-size:18px;background:transparent;min-width:0}
.search-close{border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:3px 8px;font-size:12px;cursor:pointer}
.search-results{list-style:none;margin:0;padding:6px;max-height:60vh;overflow:auto}
.search-results a{display:flex;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none}
.search-results a.active,.search-results a:hover{background:var(--soft)}
.sr-code{flex:none;width:10px;border-radius:5px;background:var(--c,var(--blue))}
.search-results b{display:block;font-weight:600;line-height:1.3}
.search-results small{display:block;color:var(--muted);font-size:13.5px;line-height:1.4;margin-top:3px}
.sr-empty{padding:16px;color:var(--muted)}

/* crumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;margin:0 0 20px;padding:0;font-size:14px;color:var(--muted)}
.crumbs li+li::before{content:"→";margin:0 8px;color:var(--line2)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}

/* stamps & postmarks */
.stamp{display:inline-block;width:86px;height:100px;padding:5px;flex:none;position:relative;filter:drop-shadow(0 2px 3px rgba(31,42,68,.12));
  background:radial-gradient(circle at 5px 5px,transparent 2.6px,var(--card) 3px) -5px -5px/10px 10px}
.stamp .in{display:grid;place-items:center;width:100%;height:100%;background:var(--card);box-shadow:inset 0 0 0 3px var(--card),inset 0 0 0 4.5px var(--c,var(--blue));position:relative}
.stamp b{font:600 32px/1 var(--head);color:var(--c,var(--blue));margin-top:-10px}
.stamp small{position:absolute;bottom:9px;left:0;right:0;text-align:center;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.postmark{display:inline-grid;place-items:center;width:104px;height:104px;border-radius:50%;border:2px solid var(--ink2);color:var(--ink2);text-align:center;font:500 11px/1.25 var(--head);letter-spacing:.06em;text-transform:uppercase;transform:rotate(-12deg);opacity:.75;position:relative}
.postmark::before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid var(--ink2)}
.postmark b{display:block;font-size:15px;letter-spacing:.02em}

/* article head: «открытка» */
.a-head{padding:34px 0 0}
.card-letter{position:relative;background:var(--card);border-radius:14px;box-shadow:0 1px 0 var(--line2),0 18px 40px rgba(31,42,68,.06);padding:30px 34px 28px;overflow:hidden}
.card-letter::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--airmail)}
.cl-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:30px;align-items:start}
.cl-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.cl-right .postmark{margin-right:46px;margin-top:-40px}
.a-head h1{margin-top:6px}
.addr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin-top:22px;font-size:15px;max-width:640px}
.addr dt{color:var(--muted)}
.addr dd{margin:0;border-bottom:1px dashed var(--line2);padding-bottom:3px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{display:inline-flex;padding:5px 12px;border-radius:999px;background:var(--soft);font-size:13.5px;color:var(--ink2)}

/* article layout */
.a-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:56px;padding-top:40px;padding-bottom:30px}
.a-grid>*{min-width:0}
.side-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:18px}
.toc ol{list-style:none;margin:0;padding:0}
.toc a{display:block;padding:6px 10px;border-radius:8px;text-decoration:none;font-size:14.5px;line-height:1.35;color:var(--ink2)}
.toc a:hover{background:var(--soft);color:var(--ink)}
.toc a.active{background:var(--ink);color:#fff}
.side-tool{display:block;padding:14px 16px;border-radius:12px;background:var(--card);border:1.5px dashed var(--line2);text-decoration:none}
.side-tool small{display:block;font:500 18px/1 var(--hand);color:var(--red)}
.side-tool b{display:block;font-weight:600;margin-top:4px}
.side-tool:hover{border-color:var(--ink)}

/* prose */
.prose{font:400 18px/1.72 var(--text);color:#222b40;max-width:760px}
.prose>*:first-child{margin-top:0}
.prose h2{font:600 clamp(23px,2.3vw,29px)/1.22 var(--head);margin:52px 0 16px}
.prose h2::after{content:"";display:block;width:56px;height:5px;margin-top:12px;border-radius:3px;background:linear-gradient(90deg,var(--red) 0 33%,transparent 33% 50%,var(--blue) 50% 83%,transparent 83%)}
.prose h3{font:600 20px/1.3 var(--head);margin:30px 0 10px}
.prose p{margin:0 0 16px}
.prose a{color:var(--blue);text-decoration-thickness:1.5px;text-underline-offset:3px}
.prose a:hover{color:var(--red)}
.prose ul,.prose ol{padding-left:24px;margin:0 0 18px}
.prose li{margin:6px 0}
.prose li::marker{color:var(--red)}
.prose strong{font-weight:600;color:var(--ink)}
.prose sup{font:600 11px/1 var(--head);color:var(--blue)}
.table-wrap{overflow-x:auto;margin:24px 0 28px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.prose table{border-collapse:collapse;width:100%;font:400 15.5px/1.45 var(--head);min-width:520px}
.prose th{text-align:left;font-weight:600;padding:11px 14px;background:var(--soft);font-size:14.5px}
.prose td{padding:10px 14px;border-top:1px solid var(--line);vertical-align:top}
.prose blockquote{margin:24px 0 26px;padding:16px 20px;border-radius:12px;background:var(--card);border:1px dashed var(--line2);font-style:italic;color:var(--ink2)}
.prose blockquote p{margin:0 0 8px}
.prose blockquote p:last-child{margin:0}
.callout{margin:26px 0;padding:14px 20px 16px;background:var(--card);border-radius:12px;border:1px solid var(--line);position:relative}
.callout-label{font:500 24px/1 var(--hand);color:var(--red);margin-bottom:6px}
.callout p:last-child{margin:0}
.refs{font:400 14.5px/1.5 var(--head);color:var(--ink2)}
.refs p{margin:0 0 8px}

/* faq */
.faq{margin-top:54px}
.faq h2{font:600 clamp(23px,2.3vw,29px)/1.22 var(--head);margin-bottom:14px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.faq-item summary{list-style:none;cursor:pointer;padding:15px 46px 15px 18px;font-weight:500;font-size:17px;line-height:1.4;position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:16px;top:12px;font-size:24px;color:var(--red);transition:transform .2s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item div{padding:0 18px 16px;color:var(--ink2);font:400 16.5px/1.6 var(--text)}
.faq-item p{margin:0}

/* after */
.pn-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 48px}
.pn{display:block;padding:16px 18px;border-radius:12px;background:var(--card);border:1px solid var(--line);text-decoration:none}
.pn:hover{border-color:var(--ink)}
.pn small{display:block;color:var(--muted);font-size:13px;margin-bottom:4px}
.pn b{font-weight:600}
.pn.next{text-align:right;grid-column:2}
.block-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 20px;margin-bottom:20px}
.block-head .hand{font-size:22px;color:var(--red);margin-right:auto;margin-left:12px}
.block-head a{font-size:15px;color:var(--ink2)}
.block-lead{color:var(--ink2);max-width:760px;margin:-6px 0 22px;font:400 17px/1.6 var(--text)}

/* postcards list */
.pcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pcard{display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;border-radius:12px;background:var(--card);border:1px solid var(--line);text-decoration:none;position:relative;transition:transform .15s,box-shadow .15s}
.pcard::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:12px 12px 0 0;background:var(--airmail);opacity:.85}
.pcard:hover{transform:translateY(-2px) rotate(-.3deg);box-shadow:0 12px 26px rgba(31,42,68,.08)}
.pcard b{font-weight:600;font-size:18px;line-height:1.3;margin-top:6px}
.pcard small{color:var(--muted);font-size:14.5px;line-height:1.5}
.pcard .pc-min{font:500 17px/1 var(--hand);color:var(--blue);margin-top:auto;padding-top:6px}
.pcard.is-cur{opacity:.6}
.hub{padding-top:30px;padding-bottom:20px}
.other-secs{margin-top:40px}
.chip-link{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);text-decoration:none;font-size:15px}
.chip-link:hover{border-color:var(--ink)}
.block-tools{padding-top:34px;padding-bottom:60px}

/* tools strip */
.tools-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tool-card{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:12px;background:var(--card);border:1.5px dashed var(--line2);text-decoration:none}
.tool-card:hover{border-color:var(--ink);border-style:solid}
.tool-card .tc-no{font:500 20px/1 var(--hand);color:var(--red)}
.tool-card b{font-weight:600;font-size:17.5px;line-height:1.3}
.tool-card small{color:var(--muted);font-size:14px;line-height:1.45}

/* home */
.hero{padding:46px 0 40px}
.hero-card{position:relative;background:var(--card);border-radius:18px;box-shadow:0 1px 0 var(--line2),0 24px 50px rgba(31,42,68,.08);padding:40px 44px;overflow:hidden}
.hero-card::before{content:"";position:absolute;inset:0;border:10px solid transparent;border-image:var(--airmail) 10;border-radius:18px;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:center}
.hero-grid>*{min-width:0}
.hero-card h1{margin-top:10px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-note{font:500 24px/1.2 var(--hand);color:var(--red);transform:rotate(-2deg);display:inline-block}
.stamps{display:grid;grid-template-columns:repeat(3,auto);gap:14px;justify-content:center}
.stamp-btn{background:none;border:0;padding:4px;cursor:pointer;transition:transform .15s}
.stamp-btn:nth-child(odd){transform:rotate(-3deg)}
.stamp-btn:nth-child(even){transform:rotate(2.5deg)}
.stamp-btn:hover{transform:rotate(0) scale(1.05)}
.stamp-btn[aria-pressed=true] .stamp .in{background:var(--c);box-shadow:inset 0 0 0 3px var(--c),inset 0 0 0 4.5px #fff}
.stamp-btn[aria-pressed=true] .stamp b,.stamp-btn[aria-pressed=true] .stamp small{color:#fff}
.stamps .postmark{align-self:center;justify-self:center}
.lang-panels{margin-top:28px}
.lang-panel{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;padding:24px 26px;border-radius:16px;background:var(--card);border:1px solid var(--line);border-left:8px solid var(--c)}
.lang-panel[hidden]{display:none}
.lp-head b{display:block;font-size:26px;font-weight:600}
.lp-head span{font:500 22px/1.2 var(--hand);color:var(--c)}
.lp-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 22px;margin:14px 0 0}
.lp-facts div{border-top:1px dashed var(--line2);padding-top:8px}
.lp-facts dt{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lp-facts dd{margin:3px 0 0;font-size:15.5px;line-height:1.4}
.lp-note{font:400 16.5px/1.6 var(--text);color:var(--ink2);margin:14px 0 0}
.lp-go{display:inline-block;margin-top:12px;font-weight:500;color:var(--blue)}
.route-years{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;position:relative;margin-top:10px}
.route-years::before{content:"";position:absolute;left:0;right:0;top:30px;border-top:3px dashed var(--line2)}
.ry{position:relative;padding:0 14px 0 0}
.ry .dot{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--card);border:2px solid var(--ink);font:600 18px/1 var(--head);position:relative;z-index:1}
.ry b{display:block;margin-top:14px;font-weight:600;font-size:17px;line-height:1.3}
.ry p{margin:6px 0 0;font:400 15px/1.55 var(--text);color:var(--ink2)}
.ry a{font-size:14px;color:var(--blue)}
.facts-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fact{padding:20px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.fact b{display:block;font-size:34px;font-weight:600;line-height:1;color:var(--red)}
.fact span{display:block;margin-top:8px;font:400 15.5px/1.5 var(--text);color:var(--ink2)}
.sec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.sec-card{padding:20px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.sec-card .sc-head{display:flex;justify-content:space-between;align-items:baseline;text-decoration:none;padding-bottom:10px;border-bottom:1px dashed var(--line2)}
.sec-card .sc-head b{font-size:20px;font-weight:600}
.sec-card .sc-head small{font:500 18px/1 var(--hand);color:var(--blue)}
.sec-card ul{list-style:none;margin:10px 0 0;padding:0}
.sec-card li a{display:block;padding:3px 0;font-size:15px;color:var(--ink2);text-decoration:none}
.sec-card li a:hover{color:var(--red)}
.block{padding-top:56px;padding-bottom:6px}
.home-faq{padding-bottom:60px}
.home-faq .faq{margin-top:0}

/* footer */
.site-footer{background:var(--ink);color:#D6DAE6;padding:0 0 30px;margin-top:40px}
.site-footer::before{content:"";display:block;height:8px;background:var(--airmail);margin-bottom:44px}
.f-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 30px}
.f-col h3{font-size:16px;font-weight:600;margin:0 0 10px}
.f-col h3 a{text-decoration:none;color:#fff}
.f-col h3.f-sub{margin-top:20px}
.f-col ul{list-style:none;margin:0;padding:0}
.f-col li a{display:block;padding:3px 0;font-size:14px;text-decoration:none;color:#C3C8D8}
.f-col li a:hover{color:#fff;text-decoration:underline}
.f-bottom{margin-top:34px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);font-size:13.5px;color:#A6ACC0}
.f-bottom p{max-width:900px;margin:0 0 10px}

/* tools pages */
.tool-head .card-letter{padding-bottom:26px}
.tool-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;padding-top:34px;padding-bottom:30px;align-items:start}
.tool-grid>*{min-width:0}
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.tool-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:100px}
.note-card{background:var(--card);border:1.5px dashed var(--line2);border-radius:14px;padding:16px 18px;font-size:15px;line-height:1.55;color:var(--ink2)}
.note-card .hand{font-size:22px;color:var(--red);display:block;margin-bottom:4px}
.note-card p{margin:0 0 10px}
.note-card ul{margin:0;padding-left:18px}
.note-card li{margin:4px 0}
.tool-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.lbl{display:block;font-weight:500;margin-bottom:8px}
.q{border:0;margin:0 0 22px;padding:0}
.q legend{font-weight:600;font-size:17.5px;margin-bottom:10px;padding:0}
.q legend i{font:500 20px/1 var(--hand);font-style:normal;color:var(--red);margin-right:8px}
.segs{display:flex;flex-wrap:wrap;gap:6px}
label.seg{position:relative}
label.seg input{position:absolute;opacity:0;pointer-events:none}
label.seg span{display:inline-block;padding:8px 15px;border-radius:999px;border:1.5px solid var(--line2);background:var(--card);cursor:pointer;font-size:15px}
label.seg input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
label.seg input:focus-visible+span{outline:3px solid var(--blue);outline-offset:2px}
.chk{display:inline-flex;gap:8px;align-items:center;cursor:pointer;font-size:15px;padding:6px 12px;border-radius:999px;border:1.5px solid var(--line2);background:var(--card)}
.chk input{accent-color:var(--ink);width:17px;height:17px}
.result{margin-top:8px;border-top:2px dashed var(--line2);padding-top:18px}
.rank{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.rank li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--paper)}
.rank .stamp{width:64px;height:74px}
.rank .stamp b{font-size:24px;margin-top:0}
.rank .stamp small{display:none}
.rank b.nm{display:block;font-size:18px;font-weight:600}
.rank p{margin:4px 0 0;font:400 15px/1.5 var(--text);color:var(--ink2)}
.rank .score{font:500 26px/1 var(--hand);color:var(--red);white-space:nowrap}
.cmp-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--line);background:var(--card)}
.cmp{border-collapse:collapse;width:100%;min-width:720px;font-size:15px}
.cmp th,.cmp td{padding:11px 12px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.cmp thead th{border-top:0;background:var(--soft);font-weight:600}
.cmp thead th span{display:block;font:500 18px/1 var(--hand);color:var(--c)}
.cmp tbody th{font-weight:500;color:var(--ink2);width:200px}
.cmp td.yes{color:#2F6B3E;font-weight:500}
.cmp td.no{color:var(--muted)}
.cmp tr.hl td,.cmp tr.hl th{background:#FFF8E6}
.inp{height:44px;padding:0 12px;border:1.5px solid var(--line2);border-radius:10px;background:#fff;font-size:16px}
.inp:focus{border-color:var(--ink);outline:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.big-num{font:600 56px/1 var(--head);color:var(--ink)}
.big-num small{font-size:18px;color:var(--muted);font-weight:400;margin-left:6px}
.bars{display:grid;gap:8px;margin-top:16px}
.bar{display:grid;grid-template-columns:150px minmax(0,1fr) 70px;gap:10px;align-items:center;font-size:14.5px}
.bar .t{height:12px;border-radius:6px;background:var(--soft);overflow:hidden}
.bar .t i{display:block;height:100%;background:var(--c,var(--blue))}
.bar .v{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.warn-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#FBE9E5;color:#7B2617;font-size:15px}
.ok-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#E7F1E8;color:#24502D;font-size:15px}
/* flashcards */
.fc-top{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center}
.fc-card{margin:22px auto 0;max-width:520px;min-height:240px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:0 14px 30px rgba(31,42,68,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;position:relative;cursor:pointer}
.fc-card::before{content:"";position:absolute;left:0;right:0;top:0;height:7px;border-radius:16px 16px 0 0;background:var(--airmail)}
.fc-word{font-size:44px;font-weight:600;line-height:1.15}
.fc-sub{font:500 24px/1.2 var(--hand);color:var(--blue);margin-top:8px;min-height:30px}
.fc-ru{font:400 20px/1.4 var(--text);color:var(--ink2);margin-top:12px}
.fc-hint{position:absolute;bottom:12px;font-size:13px;color:var(--muted)}
.fc-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.fc-boxes{display:flex;gap:8px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.fc-boxes span{padding:6px 12px;border-radius:999px;background:var(--soft);font-size:14px}
.tools-big{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.tool-big{display:block;padding:24px;border-radius:16px;background:var(--card);border:1.5px dashed var(--line2);text-decoration:none}
.tool-big i{font:500 22px/1 var(--hand);font-style:normal;color:var(--red)}
.tool-big b{display:block;font-size:23px;font-weight:600;margin:6px 0}
.tool-big span{color:var(--ink2)}
.tool-big:hover{border-color:var(--ink);border-style:solid}
.sitemap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 36px;padding-top:34px;padding-bottom:40px}
.sitemap-grid h2{font-size:20px;margin-bottom:8px}
.sitemap-grid ul{margin:0;padding-left:18px}
.sitemap-grid li{margin:4px 0}

@media (max-width:1120px){
  .main-nav a{padding:8px 8px;font-size:14px}
}
@media (max-width:1020px){
  .menu-toggle{display:inline-grid}
  .main-nav{display:none}
  .main-nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 26px 14px;box-shadow:0 20px 40px rgba(0,0,0,.1)}
  .main-nav.open a{border-radius:8px;padding:12px}
  .tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcards,.sec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-grid{grid-template-columns:1fr}
  .route-years{grid-template-columns:1fr;gap:18px}
  .route-years::before{left:30px;right:auto;top:0;bottom:0;border-top:0;border-left:3px dashed var(--line2)}
  .ry{display:grid;grid-template-columns:60px minmax(0,1fr);gap:0 16px}
  .ry .dot{grid-row:span 3}
  .ry b{margin-top:6px}
}
@media (max-width:900px){
  .a-grid{grid-template-columns:1fr;gap:10px}
  .a-side{order:2}
  .side-sticky{position:static}
  .a-side .toc{display:none}
  .tool-grid{grid-template-columns:1fr}
  .tool-side{position:static}
  .cl-grid{grid-template-columns:1fr}
  .cl-right{flex-direction:row;align-items:center;justify-content:flex-start;order:-1}
  .cl-right .postmark{margin:0 0 0 10px}
  .facts-strip{grid-template-columns:1fr}
  .lang-panel{grid-template-columns:1fr}
  .lp-facts{grid-template-columns:1fr 1fr}
  .tools-big{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  .wrap{padding-left:16px;padding-right:16px}
  .main-nav.open{padding:8px 16px 14px}
  .header-inner{height:60px}
  .logo-text span{display:none}
  .card-letter{padding:24px 18px 20px}
  .hero-card{padding:28px 20px}
  .prose{font-size:17px}
  .prose h2{margin-top:42px}
  .tools-grid,.pcards,.sec-grid,.f-grid,.sitemap-grid{grid-template-columns:1fr}
  .pn-row{grid-template-columns:1fr}
  .pn.next{grid-column:1;text-align:left}
  .stamps{grid-template-columns:repeat(3,auto);gap:6px}
  .stamp{width:76px;height:88px}
  .stamp b{font-size:28px}
  .stamps .postmark{width:84px;height:84px;font-size:9.5px}
  .lp-facts{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .rank li{grid-template-columns:auto minmax(0,1fr)}
  .rank .score{grid-column:2}
  .bar{grid-template-columns:110px minmax(0,1fr) 54px}
  .fc-word{font-size:36px}
  .addr{grid-template-columns:1fr}
  .addr dt{margin-top:6px}
}
@media print{
  .site-header,.site-footer,.a-side,.after,.block-tools,.search-modal{display:none!important}
  body{background:#fff}
  .a-grid{display:block}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
