/* うごく入試 共通：スマホ横向きで全画面。ボタンは動く画面の上に重ねる */
:root{
  --ink:#15253B; --muted:#55657A; --accent:#2F6FD6; --ok:#1C8A57; --ng:#C43D2A;
  --glass:rgba(255,255,255,0.93); --line:rgba(21,37,59,0.16);
  --font-text:"UD デジタル 教科書体 NK-R","UD Digi Kyokasho NK-R","UD デジタル 教科書体 N-R","BIZ UDPGothic","Hiragino Sans","Meiryo",sans-serif;
  --font-ui:"BIZ UDPGothic","Yu Gothic UI","Hiragino Sans","Meiryo",sans-serif;
}
[hidden]{display:none!important}
html,body{margin:0;height:100%;overflow:hidden;background:#0B1220;color:var(--ink);overscroll-behavior:none;
  -webkit-text-size-adjust:100%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#kstage{position:fixed;inset:0;background:#0B1220}
#kcv{position:absolute;display:block;touch-action:none}
/* 画面の上の部品（座標は動く画面と同じ：高さ540） */
#kui{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;font-family:var(--font-ui)}
#kui .k-on{pointer-events:auto}
#kui button{font-family:var(--font-ui);-webkit-tap-highlight-color:transparent;cursor:pointer}
#kui button:focus-visible{outline:3px solid #FFD54D;outline-offset:2px}
.ktop{position:absolute;top:6px;height:44px;display:flex;align-items:center;gap:6px}
.kbtn{font-size:18px;font-weight:700;line-height:1.15;color:var(--ink);background:var(--glass);border:1px solid var(--line);border-radius:12px;
  min-height:44px;padding:4px 12px;box-shadow:0 2px 8px rgba(0,0,0,.22);white-space:nowrap}
.kbtn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.kbtn.big{background:var(--accent);border-color:var(--accent);color:#fff;min-height:54px;font-size:19px}
.kbtn.sub{color:var(--accent)}
.kbtn:disabled{opacity:.45}
.ktabs{display:flex;gap:4px;padding:3px;border-radius:14px;background:rgba(255,255,255,.18)}
.ktabs .kbtn{min-height:38px;padding:2px 12px;font-size:17px;box-shadow:none}
.kspace{flex:1}
.kside{position:absolute;top:56px;width:136px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;scrollbar-width:none}
.kside::-webkit-scrollbar{display:none}
.kside .kbtn{width:100%;padding:4px 6px;white-space:normal}
.kgrp{display:grid;gap:4px}
.kgrp.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kgrp .kbtn{font-size:16px;min-height:42px;padding:2px 3px}
.klab{font-size:14px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6);margin:4px 2px -2px}
.ktoast{position:absolute;transform:translateX(-50%);max-width:70%;background:rgba(21,37,59,.92);color:#fff;font-size:19px;font-weight:700;
  padding:8px 18px;border-radius:999px;text-align:center;box-shadow:0 4px 14px rgba(0,0,0,.3);transition:opacity .4s}
/* まとめ */
.ksum{position:absolute;background:rgba(255,255,255,.97);border-radius:16px;padding:14px 18px;box-sizing:border-box;overflow-y:auto;font-family:var(--font-text);
  box-shadow:0 8px 30px rgba(0,0,0,.35);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 26px;align-content:start;-webkit-user-select:text;user-select:text}
.ksum h3{font-family:var(--font-ui);font-size:16px;color:var(--muted);margin:0 0 6px;letter-spacing:.04em}
.ksum ol,.ksum ul{margin:0;padding-left:1.3em;display:grid;gap:6px;font-size:19px;line-height:1.55}
.ksum .kclose{position:absolute;top:10px;right:12px}
/* 入試にチャレンジ */
.kquiz{position:absolute;background:rgba(255,255,255,.97);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.35);display:flex;flex-direction:column;
  box-sizing:border-box;font-family:var(--font-text);color:var(--ink)}
.kq-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px 4px;font-family:var(--font-ui);font-size:16px;font-weight:700;color:var(--accent)}
.kq-dots{display:flex;gap:3px;flex-wrap:wrap}
.kq-dots i{width:12px;height:12px;border-radius:50%;background:#D8E1EC;display:block}
.kq-dots i.cur{outline:2px solid var(--accent)} .kq-dots i.ok{background:var(--ok)} .kq-dots i.ng{background:var(--ng)}
.kq-body{flex:1;overflow-y:auto;padding:4px 14px 10px;display:flex;flex-direction:column;gap:9px;-webkit-user-select:text;user-select:text}
.kq-text{font-size:20px;line-height:1.6;margin:0}
.kq-choices{display:grid;gap:6px;grid-template-columns:minmax(0,1fr)}
.kq-choices.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kq-ch{display:flex;align-items:center;gap:10px;text-align:left;font-family:var(--font-text);font-size:19px;line-height:1.4;padding:8px 12px;border-radius:12px;
  border:2px solid #D5DEE9;background:#F6F8FC;color:var(--ink)}
.kq-ch b{font-family:var(--font-ui);color:var(--accent)}
.kq-ch img{width:64px;height:64px;border-radius:10px;display:block}
.kq-ch.right{border-color:var(--ok);background:#EAF7F0} .kq-ch.wrong{border-color:var(--ng);background:#FCEDEA}
.kq-fb{border-radius:12px;padding:10px 12px;background:#F3F6FA;font-size:18px;line-height:1.6}
.kq-fb .res{font-family:var(--font-ui);font-weight:700;font-size:20px;margin:0 0 4px}
.kq-fb .res.ok{color:var(--ok)} .kq-fb .res.ng{color:var(--ng)}
.kq-nav{display:flex;gap:8px;padding:8px 12px 12px}
.kq-nav .kbtn{flex:1;box-shadow:none}
/* 横にしてね・ホーム画面に追加 */
.kcover{position:fixed;inset:0;z-index:10;background:#0B1220;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  font-family:var(--font-ui);text-align:center;padding:24px;box-sizing:border-box}
.kcover p{margin:0;font-size:20px;line-height:1.6}
.kcover .phone{width:64px;height:110px;border:5px solid #fff;border-radius:14px;animation:krot 2.4s ease-in-out infinite}
@keyframes krot{0%,30%{transform:rotate(0)}60%,100%{transform:rotate(-90deg)}}
@media (prefers-reduced-motion: reduce){.kcover .phone{animation:none;transform:rotate(-90deg)}}
.kios{position:fixed;inset:0;z-index:9;background:rgba(11,18,32,.82);display:flex;align-items:center;justify-content:center;font-family:var(--font-ui)}
.kios div{background:#fff;color:var(--ink);border-radius:18px;padding:18px 22px;max-width:520px;margin:16px;font-size:17px;line-height:1.7}
.kios h2{font-size:19px;margin:0 0 8px}
.kios button{margin-top:10px;font-size:17px;font-weight:700;padding:10px 20px;border-radius:999px;border:0;background:var(--accent);color:#fff}
.kq-step{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:20px;line-height:1.65}
.kq-step > b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:18px}
.kq-step em{font-style:normal;font-weight:700;color:#B5179E}
