:root{--bg:#faf7f2;--surface:#fff;--ink:#1b1815;--ink-2:#5c554d;--ink-3:#6f675e;--rule:#e9e3d9;--rule-2:#d7cfc2;--accent:#a1541a;--accent-2:#7a3e12;--accent-soft:#f7ede1;--ok:#2f6b45;color-scheme:light}
:root[data-theme=dark]{--bg:#17150f;--surface:#201d17;--ink:#efeae1;--ink-2:#a89f91;--ink-3:#948b7d;--rule:#2f2a22;--rule-2:#443d32;--accent:#dd8b3c;--accent-2:#eaab6d;--accent-soft:#2b2115;color-scheme:dark}
*{box-sizing:border-box}html{scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 "Franklin Gothic Medium","Arial Narrow",Arial,sans-serif}
h1,h2,h3,.brand b{font-family:"Arial Narrow","Franklin Gothic Medium",Arial,sans-serif;letter-spacing:-.01em;line-height:1.2}
h1{font-size:clamp(1.9rem,5vw,2.8rem);margin:.2em 0 .3em}h2{font-size:1.5rem;margin:1.8em 0 .5em}
code,.n,td,.big,dd{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-variant-numeric:tabular-nums}
a{color:var(--accent-2)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,.dot:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1040px;margin:0 auto;padding:0 18px}
header.site{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--rule-2)}
header.site .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand span{display:block;font-size:.7rem;color:var(--ink-3);text-transform:none}.brand b{font-size:1.1rem;display:block}
nav{display:flex;gap:4px 14px;flex-wrap:wrap;flex:1;font-size:.92rem}nav a{color:var(--ink-2);text-decoration:none;padding:4px 0}nav a[aria-current]{color:var(--accent-2);border-bottom:2px solid var(--accent)}
#theme{background:none;border:1px solid var(--rule-2);color:var(--ink);border-radius:8px;width:38px;height:38px;cursor:pointer}
.hero{position:relative;padding:34px 0 10px;background:radial-gradient(var(--rule-2) 1px,transparent 1px) 0 0/18px 18px;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:none}
.hero .wrap{position:relative}.hero svg.bg{position:absolute;right:10px;top:-6px;width:230px;opacity:.14;pointer-events:none}
.lede{font-size:1.15rem;color:var(--ink-2);max-width:60ch}
.card{background:var(--surface);border:1px solid var(--rule-2);border-radius:10px;padding:16px;margin:18px 0}
.tool{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.tool label{display:block;font-size:.85rem;color:var(--ink-2)}
input,select{font:inherit;padding:9px 10px;border:1px solid var(--rule-2);border-radius:8px;background:var(--bg);color:var(--ink);min-width:0}
.tool .grow{flex:1 1 200px}.tool input{width:100%}
button.primary{font:inherit;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:10px 18px;cursor:pointer}:root[data-theme=dark] button.primary{color:#17150f}
button.primary:hover{background:var(--accent-2)}
.hint{font-size:.88rem;color:var(--ink-3);margin:8px 0 0}
.res{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}@media(max-width:760px){.res{grid-template-columns:1fr}}
.big{font-size:2.6rem;line-height:1}.eq{color:var(--accent);font-family:ui-monospace,monospace;margin-left:8px}
dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:12px 0}dt{color:var(--ink-2)}dd{margin:0}
.copy{font-size:.85rem;background:none;border:1px solid var(--rule-2);color:var(--ink);border-radius:6px;padding:3px 9px;cursor:pointer;margin-left:8px}
.note{font-size:.9rem;color:var(--ink-2);border-left:3px solid var(--accent);padding-left:10px}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--rule-2);background:var(--accent-soft);color:var(--ink);border-radius:99px;padding:2px 11px;font:.85rem ui-monospace,monospace;cursor:pointer}
.ladder{overflow:hidden}.ladder svg{width:100%;height:auto;display:block}.dot{cursor:pointer;fill:none;stroke:var(--ink-2);stroke-width:1.2}.dot.sel{fill:var(--accent);stroke:var(--accent)}.lb{font:11px ui-monospace,monospace;fill:var(--ink-2);text-anchor:middle}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.tabs button{font:inherit;border:1px solid var(--rule-2);background:var(--surface);color:var(--ink);padding:6px 14px;border-radius:8px;cursor:pointer}.tabs button[aria-selected=true]{background:var(--accent);color:#fff;border-color:var(--accent)}:root[data-theme=dark] .tabs button[aria-selected=true]{color:#17150f}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:9px 10px;border-bottom:1px solid var(--rule);text-align:left}th{position:sticky;top:58px;background:var(--bg);color:var(--ink-2);font-weight:600;border-bottom:1px solid var(--rule-2)}
@media(max-width:760px){thead{display:none}table,tbody,tr,td{display:block}tr{border:1px solid var(--rule);border-radius:8px;margin:10px 0;padding:6px;background:var(--surface)}td{border:0;display:flex;justify-content:space-between;gap:12px;padding:4px 6px}td::before{content:attr(data-label);color:var(--ink-3);font-family:Arial,sans-serif}}
.ad{min-height:0}.badge{background:var(--accent-soft);color:var(--accent-2);border-radius:6px;padding:1px 8px;font-size:.8rem}
.draft{background:var(--accent-soft);border:1px solid var(--accent);padding:10px;border-radius:8px}
footer{border-top:1px solid var(--rule-2);margin-top:50px;padding:20px 0;font-size:.9rem;color:var(--ink-2)}footer a{margin-right:14px}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}
nav.lang{flex:0 0 auto;position:relative}nav.lang summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--rule-2);border-radius:6px;font-size:.8rem;font-weight:600;background:var(--surface);color:var(--ink)}nav.lang summary::-webkit-details-marker{display:none}nav.lang summary::after{content:"\25be";font-size:.68rem;opacity:.65}nav.lang[open] summary,nav.lang summary:hover{border-color:var(--accent);color:var(--accent)}nav.lang ul{position:absolute;right:0;top:calc(100% + 6px);z-index:60;list-style:none;margin:0;padding:6px;min-width:10.5rem;background:var(--surface);border:1px solid var(--rule-2);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.13)}nav.lang ul a{display:block;padding:7px 10px;border-radius:5px;font-size:.85rem;color:var(--ink-2);white-space:nowrap}nav.lang ul a:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}nav.lang ul a[aria-current]{color:var(--accent);font-weight:700}
:lang(ja){font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.85}:lang(ja) h1,:lang(ja) h2,:lang(ja) h3,:lang(ja) .brand b{font-family:inherit;letter-spacing:0}
