:root{
  --bg:#F4FBF8;--surface:#FFFFFF;--ink:#22303A;--ink-2:#56646F;--line:#DCE7E3;
  --mint:#2BC4A0;--mint-d:#178A6E;--bub:#E0407F;--bub-d:#B32E63;--lem:#FFD23F;--lem-soft:#FFF3C4;--lem-ink:#8A6A00;
  --okr:#2BC4A0;--mat:#E0407F;--rus:#F5A623;--art:#4C9EEB;
  --f:"M PLUS Rounded 1c","Nunito","Golos Text",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.4 var(--f);font-weight:700;-webkit-text-size-adjust:100%;overscroll-behavior:none}
button{font:inherit;font-weight:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
button:focus-visible{outline:3px solid var(--mint-d);outline-offset:2px}
.app{position:relative;max-width:720px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:16px 16px calc(16px + env(safe-area-inset-bottom));overflow:hidden}
.app::before,.app::after{content:"";position:absolute;border-radius:50%;z-index:0;pointer-events:none}
.app::before{left:-80px;top:120px;width:220px;height:220px;background:#E4F7F1}
.app::after{right:-70px;top:330px;width:180px;height:180px;background:#FFE9F2}
.screen{display:none;flex:1;flex-direction:column;gap:12px;position:relative;z-index:1}
.screen.active{display:flex}
.top{display:flex;justify-content:space-between;align-items:center;font-size:15px;color:var(--ink-2);min-height:44px;font-weight:800}
.top button{display:flex;align-items:center;gap:4px;min-width:44px;min-height:44px;color:var(--ink-2)}
.top .subj{font-weight:900;color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--lem-soft);color:var(--lem-ink);font-size:15px;font-weight:800}
.timerrow{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink-2)}
.timer{flex:1;height:14px;background:var(--line);border-radius:7px;overflow:hidden}
.timer i{display:block;height:100%;width:100%;background:var(--bub);border-radius:7px;transition:width 1s linear}
.mascot{display:block;width:150px;height:150px;margin:0 auto;object-fit:contain;transition:transform .3s}
.mascot.small{width:110px;height:110px}
.mascot.listen{animation:pulse 1.2s infinite}
.mascot.think{animation:wobble 1s infinite}
.mascot.talk{animation:talk .45s infinite alternate}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes wobble{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes talk{from{transform:translateY(0)}to{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.mascot{animation:none!important}}
h1{font-size:32px;margin:0;line-height:1.1;font-weight:900;text-align:center}
.lead{font-size:18px;line-height:1.3;color:#3E4C57;text-align:center;max-width:32ch;margin:0 auto}
.bubble{position:relative;background:var(--surface);border:2.5px solid var(--line);border-radius:24px;padding:16px 18px;font-size:22px;line-height:1.3;font-weight:800;min-height:64px}
.bubble.tail::after{content:"";position:absolute;left:50%;bottom:-13px;width:22px;height:22px;background:var(--surface);border-right:2.5px solid var(--line);border-bottom:2.5px solid var(--line);transform:translateX(-50%) rotate(45deg)}
.bubble small{display:block;font-size:14px;font-weight:700;color:var(--ink-2);margin-top:6px}
.tiles{display:flex;flex-direction:column;gap:12px}
.tile{display:flex;align-items:center;gap:14px;background:var(--surface);border:2.5px solid var(--line);border-bottom-width:6px;border-radius:22px;padding:14px 16px;text-align:left;font-size:19px;font-weight:900}
.tile .ic{flex:none;width:52px;height:52px;border-radius:16px;background:var(--mint);color:#fff;display:flex;align-items:center;justify-content:center}
.tile.mat .ic{background:var(--mat)}.tile.rus .ic{background:var(--rus)}.tile.art .ic{background:var(--art)}
.tile small{display:block;font-size:15px;font-weight:700;color:var(--ink-2)}
.tile:active{border-bottom-width:2.5px;transform:translateY(3px)}
.btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:64px;border-radius:20px;background:var(--surface);border:2.5px solid var(--line);border-bottom-width:6px;font-size:18px;font-weight:800;padding:8px 16px}
.btn:active{border-bottom-width:2.5px;transform:translateY(3px)}
.btn.primary{background:var(--mint);color:var(--ink);border:0;box-shadow:0 6px 0 var(--mint-d);min-height:72px;font-size:22px;font-weight:900}
.btn.primary:active{box-shadow:0 2px 0 var(--mint-d);transform:translateY(4px)}
.btn.mic{background:var(--bub);color:#fff;border:0;box-shadow:0 6px 0 var(--bub-d);min-height:92px;font-size:26px;font-weight:900}
.btn.mic:active{box-shadow:0 2px 0 var(--bub-d);transform:translateY(4px)}
.btn:disabled{opacity:.45}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modes .btn{flex-direction:column;min-height:124px;font-size:19px;gap:8px}
.modes .btn svg{width:36px;height:36px}
.modes .btn small{font-size:13px;font-weight:700;color:var(--ink-2)}
.spacer{flex:1}
.coverage{display:flex;gap:8px;justify-content:center;align-items:center;font-size:15px;color:var(--ink-2)}
.coverage i{width:30px;height:12px;border-radius:6px;background:var(--surface);border:2px solid var(--line)}
.coverage i.on{background:var(--mint-d);border-color:var(--mint-d)}
.interim{min-height:28px;text-align:center;color:var(--ink-2);font-size:17px;font-weight:700}
.parentlink{font-size:13px;color:var(--ink-2);text-align:center;font-weight:700}
.parentlink a,.parentlink button{color:inherit;text-decoration:underline;min-height:32px}
.textin{display:flex;gap:8px}
.textin input{flex:1;font:inherit;font-size:18px;padding:12px 14px;border:2.5px solid var(--line);border-radius:16px;background:var(--surface)}
.stickers{display:flex;justify-content:center;gap:6px;color:var(--lem);flex-wrap:wrap}
.stickers svg{width:56px;height:56px}
.stickers .empty{color:var(--mint)}
.hint{font-size:15px;color:var(--ink-2);text-align:center}
.fact{background:var(--surface);border:2.5px solid var(--line);border-radius:24px;padding:22px;font-size:26px;font-weight:800;line-height:1.3;min-height:160px;display:flex;align-items:center}
.dots{display:flex;gap:6px;justify-content:center}.dots i{width:10px;height:10px;border-radius:50%;background:var(--line)}.dots i.on{background:var(--mint-d)}
.links a{display:block;font-size:15px;color:var(--ink-2);margin-top:6px}
.err{color:#B32E63;font-size:14px;text-align:center;font-weight:700}
.gate input{font-size:22px;padding:14px;border:2.5px solid var(--line);border-radius:18px;width:100%;text-align:center;font-family:inherit}
.keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.key{min-height:60px;border-radius:16px;background:var(--surface);border:2.5px solid var(--line);border-bottom-width:6px;font-size:26px;font-weight:900}
.key:active{border-bottom-width:2.5px;transform:translateY(3px)}
.subject-okr{--accent:var(--okr)}.subject-mat{--accent:var(--mat)}.subject-rus{--accent:var(--rus)}.subject-art{--accent:var(--art)}

.readcard{background:var(--surface);border:2.5px solid var(--line);border-radius:24px;padding:22px;font-size:44px;font-weight:900;line-height:1.3;text-align:center;letter-spacing:.06em;word-spacing:.5em}
