/* ── blog.html — the page's complete CSS, all 1 style block in source order.
   Standard pages do not use the case-page design system in style.css.
   :root is rescoped in place to .mac-page-blog. ── */

.mac-page-blog{
 --paper:#FFFDFA;--sky:#F8F2E8;--sky2:#F0E6D6;--sky3:#E0D2BE;
 --blue:#2F6F68;--blue-d:#1F4B46;--gold:#B5762C;--gold-text:#8F5D23;--gold-p:#FAF0DC;
 --ink:#2B2926;--ink-soft:#6B6459;--rule:#DED4C4;
 --serif:Georgia,'Times New Roman',serif;
 --sans:'Gill Sans MT','Gill Sans','Trebuchet MS','Segoe UI',sans-serif;
}:root{--navh:94px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--navh) + 34px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
 font-size:19px;line-height:1.68;-webkit-font-smoothing:antialiased}.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
section{padding:68px 0;scroll-margin-top:calc(var(--navh) + 34px)}
h1{font-size:54px;font-size:clamp(36px,5vw,54px);line-height:1.1;margin:0 0 22px;color:var(--blue-d);font-weight:700}
h2{font-size:38px;font-size:clamp(27px,3.2vw,38px);line-height:1.18;margin:0 0 20px;color:var(--blue-d)}
h3{font-size:24px;margin:36px 0 12px;color:var(--blue-d)}
p{margin:0 0 18px;max-width:72ch}.eyebrow{font-family:var(--sans);font-size:16px;letter-spacing:.16em;text-transform:uppercase;
 color:var(--gold-text);margin:0 0 14px;font-weight:600}.lede{font-size:22px;line-height:1.6}
a{color:var(--blue)}

/* ── nav ── */ .nav{position:sticky;top:0;z-index:60;background:var(--sky2);border-bottom:1px solid var(--sky3)}.nav .wrap{display:flex;align-items:center;gap:16px;min-height:var(--navh);max-width:1400px;flex-wrap:nowrap}.brand{font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;white-space:nowrap;color:var(--blue-d);flex:none}.nav ul{display:flex;gap:17px;list-style:none;margin:0;padding:0;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.nav ul::-webkit-scrollbar{display:none}.nav ul a{font-family:var(--sans);font-size:19px;color:var(--ink-soft);text-decoration:none;white-space:nowrap;padding:6px 0;border-bottom:2px solid transparent;display:inline-block;flex:none}.nav ul a:hover{color:var(--blue-d)}.nav ul a[aria-current="true"]{color:var(--blue-d);border-bottom-color:var(--gold);font-weight:700}.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:48px;height:42px;
 padding:0 11px;background:var(--paper);border:1px solid var(--sky3);border-radius:5px;cursor:pointer}.burger span{display:block;height:2px;background:var(--blue-d);border-radius:2px;transition:.18s}.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger[aria-expanded="true"] span:nth-child(2){opacity:0}.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1100px) and (min-width:901px){.nav ul{gap:16px}.nav ul a{font-size:18px}
}
@media(max-width:1140px){.burger{display:flex}.nav ul{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;gap:0;
 background:var(--paper);border-bottom:1px solid var(--sky3);
 box-shadow:0 12px 26px rgba(31,45,56,.15);padding:6px 0;
 max-height:calc(100vh - var(--navh));overflow-y:auto}.nav ul.open{display:flex}.nav ul li{width:100%}.nav ul a{display:block;padding:15px 26px;border-bottom:none;border-left:3px solid transparent;font-size:20px}.nav ul a[aria-current="true"]{border-left-color:var(--gold);background:var(--sky)}
}

