@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Source+Serif+4:wght@400;500;600;700&display=swap');
:root{--paper:#faf9f6;--white:#fff;--ink:#222624;--muted:#606965;--line:#e2e4df;--green:#245a45;--wash:#f1f4ef;--serif:'Source Serif 4',Georgia,serif;--sans:'DM Sans',Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--sans)}a{color:var(--green);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}button{font:inherit}.wrap{max-width:1110px;margin:auto;padding:0 34px}.read-wrap{max-width:820px;margin:auto;padding:0 30px}.site-header{border-bottom:1px solid var(--line);background:var(--white)}.head{height:78px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none!important;color:var(--ink)}.brand-mark{height:42px;width:42px;border:1.5px solid var(--green);display:grid;place-items:center;font:700 17px var(--serif);letter-spacing:-.6px;color:var(--green)}.brand-name{font:700 21px/1.04 var(--serif);letter-spacing:-.65px}.brand-by{font:600 10px var(--sans);text-transform:uppercase;letter-spacing:2px;color:var(--green);margin-top:4px}.nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:600}.nav a{color:#3d4741;text-decoration:none}.nav a:hover,.nav .active{color:var(--green)}.nav .underline{border-bottom:1px solid var(--green);padding-bottom:4px}.menu-toggle{display:none;border:0;background:none;font-size:26px;color:var(--ink)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--green)}.home-hero{padding:76px 0 63px;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1fr .6fr;gap:80px;align-items:center}.home-hero h1{font:600 clamp(36px,5vw,60px)/1.12 var(--serif);letter-spacing:-1.75px;margin:18px 0 21px;max-width:790px}.home-hero p{font-size:16px;color:var(--muted);line-height:1.8;max-width:690px;margin:0}.hero-aside{font-size:14px;line-height:1.8;color:var(--muted);border-left:2px solid var(--line);padding-left:25px}.hero-aside b{display:block;color:var(--ink);margin-bottom:8px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:42px 0 20px}.section-head h2{font:600 26px var(--serif);letter-spacing:-.45px;margin:0}.section-head small{color:var(--muted);font-size:12px}.feature{display:grid;grid-template-columns:1.13fr .87fr;border:1px solid var(--line);background:var(--white)}.feature-body{padding:40px 42px 36px}.feature h3{font:600 clamp(30px,3.7vw,42px)/1.17 var(--serif);letter-spacing:-1px;margin:12px 0 16px}.feature p{color:var(--muted);margin:0 0 18px;line-height:1.75}.feature-points{margin:15px 0 26px;padding:0;list-style:none;font-size:13px}.feature-points li{padding:7px 0;border-bottom:1px solid var(--line)}.feature-points b{color:var(--ink)}.actions{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-top:22px}.btn{display:inline-block;border:1px solid var(--green);border-radius:4px;background:var(--green);color:white!important;text-decoration:none;font-weight:700;font-size:13px;padding:12px 18px;line-height:1.3}.btn:hover{background:#194130}.btn-outline{background:transparent;color:var(--green)!important}.btn-outline:hover{background:#eff5f1}.feature-media{background:#f1f2ef;border-left:1px solid var(--line);min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px}.image-frame{border:1px solid #e2e5df;background:white;box-shadow:0 6px 28px rgba(25,42,30,.05);border-radius:6px;max-width:100%;overflow:hidden}.feature-media img{display:block;height:290px;max-width:100%;object-fit:contain}.img-caption{font:12px/1.5 var(--sans);color:var(--muted);text-align:center;max-width:300px}.library{padding-bottom:70px}.library-note{font-size:13px;color:var(--muted)}.entry{display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line);padding:21px 0}.entry-title{font:600 21px var(--serif);margin:3px 0}.entry p{font-size:13px;color:var(--muted);margin:0}.entry-link{font-size:13px;font-weight:700;white-space:nowrap}.footer{background:var(--white);border-top:1px solid var(--line);padding:24px 0 34px}.foot{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.foot a{text-decoration:none}.article-top{padding:50px 0 36px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:25px}.breadcrumb a{color:var(--green);text-decoration:none}.article-top h1{font:600 clamp(35px,5vw,54px)/1.12 var(--serif);letter-spacing:-1.2px;margin:15px 0 16px}.article-top .lead{color:#49514d;font-size:17px;line-height:1.75;margin:0 0 21px}.article-meta{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}.article{background:var(--white);border-top:1px solid var(--line);padding:43px 0 85px}.article-body{max-width:755px}.article-body p{font-size:16px;line-height:1.82;margin:0 0 19px}.article-body h2{font:600 29px/1.2 var(--serif);letter-spacing:-.3px;margin:44px 0 18px}.article-body h3{font:600 20px var(--serif);margin:25px 0 9px}.article-body ol,.article-body ul{padding-left:24px;margin:0 0 23px}.article-body li{padding:4px 0;line-height:1.7}.article-body a{word-wrap:break-word}.article-body figure{margin:28px 0 34px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#f8f9f6}.article-body figure img{display:block;max-width:100%;max-height:410px;margin:auto;object-fit:contain}.article-body figcaption{border-top:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--muted);padding:11px 15px;background:#f7f8f5}.article-body table{border-collapse:collapse;width:100%;font-size:14px;margin:18px 0 27px}.article-body th,.article-body td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}.article-body th{background:var(--wash);font-weight:700}.article-body .download{border:1px solid #c8dbcb;background:#eff5ef;border-radius:6px;padding:25px;margin:35px 0}.article-body .download h2{font-size:25px;margin:0 0 7px}.article-body .download p{font-size:14px;color:#515d54;margin-bottom:17px}.article-body .download small{display:block;color:#59665b;margin-top:14px;font-size:12px;line-height:1.7}.notice{border-left:3px solid #bf9243;background:#fbf8ef;padding:15px 20px;margin:24px 0;color:#4e4a3b;font-size:14px;line-height:1.7}.notice p{font-size:14px;margin:0}.release-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;color:var(--green)}.place-holder{border:2px dashed #c5cdc6;background:#f7f9f6;border-radius:6px;padding:40px 25px;text-align:center;color:var(--muted);margin:26px 0 35px;font-size:13px}.place-holder strong{color:var(--ink);display:block;font-size:15px;margin-bottom:7px}.minor{color:var(--muted);font-size:13px}.author-card{border-top:1px solid var(--line);margin-top:45px;padding-top:22px;display:flex;align-items:center;gap:15px}.author-monogram{width:50px;height:50px;min-width:50px;border:1px solid var(--green);font:700 18px var(--serif);display:grid;place-items:center;color:var(--green)}.author-card p{font-size:13px;color:var(--muted);margin:4px 0 0}.skip-link{position:absolute;left:-200vw;top:10px}.skip-link:focus{left:10px;background:white;padding:10px;z-index:100}.article-hero-visual{display:none}
@media(max-width:850px){.feature{grid-template-columns:1fr}.feature-media{border-left:0;border-top:1px solid var(--line);min-height:250px}.feature-media img{height:230px}.hero-grid{grid-template-columns:1fr;gap:20px}.hero-aside{max-width:650px}.home-hero{padding:56px 0}.feature-body{padding:35px}}
@media(max-width:580px){.wrap,.read-wrap{padding:0 20px}.head{height:70px}.brand-name{font-size:19px}.brand-mark{width:38px;height:38px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--white);border-bottom:1px solid var(--line);padding:20px;z-index:5;flex-direction:column;align-items:flex-start;gap:19px}.nav.open{display:flex}.home-hero{padding:43px 0}.home-hero h1{font-size:37px}.home-hero p{font-size:15px}.hero-aside{font-size:13px}.feature-body{padding:26px 23px}.feature h3{font-size:32px}.feature-media{padding:20px}.actions{align-items:stretch}.btn{text-align:center}.article-top{padding:35px 0 30px}.article-top h1{font-size:37px}.article-top .lead{font-size:16px}.article{padding:24px 0 65px}.article-body h2{font-size:26px}.article-body p{font-size:15px}.foot{display:block;line-height:1.9}.entry{align-items:flex-start}.entry-link{white-space:normal;text-align:right}}

