:root{
  --ink:#1b1a18; --paper:#fbf8f3; --card:#fff;
  --cinnabar:#b23a2e; --cinnabar-dk:#8d2b21; --jade:#3f6b5f; --jade-dk:#2f544a;
  --gold:#b07d2b; --line:#e6ded2; --muted:#6d6558; --sand:#f4ede2;
  --sans:'Helvetica Neue',Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:16px/1.7 Georgia,"Times New Roman",serif;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
a{color:var(--cinnabar-dk);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}

/* Шапка */
header.site{border-bottom:3px double var(--line);background:var(--card)}
.topbar{background:var(--cinnabar);color:#fff;font:12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.topbar .wrap{padding:7px 20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.topbar a{color:#fff;font-weight:600;letter-spacing:.06em}
.brand{padding:20px 0 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.seal{width:46px;height:46px;flex:0 0 46px;background:var(--cinnabar);color:#fff;display:grid;place-items:center;font-size:21px;border-radius:3px}
.logo{font-size:24px;letter-spacing:.02em;font-weight:700;line-height:1.2}
.logo a{color:var(--ink)}
.logo a:hover{text-decoration:none;color:var(--cinnabar-dk)}
.brand .sub{font:13px/1.4 var(--sans);color:var(--muted);letter-spacing:.03em}
.brand .hcta{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
nav.main{background:var(--sand);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
nav.main .wrap{display:flex;flex-wrap:wrap;gap:0 2px;padding:0 20px}
nav.main a{padding:11px 12px;font:13px/1 var(--sans);color:var(--ink);white-space:nowrap;border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current]{text-decoration:none;border-bottom-color:var(--cinnabar);color:var(--cinnabar-dk)}

/* Статья */
main{padding:30px 0 20px}
.breadcrumb{font:12px/1.5 var(--sans);color:var(--muted);margin-bottom:14px}
.breadcrumb a{color:var(--muted)}
h1.title{font-size:clamp(28px,4.2vw,42px);line-height:1.15;margin-bottom:12px;letter-spacing:-.01em}
.lede{font-size:19px;line-height:1.6;color:#3a352e;max-width:70ch;margin-bottom:8px}
.meta{font:12px/1.5 var(--sans);color:var(--muted);padding:10px 0 18px;border-bottom:1px solid var(--line);margin-bottom:26px}
h2{font-size:25px;line-height:1.25;margin:36px 0 12px;padding-bottom:7px;border-bottom:1px solid var(--line)}
h3{font-size:19px;margin:24px 0 8px;color:var(--cinnabar-dk)}
p{margin-bottom:14px;max-width:74ch}
ul,ol{margin:0 0 16px 22px;max-width:74ch}
li{margin-bottom:7px}
strong{font-weight:700}
.tbl{overflow-x:auto;margin:16px 0 22px;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:15px;background:var(--card);min-width:480px}
th,td{padding:10px 12px;text-align:left;border:1px solid var(--line);vertical-align:top}
th{background:var(--sand);font:600 13px/1.4 var(--sans);letter-spacing:.02em}
tr:nth-child(even) td{background:#fdfbf7}
.rub{color:var(--muted);white-space:nowrap;font-size:.92em}
.src{font:12px/1.5 var(--sans);color:var(--muted);margin:-10px 0 18px}
.src a{color:var(--muted);text-decoration:underline}

.note{background:#fdf6ec;border-left:4px solid var(--gold);padding:14px 16px;margin:20px 0;font:14px/1.6 var(--sans);color:#4a433a;border-radius:0 4px 4px 0;max-width:80ch}
.note b{color:#8a611f}
.note.ok{background:#f0f5f2;border-left-color:var(--jade)}
.note.ok b{color:var(--jade-dk)}
.toc{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 18px;margin:0 0 24px;max-width:74ch;font:14px/1.6 var(--sans)}
.toc b{display:block;margin-bottom:6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.toc ol{margin:0 0 0 18px}
.toc li{margin-bottom:3px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:18px 0 26px}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:18px;transition:border-color .18s,transform .18s}
.card:hover{border-color:var(--cinnabar);transform:translateY(-2px)}
.card h3{margin:0 0 6px;font-size:17px;color:var(--ink)}
.card p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.card ul{font-size:14px;margin:6px 0 0 18px}

.faq{border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:16px 0 26px;background:var(--card)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:last-child{border-bottom:0}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:700;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--cinnabar);font-size:21px;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:'−'}
.faq .ans{padding:0 16px 16px;color:#3f3a33}
.faq .ans p:last-child{margin-bottom:0}

.related{margin:30px 0 10px}
.related ul{list-style:none;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 20px;max-width:none}
.related li a{font:15px/1.5 var(--sans)}

/* Кнопки */
.btn{display:inline-block;background:var(--cinnabar);color:#fff!important;padding:11px 18px;border:0;border-radius:4px;font:600 14px/1.1 var(--sans);letter-spacing:.02em;cursor:pointer;text-align:center}
.btn:hover{background:var(--cinnabar-dk);text-decoration:none}
.btn.jade{background:var(--jade)}
.btn.jade:hover{background:var(--jade-dk)}
.btn.ghost{background:transparent;color:var(--ink)!important;border:1px solid var(--line)}
.btn.ghost:hover{background:var(--sand)}

/* Заявка (квиз) */
.lead{background:var(--ink);color:#f3ece0;padding:26px;border-radius:6px;margin:34px 0;scroll-margin-top:16px}
.lead h2{color:#fff;border:0;margin:0 0 6px;padding:0;font-size:24px}
.lead>p{color:#d8cfbf;max-width:66ch}
.lead .contacts{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 4px}
.lead .contacts .btn.ghost{color:#f3ece0!important;border-color:#6b6355}
.lead .contacts .btn.ghost:hover{background:#3a352e}
.quiz{background:#25231f;border:1px solid #3d372e;border-radius:6px;padding:18px;margin-top:16px;font-family:var(--sans)}
.quiz .bar{height:4px;background:#3d372e;border-radius:2px;margin-bottom:14px;overflow:hidden}
.quiz .bar i{display:block;height:100%;width:20%;background:var(--gold);transition:width .25s}
.quiz fieldset{border:0;margin-bottom:14px}
.quiz.js fieldset{display:none;margin-bottom:0}
.quiz.js fieldset.on{display:block}
.quiz:not(.js) .bar,.quiz:not(.js) [data-back],.quiz:not(.js) [data-next],.quiz:not(.js) [data-skip]{display:none}
.quiz legend{font:700 17px/1.35 Georgia,serif;color:#fff;margin-bottom:12px}
.quiz .opts{display:flex;flex-wrap:wrap;gap:8px}
.quiz .opts label{cursor:pointer}
.quiz .opts input{position:absolute;opacity:0;pointer-events:none}
.quiz .opts span{display:inline-block;padding:10px 14px;border:1px solid #6b6355;border-radius:4px;color:#f3ece0;font-size:14px;transition:background .15s,border-color .15s}
.quiz .opts input:checked+span,.quiz .opts span:hover{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff}
.quiz .opts input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.quiz .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.quiz label.f{display:block;font-size:13px;color:#cfc5b4}
.quiz input[type=text],.quiz input[type=tel],.quiz textarea{width:100%;margin-top:4px;padding:11px 12px;border:1px solid #6b6355;border-radius:4px;background:#1b1a18;color:#fff;font:15px/1.4 var(--sans)}
.quiz textarea{min-height:70px;resize:vertical}
.quiz input:focus,.quiz textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.quiz .agree{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#cfc5b4;margin:12px 0}
.quiz .agree a{color:#e9c88a;text-decoration:underline}
.quiz .nav{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:14px;flex-wrap:wrap}
.quiz .skip{background:none;border:0;color:#cfc5b4;font:13px var(--sans);text-decoration:underline;cursor:pointer}
.quiz .msg{margin-top:10px;font-size:14px}
.quiz .msg.err{color:#ffb4a8}
.quiz .done{font:17px/1.6 Georgia,serif;color:#fff}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Калькулятор */
.calc{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:20px;margin:20px 0 26px;font-family:var(--sans)}
.calc .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:12px}
.calc label{display:block;font-size:13px;color:var(--muted)}
.calc select,.calc input{width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:4px;font:15px var(--sans);background:#fff;color:var(--ink)}
.calc .out{border-top:1px solid var(--line);margin-top:8px;padding-top:14px}
.calc .total{font:700 24px/1.3 Georgia,serif;color:var(--cinnabar-dk)}
.calc .lines{font-size:14px;color:#3a352e;margin:8px 0 0 18px}
.calc .rate{font-size:12px;color:var(--muted);margin-top:8px}

/* Подвал */
footer.site{background:var(--ink);color:#a89e8d;margin-top:40px;font:13px/1.7 var(--sans)}
footer.site .wrap{padding:30px 20px 90px}
footer.site h4{color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px}
footer.site a{color:#d4cab9}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px;margin-bottom:22px}
.fcols ul{list-style:none;margin:0}
.fcols li{margin-bottom:6px}
.fcontact{font-size:15px;color:#fff;margin-bottom:16px}
.fcontact a{color:#fff;font-weight:600}
.disclaim{border-top:1px solid #3d372e;padding-top:16px;font-size:12px;color:#8d8576}

/* Липкая панель на телефонах */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -4px 14px rgba(0,0,0,.08);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px}
.sticky a{flex:1;padding:12px 6px;font-size:14px}
@media(max-width:760px){
 .sticky{display:flex}
 nav.main .wrap{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
 nav.main .wrap::-webkit-scrollbar{display:none}
 .brand{flex-wrap:nowrap;padding:14px 0 12px}
 .seal{width:40px;height:40px;flex-basis:40px;font-size:18px}
 .brand .sub{display:none}
 .topbar .wrap>span{display:none}
 .topbar .wrap{justify-content:center}
 .brand .hcta{display:none}
 .logo{font-size:20px}
 .topbar .wrap{letter-spacing:.06em}
 h2{font-size:22px}
 .lead{padding:20px 16px}
}
@media print{.sticky,nav.main,.lead,footer.site{display:none}}

/* Игра */
.game-modes{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}
.game-modes .btn.on{background:var(--ink)}
#game-wrap{position:relative;margin:0 0 8px}
canvas#game{display:block;width:100%;aspect-ratio:16/10;max-height:72vh;background:#2a1a0f;border-radius:6px;box-shadow:0 4px 24px rgba(0,0,0,.25);touch-action:none;cursor:none}
.g-hud{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;font:14px/1.4 var(--sans);color:#3a352e;margin:0 0 6px}
.g-hud b{color:var(--cinnabar-dk)}
#g-task{font-weight:700;color:var(--jade-dk)}
#g-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(27,26,24,.82);color:#f3ece0;border-radius:6px;padding:20px;font-family:var(--sans)}
#g-overlay[hidden]{display:none}
#g-overlay h3{color:#fff;font:700 clamp(20px,4vw,30px)/1.2 Georgia,serif;margin:0 0 8px}
#g-overlay p{color:#d8cfbf;margin:0 auto 14px;max-width:46ch}
#g-overlay .row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
#g-overlay .btn.ghost{color:#f3ece0!important;border-color:#6b6355}
#g-learned{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:12px 14px;font:14px/1.7 var(--sans);margin:8px 0 18px}
#g-learned[hidden]{display:none}
.hz{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:1.15em;color:var(--cinnabar-dk)}
.vocab td:first-child{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:20px;white-space:nowrap}
@media(max-width:760px){canvas#game{aspect-ratio:4/5}}

.season{background:#f0f5f2;border:1px solid #cfe0d8;border-left:4px solid var(--jade);border-radius:0 6px 6px 0;padding:10px 14px;margin:0 0 22px;font:14px/1.6 var(--sans);color:#2f3a35;max-width:none}
.season b{color:var(--jade-dk)}
.season a{font-weight:600}
