/* Standalone behavior and accessibility; original site layout remains in the saved styles. */
html { scroll-behavior: smooth; }
html.wf-loading { visibility:visible!important; }
[data-animation-role], .preFade, .preSlide, .preScale, .preClip, .preFlex { opacity:1!important; visibility:visible!important; }
.preFade, .preSlide, .preScale, .preFlex { transform:none!important; }
.sqs-block-content { opacity:1; }
/* Squarespace's boot animation hides the foreground for two seconds. */
.migration-preview :is(#header,#footer-sections,.page-section > .content-wrapper) { animation:none!important; }

/* Keep every saved text style sans-serif while Adobe Fonts loads or is unavailable. */
:root {
 --portfolio-font-family:"sofia-pro","Helvetica Neue",Arial,sans-serif;
 --heading-font-font-family:var(--portfolio-font-family);
 --body-font-font-family:var(--portfolio-font-family);
 --meta-font-font-family:var(--portfolio-font-family);
 --product-basic-item-price-font-font-family:var(--portfolio-font-family);
 --primary-button-font-font-family:var(--portfolio-font-family);
 --secondary-button-font-font-family:var(--portfolio-font-family);
 --blog-single-column-list-meta-font-font-family:var(--portfolio-font-family);
 --quote-block-text-font-font-family:var(--portfolio-font-family);
 --quote-block-source-font-font-family:var(--portfolio-font-family);
 --site-title-font-font-family:var(--portfolio-font-family);
 --blog-basic-grid-list-title-font-font-family:var(--portfolio-font-family);
 --blog-basic-grid-list-meta-font-font-family:var(--portfolio-font-family);
 --header-button-font-font-family:var(--portfolio-font-family);
 --product-basic-item-title-font-font-family:var(--portfolio-font-family);
 --blog-item-meta-font-font-family:var(--portfolio-font-family);
 --blog-item-pagination-font-font-family:var(--portfolio-font-family);
 --menu-block-nav-font-font-family:var(--portfolio-font-family);
 --product-grid-text-below-title-font-font-family:var(--portfolio-font-family);
 --blog-basic-grid-list-excerpt-font-font-family:var(--portfolio-font-family);
 --site-navigation-font-font-family:var(--portfolio-font-family);
 --tertiary-button-font-font-family:var(--portfolio-font-family);
 --content-link-block-title-font-font-family:var(--portfolio-font-family);
 --mobile-site-title-font-font-family:var(--portfolio-font-family);
 --product-grid-text-below-price-font-font-family:var(--portfolio-font-family);
 --blog-single-column-list-title-font-font-family:var(--portfolio-font-family);
 --blog-single-column-list-excerpt-font-font-family:var(--portfolio-font-family);
 --blog-item-title-font-font-family:var(--portfolio-font-family);
}

/* Shared heading palette; named exceptions retain their approved artwork colors. */
:root { --portfolio-heading-color:#38383b;--portfolio-secondary-heading-color:#75757a; }
.page-section :is(h1,h2,h3,h4,h5,h6):not([data-heading-color="preserve"]) { color:var(--portfolio-heading-color)!important; }
.page-section :is(h1,h2,h3,h4,h5,h6):not([data-heading-color="preserve"]) :where(a,span,strong,em,b,i) { color:inherit!important; }
.page-section :is(h1,h2,h3,h4,h5,h6):not([data-heading-color="preserve"]) [data-heading-tone="secondary"] { color:var(--portfolio-secondary-heading-color)!important; }
/* Footer links use the primary charcoal. */
#footer-sections .sqs-html-content a { color:var(--portfolio-heading-color)!important; }
#footer-sections .sqs-html-content a :is(span,strong,em) { color:inherit!important; }
/* One fixed palette color per link; each underline finishes before the next enters. */
body .portfolio-animated-link { --portfolio-underline-thickness:2px;color:var(--portfolio-heading-color)!important;background:none!important;border-color:transparent!important;text-decoration:none!important;animation:none!important;transform:none!important;transition:color 180ms ease; }
body .portfolio-animated-link::before,body .portfolio-animated-link::after { content:none!important; }
body .portfolio-animated-link .portfolio-link-text { background-image:linear-gradient(var(--portfolio-heading-color),var(--portfolio-heading-color)),linear-gradient(var(--portfolio-link-color,var(--portfolio-secondary-heading-color)),var(--portfolio-link-color,var(--portfolio-secondary-heading-color)));background-repeat:no-repeat;background-position:right bottom,left bottom;background-size:100% var(--portfolio-underline-thickness),0% var(--portfolio-underline-thickness);-webkit-box-decoration-break:clone;box-decoration-break:clone;text-decoration:none!important; }
body .portfolio-animated-link:has(.migration-footer-nav-label),body [data-section-id="6a4d90ed64d67804d57fe06e"] h2 .portfolio-animated-link { --portfolio-underline-thickness:1px; }
body .portfolio-animated-link.migration-contact { --portfolio-underline-thickness:2px; }
body .portfolio-animated-link[data-link-used] .portfolio-link-text { animation:portfolio-underline-off 520ms ease both; }
@media(hover:hover) and (pointer:fine) {
 body .portfolio-animated-link:hover { color:var(--portfolio-link-color,var(--portfolio-secondary-heading-color))!important; }
 body .portfolio-animated-link[data-link-used]:hover .portfolio-link-text { animation-name:portfolio-underline-on; }
}
body .portfolio-animated-link:is(:focus-visible,:active) { color:var(--portfolio-link-color,var(--portfolio-secondary-heading-color))!important; }
body .portfolio-animated-link[data-link-used]:is(:focus-visible,:active) .portfolio-link-text { animation-name:portfolio-underline-on; }
body .portfolio-animated-link:focus-visible { outline:2px solid currentColor;outline-offset:6px; }
@keyframes portfolio-underline-on {
 0% { background-size:100% var(--portfolio-underline-thickness),0% var(--portfolio-underline-thickness); }
 38%,58% { background-size:0% var(--portfolio-underline-thickness),0% var(--portfolio-underline-thickness); }
 100% { background-size:0% var(--portfolio-underline-thickness),100% var(--portfolio-underline-thickness); }
}
@keyframes portfolio-underline-off {
 0% { background-size:0% var(--portfolio-underline-thickness),100% var(--portfolio-underline-thickness); }
 38%,58% { background-size:0% var(--portfolio-underline-thickness),0% var(--portfolio-underline-thickness); }
 100% { background-size:100% var(--portfolio-underline-thickness),0% var(--portfolio-underline-thickness); }
}
.migration-footer-nav-label { display:inline-block;position:relative;text-decoration:inherit; }
.migration-footer-chevron { position:absolute;top:50%;width:.45em;height:.75em;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:square;stroke-linejoin:miter;transform:translateY(-50%); }
.migration-footer-chevron--previous { left:-1em; }
.migration-footer-chevron--next { right:-1em;transform:translateY(-50%) scaleX(-1); }
/* Center paired page links on mobile; preserve the authored desktop grid. */
@media(max-width:767px) {
body [data-footer-navigation] .fluid-engine { display:flex;flex-direction:column;align-items:center;gap:clamp(32px,4vw,56px);padding-block:clamp(48px,6vw,80px);overflow:visible; }
body [data-footer-navigation] .fe-block { width:100%; }
body [data-footer-navigation] :is(h1,h2,h3,h4,h5,h6) { margin:0!important;text-align:center!important; }
body [data-footer-navigation] .portfolio-animated-link { display:inline-block;max-width:calc(100% - 2em);margin-inline:1em; }
}
.js-brush-motion .migration-brush[data-brush-state="pending"],
.js-brush-motion .migration-brush[data-brush-state="loading"] { visibility:hidden; }
.migrated-video { background:transparent; }
.sqs-native-video, .native-video-player { width:100%;height:100%; }
.migration-loop-player { display:block;position:relative;width:100%;aspect-ratio:16/9; }
.migration-loop-player video { display:block;width:100%;height:100%;object-fit:contain; }
.migration-loop-player:focus-visible { outline:2px solid #38383b;outline-offset:4px; }
.sqs-block-image .fluid-image-container .migration-project-image { display:block;width:100%;height:100%; }
.sqs-block-video .embed-block-wrapper { position:relative; }
.sqs-block-video iframe, .sqs-video-wrapper iframe { width:100%;height:100%;position:absolute;inset:0;border:0; }
.sqs-video-wrapper:has(iframe) { aspect-ratio:16/9;position:relative; }
.header-nav-item--folder:focus-within .header-nav-folder-content,
.header-nav-item--folder.migration-folder-open .header-nav-folder-content { opacity:1!important;pointer-events:auto!important;visibility:visible!important; }
.header-menu { display:none!important; }
.migration-mobile-menu { display:none; }
.migration-mobile-menu a,.migration-mobile-menu button { font:inherit;color:inherit; }
.migration-mobile-menu button { border:0;background:none;cursor:pointer; }
.migration-mobile-menu [hidden] { display:none!important; }
.migration-lightbox { border:0;padding:0;background:transparent;max-width:95vw;max-height:95vh; }
.migration-lightbox img { display:block;max-width:92vw;max-height:88vh;object-fit:contain; }
@media(max-width:767px) {
 body.migration-menu-open { overflow:hidden; }
 body.migration-menu-open .migration-mobile-menu { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;position:fixed;inset:var(--header-height,88px) 0 0;z-index:9999;background:#fff;padding:30px 20px;overflow:auto;font-size:25px; }
 .migration-work-links { display:flex;flex-direction:column;gap:18px;text-align:center;font-size:19px;padding:5px 0; }
 .migration-mobile-menu a { text-decoration:none; }
 .migration-mobile-menu a:hover { text-decoration:underline; }
 .migration-mobile-menu .migration-contact { margin-top:12px;border-bottom:2px solid;padding-bottom:5px;font-size:16px;letter-spacing:.1em;text-transform:uppercase; }
 .migration-menu-open #header { z-index:10000; }
}
@media(prefers-reduced-motion:reduce) { html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;} }
/* Saved sections use divider type "none"; authored rule blocks supply the visible lines. */
.page-section.has-section-divider { padding-bottom:0!important;--divider-height:0px; }
.has-section-divider > .section-divider-display { display:none!important; }
.sqs-gallery-block-grid > .sqs-gallery { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px; }
.sqs-gallery-block-grid .slide { width:auto!important;position:relative!important;float:none!important; }
.sqs-gallery-block-grid .margin-wrapper { margin:0!important; }
.migration-gallery-video { width:100%;aspect-ratio:1;border:0;padding:0;background:#222;position:relative;display:block;cursor:pointer;overflow:hidden; }
.migration-gallery-video img { width:100%;height:100%;object-fit:cover; }
.migration-gallery-video span { position:absolute;inset:0;display:grid;place-items:center;color:white;font:50px/1 sans-serif;text-shadow:0 2px 12px #000; }
.migration-video-dialog { padding:0;border:0;background:#000;width:min(1100px,92vw);max-width:95vw;overflow:visible; }
.migration-video-dialog-player { position:relative;aspect-ratio:16/9; }
.migration-video-dialog iframe { width:100%;height:100%;border:0;position:absolute;inset:0; }
@media(max-width:600px){ .sqs-gallery-block-grid > .sqs-gallery {grid-template-columns:1fr;} }
.wf-loading body { visibility:visible!important; }
.gallery-grid-item-wrapper,.user-items-list-carousel__slides,.user-items-list-carousel__media,.migration-gallery-video img { opacity:1!important;visibility:visible!important; }
.gallery-grid-wrapper { grid-template-columns:repeat(3,minmax(0,1fr));gap:1.9vw;padding:0 1.9vw;width:auto; }
.user-items-list-carousel__slides { position:relative;overflow:hidden; }
.user-items-list-carousel__slide { left:0!important;top:0!important;opacity:1!important; }
@media(max-width:767px){.gallery-grid-wrapper {grid-template-columns:repeat(2,minmax(0,1fr));}}
.sqsrte-scaled-text-container > .sqsrte-scaled-text { position:relative!important;left:0!important;white-space:nowrap!important;width:max-content; }
.sqsrte-scaled-text-container > .sqsrte-scaled-text > * { white-space:nowrap!important; }
.sqs-gallery-block-grid .sqs-video-wrapper,.sqs-gallery-block-grid .video-lightbox-wrapper { height:auto!important;padding-bottom:0!important; }

/* Selected work uses complete rows: two lead projects, then three case studies. */
.featured-projects { display:block;min-height:0;padding:64px 0 80px!important;background:#f2f2f2; }
.featured-projects-inner { width:88%;max-width:var(--sqs-site-max-width,1500px);margin:0 auto; }
.featured-projects-label { scroll-margin-top:calc(var(--header-height,102px) + 24px);margin:0 0 36px;font-family:var(--portfolio-font-family);font-size:24px;font-weight:500;line-height:1.15;letter-spacing:-.02em;text-align:center;text-transform:none;color:var(--portfolio-heading-color); }
.featured-project-grid { display:grid;grid-template-columns:minmax(0,1fr);column-gap:24px;row-gap:44px; }
.featured-project-card { min-width:0; }
.featured-project-media { display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:#f4f4f4;text-decoration:none;border-radius:8px; }
.featured-project-media img { display:block;width:100%;height:100%;object-fit:cover;object-position:center; }
.featured-project-tags { position:absolute;top:16px;left:16px;right:16px;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none; }
.featured-project-tags li { margin:0;padding:6px 10px;border-radius:3px;background:#fff;color:var(--portfolio-heading-color);font-family:var(--portfolio-font-family);font-size:12px;font-weight:500;line-height:1.2;letter-spacing:.02em;text-transform:uppercase; }
.featured-project-caption { padding-top:18px; }
.featured-projects .featured-project-heading { margin:0;font-family:var(--portfolio-font-family);font-size:clamp(28px,2.8vw,40px);font-weight:700;line-height:1.05;letter-spacing:0;text-transform:uppercase;text-align:left;color:var(--portfolio-heading-color); }
.featured-project-heading a { color:inherit!important;text-decoration:none!important;background-image:none;border:0; }
.featured-project-heading .portfolio-animated-link { --portfolio-link-color:var(--portfolio-heading-color); }
.featured-project-media:focus-visible,
.featured-project-heading a:focus-visible { outline:2px solid var(--portfolio-heading-color);outline-offset:4px; }
.featured-project-description { margin:8px 0 16px;font-family:var(--portfolio-font-family);font-size:17px;font-weight:400;line-height:1.45;letter-spacing:0;color:#555558; }
.featured-project-context { display:inline-block;max-width:100%;box-sizing:border-box;margin:0;padding:5px 9px;background:#e2e2e2;color:#555558;font-family:var(--portfolio-font-family);font-size:12px;font-weight:500;line-height:1.3;letter-spacing:.03em;text-transform:uppercase; }
/* Taller mobile thumbnails leave room for tags; motion fills the frame by cropping. */
@media(max-width:767px) {
 .featured-project-media { aspect-ratio:4/3; }
 .featured-project-media > :is(img,video) { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center; }
 .featured-project-tags { top:12px;left:12px;right:12px; }
}
@media(min-width:768px) {
 .featured-project-grid { grid-template-columns:repeat(2,minmax(0,1fr));row-gap:56px; }
 .featured-project-card:last-child { grid-column:1 / -1; }
 .featured-projects-label { font-size:28px; }
}
@media(min-width:1000px) {
 .featured-project-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .featured-project-card { grid-column:span 2; }
 .featured-project-card:nth-child(-n+2) { grid-column:span 3; }
 .featured-project-card:last-child { grid-column:span 2; }
 .featured-project-card:nth-child(n+3) .featured-project-media { aspect-ratio:3/2; }
}

/* The upper intro fills a shared measure; the lower angled lines stay separate. */
.experimental-intro-block { display:flex;align-items:center;min-width:0; }
.experimental-intro-copy { position:relative;isolation:isolate;overflow:visible!important;width:100%;min-width:0;container-type:inline-size; }
.experimental-intro-copy .experimental-intro-brush { position:absolute;top:50%;left:0;z-index:-1;width:100%;height:auto;max-width:none;transform:translateY(-50%);opacity:.28;pointer-events:none; }
.experimental-intro-lines { display:flex;flex-direction:column;gap:clamp(12px,1.4vw,22px); }
.experimental-intro-lines .experimental-intro-line { margin:0;padding:0;font-family:var(--portfolio-font-family);font-weight:700;font-size:calc(100cqw / var(--intro-ratio));line-height:1;letter-spacing:0;text-transform:uppercase;white-space:nowrap;color:var(--portfolio-heading-color); }
.experimental-intro-line > span { display:inline-block;white-space:nowrap; }
.experimental-intro-lines .experimental-intro-line--coral { color:#e59168; }
.experimental-intro-lines .experimental-intro-line--mobile { display:none; }
@media(max-width:599px) {
 .experimental-intro-lines .experimental-intro-line--desktop { display:none; }
 .experimental-intro-lines .experimental-intro-line--mobile { display:block; }
}

/* Widescreen project frames let linked motion previews fill the media area. */
.featured-project-media--video { background:var(--featured-video-background,#fff); }
.featured-project-media--video video { display:block;width:100%;height:100%;object-fit:cover; }

/* Keep both portraits truly circular inside their existing grid cells.
   The photo stays intact; a shared close crop shows the face and shoulders. */
.portfolio-portrait-block .sqs-block-content { display:flex;align-items:center;justify-content:center;container-type:size;width:100%;height:100%; }
.portfolio-portrait { position:relative;width:min(100cqw,100cqh);aspect-ratio:1;flex:none;border-radius:50%;overflow:hidden; }
.sqs-block-image .portfolio-portrait img { position:absolute;display:block;width:266.666667%;height:auto;max-width:none;left:-80.333333%;top:-38.333333%; }

/* Shared paragraph rhythm, including pasted span overrides; preserve lead sizes. */
main .portfolio-body-copy,main .portfolio-lead-copy { font-family:var(--portfolio-font-family);color:#555558!important;line-height:1.45!important; }
main .portfolio-body-copy { font-size:17px!important; }
main :is(.portfolio-body-copy,.portfolio-lead-copy) :is(span,strong,em,b,i) { color:inherit!important;font-size:inherit!important;line-height:inherit!important; }
main a.portfolio-inline-link { color:var(--portfolio-link-color,#277688)!important;text-decoration:underline!important;text-underline-offset:.15em; }
main a.portfolio-inline-link :is(span,strong,em,b,i) { color:inherit!important; }
@media(min-width:768px) {
 main .portfolio-service-blurb { width:min(29vw,440px);max-width:none; }
}
@media(max-width:767px) {
 main .portfolio-body-copy { font-size:16px!important; }
 main .portfolio-service-blurb { width:100%; }
}
/* Fine-pointer visitors reveal image tags; touch/mobile visitors see static tags. */
@media(min-width:768px) and (hover:hover) and (pointer:fine) {
 .featured-project-tags { opacity:0;transform:translateY(8px);transition:opacity 180ms ease,transform 220ms ease;pointer-events:none; }
 .featured-project-card:is(:hover,:focus-within) .featured-project-tags { opacity:1;transform:translateY(0); }
}

/* Fitted lettering must resize immediately, without inherited font-size transitions. */
.migration-preview :is(.sqsrte-scaled-text,.sqsrte-scaled-text > *,.experimental-intro-line,.experimental-intro-line > span) { transition:none!important; }
@media(max-width:767px) {
 .migration-preview .experimental-intro-block { grid-row-end:6; }
}

/* Palette accents, consistent rules, and case-study eyebrow hierarchy. */
:root { --portfolio-teal:#277688;--portfolio-purple:#9946c8;--portfolio-coral:#b34f43;--portfolio-gold:#97620a;--portfolio-green:#5f752e;--portfolio-rule-width:min(80vw,1200px); }
main hr.portfolio-rule { height:1px!important;border:0!important;background:#38383b!important;opacity:1!important; }
main hr.portfolio-rule--accent { width:min(64px,100%)!important;margin-left:0!important;margin-right:auto!important; }
main hr.portfolio-rule--wide { width:var(--portfolio-rule-width)!important;max-width:none!important;position:relative;left:50%;transform:translateX(-50%);margin-left:0!important;margin-right:0!important; }
.portfolio-section-separated::after { content:"";position:absolute;left:50%;bottom:0;width:var(--portfolio-rule-width);height:1px;background:#38383b;transform:translateX(-50%); }
.portfolio-gray-callout,.portfolio-gray-callout > .section-border > .section-background { background:#f2f2f2!important; }
main .portfolio-eyebrow { font-family:var(--portfolio-font-family)!important;font-weight:500!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important;color:#75757a!important;margin:0!important; }
main a.portfolio-inline-link { font-weight:500; }
body .portfolio-animated-link .portfolio-link-text { padding-bottom:4px; }
/* Uppercase project titles need the underline above the font’s descender space. */
body .featured-project-heading .portfolio-link-text { padding-bottom:0;background-position:right calc(100% - .14em),left calc(100% - .14em);background-size:0% var(--portfolio-underline-thickness),0% var(--portfolio-underline-thickness);animation:none!important;transition:background-size 520ms ease; }
@media(hover:hover) and (pointer:fine) {
 body .featured-project-heading .portfolio-animated-link:hover .portfolio-link-text,
 body .featured-project-card:has(.featured-project-media:hover) .featured-project-heading .portfolio-link-text { background-size:0% var(--portfolio-underline-thickness),100% var(--portfolio-underline-thickness); }
}
body .featured-project-heading .portfolio-animated-link:focus-visible .portfolio-link-text { background-size:0% var(--portfolio-underline-thickness),100% var(--portfolio-underline-thickness); }
body .portfolio-site-footer-link { --portfolio-underline-thickness:1px; }
#footer-sections .sqs-html-content .portfolio-site-footer-link:is(:hover,:focus-visible,:active) { color:var(--portfolio-link-color)!important; }

/* Reserve header space in CSS so deferred scripts and fonts cannot shift the hero. */
.portfolio-home { --portfolio-hero-header-height:calc(48px + 4.2vw); }
.portfolio-home #header .header-inner { height:48px; }
@media only screen and (pointer:coarse) and (max-width:1024px),screen and (max-width:799px) {
 .portfolio-home { --portfolio-hero-header-height:calc(44px + 12vw); }
 .portfolio-home #header .header-inner { height:44px; }
}
/* A full first screen, followed by ordinary document scrolling. */
.portfolio-home .portfolio-hero { position:relative;height:100svh;min-height:0!important;padding:0!important;overflow:hidden; }
.portfolio-hero-background { position:absolute;inset:0; }
.portfolio-hero-background img { width:100%;height:100%;object-fit:cover; }
.portfolio-hero-stage { position:absolute;top:var(--portfolio-hero-header-height);bottom:0;left:0;right:0; }
.page-section .portfolio-hero-name { position:absolute;z-index:2;margin:0;font-family:var(--portfolio-font-family);font-weight:700;font-size:clamp(76px,12vw,216px);line-height:.95;letter-spacing:0;text-transform:uppercase;pointer-events:none; }
.portfolio-hero-name--first { top:7%;left:max(6vw,calc((100vw - 1500px)/2));color:#38383b!important; }
.portfolio-hero-name--last { bottom:64px;right:max(6vw,calc((100vw - 1500px)/2));color:#979797!important; }
.portfolio-hero-video { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--portfolio-hero-video-width,min(50vw,calc((100svh - var(--portfolio-hero-header-height) - 190px)*1.777778),1000px)); }
.portfolio-scroll-cue { position:absolute;z-index:3;bottom:10px;left:calc(50% - 22px);width:44px;height:44px;display:grid;place-items:center;color:#38383b;background:none;border:0;transition:opacity 180ms ease; }
.portfolio-scroll-cue.is-dismissed { opacity:0;pointer-events:none; }
.portfolio-scroll-cue svg { width:24px;height:15px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:square;stroke-linejoin:miter; }
.portfolio-scroll-cue:focus-visible { outline:2px solid currentColor;outline-offset:2px; }
.portfolio-scroll-cue.is-idle svg { animation:portfolio-scroll-bob 1300ms ease-in-out infinite; }
@keyframes portfolio-scroll-bob { 0%,100%{transform:translateY(0)}50%{transform:translateY(7px)} }
#portfolio-services { scroll-margin-top:var(--header-height,106px); }
.portfolio-home #header .header-title { width:0;margin-right:0;opacity:0!important;overflow:hidden;transform:translateX(-12px);flex:0 0 auto;transition:width 350ms ease,margin-right 350ms ease,opacity 250ms ease,transform 350ms ease; }
.portfolio-home #header .header-title-text { width:max-content;white-space:nowrap; }
.portfolio-home.portfolio-nav-name-visible #header .header-title { width:var(--portfolio-brand-width,120px);margin-right:3.2vw;opacity:1!important;transform:translateX(0); }
@media(max-width:767px) {
 .portfolio-hero-name--first { top:13%;left:6vw; }
 .portfolio-hero-name--last { bottom:14%;right:6vw; }
 .portfolio-hero-video { width:var(--portfolio-hero-video-width,88vw);top:48%; }
 .portfolio-home.portfolio-nav-name-visible #header .header-title { margin-right:0; }
}

/* Display words reveal on entry; the outer experiment block keeps its final angle. */
.experimental-intro-lines .experimental-intro-line { color:#38383b!important; }
[data-scroll-reveal] { display:inline-block; }
.js-scroll-reveal [data-scroll-reveal] { opacity:0;transform:translateY(26px) rotate(var(--reveal-angle,0deg)); }
.js-scroll-reveal [data-scroll-reveal].is-revealed { animation:portfolio-text-rise 650ms cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms) both; }
@keyframes portfolio-text-rise { from{opacity:0;transform:translateY(26px) rotate(var(--reveal-angle,0deg))}to{opacity:1;transform:translateY(0) rotate(0)} }
/* And Then Some uses the approved brighter palette for expressive lettering. */
[data-section-id="6a4704cbb6f7d664d9b007b6"] { --portfolio-teal:#1cacc4;--portfolio-purple:#a84edd;--portfolio-coral:#ff6c61;--portfolio-gold:#ff9103;--portfolio-green:#6a871c; }
.page-section .portfolio-word[data-word-color="coral"] { color:var(--portfolio-coral)!important; }
.page-section .portfolio-word[data-word-color="teal"] { color:var(--portfolio-teal)!important; }
.page-section .portfolio-word[data-word-color="green"] { color:var(--portfolio-green)!important; }
.page-section .portfolio-word[data-word-color="purple"] { color:var(--portfolio-purple)!important; }
.page-section .portfolio-word[data-word-color="gold"] { color:var(--portfolio-gold)!important; }
@media(prefers-reduced-motion:reduce) {
 [data-scroll-reveal] { opacity:1!important;transform:none!important;animation:none!important; }
 .portfolio-scroll-cue svg { animation:none!important; }
}


/* The three homepage category links keep their own gray hover and display-type rule gap. */
.portfolio-home #portfolio-services h2 .portfolio-animated-link { --portfolio-link-color:#979797; }
body.portfolio-home #portfolio-services h2 .portfolio-link-text { padding-bottom:0;background-position:right calc(100% - .14em),left calc(100% - .14em); }

/* Image, video, and artwork galleries share one lightbox treatment site-wide. */
:root { --portfolio-lightbox-backdrop:rgba(12,12,17,.93);--portfolio-lightbox-blur:3px; }
:is(.migration-lightbox,.migration-video-dialog,.workshop-gallery)::backdrop { background:var(--portfolio-lightbox-backdrop);-webkit-backdrop-filter:blur(var(--portfolio-lightbox-blur));backdrop-filter:blur(var(--portfolio-lightbox-blur)); }
:is(.migration-lightbox,.migration-video-dialog,.workshop-gallery):focus { outline:none; }
:is(.migration-lightbox,.migration-video-dialog,.workshop-gallery) > button { position:fixed;top:12px;right:16px;z-index:1;display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:0;background:transparent;color:#fff;box-shadow:none;font:38px/1 sans-serif;cursor:pointer; }
:is(.migration-lightbox,.migration-video-dialog,.workshop-gallery) > button:focus-visible { outline:2px solid #fff;outline-offset:2px; }
.migration-lightbox { max-height:calc(100svh - 112px); }
.migration-lightbox img { max-height:calc(100svh - 112px); }
.migration-video-dialog { width:min(1100px,92vw,calc((100svh - 112px) * 16 / 9)); }


/* Homepage photo study: keep the whole help-booth portrait, with room for the copy. */
.portfolio-home-about { padding:clamp(48px,5vw,80px) 0!important;scroll-margin-top:var(--header-height,102px); }
.portfolio-home-about-inner { display:grid;grid-template-columns:minmax(240px,380px) minmax(0,1fr);align-items:center;gap:clamp(36px,6vw,84px);width:min(88vw,1160px);margin-inline:auto; }
.portfolio-home-about-photo { width:100%;margin:0; }
.portfolio-home-about-photo a { display:block; }
.portfolio-home-about-photo img { display:block;width:100%;height:auto;border-radius:0; }
.portfolio-home-about-copy { min-width:0; }
.portfolio-home-about-copy h2 { margin:0 0 24px;font:700 clamp(40px,5vw,72px)/1.05 var(--portfolio-font-family);letter-spacing:0;text-transform:uppercase; }
.portfolio-home-about-copy p { margin:0 0 18px; }
.portfolio-about-cta { display:inline-block;margin-top:12px;font:500 14px/1.6 var(--portfolio-font-family);letter-spacing:.14em;text-transform:uppercase; }
@media(max-width:850px) {
 .portfolio-home-about-inner { display:flex;flex-direction:column;align-items:stretch;gap:24px; }
 .portfolio-home-about-copy { display:contents; }
 .portfolio-home-about-copy h2 { order:0;margin:0; }
 .portfolio-home-about-photo { order:1;width:min(100%,420px);align-self:center; }
 .portfolio-home-about-copy p { order:2;margin:0; }
 .portfolio-home-about-copy > .portfolio-about-cta { order:3;align-self:flex-start;margin-top:4px; }
}

/* Keep project subtitles close to their titles without changing paragraph spacing. */
.portfolio-project-heading h3 { margin-bottom:8px!important; }
.portfolio-project-heading h3 + h4 { margin-top:0!important; }
/* The separate BORP heading frames retain the description gap after the subtitle. */
.portfolio-project-heading-stack .stack-child-container:has(h3) { --child-fixed-height:auto!important;height:auto!important;min-height:0;margin-bottom:-5px!important; }
@media(max-width:767px) {
 [data-section-id="6a471104d168493fd3514b2c"] .fe-block-399bab652096f6d990ca { align-self:end; }
 [data-section-id="6a471104d168493fd3514b2c"] .fe-block-f6acd0dbb0be14277269 { align-self:start;margin-top:8px; }
}

/* Case-study navigation and detail labels echo the homepage's white and gray tags. */
.portfolio-case-tags { display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin:0;scroll-margin-top:calc(var(--header-height,102px) + 24px); }
main .portfolio-case-tag { display:inline-flex;align-items:center;justify-content:center;gap:6px;max-width:100%;box-sizing:border-box;padding:6px 10px;border:1px solid #38383b18;border-radius:3px;font:500 12px/1.3 var(--portfolio-font-family);letter-spacing:.02em;text-transform:uppercase;text-decoration:none!important;color:#38383b!important;transition:background-color 160ms ease,border-color 160ms ease; }
.portfolio-case-tag--category,.portfolio-case-tag--client { background:#fff; }
main .portfolio-case-tag:hover { background:#d5d5d5;border-color:#38383b55; }
main .portfolio-case-tag:focus-visible { outline:2px solid #38383b;outline-offset:3px; }
.stack-child-container:has(.portfolio-case-tags) { --child-fixed-height:auto!important;height:auto!important;min-height:0; }
main .portfolio-case-fact .portfolio-case-fact-label { display:table;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 10px!important;padding:5px 9px;border-radius:3px;background:#e2e2e2;color:#555558;font:500 12px/1.3 var(--portfolio-font-family);letter-spacing:.03em;text-transform:uppercase; }
main .portfolio-case-fact-label strong { font:inherit; }
main .portfolio-case-fact .portfolio-case-fact-copy { margin:0!important; }
@media(max-width:767px) { main .portfolio-case-tag { padding:8px 10px; } }

/* Mobile case studies share Aging Well's media → tags order and 11px gap. */
@media(max-width:767px) {
 .portfolio-case-hero > .content-wrapper { padding-block:3.3vmax!important; }
 .portfolio-case-hero-grid { display:flex!important;flex-direction:column;gap:11px; }
 .portfolio-case-hero-grid > .fe-block { min-width:0;flex:none; }
 .portfolio-case-hero-media { position:relative;order:0;width:100%;height:var(--case-hero-height,auto)!important;min-height:0;aspect-ratio:var(--case-hero-aspect,auto);margin:0!important; }
 .portfolio-case-hero-copy { order:1;width:88%;height:auto!important;min-height:0;--child-fixed-height:auto!important;margin-inline:auto!important; }
 .portfolio-case-hero-shell { width:88%;height:auto!important;margin-inline:auto; }
 .portfolio-case-hero-top-stack { display:flex!important;flex-direction:column!important;height:auto!important;gap:11px!important; }
 .portfolio-case-hero-top-stack > .stack-child-container { margin-block:0!important; }
 .portfolio-case-hero-top-stack > .portfolio-case-hero-copy { width:100%; }
 .portfolio-case-hero-media > .sqs-block-video { position:absolute;inset:0; }
 .portfolio-case-hero-media :is(.sqs-block-video,.sqs-block-video .sqs-block-content,.sqs-block-video .intrinsic,.sqs-block-video .embed-block-wrapper,.sqs-video-wrapper) { width:100%;height:100%;padding:0!important; }
}

/* Video introductions flow naturally on mobile; fixed authored rows must not overlap. */
.portfolio-video-intro { display:contents; }
@media(max-width:767px) {
 .portfolio-video-intro { display:flex;flex-direction:column;gap:32px;grid-area:1/2/2/10;min-width:0; }
 .portfolio-video-intro > .fe-block { width:100%;min-width:0;height:auto; }
 .portfolio-video-intro > .fe-block:has(> .sqs-block-video) { order:0; }
 .portfolio-video-intro > .fe-block:not(:has(> .sqs-block-video)) { order:1; }
 .portfolio-video-intro .sqs-html-content > :is(h3,h4):first-child { margin-top:0!important; }
 .fe-6a654703518f516bb6eafe50 { grid-template-rows:auto repeat(22,minmax(24px,auto))!important; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-yui_3_17_2_1_1785619807498_22417 { grid-area:2/2/3/10; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-989d7dcc9db3e4c08e32 { grid-area:4/2/11/10; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-yui_3_17_2_1_1785619807498_22990 { grid-area:4/2/11/3; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-73e82467746f100c35be { grid-area:4/9/11/10; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-yui_3_17_2_1_1785619807498_18264 { grid-area:11/2/14/10; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-18147e56c93b3d720ddb { grid-area:14/2/22/10; }
 .fe-6a654703518f516bb6eafe50 > .fe-block-8d5d771f32dacd67bb14 { grid-area:21/2/24/10; }
 .fe-6a6e6aadd3b8b16380ab852c { grid-template-rows:auto!important; }
 .fe-6a6e69921fab6c1175ef65bf { grid-template-rows:auto repeat(38,minmax(24px,auto))!important; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-d75449799ba5f028ca5e { grid-area:2/2/9/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-72c201823f71dfe0dc2e { grid-area:3/2/4/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-8df7b00a81c6eb042a09 { grid-area:9/2/16/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-9cf954b7200625f354af { grid-area:16/2/17/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-0dd6118ddd3055191958 { grid-area:17/2/23/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-891942bce53caa2aefca { grid-area:25/2/32/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-ffc321c9c470cd1e4e7c { grid-area:24/2/26/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-d796cc48ba1899b208e4 { grid-area:33/2/40/10; }
 .fe-6a6e69921fab6c1175ef65bf > .fe-block-9b3ccd1afcde7102d3f6 { grid-area:32/2/34/10; }
 .fe-6a6ebe835aa347740ba227ed { grid-template-rows:auto!important; }
 .fe-6a6ebe835aa347740ba227f1 { grid-template-rows:auto!important; }
 .fe-6a5bc483f6e7b200357c299d { grid-template-rows:auto!important; }
 /* Later standalone videos also reserve their full responsive height in the grid. */
 .fe-6a6e6d0c627f4d176edfea98 .fe-block:has(> .sqs-block-video),
 .fe-6a47023f704b782ab4614c4f .fe-block:has(> .sqs-block-video) { min-height:calc(88vw * 9 / 16); }
 .fe-6a6e6d0c627f4d176edfea98 .fe-block-f0e16598f00c421bdbbd { min-height:calc(100vw * 9 / 16); }
}
