/* The Practical Byte — standalone scoped article stylesheet (no scripts/frameworks) */
.tpb-article-page{--forest:#102f2c;--teal:#176a60;--mint:#72dcb2;--cream:#f7f6f0;--ink:#173831;--muted:#62736c;--line:#d8e3db;--peach:#fae7db;--white:#fffdf9;margin:0;background:var(--cream);color:var(--ink);font:400 16.5px/1.76 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.tpb-article-page,.tpb-article-page *{box-sizing:border-box}
.tpb-article-page a{color:#146e63;text-decoration-thickness:1.5px;text-underline-offset:3px}
.tpb-article-page a:hover{color:#0b493f}
.tpb-article-page a:focus-visible{outline:3px solid #1cb18b;outline-offset:4px;border-radius:3px}
.tpb-shell{max-width:1350px;margin:auto;padding:0 34px}
.tpb-brandbar{background:var(--forest);color:white;border-top:6px solid #59d5ae}
.tpb-brandbar-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.tpb-brand{display:flex;align-items:center;gap:13px;color:white;text-decoration:none!important}
.tpb-brandmark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#22564c;color:#d2ffe6;font-size:15px;font-weight:800;letter-spacing:-1px;border:1px solid #449a81}
.tpb-brandtext{font-weight:850;letter-spacing:.08em;font-size:15px;line-height:1.2}
.tpb-brandbar small{font-size:12px;opacity:.72}
.tpb-toplinks{display:flex;gap:24px;font-size:13px}
.tpb-toplinks a{color:#ccecdf;text-decoration:none}
.tpb-toplinks a:hover{color:#fff}
.tpb-masthead{padding:64px 0 34px;max-width:970px}
.tpb-eyebrow{display:inline-block;color:#126958;letter-spacing:.13em;font-size:12px;font-weight:800;text-transform:uppercase}
.tpb-masthead h1{margin:17px 0 19px;font-size:clamp(2.2rem,4.2vw,3.85rem);font-weight:820;letter-spacing:-.047em;line-height:1.115;color:#10352f;max-width:1080px}
.tpb-deck{font-size:clamp(1.13rem,2vw,1.35rem);max-width:810px;line-height:1.55;color:#4a6259;margin:0 0 21px}
.tpb-byline{display:flex;flex-wrap:wrap;gap:9px 16px;align-items:center;color:#5b6e66;font-size:14px}
.tpb-author{font-weight:750;color:#17483c}
.tpb-dot{color:#a6bdb0}
.tpb-hero{margin:0 0 50px}
.tpb-hero picture,.tpb-hero img{display:block;width:100%}
.tpb-hero img{height:auto;border-radius:22px;box-shadow:0 24px 54px rgba(7,52,40,.13);background:#e9f0e9}
.tpb-hero figcaption{color:#65796e;font-size:12.5px;margin:13px 4px 0;line-height:1.5}
.tpb-page-grid{display:grid;grid-template-columns:230px minmax(0,820px);justify-content:center;gap:70px;align-items:start;padding-bottom:90px}
.tpb-sidebar{position:sticky;top:24px;align-self:start;font-size:13px;padding-top:4px}
.tpb-toc{border-left:2px solid #c9ded5;padding-left:20px}
.tpb-toc strong{display:block;font-size:11px;letter-spacing:.15em;color:#568271;margin-bottom:18px}
.tpb-toc ul{margin:0;padding:0;list-style:none}
.tpb-toc li{margin:0 0 13px;line-height:1.4}
.tpb-toc a{color:#56746a;text-decoration:none}
.tpb-toc a:hover{color:#0b6e5c;text-decoration:underline}
.tpb-side-note{margin-top:37px;padding:18px;border-radius:13px;background:#e4eee7;color:#38594d;line-height:1.55}
.tpb-side-note b{color:#145c4f}
.tpb-prose{min-width:0;font-size:17px;line-height:1.84;color:#273e35}
.tpb-prose>p:first-child::first-letter{font-size:3.3em;float:left;line-height:.82;margin:.13em .13em 0 0;font-family:Georgia,serif;color:#167567}
.tpb-prose h2{font-size:clamp(1.55rem,2.3vw,2.08rem);letter-spacing:-.035em;line-height:1.25;margin:63px 0 23px;color:#0c4237;font-weight:780;scroll-margin-top:28px}
.tpb-prose h2:before{content:"";display:block;width:48px;height:4px;background:#48c5a0;margin-bottom:15px;border-radius:3px}
.tpb-prose h3{font-size:1.24rem;letter-spacing:-.012em;line-height:1.35;margin:35px 0 12px;color:#21564a;scroll-margin-top:28px}
.tpb-prose p{margin:0 0 20px}
.tpb-prose strong{color:#143c33;font-weight:750}
.tpb-prose blockquote{margin:32px 0;padding:25px 29px 25px 31px;background:#e4f1e9;border-left:5px solid #26a780;color:#174e40;border-radius:0 14px 14px 0;font-size:1.085em;line-height:1.7}
.tpb-prose blockquote p:last-child{margin:0}
.tpb-prose ul,.tpb-prose ol{padding-left:27px;margin:0 0 25px}
.tpb-prose li{padding-left:5px;margin-bottom:9px}
.tpb-prose li::marker{color:#18846d;font-weight:800}
.tpb-table-wrap{overflow-x:auto;width:100%;margin:28px 0 38px;border:1px solid #d1e2d8;border-radius:15px;box-shadow:0 7px 24px rgba(19,63,45,.045)}
.tpb-prose table{width:100%;min-width:545px;border-collapse:collapse;font-size:.91em;line-height:1.55;background:#fffdfa}
.tpb-prose th{background:#123d34;color:#ffffff;font-size:14px;text-align:left;padding:16px 18px;vertical-align:top}
.tpb-prose td{padding:15px 18px;border-bottom:1px solid #e2ebe2;vertical-align:top}
.tpb-prose tr:nth-child(even) td{background:#f2f7f1}
.tpb-prose tr:last-child td{border-bottom:0}
.tpb-prose figure{margin:40px 0 44px}
.tpb-prose figure img{display:block;width:100%;height:auto;border-radius:15px;border:1px solid #deebe3}
.tpb-prose figure figcaption{font-size:13px;line-height:1.55;color:#65746b;margin-top:11px}
.tpb-prose h2:last-of-type{border-top:1px solid #cce0d4;padding-top:40px}
.tpb-prose>ol:last-of-type{font-size:.93em}
.tpb-endnote{margin-top:42px;padding:24px 27px;border:1px solid #dfd9c9;border-radius:14px;background:#fff9ef;color:#756550;font-size:14px}
.tpb-footer{background:#102f2c;color:#e8f7f0;padding:38px 0 46px}
.tpb-footer-row{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}
.tpb-footer b{font-size:15px;letter-spacing:.07em}
.tpb-footer p{font-size:13px;margin:5px 0 0;color:#bcdbce}
.tpb-footer small{color:#bad4c9;font-size:12px}
@media(max-width:1120px){.tpb-page-grid{grid-template-columns:195px minmax(0,1fr);gap:38px}.tpb-shell{padding:0 28px}.tpb-masthead{padding-top:52px}}
@media(max-width:820px){.tpb-page-grid{display:block;max-width:770px}.tpb-sidebar{position:static;display:none}.tpb-masthead{padding:40px 0 27px}.tpb-hero{margin-bottom:29px}.tpb-toplinks{display:none}.tpb-prose{font-size:16.5px}}
@media(max-width:490px){.tpb-shell{padding:0 18px}.tpb-brandbar-inner{min-height:67px}.tpb-brandmark{width:38px;height:38px}.tpb-brandtext{font-size:13px}.tpb-brandbar small{font-size:10.5px}.tpb-masthead h1{font-size:2.16rem;line-height:1.13;margin:14px 0 16px}.tpb-deck{font-size:1.04rem}.tpb-masthead{padding:34px 0 24px}.tpb-byline{font-size:12.5px}.tpb-hero img{border-radius:13px}.tpb-prose{font-size:16px;line-height:1.79}.tpb-prose h2{margin-top:48px;font-size:1.65rem}.tpb-prose h3{font-size:1.18rem}.tpb-prose blockquote{padding:19px 20px;margin:25px 0}.tpb-prose ul,.tpb-prose ol{padding-left:23px}.tpb-table-wrap{margin-left:0;margin-right:0}.tpb-prose table{font-size:13px}.tpb-prose th,.tpb-prose td{padding:12px 13px}.tpb-prose figure{margin:27px 0}.tpb-footer{padding:33px 0}}
@media(prefers-reduced-motion:no-preference){.tpb-article-page{scroll-behavior:smooth}}
@media print{.tpb-sidebar,.tpb-brandbar,.tpb-footer{display:none!important}.tpb-page-grid{display:block}.tpb-prose{font-size:11pt}.tpb-hero img{max-height:350px;object-fit:cover}.tpb-shell{max-width:none}}

/* Production integration: reviewer credit and shared site chrome. */
.tpb-review-credit{margin:12px 0 0;color:#52665e;font-size:14px}
.tpb-review-credit a{font-weight:750}
.tpb-article-page .site-header a,.tpb-article-page .site-footer a{text-decoration:none}
.tpb-article-page .site-header .brand,.tpb-article-page .site-footer .brand{color:inherit}
.tpb-article-page .site-header .nav a{color:var(--muted)}
.tpb-article-page .site-header .nav a:hover,.tpb-article-page .site-header .nav a[aria-current="page"]{color:var(--text)}
