.tpf-article-main{--tpf-ink:#29232b;--tpf-muted:#756e78;--tpf-line:#e9e2e9;--tpf-purple:#743d73;max-width:1180px;margin:0 auto!important;padding:26px 36px 64px;color:var(--tpf-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.tpf-article-main *{box-sizing:border-box}
.tpf-article-breadcrumb{font-size:12px;line-height:1.7;color:var(--tpf-muted);margin-bottom:30px}
.tpf-article-breadcrumb a{color:inherit;text-decoration:none}
.tpf-article-heading{max-width:870px;margin:0 auto 26px}
.tpf-article-category{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px;color:var(--tpf-purple)}
.tpf-article-category a{color:inherit;text-decoration:none}
.tpf-article-main h1{font-family:inherit;font-size:clamp(30px,3.5vw,43px);font-weight:600;line-height:1.16;letter-spacing:-.035em;margin:0 0 20px}
.tpf-article-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;line-height:1.7;color:var(--tpf-muted)}
.tpf-article-meta a{color:inherit;text-decoration:none}
.tpf-article-lead{font-size:18px;line-height:1.75;color:#625867;margin-top:24px}
.tpf-article-lead p{margin:0}
.tpf-article-cover{max-width:1000px;margin:28px auto 38px}
.tpf-article-cover img{display:block;width:100%!important;height:auto!important;max-height:440px;object-fit:cover}
.tpf-article-cover figcaption{font-size:12px;line-height:1.6;color:var(--tpf-muted);margin-top:10px}
.tpf-article-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;align-items:start}
.tpf-article-layout:has(>.tpf-article-sidebar:empty){grid-template-columns:minmax(0,1fr)}
.tpf-article-sidebar:empty{display:none}
.tpf-article-sidebar{position:sticky;top:24px;min-width:0}
.tpf-article-sidebar .tpf-toc{position:static}
.tpf-article-reading{min-width:0}
.tpf-article-prose{font-family:inherit;font-size:17px;line-height:1.85;overflow-wrap:break-word}
.tpf-article-prose>p{margin:0 0 22px}
.tpf-article-prose h2{font-family:inherit;font-size:clamp(24px,2.5vw,30px);font-weight:600;letter-spacing:-.025em;line-height:1.3;margin:38px 0 18px}
.tpf-article-prose h3{font-family:inherit;font-size:22px;font-weight:550;letter-spacing:-.015em;line-height:1.4;margin:30px 0 14px}
.tpf-article-prose h4{font-family:inherit;font-size:19px;line-height:1.45}
.tpf-article-prose a{color:var(--tpf-purple);text-underline-offset:3px}
.tpf-article-prose>figure{margin:26px 0}
.tpf-article-prose>figure>img{display:block;max-width:100%;height:auto;max-height:420px;width:auto;margin:0 auto;object-fit:contain}
.tpf-article-prose figcaption{font-size:12px;line-height:1.6;color:var(--tpf-muted);margin-top:10px;text-align:center}
.tpf-article-prose>ul,.tpf-article-prose>ol{padding-left:24px;margin-bottom:24px}
.tpf-article-prose>ul>li,.tpf-article-prose>ol>li{margin-bottom:8px}
.tpf-key-points{padding:22px 24px;background:#f8f5f8;border-top:2px solid #743d73;margin-bottom:32px}
.tpf-key-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--tpf-purple);margin:0 0 16px}
.tpf-key-points>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tpf-key-points>div>p{font-size:13px;line-height:1.7;margin:0;color:#756e78}
.tpf-key-points strong{display:block;font-size:14px;font-weight:600;color:#352d37;margin-bottom:5px}
.tpf-collection-example{border-top:1px solid var(--tpf-line);padding-top:24px;margin-top:30px}
.tpf-collection-example>h3{margin-top:0}
.tpf-collection-example figure{margin:20px 0}
.tpf-collection-example figure img{display:block;max-width:100%;width:auto!important;height:auto!important;max-height:300px;margin:auto;object-fit:contain}
.tpf-article-sources {
    margin: 20px 0;
    padding-top: 10px;
    border-top: 1px solid var(--tpf-line);
    color: var(--tpf-muted);
    font-size: 13px;
    line-height: 1.65;
}
.tpf-article-sources p { margin: 0; }
.tpf-article-sources .tpf-sources-label { margin-bottom: 3px; font-weight: 600; }
.tpf-article-author{display:flex;gap:20px;border-top:1px solid var(--tpf-line);margin-top:36px;padding-top:26px}
.tpf-author-initial{display:grid;place-items:center;flex:0 0 48px;height:48px;background:#f0e7f0;color:var(--tpf-purple);font-size:22px}
.tpf-article-author p{font-size:14px;line-height:1.75;color:var(--tpf-muted);margin:0 0 10px}
.tpf-article-author .tpf-author-name{font-size:16px;color:var(--tpf-ink);font-weight:600;margin:0 0 8px}
.tpf-article-comments{border-top:1px solid var(--tpf-line);margin-top:26px;padding-top:20px}
.tpf-article-comments>summary{font-size:14px;cursor:pointer;color:var(--tpf-muted)}
.tpf-article-comments input:not([type=submit]),.tpf-article-comments textarea{max-width:100%;border:1px solid var(--tpf-line);padding:10px;font:inherit}
.tpf-article-comments #reply-title{font-size:22px}
.tpf-article-related{border-top:1px solid var(--tpf-line);margin-top:48px;padding-top:30px}
.tpf-related-heading{display:flex;justify-content:space-between;gap:24px;align-items:baseline;margin-bottom:24px}
.tpf-related-heading h2{font-family:inherit;font-size:26px;font-weight:600;letter-spacing:-.025em;margin:0}
.tpf-related-heading>a{font-size:13px;color:var(--tpf-purple);text-decoration:none}
.tpf-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.tpf-related-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#f8f5f8}
.tpf-related-image img{width:100%!important;height:100%!important;object-fit:cover;display:block}
.tpf-related-grid h3{font-family:inherit;font-size:19px;line-height:1.4;font-weight:550;margin:14px 0 10px}
.tpf-related-grid h3 a{color:inherit;text-decoration:none}
.tpf-related-grid time{font-size:12px;color:var(--tpf-muted)}
.tpf-article-main a:hover{color:var(--tpf-purple);text-decoration:underline;text-underline-offset:4px}
.tpf-article-main a:focus-visible,.tpf-article-main summary:focus-visible{outline:2px solid var(--tpf-purple);outline-offset:4px}
.tpf-display-ad{clear:both;margin:34px 0;padding:12px 0;text-align:center;max-width:100%;overflow:hidden;border-top:1px solid var(--tpf-line);border-bottom:1px solid var(--tpf-line)}
.tpf-display-ad>span{display:block;color:var(--tpf-muted);font-size:10px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.tpf-controlled-ad{width:100%;height:90px}
.tpf-ad-preview>div{display:grid;place-items:center;min-height:90px;background:#f5f2f6;color:var(--tpf-muted);font-size:12px}
.tpf-display-ad:has(ins[data-ad-status="unfilled"]){display:none}
.tpf-article-related + .tpf-display-ad{margin:32px 0 0}
@media(max-width:900px){.tpf-article-layout{grid-template-columns:170px minmax(0,1fr);gap:28px}.tpf-article-main{padding-left:24px;padding-right:24px}}
@media(max-width:781px){.tpf-article-main{padding:20px 20px 40px}.tpf-article-breadcrumb{margin-bottom:24px;font-size:11px}.tpf-article-heading{margin-bottom:22px}.tpf-article-lead{font-size:16px;line-height:1.8;margin-top:20px}.tpf-article-cover{margin:24px 0 26px}.tpf-article-cover img{max-height:300px}.tpf-article-layout{display:block}.tpf-article-sidebar{position:static}.tpf-article-prose{font-size:16px;line-height:1.85}.tpf-key-points{padding:18px}.tpf-key-points>div{grid-template-columns:1fr;gap:14px}.tpf-key-points strong{margin-bottom:2px}.tpf-related-grid{grid-template-columns:1fr;gap:28px}.tpf-related-heading{align-items:flex-start}.tpf-related-heading h2{font-size:23px}.tpf-related-heading>a{font-size:12px;text-align:right}.tpf-article-author{gap:14px}.tpf-display-ad{margin:26px 0}.tpf-controlled-ad{height:100px}}
.tpf-article-heading{max-width:1000px}
.tpf-article-end{max-width:1000px;margin:0 auto}
.tpf-article-comments{background:#faf8fa;border:1px solid #e9e2e9;padding:24px 28px;margin-top:16px}
.tpf-article-comments>summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;list-style:none;color:#352d37;font-size:17px;font-weight:600}
.tpf-article-comments>summary::-webkit-details-marker{display:none}
.tpf-article-comments .tpf-comments-invite{font-size:13px;font-weight:400;color:#756e78}
.tpf-article-comments #respond{margin-top:24px;border-top:1px solid #e9e2e9;padding-top:20px}
.tpf-article-comments #reply-title{font-family:inherit;font-size:21px;line-height:1.4;letter-spacing:-.02em;margin:0 0 10px}
.tpf-article-comments .comment-notes,.tpf-article-comments .logged-in-as{font-size:12px;line-height:1.7;color:#756e78;margin:0 0 20px}
.tpf-article-comments .comment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
.tpf-article-comments .comment-form>p{margin:0}
.tpf-article-comments .comment-form-comment,.tpf-article-comments .comment-notes,.tpf-article-comments .logged-in-as,.tpf-article-comments .comment-form-cookies-consent,.tpf-article-comments .form-submit{grid-column:1/-1}
.tpf-article-comments label{display:block;font-size:13px;font-weight:500;color:#4b3e4e;margin-bottom:8px}
.tpf-article-comments input:not([type=submit]):not([type=checkbox]),.tpf-article-comments textarea{display:block;width:100%;border:1px solid #ded5df;border-radius:0;background:#fff;padding:13px 14px;font-family:inherit;font-size:15px;line-height:1.6;color:#29232b;box-sizing:border-box}
.tpf-article-comments textarea{resize:vertical;min-height:140px}
.tpf-article-comments input:focus,.tpf-article-comments textarea:focus{outline:2px solid #743d73;outline-offset:2px}
.tpf-article-comments .comment-form-cookies-consent{display:flex;gap:10px;align-items:flex-start}
.tpf-article-comments .comment-form-cookies-consent label{font-size:12px;font-weight:400;line-height:1.7;color:#756e78;margin:0}
.tpf-article-comments .form-submit input{background:#743d73;color:#fff;border:0;border-radius:0;padding:13px 22px;font:inherit;font-size:14px;font-weight:500;cursor:pointer}
.tpf-article-comments .form-submit input:hover{background:#583057}
@media(max-width:600px){.tpf-article-comments{padding:20px 18px}.tpf-article-comments>summary{display:grid;gap:8px}.tpf-article-comments .comment-form{grid-template-columns:1fr}.tpf-article-comments .comment-form>p{grid-column:1}}
.tpf-article-comments .form-submit input[type=submit]{background:#743d73!important;color:#fff!important;width:auto!important;display:inline-block;box-shadow:none!important;min-width:190px}
.tpf-article-comments .form-submit input[type=submit]:hover{background:#583057!important}
.tpf-article-comments>summary{position:relative;padding-right:24px}
.tpf-article-comments>summary:after{content:'+';position:absolute;right:0;top:0;font-size:20px;font-weight:400;color:#743d73}
.tpf-article-comments[open]>summary:after{content:'−'}
/* Align the article's framing elements with the breadcrumb and related stories. */
.tpf-article-heading,.tpf-article-cover,.tpf-article-end{max-width:none;width:100%;margin-left:0;margin-right:0}
.tpf-article-cover img{max-height:480px}
.tpf-article-heading .tpf-article-meta{margin-top:22px}
.tpf-article-heading .tpf-article-lead{margin-top:0}
.tpf-cover-image{position:relative}
.tpf-cover-credit{position:absolute;bottom:12px;left:14px;color:#fff;background:rgba(25,20,25,.65);padding:5px 8px;font-size:11px;line-height:1.4;letter-spacing:.01em}
.tpf-faq{margin-top:36px}
.tpf-faq>h2{margin-bottom:20px}
.tpf-faq-item{margin:0 0 10px;border:1px solid #e9e2e9;background:#fbf9fb;padding:0 20px}
.tpf-faq-item>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:18px 0}
.tpf-faq-item>summary::-webkit-details-marker{display:none}
.tpf-article-prose .tpf-faq-item>summary>h3{font-size:17px;line-height:1.5;font-weight:550;letter-spacing:-.01em;margin:0}
.tpf-faq-toggle{position:relative;width:16px;height:16px;flex:0 0 16px}
.tpf-faq-toggle:before,.tpf-faq-toggle:after{content:'';position:absolute;top:7px;left:2px;width:12px;height:1px;background:#743d73}
.tpf-faq-toggle:after{transform:rotate(90deg)}
.tpf-faq-item[open] .tpf-faq-toggle:after{display:none}
.tpf-faq-answer{padding:0 0 18px;color:#625867;font-size:15px;line-height:1.8}
.tpf-faq-answer>p{margin:0 0 12px}.tpf-faq-answer>p:last-child{margin-bottom:0}
.tpf-further-reading{margin:28px 0 12px}
.tpf-article-prose .tpf-campaign-note{margin:28px 0;padding:18px 20px;border-inline-start:3px solid var(--tpf-purple);background:#f8f4f8}
.tpf-article-prose .tpf-campaign-note p{margin:0}
.tpf-article-prose .tpf-campaign-note p+p{margin-top:8px}

.tpf-kickstarter-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-block: 20px 36px;
    scroll-margin-top: 80px;
}

@media (min-width: 820px) {
    .tpf-kickstarter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.tpf-article-prose .tpf-kickstarter-card {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 96px;
    padding: 8px;
    box-sizing: border-box;
    border: 1px solid var(--tpf-line);
    border-radius: 8px;
    background: #faf7fa;
    color: var(--tpf-ink);
    text-decoration: none;
}

.tpf-article-prose .tpf-kickstarter-card:hover {
    border-color: #cbb3cc;
    background: #f3ebf4;
    text-decoration: none;
}

.tpf-kickstarter-picture {
    flex: 0 0 clamp(64px, 9vw, 88px);
    overflow: hidden;
    height: 78px;
    border-radius: 5px;
    background: #fff;
}

.tpf-kickstarter-picture img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.tpf-kickstarter-copy { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.tpf-article-prose .tpf-kickstarter-copy h3 { margin: 0 0 4px; font-size: 15px; font-weight: 600; line-height: 1.3; }
.tpf-kickstarter-copy time { display: block; color: var(--tpf-muted); font-size: 11px; line-height: 1.4; }
.tpf-kickstarter-arrow {
    display: grid;
    place-items: center;
    flex: 0 0 24px;
    height: 24px;
    border-radius: 50%;
    background: #eee2ef;
    color: var(--tpf-purple);
    font-size: 14px;
    line-height: 1;
}
.tpf-further-reading>p{font-size:13px;font-weight:600;color:#625867;margin:0 0 12px}
.tpf-further-reading>div{display:flex;flex-wrap:wrap;gap:10px}
.tpf-article-prose .tpf-further-reading a{display:inline-flex;align-items:center;gap:14px;border:1px solid #e7dce7;border-radius:24px;background:#fff;padding:9px 15px;color:#743d73;font-size:13px;line-height:1.5;text-decoration:none}
.tpf-further-reading a:after{content:'→'}
.tpf-article-prose .tpf-further-reading a:hover{background:#f8f4f8;border-color:#b79ab7}
@media(max-width:600px){.tpf-faq-item{padding:0 16px}.tpf-article-prose .tpf-faq-item>summary>h3{font-size:16px}.tpf-further-reading>div{gap:8px}.tpf-article-prose .tpf-further-reading a{font-size:12px}}
/* Dedicated related guides: concise, equal cards with clear internal-link arrows. */
.tpf-related-guides{margin:36px 0 12px}
.tpf-article-prose .tpf-related-guides>h2{margin:0 0 18px}
.tpf-related-guides>nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tpf-article-prose .tpf-related-guides a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;box-sizing:border-box;padding:16px 18px;background:#faf8fa;border:1px solid #e9e2e9;color:#453747;font-size:14px;line-height:1.5;text-decoration:none}
.tpf-related-guides a:after{content:'→';flex-shrink:0;color:#743d73;font-size:18px}
.tpf-article-prose .tpf-related-guides a:hover{background:#f2ebf3;border-color:#bea5bf;color:#743d73;text-decoration:none}
@media(max-width:600px){.tpf-related-guides>nav{grid-template-columns:1fr}.tpf-article-prose .tpf-related-guides a{min-height:60px;padding:14px 16px}}
/* Use the same related-guide cards for inline recommendations across articles. */
.tpf-related-guides>.tpf-related-guide-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tpf-article-prose .tpf-further-reading.tpf-related-guides a{border-radius:0;min-height:68px;padding:16px 18px;font-size:14px;background:#faf8fa;color:#453747}
.tpf-article-prose .tpf-further-reading.tpf-related-guides a:hover{background:#f2ebf3;color:#743d73}
@media(max-width:600px){.tpf-related-guides>.tpf-related-guide-links{grid-template-columns:1fr}.tpf-article-prose .tpf-further-reading.tpf-related-guides a{min-height:60px;padding:14px 16px}}

.tpf-article-cover--uncropped img {
    max-height: none;
    object-fit: contain;
}

.tpf-product-spotlight {
    display: grid;
    grid-template-columns: minmax(0, min(35%, 300px)) minmax(0, 1fr);
    grid-template-areas: "photo heading" "photo copy";
    gap: 12px 28px;
    align-content: start;
    align-items: start;
    margin: 0 0 28px;
}

.tpf-article-prose .tpf-product-spotlight > h2 {
    grid-area: heading;
    margin: 0;
}

.tpf-product-spotlight > figure {
    grid-area: photo;
    width: 100%;
    margin: 0;
}

.tpf-product-spotlight > figure img {
    display: block;
    width: 100%;
    height: auto;
}

.tpf-product-spotlight-copy { grid-area: copy; }
.tpf-product-spotlight-copy p { margin: 0 0 14px; }
.tpf-product-spotlight-link { font-size: 14px; font-weight: 600; }

@media (max-width: 640px) {
    .tpf-product-spotlight {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "heading" "photo" "copy";
        gap: 16px;
    }
    .tpf-product-spotlight > figure { max-width: 300px; justify-self: center; }
}
