@font-face{font-family:Pretendard;src:url('/fonts/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
/* Digital journal. A new page composition; no dependency on former preview CSS. */
:root{font-family:Pretendard,Arial,sans-serif;color:#111;background:#faf9f5;font-synthesis:none;--paper:#faf9f5;--ink:#111;--rule:#d5d7cd;--accent:#234c3d;--soft:#ecefe6}
*{box-sizing:border-box}body{margin:0;word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}p{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#d5e3b7;color:#111}
.shell{min-height:100vh;width:100%;margin:0;background:var(--paper);display:flex;flex-direction:column}.shell>main{flex:1}.masthead,main,.site-footer{width:min(720px,calc(100% - 48px));margin-inline:auto}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 0;border-bottom:3px double var(--ink)}.logo{font-family:Pretendard,sans-serif;font-size:22px;font-weight:750;letter-spacing:-.7px;line-height:1.3}.tagline{font-size:14px;line-height:1.7;max-width:225px;text-align:right}
.journal-intro{display:grid;grid-template-columns:1fr 180px;gap:32px;padding:40px 0 34px}.journal-intro h1{font-size:28px;line-height:1.5;font-weight:600;margin:0}.journal-intro p{font-size:14px;line-height:1.85;border-left:1px solid var(--ink);padding-left:20px}.journal-kicker{font:500 14px/1.8 Pretendard,sans-serif;letter-spacing:0;margin-bottom:14px}
.list-heading{display:flex;justify-content:space-between;gap:20px;background:var(--accent);color:white;padding:12px 16px;font-size:14px;line-height:1.8}.list-heading h2{font-size:14px;font-weight:600;margin:0}
.post-list{list-style:none;margin:0;padding:0}.post{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:14px;padding:28px 16px 30px;border-bottom:1px solid var(--rule)}.post h2{grid-column:1;grid-row:1;font-size:21px;line-height:1.5;font-weight:700;margin:0}.post .excerpt{grid-column:2;grid-row:1/3;font-size:16px;line-height:1.85}.post .date{grid-column:1;font-size:14px;line-height:1.8;font-variant-numeric:tabular-nums}.post h2 a:hover{color:var(--accent)}.sample-hint{font-size:14px;line-height:1.8;margin:22px 0}
.article-heading{padding:40px 0 0}.article-heading h1{font-size:32px;line-height:1.5;font-weight:700;margin:0;max-width:640px}.article-heading .journal-kicker{display:flex;align-items:center;gap:12px}.article-heading .journal-kicker::before{content:'';width:18px;height:1px;background:var(--ink)}
.dek{font-size:18px;line-height:32px;margin-top:22px;max-width:660px}.byline{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:14px;line-height:1.8;border-block:1px solid var(--rule);margin:28px 0 36px;padding:15px 0}.byline b{font-weight:600}.byline>span{flex-basis:100%}
.prose{font-size:18px;line-height:32px;min-width:0}.prose>p{margin-bottom:24px}.prose h2{font-size:22px;line-height:1.6;font-weight:700;margin:54px 0 20px}.prose h3{font-size:20px;line-height:1.6;font-weight:600;margin:32px 0 16px}.prose h4{font-size:18px;line-height:1.7;margin:28px 0 12px}.prose h5,.prose h6{font-size:18px;line-height:1.8;margin:24px 0 12px}.prose strong{font-weight:700}.prose em{font-synthesis:style}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.prose [id]{scroll-margin-top:28px}
.prose :is(ul,ol){padding-left:1.5em;margin:0 0 24px}.prose li{padding-left:4px;margin:8px 0}.prose :is(ul,ol) :is(ul,ol){margin:8px 0 0}.prose li>p+p{margin-top:12px}.prose .sample-note,.prose .component-note{font-size:16px;line-height:28px;margin:16px 0 24px}
.component-nav{border-block:1px solid var(--ink);padding:20px 0;margin:28px 0 40px}.component-nav>p{font-size:14px;font-weight:700;margin-bottom:12px}.prose .component-nav ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin:0;padding:0}.prose .component-nav li{margin:0;padding:0}.component-nav a{font-size:16px;line-height:28px}
blockquote{margin:40px 0;padding:26px 28px;background:var(--soft);border:1px solid #d5dccb;font-size:19px;line-height:1.85;position:relative}blockquote::before{content:'';position:absolute;top:-1px;left:28px;width:40px;height:3px;background:var(--accent)}blockquote p+p{margin-top:18px}blockquote footer{font-size:16px;line-height:28px;margin-top:18px}blockquote cite{font-style:normal}.prose .pull-quote{font-size:20px;line-height:1.8;font-weight:600;margin:40px 0;padding:24px 0;border-block:3px double var(--ink)}
.callout{margin:28px 0;padding:4px 0 4px 20px;border-left:2px solid var(--accent)}.callout-warning{border-color:#8e5318}.callout-title{font-weight:700}.callout-title>span{display:none}.callout p+p{margin-top:12px}.prose .callout ul{margin:12px 0 0}
.prose :is(p,li,dd,td,th) code{font:.9em/1.6 ui-monospace,SFMono-Regular,Consolas,monospace,Pretendard;background:#e9ebe5;padding:2px 4px;box-decoration-break:clone;-webkit-box-decoration-break:clone;overflow-wrap:anywhere}kbd{font:14px/1.5 monospace;padding:2px 5px;border:1px solid #777;border-bottom-width:2px;white-space:nowrap}mark{background:#eee59f;color:#111}abbr[title]{text-decoration:underline dotted;text-underline-offset:4px}sup,sub{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.2em}
.code-block{margin:28px 0 0;background:#25272b;border-radius:6px;overflow:hidden}.code-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;font-size:14px;line-height:1.7;padding:12px 18px;color:#fff;background:#1b2029;border-bottom:1px solid #51535a}pre{font:14px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace,Pretendard;color:#f4f4f4;margin:0;padding:20px;overflow-x:auto;word-break:normal;overflow-wrap:normal;tab-size:2}pre code{font:inherit}.key{color:#e8c07d}.string{color:#b1d99c}.literal{color:#d9b2ef}.keyword{color:#cbb5f6}.comment{color:#d0d4dc}.prose .code-caption{font-size:16px;line-height:28px;margin:14px 0 28px}
.prose figure{margin:40px 0;padding:22px 0;border-top:3px double var(--ink);border-bottom:1px solid var(--rule)}.figure-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;margin-bottom:22px;font-size:14px;line-height:1.8}.figure-id{font-size:14px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.plate-title{font-size:18px;font-weight:600}.plate-kind{font-size:14px}.prose figcaption{font-size:16px;line-height:28px;margin-top:20px;padding-top:16px;border-top:1px solid var(--rule)}
.table-scroll{overflow-x:auto;overscroll-behavior-x:contain}table{width:100%;min-width:460px;border-collapse:collapse;font-size:16px;line-height:1.8;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid var(--rule);vertical-align:top}thead th{background:var(--soft);font-weight:700;border-bottom:1px solid var(--ink)}tbody th{width:23%;font-weight:600}tfoot :is(th,td){font-weight:700;border-top:1px solid var(--ink)}.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table{min-width:620px}.data-table tbody th{width:auto}.compact-table{min-width:0;table-layout:fixed}.compact-table th{width:38%}.status{font-size:14px;font-weight:600}.status-pending{text-decoration:underline dotted;text-underline-offset:4px}
.chart h3{font-size:20px;line-height:1.6;margin:0 0 10px}.chart-unit{font-size:16px;line-height:28px;margin-bottom:24px}.bar{display:grid;grid-template-columns:66px minmax(0,1fr) 52px;align-items:center;gap:14px;margin:22px 0;font-size:16px}.bar b{font-size:20px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.track{height:26px;background:repeating-linear-gradient(90deg,#e7e9e0 0,#e7e9e0 calc(25% - 1px),#c5cbbd calc(25% - 1px),#c5cbbd 25%)}.track i{display:block;height:100%;background:#111}.after .track i{background:var(--accent)}.axis{display:flex;justify-content:space-between;margin:8px 66px 0 80px;font-size:14px;line-height:1.8}
.prose .flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;padding:0;margin:0}.prose .flow li{position:relative;padding:16px 0;margin:0;border-top:1px solid var(--ink)}.flow li>span{display:block;font:14px/1.8 ui-monospace,monospace;margin-bottom:12px}.flow b{display:block;font-size:18px;font-weight:600}.flow p{font-size:16px;line-height:28px;margin-top:6px}.flow li:not(:last-child)::after{content:'→';position:absolute;right:-23px;top:18px}.flow li:last-child{border-color:var(--accent)}.flow li:last-child b{color:var(--accent)}
.prose .timeline{list-style:none;padding:0;margin:24px 0}.timeline li{display:grid;grid-template-columns:60px minmax(0,1fr);gap:20px;padding:0 0 24px;margin:0}.timeline time{font-size:16px;font-variant-numeric:tabular-nums}.timeline li>div{border-left:1px solid var(--ink);padding-left:20px}.timeline p{margin-top:4px}
.prose .media-figure{border:0;padding:0}.media-figure img{display:block;width:100%;height:auto}.media-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:36px 0}.prose .media-pair .media-figure{margin:0}.prose .media-narrow{max-width:360px;margin-inline:auto}.media-fallback{padding:24px;background:var(--soft);display:flex;flex-direction:column;gap:12px}.resource-card{display:flex;flex-direction:column;gap:8px;padding:22px 0;border-block:1px solid var(--ink);margin:28px 0}.resource-kicker{font-size:14px;color:#111}
.prose .checklist{list-style:none;padding:0}.checklist li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;padding:0;margin:12px 0}.check-state{font-weight:700}.glossary{margin:24px 0}.glossary dt{font-weight:700}.glossary dt span{font-weight:400;font-size:14px;margin-left:8px}.glossary dd{margin:6px 0 24px;padding-bottom:20px;border-bottom:1px solid var(--rule)}.interview{margin:28px 0}.interview-question{font-weight:600;margin-bottom:14px}.interview span{font-weight:700;margin-right:6px}
.faq{padding:26px 0;border-top:1px solid var(--ink)}.prose .faq-question{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;font-size:18px;line-height:30px;font-weight:600;margin:0}.faq-mark{font-size:17px;line-height:30px;font-weight:700;color:var(--accent)}.faq-answer{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;margin-top:14px}.faq-answer p{font-size:18px;line-height:32px}
.disclosure{padding:14px 0;border-block:1px solid var(--rule);margin:24px 0;font-size:16px;line-height:28px}.disclosure summary,.sources summary{font-weight:600;cursor:pointer;padding:8px 0}.disclosure>div{padding:16px 0 8px}.sources{font-size:14px;line-height:1.85;margin-top:36px;padding:16px 0;border-top:3px double var(--ink)}.sources[open] summary{margin-bottom:16px}.sources p+p{margin-top:16px}.prose .sources ol{margin:16px 0}.sources summary::marker,.disclosure summary::marker{color:var(--accent)}
.correction{padding:20px 0;border-block:1px solid var(--rule);margin:28px 0}.correction time{font-size:14px;margin-left:10px}.correction p+p{margin-top:12px}.footnotes{font-size:14px;line-height:1.85;border-top:1px solid var(--rule);padding-top:8px;margin-top:36px}.prose .footnotes h3{font-size:16px;margin:20px 0 12px}.prose hr{border:0;border-top:1px solid var(--rule);margin:40px 0}
.site-footer{padding:24px 0 30px;margin-top:56px;border-top:3px double var(--ink);display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;font-size:14px;line-height:1.8}.site-footer nav{display:flex;gap:20px;flex-wrap:wrap}.site-footer [aria-current]{text-decoration:underline;text-underline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.article-updated{text-align:right;font-size:14px;line-height:1.8;font-variant-numeric:tabular-nums;margin-bottom:18px}.article-heading:has(.article-updated){padding-bottom:36px}
.prose .table-figure,.prose .chart,.prose .diagram{border:1px solid #aeb6a6;padding:22px}
.figure-heading{margin-bottom:22px}.figure-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:14px;line-height:1.8;margin-bottom:10px}.figure-kind{font-size:14px;color:#111}.prose .figure-title{font-size:18px;line-height:1.6;font-weight:600;margin:0}
.table-figure{container-type:inline-size;container-name:table-frame}.prose .scroll-hint{display:none;font-size:16px;line-height:28px;margin:0 0 12px;color:#111}.scroll-hint span{margin-left:6px}
@container table-frame (width < 460px){.scroll-hint[data-table="standard"]{display:block}}
@container table-frame (width < 620px){.scroll-hint[data-table="wide"]{display:block}}
@supports not (container-type:inline-size){.prose .scroll-hint{display:block}}
.qa{padding:26px 0;border-top:1px solid var(--ink)}.prose .qa .faq-question{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;font-size:18px;line-height:30px;font-weight:600;margin:0}
.korean-graphic{padding:24px 20px;background:var(--soft);border:1px solid var(--rule);color:#111}.graphic-eyebrow{font-size:16px;line-height:1.8;font-weight:600;margin-bottom:22px}.graphic-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.graphic-flow>div{position:relative;padding-top:14px;border-top:1px solid var(--accent)}.graphic-flow span{display:block;font-size:16px;line-height:1.8}.graphic-flow strong{display:block;font-size:18px;line-height:1.8;margin-top:8px}.graphic-flow>div:not(:last-child)::after{content:'→';position:absolute;right:-19px;top:33px;font-size:16px}.graphic-foot{font-size:16px;line-height:1.8;margin-top:22px}.graphic-phone{padding:24px}.graphic-question,.graphic-explanation{padding:20px 0;border-top:1px solid var(--accent)}.graphic-question span,.graphic-explanation span{display:block;font-size:16px;line-height:1.8;margin-bottom:10px}.graphic-question strong,.graphic-explanation strong{font-size:18px;line-height:1.8}.graphic-lines{margin-top:22px}.graphic-lines i{display:block;height:7px;background:#bac7b2;margin-top:12px}.graphic-lines i:nth-child(2){width:85%}.graphic-lines i:nth-child(3){width:65%}
.post-without-summary h2{grid-column:1/-1}.empty-list{font-size:18px;line-height:1.8;padding:40px 0}.post h2 a:focus-visible{outline-offset:4px}
@media(max-width:620px){.prose .table-figure,.prose .chart,.prose .diagram{padding:16px}.article-heading:has(.article-updated){padding-bottom:28px}}
@media(max-width:880px){.shell{margin:0;border:0;box-shadow:none}}
@media(max-width:620px){.masthead{padding:24px 0;align-items:flex-start;flex-direction:column;gap:10px}.tagline{text-align:left;max-width:none}.journal-intro{grid-template-columns:1fr;gap:18px;padding:28px 0}.journal-intro h1{font-size:24px}.journal-intro p{border:0;padding:0;max-width:290px}.list-heading{padding:10px 12px}.post{display:block;padding:24px 0 26px}.post h2{font-size:20px;margin-bottom:8px}.post .excerpt{line-height:1.8}.post .date{margin-top:12px}.article-heading{padding-top:28px}.article-heading h1{font-size:26px;line-height:1.5}.dek,.prose{line-height:31px}.byline{margin:24px 0 30px}.prose h2{font-size:20px;margin-top:44px}.prose h3{font-size:18px}.prose .component-nav ul{grid-template-columns:1fr}.prose .flow{display:flex;flex-direction:column;gap:24px}.prose .flow li{padding:14px 0 14px 36px}.flow li>span{position:absolute;left:0;top:14px}.flow li:not(:last-child)::after{content:'↓';left:0;right:auto;top:auto;bottom:-22px}blockquote{padding:24px 20px}.bar{grid-template-columns:54px minmax(0,1fr) 44px;gap:10px}.bar b{font-size:18px}.axis{margin-left:64px;margin-right:54px}.media-pair{grid-template-columns:1fr;gap:28px}.faq-answer p{line-height:31px}.site-footer{flex-direction:column;margin-top:40px}.timeline li{grid-template-columns:46px minmax(0,1fr);gap:16px}}
@media print{body{background:white}.shell{border:0;box-shadow:none;max-width:none;margin:0}.masthead,main,.site-footer{width:100%}.site-footer,.component-nav{display:none}pre{white-space:pre-wrap;overflow-wrap:anywhere}.table-scroll{overflow:visible}table{min-width:0}th,td{font-size:10pt;padding:8px}}

/* Approved editorial template. Opt-in .illustrated-flow requires three SVG scenes.
   Base journal.css stays pinned for the independently deployed Wi-Fi pilot. */
:root {
  --accent: #234c3d;
  --rule: #cdd2c7;
  --soft: #edf0e8;
  --figure-rule: #9fa998;
  --highlight: #ead9b9;
}

.skip-link { position:absolute; left:24px; top:-100px; background:var(--paper); padding:12px; z-index:10; }
.skip-link:focus { top:12px; }

/* A compact opening: the same logo, a quiet signal, and a balanced title. */
.masthead { padding:26px 0; border-bottom:1px solid var(--figure-rule); }
.tagline { max-width:none; }
.tagline::before { content:''; display:inline-block; width:5px; height:5px; margin:0 8px 3px 0; background:var(--accent); border-radius:50%; }
.article-heading { padding-top:28px; }
.article-heading:has(.article-updated) { padding-bottom:28px; }
.article-updated { margin-bottom:16px; }
.article-heading h1 { max-width:none; text-wrap:balance; letter-spacing:-.025em; }
.dek { margin-top:18px; }
.dek strong { font-weight:600; }
.article-hero { margin:0 0 32px; padding:0; border:0; line-height:0; }
.article-hero img { display:block; width:100%; height:220px; object-fit:cover; object-position:center; border:0; }
.article-hero figcaption { margin-top:10px; padding:0 0 0 12px; border:0; border-left:2px solid var(--figure-rule); color:var(--ink); font-size:16px; line-height:28px; }
.article-hero figcaption::before { content:'일러스트'; display:inline-block; margin-right:10px; padding-right:10px; border-right:1px solid var(--rule); color:var(--accent); font-size:14px; font-weight:700; line-height:16px; vertical-align:1px; white-space:nowrap; }

/* One repeating section mark; reading text stays black and 18px. */
.prose > h2 { margin-top:48px; margin-bottom:18px; text-wrap:pretty; }
.prose > h2::before { content:''; display:block; width:24px; height:3px; margin-bottom:12px; background:var(--accent); }
.prose a { text-decoration-thickness:1px; text-underline-offset:4px; }
.prose a:hover { text-decoration-thickness:2px; }
.prose .pull-quote { max-width:660px; margin:48px 0; padding:4px 0; border:0; font-size:22px; line-height:1.75; font-weight:700; text-wrap:balance; }
.pull-quote mark { color:inherit; background:none; box-shadow:inset 0 -.4em 0 var(--highlight); box-decoration-break:clone; -webkit-box-decoration-break:clone; }

/* All explanatory figures share a frame, label, title and readable caption. */
.prose .table-figure, .prose .diagram, .prose .chart { margin:36px 0; padding:24px; border:1px solid var(--figure-rule); }
.figure-heading { margin-bottom:24px; }
.figure-meta { gap:6px 14px; margin-bottom:8px; }
.figure-id { font-weight:700; }
.prose .figure-title { font-weight:700; }
.prose figcaption { margin-top:20px; padding-top:16px; color:var(--ink); border-top:1px solid var(--rule); }

/* A continuous encrypted route with scenes showing the state of the message. */
.prose .illustrated-flow { position:relative; isolation:isolate; gap:28px; }
.illustrated-flow::before { content:''; position:absolute; z-index:-1; left:16.66%; right:16.66%; top:40px; height:34px; border:1px solid #a4bd98; background:#cfdfbe; box-shadow:0 4px 0 #e6e9dc; }
.illustrated-flow::after { content:''; position:absolute; z-index:-1; left:16.66%; right:16.66%; top:57px; border-top:1px dashed #82987a; }
.prose .illustrated-flow li { border:0; padding:130px 0 0; text-align:center; }
.illustrated-flow li > span { position:static; display:inline; margin:0 7px 0 0; padding:0; background:none; font:700 14px/24px Pretendard,sans-serif; color:var(--accent); font-variant-numeric:tabular-nums; }
.illustrated-flow li:not(:last-child)::after { content:none; }
.illustrated-flow b, .illustrated-flow li:last-child b { display:inline; color:var(--ink); font-weight:700; }
.flow-scene { position:absolute; top:0; left:50%; transform:translateX(-50%); width:144px; height:112px; fill:none; stroke:var(--accent); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.flow-scene { filter:drop-shadow(3px 4px 0 #d9ddce); }
.flow-scene > rect:first-of-type { fill:#234c3d; }
.flow-scene > path:first-of-type { stroke:#a9bf9e; }
.flow-scene > path:nth-of-type(2) { stroke:#ead9b9; }
.flow-scene:not(.flow-scene-relay) > rect:nth-of-type(2) { fill:#faf9f5; }
.flow-scene:not(.flow-scene-relay) > path[fill="#ead9b9"] { fill:#d6a148; }
.flow-scene-relay > rect:nth-of-type(2) { fill:#dfa943; }
.flow-scene-relay > path { stroke:#234c3d; }
.flow-scene-relay > path[stroke="#faf9f5"] { stroke:#fff; }
.flow-scene-relay > path:nth-of-type(2) { stroke:#faf9f5; }
.route-signal { position:absolute; top:47px; right:-24px; width:20px; height:20px; color:var(--accent); z-index:2; }
.route-signal::before { content:''; display:block; width:7px; height:7px; margin:5px; border-top:2px solid; border-right:2px solid; transform:rotate(45deg); }
.route-signal::after { content:''; position:absolute; width:4px; height:4px; background:#ad792a; left:-10px; top:8px; box-shadow:-10px 0 0 #65875c; }
.illustrated-flow p { max-width:19ch; margin:8px auto 0; text-align:left; }
.connection-band { display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; margin-top:22px; padding:14px 16px; background:var(--soft); font-size:16px; line-height:28px; font-weight:600; }
.connection-band svg { width:20px; height:20px; margin-top:4px; fill:none; stroke:var(--accent); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* The label needs less width than the explanation. */
.compact-table th { width:auto; }
.compact-table thead th:first-child, .compact-table tbody th { width:32%; }
.compact-table thead th { padding:12px; background:#dfe7d5; border-bottom:1px solid var(--figure-rule); }
.compact-table tbody th, .compact-table td { padding:16px 12px; }
.compact-table tbody th { font-weight:700; }
.compact-table tbody tr:last-child > * { border-bottom:0; }

/* Keep the complete example URL; break only between its components. */
.address-example { padding:0 0 24px; }
.address-example p { margin-bottom:10px; font-size:16px; line-height:28px; font-weight:600; }
.address-window { border:1px solid var(--figure-rule); background:#fffefa; }
.address-chrome { display:flex; align-items:center; gap:12px; height:34px; padding:0 14px; background:var(--soft); border-bottom:1px solid var(--rule); }
.address-chrome svg { width:64px; height:18px; flex:none; fill:none; stroke:var(--accent); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.address-chrome span { height:4px; width:56px; background:#c3cfbd; }
.address-window > code { display:block; padding:18px 16px 22px; font:18px/2 ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--ink); overflow-wrap:normal; word-break:normal; }
.address-example .address-segment { white-space:nowrap; }
.address-example strong { background:#edf0e8; color:inherit; padding:3px 0; border-bottom:2px solid var(--accent); font-weight:700; }
.address-example strong { background:#dfe7d5; }
.domain-extract { position:relative; width:max-content; max-width:100%; margin-left:16px; padding-top:22px; }
.domain-extract::before { content:''; position:absolute; top:0; left:20px; width:18px; height:15px; border-left:1px solid var(--accent); border-bottom:1px solid var(--accent); }
.domain-extract::after { content:attr(data-domain); display:block; padding:8px 14px; background:var(--accent); color:#fff; font:700 24px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; box-shadow:3px 3px 0 #d4dfc9; }

.prose .decision-list li { margin-bottom:20px; padding-left:8px; }
.decision-list li::marker { color:var(--accent); font-weight:700; font-variant-numeric:tabular-nums; }
.decision-list strong { display:block; margin-bottom:6px; }
.prose .sources { font-size:14px; line-height:1.85; border-top:1px solid var(--figure-rule); }
.site-footer { border-top:1px solid var(--figure-rule); }

@media (max-width:620px) {
  .masthead { padding:22px 0 20px; gap:8px; }
  .article-heading { padding-top:22px; }
  .article-heading:has(.article-updated) { padding-bottom:24px; }
  .article-updated { margin-bottom:16px; }
  .article-heading h1 { letter-spacing:-.02em; }
  .dek { margin-top:18px; }
  .article-hero { margin-bottom:28px; }
  .article-hero img { height:140px; object-position:70% center; }
  .prose > h2 { margin-top:40px; margin-bottom:16px; }
  .prose > h2::before { margin-bottom:10px; }
  .prose .pull-quote { margin:40px 0; }
  .prose .table-figure, .prose .diagram, .prose .chart { margin:32px 0; padding:18px; }
  .figure-heading { margin-bottom:22px; }
  .figure-meta { column-gap:12px; }

  .prose .illustrated-flow { display:block; }
  .illustrated-flow::before, .illustrated-flow::after { content:none; }
  .prose .illustrated-flow li { min-height:112px; padding:0 0 32px 108px; text-align:left; }
  .prose .illustrated-flow li:last-child { padding-bottom:0; }
  .illustrated-flow li > span { margin-right:6px; line-height:29px; }
  .illustrated-flow li:not(:last-child)::before { content:''; position:absolute; z-index:-1; top:46px; bottom:-46px; left:35px; width:26px; background:#cfdfbe; border-inline:1px solid #a4bd98; }
  .illustrated-flow li:not(:last-child)::after { content:''; position:absolute; z-index:-1; top:46px; bottom:-46px; left:48px; right:auto; width:0; height:auto; border-left:1px dashed #82987a; background:none; }
  .flow-scene { width:96px; height:80px; top:6px; left:0; transform:none; }
  .route-signal { top:auto; bottom:-8px; right:auto; left:39px; transform:rotate(90deg); }
  .illustrated-flow p { max-width:none; margin:6px 0 0; }
  .connection-band { margin-top:20px; padding:12px; gap:8px; }

  /* Explicit table roles/headers remain in the HTML for assistive technology. */
  .compact-table, .compact-table tbody, .compact-table tbody tr { display:block; width:100%; }
  .compact-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
  .compact-table tbody tr { padding:16px 0; border-bottom:1px solid var(--rule); }
  .compact-table tbody tr:first-child { padding-top:0; }
  .compact-table tbody tr:last-child { padding-bottom:0; border-bottom:0; }
  .compact-table tbody th, .compact-table td { display:block; width:100%; padding:0; border:0; }
  .compact-table td { padding-top:6px; }
  .address-example { padding:0 0 22px; }
  .address-window > code { padding:14px 12px 18px; font-size:16px; }
  .address-chrome { padding-inline:12px; }
  .domain-extract { margin-left:12px; }
  .domain-extract::after { font-size:22px; }
}

@media (forced-colors:active) {
  .prose > h2::before, .tagline::before { background:CanvasText; }
  .illustrated-flow::before, .illustrated-flow::after, .illustrated-flow li:not(:last-child)::before, .illustrated-flow li:not(:last-child)::after { border-color:CanvasText; }
  .pull-quote mark { box-shadow:none; text-decoration:underline; }
}
@media print {
  .article-hero img { height:auto; }
  .skip-link { display:none; }
  .pull-quote mark { box-shadow:none; text-decoration:underline; }
}

/* Simple diagrams do not reserve space for illustrations. */
.prose .flow:not(.illustrated-flow) li { border-top:2px solid var(--figure-rule); }
.flow:not(.illustrated-flow) li > span { color:var(--accent); font-weight:700; }
.track i { background:#a16e24; }
.after .track i { background:var(--accent); }
.prose .article-hero { margin:0 0 32px; padding:0; border:0; }
.prose .article-hero figcaption { border-top:0; padding-top:0; }
@media(max-width:620px) {
  .prose .article-hero { margin-bottom:28px; }
}

/* Opt-in published journal articles; no dependency on legacy site CSS. */
.tagline { font-size:16px; letter-spacing:-.015em; }
.tagline::before { content:none; display:none; }
.tagline strong { font-weight:700; }
.article { min-width:0; }
.prose h2 { position:relative; }
.prose .verification-record { margin-top:48px; padding-top:8px; border-top:1px solid var(--figure-rule); }
.prose figure { border:1px solid var(--figure-rule); padding:24px; margin:36px 0; }
.prose figure figcaption { font-size:16px; line-height:28px; }
.prose figcaption p { margin:12px 0 0; }
.prose figcaption span { display:block; }
.prose .figure-title { margin:0; font-size:18px; line-height:1.65; font-weight:700; }
.prose .figure-heading { margin-bottom:24px; }
.post-note { margin:24px 0 0; font-size:14px; line-height:1.85; }
.post-note:first-of-type { border-top:1px solid var(--rule); padding-top:20px; }
.prose pre { font-size:16px; line-height:1.85; color:#f4f4f4; background:#25272b; }
.code-block { border-radius:6px; }
.prose .evidence-image { display:block; max-width:100%; width:auto; height:auto; max-height:none; margin-inline:auto; }
.table-figure table { font-size:16px; min-width:620px; }
.table-figure thead th { background:#dfe7d5; }
.table-figure :is(th,td) { overflow-wrap:anywhere; }
.trace-flow { display:grid; grid-template-columns:1fr 24px 1fr 24px 1fr; gap:12px; align-items:center; font-size:16px; line-height:1.75; }
.trace-inputs { display:grid; gap:8px; }
.trace-inputs span { background:var(--soft); padding:9px 12px; }
.trace-node,.trace-ad { background:var(--accent); color:#fff; text-align:center; padding:22px 10px; font-weight:700; }
.trace-ad { background:var(--highlight); color:var(--ink); }
.trace-flow i { font-style:normal; color:var(--accent); }
.study-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.study-numbers>div { border-top:3px solid var(--accent); background:var(--soft); padding:18px 12px; }
.study-numbers b { display:block; font-size:28px; line-height:1.5; font-variant-numeric:tabular-nums; }
.study-numbers span { display:block; margin-top:8px; font-size:16px; line-height:1.75; }
.phone-panels { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.phone-panels section { border:1px solid var(--rule); padding:18px; }
.phone-top { font-size:18px; font-weight:700; margin-bottom:14px; }
.phone-panels p,.phone-panels small { display:block; font-size:16px; line-height:28px; }
.phone-panels small { margin-top:14px; border-top:1px solid var(--rule); padding-top:12px; }
.green-dot,.orange-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; background:#23653d; }
.orange-dot { background:#b76613; }
.editorial-chart { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; align-items:end; }
.graphic-label { font-size:16px; line-height:1.75; color:var(--ink); }
.graphic-label-0 { font-size:18px; font-weight:700; grid-column:1/-1; }
.editorial-chart .graphic-label-1 { grid-column:1/-1; margin-bottom:16px; }
.editorial-chart .graphic-label-2,.editorial-chart .graphic-label-4 { grid-row:3; font-size:24px; font-weight:700; text-align:center; }
.editorial-chart .graphic-label-2 { grid-column:1; }
.editorial-chart .graphic-label-4 { grid-column:2; }
.editorial-chart .graphic-label-2::after,.editorial-chart .graphic-label-4::after { content:''; display:block; width:65%; height:49.2px; margin:10px auto 0; background:var(--accent); }
.editorial-chart .graphic-label-4::after { height:160px; background:#b17c32; }
.editorial-chart .graphic-label-3 { grid-row:4; grid-column:1; text-align:center; }
.editorial-chart .graphic-label-5 { grid-row:4; grid-column:2; text-align:center; }
.editorial-steps { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.editorial-steps .graphic-label-0 { margin-bottom:22px; }
.editorial-steps :is(.graphic-label-1,.graphic-label-4,.graphic-label-7,.graphic-label-10) { font-size:18px; font-weight:700; background:var(--soft); border-top:3px solid var(--accent); padding:14px 14px 6px; }
.editorial-steps :is(.graphic-label-2,.graphic-label-5,.graphic-label-8,.graphic-label-11) { background:var(--soft); padding:0 14px 16px; margin-bottom:20px; }
.editorial-steps .graphic-label-1 { grid-column:1;grid-row:2; }.editorial-steps .graphic-label-2 { grid-column:1;grid-row:3; }
.editorial-steps .graphic-label-4 { grid-column:2;grid-row:2; }.editorial-steps .graphic-label-5 { grid-column:2;grid-row:3; }
.editorial-steps .graphic-label-7 { grid-column:1;grid-row:4; }.editorial-steps .graphic-label-8 { grid-column:1;grid-row:5; }
.editorial-steps .graphic-label-10 { grid-column:2;grid-row:4; }.editorial-steps .graphic-label-11 { grid-column:2;grid-row:5; }
.editorial-steps :is(.graphic-label-3,.graphic-label-6,.graphic-label-9) { display:none; }
.editorial-steps .graphic-label-12 { grid-column:1/-1; border-top:1px solid var(--rule); padding-top:16px; }
@media(max-width:620px){
 .tagline{font-size:15px}.prose figure{padding:18px;margin:32px 0}
 .trace-flow{grid-template-columns:1fr;gap:12px}.trace-flow i{transform:rotate(90deg);justify-self:center}
 .trace-inputs{grid-template-columns:1fr}.trace-node br{display:none}
 .study-numbers,.phone-panels{grid-template-columns:1fr;gap:14px}
 .study-numbers>div{padding:14px}.study-numbers b{font-size:26px}.study-numbers span{margin-top:4px}
 .editorial-steps{display:block}.editorial-chart{column-gap:14px}
}

/* Published-article visual normalization; only the authorized remaining articles opt in. */
.prose .journal-diagram-scroll{overflow:auto;max-width:100%;overscroll-behavior-inline:contain;border:1px solid #c3ccbc;background:#fffdf8}
.prose .journal-diagram-scroll:focus-visible{outline:2px solid #244d40;outline-offset:3px}
.prose .journal-diagram-scroll svg,.prose .journal-diagram-scroll svg *{font-family:Pretendard,sans-serif!important}
.prose .journal-diagram-help{font-size:16px;line-height:1.8;color:#25382e;margin:12px 0}
.prose .journal-action-steps{list-style:none;counter-reset:action;margin:32px 0;padding:24px;border:1px solid #a8b6a2;background:#f0f2e8}
.prose .journal-action-steps>li{counter-increment:action;position:relative;margin:0;padding:0 0 24px 42px;font-size:18px;line-height:1.85}
.prose .journal-action-steps>li:last-child{padding-bottom:0}
.prose .journal-action-steps>li::before{content:counter(action);position:absolute;left:0;top:3px;width:28px;height:28px;line-height:28px;text-align:center;border-radius:50%;background:#244d40;color:white;font-size:16px;font-weight:650}
.prose .journal-action-steps>li:not(:last-child)::after{content:'';position:absolute;left:13px;top:38px;bottom:8px;border-left:1px solid #9baa91}
.prose .journal-key-points{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:32px 0;padding:0}
.prose .journal-key-points>li{margin:0;padding:18px 20px;border:1px solid #b6c1ad;border-top:3px solid #244d40;background:#f0f2e8;font-size:18px;line-height:1.85}
.prose .journal-key-points>li:last-child:nth-child(odd){grid-column:1/-1}
.prose .journal-pullquote{margin:32px 0;padding:22px 24px;border:0;border-left:4px solid #ad721d;background:#f3e7ce;color:#182a24;font-size:18px;line-height:1.85}
.prose .journal-pullquote p{color:inherit;font-size:inherit}
.prose figure figcaption{color:#25382e}
.prose .figure-explanation{font-size:16px;line-height:1.85;border-top:1px solid #a8b6a2;padding-top:18px;margin-top:18px}
.prose .figure-explanation p{font-size:16px;line-height:1.85}
.prose .manuscript,.prose .chapter,.prose .opening,.prose .ending{max-width:100%;width:auto}
.prose :is(p,li,small){overflow-wrap:break-word}
.prose small{font-size:16px;line-height:1.8;color:#25382e}
.prose .table-scroll{max-width:100%}
.prose pre{white-space:pre;overflow:auto;max-width:100%;tab-size:2}
.prose .sources li,.prose .sources p{font-size:14px}
.article-hero img{object-position:center}
.prose .process-figure ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;padding:0;counter-reset:process}
.prose .process-figure li{counter-increment:process;margin:0;border-top:3px solid #244d40;padding:16px;background:#f0f2e8}
.prose .process-figure li::before{content:'0' counter(process);display:block;font-size:16px;color:#244d40;margin-bottom:8px}
.prose .process-figure li b{display:block;font-size:20px}.prose .process-figure li span{display:block;font-size:16px;line-height:1.8;margin-top:8px}
.prose .figure-top figcaption{font-size:21px;font-weight:700}.prose .figure-top>span{display:block;font-size:16px;color:#25382e}
.prose .bar-group{padding:24px 0;border-top:1px solid #b6c1ad}.prose .bar-group>p{font-size:18px;font-weight:600}
.prose .change-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;font-size:30px;font-weight:600;margin-bottom:20px}
.prose .change-summary small{font-size:18px}.prose .change-delta{font-size:16px}.prose .change-arrow{font-size:24px}
.prose .bar-row{display:grid;grid-template-columns:48px minmax(0,1fr) 46px;gap:10px;align-items:center;font-size:16px;margin:12px 0}
.prose .bar-track{height:25px;background:repeating-linear-gradient(to right,#d1d7cc 0,#d1d7cc 1px,transparent 1px,transparent 25%);border-right:1px solid #d1d7cc}
.prose .bar-track i{display:block;height:100%;background:#ae7938;min-width:1px}.prose .after .bar-track i{background:#244d40}
.prose .bars .bar-row{grid-template-columns:150px minmax(0,1fr) 44px;gap:14px;margin:22px 0}
.prose .track,.prose .depth-row>i{display:block;height:28px;background:#e5e9dd}
.prose .track>i,.prose .depth-row>i>b{display:block;height:100%;background:#244d40}
.prose .depth-row{display:grid;grid-template-columns:180px minmax(0,1fr) 50px;gap:16px;align-items:center;font-size:18px;margin:24px 0}
.prose .depth-row.is-warm>i>b{background:#ae7938}
.prose .axis{display:flex;justify-content:space-between;margin:0 54px 20px 58px;font-size:16px}
.prose .editorial-pullquote{border-left:4px solid #ad721d;background:#f3e7ce;padding:22px;margin:32px 0}
.prose .editorial-pullquote p{font-size:20px;line-height:1.8}.prose .editorial-pullquote>span{font-size:16px}
.prose .chapter-heading{margin-top:48px}.prose .chapter-heading>span,.prose .ending-label{font-size:16px;color:#244d40}
@media(max-width:620px){.prose .process-figure ol{grid-template-columns:1fr;gap:16px}.prose .change-summary{font-size:26px}}
@media(max-width:620px){.prose .bars .bar-row,.prose .depth-row{grid-template-columns:minmax(0,1fr) 48px;gap:8px}.prose .bars .bar-row>span,.prose .depth-row>span{grid-column:1/-1}.prose .bars .bar-row br{display:none}}
@media(max-width:620px){.prose .journal-key-points{grid-template-columns:1fr}.prose .journal-key-points>li{padding:16px}.prose .journal-action-steps{padding:18px}.prose .journal-action-steps>li{padding-left:38px}.prose .journal-pullquote{padding:18px}}