.download-meta{font-size:12px;color:var(--muted);margin:12px 0 0;font-weight:600}
.support-note{font-size:14px!important;color:var(--muted);margin:20px 0 5px!important}
.support-note a{font-weight:700}
.article-body .download{border-color:#ced7cf;background:#f4f7f2}
.article-body .download .btn{margin:1px 0 0}
.site-header .nav a:focus-visible,.btn:focus-visible{outline:3px solid #245a45;outline-offset:3px}

/* Editorial signature: keep 'by CW' directly under Signal to Script. */
.brand-wordmark{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;min-width:0}
.brand-wordmark .brand-name{display:block;white-space:nowrap;line-height:1.05}
.brand-wordmark .brand-by{display:block;margin:0;line-height:1.2;letter-spacing:1.5px}
/* Featured editorial entry with a genuinely historical chart. */
.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:56px;align-items:center}
.home-hero h1{font-size:clamp(36px,4.45vw,57px)}
.hero-featured{display:block;min-width:0;background:var(--white);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease}
.hero-featured:hover{border-color:#b7c6bb;box-shadow:0 8px 26px rgba(38,58,42,.075)}
.hero-featured:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.hero-featured-image{background:#fbfcfa;border-bottom:1px solid var(--line);overflow:hidden}
.hero-featured-image img{display:block;width:100%;aspect-ratio:1.9;object-fit:cover;object-position:center}
.hero-featured-content{padding:20px 23px 22px}
.hero-featured-content h2{font:600 25px/1.13 var(--serif);letter-spacing:-.4px;margin:9px 0}
.hero-featured-content p{font-size:13px;line-height:1.65;margin:0;color:var(--muted)}
.hero-featured-link{display:inline-block;margin-top:14px;color:var(--green);font-size:13px;font-weight:700}
.feature-media .chart-frame{width:100%;max-width:none;background:white}
.feature-media .chart-frame img{width:100%;max-width:none;height:auto;aspect-ratio:1.9;object-fit:cover;object-position:center}
.feature-media .img-caption a{color:var(--green)}
.article-body .chart-figure img{width:100%;height:auto;max-height:none;object-fit:contain}
@media(max-width:850px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:28px}.hero-featured{max-width:680px}.home-hero h1{font-size:clamp(37px,5.8vw,54px)}}
@media(max-width:580px){.hero-featured-content{padding:18px 18px 20px}.hero-featured-content h2{font-size:23px}.hero-featured-image img{aspect-ratio:1.75}.brand-wordmark .brand-name{font-size:19px}.brand-wordmark .brand-by{font-size:9px}}

/* Real TradingView screenshot in the featured entry and article intro. */
.hero-featured-image{background:#101414}
.hero-featured-image img{aspect-ratio:1000/536;object-fit:contain;object-position:center}
.article-lead-chart{margin:26px 0 0;border:1px solid var(--line);background:var(--white);border-radius:5px;overflow:hidden}
.article-lead-chart>a{display:block;line-height:0}
.article-lead-chart img{width:100%;height:auto;display:block;object-fit:contain}
.article-lead-chart figcaption{font-size:12px;line-height:1.6;color:var(--muted);padding:10px 14px;background:#f7f8f5;border-top:1px solid var(--line)}
.article-lead-chart figcaption a{color:var(--green)}

/* Real TradingView screenshot for the second article and latest featured entry. */
.feature--recent{margin-bottom:24px}
.feature--recent .feature-media{background:#f6f7f4}
.feature--recent .image-frame--article{display:block;width:100%;max-width:100%;background:#101315;line-height:0}
.feature--recent .image-frame--article img{height:auto;width:100%;aspect-ratio:1759/876;object-fit:contain}
.bear-hero-image{margin:4px 0 30px;border:1px solid var(--line);border-radius:5px;background:var(--white);overflow:hidden}
.bear-hero-image>a{display:block;line-height:0}
.bear-hero-image img{width:100%;height:auto;display:block;object-fit:contain}
.bear-hero-image figcaption{font-size:12px;line-height:1.6;color:var(--muted);padding:10px 14px;background:#f7f8f5;border-top:1px solid var(--line)}
.bear-hero-image figcaption a{color:var(--green)}
.article-body code{background:#f1f4ef;border:1px solid #e0e8df;border-radius:3px;padding:2px 5px;font-size:.9em;color:#1f5842}
.article-body figure a>img{display:block}
@media(max-width:580px){.feature--recent{margin-bottom:18px}.bear-hero-image{margin-bottom:18px}}

/* Homepage previews use a tightly cropped real chart; full screenshots remain in articles. */
.hero-featured-image{background:#101314;overflow:hidden}
.hero-featured-image img{display:block;width:100%;height:auto;aspect-ratio:2 / 1;object-fit:cover;object-position:center}
.feature--recent .image-frame--article{background:#101314;overflow:hidden}
.feature--recent .image-frame--article img{display:block;width:100%;height:auto;aspect-ratio:2 / 1;object-fit:cover;object-position:center}
@media(max-width:580px){
 .hero-featured-image img{aspect-ratio:1.8 / 1}
 .feature--recent .image-frame--article img{aspect-ratio:1.8 / 1}
}

/* Pinbar + 3LS article: readable chart references and alert screenshots. */
.article-body figure img{height:auto}
.article-body figure a{display:block;line-height:0}
.article-body figure figcaption a{display:inline;line-height:inherit}
.feature--recent .image-frame--article img[src="/images/pinbar-signal-chart.webp"]{aspect-ratio:2.25;object-fit:cover;object-position:center}
@media(max-width:580px){.feature--recent .image-frame--article img[src="/images/pinbar-signal-chart.webp"]{aspect-ratio:1.8;object-fit:cover}}

/* Signal-to-exchange architecture guide. Editorial, not a product dashboard. */
.automation-teaser{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:48px 0 10px;padding:27px 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f4f6f1}
.automation-teaser h2{font:600 27px/1.2 var(--serif);margin:7px 0 8px;letter-spacing:-.35px}
.automation-teaser p{max-width:700px;margin:0;color:var(--muted);line-height:1.65;font-size:14px}
.automation-teaser .entry-link{flex-shrink:0;white-space:nowrap}
.automation-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:28px 0 33px}
.automation-flow>div{border:1px solid var(--line);background:#f7f9f5;padding:15px 13px 16px;min-width:0}
.automation-flow-step{display:block;font:700 10px var(--sans);text-transform:uppercase;letter-spacing:.8px;color:var(--green);margin-bottom:10px}
.automation-flow strong{display:block;font:700 13px/1.4 var(--sans);color:var(--ink);margin-bottom:5px}
.automation-flow small{display:block;font-size:11px;line-height:1.5;color:var(--muted)}
.article-body .automation-code{white-space:pre-wrap;overflow-wrap:anywhere;background:#19251e;border:1px solid #304637;color:#edf6ef;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;padding:20px 17px;overflow-x:auto;border-radius:5px;margin:17px 0 24px}
.article-body .automation-code code{border:0;background:none;color:inherit;padding:0;font:inherit}
@media(max-width:800px){.automation-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.automation-teaser{align-items:flex-start;flex-direction:column}}
@media(max-width:580px){.automation-flow{gap:8px}.automation-flow>div{padding:13px 10px}.automation-teaser{padding:22px 18px}.automation-teaser h2{font-size:24px}}

/* Free TradingView visual bridge article and real extension screenshot. */
.bridge-lead-second{margin-top:10px}
.bridge-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:28px 0 32px}
.bridge-steps>div{padding:15px 13px 17px;background:#f3f6f1;border:1px solid var(--line)}
.bridge-steps span{display:block;font:700 12px var(--sans);color:var(--green);letter-spacing:.8px;margin-bottom:11px}
.bridge-steps strong{display:block;font:700 13px/1.3 var(--sans);color:var(--ink)}
.bridge-steps small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px}
.bridge-popup-figure{margin:27px auto 32px;max-width:400px}
.bridge-popup-figure>a{display:block;line-height:0}
.bridge-popup-figure img{width:100%;height:auto;display:block;object-fit:contain;border:1px solid var(--line);border-radius:5px}
.bridge-popup-figure figcaption{text-align:left;font-size:12px;line-height:1.55;color:var(--muted);padding:8px 2px}
.bridge-repo-link{display:inline-block;font-weight:700;margin:12px 0 20px}
.bridge-library-feature .feature-media .image-frame img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:center}
@media(max-width:700px){.bridge-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Optional free signup and accessible guest download dialog. */
.download-gate{width:calc(100% - 32px);max-width:510px;padding:28px 30px;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--ink);box-shadow:0 20px 65px rgba(20,32,20,.2)}
.download-gate::backdrop{background:rgba(22,32,26,.55)}
.gate-head{display:flex;align-items:center;justify-content:space-between;gap:18px}
.gate-close{border:0;background:none;font-size:25px;cursor:pointer;color:var(--muted)}
.download-gate h2{font:600 32px/1.16 var(--serif);margin:16px 0 12px;letter-spacing:-.5px}
.download-gate p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 15px}
.download-gate .gate-selected{padding:12px 14px;background:#f1f5ee;border-left:3px solid var(--green);color:var(--ink);font-weight:700}
.download-gate ul{padding-left:21px;margin:18px 0 21px;color:#2d563c;font-size:13px;line-height:1.85}
.download-gate .gate-join{display:block;text-align:center;padding:14px}
.gate-guest{display:block;width:100%;margin:12px 0;border:1px solid var(--line);padding:12px 15px;border-radius:4px;background:white;cursor:pointer;color:var(--green);font:700 13px var(--sans)}
.gate-guest:disabled{opacity:.55;cursor:not-allowed}
.download-gate .gate-feedback{font-size:12px;text-align:center;margin:8px 0}
.download-gate small{display:block;text-align:center;color:var(--muted);font-size:11px;line-height:1.6}
.join-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:65px;padding-top:74px;padding-bottom:90px;align-items:start}
.join-copy h1{font:600 clamp(38px,5vw,56px)/1.12 var(--serif);letter-spacing:-1px;margin:18px 0 18px}
.join-copy>p{font-size:16px;color:var(--muted);line-height:1.8;margin:0 0 32px}
.join-benefit{display:flex;gap:16px;border-top:1px solid var(--line);padding:17px 0}
.join-benefit>b{font-size:12px;color:var(--green)}
.join-benefit strong{font-size:14px}
.join-benefit p{color:var(--muted);font-size:13px;line-height:1.7;margin:4px 0}
.join-card{padding:34px;background:var(--white);border:1px solid var(--line)}
.join-card h2{font:600 29px var(--serif);margin:10px 0 18px}
.join-picked{padding:11px;background:#f0f5f0;color:#245a45;font-size:12px}
.join-card label:not(.join-consent){display:block;font-size:13px;font-weight:700;margin-bottom:7px}
.join-card input[type=email]{width:100%;border:1px solid #bac4bb;border-radius:4px;padding:12px;font:inherit}
.join-consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:12px;line-height:1.5}
.join-consent input{margin:3px 0 0;min-width:16px;min-height:16px}
.join-card .btn{width:100%;margin:5px 0 0;cursor:pointer}
.join-card .btn:disabled{opacity:.5;cursor:not-allowed}
.join-caption,.join-footer{font-size:12px;color:var(--muted);line-height:1.65}
.join-footer{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}
.join-status{color:#8a4031;font-size:12px}
.join-success{color:var(--green);font-weight:700}
.join-text-button{font:inherit;font-size:12px;border:0;background:none;padding:0;color:var(--green);text-decoration:underline;cursor:pointer}
.join-honeypot{position:absolute;left:-10000px;width:1px;height:1px;opacity:0;overflow:hidden}
[hidden]{display:none!important}
@media(max-width:850px){.join-layout{grid-template-columns:1fr;gap:30px;padding-top:45px}.join-card{max-width:600px}}
@media(max-width:580px){.download-gate{padding:21px 19px}.download-gate h2{font-size:28px}.join-card{padding:24px 21px}.join-layout{padding-bottom:65px}.join-copy h1{font-size:38px}}

/* Google Identity Services signup button. */
.join-google-intro{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 18px}
.join-google-button{min-height:45px;display:flex;align-items:center;justify-content:flex-start;max-width:100%}
.join-google-button iframe{max-width:100%}
.join-google-privacy{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 0}
