:root{--bg:#150C0A;--bg2:#1d1210;--panel:rgba(255,240,225,.05);--panel2:rgba(255,240,225,.09);--text:#F7EEE3;--text2:#EEE4D6;--muted:#B89A88;
  --violet:#F59E3D;--mag:#FF6F8B;--gold:#F7C64B;--gold2:#FFE3A6;--line:rgba(255,220,190,.12);--ok:#7ED39B;--warn:#FFB27A;--shadow:0 10px 34px rgba(245,158,61,.35)}
html[data-theme=light]{--bg:#FBF6EE;--bg2:#F3EBDF;--panel:rgba(60,30,20,.05);--panel2:rgba(60,30,20,.09);--text:#2A1A14;--text2:#3B2A22;--muted:#7A6257;
  --gold:#B8790F;--gold2:#8A5A05;--line:rgba(60,30,20,.14);--shadow:0 10px 30px rgba(184,121,15,.25);
  --violet:#B85C00;--mag:#C22A4C;--ok:#1E7A46;--warn:#9A5B12}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--text);font-family:"Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:var(--gold2)}
h1,h2{font-family:"Forum",Georgia,serif;font-weight:400;letter-spacing:.01em;line-height:1.12;margin:0 0 14px}
h1{font-size:clamp(30px,5.4vw,46px)}h2{font-size:clamp(23px,3.6vw,30px);margin-top:34px}
h3{font-size:19px;margin:22px 0 8px;font-weight:700}
p{margin:0 0 16px}.muted{color:var(--muted)}.small{font-size:14px}.center{text-align:center}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:720px;margin:0 auto}
.lbl{font:700 12px/1 ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;background:linear-gradient(90deg,var(--violet),var(--mag));-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.grad{background:linear-gradient(105deg,var(--violet),var(--mag) 45%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-block;cursor:pointer;border:0;background:linear-gradient(100deg,#C24A00,#B01E42);color:#fff;font-weight:800;font-size:16px;padding:15px 28px;border-radius:14px;box-shadow:var(--shadow);text-decoration:none;text-align:center;transition:transform .15s;min-height:48px;font-family:inherit}
.btn:hover{transform:translateY(-1px)}.btn.wide{display:block;width:100%}.btn.ghost{background:transparent;color:var(--gold2);border:1.5px solid var(--line);box-shadow:none}
.btn.small{padding:10px 16px;font-size:14px;min-height:40px}.btn:disabled{opacity:.5;cursor:default;transform:none}
.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;border-bottom:1px solid var(--line);padding:14px 0;font:700 14px/1.5 ui-monospace,monospace;letter-spacing:.06em}
.top .brand{text-transform:uppercase;letter-spacing:.1em}
.top nav{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}.top a{color:var(--text);text-decoration:none;white-space:nowrap}.top .brand{color:var(--gold)}.top nav a.act{color:var(--gold2);border-bottom:2px solid var(--gold)}
.tbtn{background:none;border:1px solid var(--line);color:var(--text);border-radius:999px;padding:4px 10px;cursor:pointer;font:inherit;font-size:12px}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 20px;text-decoration:none;color:inherit;margin-bottom:12px}
.card:hover{border-color:var(--gold)}.card h3{margin:0 0 6px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.tip{background:var(--panel);border-left:3px solid var(--gold);border-radius:8px;padding:13px 16px;margin:0 0 16px;color:var(--gold2)}
.err{background:rgba(255,111,139,.12);border:1px solid var(--mag);border-radius:10px;padding:12px 14px;margin:0 0 14px}
.ok{background:rgba(126,211,155,.12);border:1px solid var(--ok);border-radius:10px;padding:12px 14px;margin:0 0 14px}
input[type=text],input[type=email],input[type=password],textarea,select{width:100%;font:inherit;font-size:17px;color:var(--text);background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:13px 14px;outline:none}
input:focus,textarea:focus{border-color:var(--gold)}textarea{min-height:140px;resize:vertical}
label.chk{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;font-size:15px;line-height:1.45;margin:12px 0;cursor:pointer}label.chk input{width:20px;height:20px;margin-top:2px}label.chk span{display:block}
.field{margin:0 0 14px}.field label{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}
footer{border-top:1px solid var(--line);margin-top:50px;padding:26px 0 60px;color:var(--muted);font-size:14px}
footer a{color:var(--muted)}
.disc{font-size:13px;color:var(--muted)}
.progress{height:8px;background:var(--panel2);border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--mag));border-radius:99px}
/* модули */
.mod{border:1px solid var(--line);border-radius:16px;margin-bottom:12px;background:var(--panel)}
.mod header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;cursor:pointer}
.mod header .num{font:700 12px/1 ui-monospace,monospace;letter-spacing:.14em;color:var(--gold);text-transform:uppercase}
.mod ul{list-style:none;margin:0;padding:0 18px 12px}.mod li{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.mod li a{color:var(--text);text-decoration:none;flex:1}.mod li .st{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);flex:none;display:grid;place-items:center;font-size:12px}
.mod li .st.done{background:var(--ok);border-color:var(--ok);color:#10261a}.mod li .min{color:var(--muted);font-size:13px;white-space:nowrap}
.mod.locked header{opacity:.7}.mod .lock{font-size:13px;color:var(--muted)}
/* урок */
.lesson{max-width:720px;margin:0 auto}.lesson h2{font-size:26px}.lesson p,.lesson li{font-size:18px;line-height:1.7;color:var(--text2)}
.lesson figure.card{margin:22px auto;max-width:300px;text-align:center;padding:12px;background:var(--panel);border-radius:14px;border:1px solid var(--line)}
.lesson figure.card img{width:100%;height:auto;border-radius:10px;cursor:zoom-in}.lesson figcaption{font-size:14px;color:var(--gold2);margin-top:8px}
.lesson blockquote{border-left:3px solid var(--gold);margin:16px 0;padding:6px 16px;color:var(--gold2)}
.lesson ul.remember{background:var(--panel);border-radius:12px;padding:14px 18px 14px 34px}
.player{position:sticky;bottom:0;background:var(--bg2);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center;z-index:5}
.player button{background:var(--panel2);border:0;color:var(--text);border-radius:10px;min-width:44px;height:44px;font-size:16px;cursor:pointer}.player .play{background:linear-gradient(100deg,var(--violet),var(--mag));color:#fff;font-weight:800}
.player input[type=range]{flex:1;accent-color:var(--gold)}.player .t{font:13px ui-monospace,monospace;color:var(--muted);min-width:44px;text-align:center}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;place-items:center;z-index:50;cursor:zoom-out}.lightbox img{max-width:92vw;max-height:92vh;border-radius:12px}.lightbox.on{display:grid}
.quiz .q{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px}.quiz .q label{display:block;padding:8px 10px;border-radius:8px;cursor:pointer}.quiz .q label:hover{background:var(--panel)}
.quiz .q.right{border-color:var(--ok)}.quiz .q.wrong{border-color:var(--mag)}.quiz .why{font-size:14px;color:var(--muted);margin-top:6px}
.hw{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:12px 0;background:var(--panel)}.hw .review{border-left:3px solid var(--ok);padding:8px 14px;margin-top:10px}
.pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:13px;border:1px solid var(--line);color:var(--text2)}
.pill.ok{border-color:var(--ok);color:var(--ok);background:rgba(126,211,155,.14)}
.pill.wait{border-color:var(--warn);color:var(--warn);background:rgba(255,178,122,.14)}
html[data-theme=light] .pill.ok{background:rgba(30,122,70,.10)}html[data-theme=light] .pill.wait{background:rgba(154,91,18,.10)}
.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.cardgrid a{text-decoration:none;color:var(--text);text-align:center;font-size:13px}.cardgrid img{width:100%;border-radius:10px;border:1px solid var(--line)}
.cod{display:flex;gap:18px;align-items:flex-start;background:var(--panel);border:1px solid var(--gold);border-radius:16px;padding:18px}.cod img{width:120px;border-radius:10px;flex:none}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}
.tariffs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:20px 0}.tariff{border:1px solid var(--line);border-radius:18px;padding:22px;background:var(--panel);display:flex;flex-direction:column}
.tariff.hot{border-color:var(--gold);box-shadow:var(--shadow)}.tariff .price{font-family:"Forum",Georgia,serif;font-size:38px;margin:6px 0}.tariff ul{padding-left:20px;margin:10px 0 18px;flex:1}.tariff li{margin:6px 0;font-size:15px}
.faq details{border-top:1px solid var(--line);padding:12px 0}.faq summary{cursor:pointer;font-weight:700;font-size:17px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;place-items:center;z-index:40;padding:16px}.modal.on{display:grid}.modal .box{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:24px;max-width:460px;width:100%;max-height:92vh;overflow:auto}
.codeinput{font:700 30px/1 ui-monospace,monospace;letter-spacing:.35em;text-align:center}
.cert{background:#fff;color:#2A1A14;border:12px double #B8790F;padding:48px 40px;text-align:center;max-width:820px;margin:20px auto;font-family:"Golos Text",Arial,sans-serif}
.cert h1{font-family:"Forum",Georgia,serif;color:#8A5A05;font-size:44px}.cert .name{font-size:32px;margin:18px 0;font-family:"Forum",Georgia,serif}
@media print{body{background:#fff}.top,footer,.noprint{display:none}.cert{border-color:#8A5A05}}
@media(max-width:600px){.player{flex-wrap:wrap;gap:8px}.player input[type=range]{flex:1 1 100%;order:-1;margin:0}.player .t{min-width:38px;font-size:12px}.player button{min-width:42px;height:42px}table{display:block;overflow-x:auto;white-space:nowrap}table td,table th{white-space:normal}body{font-size:16px}.lesson p,.lesson li{font-size:17px}.tariff .price{font-size:32px}.cod{flex-direction:column}.cod img{width:110px}}

/* карточки в модулях 4–5, флеш-карты, пр. */
.lesson details.cardblock{border:1px solid var(--line);border-radius:14px;padding:6px 16px;margin:10px 0;background:var(--panel)}
.lesson details.cardblock summary{cursor:pointer;font-weight:700;font-size:18px;padding:10px 0;color:var(--gold2);list-style:none}.lesson details.cardblock summary::before{content:'▸ ';color:var(--muted)}.lesson details.cardblock[open] summary::before{content:'▾ '}
.lesson details.cardblock h3{display:none}
.flash{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:10px 0 20px}.fc{cursor:pointer;text-align:center;font-size:13px}.fc img{width:100%;border-radius:10px;border:1px solid var(--line)}.fc .fn{margin-top:6px;color:var(--muted)}.fc.on .fn{color:var(--gold2);font-weight:700}
.quiz .q figure.card{padding:6px}

/* устная практика: опорные фразы, подсветка слов (расслышано / другое слово / не расслышано / лишнее), запись */
.hide{display:none!important}
.phrases{padding-left:24px;margin:8px 0 12px}.phrases li{font-size:19px;line-height:1.6;margin:4px 0}
.w{padding:0 2px;border-radius:4px}.w-ok{color:var(--ok)}.w-sub{color:var(--warn);border-bottom:2px dotted var(--warn)}.w-miss{color:var(--mag);text-decoration:line-through}.w-extra{color:var(--muted);font-style:italic}
#rec.recording #recBtn{background:linear-gradient(100deg,#B01E42,#C24A00);animation:recpulse 1.2s ease-in-out infinite}
@keyframes recpulse{0%,100%{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 8px rgba(255,111,139,.25)}}
.hw.voice audio,.hw.speak audio{display:block;margin-top:6px}

/* крупный шрифт и увеличение: ничего не обрезаем, кликабельное — не меньше 44px */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.top a{padding:4px 0;display:inline-block}
.tbtn{font-size:14px;padding:8px 14px;min-height:36px}
@media (max-width:420px){.btn{padding:15px 20px}.top{font-size:13px}}

.lesson td .play{display:inline-block;width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--gold2);font-size:12px;margin-right:8px;cursor:pointer;vertical-align:middle}.lesson td .play:hover{border-color:var(--gold)}.lesson .listen audio{display:block;margin:8px 0 12px;max-width:100%}

/* пробная запись в открытом уроке: что услышала машина */
.heard .ok{color:inherit}.heard .miss{text-decoration:underline dotted;text-underline-offset:3px;opacity:.85}

.tariff-more{margin:0 0 12px}.tariff-more summary{cursor:pointer;color:var(--gold2);font-size:14px}.tariff-more ul{margin-top:8px;font-size:14px;color:var(--text2)}

@media (max-width:600px){.hero-cta .btn{display:block;width:100%;margin:8px 0;text-align:center}.hero-cta{margin-bottom:6px}}
.lesson table.phrases{font-size:16px}.lesson table.phrases td:nth-child(2){font-size:16px}.jump{margin:-4px 0 14px}.jump a{white-space:nowrap}
@media(max-width:600px){.lesson table.phrases{display:table;white-space:normal;font-size:16px}.lesson table.phrases td,.lesson table.phrases th{padding:7px 6px}}
b.st{font-weight:800}
/* короткое сравнение тарифов и липкая кнопка (витрина) */
.tcmp{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 34px}
.tcmp-item{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--panel)}
.tcmp-item.hot{border-color:var(--gold);box-shadow:var(--shadow)}
.tcmp-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.tcmp-price{font-weight:700;white-space:nowrap}
.tcmp ul{margin:0;padding-left:18px;font-size:14px;line-height:1.45}
.tcmp .btn{margin-top:auto}
.tcmp-more{grid-column:1/-1;margin:0}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.18);display:none}
@media (max-width:700px){.tcmp{grid-template-columns:1fr;gap:10px}.tcmp ul{font-size:15px}.sticky-cta:not([hidden]){display:block}body.has-sticky{padding-bottom:78px}}
/* раздел «Промпты» */
.pcard{border:1px solid var(--line);border-radius:14px;padding:4px 16px;margin:10px 0;background:var(--panel)}
.pcard summary{cursor:pointer;font-weight:700;padding:10px 0;list-style:none}.pcard summary::before{content:'▸ ';color:var(--muted)}.pcard[open] summary::before{content:'▾ '}
.ptext{white-space:pre-wrap;word-wrap:break-word;font-family:inherit;font-size:15px;line-height:1.5;margin:6px 0;padding:10px 14px;border-left:3px solid var(--gold);background:var(--panel2);border-radius:0 10px 10px 0;color:var(--text2)}
/* разговорник и ▶ у фраз */
.pplay{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--gold);background:transparent;color:var(--gold);font-size:12px;cursor:pointer;vertical-align:middle;padding:0;margin-right:4px}
.pplay.on,.pplay:hover{background:var(--gold);color:var(--bg)}.pplay.btn{width:auto;height:auto;border-radius:12px;padding:8px 14px;font-size:14px}
.pplay.big{width:46px;height:46px;font-size:16px;margin-right:10px}
.fz-main{background:var(--panel);border:1px solid var(--gold);border-radius:16px;padding:18px 20px;margin:14px 0 20px}
.lesson .fz-en,.fz-en{font-size:clamp(26px,4.5vw,34px);line-height:1.2;font-weight:700;margin:0 0 8px;display:flex;align-items:center;flex-wrap:wrap}
.fz-hint{margin:0 0 4px;color:var(--gold2)}
.fz-err{border-left:3px solid var(--warn);padding:6px 14px;background:var(--panel)}.fz-err .bad{color:var(--warn);text-decoration:line-through}.fz-err .good{color:var(--ok)}
.fz-rel,.fz-hubs{padding-left:18px}.fz-rel li,.fz-hubs li{margin:6px 0}
.fraza span[lang=en],.fraza td[lang=en]{color:var(--gold2)}
