/* Generated from the approved EMF Protection designs. Edit the source designs, then rerun build/split_css.py. */
:focus-visible{outline: 3px solid var(--action); outline-offset: 2px;}
.reading-progress{position: sticky; top: 68px; height: 3px; background: var(--border); z-index: 190;}
.reading-progress-bar{height: 100%; width: 0%; background: var(--action); transition: width 100ms linear;}
main{display: block;}
.post-header{max-width: 1100px; margin: 0 auto; padding: 2.5rem 1.5rem 0;}
.back-link{display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.8438rem; font-weight: 600; color: var(--action); margin-bottom: 1.5rem;}
.back-link:hover{color: var(--action-dark);}
.post-eyebrow{font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--action); margin-bottom: 0.875rem;}
.post-title{font-size: clamp(1.875rem, 4vw, 2.625rem); font-weight: 800; color: var(--ink); letter-spacing: -0.03em; line-height: 1.2; margin-bottom: 1rem; max-width: 34ch;}
.post-deck{font-size: 1.0625rem; color: var(--ink-mid); line-height: 1.65; max-width: 65ch; margin-bottom: 1.75rem;}
.post-byline{display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; padding-bottom: 1.75rem; border-bottom: 1px solid var(--border); margin-bottom: 0;}
.byline-author{display: flex; align-items: center; gap: 0.75rem;}
.byline-name{font-size: 0.9375rem; font-weight: 700; color: var(--ink);}
.byline-name a:hover{color: var(--action);}
.byline-meta{font-size: 0.8125rem; color: var(--ink-light);}
.byline-meta time{color: var(--ink-light);}
.share-row{display: flex; align-items: center; gap: 0.5rem;}
.share-row li{display: flex;}
.share-btn{width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 1.5px solid var(--border); color: var(--ink-mid); transition: all 150ms;}
.share-btn:hover{border-color: var(--action); color: var(--action); background: var(--action-pale);}
.post-hero-figure{max-width: 1100px; margin: 2rem auto 0; padding: 0 1.5rem;}
.hero-visual{aspect-ratio: 16/7; border-radius: var(--r-xl); background: linear-gradient(150deg, #0d2035 0%, #1a3a52 60%, #16324a 100%); display: flex; align-items: center; justify-content: center; box-shadow: var(--sh-md);}
.post-hero-figure figcaption{font-size: 0.8125rem; color: var(--ink-light); text-align: center; margin-top: 0.75rem;}
.post-layout{max-width: 1100px; margin: 0 auto; padding: 3rem 1.5rem 4rem; display: grid; grid-template-columns: 240px 1fr; gap: 3rem; align-items: start;}
.toc-aside{position: sticky; top: 88px;}
.toc-title{font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-light); margin-bottom: 1rem;}
.toc-list{display: flex; flex-direction: column; gap: 0.625rem; border-left: 2px solid var(--border);}
.toc-list a{display: block; font-size: 0.875rem; color: var(--ink-mid); padding: 0.125rem 0 0.125rem 1rem; margin-left: -2px; border-left: 2px solid transparent;}
.toc-list a:hover, .toc-list a:focus-visible{color: var(--action); border-left-color: var(--action);}
.post-content{font-size: 1rem; color: var(--ink-mid); max-width: 70ch;}
.post-content > p{line-height: 1.8; margin-bottom: 1.25rem;}
.post-content h2{font-size: 1.5rem; font-weight: 800; color: var(--ink); letter-spacing: -0.02em; margin: 2.5rem 0 1.125rem; scroll-margin-top: 96px;}
.post-content h2:first-child{margin-top: 0;}
.post-content h3{font-size: 1.125rem; font-weight: 700; color: var(--ink); margin: 1.75rem 0 0.875rem;}
.post-content ol, .post-content ul.bullet{margin: 0 0 1.5rem; padding-left: 0; display: flex; flex-direction: column; gap: 0.75rem;}
.post-content ol{list-style: none; counter-reset: step;}
.post-content ol li{display: flex; gap: 0.875rem; line-height: 1.7;}
.post-content ol li::before{counter-increment: step; content: counter(step); flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--action-pale); color: var(--action-dark); font-size: 0.8125rem; font-weight: 800; display: flex; align-items: center; justify-content: center;}
.post-content ul.bullet li{display: flex; align-items: flex-start; gap: 0.75rem; line-height: 1.7;}
.bullet-check{width: 18px; height: 18px; border-radius: 50%; background: var(--action-pale); color: var(--action); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.15rem;}
blockquote{border-left: 3px solid var(--action); background: var(--action-pale); border-radius: 0 var(--r-lg) var(--r-lg) 0; padding: 1.25rem 1.5rem; margin: 1.75rem 0; font-size: 1.0625rem; font-style: italic; color: var(--action-dark);}
blockquote cite{display: block; margin-top: 0.625rem; font-size: 0.8125rem; font-style: normal; font-weight: 700; color: var(--ink-mid);}
.stat-figure{display: flex; align-items: center; gap: 1.5rem; background: var(--ink); border-radius: var(--r-lg); padding: 1.75rem 2rem; margin: 1.75rem 0;}
.stat-val{font-size: 2.5rem; font-weight: 800; color: var(--white); letter-spacing: -0.03em; flex-shrink: 0;}
.stat-figure figcaption{font-size: 0.875rem; color: rgba(255,255,255,0.62); line-height: 1.55;}
.spec-table-wrap{overflow-x: auto; margin: 1.75rem 0; border: 1px solid var(--border); border-radius: var(--r-lg);}
.spec-table caption{text-align: left; font-size: 0.8125rem; color: var(--ink-light); padding: 0.875rem 1.125rem 0; caption-side: top;}
.spec-table th, .spec-table td{padding: 0.75rem 1.125rem; text-align: left; font-size: 0.875rem; border-bottom: 1px solid var(--border);}
.spec-table thead th{background: var(--surface); color: var(--ink); font-weight: 700;}
.spec-table tbody tr:last-child td{border-bottom: none;}
.spec-table tbody tr:hover td{background: var(--warm);}
.takeaway-box{background: var(--white); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.75rem; margin: 1.75rem 0; box-shadow: var(--sh);}
.takeaway-box h2{margin-top: 0 !important;}
.author-card{display: flex; gap: 1.25rem; align-items: flex-start; background: var(--surface); border-radius: var(--r-lg); padding: 1.75rem; margin: 2.5rem 0;}
.author-card .post-avatar{width: 56px; height: 56px; font-size: 1.0625rem;}
.author-card-name{font-size: 1rem; font-weight: 700; color: var(--ink); margin-bottom: 0.25rem;}
.author-card-role{font-size: 0.8125rem; color: var(--action); font-weight: 600; margin-bottom: 0.625rem;}
.author-card-bio{font-size: 0.875rem; color: var(--ink-mid); line-height: 1.65; margin-bottom: 0.75rem;}
.author-card-link{font-size: 0.8125rem; font-weight: 700; color: var(--action); display: inline-flex; align-items: center; gap: 0.375rem;}
.related-wrap{max-width: 1340px; margin: 0 auto; padding: 0 1.5rem 4rem;}
.related-wrap h2{font-size: 1.375rem; font-weight: 800; color: var(--ink); letter-spacing: -0.02em; margin-bottom: 1.5rem;}
.read-grid{display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem;}
.pc-1{background: linear-gradient(135deg, #1a3040, #2a5060);}
.pc-2{background: linear-gradient(135deg, #162838, #1e4050);}
.pc-3{background: linear-gradient(135deg, #0f2030, #24404e);}
.newsletter-section{background: var(--ink); border-radius: var(--r-xl); padding: 3rem; text-align: center; max-width: 1340px; margin: 0 auto 4rem;}
.newsletter-section h2{font-size: 1.625rem; font-weight: 800; color: var(--white); margin-bottom: 0.75rem;}
.newsletter-section p{font-size: 0.9375rem; color: rgba(255,255,255,0.6); max-width: 50ch; margin: 0 auto 1.5rem;}
.nl-form{display: flex; max-width: 420px; margin: 0 auto; border-radius: var(--r); overflow: hidden; gap: 0;}
.nl-input{flex: 1; padding: 0.875rem 1.125rem; border: none; font-family: var(--font); font-size: 0.9375rem; outline: none;}
.nl-btn{padding: 0.875rem 1.5rem; background: var(--action); color: var(--white); font-weight: 700; white-space: nowrap;}
.nl-btn:hover{background: var(--action-dark);}
footer{background: #070f18; padding: 4rem 1.5rem 2rem;}
.fc{background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.09); border-radius: 4px; padding: 0.25rem 0.5rem; font-size: 0.6875rem; font-weight: 600; color: rgba(255,255,255,0.35);}
.payment-row{display: flex; gap: 0.5rem;}
.pay{display: inline-flex; border-radius: 4px; overflow: hidden; line-height: 0;}
@media(max-width:1100px){.read-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.post-layout{grid-template-columns:1fr}
.toc-aside{position:static;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem 1.5rem}}
@media(max-width:640px){.post-header{padding:1.75rem 1.25rem 0}
.post-layout{padding:2rem 1.25rem 3rem}
.read-grid{grid-template-columns:1fr}
.post-byline{flex-direction:column;align-items:flex-start}
.stat-figure{flex-direction:column;text-align:center}
.related-wrap{padding:0 1.25rem 3rem}}
