/* Case-study system; deliberately scoped away from the existing site hero. */
@font-face{font-family:CaseManrope;src:url('assets/manrope.ttf') format('truetype');font-display:swap}
.portfolio{--case-ink:#30283d;--case-muted:#786c85;--case-line:#ded3e9;color:var(--case-ink);background:#f0eaf6;scroll-margin-top:75px}
.portfolio *,.study-page *{box-sizing:border-box}
.portfolio a,.study-page a{-webkit-tap-highlight-color:transparent}
.portfolio-intro{display:flex;justify-content:space-between;gap:45px;align-items:end;margin-bottom:35px}
.portfolio-intro h2{font-size:clamp(35px,4.8vw,65px);line-height:1.12;letter-spacing:-.055em;margin:18px 0 0;max-width:720px}
.portfolio-intro h2 span{color:#9376b4}.portfolio-intro>p{max-width:360px;font-size:14px;line-height:1.9;color:#766881}
.portfolio-numbers{display:flex;gap:25px;align-items:center;padding:22px 0;border-block:1px solid var(--case-line);margin:25px 0 30px;font-size:12px;color:#786588}.portfolio-numbers b{font-size:22px;color:#483154;margin-right:7px}
.portfolio-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:25px 0}.portfolio-filters{display:flex;gap:8px;flex-wrap:wrap}
.portfolio-filters button{font:inherit;font-size:12px;border:1px solid #d6c9e1;border-radius:25px;padding:11px 17px;color:#705982;background:transparent;cursor:pointer}.portfolio-filters button[aria-pressed=true]{background:#372a45;color:white;border-color:#372a45}.portfolio-filters button:disabled{cursor:default}
.portfolio-search{display:flex;align-items:center;gap:10px;color:#715d81;font-size:12px}.portfolio-search input{font:inherit;width:190px;padding:12px 14px;border:1px solid #d6c9e1;border-radius:12px;background:#faf7fd;color:#382c44}
.portfolio-count{font-size:11px;min-height:20px;color:#796689;margin-bottom:20px}.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.portfolio-card{--tone:#745794;min-width:0;border:1px solid #ded2e9;border-radius:24px;background:#fcfaff;overflow:hidden;transition:transform .25s,box-shadow .25s}
.portfolio-card:hover{transform:translateY(-4px);box-shadow:0 22px 60px -35px #4a2f7866}.portfolio-card[hidden]{display:none!important}
.portfolio-card.featured{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.portfolio-cover{display:block;position:relative;padding:22px;background:var(--mat,#e5daef);height:355px;overflow:hidden}.portfolio-cover img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 16px #17112124);border-radius:8px;transition:transform .35s}
.portfolio-cover:hover img{transform:scale(1.025)}.portfolio-card.featured .portfolio-cover{height:100%;min-height:470px}
.portfolio-cover .cover-note{position:absolute;left:18px;top:15px;color:#fff;background:#211a2ecc;backdrop-filter:blur(8px);font-size:9px;border-radius:20px;padding:7px 11px;letter-spacing:.07em}
.portfolio-card-body{padding:27px 30px 30px;display:flex;flex-direction:column;gap:0}.portfolio-card-meta{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:10px;color:#8b7599;margin-bottom:18px}.portfolio-card h3{font-size:28px;letter-spacing:-.04em;line-height:1.2;margin:0 0 12px;color:#352a40}.portfolio-card .portfolio-summary{font-size:14px;line-height:1.8;color:#766582;margin:0 0 20px}.portfolio-card.featured h3{font-size:36px}
.portfolio-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 24px}.portfolio-tags span{padding:7px 9px;border-radius:7px;background:#eee6f5;color:#755889;font-size:10px}
.portfolio-card-benefit{font-size:14px;line-height:1.8;color:#584367;border-left:2px solid var(--tone);padding-left:15px;margin-bottom:24px}
.portfolio-card-link{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding-top:18px;border-top:1px solid #e5ddeb;text-decoration:none;color:#65497e;font-size:13px}.portfolio-card-link span{font-size:22px}.portfolio-card-status{font-size:10px;color:#8e7e98;margin-top:16px;line-height:1.5}
.portfolio-empty{font-size:16px;padding:40px;background:#fbf8ff;border-radius:18px}.portfolio-note{max-width:880px;font-size:12px;line-height:1.8;color:#86748e;margin:30px 0 0}
.study-page{margin:0;background:#f7f4fa;color:#322a3c;font-family:CaseManrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}.study-page a{color:inherit}.study-page button,.study-page input{font:inherit}.study-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 max(24px,calc((100vw - 1320px)/2));border-bottom:1px solid #e3dae9;background:#fcfaff}.study-header a{text-decoration:none;font-size:13px}.study-brand{font-size:11px;letter-spacing:.12em}.study-header small{font-size:10px;color:#8b7899}
.study-wrap{max-width:1320px;margin:auto;padding:0 30px}.study-masthead{padding:65px 0 38px;display:grid;grid-template-columns:1.4fr .7fr;gap:50px;align-items:end}.study-eyebrow{font-size:10px;letter-spacing:.13em;color:var(--tone,#8259a2);text-transform:uppercase;margin:0 0 20px}.study-masthead h1{font-size:clamp(46px,7vw,92px);line-height:1;letter-spacing:-.065em;margin:0 0 22px;font-weight:600}.study-masthead .study-headline{font-size:clamp(23px,2.8vw,36px);line-height:1.3;letter-spacing:-.035em;max-width:830px;margin:0}.study-masthead .study-summary{font-size:15px;line-height:1.9;color:#786a84}.study-badge{display:inline-block;border:1px solid #d8cbe3;border-radius:20px;padding:8px 12px;font-size:10px;color:#7c658c;margin-top:18px}.study-facts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 25px}.study-facts span{font-size:11px;padding:8px 11px;border-radius:7px;background:#eae1f2;color:#796187}
.study-nav{position:sticky;top:0;z-index:5;background:#f7f4faf0;backdrop-filter:blur(14px);border-block:1px solid #e0d5e7;display:flex;gap:27px;padding:17px 0;margin-bottom:35px;overflow:auto}.study-nav a{white-space:nowrap;font-size:12px;color:#796786;text-decoration:none}.study-nav a:hover{color:#372640}.study-section{scroll-margin-top:80px;margin:65px 0}.study-section h2{font-size:clamp(27px,3.3vw,43px);font-weight:500;letter-spacing:-.045em;line-height:1.2;margin:0 0 25px}.study-section-intro{font-size:15px;line-height:1.9;color:#786684;max-width:760px}
.screen-gallery{scroll-margin-top:80px}.screen-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:15px 0;color:#897396;font-size:11px}.screen-toolbar strong{color:#624973;font-weight:500}.screen-figure{margin:0 0 25px;background:var(--mat,#eee5f6);border:1px solid #dbcee6;border-radius:22px;overflow:hidden}.screen-figure a{display:block;padding:22px;cursor:zoom-in}.screen-figure img{display:block;width:100%;max-height:690px;height:auto;object-fit:contain;filter:drop-shadow(0 15px 22px #00000018)}.screen-figure.portrait img{max-height:700px;max-width:440px;margin:auto;width:auto}.screen-figure figcaption{padding:16px 23px;background:#fffbfff0;display:flex;justify-content:space-between;gap:20px;font-size:11px;line-height:1.7;color:#7e658e}.screen-figure figcaption span:last-child{white-space:nowrap;color:#5d397c}.screen-figure[hidden]{display:none!important}
.screen-choices{display:flex;gap:12px;overflow:auto;padding:3px 2px 15px;margin-bottom:20px}.screen-choice{flex:0 0 160px;border:1px solid #d9cde4;border-radius:12px;background:#fcf9ff;padding:8px;cursor:pointer;color:#745b86;text-align:left}.screen-choice img{width:100%;height:78px;object-fit:contain;background:var(--mat);border-radius:6px;display:block}.screen-choice span{font-size:11px;display:block;margin:8px 4px}.screen-choice[aria-pressed=true]{border:2px solid var(--tone,#8964a9);padding:7px;background:#eee2f7}.screen-choices[hidden]{display:none}.gallery-hint{font-size:11px;color:#8c799a;line-height:1.8}
.story-pair{display:grid;grid-template-columns:1fr 1fr;gap:30px}.story-panel{padding:33px;border:1px solid #dfd3e8;border-radius:20px;background:#fdfaff}.story-panel:nth-child(2){background:#eee4f6}.story-panel h2{font-size:30px}.story-panel p{font-size:15px;line-height:1.95;color:#73627f;margin:0}
.study-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.study-tool{border:1px solid #ddd1e6;border-radius:18px;background:#fdfaff;padding:26px;transition:transform .2s}.study-tool:hover{transform:translateY(-3px)}.study-tool small{font-size:11px;color:var(--tone);letter-spacing:.08em}.study-tool h3{font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.025em;margin:18px 0 12px}.study-tool p{font-size:13px;line-height:1.85;color:#7b6b87;margin:0}
.process-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}.process-buttons{display:grid;gap:12px}.process-step{font:inherit;background:#fdfaff;border:1px solid #ded3e8;border-radius:13px;padding:19px;text-align:left;color:#715d81;cursor:pointer;display:flex;gap:15px;align-items:center}.process-step small{color:#a085b2;font-size:11px}.process-step strong{font-size:14px;font-weight:500}.process-step[aria-pressed=true]{background:#352840;color:white;border-color:#352840}.process-step[aria-pressed=true] small{color:#ccb4e0}.process-detail{border-radius:20px;background:#e9dff3;border:1px solid #d8c8e6;padding:38px;min-height:260px}.process-detail h3{font-size:28px;letter-spacing:-.035em;line-height:1.25;margin:0 0 18px}.process-detail p{font-size:15px;line-height:1.9;color:#6d587e}.process-detail a{display:inline-block;font-size:12px;margin-top:15px;color:#60417a}.process-transcript{margin-top:20px}.process-transcript ol{padding-left:22px;font-size:14px;line-height:1.85;color:#766582}.process-transcript li{padding:10px}.process-transcript summary{cursor:pointer;font-size:12px;color:#7f6393}
.value-panel{background:#302639;color:#f7f1fe;border-radius:24px;padding:45px;position:relative;overflow:hidden}.value-panel small{color:#bca5d2;font-size:10px;letter-spacing:.13em}.value-panel p{font-size:clamp(23px,2.7vw,37px);line-height:1.5;letter-spacing:-.035em;margin:18px 0 0;max-width:1000px}.engineering-list{display:grid;grid-template-columns:1fr 1fr;gap:0 35px;list-style:none;padding:0;counter-reset:eng}.engineering-list li{counter-increment:eng;border-top:1px solid #ddd0e6;padding:23px 0;display:flex;gap:20px;font-size:14px;line-height:1.8;color:#796785}.engineering-list li:before{content:'0' counter(eng);color:#a088b0;font-size:11px;padding-top:3px}
.study-limits{padding:27px;border-radius:15px;border:1px solid #e0d4e8;background:#fdfaff;margin-top:20px}.study-limits h3{font-size:17px;font-weight:500;margin:0 0 12px}.study-limits p{font-size:13px;line-height:1.9;color:#867190;margin:0}.study-faq details{border-top:1px solid #ddd1e6;padding:23px 0}.study-faq summary{display:flex;justify-content:space-between;gap:25px;cursor:pointer;font-size:17px;list-style:none}.study-faq summary:after{content:'+';color:#9675ad}.study-faq details[open] summary:after{content:'−'}.study-faq details p{max-width:870px;color:#7e6b89;line-height:1.9;font-size:14px;padding-right:25px}
.study-cta{display:flex;align-items:center;justify-content:space-between;gap:35px;background:#e9dcf3;border-radius:22px;padding:35px;margin:60px 0}.study-cta h2{font-size:30px;line-height:1.3;font-weight:500;letter-spacing:-.035em;margin:0 0 12px}.study-cta p{font-size:13px;line-height:1.8;color:#7d658d;margin:0}.study-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;text-decoration:none;padding:17px 23px;background:#342840;color:#fff!important;border-radius:30px;font-size:13px;white-space:nowrap}.study-link{font-size:13px;line-height:1.7;color:#7b5a93;text-decoration:none}.study-endnav{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:45px 0}.study-endnav a{padding:25px;border-top:1px solid #d7c9e2;text-decoration:none}.study-endnav a:last-child{text-align:right}.study-endnav small{display:block;font-size:10px;color:#9b80ad;margin-bottom:12px}.study-endnav strong{font-size:21px;font-weight:500}.study-footer{padding:25px 30px;border-top:1px solid #ddd2e6;font-size:11px;color:#927d9e;display:flex;justify-content:space-between;gap:20px;line-height:1.7}
.screen-lightbox{border:1px solid #d4c1e4;background:#f8f4fc;padding:0;border-radius:16px;width:calc(100vw - 35px);max-width:1700px;height:calc(100vh - 35px);max-height:none}.screen-lightbox::backdrop{background:#1d1424cc;backdrop-filter:blur(7px)}.lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 20px;border-bottom:1px solid #e0d4e9;position:sticky;top:0;background:#faf7fd;z-index:1}.lightbox-bar span{font-size:13px}.lightbox-bar a{font-size:11px;color:#705486}.lightbox-bar button{border:1px solid #dacbe5;border-radius:50%;background:transparent;width:36px;height:36px;cursor:pointer;font-size:21px;color:#74528d}.screen-lightbox img{display:block;width:100%;height:calc(100% - 64px);object-fit:contain;padding:10px}
.portfolio button:focus-visible,.portfolio a:focus-visible,.portfolio input:focus-visible,.study-page button:focus-visible,.study-page a:focus-visible,.study-page summary:focus-visible{outline:3px solid #9b70bb;outline-offset:4px}
@media(max-width:1050px){.portfolio-intro{display:block}.portfolio-intro>p{max-width:700px}.portfolio-card.featured .portfolio-cover{min-height:430px}.study-masthead{grid-template-columns:1fr;gap:20px}.study-masthead .study-summary{max-width:760px}.study-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-card-body{padding:24px}.portfolio-cover{height:300px}}
@media(max-width:740px){.portfolio-grid{grid-template-columns:1fr;gap:22px}.portfolio-card.featured{display:block;grid-column:auto}.portfolio-card.featured .portfolio-cover{height:360px;min-height:0}.portfolio-card.featured h3{font-size:29px}.portfolio-cover{height:330px}.portfolio-numbers{gap:15px;flex-wrap:wrap}.portfolio-numbers b{font-size:19px}.portfolio-controls{gap:18px}.portfolio-search{width:100%}.portfolio-search input{flex:1}.portfolio-filters button{font-size:11px;padding:10px 13px}.study-wrap{padding:0 22px}.study-header{padding:0 22px;height:66px}.study-brand{font-size:9px}.study-header small{display:none}.study-masthead{padding-top:40px}.study-nav{gap:22px;margin-bottom:22px}.study-nav a{font-size:11px}.study-section{margin:42px 0}.screen-figure a{padding:12px}.screen-figure figcaption{flex-direction:column;gap:6px;padding:13px}.screen-figure.portrait img{max-width:100%;height:auto}.screen-choice{flex-basis:135px}.story-pair{grid-template-columns:1fr;gap:16px}.story-panel{padding:25px}.study-tools{gap:13px}.study-tool{padding:20px}.study-tool h3{font-size:18px}.process-layout{grid-template-columns:1fr}.process-detail{padding:26px;min-height:0}.engineering-list{grid-template-columns:1fr}.value-panel{padding:30px}.study-cta{display:block;padding:26px}.study-cta .study-button{margin-top:22px}.study-endnav{gap:10px}.study-endnav a{padding:20px 0}.study-endnav strong{font-size:17px}.study-footer{padding:22px;display:block}.screen-toolbar{align-items:start;line-height:1.6}.lightbox-bar{padding:10px;gap:10px}.lightbox-bar span{font-size:11px}.lightbox-bar a{font-size:9px}}
@media(max-width:440px){.portfolio-cover,.portfolio-card.featured .portfolio-cover{height:265px;padding:15px}.portfolio-card-body{padding:22px}.portfolio-intro h2{font-size:35px}.portfolio-numbers{font-size:10px;gap:14px}.study-tools{grid-template-columns:1fr}.study-masthead h1{font-size:48px}.study-masthead .study-headline{font-size:26px}.study-header a{font-size:11px}.study-cta h2{font-size:26px}.study-button{font-size:11px;padding:15px 18px}.screen-choices{gap:8px}.screen-choice{flex-basis:125px}}
@media(prefers-reduced-motion:reduce){.portfolio-card,.portfolio-cover img,.study-tool{transition:none!important;transform:none!important}}
.motion-off .portfolio-card,.motion-off .portfolio-cover img{transition:none!important;transform:none!important}

/* Uniform portfolio cards and service labels, 2026-09-29. */
.portfolio-grid{grid-auto-rows:1fr;align-items:stretch;gap:24px}
.portfolio-card,.portfolio-card.featured{display:flex;flex-direction:column;grid-column:auto;border-radius:22px;min-width:0}
.portfolio-cover,.portfolio-card.featured .portfolio-cover{height:auto;min-height:0;aspect-ratio:16/10;flex:none;padding:24px;background:#e9e2f0;display:flex;align-items:center;justify-content:center;gap:16px}
.portfolio-cover img{width:100%;height:100%;min-width:0;max-width:100%;object-fit:contain;border-radius:6px;filter:drop-shadow(0 9px 14px #30213c20)}
.portfolio-cover.is-mobile img{width:auto;max-width:46%;height:100%;border-radius:10px}
.portfolio-cover.is-mobile img:only-of-type{max-width:80%}
.portfolio-cover .cover-note{left:14px;top:14px;font-size:9px;min-width:46px;text-align:center;padding:7px 9px;border-radius:8px;background:#382d45e8}
.portfolio-card-body{flex:1;padding:26px;gap:0}
.portfolio-card-meta{min-height:18px;margin-bottom:14px;font-size:10px;line-height:1.5;align-items:flex-start}
.portfolio-card h3,.portfolio-card.featured h3{font-size:28px;line-height:1.22;min-height:2.44em;letter-spacing:-.035em;margin:0 0 12px;font-weight:600}
.portfolio-card .portfolio-summary{font-size:14px;line-height:1.75;min-height:5.25em;margin:0 0 18px;color:#6d5f78}
.portfolio-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 24px}
.portfolio-tags span{display:flex;align-items:center;justify-content:flex-start;min-height:36px;padding:8px 10px;border:1px solid #e3d9ec;border-radius:8px;font-size:10px;line-height:1.4;color:#6f557f;background:#f0eaf5}
.portfolio-card-link{min-height:52px;padding:13px 0 0;margin-top:auto;font-weight:500}
.portfolio-card-status{min-height:30px;margin-top:10px;font-size:10px;line-height:1.5;color:#7d6d88}
.study-tools{grid-auto-rows:1fr}.study-tool{display:flex;flex-direction:column}.study-tool h3{min-height:2.6em}
.study-facts span,.study-badge{display:inline-flex;align-items:center;min-height:34px;line-height:1.5}
.study-masthead h1{font-size:clamp(38px,5vw,70px);line-height:1.07;overflow-wrap:break-word}
.study-endnav a{min-width:0}.study-endnav strong{overflow-wrap:break-word}
@media(max-width:1050px){.portfolio-card-body{padding:22px}.portfolio-card h3,.portfolio-card.featured h3{font-size:25px}.portfolio-cover,.portfolio-card.featured .portfolio-cover{min-height:0;padding:20px}.portfolio-card .portfolio-summary{min-height:7em}}
@media(max-width:740px){.portfolio-grid{grid-auto-rows:1fr}.portfolio-card,.portfolio-card.featured{display:flex}.portfolio-card h3,.portfolio-card.featured h3{font-size:27px}.portfolio-card .portfolio-summary{min-height:5.25em}.portfolio-cover,.portfolio-card.featured .portfolio-cover{height:auto;min-height:0;aspect-ratio:16/10;padding:20px}.study-tool h3{min-height:0}}
@media(max-width:440px){.portfolio-card h3,.portfolio-card.featured h3{font-size:25px}.portfolio-card-body{padding:20px}.portfolio-cover,.portfolio-card.featured .portfolio-cover{height:auto;padding:16px}.portfolio-tags span{font-size:10px;min-height:40px}.study-masthead h1{font-size:38px}}
