:root{--ink: #21303b;--ink-soft: #54636e;--line: #e3e9ef;--bg: #ffffff;--bg-soft: #f4f7fb;--brand: #2b6cb0;--brand-dark: #234e7d;--brand-soft: #e9f1fb;--accent: #ef8a3c;--accent-soft: #fdf0e4;--why: #7c5cbf;--why-soft: #f1ecfb;--ok: #2f9e6b;--ok-soft: #e6f6ee;--warn: #d64545;--warn-soft: #fbe9e9;--radius: 14px;--radius-sm: 10px;--shadow: 0 2px 10px rgba(33, 48, 59, .06);--shadow-md: 0 6px 24px rgba(33, 48, 59, .1);--maxw: 760px;--maxw-wide: 1080px;--font: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", Meiryo, system-ui, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:76px}.jump{display:block;height:0;overflow:hidden}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.8;font-size:clamp(15.5px,4.1vw,17px);letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:var(--brand-dark);text-underline-offset:2px}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(16px,5vw,24px)}.container-wide{max-width:var(--maxw-wide)}.site-header{position:sticky;top:0;z-index:50;background:#ffffffeb;backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line)}.site-header .bar{max-width:var(--maxw-wide);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(16px,5vw,24px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand .logo{width:36px;height:36px;flex:0 0 36px;border-radius:9px;background:linear-gradient(150deg,#2b2b2b,#0a0a0a);border:1px solid #b3872880;box-shadow:0 2px 7px #00000047,inset 0 1px #ffffff1a,inset 0 0 0 1px #d4af371f;display:grid;place-items:center}.brand .logo .g{font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:1.18rem;line-height:1;background:linear-gradient(135deg,#fbf1b0,#d4af37 28%,#f7e98e 50%,#b8860b 74%,#e8c668);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 rgba(0,0,0,.25))}.brand-name{font-weight:800;font-size:1.02rem;letter-spacing:.015em;color:#1a1a1a;white-space:nowrap}.brand-name small{display:block;font-weight:600;font-size:.62rem;letter-spacing:.04em;background:linear-gradient(135deg,#b8860b,#d4af37 50%,#9c7a33);-webkit-background-clip:text;background-clip:text;color:transparent}.nav{display:flex;gap:4px}.nav a{font-size:.9rem;font-weight:700;color:var(--ink-soft);text-decoration:none;padding:8px 12px;border-radius:999px;white-space:nowrap}.nav a:hover{background:var(--bg-soft);color:var(--brand-dark)}@media(max-width:560px){.nav a:not(.is-key){display:none}}.site-footer{margin-top:64px;background:var(--bg-soft);border-top:1px solid var(--line)}.site-footer .inner{max-width:var(--maxw-wide);margin-inline:auto;padding:32px clamp(16px,5vw,24px);display:grid;gap:20px}.site-footer a{color:var(--ink-soft);text-decoration:none;font-size:.9rem}.site-footer a:hover{color:var(--brand-dark)}.foot-links{display:flex;flex-wrap:wrap;gap:8px 20px}.foot-fine{color:var(--ink-soft);font-size:.8rem}.breadcrumb{font-size:.8rem;color:var(--ink-soft);padding:14px 0 4px;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.breadcrumb a{color:var(--ink-soft);text-decoration:none}.breadcrumb a:hover{color:var(--brand-dark);text-decoration:underline}.breadcrumb .sep{opacity:.5}.prose h1{font-size:clamp(1.5rem,6.4vw,2rem);line-height:1.35;font-weight:800;margin:6px 0 4px;letter-spacing:.01em}.prose h2{font-size:clamp(1.22rem,5.2vw,1.5rem);line-height:1.4;font-weight:800;margin:44px 0 14px;padding-left:12px;border-left:5px solid var(--brand)}.prose h3{font-size:clamp(1.06rem,4.4vw,1.2rem);font-weight:800;margin:28px 0 10px}.prose p{margin:16px 0}.prose ul,.prose ol{margin:14px 0;padding-left:1.5em}.prose li{margin:10px 0;line-height:1.95}.prose li .katex,.prose p .katex{padding-block:2px}.prose strong{font-weight:800}.prose mark{background:var(--accent-soft);padding:.05em .25em;border-radius:4px}.prose table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.95em}.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:center}.prose th{background:var(--bg-soft)}.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}.prose .katex-display{overflow-x:auto;overflow-y:hidden;margin:1.6em 0;padding:12px 4px}.prose .katex-display+.katex-display{margin-top:1.1em}.lesson-lead{color:var(--ink-soft);font-size:1.02em;margin:10px 0 4px}.callout{border-radius:var(--radius);padding:16px 18px;margin:22px 0;border:1px solid var(--line);background:var(--bg-soft)}.callout>.c-title{display:flex;align-items:center;gap:8px;font-weight:800;margin:0 0 6px;font-size:1.02em}.callout>.c-title .ic{width:26px;height:26px;flex:0 0 26px;border-radius:8px;display:grid;place-items:center;font-size:.95em;color:#fff}.callout>:last-child{margin-bottom:0}.callout p:first-of-type{margin-top:4px}.callout.goal{background:var(--brand-soft);border-color:#cfe0f5}.callout.goal .ic{background:var(--brand)}.callout.steps{background:var(--accent-soft);border-color:#f6d8bd}.callout.steps .ic{background:var(--accent)}.callout.steps ol{counter-reset:step;list-style:none;padding-left:0;margin:8px 0 0}.callout.steps ol>li{position:relative;padding:10px 12px 10px 46px;margin:8px 0;background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow)}.callout.steps ol>li:before{counter-increment:step;content:counter(step);position:absolute;left:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;display:grid;place-items:center;font-size:.9em}.callout.why{background:var(--why-soft);border-color:#ddd1f3}.callout.why .ic{background:var(--why)}.callout.mistake{background:var(--warn-soft);border-color:#f3cccc}.callout.mistake .ic{background:var(--warn)}.callout.tip{background:var(--ok-soft);border-color:#c8ecd8}.callout.tip .ic{background:var(--ok)}.callout.parent{background:#fff8ec;border-color:#f0e0c0}.callout.parent .ic{background:#c98a26}.callout.note{background:var(--bg-soft)}.callout.note .ic{background:var(--ink-soft)}.compare{display:grid;gap:10px;margin:8px 0 0}@media(min-width:560px){.compare{grid-template-columns:1fr 1fr}}.compare .box{border-radius:var(--radius-sm);padding:12px 14px;background:#fff;border:1px solid var(--line)}.compare .box.bad{border-color:#f1c4c4}.compare .box.good{border-color:#bfe6cf}.compare .box .lbl{font-weight:800;font-size:.85em;margin-bottom:4px;display:inline-block;padding:2px 8px;border-radius:999px}.compare .box.bad .lbl{background:var(--warn-soft);color:var(--warn)}.compare .box.good .lbl{background:var(--ok-soft);color:var(--ok)}.tsumazuki{border:1px solid #f0d8bd;background:linear-gradient(180deg,#fffaf3,#fff);border-radius:var(--radius);padding:16px 18px;margin:22px 0}.tsumazuki .t-title{font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:4px}.tsumazuki .t-title .ic{font-size:1.2em}.t-title .ic-sena{width:40px;height:40px;flex:0 0 40px;border-radius:50%;border:2px solid #fff;box-shadow:var(--shadow);object-fit:cover;background:#fff}.tsumazuki .t-sub{color:var(--ink-soft);font-size:.88em;margin:2px 0 12px}.tsumazuki ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.tsumazuki a.chip{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;text-decoration:none;color:var(--ink);font-weight:700;box-shadow:var(--shadow);transition:transform .08s ease,border-color .15s;min-height:48px}.tsumazuki a.chip:hover{border-color:var(--accent);transform:translateY(-1px)}.tsumazuki a.chip .arw{margin-left:auto;color:var(--accent);font-weight:800}.tsumazuki a.chip .q{font-size:1.05em}.practice{border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:var(--radius-sm);padding:16px 18px;margin:16px 0;background:#fff}.practice .p-head{font-weight:800;color:var(--brand-dark);margin-bottom:6px;font-size:.95em}.practice ol,.practice ul{margin:12px 0;padding-left:1.7em}.practice li{margin:18px 0;line-height:2.2}.practice li:first-child{margin-top:6px}.practice li::marker{font-weight:700;color:var(--ink-soft)}.practice details li{margin:22px 0}.practice li .katex{padding:3px 0}.practice details{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px}.practice details>summary{cursor:pointer;font-weight:800;color:var(--brand-dark);list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:40px}.practice details>summary::-webkit-details-marker{display:none}.practice details>summary:before{content:"▶";font-size:.7em;transition:transform .15s}.practice details[open]>summary:before{transform:rotate(90deg)}.dialog{display:flex;gap:10px;margin:14px 0;align-items:flex-start}.dialog .face{flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--why));color:#fff;display:grid;place-items:center;font-weight:800}.dialog .bubble{background:var(--brand-soft);border:1px solid #cfe0f5;border-radius:4px 14px 14px;padding:10px 14px;flex:1}.dialog .bubble>:last-child{margin-bottom:0}.toc{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin:22px 0}.toc .toc-h{font-weight:800;font-size:.9em;color:var(--ink-soft);margin-bottom:6px}.toc ol{margin:0;padding-left:1.2em}.toc a{color:var(--brand-dark);text-decoration:none}.toc a:hover{text-decoration:underline}.relnav{margin:28px 0}.relnav>div{margin-bottom:12px}.relnav .card{display:block;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;text-decoration:none;color:var(--ink);background:#fff;box-shadow:var(--shadow);transition:border-color .15s,transform .08s}.relnav .card:last-child{margin-bottom:0}.relnav .card:hover{border-color:var(--brand);transform:translateY(-1px)}.relnav .card .kicker{display:block;font-size:.74em;font-weight:800;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:6px}.relnav .card.prev .kicker{color:var(--why)}.relnav .card.next .kicker{color:var(--accent)}.relnav .card .ttl{display:block;font-weight:800;font-size:1.05em;line-height:1.5}.relnav .card .note{display:block;font-size:.85em;color:var(--ink-soft);margin-top:6px;line-height:1.6}.relnav .grp-label{display:block;font-size:.8em;font-weight:800;color:var(--ink-soft);margin-bottom:4px}.summary-box{background:linear-gradient(180deg,#fef6ec,#fff);border:1px solid #f0d8bd;border-radius:var(--radius);padding:18px 20px;margin:28px 0}.summary-box .s-title{font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:8px}.summary-box ul{margin:0;padding-left:1.2em}.summary-box li{margin:6px 0}.card-grid{display:grid;gap:14px;margin:20px 0}@media(min-width:600px){.card-grid.cols-2{grid-template-columns:1fr 1fr}}.lesson-card{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;text-decoration:none;color:var(--ink);background:#fff;box-shadow:var(--shadow);transition:transform .08s,border-color .15s,box-shadow .15s}.lesson-card:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow-md)}.lesson-card .num{font-size:.74em;font-weight:800;color:var(--accent);letter-spacing:.04em}.lesson-card .ttl{font-weight:800;font-size:1.05em}.lesson-card .desc{font-size:.88em;color:var(--ink-soft)}.hero{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 17% 18%,rgba(86,213,255,.26) 0 8%,transparent 26%),radial-gradient(circle at 82% 12%,rgba(215,176,96,.24) 0 7%,transparent 24%),linear-gradient(118deg,#fffffff5,#f4fafff5 36%,#e9f1f8fa 64%,#f8f4ebf0),linear-gradient(180deg,#fff,#eef6fb);border-bottom:1px solid rgba(204,219,232,.86);box-shadow:inset 0 -1px #ffffffe6}.hero:before,.hero:after{content:"";position:absolute;inset:-18%;z-index:-1;pointer-events:none}.hero:before{background:radial-gradient(ellipse at 34% 34%,rgba(82,211,250,.16) 0 18%,rgba(255,255,255,.52) 38%,transparent 64%),radial-gradient(ellipse at 72% 50%,rgba(212,174,94,.14) 0 15%,rgba(255,255,255,.42) 34%,transparent 60%),linear-gradient(0deg,transparent 0 calc(100% - 1px),rgba(24,127,168,.055) calc(100% - 1px) 100%),linear-gradient(90deg,transparent 0 calc(100% - 1px),rgba(176,140,72,.055) calc(100% - 1px) 100%);background-size:100% 100%,100% 100%,42px 42px,112px 112px;opacity:.76;animation:hero-news-scan 24s ease-in-out infinite}.hero:after{background:radial-gradient(circle at 26% 34%,rgba(31,167,211,.18) 0 3px,transparent 4px),radial-gradient(circle at 64% 66%,rgba(190,151,76,.18) 0 2px,transparent 3px),radial-gradient(ellipse at 47% 42%,rgba(78,199,235,.15) 0 16%,rgba(255,255,255,.48) 35%,transparent 62%);background-size:180px 180px,240px 240px,100% 100%;filter:blur(.25px);opacity:.68;transform:translate3d(-1%,0,0);animation:hero-news-glow 16s ease-in-out infinite}@keyframes hero-news-scan{0%{background-position:-1% 0,1% 0,0 0,0 0}50%{background-position:1% -1%,-1% 1%,0 12px,28px 0}to{background-position:-1% 0,1% 0,0 0,0 0}}@keyframes hero-news-glow{0%,to{background-position:0 0,0 0,0 0;opacity:.68;transform:translate3d(-1%,0,0) scale(1)}50%{background-position:36px -28px,-42px 38px,0 0;opacity:.88;transform:translate3d(1.25%,-.55%,0) scale(1.025)}}@media(prefers-reduced-motion:reduce){.hero:before,.hero:after{animation:none}}.hero .inner{position:relative;z-index:1;max-width:var(--maxw-wide);margin-inline:auto;padding:clamp(32px,7vw,64px) clamp(16px,5vw,24px);display:grid;gap:clamp(20px,4vw,40px);align-items:center;text-align:center}.hero-copy h1{font-size:clamp(1.7rem,7vw,2.6rem);line-height:1.3;font-weight:800;margin:0 0 12px}.hero-copy p{color:var(--ink-soft);font-size:clamp(1rem,4.4vw,1.12rem);margin:0 auto 22px;max-width:34em}.hero-art img{width:100%;max-width:520px;margin-inline:auto;border-radius:20px;box-shadow:var(--shadow-md)}.hero .pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.hero .pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.84em;font-weight:700;color:var(--ink-soft);box-shadow:var(--shadow)}@media(min-width:820px){.hero .inner{grid-template-columns:1.05fr .95fr;text-align:left}.hero-copy p{margin-left:0}.hero-copy .pills{justify-content:flex-start}.hero-art{order:2}}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand);color:#fff;text-decoration:none;font-weight:800;padding:12px 22px;border-radius:999px;box-shadow:var(--shadow);min-height:48px}.btn:hover{background:var(--brand-dark);color:#fff}.btn.outline{background:#fff;color:var(--brand-dark);border:1.5px solid var(--brand)}.section-title{font-size:clamp(1.3rem,5.4vw,1.6rem);font-weight:800;margin:36px 0 6px}.section-sub{color:var(--ink-soft);margin:0 0 8px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.tag{font-size:.76em;background:var(--bg-soft);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:3px 10px}.yougo-list{margin:18px 0;display:grid;gap:12px}.yougo-item{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;background:#fff;box-shadow:var(--shadow)}.yougo-item dt{font-weight:800;font-size:1.08em;margin:0 0 4px}.yougo-item dt a{color:var(--brand-dark);text-decoration:none}.yougo-item dt a:hover{text-decoration:underline}.yougo-item dt .yomi{font-weight:600;font-size:.8em;color:var(--ink-soft)}.yougo-item dd{margin:0;color:var(--ink);font-size:.95em;line-height:1.7}.talk{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:start;margin:16px 0}.talk-teacher{grid-template-columns:minmax(0,1fr) 52px}.talk-avatar{width:52px;height:52px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:var(--shadow)}.talk-teacher .talk-avatar{grid-column:2}.talk-body{position:relative;padding:12px 15px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.talk-teacher .talk-body{grid-column:1;grid-row:1}.talk-student .talk-body{background:#ffeee9;border-color:#f6c8bf}.talk-teacher .talk-body{background:var(--brand-soft);border-color:#cfe0f5}.talk-body>:last-child{margin-bottom:0}.talk-body p{margin:4px 0}.talk-body p:first-of-type{margin-top:2px}.talk-body:before,.talk-body:after{position:absolute;top:18px;width:0;height:0;content:""}.talk-student .talk-body:before{left:-12px;border-top:9px solid transparent;border-right:12px solid #f6c8bf;border-bottom:9px solid transparent}.talk-student .talk-body:after{left:-10px;border-top:8px solid transparent;border-right:11px solid #ffeee9;border-bottom:8px solid transparent}.talk-teacher .talk-body:before{right:-12px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:12px solid #cfe0f5}.talk-teacher .talk-body:after{right:-10px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:11px solid var(--brand-soft)}.talk-name{display:block;font-weight:800;font-size:.82em;color:var(--ink-soft);margin-bottom:2px}.talk-student .talk-name{color:#c2563f}.talk-teacher .talk-name{color:var(--brand-dark)}.quiz{border:2px solid #cfe0f5;background:linear-gradient(180deg,#f3f8fe,#fff);border-radius:var(--radius);padding:18px 18px 16px;margin:26px 0}.quiz-head{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--brand-dark);margin:0 0 10px;font-size:1.02em}.quiz-head .quiz-ic{width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:.85em}.quiz-q{font-weight:700;font-size:1.06em;margin:4px 0 14px;line-height:1.7}.quiz-options{display:grid;gap:10px}@media(min-width:520px){.quiz-options{grid-template-columns:1fr 1fr}}.quiz-opt{font:inherit;text-align:left;background:#fff;border:2px solid var(--line);border-radius:var(--radius-sm);padding:13px 16px;min-height:52px;cursor:pointer;font-weight:700;color:var(--ink);transition:border-color .12s,transform .06s,background .12s;box-shadow:var(--shadow)}.quiz-opt:hover:not(:disabled){border-color:var(--brand);transform:translateY(-1px)}.quiz-opt:disabled{cursor:default;opacity:.85;box-shadow:none}.quiz-opt.is-correct{background:var(--ok-soft);border-color:var(--ok);color:#1c6b46}.quiz-opt.is-wrong{background:var(--warn-soft);border-color:var(--warn);color:#9e2c2c}.quiz-feedback{margin-top:14px;padding:12px 14px;border-radius:var(--radius-sm);font-size:.96em;line-height:1.75}.quiz-feedback.ok{background:var(--ok-soft);border:1px solid #bfe6cf}.quiz-feedback.ng{background:var(--warn-soft);border:1px solid #f1c4c4}.quiz-actions{margin-top:12px}.quiz-retry{font:inherit;font-weight:800;font-size:.9em;background:#fff;border:1.5px solid var(--brand);color:var(--brand-dark);border-radius:999px;padding:9px 18px;min-height:44px;cursor:pointer}.quiz-retry:hover{background:var(--brand-soft)}.prose svg{max-width:100%;height:auto}.prose svg[role=img]{display:block;width:100%!important;max-width:600px!important;height:auto!important;margin:22px auto!important}.katex-display{max-width:100%}.quiz-q{overflow-x:auto}.prose table{display:block;overflow-x:auto;white-space:nowrap}@media(max-width:480px){.katex{font-size:.95em}.brand-name{font-size:.92rem}.brand-name small{display:none}.site-header .bar{gap:8px}.prose table{font-size:.84em}.practice details ol{list-style-position:inside;padding-left:.3em}.practice details li{overflow-x:auto}}