/* ── blocks ── */ .hero{background:var(--sky);padding:78px 0 66px;border-bottom:1px solid var(--rule)}.hero h1{font-size:76px;font-size:clamp(42px,7vw,76px);letter-spacing:-.005em;margin:0 0 10px}.firmsub2{display:inline-block;margin-top:8px;font-size:21px;font-size:clamp(17px,1.9vw,21px);letter-spacing:.13em}.firmsub{font-family:var(--sans);font-size:27px;font-size:clamp(19px,2.5vw,27px);letter-spacing:.19em;
 text-transform:uppercase;color:var(--gold-text);font-weight:600;margin:0 0 30px;
 padding-bottom:22px;border-bottom:2px solid var(--sky3);max-width:none}.tagline{font-family:var(--serif);font-size:38px;font-size:clamp(25px,3.3vw,38px);line-height:1.22;
 color:var(--blue-d);font-weight:700;margin:0 0 22px}.hero .not{color:var(--gold-text);font-weight:700}.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin:38px 0 8px}.door{background:var(--paper);border:1px solid var(--rule);border-top:5px solid var(--blue);
 border-radius:8px;padding:28px 26px 24px;display:flex;flex-direction:column}.door:nth-child(2){border-top-color:var(--gold)}.door:nth-child(3){border-top-color:var(--blue-d)}.door h3{margin:0 0 12px;font-size:23px}.door p{font-size:18px;flex:1;margin-bottom:20px}.door .cta{font-family:var(--sans);font-size:17px;font-weight:600;color:var(--gold-text);
 text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:2px;align-self:flex-start}.offer{background:var(--gold-p);border:1px solid #E6D3AE;border-radius:10px;padding:34px 34px 28px;margin:40px 0}.offer h3{margin-top:0}.offer .steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-top:22px}.offer .step{background:var(--paper);border:1px solid var(--rule);border-radius:7px;padding:16px 18px}.offer .step b{display:block;font-family:var(--sans);font-size:16px;letter-spacing:.1em;
 text-transform:uppercase;color:var(--gold-text);margin-bottom:6px}.offer .step span{font-size:17px}.figblock{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:26px 28px 20px;margin:32px 0}.figblock svg{width:100%;height:auto;display:block}.figblock .note{font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin:16px 0 0;
 line-height:1.55;border-top:1px solid var(--rule);padding-top:14px;max-width:none}.finds{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin-top:30px}.find{background:var(--paper);border:1px solid var(--rule);border-left:5px solid var(--gold);
 border-radius:0 8px 8px 0;padding:22px 24px}.find b{display:block;font-family:var(--sans);font-size:16px;letter-spacing:.09em;
 text-transform:uppercase;color:var(--ink-soft);margin-bottom:9px}.find p{font-size:18px;margin:0 0 12px}.find em{font-style:normal;color:var(--gold-text);font-weight:700;font-size:17px}.pivot{font-family:var(--serif);font-size:27px;font-style:italic;color:var(--blue-d);
 text-align:center;margin:44px auto;max-width:26ch;line-height:1.4}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;margin:32px 0}.stat{background:var(--sky);border:1px solid var(--sky3);border-radius:8px;padding:22px 18px;text-align:center}.stat b{display:block;font-family:var(--serif);font-size:38px;line-height:1;color:var(--blue-d);font-weight:700}.stat span{display:block;font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin-top:9px;line-height:1.4}.fns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:28px}.fn{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:22px 24px}.fn h4{font-family:var(--sans);font-size:16px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--gold-text);margin:0 0 10px;font-weight:600}.fn p{font-size:17.5px;margin:0}.creds{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin:34px 0 0}.cred{background:var(--paper);border:1px solid var(--rule);border-top:4px solid var(--gold);
 border-radius:8px;padding:24px 24px 22px}.cred b{display:block;font-family:var(--serif);font-size:34px;line-height:1;color:var(--blue-d);
 font-weight:700;margin-bottom:12px}.cred h4{font-family:var(--sans);font-size:17px;letter-spacing:.05em;color:var(--gold-text);
 margin:0 0 9px;font-weight:700;text-transform:uppercase;line-height:1.3}.cred p{font-size:17.5px;margin:0;line-height:1.55}.offer{background:var(--paper);border:1px solid var(--rule);border-top:5px solid var(--gold);
 border-radius:9px;padding:32px 34px 30px;margin-top:30px}.offer h3{font-size:27px;color:var(--blue-d);margin:0 0 8px}.offer .price{font-family:var(--sans);font-size:17px;letter-spacing:.11em;text-transform:uppercase;
 color:var(--gold-text);font-weight:700;margin:0 0 16px}.offer .what{background:var(--sky);border:1px solid var(--sky3);border-radius:7px;
 padding:20px 24px;margin:22px 0}.offer .what h4{font-family:var(--sans);font-size:16px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--ink-soft);margin:0 0 10px;font-weight:700}.offer .what ul{margin:0;padding-left:22px}.offer .what li{font-size:17.5px;line-height:1.5;margin-bottom:7px}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin:22px 0 0}.field{display:flex;flex-direction:column}.field.wide{grid-column:1/-1}.field label{font-family:var(--sans);font-size:17px;font-weight:700;color:var(--blue-d);margin-bottom:6px}.field .hint{font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin-bottom:6px;line-height:1.45}.field input,.field select,.field textarea{font-family:var(--serif);font-size:18px;color:var(--ink);
 background:#fff;border:1px solid var(--sky3);border-radius:6px;padding:11px 13px;width:100%}.field textarea{min-height:92px;resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:1px}.consent{display:flex;gap:12px;align-items:flex-start;margin:22px 0 0;background:var(--gold-p);
 border:1px solid var(--sky3);border-radius:7px;padding:16px 18px}.consent input{margin-top:5px;width:20px;height:20px;flex:none}.consent span{font-size:17px;line-height:1.5}.submit{font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:.03em;
 background:var(--gold-text);color:#fff;border:none;border-radius:7px;padding:15px 34px;
 margin-top:22px;cursor:pointer}.submit:hover{background:#6F5106}.formnote{font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin:14px 0 0;line-height:1.5}.limits{border-left:4px solid var(--sky3);padding:4px 0 4px 18px;margin:24px 0 0}.limits p{font-size:17.5px;margin:0 0 8px;color:var(--ink-soft)}.limits p:last-child{margin-bottom:0}.callout{background:var(--sky);border-left:5px solid var(--blue-d);border-radius:0 8px 8px 0;
 padding:26px 30px;margin:34px 0}.callout p{margin:0;font-size:20px}.perm{font-family:var(--sans);font-size:19px;color:var(--ink-soft);text-align:center;margin:8px 0 0}.catgroup{margin-top:34px;border:1px solid var(--rule);border-radius:9px;overflow:hidden;background:var(--paper)}.cathead{padding:20px 26px 18px;border-left:6px solid var(--gold);background:var(--sky)}.cathead h3{margin:0 0 6px;font-size:24px;color:var(--blue-d);line-height:1.22}.cathead p{margin:0;font-size:17.5px;color:var(--ink-soft);max-width:none;line-height:1.5}.crow{display:grid;grid-template-columns:minmax(230px,1.15fr) minmax(240px,1.55fr) auto;
 gap:18px;align-items:center;padding:15px 26px;border-top:1px solid var(--rule)}.crow:hover{background:var(--sky)}.crow b{font-family:var(--serif);font-size:19px;color:var(--blue-d);font-weight:700;line-height:1.3}.crow .k{display:block;font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);margin-bottom:4px}.crow span.d{font-size:17px;color:var(--ink);line-height:1.45}.crow span.s{display:block;font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin-top:4px}.crow a{font-family:var(--sans);font-size:17px;font-weight:700;white-space:nowrap;text-decoration:none;
 color:var(--blue);border-bottom:2px solid var(--sky3);padding-bottom:2px}.crow a:hover{border-bottom-color:var(--gold);color:var(--blue-d)}
