.portfolio-page{background:#0d0e12;color:#edf0f5}.pf-intro{padding-top:calc(var(--header-h) + 4.5rem);padding-bottom:4.5rem;background:#08090c}.pf-back{font-size:.8rem;display:inline-flex;align-items:center;gap:12px;color:#9eafa2;text-decoration:none;margin-bottom:1.7rem}.pf-back svg{width:14px;height:14px}.pf-intro h1{font-size:clamp(2.6rem,4.1vw,4rem);font-weight:400;letter-spacing:-.055em;line-height:1.1;margin:0 0 1.5rem}.pf-intro p{margin:0;font-size:1.05rem;line-height:1.65;color:#adb3c0}.pf-toolbar{position:sticky;top:var(--header-h);z-index:20;background:#0d0e12ed;backdrop-filter:blur(16px);border-block:1px solid #30343e;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:0}.pf-filters{display:flex;gap:2rem;min-width:0}.pf-filters button{position:relative;border:0;background:none;color:#aebbb1;display:flex;align-items:center;gap:.5rem;font:inherit;font-size:.9rem;padding:1.5rem 0;white-space:nowrap;cursor:pointer;transition:color .25s}.pf-filters button span{font-family:'DM Mono',monospace;font-size:.6rem;color:#6e8273}.pf-filters button::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:#00e600;transform:scaleX(0);transform-origin:left;transition:transform .3s}.pf-filters button[aria-pressed=true],.pf-filters button:hover{color:#f0f5ee}.pf-filters button[aria-pressed=true]::after{transform:scaleX(1)}.pf-status{font-size:.7rem;white-space:nowrap;color:#89998d}.pf-collection{padding-top:3.5rem;padding-bottom:5rem;min-height:45vh}.pf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3.5rem 2rem}.pf-card{min-width:0}.pf-card[hidden]{display:none}.pf-card-open{display:block;padding:0;width:100%;border:0;text-align:left;background:transparent;color:inherit;font:inherit;cursor:pointer}.pf-media{position:relative;isolation:isolate;aspect-ratio:4/3;overflow:hidden;background:#080c09;border:1px solid #3d49412b}.pf-media img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .65s cubic-bezier(.22,1,.36,1)}.pf-media--website img{object-fit:cover;object-position:top;height:calc(100% - 25px)}.pf-media--system img{height:calc(100% - 25px)}.pf-media--tour img{object-fit:cover}.pf-browser-bar{height:25px;display:flex;align-items:center;gap:5px;padding:0 10px;background:#202722;border-bottom:1px solid #3c4940}.pf-browser-bar i{width:4px;height:4px;border-radius:50%;background:#6d7e72}.pf-browser-bar span{font-size:7px;letter-spacing:.02em;color:#98a79c;margin-left:8px}.pf-card-open:hover .pf-media img{transform:scale(1.025)}.pf-open-icon{position:absolute;right:16px;bottom:16px;width:34px;height:34px;display:grid;place-items:center;background:#07100beb;border:1px solid #91b89a44;color:#dcebdc;opacity:0;translate:0 5px;transition:opacity .3s,translate .4s}.pf-open-icon svg{width:16px;height:16px}.pf-card-open:hover .pf-open-icon,.pf-card-open:focus-visible .pf-open-icon{opacity:1;translate:0 0}.pf-format{position:absolute;left:14px;bottom:14px;display:flex;align-items:center;gap:6px;padding:6px 9px;color:#edf5ee;background:#030705c9;border:1px solid #5f796477;font-size:.65rem;backdrop-filter:blur(8px)}.pf-format svg{width:12px;height:12px;fill:currentColor}.pf-caption{padding-top:1.25rem}.pf-category{font:10px 'DM Mono',monospace;color:#879c8c;display:block;margin-bottom:.7rem}.pf-caption h2{font-size:clamp(1.3rem,1.8vw,1.7rem);font-weight:400;line-height:1.25;letter-spacing:-.035em;margin:0 0 1.25rem}.pf-card-foot{border-bottom:1px solid #30343e;padding-bottom:1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.65rem;color:#95a89b}.pf-card-foot>span:last-child{display:flex;align-items:center;gap:9px;white-space:nowrap;color:#d3e0d4}.pf-card-foot svg{width:13px;height:13px}.pf-more{margin-top:3.5rem;display:flex;align-items:center;flex-direction:column;gap:1rem}.pf-progress{font-size:.75rem;color:#899e8f;margin:0}.pf-more .button{min-width:210px}.pf-dialog{padding:0;width:min(1100px,94vw);max-height:90dvh;background:#0d0e12;border:1px solid #44564a;color:#edf3ee;overflow:auto;box-shadow:0 25px 100px #000a}.pf-dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}.pf-dialog-head{position:sticky;top:0;z-index:3;padding:1.4rem 1.7rem;background:#0d0e12f5;display:flex;align-items:start;justify-content:space-between;gap:1rem;border-bottom:1px solid #30343e}.pf-dialog-head h2{font-size:1.5rem;font-weight:400;line-height:1.2;margin:0;letter-spacing:-.03em}.pf-dialog-close{display:grid;place-items:center;flex:0 0 36px;height:36px;border:1px solid #4d6455;background:transparent;color:white;cursor:pointer}.pf-dialog-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4}.pf-dialog-media{display:grid;place-items:center;min-height:240px;background:#000}.pf-dialog-media img{display:block;width:auto;max-width:100%;max-height:65vh;object-fit:contain}.pf-dialog-media video{display:block;width:100%;height:65vh;object-fit:contain;background:#000}.pf-dialog-media iframe{display:block;border:0;width:100%;height:60vh}.pf-dialog-copy{padding:1.5rem 1.7rem 1.8rem}.pf-dialog-copy>p{color:#acbcb0;line-height:1.65;max-width:70ch;font-size:.95rem;margin:0}.pf-dialog-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.pf-dialog-actions button,.pf-dialog-actions a{padding:.7rem 1rem;border:1px solid #425749;background:transparent;color:#e3ede4;font:inherit;font-size:.8rem;text-decoration:none;cursor:pointer}.pf-dialog-actions button[aria-pressed=true]{border-color:#00db2e}.portfolio-page :is(a,button):focus-visible{outline:2px solid #00e600;outline-offset:5px}body.pf-modal-open{overflow:hidden}.pf-card.is-entering{animation:pf-enter .55s cubic-bezier(.22,1,.36,1) both}@keyframes pf-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.portfolio-page .closing-cta .section-index{display:none}
@media(max-width:1000px){.pf-filters{gap:1.4rem}.pf-status{display:none}.pf-grid{gap:2.5rem 1.5rem}}
@media(max-width:720px){.pf-intro{padding-top:calc(var(--header-h) + 2.7rem);padding-bottom:3rem}.pf-intro h1{font-size:2.55rem}.pf-intro p{font-size:.95rem}.pf-toolbar{padding-right:0;padding-left:20px}.pf-filters{width:100%;overflow:auto;scrollbar-width:none;gap:1.6rem;padding-right:20px}.pf-filters::-webkit-scrollbar{display:none}.pf-filters button{padding-block:1.25rem;font-size:.8rem}.pf-grid{grid-template-columns:1fr;gap:2.5rem}.pf-collection{padding-block:2rem 3.5rem}.pf-caption h2{font-size:1.45rem}.pf-media{aspect-ratio:4/3}.pf-open-icon{opacity:1;translate:none}.pf-dialog-head{padding:1.2rem}.pf-dialog-head h2{font-size:1.25rem}.pf-dialog-copy{padding:1.2rem}.pf-dialog-media img{max-height:60vh}.pf-dialog-media video{height:60vh}.pf-card-foot{font-size:.6rem}}
@media(prefers-reduced-motion:reduce){.portfolio-page *{animation:none!important;transition:none!important}}

.pf-collection{scroll-margin-top:calc(var(--header-h) + 90px)}


.pf-more [hidden]{display:none!important}

/* Editorial portfolio: imagery leads, with a deliberately varied rhythm. */
.portfolio-page{background:#08090c}.pf-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;padding-top:calc(var(--header-h) + 3.7rem);padding-bottom:3rem;background:#08090c}.pf-eyebrow{display:flex;align-items:center;gap:9px;color:#99aca0;font-size:.75rem;margin-bottom:1.1rem}.pf-eyebrow i{height:5px;width:5px;background:#00e600;border-radius:50%;box-shadow:0 0 12px #00e65066}.pf-intro h1{font-size:clamp(2.5rem,3.7vw,3.5rem);margin:0;letter-spacing:-.055em}.pf-intro p{font-size:.9rem;line-height:1.8;max-width:360px;padding-bottom:3px;color:#95a29a}.pf-toolbar{background:#08090ce8;border-color:#253129}.pf-filters{gap:1.8rem}.pf-filters button{padding-block:1.2rem;font-size:.8rem}.pf-filters button span{font-size:.55rem}.pf-collection{padding-top:1.8rem}.pf-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:22px;align-items:stretch}.pf-card{grid-column:span 4;position:relative}.pf-card:is([data-layout="0"],[data-layout="3"]){grid-column:span 8}.pf-card:is([data-layout="7"],[data-layout="8"]){grid-column:span 6}.pf-card-open{height:100%;position:relative;overflow:hidden;background:#000}.pf-media{aspect-ratio:auto;height:clamp(300px,33vw,490px);border:0;background:#000}.pf-media img{transition:transform 1s cubic-bezier(.22,1,.36,1),filter .65s;object-position:center}.pf-media--website img{height:calc(100% - 25px);object-position:top}.pf-media--system{background:#141c17}.pf-media--system img{padding:28px;object-fit:contain}.pf-media--image img,.pf-media--video img{object-fit:contain}.pf-media--tour img{object-fit:cover}.pf-browser-bar{background:#131a16}.pf-caption{position:absolute;z-index:2;bottom:0;left:0;right:0;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:60px 25px 23px;background:linear-gradient(0deg,rgba(0,0,0,.95),rgba(0,0,0,.68) 44%,transparent);pointer-events:none;transition:padding .55s cubic-bezier(.22,1,.36,1)}.pf-caption h2{font-size:clamp(1.1rem,1.5vw,1.55rem);margin:0;line-height:1.22;color:#f2f5f0}.pf-caption .pf-category{font:11px Arial,sans-serif;letter-spacing:.025em;color:#adbbb1;margin-bottom:8px}.pf-caption-arrow{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid #7b90814d;border-radius:50%;transition:color .4s,background .4s,border-color .4s}.pf-caption-arrow svg{width:14px;height:14px}.pf-open-icon{display:none}.pf-format{left:auto;right:16px;bottom:auto;top:16px;border:0;border-radius:20px;padding:7px 10px;font-size:.6rem;background:#07100abf}.pf-card-open:hover .pf-media img{transform:scale(1.045)}.pf-card-open:hover .pf-caption{padding-bottom:28px}.pf-card-open:hover .pf-caption-arrow{background:#00d600;color:#000;border-color:#00d600}.pf-card-open:focus-visible{outline-offset:-3px!important}.pf-card.is-entering{animation-duration:.75s;animation-delay:var(--pf-delay,0ms)}.pf-more{margin-top:3rem}.pf-card-foot{display:none}
@media(min-width:1001px){.pf-grid[data-filter="web"] .pf-card{grid-column:span 6}.pf-grid[data-filter="web"] .pf-card:first-child{grid-column:span 12}.pf-grid[data-filter="systems"] .pf-card{grid-column:span 12}.pf-grid[data-filter="systems"] .pf-media{height:550px}.pf-grid[data-filter="tour"] .pf-card{grid-column:span 6}.pf-grid[data-filter="tour"] .pf-card:first-child{grid-column:span 12}.pf-grid[data-filter="marketing"] .pf-card{grid-column:span 4}.pf-grid[data-filter="marketing"] .pf-media{height:clamp(350px,38vw,560px)}}
@media(max-width:1000px) and (min-width:721px){.pf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pf-card,.pf-card:is([data-layout="0"],[data-layout="3"],[data-layout="7"],[data-layout="8"]){grid-column:span 1}.pf-card[data-layout="0"]{grid-column:span 2}.pf-media{height:360px}.pf-intro p{font-size:.8rem;max-width:270px}.pf-caption{padding-inline:20px}}
@media(max-width:720px){.pf-intro{display:block;padding-top:calc(var(--header-h) + 2.6rem);padding-bottom:2rem}.pf-eyebrow{font-size:.7rem;margin-bottom:1rem}.pf-intro h1{font-size:2.5rem}.pf-intro p{font-size:.85rem;line-height:1.7;margin-top:1.3rem}.pf-toolbar{padding-left:20px}.pf-filters{gap:1.4rem}.pf-filters button{padding-block:1.1rem}.pf-collection{padding-inline:14px;padding-top:14px}.pf-grid{display:grid;grid-template-columns:1fr;gap:14px}.pf-card,.pf-card:is([data-layout="0"],[data-layout="3"],[data-layout="7"],[data-layout="8"]){grid-column:auto}.pf-media{height:400px;height:min(115vw,480px)}.pf-media--website,.pf-media--system,.pf-media--tour{height:310px}.pf-caption{padding:65px 20px 22px}.pf-caption h2{font-size:1.3rem}.pf-media--system img{padding:12px}.pf-more{margin-block:2.5rem 1rem}}
.portfolio-page .pf-caption h2{font-size:clamp(1.05rem,1.5vw,1.55rem)!important;line-height:1.25!important;letter-spacing:-.035em!important}.portfolio-page .pf-intro h1{font-size:clamp(2.5rem,3.7vw,3.5rem)!important;line-height:1.1!important}.pf-card[data-layout="2"]{grid-column:span 8}.pf-card[data-layout="3"]{grid-column:span 4}
@media(max-width:1000px) and (min-width:721px){.pf-card[data-layout="2"],.pf-card[data-layout="3"]{grid-column:span 1}}
@media(max-width:720px){.pf-card[data-layout="2"],.pf-card[data-layout="3"]{grid-column:auto}.portfolio-page .pf-caption h2{font-size:1.3rem!important}.portfolio-page .pf-intro h1{font-size:2.5rem!important}}
/* Match the approved services hero: black, green/cyan aurora, calm copy. */
.portfolio-page .pf-intro{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;background:#000;padding-top:calc(var(--header-h) + 7rem);padding-bottom:6rem;min-height:460px}.pf-aurora{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;mask-image:linear-gradient(transparent,#000 18%,#000 76%,transparent)}.pf-intro::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 350px 125px at var(--streams-x,50%) var(--streams-y,60%),#000d,rgba(0,0,0,.5) 48%,transparent)}.pf-intro::after{content:'';position:absolute;bottom:0;left:0;right:0;height:100px;pointer-events:none;background:linear-gradient(transparent,#08090c);z-index:0}.pf-intro-copy{position:relative;z-index:1;animation:pf-title-in 1.1s cubic-bezier(.22,1,.36,1) both}.portfolio-page .pf-intro h1{font-size:clamp(2.65rem,4vw,3.65rem)!important;letter-spacing:-.055em!important;line-height:1.12!important;font-weight:400;margin:0}.pf-intro h1 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em;color:#eff8ee}.portfolio-page .pf-intro p{font-size:1rem;line-height:1.75;color:#acb8af;max-width:540px;margin:1.6rem auto 0;padding:0}.pf-intro-copy h1,.pf-intro-copy p{text-shadow:0 0 24px #000}@keyframes pf-title-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:720px){.portfolio-page .pf-intro{padding-top:calc(var(--header-h) + 4.5rem);padding-bottom:4.5rem;min-height:390px}.portfolio-page .pf-intro h1{font-size:2.65rem!important;max-width:320px;margin-inline:auto}.portfolio-page .pf-intro p{font-size:.85rem;margin-top:1.35rem}.pf-intro::before{background:radial-gradient(ellipse 190px 130px at var(--streams-x,50%) var(--streams-y,60%),#000c,rgba(0,0,0,.4) 48%,transparent)}}
@media(prefers-reduced-motion:reduce){.pf-intro-copy{animation:none}}
/* Edge-to-edge artwork; the expanded viewer retains the original framing. */
.pf-media--image img,.pf-media--video img{object-fit:cover;object-position:center}.pf-preview-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#000;pointer-events:none;transition:transform 1s cubic-bezier(.22,1,.36,1)}.pf-card-open:hover .pf-preview-video{transform:scale(1.045)}
.pf-web-window{position:relative;height:calc(100% - 25px);overflow:hidden;background:#000}.pf-media--website .pf-web-window img{display:block;width:100%;height:auto;min-height:100%;object-fit:cover;object-position:top;transform:translate3d(0,0,0);animation:pf-web-scroll var(--web-duration,30s) cubic-bezier(.4,0,.2,1) infinite alternate;animation-play-state:paused;will-change:transform;transition:none}.pf-web-window.is-scrolling img{animation-play-state:running}.pf-card-open:hover .pf-web-window img{transform:none}@keyframes pf-web-scroll{0%,3%{transform:translate3d(0,0,0)}97%,100%{transform:translate3d(0,calc(-1 * var(--web-travel,0px)),0)}}
@media(prefers-reduced-motion:reduce){.pf-media--website .pf-web-window img{animation:none;will-change:auto}}
/* Content viewer: social work at its natural proportions, copy beside it. */
.pf-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:'head' 'media' 'copy';animation:pf-window-open .42s cubic-bezier(.22,1,.36,1) both}.pf-dialog-info{display:contents}.pf-dialog-head{grid-area:head}.pf-dialog-media{grid-area:media}.pf-dialog-copy{grid-area:copy}.pf-dialog[open]::backdrop{animation:pf-backdrop-open .4s ease both}.pf-dialog--split[open]{width:fit-content;max-width:94vw;grid-template-columns:minmax(260px,360px) minmax(0,max-content);grid-template-areas:'info media';overflow:auto;position:fixed}.pf-dialog--split .pf-dialog-info{grid-area:info;display:flex;flex-direction:column;justify-content:center;padding:54px 40px;min-width:0}.pf-dialog--split .pf-dialog-head{position:static;background:transparent;border:0;display:block;padding:0}.portfolio-page .pf-dialog--split .pf-dialog-head h2{font-size:1.9rem!important;line-height:1.18!important;letter-spacing:-.04em}.pf-dialog--split .pf-dialog-head .pf-category{line-height:1.7;margin-bottom:1.2rem}.pf-dialog--split .pf-dialog-copy{padding:0;margin-top:1.5rem}.pf-dialog--split .pf-dialog-copy p{font-size:.9rem;line-height:1.75}.pf-dialog--split .pf-dialog-actions:empty{display:none}.pf-dialog--split .pf-dialog-close{position:absolute;z-index:5;top:14px;right:14px;background:#08100cd9;backdrop-filter:blur(10px)}.pf-dialog--split .pf-dialog-media{min-height:0;display:flex;align-items:center;justify-content:flex-end;background:transparent;overflow:hidden}.pf-dialog--split .pf-dialog-media :is(img,video){display:block;width:auto;height:auto;max-width:min(58vw,680px);max-height:80dvh;object-fit:contain;background:transparent}.pf-dialog--split .pf-dialog-media video{height:80dvh;max-width:min(58vw,680px);width:auto}.pf-dialog--split:focus{outline:none}@keyframes pf-window-open{from{opacity:0;transform:translateY(16px) scale(.975)}to{opacity:1;transform:none}}@keyframes pf-backdrop-open{from{opacity:0}to{opacity:1}}
@media(max-width:720px){.pf-dialog--split[open]{width:min(94vw,520px);grid-template-columns:minmax(0,1fr);grid-template-areas:'info' 'media';max-height:92dvh}.pf-dialog--split .pf-dialog-info{padding:36px 25px 28px}.portfolio-page .pf-dialog--split .pf-dialog-head h2{font-size:1.5rem!important;padding-right:24px}.pf-dialog--split .pf-dialog-head .pf-category{padding-right:26px;margin-bottom:.7rem}.pf-dialog--split .pf-dialog-copy{margin-top:1rem}.pf-dialog--split .pf-dialog-media{justify-content:center}.pf-dialog--split .pf-dialog-media :is(img,video){width:100%;height:auto;max-width:100%;max-height:none}.pf-dialog--split .pf-dialog-close{position:fixed;top:12px;right:12px}}
@media(prefers-reduced-motion:reduce){.pf-dialog[open],.pf-dialog[open]::backdrop{animation:none}}
/* Keep the established tiles; centre the video frame inside each viewport. */
.pf-media--video{position:relative;overflow:hidden}.pf-preview-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
