/*
Theme Name: Production Stack Review
Version: 1.0.0
Text Domain: production-stack-review
Description: An independent, comparison-led production-software publication.
*/
:root{--psr-paper:#f5f8fa;--psr-ink:#102f42;--psr-accent:#075c74;--psr-serif:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--line:#bacbd4;--mute:#405b6b;--wash:#e3edf1;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--psr-paper);color:var(--psr-ink);font:17px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--psr-accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button,input,select{font:inherit}button,a,input,summary,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #b3430b;outline-offset:4px}img,svg{max-width:100%;height:auto}h1,h2,h3{font-family:var(--psr-serif);line-height:1.08;letter-spacing:-.045em}h1{font-size:clamp(2.5rem,5.2vw,5.7rem);font-weight:640}h2{font-size:clamp(2rem,3.4vw,3.7rem);font-weight:630}h3{font-size:1.45rem;letter-spacing:-.02em}p{margin:0 0 1.3em}ul,ol{padding-left:1.45rem}li{margin:.45em 0}[hidden]{display:none!important}.psr-wrap{width:min(1280px,calc(100% - 80px));margin-inline:auto}.psr-eyebrow{font:700 .72rem/1.5 system-ui;letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem}.skip-link{position:absolute;left:12px;top:-100px;background:#fff;padding:12px;z-index:99999}.skip-link:focus{top:12px}.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.psr-identity-strip{background:#dce8ee;border-bottom:1px solid #adbfca;padding:10px max(20px,calc((100vw - 1280px)/2));font-size:.78rem;line-height:1.45}.psr-editorial-disclaimer p{margin:0}.psr-masthead{display:grid;grid-template-columns:1fr auto;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);gap:14px}.psr-brand{font-size:1.32rem;letter-spacing:-.04em;font-weight:750;color:var(--psr-ink);text-decoration:none;max-width:22ch}.psr-brand:before{content:'◒';display:inline-block;font-size:1.8rem;margin-right:12px;color:var(--psr-accent);vertical-align:middle}.psr-masthead-deck{display:none}.psr-navigation-area{display:flex;align-items:center;gap:20px}.psr-navigation-area nav{display:flex;gap:20px;align-items:center;font-size:.85rem}.psr-navigation-area a{text-decoration:none;color:var(--psr-ink)}.psr-menu{list-style:none;padding:0;margin:0;display:flex;gap:20px;flex-wrap:wrap}.psr-menu li{margin:0}.psr-header-search{display:none}.psr-menu-toggle{display:none}.psr-opening{display:grid;grid-template-columns:1.15fr 1fr;gap:6%;padding:64px 0 72px;align-items:stretch}.psr-opening-copy{padding:28px 0}.psr-opening h1{margin:.25em 0 .45em}.psr-opening h1 em{font-style:normal;color:var(--psr-accent);font-weight:450}.psr-deck{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.55;max-width:42ch;color:var(--mute)}.psr-cta{display:inline-flex;align-items:center;gap:30px;border-bottom:2px solid var(--psr-ink);padding:12px 0;text-decoration:none;color:var(--psr-ink);font-weight:650}.psr-opening-note{font-size:.8rem;max-width:40ch;color:var(--mute);margin-top:22px}.psr-system-map{background:#dbe9ef;border-radius:4px 64px 4px 4px;padding:30px 36px;position:relative}.psr-map-center{border:1px solid #547786;border-radius:50%;width:165px;height:165px;display:flex;flex-direction:column;justify-content:center;text-align:center;margin:16px auto 24px;font-size:.9rem;line-height:1.4;background:#eff6f8}.psr-map-center strong{font-size:1.3rem}.psr-system-map ol{list-style:none;padding:0;margin:0}.psr-system-map li{display:flex;align-items:center;border-top:1px solid #a7bfcc;margin:0;padding:10px 0;gap:20px}.psr-system-map li>b{font:500 .8rem monospace;color:#486a7a}.psr-system-map li span{font-weight:650;display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;font-size:.95rem}.psr-system-map small{font-size:.75rem;font-weight:450;color:#375b6c}.psr-system-map>p:last-child{font-size:.7rem;margin:16px 0 0;color:#375b6c}.psr-principle{display:grid;grid-template-columns:1fr 1.7fr 1.5fr;gap:35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0;align-items:center}.psr-principle>span{font:700 .7rem/1.5 system-ui;letter-spacing:.12em;max-width:10ch}.psr-principle h2{font-size:2.6rem;margin:0}.psr-principle p{font-size:.95rem;margin:0;color:var(--mute)}.psr-index{padding:70px 0}.psr-section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.psr-section-head h2{font-size:2.4rem;margin:0}.psr-index-row{display:grid;grid-template-columns:60px 1fr 35px;gap:24px;padding:27px 4px;border-top:1px solid var(--line);text-decoration:none;color:var(--psr-ink);transition:background .15s}.psr-index-row:last-child{border-bottom:1px solid var(--line)}.psr-index-row:hover{background:#e8f0f4}.psr-index-number{font:400 1.25rem/1.5 monospace;color:#5c7888}.psr-index-row small{display:block;font:650 .68rem/1.4 system-ui;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px;color:#436477}.psr-index-row strong{display:block;font-size:1.5rem;letter-spacing:-.035em;line-height:1.2}.psr-index-row em{display:block;font-style:normal;font-size:.9rem;max-width:75ch;color:var(--mute);margin-top:8px}.psr-tool-section{background:#102f42;color:#f3f8fb;margin:0;border-radius:6px;padding:44px}.psr-tool h2{margin:.2em 0 .6em;max-width:18ch}.psr-tool>p{max-width:75ch;color:#d5e4eb}.psr-tool a{color:#b8e7f6}.psr-tool fieldset{border:1px solid #50717f;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.psr-tool legend{padding:0 10px;font-size:.85rem}.psr-tool label{font-size:.96rem;padding:6px;display:flex;align-items:start;gap:12px}.psr-tool input{width:20px;height:20px;margin-top:4px;flex-shrink:0;accent-color:#8bd1df}.psr-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.psr-actions button{padding:12px 20px;border:1px solid #a8c4d0;border-radius:3px;background:#f0f8fa;color:#102f42}.psr-actions button[type=reset]{background:transparent;color:#e5f4f8}.psr-tool-output{border-left:3px solid #8bd1df;background:#1b4055;padding:24px;margin:25px 0}.psr-tool-output p:last-child{margin:0}.psr-tool details{border-top:1px solid #50717f;padding:20px 0;font-size:.94rem}.psr-tool summary{cursor:pointer;font-weight:650}.psr-tool dt{font-weight:700;margin-top:12px}.psr-tool dd{margin:0 0 12px;color:#d5e4eb}.psr-method-band{padding:70px 0;max-width:900px}.psr-method-band h2{font-size:clamp(2rem,3.5vw,3.8rem);margin:.3em 0}.psr-method-band .psr-editorial-disclaimer{font-size:.8rem;line-height:1.5;margin-top:30px;color:var(--mute)}.psr-footer{border-top:2px solid var(--psr-ink);padding:35px 0 28px;font-size:.85rem}.psr-footer-top{display:flex;justify-content:space-between;gap:30px;padding-bottom:25px}.psr-footer-brand{font-weight:750;font-size:1.3rem;max-width:17ch;letter-spacing:-.03em}.psr-footer-bottom{display:grid;grid-template-columns:1fr 240px;gap:60px}.psr-footer-bottom>div{max-width:80ch}.psr-small{font-size:.8rem}.psr-footer .psr-editorial-disclaimer{font-size:.75rem;color:var(--mute);margin:16px 0}.psr-breadcrumb{display:flex;gap:12px;font-size:.8rem;padding:28px 0}.psr-article{padding:20px 0 0}.psr-article-head{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(200px,1fr);column-gap:60px;padding:25px 0 44px;border-bottom:1px solid var(--line)}.psr-article-head .psr-eyebrow{grid-column:1/-1}.psr-article-head h1{font-size:clamp(2.4rem,4.9vw,5.1rem);grid-column:1;grid-row:2/5;margin:0}.psr-article-head .psr-deck{font-size:1.1rem;margin-bottom:22px}.psr-action-disclosure{font-size:.75rem;line-height:1.5;color:var(--mute)}.psr-article-meta{grid-column:1/-1;display:flex;gap:25px;flex-wrap:wrap;font-size:.75rem;margin-top:30px;color:var(--mute)}.psr-article-layout{max-width:850px;margin:45px auto}.psr-article-body{font-size:1.1rem;line-height:1.85}.psr-article-body h2{font-size:2rem;margin:1.7em 0 .7em}.psr-article-body h3{margin-top:1.5em}.psr-lead{font-size:1.3rem;line-height:1.6;font-weight:500}.psr-case{border-left:4px solid var(--psr-accent);padding:25px;background:#e4eef3;margin:28px 0}.psr-case h3{margin:0 0 12px}.psr-case p:last-child{margin:0}.psr-matrix{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin:30px 0}.psr-matrix>div{background:#edf4f7;padding:20px}.psr-matrix b,.psr-matrix span{display:block}.psr-matrix span{font-size:.9rem;color:var(--mute)}.psr-toc{border:1px solid var(--line);padding:22px;margin:30px 0;font-size:.9rem;background:#fff}.psr-toc summary{font-weight:700;cursor:pointer}.psr-toc a{line-height:1.5}.psr-toc a[aria-current]{font-weight:700}.psr-sources{border-top:1px solid var(--line);font-size:.9rem;margin-top:40px;padding-top:20px}.psr-sources h2{font-size:1.5rem}.psr-sources a{overflow-wrap:anywhere}.psr-article-tail{font-size:.8rem;margin-top:35px;color:var(--mute)}.psr-related{border-top:1px solid var(--line);padding:40px 0 60px}.psr-related h2{font-size:2rem}.psr-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.psr-related-item h3{margin:.4em 0;font-size:1.5rem}.psr-related-item p{font-size:.9rem;color:var(--mute)}.psr-page{max-width:860px;margin:60px auto 80px}.psr-page h1{font-size:clamp(2.6rem,5vw,4.3rem)}.psr-page h2{font-size:1.85rem;margin-top:1.7em}.psr-page .psr-editorial-disclaimer{padding:22px;background:var(--wash);margin:30px 0;font-size:.95rem}.psr-search-form{display:flex;gap:8px;flex-wrap:wrap}.psr-search-form input{max-width:100%;padding:10px;border:1px solid #78919f;background:#fff}.psr-search-form button{padding:10px 16px;border:1px solid #78919f;background:#e3edf1}.psr-resume{padding:20px;background:#deedf3;margin-bottom:25px}.psr-resume button{padding:10px;background:#fff;border:1px solid #78919f}.psr-guide-card{border-bottom:1px solid var(--line);padding:20px 0}.psr-guide-card h3{margin:0 0 12px}.psr-content{max-width:850px;margin:40px auto}.psr-article-body table,.psr-page table{width:100%;border-collapse:collapse;font-size:.9rem;display:block;overflow-x:auto}.psr-article-body td,.psr-article-body th,.psr-page td,.psr-page th{border:1px solid var(--line);padding:12px;text-align:left}code{overflow-wrap:anywhere}
@media(max-width:959px){.psr-wrap{width:calc(100% - 40px)}.psr-masthead{grid-template-columns:1fr auto}.psr-menu-toggle{display:block;padding:9px 13px;background:transparent;border:1px solid #78919f;font-size:.8rem}.js .psr-navigation-area{display:none}.js .psr-navigation-area.is-open{display:block}.psr-navigation-area{grid-column:1/-1}.psr-navigation-area nav{flex-wrap:wrap;padding-top:16px}.psr-opening{gap:30px;padding-top:30px}.psr-system-map{padding:25px}.psr-system-map li span{display:block}.psr-system-map small{display:block}.psr-principle{grid-template-columns:1fr 2fr}.psr-principle p{grid-column:2}.psr-tool-section{margin:0;padding:30px}.psr-article-head{column-gap:30px;grid-template-columns:1.6fr 1fr}.psr-footer-top{display:block}.psr-footer-bottom{gap:30px;grid-template-columns:1fr 190px}}
@media(max-width:639px){body{font-size:16px}.psr-wrap{width:calc(100% - 36px)}.psr-identity-strip{font-size:.72rem;padding:10px 18px}.psr-brand{font-size:1rem;max-width:19ch}.psr-brand:before{font-size:1.3rem;margin-right:7px}.psr-masthead{padding:18px 0}.psr-menu-toggle{max-width:100px}.psr-navigation-area nav{gap:16px}.psr-opening{grid-template-columns:1fr;gap:12px;padding-bottom:35px}.psr-opening-copy{padding:12px 0}.psr-opening h1{font-size:clamp(2.5rem,10.8vw,4rem)}.psr-system-map{border-radius:4px 42px 4px 4px;padding:24px}.psr-map-center{width:130px;height:130px;margin:10px auto 18px}.psr-system-map li span{display:flex}.psr-system-map small{max-width:13ch;text-align:right}.psr-principle{display:block;padding:30px 0}.psr-principle>span{max-width:none}.psr-principle h2{font-size:2.1rem;margin:18px 0}.psr-index{padding:40px 0}.psr-section-head{display:block}.psr-section-head h2{font-size:2rem}.psr-index-row{grid-template-columns:30px 1fr 20px;gap:10px;padding:22px 0}.psr-index-row strong{font-size:1.25rem}.psr-index-row em{font-size:.85rem}.psr-index-number{font-size:.95rem}.psr-tool-section{padding:24px 18px}.psr-tool fieldset{grid-template-columns:1fr;padding:14px}.psr-tool h2{font-size:2rem}.psr-actions button{width:100%}.psr-tool-output{padding:18px;font-size:.92rem}.psr-method-band{padding:45px 0}.psr-footer-bottom{display:block}.psr-footer .psr-menu{gap:12px 20px}.psr-article-head{display:block;padding-top:10px}.psr-article-head h1{font-size:2.6rem;margin:15px 0 25px}.psr-article-head .psr-deck{font-size:1.15rem}.psr-article-meta{gap:12px}.psr-article-layout{margin:30px auto}.psr-article-body{font-size:1.02rem;line-height:1.8}.psr-article-body h2{font-size:1.7rem}.psr-lead{font-size:1.15rem}.psr-matrix{grid-template-columns:1fr}.psr-related-grid{grid-template-columns:1fr;gap:20px}.psr-page{margin:35px auto 50px}.psr-page h1{font-size:2.5rem}.psr-case{padding:20px}.psr-toc{padding:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.psr-identity-strip,.psr-navigation-area,.psr-menu-toggle,.psr-tool-section,.psr-footer,.psr-related,.psr-resume{display:none!important}body{background:#fff;color:#111;font-size:11pt}.psr-wrap,.psr-article-layout{width:100%;max-width:none}.psr-article-head{display:block}h1{font-size:28pt!important}h2{font-size:18pt!important}a{color:#111}.psr-article-body{font-size:11pt}.psr-toc{display:none}.psr-case{break-inside:avoid}}

html{scroll-padding-bottom:calc(var(--psr-banner-space,0px) + 1rem)}body:has(#psr-cookie-banner:not([hidden])){padding-bottom:var(--psr-banner-space,14rem)}
@media(max-width:639px){body:has(#psr-cookie-banner:not([hidden])){padding-bottom:var(--psr-banner-space,20rem)}}