@media(max-width:780px){.crow{grid-template-columns:1fr;gap:8px;padding:18px 22px}.crow a{justify-self:start}
}.secmark{display:flex;align-items:center;gap:14px;margin:0 0 14px;scroll-margin-top:calc(var(--navh) + 34px)}.secmark b{font-family:var(--sans);font-size:16px;letter-spacing:.18em;color:var(--gold-text);font-weight:700}.secmark i{flex:1;height:2px;background:var(--sky3);display:block}
section{border-top:1px solid transparent}.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;margin-top:32px}.case{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule);
 border-top:6px solid var(--blue);border-radius:9px;padding:28px 28px 24px;
 color:var(--ink);transition:box-shadow.18s}.case.alt{border-top-color:var(--gold)}.case:hover{box-shadow:0 10px 28px rgba(43,41,38,.10)}.case .tag{font-family:var(--sans);font-size:16px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--ink-soft);margin-bottom:10px}.case h3{margin:0 0 12px;font-size:24px;color:var(--blue-d)}.case p{font-size:18px;margin:0 0 16px;flex:1}.case .stat-row{font-family:var(--sans);font-size:17px;color:var(--ink-soft);
 border-top:1px solid var(--rule);padding-top:14px;margin-bottom:14px}.case .stat-row b{color:var(--blue-d);font-family:var(--serif);font-size:20px}.case .btn{align-self:flex-start}.case .btnnote{margin-top:9px}.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:19px;
 font-weight:600;color:#FFFDFA;background:var(--gold-text);border:2px solid var(--gold-text);
 border-radius:8px;padding:15px 26px;text-decoration:none;line-height:1.2;
 transition:background.18s,border-color.18s,transform.18s}.btn:hover{background:var(--blue-d);border-color:var(--blue-d);transform:translateY(-1px)}.btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.btn .ext{font-size:16px;opacity:.85}.btnwrap{margin-top:26px}.btnnote{display:block;font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin-top:10px}.contact{background:var(--sky2);border-top:1px solid var(--sky3)}.det{font-family:var(--sans);font-size:18px;color:var(--ink-soft);margin-top:26px}
footer{background:var(--paper);border-top:1px solid var(--rule);color:var(--ink-soft);
 padding:34px 0;font-family:var(--sans);font-size:16px}.sitefoot{background:var(--sky2);border-top:1px solid var(--sky3);padding:46px 0 34px;margin-top:0}.footgrid{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,1fr));gap:32px}.footbrand b{display:block;font-family:var(--serif);font-size:21px;color:var(--blue-d);
 font-weight:700;line-height:1.25;margin-bottom:8px}.footbrand span{display:block;font-family:var(--sans);font-size:16px;color:var(--ink-soft);line-height:1.5}.footbrand .tag{margin-top:12px;color:var(--gold-text);font-weight:700}.footcol h3{font-family:var(--sans);font-size:16px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--blue-d);margin:0 0 12px;font-weight:700}.footcol a{display:block;font-family:var(--sans);font-size:16px;color:var(--ink-soft);
 text-decoration:none;margin-bottom:9px;line-height:1.4}.footcol a:hover{color:var(--blue-d)}.footrule{height:1px;background:var(--sky3);margin:34px 0 20px}.footbase{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;
 font-family:var(--sans);font-size:16px;color:var(--ink-soft);line-height:1.5}.footbase .legal{color:var(--ink-soft)}
