:root{color-scheme:light;--bg: #f5f6fa;--bg-soft: #eceef4;--surface: #ffffff;--surface-2: #f9fafc;--ink: #151821;--ink-soft: #4a5165;--ink-faint: #7f879a;--line: #e2e5ee;--line-soft: #eceff5;--edge: #d8dce6;--shadow-card: 0 2px 0 var(--edge);--shadow-lift: 0 5px 0 var(--edge);--outline: #1b1f2a;--radius: 16px;--radius-sm: 10px;--radius-pill: 999px;--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", system-ui, sans-serif;--w-page: 72rem;--w-prose: 44rem;--header-h: 3.75rem;--gutter: clamp(1rem, 4vw, 2rem);--good: #13a35a;--bad: #e5484d;--c-base: #f2711c;--paper: var(--bg);--paper-soft: var(--bg-soft);--card: var(--surface)}:root:lang(ja){--font-sans: "Pretendard Variable", Pretendard, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", system-ui, sans-serif}[data-cat=science]{--c-base: #2f6bff}[data-cat=economy]{--c-base: #0c9f68}[data-cat=common]{--c-base: #f2711c}[data-cat=tech]{--c-base: #7c4dff}:root,[data-cat]{--c: var(--c-base);--c-deep: color-mix(in oklab, var(--c-base) 72%, black);--c-soft: color-mix(in oklab, var(--c-base) 13%, white);--c-softer: color-mix(in oklab, var(--c-base) 6%, white);--c-line: color-mix(in oklab, var(--c-base) 32%, transparent);--svg-bg: var(--c-softer);--svg-primary: var(--c-base);--svg-secondary: #f59f00;--svg-accent: #e5484d;--svg-ink: #1b1f2a;--svg-muted: #9aa1b3;--svg-surface: #ffffff;--svg-halo: var(--surface);--art-muted: #9aa1b3;--art-accent: #f59f00}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1016;--bg-soft: #141720;--surface: #171a23;--surface-2: #1c2029;--ink: #e9ebf2;--ink-soft: #b4bacb;--ink-faint: #7f8699;--line: #292e3b;--line-soft: #20242f;--edge: #07080c;--shadow-card: 0 2px 0 var(--edge);--shadow-lift: 0 5px 0 var(--edge);--outline: #d9dce6;--good: #3ecf82;--bad: #ff6b70}:root[data-theme=dark],:root[data-theme=dark] [data-cat]{--c: color-mix(in oklab, var(--c-base) 82%, white);--c-deep: color-mix(in oklab, var(--c-base) 50%, white);--c-soft: color-mix(in oklab, var(--c-base) 22%, var(--surface));--c-softer: color-mix(in oklab, var(--c-base) 10%, var(--surface));--c-line: color-mix(in oklab, var(--c-base) 45%, transparent);--svg-bg: color-mix(in oklab, var(--c-base) 12%, #161922);--svg-primary: color-mix(in oklab, var(--c-base) 86%, white);--svg-secondary: #ffb224;--svg-accent: #ff6369;--svg-ink: #e6e8ef;--svg-muted: #737b8f;--svg-surface: #242937;--art-muted: #6f778a;--art-accent: #ffb224}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.85;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere}img,svg{max-width:100%;height:auto}a{color:var(--c-deep);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--c)}h1,h2,h3{font-weight:800;line-height:1.4;letter-spacing:-.025em}::selection{background:var(--c-soft)}.container{max-width:var(--w-page);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.site-header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:50}.site-header .container{display:flex;align-items:center;gap:1.25rem;min-height:3.75rem}.brand{font-weight:900;font-size:1.4rem;text-decoration:none;color:var(--ink);letter-spacing:-.03em;display:flex;align-items:baseline;gap:.15rem}.brand .bang{color:#ca5f14}.brand .ko{font-size:.72rem;font-weight:600;color:var(--ink-faint);margin-left:.4rem;letter-spacing:.08em}.site-nav{display:flex;gap:.25rem;margin-left:auto;align-items:center}.site-nav a{text-decoration:none;color:var(--ink-soft);font-size:.92rem;font-weight:600;padding:.35rem .65rem;border-radius:999px}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--nav-c, var(--ink));background:var(--bg-soft)}.nav-search{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.3rem .85rem;color:var(--ink-faint)!important;font-weight:500!important}.nav-search svg{width:.95rem;height:.95rem}.theme-toggle{flex:none;width:2.2rem;height:2.2rem;display:grid;place-items:center;padding:0;cursor:pointer;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink-soft);transition:color .15s,border-color .15s,transform .3s}.theme-toggle:hover{color:var(--ink);border-color:var(--ink-faint)}.theme-toggle:active{transform:rotate(-25deg)}.theme-toggle span{display:none;line-height:0}.theme-toggle svg{width:1.05rem;height:1.05rem}.theme-toggle .i-moon{display:block}:root[data-theme=dark] .theme-toggle .i-moon{display:none}:root[data-theme=dark] .theme-toggle .i-sun{display:block}html:not(.js) .theme-toggle{display:none}@media(max-width:720px){.site-nav a:not(.nav-search){display:none}}.cat-icon{display:inline-block;flex:none;line-height:0}.cat-icon>svg{width:100%;height:100%;display:block}.article{max-width:var(--w-prose);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.em{font-weight:700;font-style:normal;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--c) 65%,transparent);text-decoration-thickness:2.5px;text-underline-offset:5px}.wikilink{color:var(--c-deep);font-weight:600;text-decoration:none;border-bottom:1.5px dashed color-mix(in srgb,var(--c) 55%,transparent);padding-bottom:1px}.wikilink:hover{background:var(--c-softer);border-bottom-style:solid}figure.diagram{margin:1.6rem 0 0;padding:1.3rem 1.2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}figure.diagram svg{display:block;width:100%;height:auto}.feedback{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .8rem;margin:2.2rem 0;padding:.95rem 1.15rem;background:var(--paper-soft);border:1px solid var(--line-soft);border-radius:var(--radius);font-size:.92rem;color:var(--ink-soft)}.feedback .q{font-weight:600;color:var(--ink)}.feedback .btns{display:inline-flex;gap:.45rem;margin-left:auto}.feedback button{border:1px solid var(--line);border-radius:999px;background:var(--card);padding:.38rem .9rem;font:inherit;font-size:.88rem;font-weight:600;color:var(--ink-soft);cursor:pointer}.feedback button{display:inline-flex;align-items:center;gap:.4rem;transition:border-color .15s,color .15s,background .15s}.feedback .fb-ic{display:inline-flex;line-height:0}.feedback .fb-ic svg{width:1.05rem;height:1.05rem}.feedback .fb-ic.is-down svg{transform:scale(-1)}.feedback [data-vote=up]:hover{border-color:var(--good);color:var(--good);background:color-mix(in oklab,var(--good) 8%,var(--surface))}.feedback [data-vote=down]:hover{border-color:var(--bad);color:var(--bad);background:color-mix(in oklab,var(--bad) 7%,var(--surface))}.feedback[data-done] .btns{display:none}.feedback .thanks{margin-left:auto;font-weight:600;color:var(--c-deep)}@media(max-width:560px){.feedback .q{flex-basis:100%}.feedback .btns,.feedback .thanks{margin-left:0}}.share{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .7rem;margin-top:2.4rem;padding:1.4rem 0;border-top:1px solid var(--line-soft);font-size:.88rem;color:var(--ink-faint)}.share-btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:999px;background:var(--card);padding:.42rem .95rem;font:inherit;font-size:.85rem;font-weight:600;color:var(--ink-soft);text-decoration:none;cursor:pointer}.share-btn:hover{border-color:var(--c);color:var(--c-deep)}.share-btn svg{width:1rem;height:1rem;flex:none}.article-foot{padding:0 0 3rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;font-size:.82rem;color:var(--ink-faint)}.article-foot .dates{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem}.article-foot .dates b{color:var(--ink-soft);font-weight:600}.site-footer{border-top:1px solid var(--line);background:var(--paper-soft);padding-block:2.2rem 5.5rem;font-size:.86rem;color:var(--ink-soft)}.site-footer .cols{display:flex;flex-wrap:wrap;gap:2.5rem;justify-content:space-between}.site-footer .about{max-width:30rem}.site-footer .about p{margin:.6rem 0 0;line-height:1.8}.site-footer .brand{font-size:1.2rem}.site-footer nav{display:flex;flex-direction:column;gap:.35rem}.site-footer nav a{width:fit-content}.site-footer .lang-switch{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.45rem}.site-footer .lang-switch .label{font-size:.75rem;font-weight:700;letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase}.site-footer .lang-switch a{border:1px solid var(--line);border-radius:999px;padding:.2rem .75rem;font-size:.85rem;background:var(--card)}.site-footer .lang-switch a:hover{border-color:var(--ink-faint);text-decoration:none}.site-footer .lang-switch a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}.site-footer .lang-switch a[aria-current]:hover{color:var(--bg)}.site-footer a{color:var(--ink-soft);text-decoration:none}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer .fine{margin-top:1.6rem;font-size:.78rem;color:var(--ink-faint)}.site-footer .zz-family{margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--line, rgba(0, 0, 0, .08));display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;font-size:.8rem}.site-footer .zz-family a{width:auto}.site-footer .zz-family .root{font-weight:600;letter-spacing:.04em}.site-footer .zz-family ul{display:contents;list-style:none;margin:0;padding:0}.site-footer .zz-family a[aria-current]{color:var(--ink);font-weight:600}.diagram svg text,.art svg text{font-family:var(--font-sans)}.viz-js [data-viz]:not([data-play]) .a{opacity:0}[data-viz] .a{transform-box:fill-box;transform-origin:center}[data-viz] .a-bar{transform-origin:50% 100%}[data-viz] .a-text,[data-viz] .a-label,[data-viz] .a-title{transform-origin:50% 50%}[data-play] .a{animation:var(--anim)}[data-play] .a-bg{--anim: viz-fade .5s ease-out var(--d) both}[data-play] .a-title{--anim: viz-drop .5s cubic-bezier(.2, .8, .3, 1) var(--d) both}[data-play] .a-panel{--anim: viz-panel .55s cubic-bezier(.2, .8, .3, 1) var(--d) both}[data-play] .a-box,[data-play] .a-obj{--anim: viz-pop .5s cubic-bezier(.3, 1.45, .5, 1) var(--d) both}[data-play] .a-shape{--anim: viz-soft-pop .5s cubic-bezier(.3, 1.3, .5, 1) var(--d) both}[data-play] .a-dot,[data-play] .a-head{--anim: viz-pop .42s cubic-bezier(.3, 1.6, .5, 1) var(--d) both}[data-play] .a-bar{--anim: viz-grow .7s cubic-bezier(.25, 1.2, .4, 1) var(--d) both}[data-play] .a-draw{stroke-dasharray:1;--anim: viz-draw .6s cubic-bezier(.4, 0, .2, 1) var(--d) both}[data-play] .a-fade-line{--anim: viz-fade .45s ease-out var(--d) both}[data-play] .a-label,[data-play] .a-text{--anim: viz-rise .45s ease-out var(--d) both}[data-play] :is(.a-box,.a-dot,.a-shape,.a-obj).a-accent{animation:var(--anim),viz-beat .7s ease-in-out calc(var(--d) + .9s) 1 none}@keyframes viz-fade{0%{opacity:0}to{opacity:1}}@keyframes viz-drop{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes viz-panel{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes viz-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes viz-soft-pop{0%{opacity:0;transform:scale(.82)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes viz-grow{0%{opacity:.3;transform:scaleY(0)}to{opacity:1;transform:none}}@keyframes viz-draw{0%{opacity:1;stroke-dashoffset:1}to{opacity:1;stroke-dashoffset:0}}@keyframes viz-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes viz-beat{0%,to{transform:none}40%{transform:scale(1.12)}70%{transform:scale(.98)}}[data-play].art-live .a[stroke^="var(--c)"],[data-play].art-live .a[fill^="var(--c)"]{animation:var(--anim),viz-breathe 3.8s ease-in-out calc(var(--d) + 1.8s) infinite none}@keyframes viz-breathe{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){[data-viz] .a{animation:none!important}}@media print{[data-viz] .a{animation:none!important;opacity:1!important}.viz-ctrl{display:none!important}}:root[data-theme=dark] .diagram svg :is(rect,circle,ellipse,path,polygon):is([fill="#ffffff" i],[fill="#fff" i],[fill=white i]){fill:var(--svg-surface)}:root[data-theme=dark] .diagram svg :is(rect,circle,ellipse,path,polygon):is([fill^="#fe" i],[fill^="#fd" i],[fill^="#db" i],[fill^="#e0" i],[fill^="#ef" i]){fill:var(--svg-bg)}.diagram{position:relative}.diagram .svg{line-height:0}.diagram .svg>svg{display:block;width:100%;height:auto;overflow:visible}figure.diagram[data-viz]{padding-bottom:3rem}.viz-ctrl{position:absolute;bottom:.55rem;right:.7rem;display:none;gap:.3rem;z-index:1}.js .viz-ctrl{display:flex}.viz-ctrl button{width:2.1rem;height:2.1rem;display:grid;place-items:center;padding:0;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:50%;color:var(--ink-soft);opacity:.6;transition:opacity .15s,color .15s,border-color .15s}.viz-ctrl svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.diagram:hover .viz-ctrl button,.viz-ctrl button:focus-visible{opacity:1}.viz-ctrl button:hover{color:var(--c-deep);border-color:var(--c-line)}html:not(.viz-js) [data-viz-replay]{display:none}@media(hover:none){.viz-ctrl button{opacity:.9}}.viz-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--bg);color:var(--ink)}.viz-dialog::backdrop{background:#0a0c148c}.viz-dialog .stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,1180px);margin:0;padding:1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.viz-dialog.rot .stage{padding:.5rem;width:min(calc(100dvh - 5rem),calc((100vw - 2rem)*1.75));transform:translate(-50%,-50%) rotate(90deg)}.viz-dialog .stage .svg>svg{width:100%;height:auto;display:block}.viz-dialog .close{position:absolute;top:.8rem;right:.8rem;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer}
