/* Layout: Мапа КешКвесту з 7 локацій-модулів → урок як маршрут (Вступ) → Відеоурок → Квіз → Місія → Сертифікат */
/* Палітра й шрифти як на BY Finance Kids (LearnWorlds): заголовки — контрастна антиква, текст — Raleway, кнопки — помаранчево-жовті з білим текстом */
:root{
  --bg:#ffffff; --surface:#ffffff; --band:#f4f4f4; --ink:#2b2e33; --muted:#62666d; --line:#e3e3e3;
  --brand:#eeaf3c; --brand-ink:#ffffff; --brand-text:#a8680c; --brand-soft:#fdf1d6;
  --leaf:#2e8b47; --leaf-soft:#d5f0da; --wrong:#cc3a42; --wrong-soft:#fbe4e5;
  --coin-ink:#5a3a00;
  --display:"Playfair Display","Times New Roman",Georgia,serif;
  --body:"Raleway","Segoe UI",system-ui,sans-serif;
  --r:16px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#1e2125; --surface:#2b2e33; --band:#25282c; --ink:#f1f1f2; --muted:#b4b8be; --line:#3c4046;
  --brand:#f0b444; --brand-ink:#ffffff; --brand-text:#f5c46a; --brand-soft:#3d3220;
  --leaf:#5cc17a; --leaf-soft:#1f3a28; --wrong:#ff7b82; --wrong-soft:#43262a;
  --coin-ink:#3d2700; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1e2125; --surface:#2b2e33; --band:#25282c; --ink:#f1f1f2; --muted:#b4b8be; --line:#3c4046;
  --brand:#f0b444; --brand-ink:#ffffff; --brand-text:#f5c46a; --brand-soft:#3d3220;
  --leaf:#5cc17a; --leaf-soft:#1f3a28; --wrong:#ff7b82; --wrong-soft:#43262a;
  --coin-ink:#3d2700; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:1040px;margin:0 auto}
h1,h2,h3{font-family:var(--display);text-wrap:balance;line-height:1.15;margin:0}
a{color:var(--brand-text)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--leaf);outline-offset:2px;border-radius:8px}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:800;font-size:18px}
.coin{width:38px;height:38px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:14px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.15);flex:0 0 auto}
.coin.sm{width:24px;height:24px;font-size:11px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}
.stats{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-weight:700;color:var(--muted);font-size:15px}
.stat{display:flex;align-items:center;gap:8px}
.stat b{color:var(--ink);font-variant-numeric:tabular-nums}
.bar{width:110px;height:10px;border-radius:99px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--leaf);width:0;transition:width .4s}

