/* Real work, framed without cropping typography or original compositions. */
.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,32px)}
.portfolio-grid .project,.portfolio-grid .project:nth-child(n){grid-column:auto;margin:0}
.portfolio-grid .project .project-visual{aspect-ratio:4/5;border-radius:8px;background:#131315;transition:box-shadow .4s var(--ease-focus)}
.portfolio-grid .project-visual>img,.portfolio-grid .project-open:hover .project-visual>img{width:100%;height:100%;object-fit:contain;transform:none;transition:opacity .4s}
.portfolio-grid .project-visual:after{display:none}
.portfolio-grid .project-visual:before{inset:10px}
.portfolio-grid .project-open{display:block;border-radius:8px}
.portfolio-grid .project-open:hover .project-visual{box-shadow:0 12px 32px #12121325}
.portfolio-grid .project-action{right:12px;bottom:12px;width:40px;height:40px;padding:0;background:#101013c9;border-color:#ffffff65;font-size:18px}
.portfolio-grid .project-action .play-icon{margin-left:2px}
.portfolio-toolbar{display:flex;align-items:center;justify-content:center;position:relative;gap:24px;padding:40px 0 0}.portfolio-toolbar[hidden]{display:none!important}
.portfolio-more{border:1px solid #17171855;background:transparent;color:#151516;border-radius:40px;padding:17px 28px;font-size:14px;display:flex;align-items:center;gap:32px;transition:background .3s,color .3s}
.portfolio-more:hover{background:#151516;color:#fff}
.portfolio-more>span{font-size:20px}
.portfolio-count{font-size:12px;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#66666a}
.portfolio-toolbar [hidden]{display:none}
.work-foot{margin-top:55px}
.cinema-mosaic{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;background:#080809}
.cinema-mosaic>video{width:100%;height:100%;min-width:0;object-fit:cover}
.cinema-shade{background:linear-gradient(180deg,#08080942,#08080958 55%,#080809b3)}
.orbit-card img{object-fit:cover}
.project-dialog{width:min(1280px,calc(100% - 48px));height:calc(100dvh - 48px);max-width:1280px;max-height:none;overflow:hidden;background:#111113;border-radius:16px}
.project-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}
.album-bar{padding:12px 24px;min-height:62px;border-bottom:1px solid #ffffff18}
.album-bar h2{font-size:18px;font-weight:400;letter-spacing:-.4px}
.album-bar h2:before{content:'FOCUS / ';color:#83838a;font-size:12px;letter-spacing:1px;margin-right:8px}
.album-bar .dialog-close{padding:7px 0;min-height:38px}
.album-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;overflow:auto;background:#070708;overscroll-behavior:contain}
.album-stage>.album-media{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;flex-shrink:0}
.album-stage>.album-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.album-stage.is-zoomed{display:block;cursor:zoom-out}
.album-stage.is-zoomed>.album-media{width:200%;height:auto;max-height:none;max-width:none;object-fit:contain}
.album-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 24px;min-height:59px;border-top:1px solid #ffffff18}
.album-navigation{display:flex;align-items:center;gap:14px}
.album-navigation button{background:#ffffff08;border:1px solid #ffffff26;border-radius:50%;width:40px;height:40px;font-size:19px;display:grid;place-items:center}
.album-navigation button:hover{background:#fff;color:#111}
#dialog-index{font-size:12px;color:#c0c0c6;min-width:56px;text-align:center;font-variant-numeric:tabular-nums}
.album-quality{display:flex;align-items:center;gap:12px;font-size:12px;color:#9e9ea8}
.album-quality select{font:inherit;color:#f4f4f0;background:#222225;border:1px solid #ffffff33;border-radius:20px;padding:9px 12px;max-width:170px;min-height:40px}
.album-zoom{font-size:12px;padding:12px 0;background:none;color:#d5d5da;text-decoration:underline;text-underline-offset:4px;min-height:40px}
.album-controls [hidden]{display:none}
.album-status{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);pointer-events:none;color:#f0f0ed;background:#111113d9;border-radius:8px;padding:12px 18px;text-align:center;font-size:13px;max-width:85%;z-index:1}
.album-status:empty{display:none}
.album-retry{border:1px solid #ffffff55;border-radius:28px;background:#222;color:#fff;padding:14px 24px;margin-top:90px}
.album-strip{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:3px 24px 12px;scrollbar-width:thin;scrollbar-color:#49494f transparent;overscroll-behavior-x:contain;min-width:0}
.album-strip button{flex:0 0 52px;width:52px;height:58px;padding:2px;border:1px solid transparent;border-radius:5px;background:#09090b;opacity:.55;transition:opacity .2s,border-color .2s}
.album-strip button[aria-pressed=true]{border-color:var(--accent);opacity:1}
.album-strip button:hover{opacity:1}
.album-strip img{display:block;width:100%;height:100%;object-fit:cover;border-radius:2px}
@media(max-width:760px){
  .work-heading .filters{max-width:100%;width:max-content;gap:3px}
  .work-heading .filters button{padding:12px clamp(10px,3.2vw,17px);font-size:clamp(11px,3.2vw,14px)}
  .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .portfolio-grid .project .project-visual{border-radius:5px}
  .portfolio-grid .project-action{right:8px;bottom:8px;width:32px;height:32px}
  .portfolio-grid .project-visual:before{display:none}
  .portfolio-toolbar{gap:20px;padding-top:28px}
  .portfolio-more{font-size:12px;padding:14px 20px;gap:20px}
  .project-dialog{width:100%;height:100dvh;max-height:100dvh;max-width:none;border:0;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .album-bar{padding:10px 16px;min-height:54px}
  .album-bar h2{font-size:16px}
  .album-bar h2:before{font-size:10px;letter-spacing:.5px;margin-right:4px}
  .album-controls{gap:8px;padding:8px 12px;min-height:59px}
  .album-navigation{gap:7px}
  .album-navigation button{width:38px;height:38px}
  .album-quality>span{display:none}
  .album-quality select{font-size:11px;padding:8px;max-width:148px}
  .album-zoom{font-size:11px}
  .album-strip{padding:3px 12px 10px;gap:7px}
  .album-strip button{height:52px;flex-basis:46px;width:46px}
  .album-status{font-size:12px;width:max-content}
  .cinema-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cinema-mosaic>video:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){.portfolio-grid .project-visual,.album-strip button{transition:none}}

/* Curated collections: each body of work gets a quieter, gallery-like frame. */
.collections-host{display:block}
.collection-filters{max-width:min(100%,780px);overflow:auto;scrollbar-width:none;justify-content:flex-start}.collection-filters[hidden]{display:none!important}
.collection-filters::-webkit-scrollbar{display:none}
.collection-section{padding:clamp(38px,6vw,94px) 0;border-top:1px solid #17171822}
.collection-section:first-child{padding-top:0;border-top:0}
.collection-picker[hidden]+.collection-section{padding-top:0;border-top:0}
.collection-section[hidden]{display:none}
.collection-heading{display:grid;grid-template-columns:minmax(120px,.72fr) minmax(270px,1.5fr) auto;align-items:start;gap:clamp(20px,4vw,68px);margin:0 0 clamp(26px,4vw,54px)}
.collection-heading .eyebrow{color:#6d6d70;font-size:10px;letter-spacing:1.25px;padding-top:8px}
.collection-heading h3{font-size:clamp(34px,4.4vw,72px);line-height:.91;letter-spacing:-.07em;font-weight:500}
.collection-heading h3:after{content:'';display:inline-block;width:12px;height:12px;border:1px solid currentColor;border-radius:50%;margin:0 0 .11em .16em}
.collection-heading p{font-size:14px;color:#6a6a6d;line-height:1.5;margin-top:13px}
.collection-count{font-size:13px;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#747477;padding-top:10px}.collection-count i{font-style:normal;color:#cb4e2f;margin-left:8px}
.collection-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,28px)}
.collection-grid .project,.collection-grid .project:nth-child(n){margin:0;grid-column:auto}.collection-grid .project-visual{aspect-ratio:4/5}.collection-grid .project:nth-child(3n+1) .project-visual{aspect-ratio:3/4}
.collection-grid .project:nth-child(4n+2){padding-top:clamp(0px,3vw,52px)}
.collection-grid .project-open{border-radius:8px}.collection-grid .project-visual{border-radius:7px;background:#dadad5;box-shadow:0 1px 1px #1111110c}
.collection-grid .project-visual>img{mix-blend-mode:normal}.collection-grid .project-open:hover .project-visual{box-shadow:0 20px 42px #11111121}
.collection-picker{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.7vw,24px)}.collection-picker[hidden]{display:none}.collection-picker-label{grid-column:1/-1;color:#68686b;font-size:10px;letter-spacing:1.3px;margin:0 0 2px}.collection-banner{position:relative;min-width:0;overflow:hidden;isolation:isolate;border-radius:10px;background:#111;color:#f4f4f0;text-align:left;padding:0;aspect-ratio:1.24;grid-column:span 6;transition:transform .55s var(--ease-focus),box-shadow .55s var(--ease-focus)}.collection-banner-film,.collection-banner-events{grid-column:span 7}.collection-banner-threed,.collection-banner-social{grid-column:span 5}.collection-banner-food{grid-column:span 12;aspect-ratio:3.35}.collection-banner>img{position:absolute;inset:0;object-fit:cover;opacity:.88;transition:transform .9s var(--ease-focus),opacity .6s}.collection-banner-shade{position:absolute;inset:0;background:linear-gradient(115deg,#060608e6 0%,#06060864 50%,#06060810 100%);z-index:1}.collection-banner-number,.collection-banner-copy,.collection-banner-action{position:absolute;z-index:2}.collection-banner-number{top:22px;left:24px;font-size:10px;letter-spacing:1.5px;color:#ffffffa3}.collection-banner-copy{left:clamp(22px,3vw,46px);bottom:clamp(28px,4vw,55px);display:grid;gap:9px;max-width:65%}.collection-banner-copy strong{font-weight:500;font-size:clamp(33px,4.7vw,75px);letter-spacing:-.075em;line-height:.9}.collection-banner-copy small{font-size:13px;color:#e0e0e2;line-height:1.4}.collection-banner-action{right:24px;bottom:24px;display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.5px;color:#fff}.collection-banner-action i{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;border:1px solid #ffffff77;font-style:normal;font-size:16px}.collection-banner:hover{transform:translateY(-5px);box-shadow:0 22px 45px #00000022}.collection-banner:hover>img{transform:scale(1.07);opacity:1}.collection-banner:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.collection-back{display:inline-flex;align-items:center;gap:12px;border:1px solid #17171832;background:transparent;border-radius:30px;padding:11px 17px;margin-bottom:clamp(28px,4vw,52px);font-size:12px;color:#454548;transition:background .25s,color .25s}.collection-back:hover{background:#151516;color:#fff}.collection-back>span:first-child{font-size:18px;line-height:.7}
@media(max-width:960px){.collection-heading{grid-template-columns:1fr auto}.collection-heading>.eyebrow{grid-column:1/-1;padding:0}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.collection-grid .project:nth-child(4n+2){padding-top:0}.collection-banner,.collection-banner-film,.collection-banner-threed,.collection-banner-social,.collection-banner-events{grid-column:span 6}.collection-banner-food{grid-column:span 12;aspect-ratio:2.1}}
@media(max-width:760px){.collection-section{padding:48px 0}.collection-heading{display:grid;grid-template-columns:1fr auto;gap:14px;margin-bottom:28px}.collection-heading>.eyebrow{grid-column:1/-1;font-size:9px}.collection-heading h3{font-size:clamp(34px,10vw,50px)}.collection-heading p{font-size:12px;max-width:230px;margin-top:10px}.collection-count{font-size:11px}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collection-grid .project:nth-child(3n+1) .project-visual,.collection-grid .project-visual{aspect-ratio:4/5}.collection-grid .project:nth-child(2n){padding-top:22px}.collection-picker{grid-template-columns:1fr;gap:12px}.collection-banner,.collection-banner-film,.collection-banner-threed,.collection-banner-social,.collection-banner-events,.collection-banner-food{grid-column:auto;aspect-ratio:1.35}.collection-banner-copy{max-width:76%;left:22px;bottom:26px}.collection-banner-copy strong{font-size:clamp(35px,11vw,52px)}.collection-banner-copy small{font-size:12px}.collection-banner-number{top:17px;left:18px}.collection-banner-action{right:17px;bottom:18px;font-size:10px}.collection-banner-action>i{width:26px;height:26px}.collection-back{margin-bottom:27px}}
