:root{--bg: #FDFDFA;--bg2: #F2F2E6;--card: #FFFFFF;--ink: #20201F;--slab: #C9C9C4;--text: #20201F;--sub: #494947;--line: #DCDCD9;--green: #05B45B;--green-soft: #E6F8E7;--green-text: #026332;--on-green: #14231A;--accent: #B33919;--accent-soft: #FEEDEC;--code-bg: #F4F0EA;--r-box: 12px;--r-btn: 8px;--r-tag: 6px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #1A1C1A;--bg2: #232623;--card: #2A2D2A;--ink: #8C918B;--slab: #3A3E39;--text: #F2F2E6;--sub: #CFCFC9;--line: #3C403C;--green: #4FC67F;--green-soft: #1F3328;--green-text: #7ED89D;--on-green: #0B1A11;--accent: #F97C6A;--accent-soft: #3A1F1A;--code-bg: #201D18;color-scheme:dark}}:root{--font-heading: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-body: "Gen Interface JP", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans CJK JP", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.85;letter-spacing:.02em;word-break:keep-all;overflow-wrap:anywhere;line-break:strict;text-wrap:pretty}h1,h2,h3,h4,.page-title,.sec-title{font-family:var(--font-heading)}h1,h2,h3,p,ul,ol{margin:0}a{color:var(--green-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{text-decoration-thickness:3px}:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}img{max-width:100%;height:auto;display:block}.wrap{width:min(1120px,100% - 32px);margin-inline:auto}.narrow{width:min(760px,100% - 32px);margin-inline:auto}.site-head{border-bottom:2px solid var(--ink);background:var(--bg);position:sticky;top:0;z-index:10}.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap;padding-block:8px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:900;font-size:18px}.brand img{width:30px;height:30px}.brand small{font-weight:700;font-size:15px;color:var(--sub)}.nav{display:flex;gap:6px;flex-wrap:wrap}.nav a{color:var(--text);text-decoration:none;font-weight:700;font-size:15px;padding:6px 12px;border-radius:var(--r-btn);border:2px solid transparent}.nav a[aria-current=page]{border-color:var(--ink);background:var(--green);color:var(--on-green)}.nav a:hover{border-color:var(--ink)}.card{background:var(--card);border:2px solid var(--ink);border-radius:var(--r-box);box-shadow:4px 4px 0 0 var(--slab),4px 4px 0 2px var(--ink)}a.card{color:inherit;text-decoration:none;display:block;transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1)}a.card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 0 var(--slab),6px 6px 0 2px var(--ink)}a.card:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--slab),2px 2px 0 2px var(--ink)}.tag{display:inline-block;font-size:15px;font-weight:700;line-height:1.5;padding:2px 10px;border-radius:var(--r-tag);border:2px solid var(--ink);background:var(--bg2);color:var(--text);white-space:nowrap}.tag.green{background:var(--green);color:var(--on-green)}.tag.soon{background:transparent;border-color:var(--line);color:var(--sub)}.btn{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:17px;padding:12px 22px;border-radius:var(--r-btn);border:2px solid var(--ink);background:var(--green);color:var(--on-green);text-decoration:none;box-shadow:3px 3px 0 0 var(--ink)}.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 0 var(--ink)}.btn.ghost{background:var(--card);color:var(--text)}.eyebrow{font-size:15px;font-weight:700;color:var(--sub)}.crumb{font-size:15px;color:var(--sub);display:flex;gap:8px;flex-wrap:wrap;padding-top:20px}.crumb a{color:var(--sub)}.page-title{font-size:clamp(28px,4.4vw,40px);font-weight:900;line-height:1.4;letter-spacing:.01em;margin-top:8px}.lead{font-size:18px;color:var(--sub);margin-top:12px;max-width:40em}.sec-title{font-size:clamp(22px,3vw,28px);font-weight:900;line-height:1.45}.sec{margin-top:56px}.sec-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.band{margin-top:24px;border:2px solid var(--ink);border-radius:var(--r-box);overflow:hidden}.band img{width:100%;aspect-ratio:5 / 1;object-fit:cover}.grid{display:grid;gap:22px}.grid.c2{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.grid.c3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.foot{margin-top:96px;border-top:2px solid var(--ink);background:var(--bg2);padding:32px 0 40px;font-size:15px;color:var(--sub)}.foot p+p{margin-top:6px}.ilogo-w,.nb{display:inline-block}.ilogo-w--cjk{margin-inline-start:.15em}.ilogo{display:inline-block;height:1em;margin-inline-end:.25em;vertical-align:-.15em;overflow:visible}.ilogo-w>.ilogo[data-ilogo^=concept-]{width:1.2em;height:1.2em;vertical-align:-.24em}.ilogo-m{--m: #ffe566;fill:var(--m);stroke:var(--m);stroke-width:3.6}@media(prefers-color-scheme:dark){.ilogo-m{--m: #94801f}}@media(max-width:640px){.site-head{position:static}.site-head .wrap{min-height:0}.nav{width:100%}.nav a{flex:1;text-align:center;padding:6px 4px}.grid.c2,.grid.c3{grid-template-columns:1fr}.sec{margin-top:44px}.lead{font-size:17px}}
