/* Editorial case shell. Scoped tokens keep the portfolio and Brandbook isolated. */
html:has(body.ecosystem-case){--case-header-height:94px;--case-admin-offset:0px;scroll-padding-top:calc(var(--case-header-height) + var(--case-admin-offset) + 20px)}
html:has(body.ecosystem-case.admin-bar){--case-admin-offset:32px}
.ecosystem-case .ec-header{position:sticky;top:var(--case-admin-offset);z-index:50}
@media(max-width:782px){html:has(body.ecosystem-case.admin-bar){--case-admin-offset:46px}.ecosystem-case #wpadminbar{position:fixed}}
@media(max-width:767px){html:has(body.ecosystem-case){--case-header-height:80px}}
html:not(.js) .ecosystem-case .case-pager{display:none}
.ecosystem-case{--ink:#281c24;--paper:#fbf8f2;--muted:#74696b;--line:#ded6cc;--acid:#802244;background:var(--paper);color:var(--ink);--color-base-100:#fbf8f2;--color-base-200:#eee8df;--color-base-300:#ded6cc;--color-base-content:#281c24;--color-primary:#802244;--color-primary-content:#fff8ed}
.ecosystem-case p{color:var(--muted)}.ecosystem-case .btn{background:var(--ink);color:var(--paper);border-radius:5px;min-height:50px;display:inline-flex;align-items:center;justify-content:center}.ecosystem-case .btn:hover{background:var(--acid)}.ecosystem-case .btn-primary{background:var(--acid)}.ecosystem-case .btn-primary:hover{background:#5e1832}.ecosystem-case h2{font-size:clamp(32px,4vw,58px);line-height:1.12;letter-spacing:-.045em}.ecosystem-case .eyebrow{color:var(--muted);font-size:10px}.ec-return{display:flex;justify-content:space-between;background:#44152b;color:#fff8ed;padding:10px 28px;font-size:11px}.ec-header{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:94px;padding:20px max(5vw,24px);border-bottom:1px solid var(--line);background:var(--paper)}.ec-brand{font-size:26px;font-weight:700;letter-spacing:-1px}.ec-brand span{display:block;font-size:10px;font-weight:400;letter-spacing:.05em;color:var(--muted)}.ec-header nav{display:flex;gap:30px;font-size:12px}.ec-header a:hover{color:var(--acid)}.ec-menu{border:1px solid var(--line);padding:12px 16px;border-radius:5px;font-size:11px;display:flex;gap:24px}.ec-wrap{max-width:1560px;width:90%;margin:auto}.ec-hero{display:grid;grid-template-columns:1fr 1.1fr;min-height:660px;align-items:center;border-bottom:1px solid var(--line);gap:35px;padding:75px 0 85px}.ec-hero h1{font-size:clamp(22px,2.3vw,35px);color:var(--acid);margin:30px 0;letter-spacing:-.045em}.ec-hero h1>span{display:block;font-size:clamp(54px,6vw,94px);line-height:1.04;letter-spacing:-.06em;color:var(--ink);margin-top:15px}.ec-hero em{font-family:Georgia,serif;font-weight:400;color:var(--acid)}.ec-hero-copy>p{font-size:16px;line-height:1.8;max-width:430px;margin-bottom:26px}.ec-hero-note{font-family:Consolas,monospace;font-size:9px;letter-spacing:.08em;color:var(--muted);margin-top:30px}.ec-hero-art{position:relative;min-width:0;padding:35px 0 100px 25px}.ec-hero-art:before{content:'';position:absolute;inset:0 0 30px 0;background:#e9dfd3;border-radius:48% 48% 4px 4px}.ec-hero-main{position:relative;width:100%;border:6px solid #44152b;border-radius:6px;box-shadow:0 24px 45px #44152b20}.ec-hero-dashboard{position:absolute;width:72%;bottom:35px;left:-25px;box-shadow:0 20px 40px #281c2433;border:5px solid white;border-radius:5px}.ec-art-caption{position:absolute;bottom:0;right:0;font-size:10px;color:var(--muted)}.ec-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:30px 0;border-bottom:1px solid var(--line)}.ec-facts p{font-size:13px;margin-top:7px}.ec-contents{display:flex;flex-wrap:wrap;align-items:center;gap:24px;padding:30px 0;font-size:11px;scroll-margin-top:20px}.ec-contents>span{margin-right:auto}.ec-contents a{padding:6px 0;border-bottom:1px solid transparent}.ec-contents a:hover{border-color:var(--acid);color:var(--acid)}.ec-content h2{scroll-margin-top:35px}.ec-chapter{padding:95px 0;border-top:1px solid var(--line)}.ec-story{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;align-items:start}.ec-story h2{margin-top:25px;max-width:460px}.ec-story p{font-size:17px;line-height:1.9;margin-bottom:20px}.ec-story .ec-callout{padding-left:22px;border-left:2px solid #b38a42;color:var(--ink)}.ec-map-section{padding:70px 5%;background:#44152b;color:#fff8ed;border-radius:7px;margin:5px 0 35px}.ec-map-section .eyebrow,.ec-map-section p{color:#d0bfc6}.ec-map-section h2{margin:20px 0}.ec-map-section>p{max-width:640px;font-size:16px}.ec-map{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:45px;border:1px solid #ffffff35;border-radius:5px}.ec-map a{padding:28px;border-right:1px solid #ffffff35;display:flex;flex-direction:column;gap:15px;transition:background .2s}.ec-map a:last-child{border-right:0}.ec-map a:hover{background:#ffffff0e}.ec-map small{color:#d9ba7a;font-family:Consolas,monospace;font-size:10px}.ec-map strong{font-size:28px;font-weight:500;letter-spacing:-1px}.ec-map span{font-size:12px;color:#d0bfc6}.ec-product{display:grid;grid-template-columns:.8fr 1.4fr;gap:7%;align-items:center}.ec-product-copy{min-width:0}.ec-product h2{margin:20px 0}.ec-product p{font-size:15px;line-height:1.85}.ec-product ul{list-style:none;margin:25px 0 30px;padding:0;font-size:12px;color:var(--muted)}.ec-product li{border-top:1px solid var(--line);padding:11px 0}.ec-product li:before{content:'↗';color:var(--acid);margin-right:12px}.ec-screen{margin:0;min-width:0;background:#eee8df;padding:18px;border-radius:7px}.ec-window{display:flex;justify-content:space-between;gap:12px;font-family:Consolas,monospace;font-size:9px;letter-spacing:.06em;color:var(--muted);padding:0 0 14px}.ec-window>span:first-child{color:#b3a192;letter-spacing:4px}.ec-screen img{width:100%;height:auto;border-radius:3px;box-shadow:0 8px 22px #281c2412}.ec-screen figcaption{font-size:10px;color:var(--muted);padding-top:15px;line-height:1.7}.ec-product:nth-child(2){grid-template-columns:1.4fr .8fr}.ec-product:nth-child(2) .ec-product-copy{order:2}.ec-result{text-align:center;padding:95px 5%;background:#eee8df;border-radius:7px;border:0}.ec-result h2{max-width:850px;margin:25px auto}.ec-result>p{max-width:650px;margin:auto;font-size:16px;line-height:1.9}.ec-demo-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:35px 0 25px}.ec-result small{font-size:11px;color:var(--muted)}.ec-contact{padding:110px 0;text-align:center}.ec-contact h2{margin:25px 0 35px}.ec-back{display:block;margin-top:30px;font-size:12px;color:var(--muted)}.ec-footer{display:flex;justify-content:space-between;gap:25px;padding:30px 5%;border-top:1px solid var(--line);font-size:11px}.ec-footer>a:first-child{font-size:17px;font-weight:600}.ec-footer>span{color:var(--muted)}.ecosystem-case .case-contents-dialog{background:var(--paper);color:var(--ink)}.ecosystem-case .case-contents-dialog button{color:var(--ink)}
@media(min-width:768px){.ecosystem-case .case-pager{display:flex;position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:40;background:#fbf8f2f5;box-shadow:0 8px 25px #281c2415;border:1px solid var(--line);border-radius:8px;padding:8px;gap:8px;align-items:center}.ecosystem-case .case-pager button{border:0;background:transparent;color:var(--ink);min-height:38px;min-width:38px}.ecosystem-case .case-pager button:disabled{opacity:.3}.ecosystem-case [data-case-contents]{display:flex;gap:14px;align-items:center;padding:0 12px;font-size:11px}.ecosystem-case [data-case-number]{color:var(--acid);font-size:10px}}
@media(max-width:1023px){.ec-header nav{gap:18px}.ec-hero{min-height:560px;padding:60px 0}.ec-hero h1>span{font-size:clamp(50px,7vw,70px)}.ec-product,.ec-product:nth-child(2){grid-template-columns:1fr;gap:35px}.ec-product:nth-child(2) .ec-product-copy{order:0}.ec-product-copy{max-width:620px}.ec-contents{gap:14px}.ec-contents>span{width:100%}.ec-map a{padding:22px}.ec-story{gap:6%}}
@media(max-width:767px){.ec-return{padding:10px 20px;font-size:10px}.ec-header{min-height:80px;padding:17px 5%}.ec-header nav{display:none}.ec-brand{font-size:23px}.ec-menu{gap:12px;padding:10px 12px}.ec-hero{grid-template-columns:1fr;padding:42px 0;gap:35px}.ec-hero h1{margin:22px 0}.ec-hero h1>span{font-size:clamp(48px,10vw,72px)}.ec-hero-copy>p{font-size:14px;max-width:100%}.ec-hero-art{padding:20px 0 65px 12px;margin-left:12px}.ec-hero-dashboard{left:-12px;bottom:23px;border-width:3px}.ec-art-caption{font-size:8px}.ec-facts{grid-template-columns:1fr;gap:20px;padding:26px 0}.ec-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.ec-facts p{font-size:11px;margin:0;text-align:right}.ec-contents{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;padding:28px 0}.ec-contents>span{grid-column:1/-1;margin-bottom:6px}.ec-story{grid-template-columns:1fr;gap:28px}.ec-chapter{padding:55px 0}.ec-story h2{max-width:100%}.ec-story p{font-size:15px}.ec-map-section{padding:35px 22px}.ec-map-section>p{font-size:14px}.ec-map{grid-template-columns:1fr;margin-top:28px}.ec-map a{border-right:0;border-bottom:1px solid #ffffff35;padding:22px;gap:10px}.ec-map a:last-child{border-bottom:0}.ec-map strong{font-size:24px}.ec-screen{padding:10px}.ec-window{font-size:7px;gap:6px;padding-bottom:10px}.ec-window>span:first-child{letter-spacing:1px}.ec-product ul{margin:20px 0}.ec-product p{font-size:14px}.ec-screen figcaption{font-size:9px}.ec-result{padding:45px 20px}.ec-result>p{font-size:14px}.ec-demo-links{display:grid}.ec-contact{padding:65px 0}.ec-footer{flex-wrap:wrap;padding:25px 5%}.ec-footer>span{order:3;width:100%}.ecosystem-case .case-pager{background:#fbf8f2f5}.ecosystem-case .case-pager>button{color:var(--ink)}.ecosystem-case .case-pager [data-case-number]{color:var(--acid)}}
@media(prefers-reduced-motion:reduce){.ecosystem-case{scroll-behavior:auto}.ecosystem-case *{transition:none!important}}

/* Variable content in the reusable editorial template. */
.ec-map{grid-template-columns:repeat(var(--case-columns,3),minmax(0,1fr))}.ec-map a{min-width:0}.ec-map strong{overflow-wrap:anywhere}.ec-hero-text-only,.ec-product-text-only,.ec-product-text-only:nth-child(2){grid-template-columns:1fr}.ec-product-text-only .ec-product-copy{max-width:850px}.ec-extra{padding:50px 0}.ecosystem-case h1,.ecosystem-case h2,.ec-brand,.ec-contents a{overflow-wrap:anywhere}@media(max-width:767px){.ec-map{grid-template-columns:1fr}}
