@font-face{font-family:Prompt;src:url('./assets/fonts/Prompt-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Prompt;src:url('./assets/fonts/Prompt-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Prompt;src:url('./assets/fonts/Prompt-SemiBold.ttf') format('truetype');font-weight:600 800;font-display:swap}
:root{--blue:#124ed3;--ink:#142746;--muted:#526580;--line:#dce5f2;--green:#06c755;--dock-height:0px;font-family:Prompt,system-ui,sans-serif;color:var(--ink);background:#f5f8fe;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.7}button,input{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{color:inherit}[hidden]{display:none!important}::selection{background:#ffdf75;color:#102954}:focus-visible{outline:3px solid #e89700;outline-offset:5px}.wrap{width:min(880px,calc(100% - 40px));margin-inline:auto}.skip-link{position:absolute;left:16px;top:-100px;background:white;padding:10px 20px;z-index:100}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{display:flex;justify-content:space-between;align-items:center;padding-block:18px;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:48px;height:48px;overflow:hidden;display:block;flex-shrink:0;position:relative}.brand-mark img{width:116px;height:83px;max-width:none;position:absolute;left:-33px;top:-17px}.brand b{font-size:21px;letter-spacing:.055em;line-height:1.2;color:var(--blue)}.brand b span{letter-spacing:0}.brand small{display:block;color:var(--muted);font-size:12px;line-height:1.8}.header-label{font-size:14px;font-weight:600;color:var(--blue);white-space:nowrap}main{padding-block:30px 32px}h1{font-size:32px;line-height:1.5;font-weight:600;text-align:center;margin:0 0 24px;color:var(--blue);overflow-wrap:anywhere}.quiz-card{max-width:560px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px 28px;box-shadow:0 14px 40px #194b9410;scroll-margin-top:16px;min-width:0}.quiz-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.counter{font-size:16px;font-weight:600;color:var(--blue);white-space:nowrap}.counter span{font-weight:400;color:#758399}.level-badge{display:inline-block;font-size:13px;letter-spacing:.06em;color:var(--blue);padding:2px 10px;border-radius:5px;background:#e5eeff;font-weight:500}.word-stage{text-align:center;padding:14px 12px;margin-block:18px 22px;border-radius:18px;background:#eff5ff;border:1px solid #e5edfa}.word-stage h2{font-family:"Noto Sans CJK SC","Microsoft YaHei","PingFang SC",sans-serif;font-size:76px;line-height:1.5;letter-spacing:.08em;padding-left:.08em;font-weight:600;color:var(--blue);margin:0;scroll-margin:80px}.word-stage h2:focus{outline:none}.choices{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0;margin:0;border:0;min-width:0}.choice{display:block;position:relative;min-width:0;cursor:pointer}.choice input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.choice-body{padding:14px;display:flex;align-items:center;gap:12px;min-height:64px;min-width:0;text-align:left;border:1.5px solid var(--line);background:white;border-radius:14px;color:var(--ink);transition:border-color .15s,background .15s}.choice:hover .choice-body{border-color:#7da2ee;background:#f4f8ff}.choice input:checked+.choice-body{border-color:var(--blue);background:#eaf1ff;box-shadow:0 0 0 1px var(--blue)}.choice input:focus-visible+.choice-body{outline:3px solid #e89700;outline-offset:4px}.choice-letter{font-size:13px;display:grid;place-items:center;height:28px;width:28px;flex:none;border-radius:8px;background:#edf2f9;color:#61738f}.choice input:checked+.choice-body .choice-letter{background:var(--blue);color:white}.choice-text{font-size:16px;overflow-wrap:anywhere}.question-footer{margin-top:22px}.next-button{display:block;width:100%;background:var(--blue);color:#fff;border:0;border-radius:12px;min-height:50px;padding:12px 18px;font-size:16px;font-weight:500;cursor:pointer}.next-button:hover:enabled{background:#0c3da9}.next-button:disabled{background:#e2e9f5;color:#7b8ca9;cursor:default}.progress-area{margin-top:18px}.progress-caption{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted);margin-bottom:8px}.progress-track{height:6px;background:#e9eef7;border-radius:999px;overflow:hidden}.progress-track>span{height:100%;display:block;width:0;background:var(--blue);border-radius:inherit;transition:width .2s ease}.result-top{text-align:center;padding:12px 0 20px}.result-top h2{font-size:23px;margin:0 0 10px;font-weight:500;line-height:1.6}.result-label{margin:0 0 2px;color:var(--muted);font-size:15px}.score{font-size:80px;line-height:1.3;font-weight:600;color:var(--blue);letter-spacing:-.04em}.score span{font-size:28px;font-weight:400;letter-spacing:0;color:#71809a;margin-left:6px}.full-test{padding:22px;background:#eaf2ff;border:1px solid #d9e6fc;border-radius:18px;text-align:center}.cta-eyebrow{font-size:14px;color:var(--blue);font-weight:500;margin:0 0 5px}.full-test h2{font-size:24px;font-weight:600;line-height:1.5;margin:0 0 7px}.cta-copy>p:last-child{font-size:14px;margin:0;color:#49617f}.cta-action{width:100%;margin-top:20px;text-align:center}.line-button{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--green);color:#063c21;text-decoration:none;border:1px solid #05ae4a;border-radius:13px;padding:16px;font-size:16px;font-weight:600;line-height:1.6;min-height:58px}.line-button:hover{background:#09d15c}.line-word{font:800 13px/1.4 system-ui,sans-serif;background:white;color:#087935;border-radius:6px;padding:4px 5px;flex:none}.cta-action p{font-size:13px;color:#48617d;margin:8px 0 0;line-height:1.7}.cta-action b{font-weight:500}.site-footer{max-width:560px;margin:auto;text-align:center;color:var(--muted);font-size:12px;padding:16px 4px 0}.site-footer p{margin:0}.no-script{padding:16px;background:#fff2cc;border-radius:12px}.is-complete .quiz-header{display:none}
@media(max-width:600px){.wrap{width:calc(100% - 28px)}.site-header{padding-block:12px;gap:10px}.brand{gap:7px}.brand b{font-size:18px}.brand-mark{width:40px;height:40px}.brand-mark img{width:98px;height:70px;left:-28px;top:-15px}main{padding-block:18px 24px}h1{font-size:26px;margin-bottom:16px}.quiz-card{padding:18px;border-radius:20px}.word-stage{margin:14px 0 18px;padding:10px}.word-stage h2{font-size:64px}.choices{gap:10px}.choice-body{padding:12px 10px;gap:9px;min-height:58px}.choice-letter{height:25px;width:25px;font-size:12px}.choice-text{font-size:16px}.question-footer{margin-top:18px}.next-button{min-height:48px;padding:10px 16px}.progress-area{margin-top:14px}.result-top{padding-top:6px;padding-bottom:18px}.result-top h2{font-size:22px}.score{font-size:72px}.full-test{padding:18px 12px}.full-test h2{font-size:22px}.site-footer{padding-top:14px}}
@media(max-width:420px){.header-label{display:none}.brand small{font-size:12px}h1{font-size:24px}.quiz-card{padding:16px}.choice-body{gap:7px;padding:10px 8px}.word-stage h2{font-size:58px}}
/* The only final-page action is pinned to the visible viewport on phones and
   short windows. No transformed ancestor or overflow container can clip it. */
@media(max-width:900px),(max-height:600px){body.is-complete main{padding-bottom:calc(var(--dock-height, 136px) + 24px)}.is-complete .cta-action{position:fixed;inset:auto 0 0;z-index:30;margin:0;padding:12px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:#fff;border-top:1px solid #cfdff4;box-shadow:0 -8px 28px #173c7412}.is-complete .line-button{width:100%;max-width:560px;margin-inline:auto}.is-complete .cta-action p{max-width:560px;margin:7px auto 0}.is-complete .full-test{margin-bottom:0}}
@media(max-height:620px) and (max-width:600px){.is-complete main{padding-top:12px}.is-complete h1{margin-bottom:10px;font-size:23px}.is-complete .result-top{padding-top:0;padding-bottom:10px}.is-complete .score{font-size:58px}.is-complete .result-top h2{font-size:20px;margin-bottom:4px}.is-complete .full-test{padding:12px}.is-complete .full-test h2{font-size:20px}.is-complete .site-footer{padding-top:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
