:root{--ink:#16233b;--paper:#fffaf0;--white:#fff;--cyan:#55d9d1;--yellow:#ffd35a;--coral:#ff7b69;--muted:#667087;--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.8;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(22,35,59,.09) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,black,transparent 85%);z-index:-1}
a{color:inherit}
.site-header{height:88px;max-width:var(--max);margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:13px;color:var(--ink);font-size:21px;font-weight:900;text-decoration:none}
.brand-mark{display:flex;gap:4px;transform:rotate(-3deg)}
.brand-mark i{font-style:normal;width:31px;height:35px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:8px;background:var(--yellow);font:900 16px ui-monospace,monospace;box-shadow:3px 3px 0 var(--ink)}
.brand-mark i+i{background:var(--cyan);transform:translateY(4px)}
.header-cta{padding:9px 16px;border:2px solid var(--ink);border-radius:999px;background:var(--cyan);font-size:14px;font-weight:900;text-decoration:none;box-shadow:3px 3px 0 var(--ink)}
.article-shell{width:min(780px,calc(100% - 40px));margin:45px auto 110px}
.breadcrumb{margin:0 0 30px;color:var(--muted);font-size:14px;font-weight:750}
.breadcrumb a{text-underline-offset:3px}
.article-hero{padding:54px 58px;border:3px solid var(--ink);border-radius:26px;background:var(--white);box-shadow:10px 10px 0 var(--cyan)}
.eyebrow{display:inline-block;margin:0 0 20px;padding:5px 11px;border-radius:99px;background:var(--ink);color:var(--white);font:900 12px ui-monospace,monospace;letter-spacing:.13em}
h1{margin:0;font-size:clamp(38px,6vw,62px);line-height:1.2;letter-spacing:-.045em;font-weight:950}
h1{text-wrap:balance;line-break:strict}.keep-together{white-space:nowrap}
.article-lead{margin:28px 0 0;color:#4d5870;font-size:19px;font-weight:700}
.article-meta{margin:18px 0 0;color:var(--muted);font-size:13px;font-weight:700}
.article-body{padding:58px 10px 0;font-size:17px}
.article-body h2{margin:68px 0 18px;font-size:clamp(28px,4vw,38px);line-height:1.35;letter-spacing:-.025em}
.article-body h2:before{content:"";display:block;width:46px;height:8px;margin-bottom:14px;border:2px solid var(--ink);border-radius:99px;background:var(--yellow);box-shadow:2px 2px 0 var(--ink)}
.article-body h3{margin:38px 0 14px;font-size:clamp(20px,3vw,24px);line-height:1.45;letter-spacing:-.015em}
.article-body p{margin:0 0 22px}
.article-body ul,.article-body ol{margin:24px 0;padding-left:1.45em}
.article-body li{margin:10px 0;padding-left:6px}
.article-body code{padding:.1em .38em;border:1px solid #c9c0ad;border-radius:5px;background:#fff4d6;color:#27344c;font:800 .92em ui-monospace,SFMono-Regular,Menlo,monospace}
.article-body strong{font-weight:900}
.practice-list{padding:28px 30px!important;border:3px solid var(--ink);border-radius:18px;background:#fff0a9;box-shadow:7px 7px 0 var(--ink)}
.article-note{margin:34px 0!important;padding:24px 26px;border-left:8px solid var(--cyan);border-radius:0 12px 12px 0;background:var(--white);font-weight:750}
.article-cta{margin-top:70px;padding:42px 38px;border:3px solid var(--ink);border-radius:22px;background:var(--yellow);box-shadow:9px 9px 0 var(--ink);text-align:center}
.article-cta h2{margin:0 0 18px}
.article-cta h2:before{display:none}
.article-cta p{margin:0 auto 20px;max-width:610px}
.cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:56px;margin-top:10px;padding:12px 24px;border:2px solid var(--ink);border-radius:11px;background:var(--cyan);color:var(--ink);font-weight:900;text-decoration:none;box-shadow:4px 4px 0 var(--ink);transition:.15s transform,.15s box-shadow}
.cta-button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.cta-note{margin-top:14px!important;color:#5e542e;font-size:13px;font-weight:750}
footer{max-width:var(--max);margin:auto;padding:44px 28px 55px;border-top:3px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted);font-size:13px}
footer .brand-mark i{width:24px;height:27px;font-size:12px}
.footer-links{display:flex;gap:6px 16px;flex-wrap:wrap;justify-content:flex-end}
.footer-links a{text-underline-offset:3px}
@media(max-width:680px){.site-header{height:74px;padding:0 16px}.header-cta{padding:7px 12px;font-size:13px}.article-shell{width:calc(100% - 28px);margin-top:25px}.article-hero{padding:38px 25px;border-radius:20px;box-shadow:7px 7px 0 var(--cyan)}h1{font-size:clamp(30px,9vw,38px)}.article-lead{font-size:17px}.article-body{padding:42px 8px 0;font-size:16px}.article-body h2{margin-top:52px;font-size:28px}.article-body h3{margin-top:32px;font-size:21px}.practice-list{padding:23px 23px!important}.article-cta{padding:34px 24px}.cta-button{width:100%}footer{flex-direction:column;text-align:center}.footer-links{justify-content:center}}
.brand-logo{display:block;width:10.8rem;height:auto}footer .brand-logo{width:8.4rem}@media(max-width:680px){.brand-logo{width:8.5rem}footer .brand-logo{width:8rem}}
