:root{--case-paper:#fff;--case-ink:#111;--case-line:rgba(17,17,17,.18);--case-mono:'DM Mono',monospace;--case-sans:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0}
.body-speaks-page{background:var(--case-paper);color:var(--case-ink);font-family:var(--case-sans)}
.body-speaks-page a{color:inherit;text-decoration:none}
.body-speaks-page button,.body-speaks-page input,.body-speaks-page textarea{font:inherit}
.case-header{position:fixed;inset:0 0 auto;z-index:20;height:64px;padding:0 2.3vw;color:#fff;mix-blend-mode:difference;font:500 9px/1.35 var(--case-mono);pointer-events:none}
.case-header a,.case-header button{pointer-events:auto}
.case-brand{position:absolute;left:2.3vw;top:15px;font:700 14px/1.05 Arial,sans-serif;letter-spacing:-.07em}
.case-brand small{display:block;margin-top:3px;font:500 7px/1.2 var(--case-mono);letter-spacing:.015em}
.case-nav-works{position:absolute;left:50%;top:17px;transform:translateX(-50%);white-space:nowrap}
.case-nav-right{position:absolute;right:2.3vw;top:15px;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.case-header .contact-trigger,.contact-trigger,.contact-close{border:0;background:none;padding:0;color:inherit;cursor:pointer;font:inherit}
.case-hero{position:relative;display:flex;flex-direction:column;align-items:center;height:auto;min-height:0;padding:76px 0 0;background:#fff;overflow:visible}
.case-hero-image{display:block;width:min(52vw,700px);height:auto;overflow:hidden;background:transparent}
.image-open{border:0;border-radius:0;padding:0;color:inherit;background:transparent;text-align:inherit;cursor:zoom-in}
.image-open:focus-visible{outline:1px solid var(--case-ink);outline-offset:4px}
.case-hero-image img{display:block;width:100%;height:auto;object-fit:contain;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.case-hero-image:hover img{transform:scale(1.018)}
.case-hero-label{position:static;display:flex;justify-content:space-between;gap:16px;width:min(52vw,700px);margin-top:13px;color:#252525;text-shadow:none;font:500 8px var(--case-mono);letter-spacing:.055em}
.case-hero-index{position:absolute;right:3vw;top:88px;color:#111;font:500 8px var(--case-mono);letter-spacing:.06em}
.case-intro-spacer{min-height:76px;scroll-margin-top:60px}
.case-gallery{padding:0 4vw 104px;scroll-margin-top:72px}
.gallery-heading{display:flex;justify-content:space-between;padding:0 1vw 38px;font:500 8px var(--case-mono);letter-spacing:.06em}
.case-photo{min-width:0;margin:0}
.photo-frame{display:block;position:relative;overflow:hidden;width:100%;height:auto;background:#e7e7e4}
.photo-frame img{display:block;width:100%;height:auto;object-fit:contain;transition:transform 1.15s cubic-bezier(.2,.7,.2,1)}
.case-photo:hover .photo-frame img{transform:scale(1.025)}
.case-photo figcaption{display:flex;justify-content:space-between;gap:12px;padding-top:9px;font:500 7px var(--case-mono);letter-spacing:.055em;color:#444}
.body-feature{width:min(46vw,600px);margin:0 9vw 112px auto}
.body-pair{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(38px,8vw,116px);align-items:start;width:100%;max-width:1460px;padding:0 9vw;margin:0 auto 112px}
.body-pair .pair-offset{margin-top:10vw}
.body-pair-first{margin-bottom:112px}
.body-pair-second{margin-bottom:108px}
.body-pair-last{grid-template-columns:1.08fr .92fr;margin-bottom:8px}
.body-pair-last .pair-offset{margin-top:0}
.case-contact{min-height:215px;background:#111;color:#fff;padding:32px 3vw 18px;display:grid;grid-template-columns:1fr auto;align-content:space-between;gap:30px;margin-top:70px;font:500 8px var(--case-mono);letter-spacing:.05em}
.case-contact>span{color:#bbb}
.case-contact-button{grid-column:2;grid-row:1/3;align-self:center;border:1px solid #777;padding:13px 17px;color:#fff;font:500 8px var(--case-mono);letter-spacing:.06em;cursor:pointer;background:transparent;transition:background .25s,color .25s}
.case-contact-button:hover{background:#fff;color:#111}
.case-contact footer{grid-column:1/-1;border-top:1px solid #555;padding-top:11px;display:flex;justify-content:space-between;gap:20px;color:#aaa}
.case-contact footer a{color:#fff}
.body-speaks-page .contact-dialog{width:min(534px,calc(100vw - 28px));height:342px;max-height:calc(100svh - 28px);border:0;padding:27px 26px 20px;background:#fff;color:var(--case-ink);box-shadow:0 8px 35px #0002}
.body-speaks-page .contact-dialog::backdrop{background:rgba(0,0,0,.72)}
.body-speaks-page .dialog-heading{display:flex;justify-content:space-between;align-items:center;font:400 13px Georgia,serif}
.body-speaks-page .contact-close{font:700 9px var(--case-sans)}
.body-speaks-page .contact-form{display:grid;grid-template-rows:40px 40px 1fr 34px;height:270px;margin-top:17px}
.body-speaks-page .contact-form input,.body-speaks-page .contact-form textarea{width:100%;border:0;border-bottom:1px solid var(--case-ink);border-radius:0;background:transparent;padding:9px 0 5px;outline:none;color:var(--case-ink);font:400 10px var(--case-sans)}
.body-speaks-page .contact-form textarea{height:100%;resize:none;padding-top:17px}
.body-speaks-page .contact-form input::placeholder,.body-speaks-page .contact-form textarea::placeholder{color:#777;opacity:1}
.body-speaks-page .contact-form>button{border:0;background:none;padding:12px 0 0;cursor:pointer;font:700 10px var(--case-sans);text-align:center}
.body-speaks-page .contact-form>button:hover{opacity:.55}
.body-speaks-page.dialog-open{overflow:hidden}
.image-dialog{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;border:0;padding:58px 70px 42px;background:rgba(0,0,0,.96);color:#fff;overflow:hidden}
.image-dialog::backdrop{background:rgba(0,0,0,.94)}
.image-dialog figure{width:100%;height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.image-dialog-content{display:block;max-width:100%;max-height:calc(100% - 24px);width:auto;height:auto;object-fit:contain}
.image-dialog-caption{align-self:flex-start;font:500 8px var(--case-mono);letter-spacing:.06em;color:#ddd}
.image-close,.image-step{position:absolute;z-index:1;border:0;background:transparent;color:#fff;cursor:pointer}
.image-close{right:22px;top:15px;font:300 31px/1 Arial,sans-serif}
.image-step{top:50%;transform:translateY(-50%);font:300 27px/1 Arial,sans-serif;padding:12px}
.image-previous{left:15px}.image-next{right:15px}
.has-motion .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.has-motion .reveal.is-visible{opacity:1;transform:translateY(0)}
.has-motion .case-hero-image img{clip-path:inset(0 0 100% 0);transition:clip-path 1.05s cubic-bezier(.65,0,.25,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}
.has-motion .case-hero-image.is-visible img{clip-path:inset(0)}
.has-motion .case-photo .photo-frame{clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.65,0,.25,1)}
.has-motion .case-photo.is-visible .photo-frame{clip-path:inset(0)}
.has-motion .case-photo img{transform:scale(1.025)}
.has-motion .case-photo.is-visible img{transform:scale(1)}
@media(max-width:760px){
  .case-header{height:52px;padding:0 4vw}.case-brand{left:4vw;top:12px;font-size:12px}.case-brand small{font-size:6px}.case-nav-works{top:14px;font-size:7px}.case-nav-right{right:4vw;top:12px;font-size:7px}
  .case-hero{padding-top:68px}.case-hero-image,.case-hero-label{width:min(84vw,560px)}
  .case-hero-index{top:68px;right:4vw;font-size:6px}
  .case-hero-label{font-size:6px}
  .case-intro-spacer{min-height:54px}
  .case-gallery{padding:0 5vw 74px;scroll-margin-top:54px}
  .gallery-heading{padding:0 0 27px;font-size:6px}
  .body-feature{width:78vw;margin:0 0 66px 9vw}
  .case-photo figcaption{font-size:6px;padding-top:7px}
  .body-pair{grid-template-columns:.95fr 1.05fr;gap:4vw;padding:0 4vw;margin-bottom:70px}
  .body-pair .pair-offset{margin-top:12vw}
  .body-pair-last{grid-template-columns:1.05fr .95fr}
  .body-pair-last .pair-offset{margin-top:0}
  .case-contact{min-height:185px;margin-top:45px;padding:25px 5vw 14px;gap:25px;font-size:6px}
  .case-contact-button{padding:11px 13px;font-size:7px}.case-contact footer{font-size:6px}
  .body-speaks-page .contact-dialog{height:342px;padding:23px 20px 18px}
  .image-dialog{padding:55px 38px 32px}.image-close{right:13px;top:10px}.image-step{font-size:20px;padding:8px}.image-previous{left:3px}.image-next{right:3px}.image-dialog-content{max-width:100%;max-height:calc(100% - 30px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}.has-motion .reveal,.has-motion .case-photo .photo-frame{opacity:1;transform:none;clip-path:none}.has-motion .case-hero-image img{clip-path:none}}