@media(max-width:780px){.footgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.footgrid{grid-template-columns:1fr}}.posts{display:grid;gap:0;margin-top:30px;border-top:1px solid var(--rule)}.post{padding:26px 0;border-bottom:1px solid var(--rule)}.post .pdate{font-family:var(--sans);font-size:16px;letter-spacing:.1em;text-transform:uppercase;
 color:var(--gold-text);font-weight:700;display:block;margin-bottom:8px}.post h3{font-size:25px;color:var(--blue-d);margin:0 0 10px;line-height:1.25}.post p{margin:0;font-size:18px;color:var(--ink);max-width:78ch}.fn p,.fn h4,.mitem span,.footcol a,.footbase,.src, td,.crow span.d{
 overflow-wrap:break-word;word-break:normal;hyphens:none;-webkit-hyphens:none}


@media(max-width:1100px){ }.logo{display:block;flex:none;text-decoration:none;line-height:0}.logo img{height:46px;width:auto;display:block}
@media(max-width:1240px){.logo img{height:56px} }
@media(max-width:1040px){.logo img{height:50px} }
@media(max-width:520px){.logo img{height:44px} }.socrow{display:flex;gap:16px;align-items:center;margin:22px 0 0}.socrow .soc{display:flex;align-items:center;justify-content:center;width:38px;height:38px;
 border:1px solid var(--sky3);border-radius:50%;background:var(--paper)}.socrow .soc svg{fill:var(--ink-soft)}.socrow a.soc{text-decoration:none}.socrow a.soc:hover{border-color:var(--gold)}.socrow a.soc:hover svg{fill:var(--gold)}.nav ul a.soon{color:var(--ink-soft);opacity:.55;cursor:default}

a[href^="mailto:"], a[href^="tel:"]{color:var(--blue);text-decoration:none;
 border-bottom:1px solid var(--sky3)}
a[href^="mailto:"]:hover, a[href^="tel:"]:hover{color:var(--gold-text);border-bottom-color:var(--gold)}.footbase a[href^="mailto:"],.footbase a[href^="tel:"]{color:var(--ink-soft);border-bottom-color:var(--sky3)}.footbase a[href^="mailto:"]:hover,.footbase a[href^="tel:"]:hover{color:var(--blue-d)}.contact a[href^="mailto:"],.contact a[href^="tel:"]{color:var(--gold-text);border-bottom-color:var(--gold)}.miniform{margin-top:26px;max-width:900px}.minirow{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.minifield{display:flex;flex-direction:column;margin-bottom:16px}.minifield.wide{max-width:none}.minifield label{font-family:var(--sans);font-size:16px;font-weight:700;color:var(--blue-d);
 margin-bottom:6px;letter-spacing:.03em}.minifield input{font-family:var(--serif);font-size:17px;padding:11px 13px;border:1px solid var(--sky3);
 border-radius:6px;background:var(--paper);color:var(--ink)}.minifield input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-p)}.miniform .submit{font-family:var(--sans);font-size:18px;font-weight:700;padding:13px 30px;
 border:none;border-radius:6px;background:var(--blue-d);color:#fff;cursor:pointer;margin-top:4px}.miniform .submit:hover{background:var(--gold-text)}.miniform .formnote{font-family:var(--sans);font-size:16px;color:var(--ink-soft);margin:14px 0 0}.nb{display:none}.eml{font-family:var(--sans);color:var(--blue-d);font-weight:700;user-select:all;hyphens:none;-webkit-hyphens:none;overflow-wrap:break-word}.formstatus{display:none;margin-top:18px;padding:16px 20px;border-radius:8px;
  font-family:var(--sans);font-size:17px;line-height:1.55}.formstatus.show{display:block}.formstatus.ok{background:#E8F3E8;border:1px solid #9CC49C;color:#255025}.formstatus.err{background:#FBF2DE;border:1px solid var(--gold);color:#6E5008}.formstatus strong{font-weight:700}

/* series */ .postwrap{max-width:760px;margin:0 auto}.postwrap p{max-width:none;font-size:20px;line-height:1.72;margin:0 0 22px}.postwrap h2{font-size:32px;font-size:clamp(25px,3vw,32px);margin:52px 0 16px;line-height:1.22}.postwrap h3{font-size:24px;margin:38px 0 12px}.postwrap .alist{margin:0 0 24px;padding-left:0;list-style:none}.postwrap .alist li{position:relative;padding-left:26px;margin-bottom:14px;font-size:20px;line-height:1.66}.postwrap .alist li:before{content:"\2014";position:absolute;left:0;color:var(--gold-text);font-weight:700}.postmeta{font-family:var(--sans);font-size:17px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--gold-text);font-weight:700;margin:0 0 12px}.byline{font-family:var(--sans);font-size:19px;color:var(--ink-soft);margin:0 0 34px;
 padding-bottom:26px;border-bottom:2px solid var(--sky3);line-height:1.5}.tblwrap{overflow-x:auto;margin:26px 0 30px;-webkit-overflow-scrolling:touch}
