/* The Practical Byte standalone article skin. All selectors scoped to .tpb-article-page. */
.tpb-article-page{--forest:#0b3935;--teal:#12675e;--mint:#55d4ac;--cream:#f7f5ee;--peach:#f4c7a9;--ink:#173936;--muted:#5d756f;--line:#dce8e2;--shadow:0 20px 60px rgba(9,54,47,.08);margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.74;-webkit-font-smoothing:antialiased}
.tpb-article-page *{box-sizing:border-box}.tpb-article-page img{max-width:100%;height:auto}.tpb-article-page a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:3px}.tpb-article-page a:hover{color:#034a41}.tpb-article-page a:focus-visible{outline:3px solid #157c72;outline-offset:4px;border-radius:3px}.tpb-article-page .tpb-site-stripe{height:8px;background:linear-gradient(90deg,#0c3d37 0 73%,#50d6a6 73% 86%,#f4c5a3 86%)}
.tpb-article-page .tpb-skip-link{position:absolute;left:-9999px;top:15px;padding:10px 18px;background:#fff;z-index:20}.tpb-article-page .tpb-skip-link:focus{left:15px}
.tpb-article-page .tpb-site-header{max-width:1250px;margin:auto;padding:22px 28px 18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.tpb-article-page .tpb-brand{display:flex;align-items:center;gap:13px}.tpb-article-page .tpb-logo{width:42px;height:42px;display:grid;place-items:center;position:relative;border-radius:12px;background:var(--forest);font-size:17px;color:#ddfff2;font-weight:900;letter-spacing:-1.5px}.tpb-article-page .tpb-logo-pixel{position:absolute;width:8px;height:8px;background:var(--mint);top:5px;right:5px;border-radius:2px}.tpb-article-page .tpb-brand-text{display:flex;flex-direction:column;gap:0}.tpb-article-page .tpb-brand-text strong{font-size:14px;letter-spacing:.08em;color:#203e39}.tpb-article-page .tpb-brand-text small{font-size:11px;color:var(--muted);letter-spacing:.01em}.tpb-article-page .tpb-header-topic{border:1px solid #d2e4da;padding:7px 14px;border-radius:30px;color:#496c64;font-size:12px;font-weight:700}
.tpb-article-page .tpb-article{max-width:1220px;margin:auto;padding:0 28px 55px}.tpb-article-page .tpb-article-header{padding:33px 0 18px}.tpb-article-page .tpb-category{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--teal)}.tpb-article-page .tpb-dot{width:7px;height:7px;border-radius:50%;background:var(--mint)}.tpb-article-page .tpb-category-line{width:22px;height:1px;background:#b6d3c8}.tpb-article-page .tpb-article-header h1{max-width:1050px;font-size:clamp(2.28rem,5vw,4.55rem);line-height:1.1;letter-spacing:-.055em;color:#092f2c;margin:24px 0 20px;font-weight:800}.tpb-article-page .tpb-deck{font-size:clamp(1.08rem,2vw,1.4rem);line-height:1.5;max-width:790px;color:#516c65;margin:0 0 29px}.tpb-article-page .tpb-byline{display:flex;align-items:center;gap:12px;margin-bottom:38px;font-size:13px}.tpb-article-page .tpb-byline-avatar{display:grid;place-items:center;border-radius:50%;background:#c8ebdd;color:#175f50;width:40px;height:40px;font-size:12px;font-weight:900}.tpb-article-page .tpb-byline>div:nth-child(2){display:flex;flex-direction:column;line-height:1.5}.tpb-article-page .tpb-byline strong{color:#173d37}.tpb-article-page .tpb-byline span{color:#687e76}.tpb-article-page .tpb-byline-note{margin-left:auto;border-left:1px solid #cddbd4;padding-left:17px;font-size:12px}.tpb-article-page .tpb-hero{margin:0}.tpb-article-page .tpb-hero img{width:100%;height:auto;display:block;aspect-ratio:8/5;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}.tpb-article-page .tpb-hero figcaption{font-size:12px;color:#6c8077;line-height:1.5;margin:12px 4px 0}
.tpb-article-page .tpb-article-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:62px;align-items:start;padding-top:55px}.tpb-article-page .tpb-sidebar{align-self:stretch}.tpb-article-page .tpb-toc{position:sticky;top:18px;padding:23px 17px 22px;border:1px solid #dce8df;background:#fdfdf8;border-radius:17px;max-height:calc(100vh - 36px);overflow:auto}.tpb-article-page .tpb-toc h2{margin:0 0 20px;font-size:12px;letter-spacing:.12em;color:var(--teal)}.tpb-article-page .tpb-toc ol{margin:0;padding-left:21px}.tpb-article-page .tpb-toc li{padding:5px 0;color:#a0b6ac;font-size:12px;line-height:1.38}.tpb-article-page .tpb-toc li::marker{font-weight:700}.tpb-article-page .tpb-toc a{color:#46655d;text-decoration:none}.tpb-article-page .tpb-toc a:hover{color:var(--teal);text-decoration:underline}.tpb-article-page .tpb-toc-bottom{border-top:1px solid #e1e9e3;margin-top:21px;padding-top:18px;font-size:12px;line-height:1.6;color:var(--muted)}
.tpb-article-page .tpb-article-content{min-width:0;max-width:855px;background:#fff;box-shadow:0 4px 30px rgba(8,61,53,.045);border:1px solid #e5ede6;border-radius:22px;padding:38px clamp(22px,4vw,58px);font-size:16.2px;line-height:1.83}.tpb-article-page .tpb-article-content>p:first-child{font-size:1.13em;color:#274d45;line-height:1.75}.tpb-article-page .tpb-article-content p{margin:0 0 1.2em}.tpb-article-page .tpb-article-content h2{scroll-margin-top:20px;border-top:1px solid #e5eee8;padding-top:39px;margin:47px 0 18px;font-size:clamp(1.45rem,2.3vw,2rem);line-height:1.26;letter-spacing:-.035em;color:#10483d}.tpb-article-page .tpb-article-content h3{scroll-margin-top:20px;margin:30px 0 10px;font-size:1.16rem;line-height:1.4;letter-spacing:-.01em;color:#1c5349}.tpb-article-page .tpb-article-content strong{color:#16473e;font-weight:750}.tpb-article-page .tpb-article-content ul,.tpb-article-page .tpb-article-content ol{padding-left:24px;margin:0 0 1.55em}.tpb-article-page .tpb-article-content li{padding-left:4px;margin:0 0 .48em}.tpb-article-page .tpb-article-content li::marker{color:#228a72;font-weight:700}.tpb-article-page .tpb-article-content .tpb-callout{margin:26px 0 32px;padding:20px 24px;border:1px solid #bce4d2;border-left:5px solid #28b28d;border-radius:10px;background:#effbf4;color:#143e35;box-shadow:none}.tpb-article-page .tpb-article-content .tpb-callout p:last-child{margin-bottom:0}.tpb-article-page .tpb-article-content .tpb-callout strong{color:#104b3c}
.tpb-article-page .tpb-table-scroll{margin:27px 0 30px;width:100%;overflow-x:auto;border:1px solid #d5e6dc;border-radius:13px;box-shadow:0 4px 12px rgba(9,49,43,.035)}.tpb-article-page .tpb-table{border-spacing:0;border-collapse:collapse;width:100%;min-width:520px;line-height:1.5;font-size:.84rem}.tpb-article-page .tpb-table th{color:#fff;background:#14564b;padding:16px 15px;vertical-align:top;text-align:left;white-space:normal}.tpb-article-page .tpb-table td{padding:15px;vertical-align:top;border-bottom:1px solid #e4ece6;color:#34594f}.tpb-article-page .tpb-table tbody tr:nth-child(even){background:#f4f9f4}.tpb-article-page .tpb-table tbody tr:last-child td{border-bottom:0}.tpb-article-page .tpb-figure{margin:28px 0 34px}.tpb-article-page .tpb-figure img{display:block;width:100%;height:auto;border-radius:14px;background:#e9f3ec;border:1px solid #dde9e0}.tpb-article-page .tpb-figure figcaption{padding:11px 4px;font-size:12px;line-height:1.5;color:#677f75}.tpb-article-page .tpb-article-content a{overflow-wrap:anywhere}.tpb-article-page .tpb-article-content>ol:last-of-type{font-size:.94rem}.tpb-article-page .tpb-article-content>p:last-child{font-size:.9rem;color:var(--muted);background:#f5f8f6;border-radius:9px;padding:16px}
.tpb-article-page .tpb-article-footer{margin-top:42px;border-top:1px solid #d6e4d8;display:flex;align-items:flex-start;gap:18px;padding:27px 3px;color:#34564f}.tpb-article-page .tpb-footer-mark{flex:0 0 48px;display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:var(--forest);color:var(--mint);font-size:18px;font-weight:850}.tpb-article-page .tpb-article-footer strong{display:block;font-size:18px;line-height:1.5}.tpb-article-page .tpb-article-footer p{font-size:13px;margin:4px 0;line-height:1.5}.tpb-article-page .tpb-footer-notice{color:var(--muted)}
@media(max-width:1050px){.tpb-article-page .tpb-article-layout{grid-template-columns:200px minmax(0,1fr);gap:25px}.tpb-article-page .tpb-article-content{padding:32px 34px}}
@media(max-width:800px){.tpb-article-page .tpb-site-header{padding:20px}.tpb-article-page .tpb-article{padding:0 20px 40px}.tpb-article-page .tpb-article-layout{display:block;padding-top:31px}.tpb-article-page .tpb-sidebar{display:none}.tpb-article-page .tpb-article-content{max-width:none;padding:34px 32px}.tpb-article-page .tpb-article-header h1{max-width:740px}}
@media(max-width:560px){.tpb-article-page{font-size:15.5px}.tpb-article-page .tpb-site-header{padding:15px 15px}.tpb-article-page .tpb-brand{gap:9px}.tpb-article-page .tpb-brand-text strong{font-size:11px}.tpb-article-page .tpb-brand-text small{font-size:9px}.tpb-article-page .tpb-logo{width:34px;height:34px;border-radius:9px;font-size:14px}.tpb-article-page .tpb-header-topic{display:none}.tpb-article-page .tpb-article{padding:0 13px 28px}.tpb-article-page .tpb-article-header{padding-top:17px}.tpb-article-page .tpb-article-header h1{font-size:clamp(2.0rem,9.2vw,2.58rem);letter-spacing:-.05em;margin:18px 0}.tpb-article-page .tpb-category{font-size:10px;letter-spacing:.1em;gap:8px}.tpb-article-page .tpb-deck{font-size:1.03rem}.tpb-article-page .tpb-byline{flex-wrap:wrap;margin-bottom:24px}.tpb-article-page .tpb-byline-note{display:none}.tpb-article-page .tpb-hero img{border-radius:13px}.tpb-article-page .tpb-article-layout{padding-top:20px}.tpb-article-page .tpb-article-content{padding:20px 18px;font-size:15.5px;border-radius:15px;line-height:1.76}.tpb-article-page .tpb-article-content h2{padding-top:30px;margin-top:38px;font-size:1.47rem}.tpb-article-page .tpb-article-content h3{font-size:1.08rem}.tpb-article-page .tpb-article-content .tpb-callout{padding:15px 17px}.tpb-article-page .tpb-table{font-size:.82rem;min-width:510px}.tpb-article-page .tpb-table-scroll{margin-left:0;margin-right:0}.tpb-article-page .tpb-article-footer{margin-top:25px}}
@media(prefers-reduced-motion:reduce){.tpb-article-page *, .tpb-article-page *::before, .tpb-article-page *::after{scroll-behavior:auto!important;transition:none!important}}

/* Production integration: reviewer credit and shared site chrome. */
.tpb-article-page .tpb-review-credit{margin:12px 0 22px;color:#52665e;font-size:14px}
.tpb-article-page .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)}
