:root{--paper: #FBFAF4;--ink: #141310;--brand: #4B47D6;--brand-ink: #ffffff;--brand-wash: #4B47D614;--ok: #1F9D55;--ng: #E5484D;--warn: #E8930C;--line: 2.5px solid var(--ink);--line-thin: 1.5px solid var(--ink);--shadow: 5px 5px 0 var(--ink);--shadow-sm: 3px 3px 0 var(--ink);--shadow-brand: 5px 5px 0 var(--brand);--disp: "Space Grotesk", "Zen Kaku Gothic New", sans-serif;--body: "Zen Kaku Gothic New", sans-serif;--mono: "IBM Plex Mono", monospace;--muted: #5b5850}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:500;line-height:1.7;background-image:radial-gradient(circle,#14131012 1.2px,transparent 1.2px);background-size:22px 22px}a{color:inherit}button{font-family:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}img{max-width:100%}.wrap{max-width:680px;margin:0 auto;padding:0 16px}.wrap-wide{max-width:940px;margin:0 auto;padding:0 16px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:8px 14px;font-family:var(--mono);font-size:.8rem;z-index:100}.skip-link:focus{left:8px;top:8px}header.site{border-bottom:var(--line);background:var(--paper);position:sticky;top:0;z-index:20}.hbar{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;gap:10px;max-width:940px;margin:0 auto}.logo{display:flex;align-items:center;gap:10px;text-decoration:none}.logo .mark{padding:3px 10px;background:var(--brand);border:var(--line);box-shadow:var(--shadow-sm);color:var(--brand-ink);font-family:var(--disp);font-weight:700;font-size:1.05rem;border-radius:7px;letter-spacing:-.01em}.logo .txt{font-family:var(--disp);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;line-height:1}.logo .txt small{display:block;font-family:var(--mono);font-weight:500;font-size:.58rem;color:var(--muted);letter-spacing:.12em;margin-top:2px}nav.site{display:flex;gap:6px;align-items:center;flex-wrap:wrap}nav.site a{font-size:.72rem;font-weight:700;text-decoration:none;border:var(--line);padding:5px 9px;border-radius:6px;background:#fff;white-space:nowrap}nav.site a:hover,nav.site a[aria-current=page]{background:var(--ink);color:var(--paper)}.hero{padding:34px 0 8px}.eyebrow{display:inline-block;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.08em;background:var(--ink);color:var(--paper);padding:4px 10px;border-radius:4px;margin-bottom:14px}h1{font-family:var(--disp);font-weight:900;font-size:clamp(1.7rem,6.4vw,2.6rem);line-height:1.22;letter-spacing:-.02em}h1 .u{background:linear-gradient(transparent 60%,var(--brand-wash) 60%);box-decoration-break:clone}.hero p.lead{margin-top:12px;font-size:.95rem;color:#3c3a35;max-width:54ch}.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 16px;gap:12px}.sec-h h2{font-family:var(--disp);font-weight:900;font-size:1.3rem;letter-spacing:-.01em}.sec-h a{font-family:var(--mono);font-size:.7rem;font-weight:600;text-decoration:none;border-bottom:2px solid var(--ink);white-space:nowrap}.card{border:var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);padding:16px}.btn{display:inline-flex;align-items:center;gap:6px;border:var(--line);border-radius:8px;background:#fff;padding:9px 14px;font-weight:800;font-size:.82rem;text-decoration:none;box-shadow:var(--shadow-sm)}.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.btn.primary{background:var(--brand);color:var(--brand-ink)}.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.exam-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 640px){.exam-grid{grid-template-columns:1fr 1fr}}.exam-card{border:var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:10px;text-decoration:none}.exam-card:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--brand)}.exam-card h3{font-family:var(--disp);font-weight:900;font-size:1.15rem}.exam-card .count{font-family:var(--mono);font-size:.68rem;color:var(--muted)}.exam-card .topics{font-size:.74rem;color:#3c3a35;line-height:1.55}.exam-card .go{margin-top:auto;font-weight:800;font-size:.82rem;color:var(--brand)}.features{display:grid;grid-template-columns:1fr;gap:12px;margin-top:8px}@media (min-width: 640px){.features{grid-template-columns:repeat(3,1fr)}}.feature{border:var(--line-thin);border-radius:10px;padding:12px 14px;background:#fff}.feature b{display:block;font-family:var(--disp);font-weight:800;font-size:.9rem;margin-bottom:3px}.feature p{font-size:.74rem;color:var(--muted)}.crumbs{font-family:var(--mono);font-size:.68rem;color:var(--muted);padding:14px 0 0;display:flex;gap:6px;flex-wrap:wrap}.crumbs a{text-decoration:none;border-bottom:1.5px solid var(--muted)}.badge{font-family:var(--mono);font-size:.58rem;font-weight:700;padding:3px 8px;border-radius:4px;border:1.5px solid var(--ink);display:inline-block}.badge.verified{background:var(--ok);color:#fff;border-color:var(--ok)}.badge.type{background:var(--brand-wash)}.pill{font-family:var(--mono);font-size:.64rem;font-weight:600;border:1.5px solid var(--ink);border-radius:4px;padding:2px 8px;background:var(--paper);text-decoration:none;display:inline-block}.pillrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.q-head{margin:8px 0 4px}.q-head h1{font-size:clamp(1.35rem,5vw,1.9rem)}.q-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.q-body{font-size:1rem;line-height:1.8;margin:18px 0;white-space:pre-wrap}.choices{display:flex;flex-direction:column;gap:10px;margin:16px 0}.choice{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;border:var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow-sm);padding:12px 14px;font-size:.92rem;font-weight:500}.choice:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.choice .k{font-family:var(--mono);font-weight:700;border:var(--line-thin);border-radius:5px;width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto;background:var(--paper)}.choice[data-state=correct]{background:#1f9d5518;border-color:var(--ok)}.choice[data-state=correct] .k{background:var(--ok);color:#fff;border-color:var(--ok)}.choice[data-state=wrong]{background:#e5484d14;border-color:var(--ng)}.choice[data-state=wrong] .k{background:var(--ng);color:#fff;border-color:var(--ng)}.choice[data-state=dim]{opacity:.55}.choice:disabled{cursor:default}.answer-form{border:var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);padding:14px;margin:16px 0}.answer-form label{font-size:.74rem;font-weight:700;display:block;margin-bottom:6px}.num-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}input[type=number],input[type=text],select{font-family:var(--mono);font-size:.95rem;border:var(--line);border-radius:8px;padding:9px 11px;background:var(--paper);min-width:0}input[type=number]{width:160px}.unit{font-family:var(--mono);font-size:.85rem;color:var(--muted)}.journal-tbl{width:100%;border-collapse:collapse;margin:6px 0}.journal-tbl th{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;color:var(--muted);text-align:left;padding:4px 6px}.journal-tbl td{padding:4px 6px}.journal-tbl select,.journal-tbl input{width:100%;font-size:.82rem;padding:7px 8px}.jr-side{font-family:var(--disp);font-weight:900;font-size:.8rem}.jr-add{font-size:.72rem;font-weight:700;border:var(--line-thin);border-radius:6px;background:var(--paper);padding:4px 9px}.jr-del{border:none;background:none;color:var(--ng);font-weight:800;padding:0 6px}.result{display:none;margin:18px 0;border:var(--line);border-radius:12px;padding:14px 14px 14px 62px;position:relative;box-shadow:var(--shadow-sm);background:#fff}.result[data-show="1"]{display:block}.result .stamp{position:absolute;left:12px;top:14px;width:38px;height:38px;border:3px solid;border-radius:50%;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:1.25rem;transform:rotate(-8deg);background:#fff}.result h3{font-size:.95rem;font-weight:900}.result p{font-size:.78rem;color:var(--muted)}.result.ok{border-left:8px solid var(--ok)}.result.ok .stamp{color:var(--ok);border-color:var(--ok)}.result.ng{border-left:8px solid var(--ng)}.result.ng .stamp{color:var(--ng);border-color:var(--ng)}.disc{margin:18px 0;border:var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}.disc>summary{list-style:none;cursor:pointer;padding:12px 14px;font-family:var(--disp);font-weight:900;font-size:.92rem;display:flex;justify-content:space-between;align-items:center}.disc>summary::-webkit-details-marker{display:none}.disc>summary:after{content:"＋";font-family:var(--mono)}.disc[open]>summary:after{content:"－"}.disc .disc-body{padding:0 14px 14px;font-size:.9rem;line-height:1.8}.disc .disc-body.wrap-pre{white-space:pre-wrap}.wrong-note{border-top:var(--line-thin);padding:10px 0;font-size:.86rem}.wrong-note .wk{font-family:var(--mono);font-weight:700;color:var(--ng);margin-right:6px}.hint-note{font-size:.88rem}.source{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin:12px 0}.related{display:flex;flex-direction:column;gap:8px;margin:10px 0}.related a{display:flex;gap:8px;align-items:center;border:var(--line-thin);border-radius:8px;background:#fff;padding:10px 12px;text-decoration:none;font-size:.84rem}.related a:hover{box-shadow:var(--shadow-sm)}.related a .rk{font-family:var(--mono);font-size:.6rem;color:var(--muted);flex:0 0 auto}.topic-map{display:grid;grid-template-columns:1fr;gap:10px;margin:8px 0}@media (min-width: 560px){.topic-map{grid-template-columns:1fr 1fr}}.topic-cell{border:var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow-sm);padding:12px 14px;text-decoration:none;display:flex;flex-direction:column;gap:6px}.topic-cell:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.topic-cell .tl{font-weight:800;font-size:.9rem}.topic-cell .tc{font-family:var(--mono);font-size:.64rem;color:var(--muted)}.heat{height:10px;border:var(--line-thin);border-radius:5px;background:var(--paper);overflow:hidden}.heat>i{display:block;height:100%;width:0;background:var(--ok)}.heat-legend{font-family:var(--mono);font-size:.6rem;color:var(--muted)}.q-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.q-list a{display:flex;gap:10px;align-items:center;border:var(--line-thin);border-radius:8px;background:#fff;padding:11px 13px;text-decoration:none;font-size:.88rem}.q-list a:hover{box-shadow:var(--shadow-sm)}.q-list a .st{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;font-weight:800;font-size:.8rem;background:var(--paper)}.q-list a .st[data-s=ok]{color:var(--ok);border-color:var(--ok)}.q-list a .st[data-s=ng]{color:var(--ng);border-color:var(--ng)}.q-list a .tp{font-family:var(--mono);font-size:.58rem;color:var(--muted);margin-left:auto;flex:0 0 auto}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0}.toggle{font-size:.74rem;font-weight:700;border:var(--line);border-radius:8px;background:#fff;padding:7px 11px;box-shadow:var(--shadow-sm)}.toggle[aria-pressed=true]{background:var(--brand);color:#fff}.review-queue{border:2.5px dashed var(--brand);border-radius:12px;background:var(--brand-wash);padding:14px;margin:14px 0}.review-queue .rq-t{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;color:var(--brand);font-weight:700}.review-queue.empty{display:none}.progress-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-family:var(--mono);font-size:.72rem;margin:10px 0}.progress-bar .stat{border:var(--line-thin);border-radius:6px;padding:5px 9px;background:#fff}.progress-bar .stat b{font-family:var(--disp);font-size:.95rem}footer.site{border-top:var(--line);padding:24px 0 44px;font-size:.72rem;color:var(--muted);margin-top:40px}footer.site .wrap-wide{display:flex;flex-direction:column;gap:8px}footer.site a{text-decoration:underline}footer.site .fmono{font-family:var(--mono);font-size:.6rem}.prose{font-size:.92rem;line-height:1.85}.prose h2{font-family:var(--disp);font-weight:900;font-size:1.2rem;margin:24px 0 10px}.prose p{margin:10px 0}.prose ul{margin:10px 0 10px 20px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
