/* The Practical Byte | standalone article. All selectors are scoped to .tpb-page. */
.tpb-page{--tpb-ink:#14332f;--tpb-deep:#0d3433;--tpb-teal:#18695e;--tpb-mint:#61d6ad;--tpb-paper:#faf8f2;--tpb-stroke:#dbe7df;--tpb-muted:#57716a;margin:0;background:var(--tpb-paper);color:var(--tpb-ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.tpb-page *{box-sizing:border-box}
.tpb-page a{color:var(--tpb-teal);text-underline-offset:3px}
.tpb-page a:hover{color:#06382f}
.tpb-page a:focus-visible,.tpb-page [tabindex]:focus-visible{outline:3px solid #e99f71;outline-offset:3px;border-radius:4px}
.tpb-page .tpb-skip{position:absolute;top:-90px;left:15px;z-index:1000;padding:12px 17px;color:#fff;background:#0b3331}
.tpb-page .tpb-skip:focus{top:12px}
.tpb-page .tpb-container{max-width:1260px;padding-left:clamp(19px,4vw,58px);padding-right:clamp(19px,4vw,58px);margin:0 auto}
.tpb-page .tpb-site-header{background:#0c3331;color:#fff;border-bottom:5px solid #68d8ad}
.tpb-page .tpb-site-header-content{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:85px}
.tpb-page .tpb-brand{display:flex;align-items:center;gap:15px;color:#fff;text-decoration:none}
.tpb-page .tpb-brand-emblem{display:grid;place-items:center;background:#b9f3d9;color:#0d3830;font-weight:900;border-radius:12px;width:47px;height:47px;font-size:18px}
.tpb-page .tpb-brand-name{font-weight:850;letter-spacing:1.3px;font-size:15px}
.tpb-page .tpb-brand-name small{display:block;font-size:10px;font-weight:450;color:#cee4d9;letter-spacing:.2px;margin-top:3px}
.tpb-page .tpb-edition{letter-spacing:2.2px;font-size:10px;font-weight:800;color:#b3dccc;white-space:nowrap}
.tpb-page .tpb-article-header{padding-top:clamp(32px,5vw,66px)}
.tpb-page .tpb-topline{font-size:11px;font-weight:800;letter-spacing:2px;color:#5d756c;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.tpb-page .tpb-category{color:#0d7661}.tpb-page .tpb-dot{width:5px;height:5px;border-radius:50%;background:#bc9d81}
.tpb-page h1{max-width:1040px;font-size:clamp(34px,5.1vw,68px);line-height:1.1;letter-spacing:-.046em;margin:20px 0 22px;font-weight:850;color:#102f2d}
.tpb-page .tpb-dek{max-width:880px;font-size:clamp(17px,2vw,23px);line-height:1.55;color:#456158;margin:0 0 23px}
.tpb-page .tpb-byline{display:flex;align-items:center;gap:12px;margin:25px 0 34px}
.tpb-page .tpb-avatar{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:#daefe4;border:1px solid #bddccc;color:#0e6257;font-weight:800;font-size:14px}
.tpb-page .tpb-byline strong{display:block;font-size:14px}.tpb-page .tpb-byline span:last-child{display:block;font-size:12px;color:#647e74;margin-top:4px}
.tpb-page figure{margin:0}.tpb-page img{display:block;max-width:100%;height:auto}
.tpb-page .tpb-hero{border:1px solid #e2e8df;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 18px 60px rgba(19,62,52,.08)}
.tpb-page .tpb-hero picture img{width:100%;object-fit:cover}
.tpb-page figcaption{font-size:12px;color:#657d72;line-height:1.5;padding:10px 17px 13px;background:#fff}
.tpb-page .tpb-content-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:clamp(30px,5vw,70px);padding-top:54px}
.tpb-page .tpb-sidebar{align-self:start}.tpb-page .tpb-toc{position:sticky;top:28px;border-top:4px solid #70dbaf;padding-top:20px}
.tpb-page .tpb-toc h2{font-size:12px;color:#0d554d;letter-spacing:2px;margin:0 0 15px}
.tpb-page .tpb-toc ol{padding-left:18px;margin:0;list-style:decimal}
.tpb-page .tpb-toc li{padding:5px 0;color:#6b8176;font-size:12px;line-height:1.4}
.tpb-page .tpb-toc a{text-decoration:none;color:#465d53}.tpb-page .tpb-toc a:hover{text-decoration:underline;color:#0a5f52}
.tpb-page .tpb-toc-tip{margin-top:29px;background:#e6f3e9;border-radius:15px;padding:18px;color:#194a40;font-size:13px;line-height:1.6}
.tpb-page .tpb-toc-tip p{margin:7px 0 0}
.tpb-page .tpb-prose{min-width:0;font-size:16px;line-height:1.83;letter-spacing:.002em}
.tpb-page .tpb-prose > p:first-child{font-size:19px;line-height:1.78;color:#23443e}
.tpb-page .tpb-prose > p:nth-child(2){font-size:17px;color:#49665b}
.tpb-page .tpb-prose p{margin:0 0 19px}
.tpb-page .tpb-prose h2{font-size:clamp(25px,3vw,34px);line-height:1.25;letter-spacing:-.025em;margin:52px 0 19px;font-weight:820;color:#0c3b38;scroll-margin-top:24px}
.tpb-page .tpb-prose h2::before{content:"";display:block;width:42px;height:5px;border-radius:5px;background:#61cf9f;margin-bottom:17px}
.tpb-page .tpb-prose h3{font-size:clamp(19px,2vw,22px);line-height:1.3;margin:33px 0 12px;font-weight:780;color:#135d52;scroll-margin-top:24px}
.tpb-page .tpb-prose strong{font-weight:760;color:#133d35}
.tpb-page .tpb-prose ol,.tpb-page .tpb-prose ul{margin:0 0 22px;padding-left:24px}
.tpb-page .tpb-prose li{margin:8px 0;padding-left:3px}
.tpb-page .tpb-prose li::marker{color:#20816d}
.tpb-page .tpb-table-scroll{overflow-x:auto;border:1px solid #dce7df;border-radius:14px;margin:23px 0 29px;background:white;box-shadow:0 9px 30px rgba(13,55,48,.035);-webkit-overflow-scrolling:touch}
.tpb-page .tpb-data-table{border-collapse:collapse;border-spacing:0;width:100%;min-width:595px;font-size:13.5px;line-height:1.5}
.tpb-page .tpb-data-table th{background:#103d39;color:#f1fff8;padding:16px 17px;text-align:left;font-weight:740;vertical-align:top}
.tpb-page .tpb-data-table td{padding:15px 17px;border-bottom:1px solid #e7efe9;vertical-align:top}
.tpb-page .tpb-data-table tr:nth-child(even) td{background:#f5f8f4}
.tpb-page .tpb-data-table tr:last-child td{border-bottom:0}
.tpb-page .tpb-inline-figure{margin:24px 0 29px;border-radius:18px;overflow:hidden;background:#fff;border:1px solid #dce7df}
.tpb-page .tpb-inline-figure img{width:100%;height:auto}
.tpb-page .tpb-references{margin-top:62px;border-top:2px solid #bfd9cb;padding-top:18px}
.tpb-page .tpb-references ol{list-style:decimal;padding-left:23px}
.tpb-page .tpb-references li{padding:4px 0 10px;margin-bottom:2px;line-height:1.5;font-size:14px}
.tpb-page .tpb-references li a{font-weight:700;overflow-wrap:anywhere}.tpb-page .tpb-references li span{display:block;color:#617b70;font-size:12px;margin-top:4px}
.tpb-page .tpb-editorial-note{margin:36px 0 0;background:#ecf3eb;border-left:5px solid #15826c;padding:20px 24px;border-radius:4px 15px 15px 4px;color:#365b4d;font-size:13px;line-height:1.6}
.tpb-page .tpb-editorial-note strong{color:#105a4d;font-size:14px}
.tpb-page .tpb-editorial-note p{margin:7px 0 0}
.tpb-page .tpb-article-footer{margin:85px 0 0;border-top:1px solid #d7e4d8;padding:30px 0 60px;font-size:12px;color:#6b7e74}
.tpb-page .tpb-article-footer span{font-weight:850;letter-spacing:2px;color:#145b4f}.tpb-page .tpb-article-footer p{margin:7px 0}
@media(max-width:990px){.tpb-page .tpb-content-layout{grid-template-columns:1fr;padding-top:28px}.tpb-page .tpb-sidebar{display:none}.tpb-page .tpb-prose{max-width:780px;margin:auto}.tpb-page .tpb-article-header{padding-top:35px}}
@media(max-width:580px){.tpb-page .tpb-site-header-content{min-height:72px}.tpb-page .tpb-edition{display:none}.tpb-page .tpb-hero{border-radius:14px}.tpb-page .tpb-prose{font-size:15.5px;line-height:1.75}.tpb-page .tpb-prose > p:first-child{font-size:17px}.tpb-page .tpb-topline{font-size:10px;letter-spacing:1px}.tpb-page .tpb-byline{margin-bottom:23px}.tpb-page .tpb-prose h2{margin-top:41px}.tpb-page .tpb-data-table{font-size:12px}.tpb-page .tpb-data-table td,.tpb-page .tpb-data-table th{padding:11px 13px}.tpb-page .tpb-brand-name{font-size:12px}.tpb-page .tpb-brand-name small{font-size:9px}}
@media(prefers-reduced-motion:no-preference){.tpb-page a{transition:color .14s ease}}
@media print{.tpb-page{background:#fff}.tpb-page .tpb-site-header,.tpb-page .tpb-sidebar{display:none}.tpb-page .tpb-content-layout{display:block}.tpb-page .tpb-prose{max-width:none}.tpb-page .tpb-table-scroll{overflow:visible}.tpb-page .tpb-data-table{min-width:0;font-size:10px}.tpb-page h2,.tpb-page h3{break-after:avoid}.tpb-page figure,.tpb-page table{break-inside:avoid}}
.tpb-page .tpb-review-credit{margin:-14px 0 24px;color:#617b70;font-size:14px}.tpb-page .tpb-review-credit a{color:#0c6d5b;font-weight:800}
.tpb-page .site-header .brand{color:var(--ink)}.tpb-page .site-header .nav a{color:#475851}.tpb-page .site-header .nav a:hover,.tpb-page .site-header .nav a[aria-current="page"]{color:var(--accent)}.tpb-page .site-header .nav-cta{color:#fff}.tpb-page .site-footer .brand{color:#fff}.tpb-page .site-footer .footer-links a{color:#cbdad4}.tpb-page .site-footer .footer-links a:hover{color:#fff}