/* hero */
.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center;padding-block:28px 36px}
.hero h1{font-size:clamp(30px,5vw,52px);font-weight:800}
.hero h1 em{font-style:normal;color:var(--brand-text)}
.hero p{color:var(--muted);font-size:19px;max-width:34em;margin:16px 0 22px}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.chip{background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:6px 14px;font-weight:700;font-size:14px}
.chip b{color:var(--brand-text)}
.cta{display:inline-flex;align-items:center;gap:8px;background:var(--brand);color:var(--brand-ink);border:0;border-radius:14px;padding:14px 22px;font-weight:800;font-size:17px;text-decoration:none;box-shadow:0 4px 0 color-mix(in srgb,var(--brand) 55%,#000)}
.cta:active{transform:translateY(2px);box-shadow:0 2px 0 color-mix(in srgb,var(--brand) 55%,#000)}
.hero-art{aspect-ratio:1;max-width:100%}
.hero-art canvas{width:100%;height:100%;display:block}

/* map */
.module{padding-block:22px;display:grid;grid-template-columns:72px 1fr;gap:4px 18px}
.mnum{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;color:var(--brand-text);font-variant-numeric:tabular-nums}
.mbody{min-width:0}
.mhead{display:flex;gap:10px 14px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.place{font-size:13px;font-weight:800;background:var(--brand-soft);color:var(--brand-text);border-radius:99px;padding:4px 12px;text-transform:uppercase;letter-spacing:.06em}
.mhead h2{font-size:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);padding:16px;color:var(--ink);display:flex;flex-direction:column;gap:8px;transition:transform .15s,border-color .15s;min-width:0;text-decoration:none}
.card:hover{transform:translateY(-3px);border-color:var(--brand)}
.card .n{font-family:var(--display);font-weight:800;font-size:13px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:6px}
.card h3{font-size:16px;font-weight:700}
.card .meta{display:flex;gap:12px;color:var(--muted);font-size:14px;font-weight:700;margin-top:auto}
.tags{display:flex;gap:6px}
.tag{font-size:12px;font-weight:800;border-radius:99px;padding:2px 9px;font-family:var(--body);white-space:nowrap}
.tag.free{background:var(--brand);color:var(--brand-ink)}
.tag.done{background:var(--leaf-soft);color:var(--leaf)}
.tag.coins{background:var(--brand-soft);color:var(--brand-text)}
.certcard{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--surface);border:2px dashed var(--brand);border-radius:var(--r);padding:18px 20px;color:var(--ink);text-decoration:none}
.certcard .medal{width:52px;height:52px;flex:0 0 auto}
.certcard b{font-family:var(--display);font-size:17px;display:block}
.certcard span{color:var(--muted);font-size:15px}

/* lesson */
.lesson{padding-block:6px 40px}
.back{background:none;border:0;color:var(--brand-text);font-weight:800;padding:6px 0;font-size:16px}
.steps{display:flex;gap:6px;overflow-x:auto;padding:10px 2px;scrollbar-width:thin}
.dot{flex:0 0 auto;min-width:40px;height:36px;border-radius:99px;border:2px solid var(--line);background:var(--surface);color:var(--muted);font-weight:800;font-size:13px;padding:0 8px;font-variant-numeric:tabular-nums}
.dot.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.dot.ok{border-color:var(--leaf);color:var(--leaf)}
.dot.on.ok{color:var(--brand-ink)}
.dot.sep{margin-left:8px}
.lhead{margin:8px 0 18px}
.eyebrow{font-weight:800;color:var(--brand-text);text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.lhead h1{font-size:clamp(26px,4vw,38px);margin-top:6px}

.route{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:8px;margin-bottom:20px}
.stop{display:flex;align-items:center;gap:10px;background:var(--surface);border:2px solid var(--line);border-radius:14px;padding:10px 12px;color:var(--muted);font-weight:800;font-size:15px;text-align:left;min-width:0}
.stop .k{width:28px;height:28px;border-radius:50%;background:var(--line);display:grid;place-items:center;font-size:13px;flex:0 0 auto;color:var(--ink)}
.stop.on{border-color:var(--brand);color:var(--ink);background:var(--brand-soft)}
.stop.on .k{background:var(--brand);color:var(--brand-ink)}
.stop.ok .k{background:var(--leaf);color:#fff}
.stop span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px clamp(18px,4vw,36px);min-width:0}
.panel h2{font-size:22px;margin-bottom:12px}
.welcome ul{margin:8px 0 18px;padding-left:22px;display:grid;gap:4px}
.welcome li::marker{color:var(--brand-text)}
.pin{display:flex;gap:12px;align-items:flex-start;background:var(--brand-soft);border-radius:14px;padding:14px 16px;margin-top:6px}
.pin b{display:block;font-family:var(--display);font-size:16px;margin-bottom:2px}

.video{display:flex;align-items:center;gap:18px;background:var(--ink);color:var(--bg);border-radius:var(--r);padding:26px;text-decoration:none;flex-wrap:wrap}
.play{width:68px;height:68px;border-radius:50%;background:var(--brand);display:grid;place-items:center;flex:0 0 auto}
.play svg{width:28px;height:28px;fill:var(--brand-ink);margin-left:4px}
.video b{font-family:var(--display);font-size:18px;display:block}
.video span{opacity:.8;font-size:15px}
.video.off{background:var(--line);color:var(--muted);cursor:default}
.video.off .play{background:var(--surface)}
.video.off .play svg{fill:var(--muted)}

/* квіз */
.qstart{text-align:center;padding-block:20px}
.qstart h2{font-size:clamp(24px,4vw,32px)}
.qstart p{max-width:32em;margin:12px auto;font-size:18px}
.qstart .cta{margin-top:14px}
.qstart .mprog{margin-top:4px}
.qtop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;font-weight:800;color:var(--muted);font-size:15px;flex-wrap:wrap}
.qtop .bar{width:160px}
.qtext{font-family:var(--display);font-size:clamp(19px,3vw,24px);font-weight:700;margin-bottom:18px;text-wrap:balance}
.opts{display:grid;gap:10px}
.opt{display:flex;align-items:center;gap:14px;text-align:left;background:var(--surface);border:2px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--ink);font-weight:700;font-size:17px;transition:border-color .15s,transform .1s}
.opt:hover:not(:disabled){border-color:var(--brand);transform:translateX(3px)}
.opt .l{width:32px;height:32px;border-radius:10px;background:var(--brand-soft);color:var(--brand-text);display:grid;place-items:center;font-family:var(--display);font-size:14px;flex:0 0 auto}
.opt:disabled{cursor:default}
.opt.right{border-color:var(--leaf);background:var(--leaf-soft)}
.opt.right .l{background:var(--leaf);color:#fff}
.opt.wrong{border-color:var(--wrong);background:var(--wrong-soft)}
.opt.wrong .l{background:var(--wrong);color:#fff}
.opt.dim{opacity:.55}
.opt.chosen{border-color:var(--brand);background:var(--brand-soft)}
.opt.chosen .l{background:var(--brand);color:var(--brand-ink)}
.fb{margin-top:16px;border-radius:14px;padding:12px 16px;font-weight:800;display:flex;align-items:center;gap:10px}
.fb.ok{background:var(--leaf-soft);color:var(--leaf)}
.fb.no{background:var(--wrong-soft);color:var(--wrong)}
.qnav{display:flex;justify-content:flex-end;margin-top:18px}
.result{text-align:center;padding-block:14px}
.big{font-family:var(--display);font-size:clamp(44px,8vw,64px);font-weight:800;color:var(--brand-text);font-variant-numeric:tabular-nums;line-height:1}
.result p{color:var(--muted);margin:10px auto 20px;max-width:28em}
.coinrow{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:16px 0 4px}
.coinrow .coin{width:30px;height:30px;font-size:12px}
.coinrow .coin.off{background:var(--line);color:var(--muted);box-shadow:none}
.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* місія */
.blocks{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;min-width:0}
.box h2{font-size:18px;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.box h2 i{font-style:normal;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:16px;font-family:var(--body);font-weight:800;flex:0 0 auto}
.hw h2 i{background:var(--brand-soft);color:var(--brand-text)}
.tips h2 i{background:var(--leaf-soft);color:var(--leaf)}
.box ol,.box ul{margin:0;padding-left:22px;display:grid;gap:8px}
.box li::marker{font-weight:800;color:var(--brand-text)}
.tips li::marker{color:var(--leaf)}
.parent{margin-top:16px;background:var(--leaf-soft);border-radius:var(--r);padding:16px 20px;font-size:16px}
.parent b{color:var(--leaf)}

/* місії з полем відповіді */
.missions{display:grid;gap:16px}
.mission{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px clamp(18px,4vw,30px);min-width:0}
.mission h2{font-size:20px;margin:6px 0 10px}
.msub{font-family:var(--body);font-weight:700;color:var(--muted);font-size:17px}
.mtext{max-width:40em}
.mtext p{margin:6px 0}
.mtext .gap{height:10px}
.mtext ul,.mtext ol{margin:4px 0 10px;padding-left:24px;display:grid;gap:2px}
.mtext ul{list-style:"– "}
.mtext li::marker{color:var(--brand-text);font-weight:800}
.mission textarea{display:block;width:100%;min-height:140px;margin-top:14px;border:2px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font:inherit;padding:12px 14px;resize:vertical}
.mission textarea:focus{border-color:var(--brand);outline:none}
.saved{font-size:14px;color:var(--leaf);font-weight:700;min-height:1.4em;margin-top:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.blocks .parent{align-self:start}
.mhero{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px clamp(18px,4vw,36px);margin-bottom:16px}
.mhero h2{font-size:clamp(24px,4vw,34px);margin-bottom:10px}
.mhero p{margin:8px auto;max-width:34em}
.mhero .lead{font-size:19px;font-weight:700}
.mhero .small{font-size:14px;color:var(--muted);margin-top:14px}
.mprog{display:inline-flex;align-items:center;gap:8px;background:var(--brand-soft);border-radius:99px;padding:6px 14px;margin-top:6px;font-weight:700;font-variant-numeric:tabular-nums}
.mfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.mfoot .saved{margin:0}
.selfnote{display:flex;gap:12px;align-items:flex-start;background:var(--brand-soft);border-radius:14px;padding:14px 16px;margin-bottom:16px;font-weight:600}

/* сертифікат */
.cert{background:var(--surface);border:3px solid var(--brand);border-radius:24px;padding:clamp(24px,5vw,48px);text-align:center;position:relative;outline:2px dashed var(--line);outline-offset:-14px}
.cert .eyebrow{margin-bottom:10px}
.cert h1{font-size:clamp(28px,5vw,44px)}
.cert .who{font-family:var(--display);font-size:clamp(24px,4vw,34px);color:var(--brand-text);margin:18px 0 6px;min-height:1.2em;overflow-wrap:anywhere}
.cert p{color:var(--muted);max-width:32em;margin:8px auto}
.cert .sig{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px;font-size:14px;color:var(--muted);text-align:left}
.cert .sig b{display:block;color:var(--ink);font-size:16px}
.namebox{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:18px 0 0}
.namebox input{font:inherit;font-weight:700;border:2px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--bg);color:var(--ink);min-width:0;width:min(320px,100%)}
.locked{text-align:center}
.locked .medal{width:90px;height:90px;margin:0 auto 10px;opacity:.5}

.nav{display:flex;justify-content:space-between;gap:10px;margin-top:20px;flex-wrap:wrap}
.btn{background:var(--surface);border:2px solid var(--line);border-radius:14px;padding:12px 18px;font-weight:800;color:var(--ink)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.done{background:var(--leaf);border-color:var(--leaf);color:#fff}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:14px;padding-block:22px 30px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}

@media (max-width:760px){
  .hero,.blocks{grid-template-columns:1fr}
  .hero-art{max-width:240px;margin:0 auto;order:-1}
  .route{grid-template-columns:1fr 1fr}
  .route .stop:last-child:nth-child(odd){grid-column:span 2}
  .module{grid-template-columns:1fr}
  .mnum{font-size:32px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== кабінет: реєстрація, профілі дітей ===== */
.demo{background:var(--brand-soft);color:var(--brand-text);font-weight:800;font-size:14px;text-align:center;padding:8px 12px;border-radius:0 0 12px 12px}
.who-chip{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:2px solid var(--line);border-radius:99px;padding:4px 12px 4px 4px;font-weight:800;color:var(--ink);text-decoration:none;font-size:15px}
.who-chip .av{width:30px;height:30px;border-radius:50%;background:var(--brand-soft);display:grid;place-items:center;font-size:18px}
.linkbtn{background:none;border:0;color:var(--brand-text);font-weight:800;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.auth-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start;padding-block:28px 40px}
.auth{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px clamp(18px,4vw,32px);min-width:0}
.auth h2{font-size:24px;margin-bottom:6px}
.auth .sub{color:var(--muted);margin:0 0 18px}
.field{display:grid;gap:6px;margin-bottom:14px}
.field label{font-weight:800;font-size:15px}
.field input{font:inherit;font-weight:600;border:2px solid var(--line);border-radius:12px;padding:11px 14px;background:var(--bg);color:var(--ink);width:100%;min-width:0}
.field input:focus{border-color:var(--brand);outline:none}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;margin:4px 0 16px}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--brand);flex:0 0 auto}
.err{background:var(--wrong-soft);color:var(--wrong);font-weight:800;border-radius:12px;padding:10px 14px;margin-bottom:14px}
.okmsg{background:var(--leaf-soft);color:var(--leaf);font-weight:800;border-radius:12px;padding:10px 14px;margin-bottom:14px}
.auth .cta{width:100%;justify-content:center}
.auth .alt{margin-top:16px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:15px}
.perks{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none}
.perks li{display:flex;gap:12px;align-items:flex-start}
.perks li .coin{width:30px;height:30px;font-size:13px}
.kids{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:18px 0}
.kid{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);padding:20px;text-align:center;color:var(--ink);display:grid;gap:6px;justify-items:center;transition:transform .15s,border-color .15s}
.kid:hover{transform:translateY(-3px);border-color:var(--brand)}
.kid .big-av{width:72px;height:72px;border-radius:50%;background:var(--brand-soft);display:grid;place-items:center;font-size:40px}
.kid b{font-family:var(--display);font-size:18px;overflow-wrap:anywhere}
.kid small{color:var(--muted);font-weight:700;font-size:14px}
.kid.add{border-style:dashed;color:var(--brand-text);font-weight:800}
.avatars{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}
.avatars button{width:46px;height:46px;border-radius:50%;border:2px solid var(--line);background:var(--bg);font-size:24px}
.avatars button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft)}
.acc-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}
.acc-row:first-child{border-top:0}
.acc-row .grow{flex:1;min-width:140px;font-weight:800}
.acc-row input{font:inherit;font-weight:700;border:2px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--bg);color:var(--ink);min-width:0;width:min(220px,100%)}
.btn.sm{padding:8px 12px;font-size:14px}
.btn.danger{border-color:var(--wrong);color:var(--wrong)}
.btn.danger.solid{background:var(--wrong);color:#fff}
.savebar{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);border-radius:99px;padding:8px 16px;font-weight:800;font-size:14px;z-index:20;transition:opacity .3s}
.savebar.err{background:var(--wrong);color:#fff}
.savebar[data-on="0"]{opacity:0;pointer-events:none}
.ytbox{position:relative;width:100%;max-width:100%;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#000}
.ytbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.loading{padding:60px 0;text-align:center;color:var(--muted);font-weight:800}
.lockcard{opacity:.9}
@media (max-width:760px){.auth-wrap{grid-template-columns:1fr}}

.top a.btn,.top a.linkbtn{text-decoration:none}
.top a.linkbtn{text-decoration:underline}
.hero.guest{grid-template-columns:1fr;padding-block:0 8px}
.hero.guest .hero-art{display:none}
.stats .btn.sm{display:inline-block}
@media print{.top,.nav,.back,.steps,footer,.savebar,.demo,.row,p[style]{display:none!important}.cert{border-color:#eeaf3c}}

.perks-row{grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 28px}
@media (max-width:760px){.perks-row{grid-template-columns:1fr}}

/* ===== стиль старого сайту ===== */
h1,h2,h3{font-weight:700;letter-spacing:-.005em}
.hero h1{font-weight:700}
.hero h1 em{font-style:normal;color:var(--brand)}
.brand{font-family:var(--body);font-weight:800;letter-spacing:.01em}
.coin{color:var(--coin-ink);font-family:var(--body)}
.cta{color:var(--brand-ink);border-radius:14px;box-shadow:none;font-weight:600;letter-spacing:.01em;padding:14px 28px;transition:filter .15s,transform .1s}
.cta:hover{filter:brightness(1.05)}
.cta:active{transform:translateY(1px);box-shadow:none}
.btn{font-weight:600;border-width:1.5px}
.btn.primary{color:var(--brand-ink)}
.card .n,.opt .l,.stop,.villain,.place,.eyebrow,.mnum,.big,.dot,.tag,.chip,.qtop,.mprog{font-family:var(--body)}
.mnum{font-weight:800}
.big{font-weight:800}
.eyebrow{font-weight:700}
.card h3,.qtext,.mission h2,.box h2,.kid b,.cert .who{font-family:var(--body);font-weight:700}
.qtext{font-size:clamp(19px,2.6vw,22px)}
.mhero h2,.qstart h2,.lhead h1,.cert h1,.auth h2,.mhead h2,.panel h2{font-family:var(--display)}
.mhero,.qstart{background:var(--surface)}
.mission textarea{background:#2c2f33;color:#f1f1f2;border-color:#2c2f33}
.mission textarea::placeholder{color:#a9adb3}
.mission textarea:focus{border-color:var(--brand)}
.module{border-top:1px solid var(--line)}
.module:first-of-type{border-top:0}
.hero{position:relative}
footer{background:var(--band);border-top:0;margin-top:20px;padding-inline:20px;border-radius:var(--r) var(--r) 0 0}
.opt.right .l,.stop.ok .k,.btn.done{color:#fff}

/* перемикач теми */
.theme-btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--ink);border:1.5px solid var(--line);border-radius:99px;padding:6px 14px 6px 8px;font-weight:700;font-size:14px}
.theme-btn .ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);font-size:15px}
.theme-btn:hover{border-color:var(--brand)}
.top-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.hero h1 em{color:var(--brand-text)}
.top{position:relative}
@media (max-width:760px){
  .theme-btn{position:absolute;top:14px;right:0;padding:6px}
  .theme-btn .tx{display:none}
  .top-right{width:100%;justify-content:flex-start}
}

footer#footer{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px 28px;padding:24px 22px 28px}
.fcol{display:grid;gap:6px;align-content:start;font-size:14px;min-width:0}
.fcol b{color:var(--ink);font-size:15px}
.fcol a{color:var(--muted);text-decoration:none;overflow-wrap:anywhere}
.fcol a:hover{color:var(--brand-text);text-decoration:underline}
