:root{--bg:#f8fafc;--brand-ink:#14233e;--brand-silver:#9ba5b6;--surface:#fff;--text:#0f172a;--body:#3d4b5f;--muted:#526176;--border:#d6deea;--primary:#2250df;--primary-hover:#1a40b5;--tint:#f0f5ff;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);letter-spacing:.02em;margin:0;font-family:Inter,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;font-size:16px;line-height:1.85}a{color:var(--primary);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}h1,h2,h3{letter-spacing:.01em;margin:0 0 20px;line-height:1.5}h1{font-size:32px}h2{font-size:24px}h3{font-size:18px}p{color:var(--body);margin:0 0 20px}small{color:var(--muted);font-size:13px}:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.container{max-width:1120px;margin:0 auto;padding:56px 32px 80px}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.header-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1184px;margin:auto;padding:24px 32px;display:flex}.brand{color:var(--text);text-decoration:none;display:inline-flex}.brand-lockup{color:var(--brand-ink);white-space:nowrap;align-items:center;gap:12px;line-height:1.2;display:inline-flex}.brand-emblem{flex-shrink:0;width:64px;height:64px}.brand-wordmark{gap:7px;display:grid}.brand-wordmark strong{letter-spacing:.04em;font-family:Georgia,Hiragino Mincho ProN,serif;font-size:28px;font-weight:700}.brand-wordmark strong>span{letter-spacing:.1em;margin-left:8px;font-family:Hiragino Sans,sans-serif;font-size:22px}.brand-wordmark small{color:var(--brand-ink);letter-spacing:.12em;font-size:7px}.brand-compact{gap:8px}.brand-compact .brand-emblem{width:44px;height:44px}.brand-compact .brand-wordmark strong{font-size:24px}.brand-compact .brand-wordmark strong>span{font-size:18px}nav{align-items:center;gap:28px;display:flex}nav a{color:var(--body);font-size:14px;text-decoration:none}.button{background:var(--primary);border:1px solid var(--primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 24px;font-size:16px;font-weight:600;line-height:1.5;text-decoration:none;transition:background .15s;display:inline-flex}.button:hover{background:var(--primary-hover)}.button.secondary{background:var(--surface);color:var(--body);border-color:var(--border)}.button.secondary:hover{background:var(--bg)}.button.compact{min-height:40px;padding:8px 16px;font-size:14px}.actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.eyebrow{color:var(--primary);letter-spacing:.14em;margin:0 0 20px;font-size:12px;font-weight:700}.eyebrow span{color:var(--muted);letter-spacing:.02em}.hero{grid-template-columns:1.45fr 1fr;align-items:center;gap:64px;padding:32px 0 64px;display:grid}.hero h1{font-size:44px;line-height:1.6}.hero .lede{font-size:17px}.lede{max-width:720px;line-height:2}.hero-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:32px;box-shadow:0 2px 4px #0f172a05}.hero-card .level{align-items:baseline;gap:12px;margin:20px 0;display:flex}.level strong{color:var(--primary);font-size:76px;font-weight:500;line-height:1.2}.level span{font-size:24px}.hero-card .button{width:100%}.badge{background:var(--tint);color:var(--primary);border-radius:99px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.facts{border-block:1px solid var(--border);grid-template-columns:repeat(4,1fr);margin-bottom:56px;padding:24px 0;display:grid}.facts div{text-align:center;border-right:1px solid var(--border)}.facts div:last-child{border:0}.facts strong{font-size:22px;display:block}.facts span{color:var(--muted);font-size:13px}.section{margin-top:64px}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.section-head h2{margin:0}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:0 1px 2px #0f172a05}.card p:last-child{margin-bottom:0}.number{color:var(--primary);margin-bottom:24px;font-size:14px;font-weight:700;display:block}.band{background:var(--tint);border-radius:var(--radius);border:1px solid #c0d4ff;justify-content:space-between;align-items:center;gap:32px;padding:40px;display:flex}.band p{margin-bottom:0}.page-heading{margin:8px 0 40px}.page-heading h1{font-size:36px}.narrow{max-width:680px;margin:auto}.wide-form{max-width:820px}.form{flex-direction:column;align-items:stretch;gap:20px;display:flex}.form .button{align-self:flex-start}.field{flex-direction:column;gap:8px;line-height:1.5;display:flex}.field label{font-size:14px;font-weight:600}.field input:not([type=checkbox]),textarea,select,.copy input{background:var(--surface);width:100%;min-height:44px;color:var(--text);caret-color:var(--primary);border:1px solid #a9b6c8;border-radius:8px;padding:10px 12px;font-size:16px}textarea{resize:vertical}.check{align-items:flex-start;gap:12px;line-height:1.7;display:flex}.check input{width:20px;height:20px;accent-color:var(--primary);flex-shrink:0;margin:3px 0}.select-wrap{position:relative}.select-wrap select{appearance:none;padding-right:40px}.select-wrap>span{pointer-events:none;position:absolute;top:8px;right:16px}.notice{background:var(--tint);color:#13318d;border:1px solid #c0d4ff;border-radius:8px;padding:16px 20px;line-height:1.8}.muted{color:var(--muted)}.list{color:var(--body);padding-left:24px}.list li{margin:12px 0}.copy{gap:12px;display:flex}.copy input{min-width:0}.stat{color:var(--text);font-size:32px;font-weight:600;display:block}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;background:var(--bg);color:var(--muted);font-size:12px;font-weight:500}th,td{border-bottom:1px solid var(--border);padding:14px 16px}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--bg)}details{border-bottom:1px solid var(--border);padding:20px 0}summary{cursor:pointer;font-weight:600}details p{margin:16px 0 0}.category{margin:20px 0}.category>div{justify-content:space-between;gap:16px;margin-bottom:8px;font-size:14px;display:flex}.progress{background:#e2e8f0;border-radius:99px;height:8px;overflow:hidden}.progress i{background:var(--primary);border-radius:99px;height:100%;display:block}.certificate-view{max-width:1024px;margin:0 auto}.certificate-sheet{background:var(--surface);color:var(--brand-ink);border:2px solid var(--brand-ink);text-align:center;outline:1px solid var(--brand-silver);outline-offset:-10px;padding:48px 56px 36px;position:relative}.certificate-sheet:before{content:"";border:1px solid var(--brand-silver);pointer-events:none;position:absolute;inset:17px}.certificate-masthead{justify-content:center;margin-bottom:32px;display:flex}.certificate-english{letter-spacing:.24em;color:var(--brand-ink);margin-bottom:16px;font-family:Georgia,serif;font-size:12px}.certificate-sheet h1{letter-spacing:.12em;margin-bottom:32px;font-size:32px;font-weight:500}.certificate-recipient{color:var(--brand-ink);overflow-wrap:anywhere;margin:0;font-size:32px;line-height:1.7}.certificate-recipient small{color:var(--brand-ink);margin-left:16px;font-size:18px}.certificate-name-rule{border-bottom:1px solid var(--brand-silver);width:68%;margin:8px auto 24px}.certificate-sheet h2{color:var(--brand-ink);margin-bottom:16px;font-size:24px;font-weight:500}.certificate-sheet h2 strong{font-family:Georgia,serif;font-weight:400}.certificate-statement{color:var(--brand-ink);margin-bottom:32px;font-size:14px}.certificate-record{text-align:left;grid-template-columns:minmax(0,1fr) 110px 100px;align-items:center;gap:32px;display:grid}.certificate-details dl{margin:0 0 16px}.certificate-details dl>div{gap:16px;margin:8px 0;font-size:13px;display:flex}.certificate-details dt{flex-shrink:0;width:48px}.certificate-details dd{overflow-wrap:anywhere;margin:0}.certificate-id-label{letter-spacing:.15em;color:var(--brand-ink);margin:0;font-family:Georgia,serif;font-size:10px}.certificate-details code{overflow-wrap:anywhere;font-size:11px}.certificate-verification{text-align:center}.certificate-verification img{margin:auto;display:block}.certificate-verification span{letter-spacing:.1em;margin-top:4px;font-size:6px;display:block}.certificate-scope{border-top:1px solid var(--brand-silver);color:var(--brand-ink);margin:24px 0 0;padding-top:16px;font-size:10px}.certificate-sample-label{letter-spacing:.14em;margin-top:8px;font-size:8px;display:block}.certificate-actions{justify-content:center;margin:24px 0}.brand-preview{justify-content:space-around;align-items:center;gap:32px;margin-bottom:40px;padding:40px;display:flex}.brand-preview>div{text-align:center}.brand-preview p{margin:16px 0 0;font-size:13px}.legal h2{margin-top:36px}.legal p{line-height:2}footer{background:var(--surface);border-top:1px solid var(--border)}.footer-inner{justify-content:space-between;gap:40px;padding-block:40px;display:flex}footer nav{flex-shrink:0;align-content:start;gap:8px;display:grid}footer p{margin:16px 0 8px;font-size:14px}.exam-shell{max-width:880px;margin:auto;padding:0 24px 48px}.exam-header{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:16px 0;display:flex;position:sticky;top:0}.exam-identity{gap:4px;display:grid}.exam-identity>span:last-child{color:var(--muted);font-size:12px}.exam-clock{text-align:center;border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-left:auto;padding:8px 16px;line-height:1.4;display:grid}.exam-clock>span{color:var(--muted);font-size:11px}.timer{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:24px}.time-short{border-color:var(--primary);background:var(--tint)}.time-notice{color:var(--primary);margin:16px 0 0;font-size:14px;font-weight:600}.exam-exit{min-height:44px;color:var(--body);text-underline-offset:4px;background:0 0;border:0;padding:8px;font-size:14px;text-decoration:underline}.exam-meta{justify-content:space-between;align-items:baseline;gap:16px;margin:20px 0 8px;font-size:13px;display:flex}.save-status{text-align:right;color:var(--muted)}.question{margin-top:24px;padding:24px}.question-heading{color:var(--muted);justify-content:space-between;gap:16px;margin-bottom:12px;font-size:12px;display:flex}.question-heading>span:first-child{white-space:nowrap}.question h1{margin-bottom:20px;scroll-margin-top:120px;font-size:21px;line-height:1.7}.question h1:focus{outline:none}.question fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.choice{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:12px;min-height:52px;padding:12px 16px;font-size:15px;line-height:1.65;display:flex}.choice:hover{background:var(--bg)}.choice.selected{border-color:var(--primary);background:var(--tint)}.choice:focus-within{outline:2px solid var(--primary);outline-offset:2px}.choice b{color:var(--muted);font-size:12px}.choice input{accent-color:var(--primary);flex-shrink:0;width:18px;height:18px}.exam-nav{border-top:1px solid var(--border);align-items:center;gap:12px;margin-top:20px;padding-top:20px;display:flex}.exam-nav .button{min-height:44px;padding:10px 20px;font-size:14px}.exam-submit{margin-left:auto}.exam-review{margin-top:20px}.review-toolbar{justify-content:space-between;align-items:center;gap:16px;font-size:14px;display:flex}.exam-review details{padding:16px 0;font-size:14px}.grid-help{color:var(--muted);font-size:12px}.question-grid{grid-template-columns:repeat(10,1fr);gap:8px;margin-top:16px;padding:4px;display:grid}.question-grid button{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-height:44px;font-size:12px}.question-grid .answered{background:var(--tint);color:var(--primary)}.question-grid [aria-current]{outline:2px solid var(--primary)}.exam-help{color:var(--muted);margin:16px 0 0;font-size:12px}.result-summary h2{font-size:20px}.result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 20px;display:grid}.result-stats>div{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:20px 24px}.result-stats dt{color:var(--muted);font-size:13px}.result-stats dd{font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:36px;font-weight:600;line-height:1.4}.result-stats small{font-size:16px;font-weight:400}.result-stats .result-verdict{border-color:var(--primary);background:var(--tint)}.result-verdict dd{color:var(--primary)}.result-threshold{font-size:14px}.result-threshold span{margin-left:20px;display:inline-block}.review-guidance{color:var(--muted);font-size:13px}.learning-list{gap:20px;display:grid}.learning-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px;display:flex}.learning-heading h3{margin:8px 0 0}.learning-score{text-align:right;flex-shrink:0;margin:0;display:grid}.learning-score strong{color:var(--text);font-size:28px}.learning-score span{color:var(--muted);font-size:12px}.learning-content{grid-template-columns:1fr 1fr;gap:32px;margin-top:20px;display:grid}.learning-content h4{color:var(--muted);margin:0 0 8px;font-size:13px}.learning-content p{margin:0;font-size:15px}.learning-footer{margin-top:24px;font-size:14px}.learning-footer p{margin-bottom:4px}dialog{border:1px solid var(--border);width:calc(100% - 32px);max-width:560px;color:var(--text);border-radius:12px;padding:32px;box-shadow:0 12px 28px #0f172a22}dialog::backdrop{background:#0f172a66}.skip{z-index:100;background:#fff;padding:12px;position:fixed;top:-100px;left:16px}.skip:focus{top:16px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.empty{text-align:center;padding:48px 16px}.spaced{margin-top:32px}.break{overflow-wrap:anywhere}@media (max-width:760px){.container{padding:32px 20px 56px}.header-inner{gap:16px;padding:20px}.brand-lockup{gap:8px}.brand-emblem{width:48px;height:48px}.brand-wordmark strong{font-size:23px}.brand-wordmark strong>span{margin-left:6px;font-size:18px}.brand-wordmark small{letter-spacing:.08em;font-size:5.5px}.header-inner nav{gap:12px}.header-inner nav>a:not(.button){display:none}.hero{grid-template-columns:1fr;gap:32px;padding-top:16px}.hero h1{font-size:32px}.hero-card{padding:24px}.hero .actions{align-items:stretch}.hero .actions a{width:100%}.facts{grid-template-columns:repeat(2,1fr);gap:24px}.facts div:nth-child(2){border:0}.grid,.grid.two{grid-template-columns:1fr}.section{margin-top:48px}.band{flex-direction:column;align-items:flex-start;padding:24px}.page-heading h1{font-size:28px}.card{padding:24px}.copy,.footer-inner{flex-direction:column}.exam-shell{padding:0 16px 32px}.exam-header{gap:12px;padding:12px 0}.exam-clock{padding:6px 12px}.timer{font-size:22px}.exam-exit{padding:8px 0;font-size:12px}.exam-meta{gap:12px;margin-top:16px;font-size:12px}.exam-meta>span:first-child{flex-shrink:0}.question{margin-top:16px;padding:20px 16px}.question-heading{gap:8px;font-size:11px}.question-heading>span:last-child{text-align:right}.question h1{margin-bottom:16px;font-size:18px}.choice{gap:8px;padding:12px;font-size:15px}.exam-nav{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:16px;display:grid}.exam-nav .button{padding:10px 12px}.exam-submit{grid-column:1/-1;margin-left:0}.question-grid{grid-template-columns:repeat(6,1fr)}.result-stats{grid-template-columns:1fr 1fr;gap:12px}.result-stats>div{padding:16px}.result-stats dd{font-size:30px}.result-stats .result-verdict{grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.result-verdict dd{margin:0;font-size:24px}.result-threshold span{margin:4px 0 0;display:block}.result-summary .actions{align-items:stretch}.result-summary .actions .button{width:100%}.learning-heading{align-items:flex-start;gap:12px}.learning-heading h3{font-size:16px}.learning-score strong{font-size:24px}.learning-content{grid-template-columns:1fr;gap:20px}.certificate-sheet{padding:32px 24px 28px}.certificate-masthead{margin-bottom:24px}.certificate-english{letter-spacing:.13em;font-size:8px}.certificate-sheet h1{letter-spacing:.04em;margin-bottom:24px;font-size:21px}.certificate-recipient{font-size:24px}.certificate-recipient small{margin-left:8px;font-size:15px}.certificate-name-rule{width:100%}.certificate-sheet h2{font-size:22px}.certificate-statement{font-size:12px}.certificate-record{grid-template-columns:1fr 1fr;justify-items:center;gap:20px}.certificate-details{grid-column:1/-1;width:100%}.certificate-details dl>div{gap:8px;font-size:12px}.certificate-details code{font-size:10px}.certificate-grade{width:88px;height:auto}.certificate-scope{font-size:9px}.brand-preview{flex-direction:column;gap:32px;padding:32px 20px}.section-head{flex-direction:column;align-items:flex-start}.form .button{width:100%}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.certificate-seal{flex-direction:column;align-items:center;gap:4px;display:flex}.certificate-seal>span{letter-spacing:.12em;color:var(--brand-ink);font-family:Georgia,serif;font-size:12px}.brand-emblem{object-fit:contain}.google-login h2{margin-bottom:8px;font-size:20px}.google-login p{font-size:14px}.google-signin-button{max-width:100%;min-height:44px}.google-login .field{line-height:1.5}.login-divider{color:var(--muted);align-items:center;gap:16px;margin:32px 0;font-size:14px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}
