/* Published work, in the same type, control and device language as the home. */
.pf-page{--pf-muted:#656565;--pf-line:#deddd8;--pf-paper:#f4f3ef;background:#fff}
/* Use one sticky-header offset for native hashes and the shared click scroller. */
html:has([data-portfolio-index]){scroll-padding-top:0}
.pf-page [id]{scroll-margin-top:112px}
.pf-hero{--pf-pin-top:80px;--pf-stage-height:max(640px,calc(100svh - var(--pf-pin-top)));position:relative;background:#101010;color:#fff}
.pf-hero__pin{position:relative;isolation:isolate;height:var(--pf-stage-height);overflow:hidden}
.pf-showcase{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:auto;touch-action:pan-y}
.pf-showcase canvas{background:#101010}
.pf-showcase.is-scene-ready canvas,.pf-showcase.is-scene-ready .nh-scene-fallback{transition:none}
.pf-showcase__fallback{overflow:hidden}
.pf-showcase__poster,.pf-showcase__poster img{display:block;width:100%;height:100%;object-fit:contain}
.pf-hero__action{position:absolute;z-index:2;left:0;right:0;bottom:28px;display:flex;justify-content:flex-end;pointer-events:none;opacity:var(--pf-copy-opacity,1);transform:translateY(var(--pf-copy-y,0px))}
.pf-hero__action>a{pointer-events:var(--pf-action-events,auto)}
.pf-hero__action:focus-within{opacity:1;transform:none}.pf-hero__action:focus-within>a{pointer-events:auto}
.pf-hero__action .nh-button{min-height:51px;font-size:13px;gap:28px;white-space:normal;line-height:1.4;text-align:left}
.pf-hero__action .nh-button__icon{flex-shrink:0}
@media(prefers-reduced-motion:no-preference){
  .pf-hero.is-scroll-cover{height:calc(var(--pf-stage-height) + 115svh)}
  .is-scroll-cover .pf-hero__pin{position:sticky;top:var(--pf-pin-top)}
  .pf-hero.is-scroll-cover + .pf-catalog{margin-top:-1px}
}
.pf-catalog{position:relative;background:#fff}
.pf-device{position:absolute;inset:0;perspective:1000px;pointer-events:none}
.pf-device__desktop{position:absolute;left:8%;top:15%;width:74%;height:57%;padding:8px 8px 19px;background:#f4f3ef;border:1px solid #fff;border-radius:15px;box-shadow:4px 5px 0 #bdbbb7,10px 24px 28px #0002;transform:rotate(-3deg) rotateY(-9deg)}
.pf-device__desktop img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:9px}
.pf-device__desktop::before{content:"";position:absolute;width:7%;height:3px;bottom:7px;left:46%;border-radius:3px;background:#ff6418}
.pf-device__desktop::after{content:"";position:absolute;top:calc(100% + 4px);left:32%;width:36%;height:23%;background:#deddd8;border-radius:0 0 6px 6px;box-shadow:0 4px 0 #bebcb8;clip-path:polygon(35% 0,65% 0,70% 80%,100% 87%,100% 100%,0 100%,0 87%,30% 80%)}
.pf-device__mobile{position:absolute;right:9%;bottom:16%;width:19%;height:54%;padding:5px;border-radius:16px;background:#242424;box-shadow:4px 5px 0 #93918d,5px 10px 22px #0003;transform:rotate(-4deg)}
.pf-device__mobile img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:11px}
.pf-device--single .pf-device__desktop{left:12%;width:76%;top:15%;height:60%}
.pf-archive{padding-top:78px;padding-bottom:80px}
.pf-archive__head{display:grid;grid-template-columns:1fr .65fr;gap:70px;align-items:end;margin-bottom:34px}
.pf-archive__head h2{font-size:clamp(32px,3.4vw,47px);line-height:1.1;letter-spacing:-.05em;font-weight:500;max-width:540px}
.pf-archive__head p{max-width:365px;justify-self:end;font-size:15px;color:var(--pf-muted);line-height:1.7}
.pf-types{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:34px}
.pf-type{display:flex;align-items:center;justify-content:center;gap:21px;min-height:54px;padding:13px 24px;border-radius:99px;border:1px solid var(--pf-line);background:transparent;transition:background .25s,color .25s,border-color .25s}
.pf-type__count{font-size:11px;color:#656565;font-variant-numeric:tabular-nums}
.pf-type__label{font-size:15px;font-weight:500;line-height:1.3}
.pf-type--secondary{margin-left:auto;border-color:transparent;padding-right:3px}
.pf-type.is-active{background:#101010;color:#fff;border-color:#101010}
.pf-type.is-active .pf-type__count{color:#ff9e72}
.pf-type--secondary.is-active{padding-right:24px}
.pf-feedback{position:relative;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;line-height:1.5;color:var(--pf-muted)}
.pf-feedback__status{margin:0!important}
.pf-feedback__status:empty{display:none}
.pf-feedback:has([data-portfolio-retry]:not([hidden])){padding:0 0 18px}
.pf-feedback__retry{min-height:36px;padding:6px 12px;border:1px solid var(--pf-line);border-radius:99px;background:#fff;color:#101010;font:inherit;cursor:pointer}
.pf-feedback__retry[hidden]{display:none}
.pf-feedback__retry:focus-visible,[data-portfolio-results]:focus-visible{outline:2px solid #ff6418;outline-offset:5px}
/* Loading text uses the existing gap; keep the visible projects fully opaque. */
.pf-feedback:not(:has([data-portfolio-retry]:not([hidden]))) .pf-feedback__status:not(:empty){position:absolute;bottom:7px;right:0}
.pf-feedback .pf-feedback__status[data-state="complete"]{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
[data-portfolio-results]{overflow-anchor:none}
[data-portfolio-results][aria-busy="true"]{cursor:progress}
.pf-results__head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:28px;border-top:1px solid var(--pf-line);padding-top:27px}
.pf-results__head h3{font-size:21px;line-height:1.3;font-weight:500;letter-spacing:-.035em}
.pf-results__head p{font-size:12px;color:var(--pf-muted);flex-shrink:0;font-variant-numeric:tabular-nums}
.pf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:58px 32px}
.pf-project{min-width:0}
.pf-project__link{display:block;min-width:0}
.pf-project__media{position:relative;display:grid;place-items:center;aspect-ratio:1.4;padding:0;border-radius:24px;background:#f4f3ef;overflow:hidden;perspective:1200px;isolation:isolate}
.pf-project:nth-child(4n+2) .pf-project__media{background:#eef0f2}
.pf-project:nth-child(4n+3) .pf-project__media{background:#fff0e6}
.pf-project:nth-child(4n+4) .pf-project__media{background:#202020}
.pf-project:nth-child(4n+4) .pf-project__media--type{background:#f4f3ef}
.pf-project__model{position:absolute;inset:0;width:100%;height:100%}
.pf-project__model.is-scene-ready canvas,.pf-project__model.is-scene-ready .nh-scene-fallback{transition:none}
.pf-project__model .pf-device{transform:rotateX(var(--pf-rx,0deg)) rotateY(var(--pf-ry,0deg));transition:transform .6s var(--nh-ease)}
.pf-project__visit{position:absolute;right:21px;bottom:20px;display:grid;place-items:center;border-radius:50%;width:43px;height:43px;background:#fff;color:#101010;box-shadow:0 3px 15px #0001;transition:background .3s,transform .4s var(--nh-ease)}
.pf-project__visit .nh-arrow{width:20px;height:20px}
.pf-project__caption{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-top:21px}
.pf-project__industry{font-size:12px;line-height:1.5;color:var(--pf-muted);margin-bottom:6px!important}
.pf-project__caption h3{font-size:28px;line-height:1.22;font-weight:500;letter-spacing:-.04em;overflow-wrap:anywhere}
.pf-project__index{align-self:flex-start;margin-top:4px;font-size:11px;color:#777;font-variant-numeric:tabular-nums}
.pf-project__summary{font-size:15px;line-height:1.65;color:var(--pf-muted);max-width:540px;margin-top:13px!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pf-project__media--type{background:#f4f3ef}
.pf-project__identity{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:15px;text-align:center;transform:rotateX(var(--pf-rx,0deg)) rotateY(var(--pf-ry,0deg));transition:transform .6s var(--nh-ease)}
.pf-project__identity>img{width:110px;height:110px;object-fit:contain;margin-bottom:10px}
.pf-project__initials{font-size:clamp(58px,7vw,108px);font-weight:500;line-height:1;letter-spacing:-.075em;color:#656565}
.pf-project__domain{font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.pf-project__fallback{font-size:11px;color:var(--pf-muted)}
.pf-empty{grid-column:1/-1;min-height:220px;padding:42px;background:var(--pf-paper);border-radius:24px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}
.pf-empty>p{font-size:25px}
.pf-pagination{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:56px;padding-top:26px;border-top:1px solid var(--pf-line)}
.pf-pagination__direction{display:flex;align-items:center;gap:16px;min-height:46px;font-size:14px}
.pf-pagination__direction .nh-arrow{width:20px;height:20px;transform:rotate(45deg)}
.pf-pagination__direction.is-disabled{color:#aaa}
.pf-back{transform:rotate(180deg)}
.pf-pagination__pages{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.pf-pagination__pages>a{display:grid;place-items:center;min-width:43px;min-height:43px;border:1px solid var(--pf-line);border-radius:50%;font-size:14px;font-variant-numeric:tabular-nums;transition:background .25s,color .25s}
.pf-pagination__pages>a[aria-current="page"]{background:#101010;color:#fff;border-color:#101010}
.pf-review{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;border-top:1px solid var(--pf-line);padding-block:65px 78px}
.pf-review__intro h2{max-width:340px;font-size:34px;font-weight:500;line-height:1.15;letter-spacing:-.045em}
.pf-review__intro .nh-text-link{margin-top:25px;font-size:13px}
.pf-review figure{margin:0;min-width:0}
.pf-review__stars{color:#d8490a;font-size:18px;letter-spacing:3px;line-height:1.2;margin-bottom:22px}
.pf-review blockquote{margin:0;font-size:clamp(19px,1.75vw,25px);line-height:1.5;letter-spacing:-.025em}
.pf-review figcaption{display:flex;align-items:center;gap:14px;margin-top:25px}
.pf-review__avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--pf-paper);font-size:17px;flex-shrink:0;overflow:hidden}
.pf-review__avatar img{width:100%;height:100%;object-fit:cover}
.pf-review figcaption strong{display:block;font-size:14px;font-weight:500}
.pf-review figcaption small{display:block;font-size:12px;color:var(--pf-muted);margin-top:2px}
.pf-contact{padding-bottom:40px}
.pf-contact__inner{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:45px;background:#101010;color:#fff;border-radius:32px;padding:60px}
.pf-contact h2{max-width:580px;font-size:clamp(34px,3.3vw,48px);font-weight:500;letter-spacing:-.045em;line-height:1.08;text-wrap:balance}
.pf-contact p{font-size:16px;line-height:1.7;max-width:560px;color:#c7c7c7;margin-top:19px!important}
.pf-contact .nh-button{min-height:58px;max-width:330px;font-size:15px;white-space:normal;line-height:1.4;text-align:left}
.pf-contact .nh-button__icon{flex-shrink:0}
.pf-contact__mark{position:absolute;right:12%;top:-20px;width:250px;height:310px;transform:rotate(-20deg);opacity:.055;z-index:-1;pointer-events:none}
.pf-contact__mark span{position:absolute;inset:0;border:3px solid #fff;border-radius:30px}
.pf-contact__mark span:nth-child(2){inset:22px -22px -22px 22px}
.pf-contact__mark span:nth-child(3){inset:44px -44px -44px 44px}
.pf-page a:focus-visible{outline:2px solid #ff6418;outline-offset:5px}
.pf-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(hover:hover) and (pointer:fine){
  .pf-type:hover:not(.is-active){background:#f4f3ef;border-color:#deddd8}
  .pf-project__link:hover .pf-project__visit{background:#ff6418;transform:rotate(6deg)}
  .pf-pagination a:hover:not([aria-current]){color:#b03b00}
}
@media(max-width:1190px){.pf-contact__inner{padding:42px}}
@media(max-width:1100px){
  .pf-type{padding-inline:19px;gap:16px}
  .pf-grid{gap:46px 26px}
  .pf-review{gap:60px}
}
@media(max-width:999px){.pf-contact__inner{grid-template-columns:minmax(0,1fr);gap:28px}.pf-contact .nh-button{justify-self:start}}
@media(max-width:760px){
  .pf-page [id]{scroll-margin-top:95px}
  .pf-hero{--pf-pin-top:77px;--pf-stage-height:max(560px,calc(100svh - var(--pf-pin-top)))}
  .pf-hero.is-scroll-cover{height:calc(var(--pf-stage-height) + 72svh)}
  .pf-hero__action{bottom:24px;justify-content:center}
  .pf-hero__action .nh-button{min-height:46px;font-size:12px;gap:26px}
  .pf-archive{padding-top:48px;padding-bottom:52px}
  .pf-archive__head{grid-template-columns:1fr;gap:19px;margin-bottom:26px}
  .pf-archive__head h2{font-size:36px;max-width:400px}.pf-archive__head p{justify-self:start;font-size:15px;max-width:450px}
  .pf-types{gap:8px;margin-bottom:25px}
  .pf-type{min-height:44px;padding:11px 16px;gap:13px}.pf-type__label{font-size:13px}.pf-type__count{font-size:10px}
  .pf-type--secondary{margin-left:0;padding-inline:12px}.pf-type--secondary.is-active{padding-right:16px}
  .pf-results__head{gap:15px;align-items:flex-start;margin-bottom:24px;padding-top:23px}
  .pf-results__head h3{font-size:19px;max-width:210px}.pf-results__head p{font-size:11px;margin-top:3px;white-space:nowrap}
  .pf-grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .pf-project__media{border-radius:22px;aspect-ratio:1.3}
  .pf-project__caption{padding-top:17px;gap:20px}.pf-project__caption h3{font-size:26px}
  .pf-project__industry{font-size:12px}.pf-project__summary{font-size:14px;margin-top:11px!important}
  .pf-project__visit{right:15px;bottom:15px;width:38px;height:38px}.pf-project__visit svg{width:18px;height:18px}
  .pf-project__initials{font-size:80px}.pf-project__domain{font-size:17px}
  .pf-pagination{margin-top:34px;padding-top:20px;gap:12px}
  .pf-pagination__direction{font-size:12px;gap:7px}.pf-pagination__direction .nh-arrow{width:16px;height:16px}
  .pf-pagination__pages{gap:6px}.pf-pagination__pages>a{min-width:36px;min-height:36px;font-size:12px}
  .pf-review{grid-template-columns:1fr;gap:32px;padding-block:42px 48px}
  .pf-review__intro h2{font-size:30px;max-width:none}.pf-review__intro .nh-text-link{margin-top:15px}
  .pf-review blockquote{font-size:20px;line-height:1.5}
  .pf-review__stars{font-size:16px;margin-bottom:18px}
  .pf-contact__inner{gap:25px;padding:32px 27px;border-radius:26px}
  .pf-contact h2{font-size:34px}.pf-contact p{font-size:15px}
  .pf-contact .nh-button{font-size:14px;min-height:54px;max-width:100%}
  .pf-contact__mark{right:0;top:15px;opacity:.03}
}
@media(max-width:380px){
  .pf-archive__head h2{font-size:32px}.pf-results__head{flex-direction:column;gap:8px}
  .pf-results__head h3{max-width:none}
  .pf-project__caption h3{font-size:24px}
  .pf-pagination__direction>span:not([aria-hidden]){font-size:11px}
  .pf-pagination__pages>a{min-width:32px;min-height:36px}.pf-pagination{gap:6px}
}
@media(max-width:370px){.pf-contact__inner{padding:28px 22px}.pf-contact h2{font-size:29px}.pf-contact .nh-button{font-size:13px;gap:12px;padding-inline:17px}}
@media(prefers-reduced-motion:reduce){
  .pf-hero.is-scroll-cover{height:var(--pf-stage-height)}
  .pf-showcase{transform:none}
  .pf-intro,.pf-hero__action{transform:none!important;opacity:1!important}
  .pf-device,.pf-project__identity{transform:none!important;transition:none!important}
  .pf-type,.pf-project__visit{transform:none!important}
}
