/* Scoped gallery; the inherited studio composition remains intact. */
.cp-portfolio{--cp-ink:#eeeae1;--cp-muted:#a5aaaa;--cp-line:#ffffff25;background:#0e1214;color:var(--cp-ink);padding:100px 4.7vw 90px;isolation:isolate;overflow:clip;font-family:Arial,Helvetica,sans-serif;scroll-margin-top:90px}
.cp-portfolio *{box-sizing:border-box}.cp-wrap{max-width:1480px;margin:auto}.cp-portfolio a{color:inherit;text-decoration:none}.cp-portfolio a:focus-visible,.cp-language:focus-visible,.cp-hero-links a:focus-visible,.cp-jump:focus-visible{outline:2px solid #f18d66;outline-offset:6px}
.cp-topline{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff40;padding:22px 0;font:600 10px/1.5 monospace;letter-spacing:.13em}.cp-topline span:last-child{color:#aeb5b4}
.cp-intro{display:grid;grid-template-columns:1.35fr .65fr;gap:50px;align-items:end;margin:52px 0 45px}.cp-title{font-size:clamp(57px,7.4vw,116px);font-weight:600;line-height:.98;letter-spacing:-.065em;margin:0}.cp-title em{display:block;font-family:Georgia,serif;font-weight:400;color:#c1c8c3}.cp-lede{font-size:clamp(16px,1.4vw,20px);line-height:1.65;color:#b0b9b6;margin:0 0 8px;max-width:440px}
.cp-index{display:flex;flex-wrap:wrap;gap:8px 32px;border-top:1px solid var(--cp-line);padding:22px 0 50px}.cp-index a{padding:8px 0;font:500 11px/1.5 monospace;text-transform:uppercase;letter-spacing:.07em}.cp-index a:hover{color:#f4a781}
.cp-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.cp-project{min-width:0;overflow:hidden;border:1px solid #ffffff26;background:#171d21;scroll-margin-top:100px;transition:opacity .6s ease,transform .8s cubic-bezier(.2,.65,.2,1)}.cp-feature{grid-column:1/-1}.cp-case-head{display:flex;align-items:center;gap:22px;padding:24px 30px}.cp-number{font-family:Georgia,serif;font-size:30px;line-height:1;color:#c7d0ca}.cp-category{font:600 10px/1.5 monospace;text-transform:uppercase;letter-spacing:.12em}.cp-status{margin-left:auto;font:500 10px/1.5 monospace;text-transform:uppercase;letter-spacing:.055em;color:#b4c6bc;border:1px solid currentColor;border-radius:20px;padding:7px 10px;white-space:nowrap}
.cp-visual{display:block;margin:0 22px;background:#101a20;position:relative;border:1px solid #ffffff26;overflow:hidden}.cp-screen-bar{height:37px;padding:0 16px;display:flex;align-items:center;gap:10px;background:#1d272c;color:#bec9c9;font:500 9px/1 monospace;letter-spacing:.09em}.cp-screen-dot{width:5px;height:5px;border-radius:50%;background:#8bbcb0;box-shadow:10px 0 #8bbcb044,20px 0 #8bbcb022;margin-right:23px}.cp-screen-arrow{margin-left:auto;font-size:18px}.cp-image{display:block;width:100%;height:auto;aspect-ratio:1.99;object-fit:cover;object-position:top center;transition:transform 1s cubic-bezier(.2,.65,.2,1)}.cp-visual:hover .cp-image{transform:scale(1.018)}
.cp-body{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:40px 38px 45px}.cp-name{font-size:clamp(36px,4.5vw,67px);font-weight:500;letter-spacing:-.055em;line-height:1.05;margin:0 0 15px}.cp-headline{font-family:Georgia,serif;font-style:italic;font-size:clamp(23px,2.5vw,35px);line-height:1.2;color:#bccbc6;margin:0;max-width:450px}.cp-description{font-size:15px;line-height:1.7;color:#b7c1bd;max-width:560px;margin:0}.cp-tags{padding:0;list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.cp-tags li{border:1px solid #ffffff2c;padding:7px 10px;border-radius:2px;font:500 10px/1.5 monospace;color:#c2cbc6}.cp-actions{display:flex;flex-wrap:wrap;gap:15px 25px;align-items:center;margin-top:28px}.cp-open{font:600 11px/1.5 monospace;text-transform:uppercase;letter-spacing:.07em;display:inline-flex;align-items:center;gap:18px;min-height:44px}.cp-open>span{display:grid;place-items:center;border:1px solid #ffffff65;border-radius:50%;width:40px;height:40px;font-size:20px;transition:background .25s,transform .25s}.cp-open:hover>span{background:#ffffff19;transform:translate(2px,-2px)}.cp-secondary{font-size:11px;border-bottom:1px solid #ffffff55;line-height:1.9;color:#b8c4bf!important}
.cp-warm{background:#eee9df;color:#283c37;border-color:#ede7da}.cp-warm .cp-case-head{border-color:#37423c33}.cp-warm .cp-number,.cp-warm .cp-headline{color:#58665a}.cp-warm .cp-status{color:#4f6255}.cp-warm .cp-screen-bar{background:#e0dfd5;color:#3f4f45}.cp-warm .cp-visual{border-color:#5d6b572f;background:#fff9ef}.cp-warm .cp-description{color:#59635c}.cp-warm .cp-tags li{color:#526157;border-color:#3850433d}.cp-warm .cp-open>span{border-color:#344e4566}.cp-warm .cp-secondary{color:#57675c!important;border-color:#57675c66}
.cp-compact .cp-case-head{padding:22px;gap:16px;flex-wrap:wrap}.cp-compact .cp-category{max-width:160px}.cp-compact .cp-status{font-size:9px}.cp-compact .cp-body{display:block;padding:30px}.cp-compact .cp-name{font-size:44px}.cp-compact .cp-headline{font-size:27px;margin-bottom:20px}.cp-compact .cp-image{aspect-ratio:1.65}.cp-compact .cp-description{min-height:102px}.cp-violet{background:#201c24}.cp-violet .cp-headline{color:#d4bfd4}.cp-violet .cp-screen-bar{background:#302733}.cp-film{background:#17201e}.cp-film .cp-image{object-position:center 45%;background:#101714}
.cp-research{display:grid;grid-template-columns:280px 1fr;gap:65px;align-items:center;border:1px solid #ffffff2c;padding:55px;margin-top:34px;background:radial-gradient(ellipse at 10% 50%,#24443c55,transparent 45%),#111a18;transition:opacity .6s,transform .8s}.cp-research-mark{width:220px;height:220px;position:relative;display:grid;place-items:center}.cp-core{font-family:Georgia,serif;font-style:italic;font-size:110px;line-height:1;color:#bdd2c7}.cp-orbit{position:absolute;inset:0;border:1px solid #99b8aa66;border-radius:50%;animation:cp-turn 30s linear infinite}.cp-orbit-a{transform:rotateX(60deg)}.cp-orbit-b{inset:16px;border-color:#acc3b644;animation-direction:reverse}.cp-orbit:after{content:"";position:absolute;width:6px;height:6px;background:#b0d5bf;border-radius:50%;left:15%;top:15%}.cp-eyebrow{font:500 10px/1.5 monospace;letter-spacing:.12em;color:#abc2b2}.cp-research h3{font:400 clamp(38px,5vw,65px)/1.1 Georgia,serif;margin:15px 0}.cp-research-title{font-size:20px;margin:0 0 18px;color:#cfdbd3}.cp-research .cp-description{max-width:700px}.cp-research .cp-tags{margin-bottom:0}
.cp-note{margin:30px 0 65px;color:#8fa099;font-size:12px;line-height:1.7;max-width:900px}.cp-brief{display:flex;align-items:center;justify-content:space-between;gap:40px;border-top:1px solid #ffffff42;padding-top:45px}.cp-brief h3{font:400 clamp(28px,3.3vw,46px)/1.1 Georgia,serif;letter-spacing:-.025em;margin:0 0 18px}.cp-brief p{max-width:610px;font-size:14px;line-height:1.7;color:#acb9b3}.cp-brief-link{flex-shrink:0;border:1px solid #c9d4c9;border-radius:999px;padding:20px 26px;font:600 12px/1.4 monospace;text-transform:uppercase;transition:background .2s}.cp-brief-link:hover{background:#ffffff14}
.cp-jump{display:block;width:max-content;max-width:100%;margin:22px 0 35px;padding:15px 23px;background:#17221f;color:#e7eee6;border:1px solid #697c70;border-radius:50px;font:600 11px/1.5 monospace;letter-spacing:.1em;text-decoration:none}.cp-hero-links{display:flex;gap:12px 19px;flex-wrap:wrap;align-items:center;margin-top:25px;max-width:630px;position:relative;z-index:4}.cp-hero-links a{font:600 10px/1.5 monospace;text-decoration:none;letter-spacing:.04em;color:inherit;border-bottom:1px solid #30392e40;padding:5px 0}.cp-hero-links .cp-hero-label{font-size:9px;color:#8a4a36;border-bottom:0;width:100%;letter-spacing:.11em}.cp-language{align-self:center;padding:9px 4px;margin-right:8px;font:600 11px/1.5 monospace;letter-spacing:.05em;color:inherit;text-decoration:none}
.cp-reveal{opacity:.2;transform:translateY(28px)}.cp-portfolio[data-motion=off] *, .cp-portfolio[data-motion=off] *:before,.cp-portfolio[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cp-portfolio[data-motion=off] .cp-image{transform:none!important}.cp-portfolio[data-motion=off] .cp-reveal{opacity:1;transform:none}
/* V15 disables pointer events on hero copy; this group owns live links. */
.cp-hero-links{pointer-events:auto}
@keyframes cp-turn{to{transform:rotate(360deg)}}
@media(max-width:1000px){.cp-intro{grid-template-columns:1fr;gap:25px}.cp-lede{max-width:660px}.cp-body{gap:30px;padding:30px}.cp-compact .cp-status{margin-left:0}.cp-research{grid-template-columns:180px 1fr;gap:30px;padding:35px}.cp-research-mark{width:170px;height:170px}.cp-core{font-size:85px}}
@media(max-width:700px){.cp-portfolio{padding:70px 18px 65px;scroll-margin-top:75px}.cp-topline{font-size:8px;letter-spacing:.07em;gap:18px}.cp-topline span:last-child{max-width:120px;text-align:right}.cp-intro{margin:35px 0 27px}.cp-title{font-size:clamp(53px,13vw,88px)}.cp-lede{font-size:15px;line-height:1.65}.cp-index{gap:4px 20px;padding:18px 0 30px}.cp-index a{font-size:10px;min-height:34px;display:flex;align-items:center}.cp-grid{grid-template-columns:1fr;gap:24px}.cp-feature{grid-column:auto}.cp-case-head{gap:12px;padding:19px;flex-wrap:wrap}.cp-number{font-size:25px}.cp-category{font-size:9px;letter-spacing:.05em;flex:1}.cp-status{margin-left:37px;font-size:8px;padding:5px 8px}.cp-visual{margin:0 10px}.cp-screen-bar{font-size:7px;padding:0 10px;height:29px}.cp-image{aspect-ratio:1.6;object-position:top left}.cp-body{display:block;padding:27px 21px 30px}.cp-name,.cp-compact .cp-name{font-size:39px}.cp-headline,.cp-compact .cp-headline{font-size:26px;margin-bottom:22px}.cp-description{font-size:14px;line-height:1.7}.cp-tags{gap:6px;margin:20px 0}.cp-tags li{font-size:9px;padding:6px 8px}.cp-actions{gap:13px 18px;margin-top:23px}.cp-open{font-size:10px}.cp-secondary{font-size:10px;min-height:32px;display:flex;align-items:center}.cp-compact .cp-case-head{padding:19px}.cp-compact .cp-status{margin-left:37px}.cp-compact .cp-description{min-height:0}.cp-compact .cp-body{padding:27px 21px 30px}.cp-research{display:block;padding:28px 24px;margin-top:24px}.cp-research-mark{width:140px;height:140px;margin:0 auto 30px}.cp-core{font-size:74px}.cp-research h3{font-size:43px}.cp-research-title{font-size:18px}.cp-note{font-size:11px;margin-bottom:40px}.cp-brief{display:block;padding-top:33px}.cp-brief h3{font-size:32px}.cp-brief p{font-size:13px}.cp-brief-link{display:inline-block;margin-top:15px;padding:18px 22px;font-size:10px}.cp-hero-links{gap:6px 15px;margin-top:17px}.cp-language{font-size:10px;margin-right:3px;padding:10px 2px}}
@media(prefers-reduced-motion:reduce){.cp-portfolio *, .cp-portfolio *:before,.cp-portfolio *:after{animation:none!important;transition:none!important}.cp-reveal{opacity:1;transform:none}.cp-visual:hover .cp-image{transform:none}}
