.project-dialog{box-sizing:border-box;position:fixed;inset:auto 0 0;margin:0 auto;width:calc(100% - 48px);max-width:1600px;height:calc(100dvh - 100px);max-height:none;border:0;border-radius:36px 36px 0 0;padding:54px;background:#f7f8fc;color:#21284f;overflow:auto;overscroll-behavior:contain;font-family:'General Sans',Arial,sans-serif;box-shadow:0 -20px 90px #11162b25;animation:project-sheet-in .65s cubic-bezier(.16,1,.3,1) both}
.project-dialog::backdrop{background:#11162b80;animation:project-shade-in .4s ease-out both}
.project-dialog.is-closing{animation:project-sheet-out .3s ease-in both}.project-dialog.is-closing::backdrop{animation:project-shade-in .3s ease-in reverse both}
.project-close{position:sticky;top:0;z-index:3;float:right;margin:-30px -28px 0 0;width:48px;height:48px;border:0;border-radius:50%;background:#21284f;color:#f7f8fc;font-size:23px;cursor:pointer;display:grid;place-items:center}
.project-dialog-layout{display:grid;grid-template-columns:minmax(0, .85fr) minmax(0,1.15fr);gap:60px;align-items:start;clear:both}.project-story{min-width:0}.project-dialog .project-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 20px}.project-dialog #project-dialog-title{font-size:clamp(36px,4vw,68px);line-height:1.02;letter-spacing:-.055em;margin:0 0 26px}.project-dialog .project-summary{font-size:24px;line-height:1.3;font-weight:600}.project-dialog p{font-size:16px;line-height:1.65;max-width:65ch;margin:0 0 22px}.project-dialog section{padding:30px 0 0;margin:0}.project-dialog h2{font-size:28px;line-height:1.15;letter-spacing:-.035em;margin:0 0 20px}.project-dialog h3{font-size:20px;margin:24px 0 12px}.project-dialog a{color:inherit;text-decoration:none}.project-dialog .project-permalink{display:inline-block;text-decoration:underline;text-underline-offset:5px;margin:0 0 20px;font-size:14px}.project-dialog .project-contact{display:inline-flex;background:#21284f;color:#f7f8fc;border-radius:30px;padding:16px 24px;margin-top:24px}.project-preview{position:sticky;top:30px;aspect-ratio:1/1;background:var(--project-preview-color);border-radius:24px;padding:30px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.project-preview>span{font-size:11px;text-transform:uppercase;letter-spacing:.12em}.project-preview strong{font-size:clamp(30px,5vw,76px);line-height:1;letter-spacing:-.06em;overflow-wrap:anywhere}.project-preview em{color:#0093c8;font-style:normal}.project-preview-window{border-radius:12px;background:#f7f8fcaa;padding:16px;transform:rotate(-5deg);width:80%;align-self:center;box-shadow:0 16px 40px #21284f20}.project-preview-window i{display:inline-block;width:7px;height:7px;background:#21284f55;border-radius:50%;margin-right:4px}.project-preview-window div{height:110px;margin-top:16px;border-radius:6px;background:#21284f}.project-dialog .project-next{display:flex;flex-direction:column;gap:15px;margin-top:60px;padding:40px 0 0;border-top:1px solid #21284f30}.project-next>span{font-size:13px}.project-next>strong{font-size:clamp(28px,4vw,58px);letter-spacing:-.04em}.project-dialog :focus-visible{outline:3px solid #0093c8;outline-offset:4px}
@keyframes project-sheet-in{from{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes project-sheet-out{to{transform:translateY(105%)}}@keyframes project-shade-in{from{opacity:0}to{opacity:1}}
@media(max-width:760px){.project-dialog{width:100%;height:calc(100dvh - 24px);padding:28px 22px;border-radius:24px 24px 0 0}.project-close{margin:-12px -6px 14px 0}.project-dialog-layout{grid-template-columns:1fr;gap:30px}.project-preview{position:static;grid-row:1;aspect-ratio:1.45;padding:24px}.project-preview strong{font-size:42px}.project-preview-window{display:none}.project-dialog .project-summary{font-size:21px}.project-dialog #project-dialog-title{font-size:42px}}
@media(prefers-reduced-motion:reduce){.project-dialog,.project-dialog::backdrop,.project-dialog.is-closing,.project-dialog.is-closing::backdrop{animation:none}}
/* Keep wheel, touch and keyboard scrolling without a visible scrollbar. */
.project-dialog{scrollbar-width:none;-ms-overflow-style:none}
.project-dialog::-webkit-scrollbar{display:none;width:0;height:0}
/* Supplied project captures: cropped previews, complete images in case studies. */
.project-art.has-capture{padding:0;display:block;aspect-ratio:1.6;min-height:0;background:#e9edf6;overflow:hidden}
.project-art.has-capture img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.project-tile:hover .project-art.has-capture img{transform:scale(1.025)}
.capture-gallery{display:grid;gap:28px;min-width:0;align-self:start}
.capture-gallery figure{margin:0;min-width:0}
.capture-gallery img{display:block;width:100%;height:auto;border-radius:16px;background:#f7f8fc}
.capture-gallery video{display:block;width:100%;height:auto;max-height:75dvh;border-radius:16px;background:#21284f}
.capture-gallery figcaption{font-size:12px;line-height:1.5;color:#59627d;margin-top:10px}
.page-main .case-hero>.capture-gallery{margin-top:40px;max-width:1100px;margin-inline:auto}
.project-dialog-layout:has(.project-capture-gallery){grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.home-project-media{display:block!important;padding:0!important;overflow:hidden;background:#21284f}
.home-project-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:760px){.project-dialog-layout:has(.project-capture-gallery){grid-template-columns:1fr}.project-capture-gallery{grid-row:auto}.capture-gallery{gap:20px}}
@media(prefers-reduced-motion:reduce){.project-art.has-capture img{transition:none}.project-tile:hover .project-art.has-capture img{transform:none}}
/* Compact case-study captures; the linked file retains the full-page image. */
.project-capture-gallery figure>a,.case-hero>.capture-gallery figure>a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:16px;background:#e9edf6}
.project-capture-gallery figure>a img,.case-hero>.capture-gallery figure>a img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:0}
@media(max-width:760px){.project-capture-gallery figure>a,.case-hero>.capture-gallery figure>a{aspect-ratio:1.2}}
/* Give the contact CTA its own line and clear space from the project link. */
.project-dialog .project-story>.project-contact{display:flex;width:fit-content;max-width:100%;margin-top:28px}
.project-related{margin-top:50px;padding-top:30px;border-top:1px solid #21284f30}.project-related-links{display:flex;flex-wrap:wrap;gap:16px}.project-related-links a{border:1px solid #21284f30;border-radius:12px;padding:15px 20px;font-size:16px}.project-related-links a:hover{background:#ffd300}
.project-browser-nav{position:sticky;top:45%;height:0;z-index:4;clear:both}
.project-browse{position:absolute;display:grid;place-items:center;width:44px;height:44px;border:1px solid #21284f25;border-radius:50%;background:#ffd300;color:#21284f;font-size:25px;cursor:pointer;box-shadow:0 4px 14px #21284f15}
.project-browse:hover{background:#21284f;color:white}
.project-browse-prev{left:-48px}.project-browse-next{right:-48px}
.project-browse{font-size:0}
.project-browse::before{content:'';display:block;width:10px;height:10px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);margin-left:-4px}
.project-browse-prev::before{transform:rotate(-135deg);margin-left:4px}
@media(max-width:760px){.project-browser-nav{top:0;margin-bottom:62px;height:44px;display:flex;gap:12px;clear:none;width:112px}.project-browse{position:static;flex:none}.project-dialog .project-browse{display:grid!important}.project-close{margin-bottom:0}}

/* Center chevrons independently of the button text and line box. */
.project-browse{padding:0;line-height:0}
.project-browse::before{position:absolute;left:50%;top:50%;margin:0;transform:translate(-70%,-50%) rotate(45deg)}
.project-browse-prev::before{margin:0;transform:translate(-30%,-50%) rotate(-135deg)}
@media(max-width:760px){.project-browser-nav .project-browse{position:relative}}
@media(max-width:760px){.project-browser-nav .project-browse{left:auto;right:auto}}
