@font-face{font-family:Plex;src:url('assets/ibm-plex-sans.woff2') format('woff2');font-display:swap}@font-face{font-family:Baskerville;src:url('assets/libre-baskerville.woff2') format('woff2');font-display:swap}@font-face{font-family:Baskerville;src:url('assets/libre-baskerville-italic.woff2') format('woff2');font-style:italic;font-display:swap}
:root{--black:#111;--paper:#f4f3f0;--muted:#666;--line:#d8d7d3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--paper);color:var(--black);font:16px/1.6 Plex,Arial,sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{opacity:.25;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #969696;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{font-family:Baskerville,Georgia,serif;font-weight:400;letter-spacing:-.055em;line-height:1.2}em{font-weight:400}button{background:none;border:0}button[hidden],[hidden]{display:none!important}.skip{position:absolute;top:-60px;background:white;color:black;padding:12px;z-index:100}.skip:focus{top:4px}.header{height:100px;padding:14px 4vw;display:flex;align-items:center;justify-content:space-between;background:var(--black);color:#fff;border-bottom:1px solid #333}.brand{width:158px;height:62px;object-fit:contain}.header nav{display:flex;align-items:center;gap:30px;font-size:14px}.header nav a{opacity:.8}.header nav a:hover{opacity:1}.small-count{font-size:10px;vertical-align:super;margin-left:3px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;border:1px solid #222;padding:12px 20px;font-size:14px}.button.light{background:var(--paper);color:var(--black);border-color:var(--paper)}.button:hover{background:#deddd9}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase}.hero{background:var(--black);color:#fff;display:grid;grid-template-columns:1.12fr 1fr;position:relative;min-height:660px}.hero-copy{padding:65px 3vw 65px 4vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero h1{font-size:clamp(32px,3.6vw,64px);margin:36px 0 24px;line-height:1.32}.hero h1 em{color:#c3c2bc}.hero-description{max-width:370px;color:#bbb;font-size:15px}.text-link{display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid #666;padding:12px 0;font-size:14px;margin-top:24px}.text-link span{margin-left:auto}.hero-photo{position:relative;overflow:hidden;min-height:500px}.hero-photo>img{height:100%;width:100%;object-fit:cover;filter:grayscale(1)}.hero-photo>span{position:absolute;bottom:26px;left:25px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;text-shadow:0 1px 8px black}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;padding:17px 4vw;border-top:1px solid #333;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#aaa}.section{padding:95px 5vw}.agency-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:9vw;margin-top:35px}.agency h2{font-size:clamp(27px,3.1vw,48px);line-height:1.45}.agency h2 em{color:#74746d}.agency-grid p{font-size:15px;color:#62625d}.agency-grid p.lead{font-size:20px;color:#222;margin-bottom:24px}.dark-link{border-color:#aaa}.client-band{display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:70px;padding-top:32px;font-weight:600;font-size:22px;letter-spacing:-.04em}.method{background:#e9e8e3}.section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:45px}.section-title h2{font-size:clamp(37px,4.4vw,70px);margin-top:24px}.section-title>p{font-size:14px;color:#666}.method-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:6vw;margin-top:60px}.method-tabs{display:flex;flex-direction:column}.method-tabs button{padding:17px 3px;border-top:1px solid #c3c2bd;text-align:left;display:flex;gap:25px;align-items:center;font-size:19px;color:#777}.method-tabs button span{font-size:11px}.method-tabs button b{margin-left:auto;font-weight:400}.method-tabs button[aria-selected=true]{color:#111;font-weight:600}.method-detail{background:var(--black);color:white;padding:45px;display:flex;flex-direction:column;justify-content:space-between;min-height:360px}.method-detail .step-number{font-family:Baskerville,serif;font-size:65px;color:#777}.method-detail h3{font:30px/1.35 Baskerville,serif;letter-spacing:-.04em;margin:15px 0}.method-detail p{color:#bbb;max-width:430px;font-size:15px}.capabilities{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:65px}.capabilities>div{border-top:1px solid #bbb;padding-top:15px}.capabilities span{font-size:11px;color:#777}.capabilities h3{font-size:16px;font-weight:500;margin:14px 0 8px}.capabilities p{color:#666;font-size:13px}.gallery-intro{max-width:310px;font-size:14px;color:#666}.gallery-intro .text-link{color:#111}.toolbar{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:52px 0 22px;padding:14px 0;gap:25px}.search{display:flex;align-items:center;gap:15px;flex:1;max-width:500px}.search>span{font-size:25px}.search input{width:100%;border:0;background:none;padding:9px 0;outline-offset:1px;font-size:14px;color:#111}.view-switch{display:flex;align-items:center;font-size:12px;gap:5px}.view-switch button{padding:9px 15px;color:#777}.view-switch .active{color:#111;background:#e5e4df}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{border:1px solid #cecdc8;padding:8px 17px;border-radius:2px;font-size:12px}.filters button.active{background:#111;color:white;border-color:#111}.results{display:flex;justify-content:space-between;padding:28px 0 18px;font-size:11px;letter-spacing:.05em;color:#777}.reset{text-decoration:underline}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 25px}.card{min-width:0;position:relative}.card-open{display:block;width:100%;padding:0;text-align:left}.card-image{height:auto;aspect-ratio:1.36;background:#e5e4e0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.card-image img{width:100%;height:100%;object-fit:contain;transition:transform .45s}.card-open:hover img{transform:scale(1.025)}.media-badge{position:absolute;bottom:10px;left:10px;background:#111d;color:white;padding:4px 9px;font-size:10px}.card-meta{display:flex;justify-content:space-between;gap:8px;margin:18px 42px 8px 0;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#6c6c65}.card-client{color:#111;font-weight:600}.card h3{font-family:Baskerville,serif;font-size:20px;font-weight:400;line-height:1.4;letter-spacing:-.035em;padding-right:35px}.select-case{position:absolute;right:0;bottom:2px;width:32px;height:32px;border:1px solid #c7c6c1;border-radius:50%;font-size:21px;line-height:1;background:var(--paper)}.select-case[aria-pressed=true]{background:#111;color:white;border-color:#111}.card-number{font-size:11px;color:#888;position:absolute;right:8px;top:8px;background:#fff9;padding:2px 5px}.project-grid.list{display:block}.list .card{border-top:1px solid var(--line);padding:15px 0}.list .card-open{display:grid;grid-template-columns:100px 1fr 2fr;align-items:center;gap:25px}.list .card-image{height:70px;aspect-ratio:auto}.list .card-meta{display:flex;flex-direction:column;margin:0}.list .card h3{font-size:21px}.list .select-case{bottom:35px}.list .card-number,.list .media-badge{display:none}.empty{padding:60px;text-align:center;color:#777}.footer{background:#111;color:white;padding:80px 5vw 25px}.footer h2{font-size:clamp(43px,6vw,90px);margin:30px 0}.footer>a{display:inline-block;font-size:18px;border-bottom:1px solid #777;padding-bottom:8px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #333;padding-top:25px;margin-top:70px;font-size:12px;color:#aaa}.selection-bar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:25px;padding:12px 15px 12px 25px;background:#111;color:white;z-index:10;box-shadow:0 8px 40px #0004;font-size:13px;white-space:nowrap}.selection-bar>button:not(.button){color:#aaa;text-decoration:underline}.selection-bar .button{font-size:12px;padding:9px 15px}body:has(dialog[open]){overflow:hidden}dialog{margin:0;padding:0;max-width:none;max-height:none;width:100%;height:100dvh;border:0;background:#111;color:#fff}dialog::backdrop{background:#111}.viewer-shell{height:100%;display:flex;flex-direction:column;position:relative}.viewer-header{display:flex;align-items:center;justify-content:space-between;height:78px;padding:8px 25px;border-bottom:1px solid #333;flex-shrink:0;gap:15px}.viewer-header .brand{width:135px;height:53px}.viewer-header>span{font-size:12px;color:#aaa}.viewer-header>div{display:flex;gap:10px;align-items:center}.viewer-header button{font-size:12px;padding:8px 11px}.viewer-header #fullscreen,.viewer-header #close-viewer{font-size:26px;line-height:1}.viewer-body{flex:1;min-height:0;display:flex;position:relative}.case-info{width:300px;flex-shrink:0;background:var(--paper);color:#111;overflow:auto;padding:30px}.case-logo{height:65px;max-width:180px;object-fit:contain;object-position:left center;margin-bottom:30px}.case-logo.dark{background:#222;padding:10px;object-position:center}.case-info .eyebrow{color:#777}.case-info h2{font-size:28px;margin:14px 0 22px;letter-spacing:-.04em}.case-info p{font-size:14px;color:#555}.case-info ul{padding-left:16px;font-size:13px;color:#555}.case-info li{margin:12px 0}.source-links{margin-top:25px;display:flex;flex-direction:column;gap:12px}.source-links a{font-size:12px;border-bottom:1px solid #bbb;padding-bottom:8px}.case-client-label{font-size:17px;font-weight:600;margin-bottom:28px}.case-media{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:#171717}.media-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;padding:18px}.media-stage>img,.media-stage>video{max-width:100%;max-height:100%;height:100%;width:100%;object-fit:contain}.media-stage>iframe{width:100%;height:100%;border:0}.external-play{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.external-play img{max-width:100%;max-height:100%;object-fit:contain;opacity:.7}.external-play button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:15px 22px;background:white;color:#111;box-shadow:0 5px 30px #0008;white-space:nowrap}.media-caption{display:flex;justify-content:space-between;gap:15px;color:#aaa;font-size:10px;padding:5px 22px 12px}.media-caption a{color:white;text-decoration:underline}.filmstrip{height:78px;padding:9px 20px;display:flex;gap:8px;overflow:auto;border-top:1px solid #333;flex-shrink:0}.filmstrip button{flex-shrink:0;width:80px;height:55px;border:1px solid #555;padding:2px;position:relative;opacity:.55}.filmstrip button.active{border-color:white;opacity:1}.filmstrip img{width:100%;height:100%;object-fit:contain}.filmstrip span{position:absolute;right:2px;bottom:0;font-size:9px;background:#000b;padding:0 3px}.viewer-footer{height:60px;display:flex;gap:25px;align-items:center;padding:10px 25px;border-top:1px solid #333;flex-shrink:0}.viewer-footer>span{font-size:10px;min-width:115px;color:#aaa}.progress-track{height:1px;background:#444;flex:1}.progress-track span{display:block;height:1px;background:white;transition:width .3s}.viewer-footer>div:last-child{display:flex;gap:12px}.viewer-footer button{width:40px;height:36px;border:1px solid #555;font-size:20px}.viewer-index{position:absolute;right:0;top:78px;bottom:60px;background:#efeee9;color:#111;width:min(500px,100%);overflow:auto;z-index:3;padding:15px 25px;box-shadow:-10px 0 40px #0005}.viewer-index button{display:flex;width:100%;gap:15px;align-items:center;padding:15px 0;border-bottom:1px solid #ccc;text-align:left;font-size:13px}.viewer-index button span{font-size:10px;color:#777}.viewer-index button b{font-weight:500}.intro-slide{display:flex;flex-direction:column;justify-content:center;padding:5vw 7vw;width:100%;position:relative;overflow:auto;background:#111}.intro-slide.photo{background:linear-gradient(90deg,#111 0%,#111e 45%,#1113 100%),url('assets/hero-beso.jpg') right center/auto 100% no-repeat}.intro-slide h2{font-size:clamp(32px,5.3vw,80px);max-width:1000px;margin:30px 0}.intro-slide h2 em{color:#aaa}.intro-slide>p:not(.eyebrow){max-width:650px;font-size:clamp(14px,1.4vw,20px);color:#bbb}.intro-slide .capabilities{margin-top:35px;gap:25px}.intro-slide .capabilities>div{border-color:#555}.intro-slide .capabilities p{color:#bbb}.intro-slide .method-flow{display:flex;flex-wrap:wrap;gap:25px;margin-top:40px}.method-flow span{border-top:1px solid #777;padding-top:15px;font-size:16px;min-width:120px}.method-flow small{display:block;font-size:10px;color:#888;margin-bottom:12px}.toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);padding:10px 20px;background:#111;color:white;z-index:100;font-size:13px}
@media(min-width:1700px){.hero-copy{padding-top:90px;padding-bottom:90px}.section{padding-left:max(5vw,calc((100vw - 1600px)/2));padding-right:max(5vw,calc((100vw - 1600px)/2))}}@media(max-width:1000px){.hero{grid-template-columns:1.25fr 1fr;min-height:550px}.hero h1{font-size:38px}.hero-photo{min-height:440px}.header nav{gap:16px}.agency-grid{gap:5vw}.agency h2{font-size:28px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-info{width:250px;padding:22px}.case-info h2{font-size:24px}.capabilities{gap:20px}.method-detail{padding:30px}.section{padding:70px 5vw}}
@media(max-width:700px){.header{height:82px;padding:10px 5vw}.header .brand{width:135px;height:54px}.header nav{display:none}.header .button{padding:9px 13px;gap:15px;font-size:12px}.hero{grid-template-columns:1fr}.hero-copy{padding:40px 6vw 48px}.hero h1{font-size:clamp(30px,7.5vw,47px);margin-top:25px}.hero-photo{min-height:0;height:280px}.hero-photo img{object-position:center 43%}.hero-bottom{font-size:8px;gap:15px}.hero-bottom span:nth-child(2){display:none}.section{padding:60px 6vw}.agency-grid{display:block}.agency h2{font-size:30px;margin-bottom:30px}.agency-grid p.lead{font-size:18px}.client-band{justify-content:flex-start;margin-top:40px;gap:20px 30px;font-size:21px}.section-title{display:block;margin-bottom:30px}.section-title>p,.gallery-intro{margin-top:25px}.section-title h2{font-size:42px}.method-layout{grid-template-columns:1fr;gap:25px;margin-top:30px}.method-tabs button{padding:12px 0;font-size:16px}.method-detail{min-height:260px}.method-detail .step-number{font-size:40px}.method-detail h3{font-size:27px}.capabilities{grid-template-columns:1fr 1fr;gap:25px;margin-top:35px}.toolbar{margin-top:35px;gap:10px}.view-switch button{padding:7px;font-size:11px}.search input{font-size:12px}.filters{gap:6px}.filters button{padding:6px 10px;font-size:10px}.project-grid{gap:30px 15px}.card h3{font-size:16px;padding-right:20px}.card-meta{font-size:8px;display:block;margin:12px 0 6px}.card-meta>span{display:block}.select-case{height:25px;width:25px;font-size:18px;bottom:0}.card-number{font-size:8px}.media-badge{font-size:8px;left:5px;bottom:5px;padding:3px 5px}.list .card-open{grid-template-columns:70px 1fr;gap:15px}.list .card h3{grid-column:2;font-size:17px}.list .card-image{grid-row:1/3;height:65px}.list .card-meta{display:block}.list .select-case{bottom:20px}.footer{padding:55px 6vw 25px}.footer>a{font-size:14px}.footer-bottom{flex-wrap:wrap;gap:20px;margin-top:45px}.footer-bottom .brand{width:125px}.selection-bar{width:calc(100% - 20px);gap:12px;justify-content:space-between;padding:10px 12px;bottom:10px;font-size:11px}.selection-bar .button{padding:8px;font-size:10px;gap:5px}.viewer-header{height:64px;padding:8px 12px}.viewer-header .brand{width:110px;height:45px}.viewer-header>span{display:none}.viewer-header>div{gap:0}.viewer-body{flex-direction:column}.case-info{width:100%;padding:16px 20px;max-height:30%;flex-shrink:0}.case-info h2{font-size:22px;margin:7px 0}.case-info p{font-size:12px}.case-info .case-logo{float:right;width:70px;height:30px;margin:0 0 8px 12px}.case-client-label{font-size:12px;margin:0 0 5px}.case-info .eyebrow{font-size:9px}.case-info .source-links{margin:10px 0;gap:5px}.case-info .source-links a{font-size:10px}.case-media{min-height:0;flex:1}.media-stage{padding:8px}.filmstrip{height:58px;padding:6px 12px}.filmstrip button{height:44px;width:60px}.media-caption{font-size:8px;padding:3px 12px 8px}.viewer-footer{height:52px;padding:7px 12px;gap:12px}.viewer-footer>span{min-width:85px;font-size:9px}.viewer-footer button{height:32px;width:34px}.viewer-index{top:64px;bottom:52px}.intro-slide{padding:7vw}.intro-slide h2{font-size:36px}.intro-slide .capabilities{grid-template-columns:1fr 1fr}.intro-slide .capabilities h3{font-size:14px}.intro-slide .capabilities p{font-size:11px}.intro-slide.photo{background:linear-gradient(90deg,#111f,#111a),url('assets/hero-beso.jpg') center/cover}.method-flow{gap:12px!important}.method-flow span{min-width:40%;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep every portfolio thumbnail inside the same frame, independent of source dimensions. */
.card-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.case-logo{filter:grayscale(1)}

.case-info p.case-subtitle{font-size:21px;line-height:1.2;letter-spacing:.05em;color:#111;margin:-10px 0 24px;font-weight:500}
