/* Portfolio edition — 22 October 2026. Original type scale stays in main.css. */
:root{--pf-line:#ffffff21;--pf-muted:#969696;--pf-accent:#3C34F1;--pf-gutter:max(24px,calc((100vw - 1160px)/2));--pf-nav-height:98px}
html{scrollbar-gutter:stable}body{overflow-x:clip}.main-container{overflow:clip}.navbar{transition:background-color .3s,box-shadow .3s}.navbar.is-scrolled{background:#0d0d0df2;box-shadow:0 1px 0 #ffffff14}.card{aspect-ratio:4/5;height:auto}.card img{display:block;aspect-ratio:4/5;object-fit:contain}.card-container{padding-top:0}.motion-toggle{touch-action:manipulation}.bigcard{aspect-ratio:4/5;height:auto}.bigcard img{display:block;aspect-ratio:4/5;object-fit:contain}.bigcard:focus-visible{outline:2px solid var(--pf-accent);outline-offset:5px;z-index:999}
.pf-wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}.pf-kicker{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;display:flex;gap:12px;align-items:center;color:#bbb;margin-bottom:20px}.pf-kicker::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--pf-accent);flex:none}.pf-title{margin:0;max-width:850px}.pf-description{font-size:14px;color:var(--pf-muted);line-height:1.9;max-width:310px}.pf-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:48px}.pf-heading .pf-title{text-align:left}.pf-text-link{font-size:13px;display:inline-flex;gap:30px;align-items:center;text-decoration:none;border-bottom:1px solid #606060;padding:12px 0}.pf-text-link:hover{color:var(--pf-accent);border-color:var(--pf-accent)}
/* Native scrolling is the baseline. Desktop scroll animation is progressive enhancement. */
.pf-rail{position:relative;margin-top:60px;border-top:1px solid var(--pf-line);background:#050505}.pf-rail-stage{padding:50px 0 30px}.pf-rail .pf-heading{padding:0 var(--pf-gutter);margin-bottom:30px}.pf-rail .pf-description{max-width:220px}.pf-rail-window{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pf-gutter);scrollbar-width:thin;scrollbar-color:#505050 #111;outline-offset:-4px}.pf-rail-track{display:flex;gap:24px;width:max-content;padding:0 var(--pf-gutter) 12px}.pf-rail-card{flex:none;width:clamp(220px,calc((100svh - 440px)*.8),400px);scroll-snap-align:start}.pf-art-button{display:block;position:relative;width:100%;padding:0;border:0;border-radius:8px;overflow:hidden;background:#101010;cursor:zoom-in;color:#fff;text-align:left;isolation:isolate}.pf-art-button img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;transition:filter .4s}.pf-zoom{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:36px;height:36px;background:#111b;border:1px solid #ffffff50;backdrop-filter:blur(8px);border-radius:50%;font-size:20px;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s;pointer-events:none}.pf-art-button:hover .pf-zoom,.pf-art-button:focus-visible .pf-zoom{opacity:1;transform:none}.pf-caption{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:17px 1px 0}.pf-caption h3{font-size:14px;font-weight:500;line-height:1.4}.pf-caption p,.pf-caption>span{font-size:11px;color:var(--pf-muted)}.pf-rail-bottom{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:26px var(--pf-gutter) 0}.pf-rail-hint{font-size:11px;color:var(--pf-muted);white-space:nowrap}.pf-rail-progress{height:1px;background:#ffffff24;flex:1;position:relative}.pf-rail-progress span{position:absolute;inset:0;background:var(--pf-accent);transform:scaleX(0);transform-origin:left}.pf-rail-counter{font-size:12px;color:#ddd;min-width:50px;font-variant-numeric:tabular-nums}.pf-rail-controls{display:flex;gap:8px}.pf-round-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff40;border-radius:50%;background:transparent;color:#fff;font-size:20px;transition:background .25s,color .25s}.pf-round-button:hover{background:#fff;color:#000}.pf-round-button:disabled{cursor:default;opacity:.3}.pf-rail.is-scroll-driven{height:calc(100svh - var(--pf-nav-height) + var(--pf-travel,0px))}.pf-rail.is-scroll-driven .pf-rail-stage{position:sticky;top:var(--pf-nav-height);height:calc(100svh - var(--pf-nav-height));display:flex;flex-direction:column;justify-content:center;padding-top:24px;padding-bottom:24px}.pf-rail.is-scroll-driven .pf-rail-window{flex-shrink:0;overflow:hidden;scroll-snap-type:none}.pf-rail.is-scroll-driven .pf-rail-track{will-change:transform}
/* Two compact, art-led case collections. */
.pf-stories{padding:130px 0}.pf-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.pf-story{min-width:0}.pf-story-visual{position:relative;display:flex;gap:18px;align-items:center;justify-content:center;padding:48px 35px;border-radius:10px;overflow:hidden;aspect-ratio:1.28;background:#131c24}.pf-story--orange .pf-story-visual{background:#23140e}.pf-story--blue .pf-story-visual{background:#b3d3df}.pf-story-visual .pf-art-button{width:46%;flex:none;box-shadow:0 16px 38px #0003;border-radius:5px}.pf-story-visual .pf-art-button:nth-child(1){transform:translateY(-16px) rotate(-6deg)}.pf-story-visual .pf-art-button:nth-child(2){transform:translateY(16px) rotate(6deg)}.pf-story-visual img{aspect-ratio:4/5}.pf-story-copy{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-top:24px}.pf-story-copy h3{font-size:22px;letter-spacing:-.5px;font-weight:500;margin-bottom:6px}.pf-story-copy p{font-size:13px;color:var(--pf-muted);max-width:340px;line-height:1.8}.pf-story-number{font-size:11px;color:#777;padding-top:9px;font-variant-numeric:tabular-nums}
/* Every supplied work remains available, with no gallery network request. */
.pf-archive{padding:0 0 120px}.pf-archive-bar{display:flex;gap:20px;justify-content:space-between;align-items:center;border-top:1px solid var(--pf-line);padding:24px 0;margin-bottom:18px}.pf-filters{display:flex;gap:8px;flex-wrap:wrap}.pf-filter{border:1px solid #ffffff25;border-radius:30px;background:transparent;color:#aaa;padding:9px 17px;font-size:12px;white-space:nowrap}.pf-filter[aria-pressed=true]{background:#eee;color:#111;border-color:#eee}.pf-filter:hover{border-color:#aaa;color:#fff}.pf-filter[aria-pressed=true]:hover{color:#111}.pf-total{font-size:11px;color:var(--pf-muted);white-space:nowrap}.pf-archive-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 22px}.pf-archive-item[hidden]{display:none}.pf-archive-item{min-width:0}.pf-archive-item .pf-caption{padding-top:13px}.pf-archive-item .pf-caption h3{font-size:13px}.pf-archive-item .pf-caption p{font-size:10px;margin-top:3px}.pf-archive-item .pf-art-button{border-radius:6px}.pf-archive-bottom{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:48px}.pf-load-more{display:inline-flex;align-items:center;gap:50px;border:1px solid #555;border-radius:50px;background:transparent;color:#fff;padding:16px 26px;font-size:13px}.pf-load-more:hover{background:#fff;color:#111}.pf-load-more[hidden]{display:none}.pf-archive-status{font-size:11px;color:#888;font-variant-numeric:tabular-nums}
/* Native modal: focus trapping and background isolation provided by the browser. */
.pf-dialog{max-width:none;max-height:none;width:100vw;height:100dvh;border:0;padding:0;background:#0a0a0af5;color:#fff;position:fixed;inset:0;margin:0;overflow:hidden}.pf-dialog::backdrop{background:#000b;backdrop-filter:blur(12px)}.pf-dialog[open]{display:grid;grid-template-rows:72px minmax(0,1fr) 70px}.pf-dialog-top{display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #ffffff20;gap:16px}.pf-dialog-top p{font-size:11px;letter-spacing:.12em;color:#aaa}.pf-dialog-close{display:flex;align-items:center;gap:12px;border:0;background:none;color:#fff;font-size:12px;min-height:44px}.pf-dialog-close span{font-size:28px;font-weight:300}.pf-dialog-image-wrap{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px 80px}.pf-dialog-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.pf-dialog-image.is-loading{opacity:.35}.pf-dialog-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:grid;place-items:center;border:1px solid #ffffff40;border-radius:50%;background:#151515;color:#fff;font-size:22px}.pf-dialog-prev{left:24px}.pf-dialog-next{right:24px}.pf-dialog-bottom{display:flex;gap:20px;justify-content:space-between;align-items:center;border-top:1px solid #ffffff20;margin:0 30px}.pf-dialog-title{font-size:14px;font-weight:500}.pf-dialog-caption{font-size:11px;color:#999}.pf-dialog-count{font-size:12px;color:#aaa;font-variant-numeric:tabular-nums}.pf-dialog-error{position:absolute;font-size:13px;background:#181818;padding:16px;border-radius:8px}.pf-dialog-error[hidden]{display:none}body.pf-viewer-open{overflow:hidden}.pf-dialog .pf-round-button{width:44px;height:44px}
@media(min-width:769px){.testimonials-container{height:max(820px,100vh)}.testimonial-card{will-change:transform,opacity;backdrop-filter:blur(12px)}.testimonials-section{min-height:820px}}
@media(max-width:1024px){.pf-heading{gap:24px}.pf-story-visual{padding:35px 24px;gap:12px}.pf-archive-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pf-archive-bar{align-items:flex-start}.pf-total{padding-top:10px}}
@media(max-width:768px){:root{--pf-gutter:24px;--pf-nav-height:70px}.pf-wrap{padding:0 24px}.pf-heading{display:block;margin-bottom:30px}.pf-heading .pf-description{margin-top:18px;max-width:400px}.pf-heading .pf-text-link{margin-top:18px}.pf-kicker{font-size:10px;margin-bottom:16px}.pf-rail{margin-top:35px}.pf-rail-stage{padding:40px 0 30px}.pf-rail .pf-heading{margin-bottom:26px}.pf-rail .pf-description{max-width:none}.pf-rail-track{gap:16px}.pf-rail-card{width:min(76vw,340px)}.pf-rail-bottom{margin-top:20px;gap:15px}.pf-rail-hint{display:none}.pf-rail-progress{max-width:none}.pf-zoom{opacity:1;transform:none;width:30px;height:30px;top:10px;right:10px;font-size:16px}.pf-stories{padding:76px 0}.pf-story-grid{grid-template-columns:1fr;gap:44px}.pf-story-visual{aspect-ratio:1.15;padding:40px 26px}.pf-story-copy{padding-top:20px}.pf-story-copy h3{font-size:20px}.pf-archive{padding-bottom:76px}.pf-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.pf-archive-bar{display:block;padding:18px 0 8px;margin-bottom:16px}.pf-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:10px}.pf-filter{padding:8px 14px;font-size:11px}.pf-total{display:block;margin-top:2px;font-size:10px}.pf-archive-item .pf-caption{gap:6px}.pf-archive-item .pf-caption h3{font-size:12px}.pf-archive-item .pf-caption>span{display:none}.pf-archive-item .pf-caption p{font-size:9px}.pf-load-more{padding:14px 24px}.pf-dialog[open]{grid-template-rows:62px minmax(0,1fr) 78px}.pf-dialog-top{padding:0 18px}.pf-dialog-image-wrap{padding:10px 10px 60px}.pf-dialog-nav{top:auto;bottom:4px;transform:none;width:42px;height:42px}.pf-dialog-prev{left:calc(50% - 52px)}.pf-dialog-next{right:calc(50% - 52px)}.pf-dialog-bottom{margin:0 18px}.pf-dialog-title{font-size:13px}.pf-dialog-caption{font-size:10px}.pf-dialog-count{font-size:11px}.pf-dialog-top p{font-size:10px}.testimonials-section{padding-bottom:45px}.card-container{align-items:center}.motion-toggle{bottom:16px;right:16px}}
@media(prefers-reduced-motion:reduce){.pf-rail-track{will-change:auto}.pf-zoom{transition:none}.pf-story-visual .pf-art-button{transform:none}}

@media(max-width:768px){.works-section{min-height:0;height:auto;padding:35px 0 50px}.cards-container{flex-direction:row;justify-content:flex-start;gap:18px;padding:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:24px;scrollbar-width:thin;scrollbar-color:#555 #111}.bigcard{flex:0 0 min(70vw,250px);max-width:250px;width:70vw;margin:0;scroll-snap-align:start}}

/* Compact shared footer — October 2026 revision. */
.footer.pf-footer-v2{padding:0;background:#0b0b0b;border-top:1px solid #ffffff1c;text-align:left}
.pf-close-intro{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;padding:56px 0 48px}
.pf-close-label{font-size:10px;font-weight:500;letter-spacing:.16em;line-height:1.5;color:#8b8b8b;margin:0 0 16px}
.pf-close-title{font-family:inherit;font-weight:400;font-size:44px;line-height:1.23;letter-spacing:-1.2px;color:#f2f2f2;margin:0}
.pf-close-actions{display:flex;flex-direction:column;align-items:center;gap:18px}
.pf-close-button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;padding:16px 24px;border:1px solid #ededed;border-radius:6px;background:#ededed;color:#111;font-size:13px;text-decoration:none;transition:background-color .2s,border-color .2s}
.pf-close-button span{font-size:21px;line-height:1;transition:transform .2s}
.pf-close-button:hover{background:#d8edc2;border-color:#d8edc2;color:#111}
.pf-close-button:hover span{transform:translate(2px,-2px)}
.pf-close-phone{font-size:12px;line-height:1.5;color:#ababab;text-decoration:none}
.pf-close-phone:hover{color:#fff}
.pf-close-details{display:grid;grid-template-columns:1fr 1.45fr .55fr;gap:48px;border-top:1px solid #ffffff18;padding:34px 0}
.pf-close-location p{margin:0 0 7px;font-size:13px;line-height:1.6;color:#ddd}
.pf-close-location span{font-size:12px;line-height:1.7;color:#858585}
.pf-close-details .pf-close-label{margin-bottom:13px;font-size:9px;color:#848484}
.pf-close-service-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.pf-close-service-links a,.pf-close-social>a{font-size:12px;line-height:1.6;color:#c3c3c3;text-decoration:none;transition:color .2s}
.pf-close-service-links a:hover,.pf-close-social>a:hover{color:#fff}
.pf-close-social{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.pf-close-social .pf-close-label{margin-bottom:3px}
.pf-close-social>a{display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:100px}
.pf-close-social>a span{color:#747474}
.pf-close-bottom{display:flex;align-items:center;justify-content:space-between;gap:28px;border-top:1px solid #ffffff18;padding:22px 0 26px;color:#7f7f7f;font-size:10px;line-height:1.6}
.pf-close-bottom p{margin:0}
.pf-close-bottom a{color:#aaa;text-decoration:none}
.pf-close-bottom a:hover,.pf-close-privacy button:hover{color:#fff}
.pf-close-privacy{display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.pf-close-privacy button{background:none;border:0;color:#aaa;font-size:inherit;padding:0;line-height:inherit}
.pf-close-top{display:flex;align-items:center;gap:12px;white-space:nowrap}
@media(max-width:1024px){.pf-close-details{grid-template-columns:.9fr 1.4fr .6fr;gap:28px}.pf-close-service-links{gap:10px 20px}}
@media(max-width:768px){
 .pf-close-intro{grid-template-columns:1fr;gap:26px;padding:38px 0 32px}
 .pf-close-title{font-size:32px;letter-spacing:-.7px;line-height:1.25}
 .pf-close-label{font-size:9px;margin-bottom:14px}
 .pf-close-actions{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:20px;align-items:center}
 .pf-close-button{padding:14px 19px;gap:32px;font-size:12px;min-height:48px}
 .pf-close-phone{font-size:11px}
 .pf-close-details{grid-template-columns:1fr auto;gap:28px 20px;padding:28px 0}
 .pf-close-location{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:18px}
 .pf-close-location p{font-size:12px;margin:0}
 .pf-close-location span{font-size:10px;text-align:right}
 .pf-close-service-links{grid-template-columns:1fr;gap:0}
 .pf-close-service-links a{display:flex;align-items:center;min-height:34px;font-size:11px}
 .pf-close-social{gap:0}
 .pf-close-social>a{min-height:34px;font-size:11px;min-width:92px}
 .pf-close-details .pf-close-label{margin-bottom:8px}
 .pf-close-social .pf-close-label{margin-bottom:8px}
 .pf-close-bottom{display:grid;grid-template-columns:1fr auto;gap:18px;padding:20px 0 24px;font-size:10px}
 .pf-close-privacy{grid-row:1;grid-column:1/-1;gap:24px}
 .pf-close-privacy a,.pf-close-privacy button{min-height:28px;display:inline-flex;align-items:center}
 .pf-close-top{min-height:28px}
}
