:root{
  --violet:#6C5CE7; --violet-d:#5648c9;
  --green:#22c55e; --green-d:#16a34a;
  --orange:#f59e0b; --pink:#ec4899; --blue:#3b82f6; --red:#ef4444;
  --ink:#1e2140; --ink-soft:#5b6079; --line:#e8e9f5;
  --card:#ffffff; --bg1:#f3f5ff; --bg2:#eef6ff;
  --shadow:0 6px 20px rgba(60,60,120,.10);
  --shadow-lg:0 14px 40px rgba(60,60,120,.18);
  --r:22px;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--ink);
  background:linear-gradient(160deg,var(--bg1),var(--bg2) 55%,#fff5f7);
  background-attachment:fixed;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior:none;
  overflow-x:hidden;
}
h2{margin:0;font-size:24px;font-weight:900}

#confetti{position:fixed;inset:0;pointer-events:none;z-index:999;display:none}

.screen{display:none;max-width:520px;margin:0 auto;padding:16px 16px 40px;min-height:100vh}
.screen.active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- Главная ---------- */
.hero{background:var(--card);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);margin-bottom:16px}
.hero-top{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.mascot-bubble{display:flex;gap:10px;align-items:flex-start;flex:1}
.mascot{font-size:40px;line-height:1;flex-shrink:0;animation:bob 3s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.bubble{background:#f4f4ff;border-radius:16px;padding:10px 13px;font-size:15px;line-height:1.35;flex:1}
.bubble b{color:var(--violet)}

.ghost-icon{background:#f2f3fb;border:none;border-radius:14px;width:42px;height:42px;font-size:19px;cursor:pointer;flex-shrink:0}
.ghost-icon:active{transform:scale(.94)}

.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 12px}
.stat{background:#f7f8ff;border-radius:16px;padding:10px 6px;text-align:center}
.stat-val{font-size:24px;font-weight:900;color:var(--violet)}
.stat-lbl{font-size:11px;color:var(--ink-soft);font-weight:700;margin-top:2px}

.levelbar-top{display:flex;justify-content:space-between;font-size:13px;font-weight:800;color:var(--ink-soft);margin-bottom:6px}
.bar{height:12px;background:#eceefb;border-radius:99px;overflow:hidden}
.bar-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--violet),var(--pink));transition:width .6s cubic-bezier(.2,.8,.2,1)}

.ring-wrap{position:relative;width:150px;height:150px;margin:4px auto 14px}
.ring{width:150px;height:150px;transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:#e6e8fa;stroke-width:11}
.ring-fg{fill:none;stroke:url(#g);stroke:var(--green);stroke-width:11;stroke-linecap:round;
  stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-num{font-size:40px;font-weight:900;line-height:1}
.ring-sub{font-size:12px;color:var(--ink-soft);font-weight:700}

.section-title{font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:18px 4px 10px}
.section-title.small{margin-top:0}

.missions{display:flex;flex-direction:column;gap:9px}
.mission{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:18px;padding:13px 14px;box-shadow:var(--shadow);cursor:pointer;border:2px solid transparent;transition:transform .15s}
.mission:active{transform:scale(.98)}
.mission.done{background:#effdf3;border-color:#c5f0d4}
.mission.locked{opacity:.55}
.m-icon{font-size:26px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#f4f4ff;border-radius:14px;flex-shrink:0}
.mission.done .m-icon{background:#d9f7e3}
.m-body{flex:1;min-width:0}
.m-title{font-weight:900;font-size:16px}
.m-desc{font-size:12.5px;color:var(--ink-soft);font-weight:600}
.m-right{font-size:22px}

.big-btn{display:block;width:100%;margin:18px 0 0;padding:18px;border:none;border-radius:20px;
  background:linear-gradient(135deg,var(--violet),#8b7bff);color:#fff;font-family:inherit;
  font-size:19px;font-weight:900;cursor:pointer;box-shadow:0 8px 22px rgba(108,92,231,.38)}
.big-btn:active{transform:scale(.98)}
.link-btn{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--violet);font-family:inherit;font-weight:800;font-size:15px;cursor:pointer;padding:8px}

.badge-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px}
.badge-strip::-webkit-scrollbar{display:none}
.bdg{flex:0 0 auto;width:60px;text-align:center}
.bdg-ic{width:56px;height:56px;border-radius:18px;background:var(--card);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;font-size:26px}
.bdg.off .bdg-ic{filter:grayscale(1);opacity:.35}
.bdg-nm{font-size:9.5px;font-weight:800;color:var(--ink-soft);margin-top:4px;line-height:1.15}

.footer-note{text-align:center;font-size:12px;color:var(--ink-soft);margin-top:24px;font-weight:700}

/* ---------- Игра ---------- */
#screen-play{display:none;flex-direction:column;padding-bottom:12px;height:100vh;height:100dvh;overflow:hidden}
#screen-play.active{display:flex}
.play-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-shrink:0}
.progress-dots{flex:1;display:flex;gap:4px;flex-wrap:wrap}
.pd{height:7px;flex:1;min-width:5px;background:#e2e5f6;border-radius:99px}
.pd.ok{background:var(--green)}
.pd.bad{background:var(--orange)}
.pd.now{background:var(--violet)}
.combo{font-weight:900;color:var(--orange);font-size:15px;min-width:44px;text-align:right}

.task-area{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;
  justify-content:center;justify-content:safe center;padding:2px 2px 6px;-webkit-overflow-scrolling:touch}
.task-area::-webkit-scrollbar{width:0}
.task-card{background:var(--card);border-radius:26px;padding:20px 18px;box-shadow:var(--shadow-lg);text-align:center}
.task-card.shake{animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(4px)}}
.task-card.pop{animation:pop .35s}
@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.045)}100%{transform:scale(1)}}

.task-q{font-size:17px;font-weight:800;line-height:1.4;color:var(--ink)}
.task-q.small{font-size:14px;color:var(--ink-soft);font-weight:700}
.task-expr{font-size:44px;font-weight:900;margin:8px 0 4px;letter-spacing:.01em;line-height:1.15}
.task-expr.long{font-size:32px}
.task-expr:empty{display:none}
.task-visual:empty{display:none}
.task-visual{margin:10px 0 4px}

.dots{display:inline-grid;gap:5px;justify-content:center}
.dot{width:13px;height:13px;border-radius:50%;background:var(--violet);opacity:.85}
.dots .row-alt{background:var(--pink)}

.rectviz{display:inline-block;position:relative;margin:6px 0}
.rectviz .box{border:3px solid var(--violet);border-radius:6px;background:rgba(108,92,231,.10)}
.rectviz .box.grid{background-image:linear-gradient(to right,rgba(108,92,231,.28) 1px,transparent 1px),linear-gradient(to bottom,rgba(108,92,231,.28) 1px,transparent 1px)}
.rectviz .lbl{position:absolute;font-size:12px;font-weight:900;color:var(--violet)}
.rectviz .lbl.top{top:-19px;left:50%;transform:translateX(-50%)}
.rectviz .lbl.right{right:-30px;top:50%;transform:translateY(-50%)}

.barviz{display:flex;gap:3px;justify-content:center;margin:6px 0}
.barviz .seg{height:30px;flex:1;max-width:44px;border-radius:6px;background:#e8e9f8;border:2px solid #d5d7ee}
.barviz .seg.on{background:var(--orange);border-color:#d98905}
.barlabel{font-size:12px;font-weight:800;color:var(--ink-soft);margin-top:2px}

.answer-box{margin:14px auto 0;min-height:60px;min-width:150px;max-width:90%;display:inline-flex;align-items:center;justify-content:center;
  gap:2px;padding:10px 22px;border-radius:18px;background:#f5f6ff;border:3px dashed #cfd3f0;font-size:34px;font-weight:900}
.answer-box.filled{border-style:solid;border-color:var(--violet);background:#fff}
.answer-box.ok{border-color:var(--green);background:#eafcf0;color:var(--green-d)}
.answer-box.bad{border-color:var(--red);background:#fff0f0;color:var(--red)}
.answer-box .unit{font-size:19px;font-weight:800;color:var(--ink-soft);margin-left:4px}
.caret{display:inline-block;width:3px;height:32px;background:var(--violet);animation:blink 1s steps(2) infinite;border-radius:2px}
.answer-box.ok .caret,.answer-box.bad .caret{display:none}
@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}

.feedback{margin-top:10px;font-size:16px;font-weight:900;min-height:22px}
.feedback.ok{color:var(--green-d)}
.feedback.bad{color:var(--red)}
.feedback.info{color:var(--blue)}
.hint-viz{text-align:center;margin-top:8px}

.helper{margin-top:12px}
.helper:empty{display:none}
.hint-card{background:#fff8e6;border:2px solid #ffe3a3;border-radius:18px;padding:13px 15px;font-size:15px;font-weight:700;line-height:1.45}
.hint-card b{color:#b45309}
.steps-card{background:#eef4ff;border:2px solid #cfe0ff;border-radius:18px;padding:13px 15px;margin-top:8px}
.steps-card .st{font-size:15px;font-weight:800;padding:5px 0;display:flex;gap:8px;line-height:1.35}
.steps-card .st i{color:var(--blue);font-style:normal;font-weight:900}
.steps-title{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--blue);margin-bottom:4px}

.controls{margin-top:12px;flex-shrink:0}
.tools{display:flex;gap:8px;margin-bottom:10px}
.tool-btn{flex:1;padding:11px;border:none;border-radius:15px;background:#fff;box-shadow:var(--shadow);font-family:inherit;font-weight:900;font-size:14px;color:var(--ink);cursor:pointer}
.tool-btn:active{transform:scale(.97)}
.tool-btn.hidden{display:none}

.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.keypad.hidden{display:none}
.key{padding:16px 0;border:none;border-radius:17px;background:#fff;box-shadow:var(--shadow);font-family:inherit;font-size:26px;font-weight:900;color:var(--ink);cursor:pointer}
.key:active{transform:scale(.95);background:#f0f0fb}
.key.act{background:linear-gradient(135deg,var(--green),#4ade80);color:#fff;box-shadow:0 6px 18px rgba(34,197,94,.4)}
.key.del{background:#fff0f0;color:var(--red)}

.choicepad{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.choicepad.hidden{display:none}
.choicepad.wide{grid-template-columns:repeat(3,1fr)}
.choicepad.four{grid-template-columns:repeat(4,1fr)}
.ch{padding:20px 0;border:none;border-radius:18px;background:#fff;box-shadow:var(--shadow);font-family:inherit;font-size:30px;font-weight:900;color:var(--ink);cursor:pointer}
.ch:active{transform:scale(.96)}
.ch.ok{background:linear-gradient(135deg,var(--green),#4ade80);color:#fff}
.ch.bad{background:#ffe4e4;color:var(--red)}

/* таймер скоростного раунда */
.speedbar{height:10px;background:#e2e5f6;border-radius:99px;overflow:hidden;margin-bottom:10px}
.speedbar>div{height:100%;background:linear-gradient(90deg,var(--orange),var(--red));width:100%;transition:width .3s linear}

/* ---------- Результат ---------- */
.result-wrap{text-align:center;padding-top:26px}
.result-emoji{font-size:76px;animation:pop2 .6s}
@keyframes pop2{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.stars{font-size:36px;margin:8px 0;letter-spacing:6px}
.result-stats{display:flex;justify-content:center;gap:12px;margin:18px 0}
.result-stats>div{background:var(--card);border-radius:18px;padding:12px 6px;box-shadow:var(--shadow);flex:1;max-width:110px}
.result-stats b{display:block;font-size:26px;color:var(--violet)}
.result-stats span{font-size:11.5px;color:var(--ink-soft);font-weight:800}
.result-msg{font-size:16px;font-weight:800;line-height:1.5;color:var(--ink-soft);margin:6px 10px 0}
.new-stuff{margin:16px 0}
.new-stuff:empty{display:none}
.new-item{background:var(--card);border-radius:18px;padding:12px;box-shadow:var(--shadow);margin-bottom:8px;display:flex;gap:12px;align-items:center;text-align:left;animation:pop2 .5s}
.new-item .ic{font-size:34px}
.new-item .t{font-weight:900;font-size:15px}
.new-item .d{font-size:12.5px;color:var(--ink-soft);font-weight:700}

.break-timer{font-size:62px;font-weight:900;color:var(--violet);margin:10px 0}

/* ---------- Коллекция / родителям ---------- */
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.page-sub{color:var(--ink-soft);font-weight:700;font-size:14px;margin:0 0 14px}
.collection{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cr{background:var(--card);border-radius:18px;padding:12px 4px;text-align:center;box-shadow:var(--shadow)}
.cr .e{font-size:32px}
.cr .n{font-size:11px;font-weight:800;color:var(--ink-soft);margin-top:2px}
.cr.off{opacity:.32}
.cr.off .e{filter:grayscale(1)}

.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.bg-item{background:var(--card);border-radius:18px;padding:12px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:center}
.bg-item.off{opacity:.45}
.bg-item.off .e{filter:grayscale(1)}
.bg-item .e{font-size:28px}
.bg-item .t{font-weight:900;font-size:13.5px;line-height:1.15}
.bg-item .d{font-size:11px;color:var(--ink-soft);font-weight:700}

.card{background:var(--card);border-radius:20px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}
.chart{display:flex;align-items:flex-end;gap:4px;height:120px;margin-bottom:6px}
.chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.chart .b{width:100%;background:#dfe3fa;border-radius:6px 6px 0 0;min-height:3px}
.chart .b.good{background:var(--green)}
.chart .b.some{background:var(--orange)}
.chart .lb{font-size:9.5px;color:var(--ink-soft);font-weight:800;margin-top:4px}
.chart-legend{font-size:11.5px;color:var(--ink-soft);font-weight:700}
.chart .col{overflow:hidden}

.trow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.trow:last-child{border:none}
.trow .ic{font-size:20px;width:26px;text-align:center}
.trow .nm{flex:1;font-weight:800;font-size:14px}
.trow .lv{font-size:11px;font-weight:800;color:var(--ink-soft);background:#f2f3fb;padding:3px 8px;border-radius:99px}
.trow .pc{font-weight:900;font-size:14px;width:44px;text-align:right}
.pc.hi{color:var(--green-d)} .pc.mid{color:var(--orange)} .pc.lo{color:var(--red)}

.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{background:#fff0f0;color:#c0392b;border-radius:12px;padding:7px 11px;font-weight:900;font-size:15px}
.muted{color:var(--ink-soft);font-weight:700;font-size:14px}

.switch-row{display:flex;justify-content:space-between;align-items:center;font-weight:800;padding:6px 0 12px}
.switch-row input{width:22px;height:22px;accent-color:var(--violet)}
.danger-btn{width:100%;padding:12px;border:2px solid #ffd6d6;background:#fff5f5;color:var(--red);border-radius:15px;font-family:inherit;font-weight:900;cursor:pointer}

@media (max-width:360px){
  .task-expr{font-size:37px}
  .key{font-size:23px;padding:14px 0}
}
@media (min-height:780px){
  .task-card{padding:26px 20px}
}

/* ================= Первый запуск, формы, вход ================= */
.welcome{text-align:center;padding-top:9vh}
.w-mascot{font-size:82px;animation:bob 3s ease-in-out infinite}
.w-title{font-size:34px;font-weight:900;margin:6px 0 2px}
.w-sub{color:var(--ink-soft);font-weight:700;font-size:15.5px;line-height:1.5;margin:0 0 26px}
.soft-btn{display:block;width:100%;margin-top:10px;padding:15px;border:none;border-radius:17px;
  background:#fff;box-shadow:var(--shadow);font-family:inherit;font-size:16px;font-weight:900;color:var(--ink);cursor:pointer}
.soft-btn:active{transform:scale(.98)}

.form label{display:block;font-weight:900;font-size:13.5px;color:var(--ink-soft);margin-bottom:14px}
.form .lbl-hint{display:block;font-weight:700;font-size:11.5px;color:#9aa0b8;margin-top:2px}
.form input{display:block;width:100%;margin-top:6px;padding:13px 14px;border:2px solid var(--line);
  border-radius:14px;font-family:inherit;font-size:17px;font-weight:800;color:var(--ink);background:#fbfbff}
.form input:focus{outline:none;border-color:var(--violet);background:#fff}
.code-input{text-transform:uppercase;letter-spacing:.16em;text-align:center;font-size:24px!important}
.form-err{color:var(--red);font-weight:800;font-size:14px;margin:-4px 0 10px;min-height:18px;line-height:1.35}
.form-ok{color:var(--green-d)}
.form-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;font-size:14px;margin-bottom:10px}
.form-inline input{width:120px;margin-top:0;padding:10px 12px;border:2px solid var(--line);border-radius:12px;
  font-family:inherit;font-size:16px;font-weight:800;background:#fbfbff}

/* ================= Отчёт родителю ================= */
.page-head{justify-content:space-between}
.page-head h2{flex:1}
.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.summary .s{background:#f7f8ff;border-radius:15px;padding:11px 12px}
.summary .s b{display:block;font-size:21px;font-weight:900;color:var(--violet);line-height:1.2}
.summary .s span{font-size:11.5px;font-weight:800;color:var(--ink-soft)}
.summary .s.wide{grid-column:1/-1;background:#eef7ff}
.summary .s.warn{background:#fff6e8}
.summary .s.warn b{color:#c2410c}
.summary .s.ok b{color:var(--green-d)}

.cal-month{float:right;text-transform:none;letter-spacing:0;font-weight:800;color:var(--ink)}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.calendar .dow{text-align:center;font-size:10px;font-weight:900;color:#a3a8c0;padding-bottom:2px}
.calendar .d{aspect-ratio:1;border-radius:11px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;background:#f1f2fa;font-weight:900;font-size:13px;color:#9aa0b8}
.calendar .d.good{background:var(--green);color:#fff}
.calendar .d.some{background:var(--orange);color:#fff}
.calendar .d.today{outline:3px solid var(--violet);outline-offset:1px}
.calendar .d.future{background:#f8f9fd;color:#ccd0e0}
.calendar .d small{font-size:8.5px;font-weight:800;opacity:.85;line-height:1}
.calendar .d.empty{background:none}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11.5px;font-weight:700;color:var(--ink-soft)}
.cal-legend i{display:inline-block;width:11px;height:11px;border-radius:4px;margin-right:5px;vertical-align:-1px}
.sw.good{background:var(--green)} .sw.some{background:var(--orange)} .sw.none{background:#e2e4f0}

.pair-box{margin:10px 0 4px}
.pair-box:empty{display:none}
.pair-code{background:#f4f4ff;border:2px dashed var(--violet);border-radius:16px;padding:14px;text-align:center}
.pair-code b{display:block;font-size:34px;font-weight:900;letter-spacing:.12em;color:var(--violet)}
.pair-code span{font-size:12px;font-weight:800;color:var(--ink-soft)}

/* значок синхронизации */
.sync{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;background:rgba(30,33,64,.9);color:#fff;
  padding:8px 15px;border-radius:99px;font-size:13px;font-weight:800;z-index:900;opacity:0;
  transition:opacity .3s;pointer-events:none}
.sync.on{opacity:1}

/* ================= Подсказка про клавиатуру ================= */
.kbd-hint{display:none;text-align:center;font-size:12.5px;font-weight:800;color:#9aa0b8;margin-bottom:8px}

/* ================= Мышь: наведение ================= */
@media (hover:hover) and (pointer:fine){
  .key:hover{background:#f3f3fd;transform:translateY(-1px)}
  .key.act:hover{filter:brightness(1.07)}
  .key.del:hover{background:#ffe7e7}
  .ch:hover{background:#f3f3fd;transform:translateY(-1px)}
  .mission:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(60,60,120,.16)}
  .big-btn:hover{filter:brightness(1.06)}
  .soft-btn:hover,.tool-btn:hover{background:#f5f5ff}
  .ghost-icon:hover{background:#e8e9f7}
  .link-btn:hover{text-decoration:underline}
  .calendar .d{transition:transform .12s}
  .calendar .d:hover{transform:scale(1.08)}
}

/* ================= Большой экран (домашний компьютер) ================= */
@media (min-width:900px){
  .screen{max-width:940px;padding:24px 24px 48px}

    /* minmax(0,1fr) — иначе лента наград распирает колонку по своей ширине */
  .home-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 26px;
    grid-template-areas:"a b" "c b";align-items:start}
  .col-a,.col-b,.col-c{min-width:0}
  .col-a{grid-area:a} .col-b{grid-area:b} .col-c{grid-area:c}

  .hero{padding:22px 24px}
  .bubble{font-size:16.5px}
  .mascot{font-size:52px}
  .stat-val{font-size:29px}
  .ring-wrap,.ring{width:190px;height:190px}
  .ring-num{font-size:50px}
  .mission{padding:15px 16px}
  .m-title{font-size:17px}

  /* задание: слева пример и разбор, справа клавиатура — так по вертикали
     хватает места на подсказку с картинкой целиком */
  #screen-play{max-width:1020px}
  #screen-play.active{display:grid;gap:0 28px;
    grid-template-columns:minmax(0,1fr) 340px;
    grid-template-rows:auto minmax(0,1fr);
    grid-template-areas:"top top" "task pad"}
  .play-top{grid-area:top}
  .task-area{grid-area:task}
  #screen-play .controls{grid-area:pad;align-self:start;width:100%;max-width:340px;margin-top:0}
  .kbd-hint{display:block}
  .task-card{padding:32px 28px}
  .task-expr{font-size:56px}
  .task-expr.long{font-size:40px}
  .task-q{font-size:20px}
  .task-q.small{font-size:16px}
  .answer-box{font-size:40px;min-width:200px;min-height:70px}
  .caret{height:40px}
  .keypad{gap:11px}
  .key{padding:14px 0;font-size:24px}
  .helper{width:100%;max-width:660px;margin-top:12px;align-self:center}
  .hint-card,.steps-card{font-size:16px}


  /* отчёт, коллекция, формы */
  #screen-parent .summary{grid-template-columns:repeat(3,1fr)}
  .calendar{gap:7px}
  .calendar .d{font-size:15px;border-radius:13px}
  .calendar .d small{font-size:10px}
  /* на компьютере ленту наград мышкой не пролистать — раскладываем сеткой */
  .badge-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));
    gap:10px;overflow:visible;padding:4px 0 8px}
  .bdg{width:auto}
  .bdg-ic{width:56px;height:56px;margin:0 auto}
  .collection{grid-template-columns:repeat(6,1fr)}
  .badge-grid{grid-template-columns:repeat(3,1fr)}
  .chart{height:150px}
  .result-wrap{max-width:520px;margin:0 auto}
  .welcome{max-width:440px;margin:0 auto}
  .form{max-width:440px;margin:0 auto}
  .page-sub{max-width:600px}
}
