:root{font-family:"Arial","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#173b3d;background:#086f71;font-synthesis:none;--ink:#173b3d;--paper:#ffffff;--yellow:#FED851;--orange:#ec764b;--blue:#4265da}
*{box-sizing:border-box}body{margin:0;min-width:300px;background:#086f71;min-height:100svh}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #eb8f3f;outline-offset:5px}[hidden]{display:none!important}.app{width:min(100%,640px);margin:auto;padding:26px 22px max(22px,env(safe-area-inset-bottom))}.brand{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:#fffdf5}.brand h1{font-size:clamp(13px,3.8vw,20px);font-weight:800;letter-spacing:.02em;margin:0;flex:1}.brand-mark{display:grid;place-items:center;flex:none;width:34px;height:34px;border:2px solid #fffdf5;border-radius:10px;transform:rotate(-8deg);font-size:24px;font-weight:900}.brand-tag{font-size:10px;letter-spacing:.14em;border:1px solid #ffffff70;border-radius:20px;padding:6px 9px}.panel{background:var(--paper);border:3px solid var(--ink);border-radius:25px;box-shadow:7px 9px 0 #064c50;overflow:hidden}.intro{padding:30px}.intro-art{text-align:center;font-weight:900;line-height:1.12;letter-spacing:-.055em;padding:6px 0 25px}.intro-art>span{display:block;font-size:clamp(36px,9vw,58px)}.word-puyo{color:#c44e29;transform:rotate(-3deg)}.word-tetris{color:#3456c0;transform:rotate(2deg)}.word-tetris>span{color:var(--ink)}.intro-art i{display:inline-block;font:italic 700 21px Georgia,serif;background:var(--yellow);border-radius:50%;padding:5px 14px;margin:6px}.intro-meta{display:flex;justify-content:center;gap:10px;margin-bottom:25px}.intro-meta span{border:1.5px solid var(--ink);border-radius:25px;padding:6px 15px;font-size:13px;font-weight:700;background:#e3f0e8}.intro-copy{border-top:1px solid #173b3d25;padding-top:20px}.intro-copy h2{font-size:14px;margin:0 0 8px;font-weight:900}.intro-copy p{font-size:14px;line-height:1.9;white-space:pre-line;margin:0 0 20px}.volume-box{padding:15px 17px;background:#eaf0e8;border-radius:13px;margin:2px 0 23px}.volume-box label{display:flex;justify-content:space-between;font-size:13px;font-weight:700}.volume-box output{font-variant-numeric:tabular-nums}.volume-row{display:flex;align-items:center;gap:12px;margin-top:9px}.volume-row>span{font-size:21px}.volume-row input{flex:1;min-width:0;accent-color:#087c78;height:30px}.small-button{border:1px solid #8ba5a0;border-radius:7px;background:var(--paper);padding:8px 11px;font-size:12px;color:var(--ink);min-height:38px;white-space:nowrap}.push{position:relative;border:2px solid var(--ink);border-radius:13px;box-shadow:0 6px 0 var(--ink);min-height:58px;transition:transform .09s,box-shadow .09s,filter .15s;font-weight:900;user-select:none;-webkit-user-select:none}.push:not(:disabled):hover{filter:brightness(1.04)}.push:not(:disabled):active{transform:translateY(5px);box-shadow:0 1px 0 var(--ink)}.start,.share{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 23px;background:#dbefa0;color:var(--ink);font-size:18px}.start>span,.share>span{font-size:23px}.page-foot{text-align:center;color:#ffffff99;font-size:9px;font-weight:700;letter-spacing:.19em;margin:23px 0 0}.quiz-top{display:flex;align-items:center;justify-content:space-between;padding:20px 23px 16px;gap:10px}.quiz-top h2{display:flex;align-items:baseline;gap:9px;font-size:10px;letter-spacing:.07em;margin:0}.quiz-top h2 strong{font-size:29px;letter-spacing:-.03em}.quiz-top h2 span{color:#6a7e7b;font-size:12px;letter-spacing:0}.clock{display:flex;align-items:baseline;gap:5px;font-size:11px;white-space:nowrap}.clock strong{font-size:27px;font-variant-numeric:tabular-nums;min-width:2.3em;text-align:right;line-height:1}.time-track{height:7px;background:#dce8df}.time-track>div{height:100%;background:#128f80;transform-origin:left;will-change:transform}.quiz.urgent .clock{color:#bb4423}.quiz.urgent .time-track>div{background:#dd5d38}.question-art{position:relative;height:clamp(210px,36vh,320px);display:grid;place-items:center;padding:23px;background:#FED851;overflow:hidden;border-bottom:2px solid var(--ink)}.question-art img{width:100%;height:100%;max-height:274px;min-height:0;object-fit:contain;display:block}.placeholder{font-weight:900;font-size:clamp(32px,8vw,52px);letter-spacing:.04em;text-align:center}.question-copy{padding:19px 20px 12px;min-height:109px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}.question-copy p{margin:0;font-size:clamp(17px,4.8vw,23px);font-weight:800;line-height:1.6;white-space:pre-line}.quiz.explaining .question-copy p{font-size:16px}.verdict{font-size:13px;font-weight:900;color:#10664e}.verdict.incorrect{color:#ac421e}.answers{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 22px 7px}.choice{display:flex;gap:8px;align-items:center;justify-content:center;padding:15px 10px;color:#fff;font-size:clamp(16px,4.2vw,22px);min-height:76px}.puyo{background:#c64e29}.tetris{background:#3456c0}.choice-icon{font-size:14px;opacity:.85}.choice:disabled{cursor:default}.choice.muted{opacity:.38;box-shadow:0 3px 0 var(--ink);transform:translateY(3px)}.choice.selected{box-shadow:0 1px 0 var(--ink);transform:translateY(5px)}.choice.correct{outline:3px solid #138163;outline-offset:3px}.choice-status:empty{display:none}.choice-status{font-size:16px}.next-label{margin:15px 0 17px;min-height:19px;font-size:12px;text-align:center;color:#667b75;font-variant-numeric:tabular-nums}.result{text-align:center;padding:36px 30px 24px}.result-stamp{display:inline-block;font-size:12px;letter-spacing:.2em;border:2px solid var(--ink);border-radius:5px;background:var(--yellow);padding:7px 20px;transform:rotate(-4deg)}.result h2{margin:26px 0 0;font-size:24px}.score{display:flex;align-items:baseline;justify-content:center;gap:15px;margin-top:8px}.score strong{font-size:112px;line-height:1.1;letter-spacing:-.08em;color:#087b72}.score>span{font-size:29px;color:#69837e}.score-caption{font-size:21px;font-weight:900;margin:0 0 26px}.result-list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:0;list-style:none;margin:0 0 30px}.result-list li{width:54px;background:#e4f1e8;border:1px solid #96b7a5;border-radius:10px;padding:8px 5px;font-size:10px}.result-list strong{display:block;font-size:24px;color:#12684e;margin-top:3px}.result-list .miss{background:#f9e6df;border-color:#e7b6a0}.result-list .miss strong{color:#a54422}.share{background:#173b3d;color:#fff;border-color:#092e30;box-shadow:0 6px 0 #092e30;font-size:16px}.text-button{display:block;background:none;color:var(--ink);border:0;text-decoration:underline;text-underline-offset:5px;padding:17px 10px;min-height:48px;margin:12px auto 0;font-size:14px}.error,.image-error{color:#9b311e;font-size:14px;line-height:1.7}.image-error{text-align:center}.image-error button{display:block;margin:12px auto}.error{margin:20px 0 0}
@media(max-width:420px){.app{padding:18px 14px 25px}.intro{padding:25px 21px}.quiz-top{padding:16px 17px 13px}.quiz-top h2{gap:6px}.answers{gap:10px;padding-inline:15px}.choice{gap:5px}.choice-icon{display:none}.result{padding:29px 23px 20px}.brand-tag{display:none}.question-copy{padding-inline:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Explanation uses its own countdown; no numerical countdown is displayed. */
.quiz .question-copy{position:relative;margin:14px 20px 16px;padding:18px 15px 14px;border:2px solid transparent;border-radius:12px;height:128px;min-height:128px;overflow:hidden}
.copy-content{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain}
.quiz.explaining .clock,.quiz.explaining .time-track{visibility:hidden}
.quiz.explaining .question-copy{border-color:#91b8ad}
.explanation-track{position:absolute;top:0;left:0;width:100%;height:5px;background:#e4eee9}
.explanation-track>div{height:100%;background:#128f80;transform-origin:left;will-change:transform}
.skip-row{height:92px;padding:17px 22px 25px;display:flex;align-items:center;justify-content:center}
#skip-explanation{width:100%;min-height:48px;margin:0;padding:12px 20px;font-size:15px;color:var(--ink);background:#dbefa0;border-radius:11px}
.quiz .choice.selected,.quiz .choice.muted{transform:none}
.quiz .choice.selected{box-shadow:0 6px 0 var(--ink),inset 0 0 0 2px #ffffff80}
.quiz .choice.muted{box-shadow:0 6px 0 var(--ink)}

.result-rate{font-size:13px;color:#527168;margin:0 0 20px}.review-hint{font-size:12px;margin:0 0 12px;color:#527168}
.result-list li{padding:0}.result-list button{display:block;width:100%;padding:9px 5px;border:0;background:none;color:inherit;border-radius:9px;font-size:11px;min-height:66px}.result-list button:hover{background:#ffffff70}.result-list button:active{background:#173b3d15}
.result.failed .score strong{color:#b34d2e}.result.failed .result-stamp{background:#f8d7c9}
.video-section{padding:0 22px 23px}.video-section iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:#162d30}.video-section a{display:block;margin-top:10px;font-size:12px;color:#315d56;text-align:center}
#review-dialog{width:min(580px,calc(100% - 24px));max-height:calc(100svh - 32px);padding:0;border:3px solid var(--ink);border-radius:20px;background:#fff;color:var(--ink);overflow-y:auto;overscroll-behavior:contain}
#review-dialog::backdrop{background:#092c37b8}.review-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px}.review-head h2{margin:0;font-size:18px}.review-copy{padding:20px}.review-copy p{white-space:pre-line;line-height:1.8;margin:0 0 10px}#review-answer{font-weight:800}#review-dialog .question-art{height:250px}#review-dialog .question-art img{max-height:204px}

/* The final explanation stays open until the result button is pressed. */
.quiz.final-explanation .answers{display:none}
.quiz.video-explanation .question-copy{height:auto;min-height:128px;gap:12px}
.quiz.video-explanation .copy-content{overflow:visible}
.quiz.video-explanation #question-text{display:none}
#explanation-video{width:100%;padding:0}
.quiz.final-explanation .question-copy{margin-bottom:0}

/* Intro and score presentation. */
body{padding-bottom:76px}.brand{justify-content:center;text-align:center}.brand h1{font-size:clamp(17px,4.4vw,23px)}
.intro-copy{padding-top:24px}.intro-copy h2{font-size:18px;margin-bottom:10px}.intro-copy p{font-size:16px;line-height:1.95;margin-bottom:25px}
.trademark{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:center;flex-wrap:wrap;gap:4px 20px;padding:12px 15px max(12px,env(safe-area-inset-bottom));background:#07595c;color:#fff;font-size:11px;line-height:1.6;text-align:center;border-top:1px solid #ffffff35}
.review-trademark{font-size:10px;line-height:1.6;text-align:center;color:#5a706d;margin:10px 12px 16px}
.verdict{font-size:19px;font-weight:900;color:#c92c3e}.verdict.incorrect{color:#265bc1}
.result{padding:32px 28px 24px}.result-stamp{background:#e6f0ec;transform:none;border:0;letter-spacing:.24em;padding:8px 20px;border-radius:30px;color:#48675e}.result h2{font-size:clamp(20px,4.8vw,25px);line-height:1.65;margin:21px auto 12px;max-width:460px;text-wrap:pretty}.score{margin-top:12px}.score strong{font-size:104px;letter-spacing:-.06em}.score-caption{font-size:17px;margin:3px 0 16px}.result-rate{font-size:12px;padding-bottom:19px;border-bottom:1px solid #173b3d20}.review-hint{margin-top:21px}.result-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:25px}.result-list li{width:auto;background:#fff1ef;border:1px solid #ecc0be}.result-list strong{font-size:12px;line-height:1.4;color:#c92c3e}.result-list .miss{background:#edf3ff;border-color:#becdee}.result-list .miss strong{color:#265bc1}.result-list button{min-height:65px;font-size:12px;padding:10px 3px}.result[data-tier=perfect] .result-stamp{background:#FED851;color:#173b3d}.result[data-tier=perfect] h2{color:#a64f15}.result[data-tier=retry] .score strong{color:#52718a}
@media(max-width:420px){.intro-copy p{font-size:15px}.result{padding:26px 18px 22px}.result-list{gap:6px}.trademark{font-size:10px}}

#result-title{white-space:pre-line}
