/* Harbor Grit enhancement. Every rule opts in; legacy shared assets are immutable. */
body.studio-upgrade {
  --studio-paper:#f2efe8; --studio-ink:#171717; --studio-surface:#faf8f2;
  --studio-muted:#59564f; --studio-signal:#e6441f; --studio-action:#a82e12;
  --studio-rule:2px solid var(--studio-ink);
  line-height:1.6; overflow-wrap:break-word;
}
.studio-upgrade *, .studio-upgrade *::before, .studio-upgrade *::after { box-sizing:border-box; }
.studio-upgrade .studio-container { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.studio-upgrade .studio-header { position:sticky; top:0; z-index:90; background:var(--studio-surface); color:var(--studio-ink); border-bottom:var(--studio-rule); font:600 14px/1.3 'IBM Plex Sans',sans-serif; }
.studio-upgrade .studio-header-inner { width:min(1200px,calc(100% - 64px)); margin:auto; min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.studio-upgrade .studio-brand { display:inline-flex; align-items:center; gap:10px; color:inherit; font:700 16px/1.2 'IBM Plex Sans',sans-serif; text-decoration:none; white-space:nowrap; min-height:44px; }
.studio-upgrade .studio-brand img { width:36px; height:36px; flex-shrink:0; border:0; box-shadow:none; }
.studio-upgrade .studio-nav { display:flex; align-items:center; gap:4px; }
.studio-upgrade .studio-nav a { min-height:44px; display:flex; align-items:center; padding:10px 12px; text-decoration:none; color:var(--studio-ink); border:2px solid transparent; }
.studio-upgrade .studio-nav a[aria-current] { border-bottom-color:var(--studio-ink); }
.studio-upgrade .studio-nav a:last-child { background:var(--studio-ink); color:var(--studio-paper); border-color:var(--studio-ink); margin-left:8px; }
.studio-upgrade .studio-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.studio-upgrade .studio-menu { display:none; border:var(--studio-rule); color:var(--studio-ink); background:var(--studio-paper); font:inherit; min-height:44px; padding:8px 16px; cursor:pointer; }
.studio-upgrade .studio-skip { position:fixed; left:20px; top:8px; z-index:10000; transform:translateY(-160%); padding:12px 18px; background:var(--studio-ink); color:white; border:2px solid white; }
.studio-upgrade .studio-skip:focus { transform:translateY(0); }
.studio-upgrade :focus-visible { outline:3px solid #046c86; outline-offset:4px; }
.studio-upgrade .studio-footer { background:var(--studio-paper); color:var(--studio-ink); border-top:var(--studio-rule); padding:48px 0 24px; margin-top:64px; text-align:left; font:400 15px/1.6 'IBM Plex Sans',sans-serif; }
.studio-upgrade .studio-footer-intro { display:flex; justify-content:space-between; gap:24px; padding-bottom:28px; border-bottom:var(--studio-rule); }
.studio-upgrade .studio-footer-intro p { font:inherit; margin:0; }
.studio-upgrade .studio-footer-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; padding:28px 0; }
.studio-upgrade .studio-footer-label { font:700 13px/1.5 'IBM Plex Mono',monospace; margin:0 0 12px; }
.studio-upgrade .studio-footer ul { padding:0; list-style:none; margin:0; }
.studio-upgrade .studio-footer li { margin:0; font:inherit; }
.studio-upgrade .studio-footer li a { display:inline-flex; align-items:center; min-height:44px; color:inherit; text-decoration:none; }
.studio-upgrade .studio-footer a:hover { text-decoration:underline; text-underline-offset:4px; }
.studio-upgrade .studio-colophon { border-top:var(--studio-rule); padding-top:24px; display:flex; flex-wrap:wrap; gap:16px 28px; font-size:13px; }
.studio-upgrade .studio-colophon a { color:inherit; }
.studio-upgrade .studio-local { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; padding-block:16px; border-bottom:var(--studio-rule); font:600 14px/1.5 'IBM Plex Mono',monospace; }
.studio-upgrade .studio-local a { color:inherit; min-height:44px; display:inline-flex; align-items:center; }
.studio-upgrade .studio-local span { margin-right:auto; }
.studio-upgrade:not([data-studio-family="product-dark"]) .btn { border-radius:0; min-height:44px; padding:12px 20px; line-height:1.4; }
.studio-upgrade:not([data-studio-family="product-dark"]) .btn-signal { background:var(--studio-action); color:white; }
.studio-upgrade button, .studio-upgrade input:not([type=hidden]):not([type=radio]):not([type=checkbox]), .studio-upgrade select { min-height:44px; }
.studio-upgrade input, .studio-upgrade select, .studio-upgrade textarea { max-width:100%; font-size:16px; }
.studio-upgrade :where(img,video,iframe,svg) { max-width:100%; }
.studio-upgrade :where(img,video) { height:auto; }
.studio-upgrade :where(.hero-copy,.lead,.desc,.section-head p) { text-wrap:pretty; }
.studio-upgrade :where(h1,h2) { text-wrap:balance; }
.studio-upgrade :where(.hero-inner,.store-grid,.footer-grid,.grid) > * { min-width:0; }
.studio-upgrade:not(.homepage-refined):not([data-studio-family="product-dark"]):not([data-studio-family="checkout"]) .wrap { width:min(1200px,calc(100% - 64px)); }
.studio-upgrade:not(.homepage-refined):is([data-studio-family="hire"],[data-studio-family="software"],[data-studio-family="product"]) main > section { padding-block:clamp(40px,6vw,80px); }
.studio-upgrade:not(.homepage-refined):is([data-studio-family="hire"],[data-studio-family="software"],[data-studio-family="product"]) .hero { background:var(--studio-paper); border-bottom:var(--studio-rule); }
.studio-upgrade:is([data-studio-family="hire"],[data-studio-family="software"],[data-studio-family="product"]) .hero-panel { transform:none; border-radius:0; }
.studio-upgrade:is([data-studio-family="hire"],[data-studio-family="software"],[data-studio-family="product"]) :where(.product-card,.service-card,.case-card,.card) { border-radius:0; }
.studio-upgrade[data-studio-family="software"] .hero-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.studio-upgrade[data-studio-family="software"] .store-grid { gap:24px; }
.studio-upgrade[data-studio-family="software"] .product-card { display:flex; flex-direction:column; }
.studio-upgrade[data-studio-family="software"] .product-card .card-body { flex:1; display:flex; flex-direction:column; }
.studio-upgrade[data-studio-family="software"] .product-card .buy-row { margin-top:auto; }
.studio-upgrade .studio-notice { padding:20px 24px; margin-block:24px; border:var(--studio-rule); border-left:8px solid var(--studio-signal); background:var(--studio-surface); color:var(--studio-ink); }
.studio-upgrade .studio-notice p { margin:0; }
.studio-upgrade[data-studio-family="editorial"] :where(.post-content,.article-content,.post-body,.content) { max-width:68ch; margin-inline:auto; font-size:18px; line-height:1.85; }
.studio-upgrade[data-studio-family="editorial"] :where(.post-content,.article-content,.post-body) p { font-size:inherit; line-height:inherit; }
.studio-upgrade[data-studio-family="editorial"] :where(pre,table) { max-width:100%; overflow:auto; }
.studio-upgrade[data-studio-family="editorial"] pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.studio-upgrade[data-studio-family="editorial"] main a:not(.btn) { text-underline-offset:4px; }
.studio-upgrade .studio-figure { margin:32px 0; border:var(--studio-rule); background:var(--studio-surface); box-shadow:6px 6px 0 var(--studio-ink); }
.studio-upgrade .studio-figure img { display:block; width:100%; object-fit:contain; }
.studio-upgrade .studio-figure figcaption { padding:12px 16px; border-top:var(--studio-rule); font:400 13px/1.5 'IBM Plex Mono',monospace; }
/* Content stays readable before JavaScript and with reduced motion. */
.studio-upgrade .reveal { opacity:1; transform:none; }
@media(max-width:1000px) {
 .studio-upgrade .studio-header-inner { padding-block:12px; gap:8px; }
 .studio-upgrade .studio-nav { width:100%; flex-wrap:wrap; padding-bottom:8px; }
 .studio-js .studio-upgrade .studio-menu { display:block; }
 .studio-js .studio-upgrade .studio-nav { display:none; }
 .studio-js .studio-upgrade .studio-nav.is-open { display:flex; }
 .studio-upgrade .studio-nav a { flex:1 1 28%; }
 .studio-upgrade .studio-nav a:last-child { margin-left:0; }
}
@media(max-width:600px) {
 .studio-upgrade .studio-container,.studio-upgrade .studio-header-inner,
 .studio-upgrade:not(.homepage-refined):not([data-studio-family="product-dark"]):not([data-studio-family="checkout"]) .wrap { width:calc(100% - 40px); }
 .studio-upgrade .studio-footer-groups { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .studio-upgrade .studio-footer-intro { flex-direction:column; }
 .studio-upgrade .studio-nav a { flex-basis:42%; }
 .studio-upgrade .studio-colophon { flex-direction:column; }
 .studio-upgrade .studio-footer { margin-top:40px; }
 .studio-upgrade .studio-notice { padding:16px; }
 .studio-upgrade :where(.hero-actions,.cta-row,.form-actions) { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
 .studio-upgrade *, .studio-upgrade *::before, .studio-upgrade *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 html:has(body.studio-upgrade) { scroll-behavior:auto!important; }
}
.studio-upgrade .studio-art-caption { position:absolute; bottom:8px; left:8px; margin:0; padding:4px 8px; background:#f2efe8; color:#171717; font:12px/1.4 'IBM Plex Mono',monospace; border:1px solid #171717; }
.studio-upgrade .product-shot { position:relative; }
.studio-upgrade[data-studio-family="product-dark"] main :focus-visible { outline-color:#a5ead7; }
.studio-upgrade .alive-cta:not(.alive-cta-ghost) { background:var(--studio-action); color:#fff; }
.studio-upgrade[data-studio-family="hire"] .eyebrow { border-radius:0; }
.studio-upgrade[data-studio-family="software"] .guarantee-item { min-width:0; flex-wrap:wrap; overflow-wrap:anywhere; }
.studio-upgrade[data-studio-family="software"] .guarantee-item a { min-width:0; overflow-wrap:anywhere; }
/* Accessible text/action shades retain the signal hue; the brand mark is unchanged. */
.studio-upgrade:not([data-studio-family="product-dark"]):not([data-studio-family="checkout"]) { --signal:#b53417; --gold:#8a5000; }
.studio-upgrade .skip-link { background:#171717!important; color:#fff!important; }
.studio-upgrade .cta-section .btn:not(.btn-solid):not(.btn-signal):not(.btn-primary) { color:#171717; background:#fff; }
.studio-upgrade .dc-subtitle.hg-chat-status { color:#d9d4c9!important; }
.studio-upgrade .btn-gold, .studio-upgrade .section-kicker.tier-instant { background:#8a5000; color:#fff; }
.studio-upgrade .btn-primary,.studio-upgrade .btn-solid,.studio-upgrade .ti-btn-solid { background:#b53417; color:#fff; }
.studio-upgrade .service-price,.studio-upgrade .featured-hero-cat,.studio-upgrade .article-link-arrow,.studio-upgrade .lbl,.studio-upgrade .value.exposed { color:#a82e12!important; }
.studio-upgrade .proof-strip .btn:not(.btn-solid):not(.btn-signal), .studio-upgrade .final-cta .btn:not(.btn-solid):not(.btn-signal) { color:#171717; background:#fff; }
.studio-upgrade cite { color:#ffad91; }
.studio-upgrade .tier.featured .tier-head h3 { color:#171717; }
.studio-upgrade .proof-callout .btn:not(.btn-solid):not(.btn-signal) { color:#171717; background:#fff; }