:is(table.dtable,.dtable>table){border-collapse:collapse;width:100%;font-size:17px;line-height:1.5;min-width:540px}
:is(table.dtable,.dtable>table) th{background:var(--blue-d);color:#fff;text-align:left;padding:12px 14px;
 font-family:var(--sans);font-size:16px;vertical-align:top}
:is(table.dtable,.dtable>table) td{padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:top;background:var(--paper)}
:is(table.dtable,.dtable>table) tr:nth-child(even) td{background:var(--sky)}
:is(table.dtable,.dtable>table) td.cat{font-weight:700;color:var(--blue-d)}
table.wide3{min-width:660px;table-layout:fixed}
table.wide3 th:nth-child(1),table.wide3 td:nth-child(1){width:20%}
table.wide3 th:nth-child(2),table.wide3 td:nth-child(2){width:24%}
table.wide3 th:nth-child(3),table.wide3 td:nth-child(3){width:56%}
figure.shot{margin:34px 0;text-align:center}
figure.shot img{max-width:290px;width:100%;height:auto;display:inline-block;
 border:1px solid var(--rule)}
figure.shot.wide img{max-width:330px;border:none}
figure.shot figcaption{font-family:var(--sans);font-size:17px;color:var(--ink-soft);
 margin:12px auto 0;font-style:italic;max-width:560px;line-height:1.5}.endrule{border:0;border-top:2px solid var(--sky3);margin:44px 0 22px}.serienav{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;
 margin:12px 0 0;font-family:var(--sans);font-size:18px}.serienav a{font-weight:700;text-decoration:none;border-bottom:2px solid var(--sky3);padding-bottom:2px}.serienav a:hover{border-bottom-color:var(--gold)}.seriebox{background:var(--sky);border:1px solid var(--rule);border-left:5px solid var(--gold);
 padding:22px 24px;margin:0 0 38px}.seriebox b{font-family:var(--sans);font-size:17px;letter-spacing:.08em;text-transform:uppercase;
 color:var(--gold-text);display:block;margin-bottom:10px}.seriebox ol{margin:0;padding-left:24px;font-size:18px;line-height:1.7}.seriebox li{margin-bottom:5px}.seriebox a{text-decoration:none;border-bottom:1px solid var(--sky3)}.seriebox .here{font-weight:700;color:var(--blue-d)}.post .pnum{font-family:var(--sans);font-size:16px;letter-spacing:.1em;text-transform:uppercase;
 color:var(--gold-text);font-weight:700}
@media(max-width:640px){.postwrap p,.postwrap .alist li{font-size:18px}
 :is(table.dtable,.dtable>table){font-size:16px}
}.serieindex{background:var(--sky);border:1px solid var(--rule);border-left:5px solid var(--gold);
 padding:24px 26px;margin:30px 0 10px}.serieindex b{font-family:var(--sans);font-size:17px;letter-spacing:.08em;text-transform:uppercase;
 color:var(--gold-text);display:block;margin-bottom:12px}.serieindex ol{margin:0;padding-left:24px;font-size:19px;line-height:1.75}.serieindex li{margin-bottom:7px}.serieindex a{text-decoration:none;border-bottom:1px solid var(--sky3);font-weight:700}.serieindex a:hover{border-bottom-color:var(--gold)}.serieindex .dt{color:var(--ink-soft);font-weight:400;font-size:17px}.entry{padding-top:14px;scroll-margin-top:calc(var(--navh) + 30px)}.entry + .entry{border-top:3px solid var(--sky3);margin-top:56px;padding-top:46px}.entry h2{font-size:40px;font-size:clamp(28px,3.8vw,40px);margin:0 0 12px;line-height:1.16}.entry h3{font-size:30px;font-size:clamp(24px,2.8vw,30px);margin:46px 0 15px;line-height:1.22}.entry h4{font-size:23px;margin:34px 0 11px;color:var(--blue-d)}.entry p{max-width:none;font-size:20px;line-height:1.72;margin:0 0 22px}.entry .alist{margin:0 0 24px;padding-left:0;list-style:none}.entry .alist li{position:relative;padding-left:26px;margin-bottom:14px;font-size:20px;line-height:1.66}.entry .alist li:before{content:"\2014";position:absolute;left:0;color:var(--gold-text);font-weight:700}.entrymeta{font-family:var(--sans);font-size:17px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--gold-text);font-weight:700;margin:0 0 10px}.entrysub{font-family:var(--sans);font-size:19px;color:var(--ink-soft);margin:0 0 30px;
 padding-bottom:24px;border-bottom:2px solid var(--sky3);line-height:1.5}.totop{font-family:var(--sans);font-size:17px;margin-top:30px}.totop a{text-decoration:none;border-bottom:1px solid var(--sky3)}
