/* Round 2: portfolio architecture and requested interactions only. */
html{overflow-wrap:break-word}
main,section,article{min-width:0}
.arrow{display:inline-block;width:32px;height:12px;flex:0 0 32px;fill:currentColor;vertical-align:middle;transform:rotate(var(--arrow-turn,180deg));transition:translate .22s ease;pointer-events:none}
.arrow-right{--arrow-turn:0deg}.arrow-left{--arrow-turn:180deg}.arrow-up{--arrow-turn:-90deg}.arrow-down{--arrow-turn:90deg;width:25px;flex-basis:25px}
:is(a,button):hover>.arrow-left,:is(a,button):hover>span>.arrow-left{translate:-3px 0}
:is(a,button):hover>.arrow-right,:is(a,button):hover>span>.arrow-right{translate:3px 0}
:is(a,button):hover>.arrow-up{translate:0 -3px}
.text-link,.solid-link,.header-contact,.plan-cta{gap:8px;justify-content:flex-start}
.text-link>span,.solid-link>span,.header-contact>span,.plan-cta>span{display:inline-flex;align-items:center}
.text-link:hover span{transform:none}
.pricing-bottom .text-link{min-width:0}
.project-arrow{display:inline-flex}
.hero-bottom>a{gap:8px}
.service-strip{padding-top:42px;padding-bottom:42px}
.compact-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.compact-service{padding-inline-end:25px;border-inline-end:1px solid var(--line)}
.compact-service:last-child{border-inline-end:0;padding-inline-end:0}
.compact-service .service-number{font-size:12px;display:block;margin-bottom:18px}
.compact-service h3{font-size:26px;font-weight:400;letter-spacing:-.8px;margin-bottom:12px}
.compact-service p{font-size:13px;line-height:1.9;color:var(--muted);max-width:300px}
.portfolio-home .section-heading{margin-bottom:70px}
.work-category{scroll-margin-top:35px}
.work-category+.work-category{margin-top:90px}
.category-title{font-size:36px;font-weight:400;letter-spacing:-1px;margin:0 0 32px;line-height:1.3}
.branding-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px}
.branding-preview .project-card:first-child{grid-column:1/-1}
.branding-preview .project-card:first-child .project-cover{aspect-ratio:16/7}
.branding-preview .project-meta h3,.editorial-projects .project-meta h3{font-size:26px}
.home-logos{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:55px}
.logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.home-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.gallery-tile{display:block;width:100%;min-width:0;padding:0;border:0;background:none;color:var(--ink);text-align:start;font:inherit;cursor:zoom-in}
.gallery-square{display:block;aspect-ratio:1/1;background:#e8e9e0;overflow:hidden}
.gallery-square img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.logos-tile .gallery-square img{object-fit:contain;padding:12%}
.gallery-square .image-placeholder{min-height:0;height:100%;padding:20px;font-size:12px;border-color:#d1d4c9}
.gallery-tile:hover .gallery-square img{transform:scale(1.025)}
.tile-caption{display:block;margin-top:13px;font-size:12px;color:var(--muted)}
.graphic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.editorial-projects{display:flex;flex-direction:column;gap:65px}
.editorial-projects .project-cover{aspect-ratio:16/7}
.editorial-projects .project-meta{padding:23px 0}
.projects-page>.section-end{margin-top:55px}
.branding-case .project-opening{max-width:860px}
.case-story{display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:center;margin:75px 0}
.case-story.text-only{grid-template-columns:1fr;max-width:760px}
.case-portrait{aspect-ratio:4/5;min-width:0;overflow:hidden}
.case-portrait img,.case-closing img{display:block;width:100%;height:100%;object-fit:cover}
.case-story-copy>div+div{margin-top:40px}
.case-story-copy h2{font-size:18px;font-weight:500;letter-spacing:0;line-height:1.5;margin-bottom:14px}
.case-story-copy p{font-size:15px;line-height:1.95;color:var(--muted);max-width:450px}
.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.case-gallery figure{margin:0;min-width:0}
.case-gallery img{width:100%;height:auto;aspect-ratio:4/3;display:block;object-fit:cover}
.case-gallery .image-placeholder{aspect-ratio:4/3;height:auto;min-height:0}
.case-gallery .case-gallery-wide{grid-column:1/-1}
.case-gallery-wide img,.case-gallery-wide .image-placeholder{aspect-ratio:16/8}
.case-gallery figcaption{font-size:11px;line-height:1.8;color:var(--muted);margin-top:12px}
.case-closing{aspect-ratio:16/7;overflow:hidden;margin-top:40px}
.next-project{column-gap:8px}
.next-project strong{font-size:25px;font-weight:400;max-width:350px}
/* A native dialog keeps focus and pointer interaction in the open gallery. */
.lightbox{width:min(1060px,calc(100vw - 40px));height:min(850px,calc(100dvh - 40px));max-width:none;max-height:none;padding:25px 30px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.lightbox::backdrop{background:rgba(25,27,22,.8)}
.lightbox[open]{display:flex;flex-direction:column;gap:15px}
.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-shrink:0}
.lightbox button{border:0;background:none;color:inherit;min-width:44px;min-height:44px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font:13px Noto,Arial,sans-serif;cursor:pointer}
.lightbox-close span{font-size:24px;font-weight:300}
.lightbox-top p{font:13px Fira,Arial,sans-serif;color:var(--muted)}
.lightbox-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:auto}
.lightbox-image{display:block;max-width:100%;max-height:100%;object-fit:contain;width:auto;height:auto}
.lightbox-placeholder{width:min(100%,560px);aspect-ratio:1;background:#e8e9e0;border:1px solid #c8ccbf;display:grid;place-items:center;color:var(--muted);font-size:14px}
.lightbox [hidden]{display:none!important}
.lightbox-bottom>p{text-align:center;font-size:14px;line-height:1.6}
/* Scroll-linked path. No sticky, scroll capture or scroll locking. */
.process-route{--route-progress:0;position:relative}
.route-track{position:absolute;top:19px;right:16.666%;left:16.666%;height:1px;background:var(--line);pointer-events:none}
.route-fill{position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--route-progress));transform-origin:right;will-change:transform}
.process-route .process-steps{gap:0}
.process-route .process-steps li{border:0;text-align:center;display:block;padding:0 25px}
.process-route .step-number{display:grid;place-items:center;width:39px;height:39px;margin:0 auto;position:relative;border:1px solid var(--line);background:var(--white);font-size:14px;color:var(--muted);z-index:1;transition:color .2s,background .2s,border-color .2s}
.process-route .is-reached .step-number{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.process-route h3{margin:28px 0 14px}
.process-route p{margin:0 auto}
@media(max-width:1050px){.compact-services{gap:25px}.compact-service{padding-inline-end:18px}.compact-service h3{font-size:24px}.logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.process-route .process-steps li{padding:0 15px}}
@media(max-width:760px){.service-strip{padding-block:28px}.compact-services{grid-template-columns:1fr;gap:20px}.compact-service{border-inline-end:0;border-bottom:1px solid var(--line);padding:0 0 20px;display:grid;grid-template-columns:25px 1fr;gap:7px 12px}.compact-service:last-child{border-bottom:0;padding-bottom:0}.compact-service .service-number{grid-row:1/3;margin:3px 0 0;font-size:11px}.compact-service h3{font-size:23px;margin:0}.compact-service p{font-size:12px;max-width:none;grid-column:2}.portfolio-home .section-heading{margin-bottom:45px}.work-category+.work-category{margin-top:55px}.category-title{font-size:30px;margin-bottom:24px}.branding-preview{grid-template-columns:1fr;gap:30px}.branding-preview .project-card:first-child .project-cover,.editorial-projects .project-cover{aspect-ratio:4/3}.home-logos{padding-block:32px}.logo-grid,.home-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.home-logo-grid .gallery-tile:last-child{grid-column:1/-1;max-width:calc(50% - 7px);width:100%;justify-self:center}.gallery-square .image-placeholder{padding:13px}.gallery-square .placeholder-label{font-size:11px}.tile-caption{font-size:11px;line-height:1.6}.graphic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.graphic-preview .gallery-tile:first-child{grid-column:1/-1}.editorial-projects{gap:38px}.branding-preview .project-meta h3,.editorial-projects .project-meta h3{font-size:22px}.case-story{grid-template-columns:1fr;gap:35px;margin:40px 0}.case-portrait{max-height:600px;aspect-ratio:4/5}.case-story-copy h2{font-size:17px}.case-story-copy p{font-size:14px}.case-story-copy>div+div{margin-top:28px}.case-gallery{gap:20px;grid-template-columns:1fr}.case-gallery-wide img,.case-gallery-wide .image-placeholder{aspect-ratio:4/3}.case-closing{aspect-ratio:4/3;margin-top:25px}.next-project strong{font-size:22px}.lightbox{width:calc(100vw - 20px);height:calc(100dvh - 20px);padding:14px;gap:10px}.lightbox-bottom>p{font-size:12px}.lightbox-placeholder{max-height:100%;width:auto;min-width:70%;aspect-ratio:1}.process-route .process-steps{display:flex;flex-direction:column;gap:35px}.process-route .process-steps li{text-align:right;display:grid;grid-template-columns:39px 1fr;gap:10px 22px;padding:0;min-height:130px}.process-route .step-number{grid-row:1/3;margin:0}.process-route h3{margin:3px 0 0;font-size:24px}.process-route p{margin:0;font-size:13px;max-width:100%}.route-track{right:19px;left:auto;top:19px;bottom:calc(130px - 19px);width:1px;height:auto}.route-fill{transform:scaleY(var(--route-progress));transform-origin:top}.arrow{width:28px;flex-basis:28px}.arrow-down,.arrow-up{width:24px;flex-basis:24px}}
@media(prefers-reduced-motion:reduce){.route-fill{transform:none}.process-route .step-number{background:var(--ink);border-color:var(--ink);color:var(--paper)}.arrow,.gallery-square img{transition:none!important;translate:none!important}}
