:root{--teal:#087f78;--teal2:#10a69c;--navy:#183653;--gold:#ffd84d;--orange:#ff813a;--red:#e83f5b;--paper:#fff;--ink:#20313e;--muted:#647381;--shadow:0 18px 55px #134f5c2b}*{box-sizing:border-box}body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--ink);background:#eaf8f6}button{font:inherit;cursor:pointer}.hidden{display:none!important}.screen{min-height:100dvh;padding:18px;position:relative}.start-screen{display:grid;place-content:center;background:radial-gradient(circle at 50% 10%,#fff 0 14%,transparent 40%),linear-gradient(160deg,#d6fff7,#dceeff 58%,#fff4bd)}.brand{text-align:center}.brand .bulb{font-size:4.5rem;filter:drop-shadow(0 8px 8px #11665b33);animation:pop 1.7s ease-in-out infinite alternate}.brand p{font-weight:900;color:var(--teal);margin:2px}.brand h1{font-size:clamp(2.5rem,9vw,4.4rem);line-height:.95;margin:8px;color:var(--navy);letter-spacing:.03em}.brand h1 em{font-style:normal;color:var(--teal);text-shadow:3px 3px #fff,5px 5px var(--gold)}.start-card{width:min(680px,calc(100vw - 28px));background:#ffffffee;border:3px solid #fff;border-radius:28px;padding:22px;box-shadow:var(--shadow);text-align:center}.lead{font-weight:800;line-height:1.7;margin:0 0 16px}.timeline{display:flex;align-items:center;justify-content:center;margin:12px 0 20px}.timeline span{font-size:.72rem;color:var(--muted);min-width:48px}.timeline b{color:var(--teal);font-size:.8rem}.timeline i{width:18px;height:3px;background:#b5d6d2}.main-btn,.submit-btn,.sub-btn{border:0;border-radius:16px;padding:15px 20px;font-weight:950;font-size:1.08rem}.main-btn,.submit-btn{width:100%;color:#fff;background:linear-gradient(90deg,var(--teal),var(--teal2));box-shadow:0 6px 0 #075c58}.main-btn:active,.submit-btn:active{transform:translateY(4px);box-shadow:0 2px 0 #075c58}.record{margin:18px 0 7px;display:flex;gap:5px;align-items:baseline;justify-content:center;color:var(--muted);font-weight:800}.record b{font-size:1.65rem;color:var(--orange)}.record small{margin-left:15px;background:#e4f6f3;padding:5px 9px;border-radius:20px}.text-btn{border:0;background:none;color:var(--teal);font-weight:900;text-decoration:underline}.scorebar{max-width:820px;margin:auto;display:grid;grid-template-columns:auto repeat(3,1fr);gap:8px}.scorebar>div,.scorebar>button{border:0;background:#fff;border-radius:14px;padding:8px;text-align:center;box-shadow:0 4px 15px #174b5530}.scorebar button{width:48px;font-size:1.5rem;color:var(--teal)}.scorebar small{display:block;color:var(--muted);font-weight:800}.scorebar b{font-size:1.25rem;color:var(--navy)}.timer-wrap{max-width:820px;height:33px;margin:12px auto;background:#d7e4e3;border-radius:20px;overflow:hidden;position:relative}.timer-wrap div{position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(90deg,var(--teal2),#68d5b2);transition:width 1s linear}.timer-wrap.danger div{background:linear-gradient(90deg,var(--orange),var(--red))}.timer-wrap strong,.timer-wrap span{position:relative;z-index:1;line-height:33px}.timer-wrap strong{margin-left:15px;font-size:1.2rem}.quiz-card{max-width:820px;margin:auto;background:#fff;border-radius:25px;padding:20px;box-shadow:var(--shadow);position:relative}.category{display:inline-block;background:#e4f6f3;color:var(--teal);border-radius:20px;padding:6px 12px;font-size:.85rem;font-weight:950}.quiz-card h2{font-size:clamp(1.25rem,4vw,1.85rem);line-height:1.55;margin:12px 0;color:var(--navy)}.hints{display:grid;gap:7px;min-height:78px}.hint{background:#fff7d3;border-left:5px solid var(--gold);border-radius:8px;padding:9px 11px;font-weight:850;animation:reveal .35s}.hint b{color:#9e6510;margin-right:7px}.final-flash{position:absolute;inset:65px 15px auto;background:var(--red);color:#fff;padding:15px;text-align:center;border-radius:16px;font-size:1.6rem;font-weight:950;z-index:4;animation:flash .55s 2}.input-row{display:grid;grid-template-columns:1fr auto auto;gap:7px;margin:14px 0 10px}.answer-display{min-height:55px;background:#eef5f5;border:3px solid #bdd8d5;border-radius:13px;padding:9px;display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap}.answer-display span.placeholder{color:#839296;font-size:.9rem}.answer-display i{font-style:normal;background:#fff;border-radius:7px;min-width:31px;padding:5px;font-size:1.25rem;font-weight:950;color:var(--navy)}.input-row button{border:0;border-radius:12px;background:#e6eeee;color:var(--navy);font-weight:900;padding:0 12px}.keyboard{background:#e9f6f4;border-radius:18px;padding:10px;overflow-x:auto}.kana-main{display:flex;flex-direction:row-reverse;align-items:flex-start;justify-content:center;gap:4px;min-width:600px}.kana-col{display:flex;flex-direction:column;gap:4px}.key{width:43px;height:39px;border:0;border-radius:9px;background:#fff;color:var(--navy);font-weight:950;box-shadow:0 3px 0 #acc8c5}.key:active{transform:translateY(2px);box-shadow:0 1px 0 #acc8c5}.extra-label{font-size:.78rem;color:var(--muted);font-weight:900;margin:10px 0 5px}.extra-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.extra-keys .key{background:#fff9dc}.submit-btn{margin-top:12px}.submit-btn:disabled{background:#b6c8c6;box-shadow:0 5px 0 #8fa3a1;cursor:not-allowed}.host{max-width:820px;margin:12px auto;background:var(--navy);color:#fff;border-radius:16px;padding:11px 15px;font-weight:850;text-align:center}.feedback{position:fixed;z-index:20;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(530px,calc(100% - 28px));background:#fff;border:5px solid var(--gold);border-radius:25px;padding:22px;text-align:center;box-shadow:0 0 0 9999px #092f36cc,0 20px 60px #0007}.feedback-icon{font-size:4rem}.feedback h2{font-size:2rem;margin:3px;color:var(--teal)}.feedback.wrong h2{color:var(--red)}.answer-line{font-size:1.2rem}.feedback>p{line-height:1.6}.feedback>strong{display:block;font-size:1.5rem;color:var(--orange);margin:10px}.result-screen{text-align:center;display:grid;place-content:center;background:radial-gradient(circle,#fff 0,#fffbdc 45%,#d6f6f2)}.result-icon{font-size:5rem}.result-screen>p{font-weight:900;color:var(--teal);margin:0}.result-screen h2{font-size:2rem;margin:5px;color:var(--navy)}.final-score b{font-size:4.5rem;color:var(--orange)}.rank{width:min(520px,calc(100vw - 30px));background:#fff;border:3px solid var(--gold);border-radius:20px;padding:13px;margin:12px auto}.rank small,.rank strong{display:block}.rank strong{font-size:1.6rem;color:var(--teal);margin:4px}.rank p{margin:5px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px auto 16px}.stats div{background:#fff;border-radius:13px;padding:10px}.stats span,.stats b{display:block}.stats span{color:var(--muted);font-size:.8rem;font-weight:800}.sub-btn{width:100%;margin-top:10px;background:#e4efee;color:var(--navy)}dialog{width:min(560px,calc(100% - 28px));border:4px solid var(--gold);border-radius:24px;padding:22px;color:var(--ink)}dialog::backdrop{background:#0a3339cc}dialog h2{color:var(--teal)}dialog li{margin:10px 0;line-height:1.55;font-weight:750}.close{float:right;border:0;border-radius:50%;width:38px;height:38px;font-size:1.3rem}.confetti{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}.confetti i{position:absolute;top:-15px;width:10px;height:16px;animation:fall 2.4s linear forwards}@keyframes pop{to{transform:translateY(-7px) rotate(4deg)}}@keyframes reveal{from{opacity:0;transform:translateY(-7px)}}@keyframes flash{50%{transform:scale(1.04)}}@keyframes fall{to{transform:translate(var(--drift),110vh) rotate(700deg)}}@media(max-width:600px){.screen{padding:10px}.start-card{padding:17px}.timeline span{min-width:43px;font-size:.62rem}.timeline i{width:8px}.quiz-card{padding:14px}.input-row{grid-template-columns:1fr auto}.input-row #clearBtn{grid-column:1/-1;height:36px}.kana-main{justify-content:flex-start}.key{width:40px}.stats{gap:4px}.stats div{padding:8px 3px}}
@keyframes shake{25%{transform:translateX(-7px)}50%{transform:translateX(7px)}75%{transform:translateX(-4px)}}
.answer-display.shake{animation:shake .35s}
@media(max-width:600px){.keyboard{direction:rtl}.kana-main,.extra-label,.extra-keys{direction:ltr}}

/* 入力欄・かな表の整理 */
.input-row{grid-template-columns:1fr auto auto auto}
.input-row .voice-btn{background:#dff5f1;color:var(--teal);min-width:86px}
.input-row .voice-btn.listening{background:var(--red);color:#fff;animation:pulse .8s infinite alternate}
.quiz-card>.submit-btn{margin:0 0 14px}
.special-kana{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:8px;margin-top:11px;direction:ltr}
.kana-group{background:#dcefed;border-radius:13px;padding:7px}
.kana-group p{font-size:.8rem;color:var(--teal);font-weight:950;text-align:center;margin:0 0 6px}
.kana-row{display:flex;justify-content:center;gap:4px;margin:4px 0}
.kana-group .key{background:#fff9dc}
@keyframes pulse{to{transform:scale(1.04)}}
@media(max-width:600px){
  .input-row{grid-template-columns:1fr auto auto}
  .input-row .answer-display{grid-column:1/-1}
  .input-row #clearBtn{grid-column:auto;height:40px}
  .input-row button{min-height:40px}
  .special-kana{grid-template-columns:1fr;min-width:310px;direction:ltr}
  .kana-group{display:grid;grid-template-columns:92px 1fr;align-items:center}
  .kana-group p{margin:0}
  .kana-row{justify-content:flex-start;flex-wrap:wrap}
}