@media(max-width:640px){.entry p,.entry .alist li{font-size:18px} }

/* ---- figures ---- */
figure.figfull{margin:34px 0;padding:0}
figure.figfull svg{display:block;width:100%;height:auto;border:1px solid var(--rule)}
figure.figfull figcaption{font-family:var(--sans);font-size:16px;color:var(--ink-soft);
 margin-top:12px;line-height:1.5;font-style:italic}.photo{margin:0}.photo img{display:block;width:100%;height:auto;border:1px solid var(--rule)}.photo figcaption{font-family:var(--sans);font-size:15px;color:var(--ink-soft);
 padding:12px 2px 0;line-height:1.45;font-style:italic}

/* ===== FIGURES: bigger, readable, scrollable on mobile ===== */
figure.figfull{margin:38px 0;padding:0;
 width:calc(100% + 180px);margin-left:-90px;max-width:100vw;
 overflow-x:auto;-webkit-overflow-scrolling:touch}
figure.figfull svg{display:block;width:100%;min-width:760px;height:auto;
 border:1px solid var(--rule);background:var(--paper)}
figure.figfull figcaption{font-family:var(--sans);font-size:17px;color:var(--ink-soft);
 margin:14px 0 0 90px;line-height:1.5;font-style:italic;max-width:44em}
@media(max-width:1240px){
 figure.figfull{width:100%;margin-left:0}
 figure.figfull figcaption{margin-left:0}
}
@media(max-width:820px){
 figure.figfull svg{min-width:700px}
 figure.figfull:after{content:"\2190 swipe to see the whole chart \2192";
  display:block;font-family:var(--sans);font-size:14px;color:var(--ink-soft);
  padding-top:8px;text-align:center}
}

/* ===== BREAK UP TEXT: lead paragraph after each heading ===== */ .wrap h2 + p{font-size:20px;line-height:1.6;color:var(--blue-d);
 border-left:4px solid var(--gold);padding-left:22px;margin-left:0}

/* ===== KEY-POINT CARDS ===== */ .kpts{display:flex;flex-wrap:wrap;gap:20px;margin:32px 0}.kpts>div{flex:1 1 250px;min-width:0;background:var(--paper);border:1px solid var(--rule);
 border-top:5px solid var(--gold);padding:24px 22px}.kpts h4{font-family:var(--sans);font-size:17px;letter-spacing:.05em;text-transform:uppercase;
 color:var(--blue-d);margin:0 0 11px}.kpts p{font-size:17px;line-height:1.55;color:var(--ink-soft);margin:0;border:none;padding:0}

