.pn{--pn-wash:#eef4fd;--pn-ink:#17203a;--pn-ink2:#5b6884;--pn-line:#dfe7f4;--pn-blue:#4193f2;--pn-purple:#b44fd6;--pn-red:#eb5032;--pn-head:var(--font-head),"Noto Sans JP",sans-serif}.pn .pn-wrap{max-width:1120px;margin:0 auto;padding:0 24px}.pn .pn-narrow{max-width:760px}.pn .pn-tag{font-size:10.5px;font-weight:500;letter-spacing:.1em;color:var(--pn-ink2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pn .pn-en{font-family:var(--font-tech),monospace;letter-spacing:.1em;text-transform:uppercase}.pn .pn-hero{position:relative;padding:56px 0 40px;background:radial-gradient(ellipse 720px 320px at 18% 0,rgba(65,147,242,.1),transparent 70%),radial-gradient(ellipse 640px 300px at 88% 20%,rgba(180,79,214,.08),transparent 70%)}.pn .pn-hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.78fr);grid-gap:32px;gap:32px;align-items:center}.pn .pn-h1{font-family:var(--pn-head);font-weight:700;font-size:clamp(23px,4.6vw,38px);line-height:1.48;letter-spacing:.01em;margin:10px 0 0;color:var(--pn-ink)}.pn .pn-h1>span{display:inline-block}.pn .pn-hero-lead{margin:18px 0 0;font-size:15px;line-height:2;color:var(--pn-ink2);max-width:34em}.pn .pn-hero-lead>span{display:inline-block}.pn .pn-hero-art{width:100%;height:auto;display:block}.pn .pn-wire{stroke-dasharray:220;stroke-dashoffset:220;animation:pn-draw .9s cubic-bezier(.16,1,.3,1) forwards}@keyframes pn-draw{to{stroke-dashoffset:0}}.pn .pn-rule{height:1px;margin-bottom:12px;background:linear-gradient(90deg,rgba(65,147,242,.45),rgba(180,79,214,.45) 50%,rgba(235,80,50,.45))}.pn .pn-cats{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}.pn .pn-cats::-webkit-scrollbar{display:none}.mkt .pn .pn-cat{flex:none;font-size:13px;font-weight:700;font-family:var(--pn-head);padding:8px 16px;border-radius:999px;border:1px solid var(--pn-line);background:#fff;color:var(--pn-ink2);white-space:nowrap;transition:border-color .15s ease,color .15s ease,background .15s ease}.mkt .pn .pn-cat:hover{border-color:var(--pn-blue);color:var(--pn-blue);background:#f4f9ff}.mkt .pn .pn-cat.on{background:var(--pn-ink);border-color:var(--pn-ink);color:#fff}.pn .pn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,288px),1fr));grid-gap:28px 24px;gap:28px 24px}.mkt .pn .pn-card{display:flex;flex-direction:column;color:inherit;border-radius:16px;transition:transform .2s cubic-bezier(.16,1,.3,1)}.mkt .pn .pn-card:hover{color:inherit;transform:translateY(-3px)}.pn .pn-card-art{position:relative;aspect-ratio:1200/630;border-radius:14px;overflow:hidden;background:var(--pn-wash);border:1px solid var(--pn-line)}.pn .pn-card-art img,.pn .pn-card-art svg{width:100%;height:100%;object-fit:cover;display:block}.pn .pn-card-art:after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:linear-gradient(90deg,var(--pn-blue),var(--pn-purple),var(--pn-red));transform:scaleX(0);transform-origin:0 50%;transition:transform .4s cubic-bezier(.16,1,.3,1)}.pn .pn-card:focus-visible .pn-card-art:after,.pn .pn-card:hover .pn-card-art:after{transform:scaleX(1)}.pn .pn-card-body{padding:14px 2px 0}.pn .pn-card-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px}.pn .pn-chip{font-size:11.5px;color:var(--pn-blue);background:#eaf3fe;border-radius:999px;padding:3px 10px}.pn .pn-card-h,.pn .pn-chip{font-weight:700;font-family:var(--pn-head)}.pn .pn-card-h{font-size:16.5px;line-height:1.62;margin:0;color:var(--pn-ink)}.mkt .pn .pn-card:hover .pn-card-h{color:var(--pn-blue)}.pn .pn-card-lead{margin:8px 0 0;font-size:13px;line-height:1.85;color:var(--pn-ink2);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mkt .pn .pn-card.pn-lead-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-gap:28px;gap:28px;align-items:center;margin-bottom:40px}.pn .pn-lead-card .pn-card-h{font-size:clamp(20px,2.6vw,27px);line-height:1.52}.pn .pn-lead-card .pn-card-lead{font-size:14px;-webkit-line-clamp:3;line-clamp:3}.pn .pn-empty{text-align:center;padding:56px 24px 64px;border:1px dashed var(--pn-line);border-radius:22px;background:linear-gradient(180deg,#fff,var(--pn-wash))}.pn .pn-empty-art{width:200px;max-width:60%;height:auto;margin:0 auto 18px;display:block}.pn .pn-empty-h{font-family:var(--pn-head);font-weight:700;font-size:19px;margin:0 0 10px;color:var(--pn-ink)}.pn .pn-empty-p{margin:0 auto;max-width:34em;font-size:13.5px;line-height:2;color:var(--pn-ink2)}.pn .pn-empty-act{margin-top:22px;gap:12px}.pn .pn-empty-act,.pn .pn-pager{display:flex;justify-content:center;flex-wrap:wrap}.pn .pn-pager{align-items:center;gap:6px;margin-top:48px}.pn .pn-pager-list{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}.mkt .pn .pn-pager-num,.mkt .pn .pn-pager-step{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border-radius:999px;border:1px solid var(--pn-line);background:#fff;color:var(--pn-ink2);font-family:var(--font-tech),monospace;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:border-color .15s ease,color .15s ease,background .15s ease}.mkt .pn .pn-pager-step{font-family:inherit;font-weight:700;gap:6px;padding:0 16px}.mkt .pn .pn-pager-num:hover,.mkt .pn .pn-pager-step:hover{border-color:var(--pn-blue);color:var(--pn-blue);background:#f4f9ff}.pn .pn-pager-num.is-now{background:var(--pn-ink);border-color:var(--pn-ink);color:#fff;font-weight:700}.pn .pn-pager-gap{min-width:24px;text-align:center;color:var(--pn-ink2);font-family:var(--font-tech),monospace;letter-spacing:.1em}.pn .pn-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.mkt .pn .pn-tagchip{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;font-weight:500;padding:5px 11px 5px 9px;border-radius:8px;border:1px solid var(--pn-line);background:#fff;color:var(--pn-ink2);transition:border-color .15s ease,color .15s ease,background .15s ease}.mkt .pn .pn-tagchip:hover{border-color:var(--pn-blue);color:var(--pn-blue);background:#f4f9ff}.mkt .pn .pn-tagchip.on{background:var(--pn-ink);border-color:var(--pn-ink);color:#fff}.pn .pn-tagchip-hash{font-family:var(--font-tech),monospace;opacity:.55}.pn .pn-tagchip-n{margin-left:6px;font-family:var(--font-tech),monospace;font-size:11px;opacity:.7}.pn .pn-poptags{margin-top:40px;padding-top:24px;border-top:1px solid var(--pn-line)}.pn .pn-poptags-h{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--pn-ink2)}.pn .pn-art-tags{margin-top:36px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pn .pn-art-tags-h{margin:0;font-weight:700;flex:none}.pn .pn-art-tags-h,.pn .pn-crumb{font-size:12px;color:var(--pn-ink2)}.pn .pn-crumb{padding:22px 0 0;display:flex;gap:8px;flex-wrap:wrap}.mkt .pn .pn-crumb a{color:var(--pn-ink2)}.mkt .pn .pn-crumb a:hover{color:var(--pn-blue)}.pn .pn-art-head{padding:20px 0 8px}.pn .pn-art-head-bare{padding-top:40px}.pn .pn-art-h1{font-family:var(--pn-head);font-weight:700;font-size:clamp(24px,3.6vw,36px);line-height:1.5;margin:14px 0 0;color:var(--pn-ink);letter-spacing:.01em}.pn .pn-art-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;font-size:12.5px;color:var(--pn-ink2)}.pn .pn-art-lead{margin:22px 0 0;font-size:15.5px;line-height:2.05;color:#33405e;padding-left:16px;border-left:3px solid var(--pn-blue)}.pn .pn-art-eye{width:100%;aspect-ratio:1200/630;object-fit:cover;border-radius:18px;border:1px solid var(--pn-line);display:block;margin:28px 0 0;background:var(--pn-wash)}.pn .pn-body{font-size:15.5px;line-height:2.05;color:#2a3550;margin-top:36px}.pn .pn-body>:first-child{margin-top:0}.pn .pn-body h2{font-size:22px;line-height:1.6;margin:52px 0 18px;display:inline-block;padding-bottom:8px;border-bottom:2px solid var(--pn-blue)}.pn .pn-body h2,.pn .pn-body h3{font-family:var(--pn-head);font-weight:700;color:var(--pn-ink)}.pn .pn-body h3{font-size:17.5px;line-height:1.7;margin:38px 0 14px;padding-left:14px;border-left:4px solid var(--pn-blue);border-radius:2px}.pn .pn-body h4{font-family:var(--pn-head);font-weight:700;font-size:15.5px;margin:30px 0 10px;color:var(--pn-ink)}.pn .pn-body p{margin:0 0 1.6em}.pn .pn-body ol,.pn .pn-body ul{margin:0 0 1.6em;padding-left:1.5em}.pn .pn-body li{margin:.4em 0}.pn .pn-body li::marker{color:var(--pn-blue)}.mkt .pn .pn-body a{color:var(--pn-blue);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;-webkit-text-decoration-color:rgba(65,147,242,.45);text-decoration-color:rgba(65,147,242,.45)}.mkt .pn .pn-body a:hover{color:#1f6fd0;-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.pn .pn-body img{max-width:100%;height:auto;border-radius:14px;border:1px solid var(--pn-line);display:block;margin:28px auto}.pn .pn-body figure{margin:28px 0}.pn .pn-body figcaption{font-size:12.5px;color:var(--pn-ink2);text-align:center;margin-top:10px}.pn .pn-body blockquote{margin:28px 0;padding:18px 22px;background:var(--pn-wash);border-left:4px solid #b9cdea;border-radius:0 12px 12px 0;color:#3a4767}.pn .pn-body blockquote p:last-child{margin-bottom:0}.pn .pn-body code{font-family:SFMono-Regular,ui-monospace,Menlo,monospace;font-size:.88em;background:#eef2f9;border:1px solid var(--pn-line);border-radius:6px;padding:2px 6px}.pn .pn-body pre{background:#10142e;color:#e6ebff;border-radius:14px;padding:18px 20px;overflow-x:auto;margin:28px 0;font-size:13px;line-height:1.85}.pn .pn-body pre code{background:none;border:none;padding:0;color:inherit;font-size:inherit}.pn .pn-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:28px 0;font-size:13.5px}.pn .pn-body td,.pn .pn-body th{border:1px solid var(--pn-line);padding:10px 14px;text-align:left;vertical-align:top}.pn .pn-body th{background:var(--pn-wash);font-weight:700;white-space:nowrap}.pn .pn-body hr{border:none;border-top:1px solid var(--pn-line);margin:44px 0}.pn .pn-faq{margin-top:56px}.pn .pn-sec-h{font-family:var(--pn-head);font-weight:700;font-size:19px;margin:0 0 18px;color:var(--pn-ink)}.pn .pn-faq details{border:1px solid var(--pn-line);border-radius:14px;background:#fff;margin-bottom:10px;overflow:hidden}.pn .pn-faq summary{cursor:pointer;list-style:none;display:flex;align-items:flex-start;gap:12px;padding:16px 18px;font-weight:700;font-size:14.5px;line-height:1.7;color:var(--pn-ink)}.pn .pn-faq summary::-webkit-details-marker{display:none}.pn .pn-faq summary .pn-q{font-family:var(--font-tech),monospace;color:var(--pn-blue);font-size:13px;flex:none;margin-top:1px}.pn .pn-faq summary .pn-mark{margin-left:auto;flex:none;color:var(--pn-ink2);transition:transform .25s ease}.pn .pn-faq details[open] summary .pn-mark{transform:rotate(45deg)}.pn .pn-faq .pn-a{margin:0;padding:0 18px 18px 44px;font-size:14px;line-height:1.95;color:var(--pn-ink2)}.pn .pn-cta{margin-top:56px;border-radius:22px;padding:34px 32px;background:linear-gradient(135deg,#101430,#1a1f4a 55%,#2a1a45);color:#eef1ff;position:relative;overflow:hidden}.pn .pn-cta:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--pn-blue),var(--pn-purple),var(--pn-red))}.pn .pn-cta-bridge{margin:0 0 16px;font-size:14.5px;line-height:1.95;color:#c9d2f5}.pn .pn-cta-h{font-family:var(--pn-head);font-weight:700;font-size:21px;line-height:1.6;margin:0 0 10px}.pn .pn-cta-p{margin:0 0 22px;font-size:13.5px;line-height:1.95;color:#a8b3dd}.pn .pn-cta-act{display:flex;gap:12px;flex-wrap:wrap}.mkt .cb-lite.pn .pn-cta .cb-btn-ghost{color:#fff;border-color:rgba(255,255,255,.45)}.mkt .cb-lite.pn .pn-cta .cb-btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,.8);background:rgba(255,255,255,.12)}.pn .pn-rel{margin-top:64px}@media (max-width:900px){.pn .pn-hero-in{grid-template-columns:minmax(0,1fr);gap:8px}.pn .pn-hero-art{max-width:460px}.mkt .pn .pn-card.pn-lead-card{grid-template-columns:minmax(0,1fr);gap:16px}}@media (max-width:720px){.pn .pn-hero{padding:36px 0 28px}.pn .pn-body{font-size:15px}.pn .pn-cta{padding:26px 22px}.pn .pn-art-lead{font-size:14.5px}}@media (prefers-reduced-motion:reduce){.pn .pn-wire{animation:none!important;stroke-dashoffset:0}.mkt .pn .pn-card,.pn .pn-card-art:after{transition:none}}.pn .pn-art{display:grid;grid-template-columns:minmax(0,760px) minmax(0,236px);grid-gap:56px;gap:56px;justify-content:center}.pn .pn-art-main{min-width:0}.pn .pn-toc-rail{position:-webkit-sticky;position:sticky;top:86px;align-self:start;margin-top:40px;max-height:calc(100vh - 110px);overflow-y:auto;overscroll-behavior:contain}.pn .pn-toc-inline{display:none}.pn .pn-toc{border:1px solid var(--pn-line);border-radius:14px;background:#fff;padding:16px 18px 14px}.pn .pn-toc-h{font-family:var(--pn-head);font-weight:700;font-size:13px;letter-spacing:.02em;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--pn-line);color:var(--pn-ink)}.pn .pn-toc ol{list-style:none;margin:0;padding:0;display:grid;grid-gap:9px;gap:9px}.pn .pn-toc li.sub{padding-left:13px;border-left:2px solid var(--pn-line)}.mkt .pn .pn-toc a{display:block;font-size:12.5px;line-height:1.7;color:var(--pn-ink2)}.mkt .pn .pn-toc a:hover{color:var(--pn-blue)}.pn .pn-author{margin-top:48px;border:1px solid var(--pn-line);border-radius:16px;padding:20px 24px;background:var(--pn-wash)}.pn .pn-author-cap{margin:0 0 6px;font-size:11px;letter-spacing:.08em;color:var(--pn-ink2)}.pn .pn-author-name{font-family:var(--pn-head);font-weight:700;font-size:15px;margin:0;color:var(--pn-ink)}.pn .pn-author-bio{margin:8px 0 0;font-size:13px;line-height:1.95;color:var(--pn-ink2)}.pn .pn-author-row{display:flex;gap:16px;align-items:flex-start}.pn .pn-author-main{min-width:0}.pn .pn-author-title{margin:2px 0 0;font-size:12px;color:var(--pn-ink2)}.pn .pn-author-links{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.pn .pn-author-links a{display:inline-block;font-size:12px;padding:3px 10px;border:1px solid var(--pn-line);border-radius:999px;color:var(--pn-ink);background:#fff;text-decoration:none}.pn .pn-author-links a:hover{border-color:var(--pn-blue);color:var(--pn-blue)}.pn .pn-avatar{flex:none;border-radius:50%;object-fit:cover;background:var(--pn-line)}.pn .pn-avatar-empty{justify-content:center;font-family:var(--pn-head);font-weight:700;color:var(--pn-ink2)}.pn .pn-art-by,.pn .pn-avatar-empty{display:inline-flex;align-items:center}.pn .pn-art-by{gap:6px}@media (max-width:1080px){.pn .pn-art{grid-template-columns:minmax(0,1fr);max-width:760px}.pn .pn-toc-rail{display:none}.pn .pn-toc-inline{display:block;margin-top:32px}}