:root{--paper:#fafafa;--paper-2:#f3f4f6;--card:#fff;--ink:#18181b;--ink-soft:#44403c;--muted:#71717a;--line:#efefef;--rule:var(--line);--rule-strong:#e2e8f0;--primary:#0a0a0a;--primary-soft:#f4f4f5;--accent:#475569;--accent-soft:#f1f5f9;--ok:#15803d;--ok-soft:#ecfdf5;--warn:#b91c1c;--warn-soft:#fef2f2;--pill-key-bg:#ecfdf5;--pill-key-fg:#065f46;--pill-sup-bg:#eff6ff;--pill-sup-fg:#1e3a8a;--pill-term-bg:#f3e8ff;--pill-term-fg:#6b21a8;--pill-work-bg:#fff7ed;--pill-work-fg:#9a3412;--indigo:#3730a3;--indigo-soft:#eef2ff;--shadow:0 2px 6px rgba(15,23,42,.18),0 16px 36px rgba(15,23,42,.22)}.section{display:none}.section.active{display:block;animation:fadeIn .35s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes cardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes springBox{0%{transform:scale(1)}40%{transform:scale(1.18)}70%{transform:scale(.96)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}.sec-meta{font-family:var(--font-jetbrains-mono),"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.sec-meta .dot{width:4px;height:4px;background:var(--rule-strong);border-radius:50%}.sec-meta .accent{color:var(--primary);font-weight:600}h1.sec-title{font-family:var(--font-noto-sans-jp),"Noto Sans JP",sans-serif;font-weight:700;font-size:30px;line-height:1.5;letter-spacing:0;margin:0 0 12px;color:var(--ink)}.sec-lede{color:var(--muted);font-size:14.5px;margin:0 0 30px;padding-bottom:22px;border-bottom:1px solid var(--rule)}.takeaway{display:flex;gap:16px;align-items:flex-start;background:var(--primary);color:#fafafa;border-radius:10px;box-shadow:none;padding:18px 22px;margin:0 0 34px;opacity:0;animation:cardIn .42s ease-out .08s forwards}.takeaway .pin{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#fafafa;color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:0;margin-top:2px}.takeaway .pin:before{content:"!";font-size:17px;font-weight:700}.takeaway .body{flex:1;min-width:0}.takeaway p{margin:9px 0 0;font-size:15.5px;line-height:1.85;color:#fafafa;font-weight:600}.glossary .head-mono,.name-card .head,.step-row .step-num,.takeaway .label{display:inline-flex;align-items:center;gap:6px;width:-moz-max-content;width:max-content;max-width:100%;padding:4px 10px;border-radius:999px;font-size:12px;line-height:1.45;font-weight:700}.takeaway .label{background:var(--pill-key-bg);color:var(--pill-key-fg)}.takeaway .label:before{content:"◎"}.keypoints{background:var(--card);border:1px solid var(--rule-strong);border-radius:14px;padding:6px 28px;margin:0 0 32px;box-shadow:var(--shadow);opacity:0;animation:cardIn .42s ease-out forwards}.kp{display:flex;gap:20px;align-items:flex-start;padding:24px 0;border-bottom:1px solid var(--rule)}.kp:last-child{border-bottom:0}.kp .idx{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-jetbrains-mono),"IBM Plex Mono",monospace;font-weight:700;font-size:15px;letter-spacing:0;margin-top:2px}.kp .body{flex:1;min-width:0}.kp .body h4{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--ink);letter-spacing:.01em}.kp .body h4 .ja{color:var(--muted);font-size:13px;margin-left:8px;font-weight:400;letter-spacing:0}.kp .body p{margin:0;color:var(--ink-soft);font-size:14.5px;line-height:1.95}.kp .body p strong{background:var(--indigo-soft);color:var(--indigo);padding:2px 8px;border-radius:999px;font-weight:600;font-family:var(--font-ibm-plex-sans),var(--font-noto-sans-jp),"IBM Plex Sans","Noto Sans JP",sans-serif}.flow-btn,.handson,.name-card,.qcard,.quiz-result{background:var(--card);border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--line)}.name-card{padding:24px 26px;margin:0 0 32px;opacity:0;animation:cardIn .42s ease-out .12s forwards}.name-card .head{background:var(--pill-sup-bg);color:var(--pill-sup-fg);margin-bottom:14px}.name-card .head:before{content:"＋"}.name-tree{font-size:14px;line-height:2.05;color:var(--ink);white-space:pre;overflow-x:auto;margin:0 0 18px}.name-tree .hi{color:var(--primary);font-weight:700}.name-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-top:18px;border-top:1px dashed var(--rule-strong)}.name-summary div{font-size:13px;line-height:1.7}.name-summary div b{display:block;font-size:14.5px;color:var(--primary);margin-bottom:2px}.name-summary div span{color:var(--ink-soft)}.tab-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 32px}.tab-row .tab{border:1px solid var(--rule-strong);border-radius:10px;background:var(--card);color:var(--ink-soft);padding:14px 16px;text-align:left}.tab-row .tab.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.tab-row .tab b{display:block;color:var(--ink);font-size:14.5px;margin-bottom:2px}.tab-row .tab span{display:block;font-size:12.5px;line-height:1.65;color:var(--muted)}.glossary{background:transparent}.glossary .head-mono{background:var(--pill-term-bg);color:var(--pill-term-fg);margin:0 0 10px}.glossary .head-mono:before{content:"⊙"}.gloss-item{padding:12px 0;border-bottom:1px dashed var(--rule-strong)}.gloss-item:last-child{border-bottom:0}.gloss-item .en{font-weight:700;font-size:13px;color:var(--ink)}.gloss-item .ja{font-weight:700;font-size:13px;color:var(--primary);margin-left:6px}.gloss-item .desc{margin-top:3px;font-size:12.5px;line-height:1.7;color:var(--muted)}.handson{display:flex;flex-direction:column;gap:0;margin:0 0 32px;overflow:hidden;opacity:0;animation:cardIn .42s ease-out .12s forwards}.step-row{display:flex;gap:16px;padding:20px 24px;border-bottom:1px solid var(--rule)}.step-row:last-child{border-bottom:0}.step-row .step-num{background:var(--pill-work-bg);color:var(--pill-work-fg);min-width:auto;white-space:nowrap}.step-row .step-num:before{content:"▶"}.step-row .step-body{flex:1}.step-row .step-body h5{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--ink)}.step-row .step-body p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.8}.safe-banner{background:var(--ok-soft);color:var(--ok);padding:12px 22px;font-size:13.5px;font-weight:700;border-bottom:1px solid rgba(21,128,61,.25);display:flex;align-items:center;gap:10px}.safe-banner:before{content:"✓";width:24px;height:24px;border-radius:50%;background:var(--ok);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;flex:0 0 24px}.qcard{padding:22px 24px;opacity:0;animation:cardIn .42s ease-out forwards}.section.active .qcard:first-child{animation-delay:.08s}.section.active .qcard:nth-child(2){animation-delay:.16s}.section.active .qcard:nth-child(3){animation-delay:.24s}.section.active .qcard:nth-child(4){animation-delay:.32s}.qcard .qhead{display:flex;align-items:center;gap:10px;margin-bottom:12px}.qcard .qnum{background:var(--primary);color:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.04em}.qcard .qtitle{font-weight:700;font-size:16.5px;color:var(--ink);line-height:1.6}.qcard .opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qcard.solo .opts{grid-template-columns:1fr}.opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--rule);border-radius:10px;background:var(--paper);cursor:pointer;transition:all .18s ease;font-size:14.5px;line-height:1.6;color:var(--ink);text-align:left;width:100%}.opt:hover{border-color:var(--primary);background:var(--primary-soft)}.opt .mark{flex:0 0 24px;width:24px;height:24px;border-radius:50%;border:1px solid var(--rule-strong);background:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);transition:all .18s ease}.opt.correct{background:var(--ok-soft);border-color:var(--ok);color:var(--ok);font-weight:700}.opt.correct .mark{background:var(--ok);border-color:var(--ok);color:#fff;animation:springBox .42s cubic-bezier(.34,1.56,.64,1)}.opt.correct .mark:before{content:"✓"}.opt.correct .mark span{display:none}.opt.wrong{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);animation:shake .32s ease-out}.opt.wrong .mark{background:var(--warn);border-color:var(--warn);color:#fff}.opt.wrong .mark:before{content:"×"}.opt.wrong .mark span{display:none}.opt.locked{pointer-events:none;opacity:.55}.opt.locked.correct,.opt.locked.wrong{opacity:1}.quiz-result{margin:24px 0 0;padding:22px 24px;display:flex;align-items:center;gap:16px}.quiz-result .score{font-weight:700;font-size:14px;letter-spacing:.03em;color:var(--ink-soft)}.quiz-result .score b{color:var(--primary);font-size:16px}.badge{display:none;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:var(--ok);color:#fff;font-weight:700;font-size:14px;animation:springBox .55s cubic-bezier(.34,1.56,.64,1);margin-left:auto}.badge.show{display:inline-flex}.badge:before{content:"✓";font-size:13px}.flow{display:flex;justify-content:space-between;align-items:center;margin-top:48px;padding-top:30px;border-top:1px solid var(--rule)}.flow-btn{display:flex;flex-direction:column;gap:4px;padding:14px 22px;text-decoration:none;transition:all .18s ease;max-width:45%}.flow-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.08)}.flow-btn small{font-size:11px;letter-spacing:.08em;color:var(--muted)}.flow-btn strong{font-weight:700;font-size:15px;color:var(--ink)}.flow-btn.next{text-align:right;align-items:flex-end;background:var(--primary);border-color:var(--primary)}.flow-btn.next small{color:hsla(0,0%,100%,.72)}.flow-btn.next strong{color:#fff}.flow-btn.disabled{opacity:.42;pointer-events:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}.handson,.kp,.name-card,.qcard,.section.active,.takeaway{opacity:1!important;transform:none!important}}@media (max-width:880px){.name-summary,.qcard .opts,.tab-row{grid-template-columns:1fr}}@media (max-width:700px){h1.sec-title{font-size:25px}.kp,.step-row,.takeaway{flex-direction:column}.flow{gap:12px}.flow-btn{max-width:none;flex:1;padding:12px}.flow-btn strong{font-size:13px}}