@media(max-width:820px){
 figure svg,.fig svg,.figure svg{min-width:700px}
 figure,.fig,.figure{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

figure.figfull.big { width:100%;max-width:600px;margin:30px auto 34px;overflow-x:visible }
figure.figfull.big svg { min-width:0 }
figure.figfull.big figcaption { margin-left:0;text-align:center;max-width:none }
figure.lead { margin:4px 0 30px;padding:0;max-width:340px }
figure.lead img { display:block;width:100%;height:auto;border:1px solid var(--rule) }
figure.lead figcaption, figure.inline figcaption { font-family:var(--sans);font-size:17px;
 line-height:1.55;color:var(--ink-soft);margin-top:12px;font-style:italic }
figure.inline { margin:34px 0;padding:0;max-width:430px }
figure.inline img { display:block;width:100%;height:auto;border:1px solid var(--rule) }

figure.inline.right { float:right;width:270px;max-width:45%;margin:6px 0 20px 32px }
@media(max-width:820px){ figure.inline.right { float:none;width:100%;max-width:300px;margin:26px auto } }

/* ── mobile nav fix: the logo is 9.2:1, so at a fixed height it was wider
      than a phone screen and pushed the burger off the right edge ── */
@media(max-width:1140px){
 :root{ --navh:72px }.nav .wrap{ gap:12px;padding:0 18px;min-height:72px;flex-wrap:nowrap }.logo{ flex:0 1 auto;min-width:0;overflow:hidden }.logo img{ height:auto;width:auto;max-height:40px;max-width:100% }.burger{ display:flex;flex:0 0 auto;margin-left:auto }
}
@media(max-width:560px){
 :root{ --navh:64px }.nav .wrap{ padding:0 14px;min-height:64px }.logo img{ max-height:32px }.burger{ width:44px;height:38px;padding:0 10px }.nav ul a{ font-size:19px;padding:14px 20px }
}

/* ── photos wrap with the text instead of interrupting it ── */ .postwrap figure.lead { float:right;width:300px;max-width:42%;margin:6px 0 20px 34px;padding:0 }.postwrap figure.lead.left { float:left;margin:6px 34px 20px 0 }.postwrap figure.inline { float:right;width:270px;max-width:40%;margin:6px 0 18px 32px }.postwrap figure.inline.left { float:left;margin:6px 32px 18px 0 }.postwrap figure.shot { float:right;width:250px;max-width:38%;margin:6px 0 18px 34px;text-align:left }.postwrap figure.shot.left { float:left;margin:6px 34px 18px 0 }
figure.shot img, figure.shot.wide img { max-width:100%;width:100%;border:1px solid var(--rule) }
figure.shot figcaption { margin:11px 0 0;max-width:none;text-align:left;font-size:16px }.entry:after,.postwrap:after { content:"";display:block;clear:both }
@media(max-width:760px){
 figure.lead, figure.lead.left, figure.inline, figure.inline.left,
 figure.shot, figure.shot.left { float:none;width:100%;max-width:320px;margin:24px auto }
}

/* nav stays pinned to the top of the screen while the page scrolls */ .nav { position:fixed;top:0;left:0;right:0;z-index:1000 }
body { padding-top:var(--navh) }

/* ============ PHONE PASS ============
   Everything below exists because the desktop layout used fixed minimum
   widths, which forced the page wider than a phone screen and produced the
   sideways drag. Nothing here changes the desktop layout. */

/* the bar stays on screen while the page scrolls, so the menu button is
   always reachable - position:sticky was silently failing on mobile */.nav { position:fixed;top:0;left:0;right:0;z-index:1000 }
body { padding-top:var(--navh) }

/* phone-shaped chart swaps, where one exists */
figure.chartnarrow { display:none;margin:30px 0;padding:0 }
figure.chartnarrow svg { display:block;width:100%;height:auto;
 border:1px solid var(--rule);background:var(--paper) }

@media(max-width:760px){
 html, body { overflow-x:hidden;max-width:100% }

 /* nothing may be wider than the screen */
 img, svg, table, pre, iframe { max-width:100% }
 figure.figfull, figure.figfull.big { width:100%;max-width:100%;margin-left:0;
  margin-right:0;transform:none;overflow-x:visible }
 figure.figfull svg, figure svg,.fig svg,.figure svg,
 figure.figfull.big svg { min-width:0;width:100%;height:auto }
 figure.figfull:after { content:none }

 /* charts that have a phone version swap to it */
 figure.figfull.chartwide { display:none }
 figure.chartnarrow { display:block }

 /* tables stack into label-and-value rows instead of running off the edge */
 table,.scaletbl { min-width:0;width:100%;font-size:16px }
 table, table tbody, table tr, table td, table th,.scaletbl,.scaletbl tbody,.scaletbl tr,.scaletbl td,.scaletbl th { display:block;width:100% }
 table thead,.scaletbl thead { display:none }
 table tr,.scaletbl tr { border-bottom:2px solid var(--rule);padding:10px 0 }
 table td,.scaletbl td { border-bottom:none;padding:5px 0;width:100% }
 table td:first-child,.scaletbl td:first-child { width:100%;padding-top:12px;
  font-weight:700;color:var(--blue-d) }.scaletbl td.n { text-align:left;font-size:20px }.scaletbl tr.grp td { background:var(--sky2);padding:8px 10px }

 /* floated photos go full width - wrapping text round a photo leaves
    about nine characters a line on a phone */
 figure.lead, figure.lead.left, figure.lead.right,
 figure.inline, figure.inline.left, figure.inline.right,
 figure.shot, figure.shot.left, figure.shot.right,
 figure.sortfig, figure.spoolfig, figure.gradfig, figure.nostpic, figure.heroshot,.me2 figure {
  float:none;width:100%;max-width:320px;margin:24px auto }

 /* multi-column blocks collapse to one column */.cards,.quotes,.vidrow,.hlgrid,.strip,.doors,.reflist { display:block }.cards article,.quotes>figure,.vidrow .vid,.strip>div { width:100%;margin:0 0 18px }.reflist li { margin:0 0 16px }

 /* long unbroken strings (URLs, ids) wrap instead of pushing the page wide */
 p, li, td, th, h1, h2, h3, h4, figcaption, blockquote { overflow-wrap:anywhere }
}

@media(max-width:430px){.wrap { padding-left:16px;padding-right:16px }
 table td,.scaletbl td { font-size:16px }
}

@media(max-width:760px){
 /* a cell told never to wrap will push the page wider than the screen */
 td, th,.scaletbl td,.scaletbl th,.scaletbl td.n,.scaletbl th.n,
 table.reftable td, table.reftable th { white-space:normal }
 table, table.reftable,.scaletbl,.dtable { table-layout:auto }
 /* and a chart figure may never carry a floor width */
 figure svg,.figfull svg,.chartnarrow svg { min-width:0 }
}

@media(max-width:760px){
 /* these tables have no <thead> - the header cells are plain <th> in the first
    row, so hiding thead never touched them and they rendered as a dark band
    with the labels stacked inside it */
 table th,.scaletbl th, table.reftable th,.dtable th,.cases th { display:none }
 table tr:has(> th),.scaletbl tr:has(> th), table.reftable tr:has(> th) { display:none }.hide-sm { display:none }
}

@media(max-width:760px){
 /* table.cases pinned its first column to 20%, which beat the stacking rule
    on specificity and broke company names mid-word (NETFLI / X) */
 table.cases td:first-child, table.cases th:first-child,
 table.deftable td:first-child,.scaletbl td:first-child,
 table.reftable td:first-child { width:100% }
 table.cases td, table.cases th { display:block;width:100% }
 /* nothing breaks mid-word any more */
 p, li, td, th, h1, h2, h3, h4, figcaption, blockquote { overflow-wrap:break-word;word-break:normal }

 /* the column labels come back, as one light line instead of a dark stack */
 table tr:has(> th),.scaletbl tr:has(> th), table.reftable tr:has(> th),
 table.cases tr:has(> th) { display:flex;flex-wrap:wrap;gap:16px;
  background:var(--sky);border-bottom:2px solid var(--rule);padding:9px 12px }
 table th,.scaletbl th, table.reftable th,.dtable th, table.cases th {
  display:inline-block;width:auto;background:none;color:var(--blue-d);
  padding:0;font-size:14px;letter-spacing:.06em;text-transform:uppercase;
  border:none;white-space:nowrap }
 th.hide-sm, td.hide-sm,.hide-sm { display:none }
}

/* ── a soft shadow falling to the right, on photographs only.
      The 4 transparent images (hero drawing, SOTP seal, logo, favicon) are
      excluded by name, since a shadow would trace their silhouette. ── */
figure.lead img,
figure.shot img,
figure.inline img,
figure.sortfig img,
figure.spoolfig img,
figure.gradfig img,
figure.heroshot img,
.nostpic img,
.collage img,
.me2 figure img,
.ridersfig img,
.logowall img,
.life-img,
.cell-img,
.road-sign {
 box-shadow:9px 11px 22px -8px rgba(43,41,38,.34);
 border-radius:2px;
}
.hhero .heroart, .hhero .heroseal, .logo img { box-shadow:none }
@media(max-width:760px){
 figure.lead img, figure.shot img, figure.inline img, figure.sortfig img,
 figure.spoolfig img, figure.gradfig img, figure.heroshot img, .nostpic img,
 .collage img, .me2 figure img, .ridersfig img {
  box-shadow:6px 7px 15px -6px rgba(43,41,38,.30);
 }
}

/* the send button is a real submit control now, not a link */
.formcard button.btn { font:inherit;border:none;cursor:pointer }
.formcard button.btn::-moz-focus-inner { border:0;padding:0 }

/* ── WordPress blocks: a Table block puts className on its <figure> wrapper,
   so every table.dtable rule above also matches .dtable>table. ── */
.dtable.wp-block-table{margin:0}

/* Series navigation on the posts (breadcrumb, series list, pager) - rules copied from
   Jim's 8 Oct blog-*.html files (<style id="blog-css">), 9 Oct. Markup: single.php. */
.pcrumb{font-family:var(--sans);font-size:18px;margin:0 0 20px}
.pcrumb a{color:var(--blue);font-weight:600;text-decoration:none}
.pcrumb span{color:var(--ink-soft)}
.ppager{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:50px 0 10px}
.ppager a{display:block;background:var(--paper);border:1px solid var(--rule);padding:16px 20px;text-decoration:none;color:var(--ink);font-family:var(--sans)}
.ppager a small{display:block;font-size:16px;color:var(--ink-soft);margin-bottom:4px}
.ppager a b{font-size:20px;font-weight:500}
.ppager a.next{text-align:right}
.ppager .all{grid-column:1/-1;text-align:center;border-style:dashed}
.serieindex [aria-current]{font-weight:600}
@media (max-width:820px){.ppager{grid-template-columns:1fr}.ppager a.next{text-align:left}}
