:root{--col:800px;--title:var(--sans);--body:var(--sans);--body-size:18px;--body-lh:1.7}
.links a.on{color:var(--ink)}

.post{max-width:var(--col);margin:0 auto;padding:72px 20px 0}
.back{display:inline-flex;align-items:center;gap:4px;margin-left:-4px;font-size:14px;color:var(--mut)}
.back:hover{color:var(--ink)}
h1.title{font-family:var(--title);font-weight:600;font-size:46px;line-height:1.1;letter-spacing:-0.03em;text-wrap:balance;margin-top:20px}
.lede{margin-top:20px;font-size:20px;line-height:1.5;color:var(--mut);letter-spacing:-0.01em;text-wrap:pretty}

.by{display:flex;align-items:center;gap:14px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.faces{display:flex}
.faces img{width:40px;height:40px;border-radius:999px;object-fit:cover;border:2px solid #fff}
.faces img+img{margin-left:-12px}
.by .who{font-size:14px;font-weight:500}
.by .when{font-size:14px;color:var(--mut);margin-top:2px}
.by .when .dot{margin:0 6px;color:var(--subtle)}

.body{margin-top:48px;font-family:var(--body);font-size:var(--body-size);line-height:var(--body-lh);color:var(--ink-2)}
.body>*+*{margin-top:22px}
.body h2{font-family:var(--title);font-size:26px;font-weight:600;letter-spacing:-0.02em;line-height:1.25;color:var(--ink);margin-top:56px}
.body h3{font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:-0.01em;color:var(--ink);margin-top:36px}
.body h2+p,.body h3+p,.body h3+ul,.body h3+ol{margin-top:14px}
.body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--strong);text-underline-offset:3px}
.body a:hover{text-decoration-color:var(--ink)}
.body .btn{text-decoration:none;color:#fff}
.body strong{color:var(--ink);font-weight:600}
.body ul,.body ol{padding-left:22px}
.body li+li{margin-top:10px}
.body blockquote{border-left:2px solid var(--accent);padding:4px 0 4px 20px;color:var(--ink);font-size:19px;line-height:1.5;letter-spacing:-0.01em}
.body blockquote cite{display:block;margin-top:10px;font-style:normal;font-size:14px;color:var(--mut)}
.body figure img{border-radius:12px;height:auto}

.person{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:start;margin-top:28px}
.person img{width:120px;height:120px;border-radius:12px;object-fit:cover}
.person p{margin:0}
@media (max-width:560px){.person{grid-template-columns:72px 1fr;gap:16px}.person img{width:72px;height:72px}}

.principle{margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.principle h3{margin-top:0;font-size:21px}
.takes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.take{background:var(--soft);border-radius:12px;padding:20px;font-size:15.5px;line-height:1.6}
.take .hd{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:13px;font-weight:500;color:var(--ink)}
.take .hd img{width:24px;height:24px;border-radius:999px;object-fit:cover}
.take>*+*{margin-top:10px}
.take ol,.take ul{padding-left:18px}
.take li+li{margin-top:4px}
@media (max-width:760px){.takes{grid-template-columns:1fr}}

.duty{margin-top:32px}
.duty>*+*{margin-top:12px}
.duty h3{margin-top:0;font-size:18px}

.box,.apply{margin-top:56px;padding:28px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.box .t,.apply .t{font-size:18px;font-weight:600;letter-spacing:-0.015em}
.box .s,.apply .s{font-size:14px;color:var(--mut);margin-top:4px}

.authors{margin-top:56px;padding-top:28px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:24px}
.author{display:flex;gap:14px;align-items:flex-start}
.author img{width:48px;height:48px;border-radius:999px;object-fit:cover;flex-shrink:0}
.author .nm{font-size:15px;font-weight:500}
.author .rl{font-size:13px;color:var(--mut);margin-top:2px;line-height:1.5}
.author .li{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:13px;color:var(--mut)}
.author .li:hover{color:var(--ink)}
@media (max-width:560px){.authors{grid-template-columns:1fr}}

@media (max-width:560px){
  .post{padding-top:48px}
  h1.title{font-size:34px}
  .lede{font-size:18px}
}

.items{margin-top:16px;border-top:1px solid var(--line)}
.body .item{text-decoration:none}
.item{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.4}
.item .t{font-weight:500;color:var(--ink);letter-spacing:-0.01em}
.item .m{color:var(--mut);font-size:14px;margin-top:4px}
.item .m .dot{margin:0 6px;color:var(--subtle)}
.item .arrow{color:var(--subtle)}
.item:hover .t{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--strong)}
.item:hover .arrow{color:var(--ink)}
.more{margin-top:56px;padding-top:28px;border-top:1px solid var(--line)}
.more .h{font-size:14px;font-weight:500;color:var(--mut)}
.more .items{margin-top:8px;border-top:0}

.diagram svg{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;box-sizing:border-box}
.d-box{fill:var(--soft);stroke:var(--line)}
.d-box.hi{fill:var(--accent-soft);stroke:var(--accent-deep);stroke-width:1.5}
.d-q{fill:#fff;stroke:var(--strong);stroke-width:1.2}
.d-num{fill:var(--accent-deep);font:600 12px ui-monospace,Menlo,monospace}
.d-title,.d-leaf{fill:var(--ink);font:600 15px Inter,system-ui,sans-serif}
.d-text{fill:var(--ink-2);font:400 12.5px Inter,system-ui,sans-serif}
.d-sub{fill:var(--mut);font:500 13px Inter,system-ui,sans-serif}
.d-lab,.d-loop{fill:var(--accent-deep);font:500 12.5px Inter,system-ui,sans-serif}
.d-arrow{stroke:var(--accent-deep);stroke-width:1.6;fill:none}
.d-head{fill:var(--accent-deep)}
.body .shot{--w:min(700px,100vw - 40px);width:var(--w);margin-left:calc((100% - var(--w))/2)}
.shot img{border:1px solid var(--line)}
@media (max-width:640px){.diagram{overflow-x:auto}.diagram svg{min-width:600px}}

.body h4{font-size:var(--body-size);font-weight:600;color:var(--ink);margin-top:28px}
.body h4+p{margin-top:8px}
.body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--soft);padding:2px 6px;border-radius:5px;color:var(--ink)}
.body pre{background:var(--soft);border-radius:12px;padding:18px 20px;font-size:14px;line-height:1.6;overflow-x:auto}
.body pre code{background:none;padding:0;font-size:inherit}
.body li>ul,.body li>ol{margin-top:8px}
.body hr{border:0;height:1px;width:96px;background:var(--strong);margin:48px auto}
.note{background:var(--soft);border-radius:12px;padding:22px 24px;font-size:16.5px;line-height:1.6}
.note .t{font-size:13px;font-weight:500;color:var(--mut);margin-bottom:8px}
.note>*+*{margin-top:10px}
.note .t+*{margin-top:0}
.note ul,.note ol{padding-left:20px}
.note.key{background:var(--accent-soft)}
.note.key .t{color:var(--accent-deep)}
.tbl{overflow-x:auto}
.body table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.5}
.body th{text-align:left;font-weight:500;color:var(--mut);font-size:14px;padding:0 16px 12px 0;border-bottom:1px solid var(--strong);vertical-align:bottom}
.body td{padding:14px 16px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
.body td:first-child,.body tbody th{color:var(--ink);font-weight:500}
.body tbody th{padding:14px 16px 14px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:15.5px}
.body th:last-child,.body td:last-child{padding-right:0}
.body td ul{padding-left:18px}.body td li+li{margin-top:4px}
.tnote,.body figcaption{margin-top:10px;font-size:13px;color:var(--mut);line-height:1.5}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:17px;font-weight:500;color:var(--ink);letter-spacing:-0.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--subtle);font-size:22px;font-weight:300;line-height:1;flex-shrink:0}
.faq details[open] summary::after{content:"\2212"}
.faq .a{padding:0 40px 20px 0;font-size:16.5px}
.faq .a>*+*{margin-top:10px}
.body .sources{font-size:14px;color:var(--mut);line-height:1.7;margin-top:48px}
.body .sources a{color:inherit;text-decoration-color:var(--line)}
.body .sources a:hover{text-decoration-color:var(--mut)}
@media (max-width:560px){.body table{font-size:14.5px}.faq summary{font-size:16px}.note{padding:18px}}
