:root{font-family:Arial,Helvetica,sans-serif;color:#1b1b1b;background:#f5f5f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid #333;outline-offset:5px}.masthead{display:flex;justify-content:space-between;align-items:center;padding:32px 4vw;border-bottom:1px solid #d4d4d1;gap:25px}.brand{font-size:28px;letter-spacing:-1px;line-height:1.1}.brand span{display:block;font-size:14px;letter-spacing:0;margin-top:7px;color:#666}nav{display:flex;gap:30px;font-size:14px}nav a:hover,.email:hover{text-decoration:underline;text-underline-offset:5px}.section-line{display:flex;align-items:baseline;justify-content:space-between;gap:20px;font-size:14px}.section-line h1,.section-line h2{font-weight:400;font-size:16px;margin:0}.section-line h1 span,.section-line h2 span{font-size:12px;color:#777;margin-left:8px}.section-line>span{color:#666}.work-section{padding:32px 0 0}.work-section>.section-line,.strip-footer{margin:0 4vw}.filmstrip{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:4vw;padding:28px 4vw 12px;scrollbar-width:thin;scrollbar-color:#aaa transparent;overscroll-behavior-x:contain}.work-card{flex:0 0 65vw;min-width:0;scroll-snap-align:start}.cover{height:clamp(300px,55vh,680px);background:#e8e8e5;overflow:hidden;display:flex;justify-content:center}.cover img{width:100%;height:100%;object-fit:contain;transition:opacity .25s}.work-card:hover .cover img{opacity:.9}.card-caption{display:flex;align-items:baseline;gap:18px;padding:17px 0 22px}.card-number{font-size:12px;color:#777}.card-caption h2{font-size:clamp(25px,3vw,46px);font-weight:400;letter-spacing:-.045em;margin:0 0 7px}.card-caption p{font-size:14px;color:#666;margin:0}.open-arrow{margin-left:auto;font-size:26px}.strip-footer{display:flex;justify-content:space-between;align-items:center;padding-top:18px;color:#666;font-size:14px}.paging{display:flex;align-items:center;gap:10px}.paging>span{margin-right:16px;font-size:12px}button{border:1px solid #ccc;background:transparent;width:42px;height:42px;cursor:pointer;font-size:22px}button:hover{background:#e4e4e1}button:disabled{opacity:.3;cursor:default}.information{margin:110px 4vw 0;padding:55px 0 90px;border-top:1px solid #ccc;display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;scroll-margin-top:30px}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.07em;color:#666;margin:0 0 30px}.information h2{font-size:clamp(42px,6vw,85px);letter-spacing:-.065em;font-weight:400;margin:0 0 24px}.bio-line{font-size:18px;line-height:1.5}.email{display:inline-block;margin-top:25px;font-size:18px}.information img{width:100%;height:auto}footer{margin:0 4vw;padding:25px 0;border-top:1px solid #ccc;display:flex;justify-content:space-between;font-size:12px}.project-page{margin:0 4vw}.back{display:inline-block;font-size:14px;margin-top:30px}.project-heading{padding:55px 0 35px}.project-heading h1{font-weight:400;letter-spacing:-.06em;font-size:clamp(42px,6vw,90px);line-height:1.08;margin:0}.project-heading h1 span{display:block;color:#73736e;font-size:.6em;letter-spacing:-.035em;margin-top:12px}.project-heading .eyebrow{margin-bottom:20px}.project-hero{background:#e8e8e5;text-align:center}.project-hero img{display:block;width:100%;height:auto;max-height:76vh;object-fit:contain}.project-info{display:grid;grid-template-columns:1fr 1fr;gap:10vw;padding:65px 0 85px}.description{font-size:22px;line-height:1.5;max-width:570px;margin:0}.placeholder{color:#787874}dl{margin:0}dl>div{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-bottom:1px solid #d4d4d1;padding:15px 0;font-size:14px;line-height:1.4}dt{color:#666}dd{margin:0}.films,.stills{margin-bottom:85px}.films>.section-line,.stills>.section-line{border-top:1px solid #ccc;padding:24px 0}.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.video-placeholder{aspect-ratio:16/9;background:#e7e7e3;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #d4d4ce}.video-number{position:absolute;top:18px;left:18px;font-size:12px;color:#777}.video-placeholder h3{font-size:18px;font-weight:400;margin:0 0 8px}.video-placeholder p{font-size:14px;color:#777;margin:0}.still-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 24px}figure{margin:0}figure img{display:block;width:100%;height:clamp(220px,35vw,520px);object-fit:contain;background:#e8e8e5}figcaption{display:flex;justify-content:space-between;gap:15px;font-size:12px;line-height:1.4;padding-top:12px}figcaption span{color:#777}.next-project{display:flex;align-items:center;gap:28px;border-top:1px solid #ccc;padding:45px 0 70px}.next-project>span{font-size:14px;color:#666}.next-project>span:last-child{margin-left:auto;font-size:28px}.next-project strong{font-weight:400;font-size:clamp(20px,3vw,40px);letter-spacing:-.035em}
@media(max-width:650px){.masthead{padding:24px 20px;align-items:flex-start}.brand{font-size:24px}.brand span{font-size:12px;max-width:130px;line-height:1.4}nav{gap:14px;flex-wrap:wrap;justify-content:flex-end;font-size:14px;max-width:160px}.work-section{padding-top:24px}.work-section>.section-line,.strip-footer{margin-left:20px;margin-right:20px}.section-line>span{font-size:12px;text-align:right}.filmstrip{padding-left:20px;padding-right:20px;gap:16px;scroll-padding-left:20px}.work-card{flex-basis:84vw}.cover{height:48vh;min-height:280px}.card-caption{gap:12px}.card-caption h2{font-size:28px}.strip-footer>span{max-width:130px;line-height:1.5}.information{margin:65px 20px 0;padding:35px 0 55px;grid-template-columns:1fr;gap:35px}.information h2{font-size:52px}footer{margin:0 20px;gap:15px}.project-page{margin:0 20px}.project-heading{padding:35px 0 28px}.project-info{grid-template-columns:1fr;gap:35px;padding:35px 0 55px}.description{font-size:18px}.still-grid{grid-template-columns:1fr;gap:28px}figure img{height:auto;max-height:75vh}.films,.stills{margin-bottom:55px}.next-project{flex-wrap:wrap;padding-bottom:45px}.next-project strong{flex-basis:80%;order:2}.next-project>span:last-child{order:3}.project-heading h1{overflow-wrap:anywhere}.video-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.film-player{min-width:0}.vimeo-frame{position:relative;aspect-ratio:16/9;background:#111}.vimeo-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.film-caption{display:flex;justify-content:space-between;gap:20px;font-size:14px;line-height:1.4;margin:14px 0 0}.film-caption a{color:#666;white-space:nowrap}@media(max-width:650px){.film-caption{flex-direction:column;gap:8px}}

/* Fit each project card to its preview's native proportions. */
.work-card{--preview-height:clamp(300px,55vh,680px);flex:0 0 auto;width:calc(var(--preview-height) * var(--preview-scale));max-width:none}.cover{height:auto;min-height:0;aspect-ratio:var(--preview-ratio);background:transparent}.cover img{display:block;width:100%;height:100%;object-fit:contain}.card-caption>div{min-width:0}.card-caption h2{overflow-wrap:break-word}.card-caption .open-arrow{flex-shrink:0}@media(max-width:650px){.work-card{--preview-height:max(280px,48vh);flex-basis:auto;width:calc(var(--preview-height) * var(--preview-scale));max-width:84vw}.cover{height:auto;min-height:0}}

.project-heading{padding:30px 0 26px}.project-heading h1{font-size:clamp(36px,4vw,58px)}.project-heading .eyebrow{margin-bottom:14px}.project-heading h1 span{font-size:.55em;margin-top:8px}.project-page>.films{margin-bottom:0}.project-page>.films>.section-line{border-top:0;padding:0 0 18px}.project-page>.project-info{padding-top:50px}@media(max-width:650px){.project-heading{padding:25px 0 22px}.project-page>.project-info{padding-top:35px}}
/* Still frames always follow the image, including temporary stills. */
.still-grid{align-items:start}.still-grid figure{min-width:0;align-self:start}.still-grid figure img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;background:transparent}

.portrait-stills{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}.portrait-stills figcaption{flex-direction:column;gap:5px}.portrait-stills figcaption span{max-width:100%}@media(max-width:900px){.portrait-stills{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}}
.filmstrip.looping{scroll-snap-type:none;scroll-behavior:auto}.motion-toggle{font-size:16px}

.work-section{padding-top:0}.strip-footer{justify-content:flex-end}

.scroll-shell{position:relative}.scroll-shell::after{content:"";position:absolute;left:0;right:0;bottom:0;height:16px;background:#f5f5f3;opacity:1;pointer-events:none;transition:opacity .8s ease}.scroll-shell.manual-scroll::after{opacity:0;transition-duration:.15s}.scroll-shell .filmstrip{scrollbar-width:thin}.scroll-shell .filmstrip::-webkit-scrollbar{height:8px}.scroll-shell .filmstrip::-webkit-scrollbar-thumb{background:#aaa;border-radius:8px}.scroll-shell .filmstrip::-webkit-scrollbar-track{background:transparent}@media(prefers-reduced-motion:reduce){.scroll-shell::after{transition:none}}

.bio-contacts{display:grid;gap:22px;margin-top:32px}.bio-contacts>div{display:grid;gap:7px}.contact-label{font-size:14px;color:#666}.bio-contacts a{font-size:18px;width:fit-content}.bio-contacts a:hover{text-decoration:underline;text-underline-offset:5px}
/* Static gallery: the selected frame grows while its neighbours stay compact. */
.filmstrip{align-items:center;scroll-snap-type:none;padding-top:28px;padding-bottom:18px;min-height:calc(clamp(300px,55vh,680px) + 160px)}
.work-card{width:calc(var(--preview-height) * var(--preview-scale) * .7);flex:0 0 auto;transition:width .65s cubic-bezier(.22,1,.36,1);align-self:center}
.cover{transition:filter .5s ease}
.work-card .cover img,.work-card:hover .cover img{opacity:1}
.card-caption h2{font-size:clamp(23px,2.4vw,36px);transition:color .35s}
.card-caption .open-arrow{transition:transform .5s cubic-bezier(.22,1,.36,1)}
.work-card:focus-visible{width:calc(var(--preview-height) * var(--preview-scale))}
@media(hover:hover) and (pointer:fine){.work-card:hover{width:calc(var(--preview-height) * var(--preview-scale))}.work-card:hover .open-arrow{transform:translate(3px,-3px)}}
@media(max-width:650px){.filmstrip{min-height:calc(max(280px,48vh) + 145px)}.work-card,.work-card:focus-visible{width:calc(var(--preview-height) * var(--preview-scale));max-width:84vw}.card-caption h2{font-size:28px}}
@media(hover:none){.work-card{width:calc(var(--preview-height) * var(--preview-scale))}}
@media(prefers-reduced-motion:reduce){.work-card,.cover,.card-caption h2,.card-caption .open-arrow{transition:none}}

/* Compact masthead and a shared baseline independent of title wrapping. */
.masthead{padding-top:17px;padding-bottom:17px}.brand{font-size:25px}.brand span{margin-top:4px;font-size:13px}
.card-caption{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;height:110px}.card-caption h2{font-size:clamp(20px,1.65vw,30px);line-height:1.12;min-height:2.24em;margin:0 0 7px;letter-spacing:-.045em}.card-caption p{line-height:1.35}.card-number{padding-top:6px}.card-caption .open-arrow{margin-left:0}
@media(max-width:650px){.masthead{padding:14px 20px}.brand{font-size:23px}.brand span{font-size:12px}.card-caption{height:110px}.card-caption h2{font-size:23px}}
/* Finer header and a more restrained hover expansion. */
.masthead{padding-top:10px;padding-bottom:10px}.brand{font-size:23px}.brand span{margin-top:3px;font-size:12px}
.work-card:focus-visible{width:calc(var(--preview-height) * var(--preview-scale) * .85)}
@media(hover:hover) and (pointer:fine){.work-card:hover{width:calc(var(--preview-height) * var(--preview-scale) * .85)}}
.filmstrip{min-height:calc(clamp(300px,55vh,680px) * .85 + 160px)}
@media(max-width:650px){.masthead{padding:10px 20px}.brand{font-size:22px}.filmstrip{min-height:calc(max(280px,48vh) + 145px)}.work-card:focus-visible{width:calc(var(--preview-height) * var(--preview-scale));max-width:84vw}}

/* Category navigation and selected category page. */
.category-line{justify-content:flex-end}.category-line a{font-size:14px;color:var(--muted,#666);text-underline-offset:4px}.category-line a:hover{text-decoration:underline}.category-heading{padding:30px 4vw 0}.category-heading h1{font-size:clamp(36px,5vw,64px);font-weight:400;letter-spacing:-.05em;margin:28px 0 0}.category-page .work-section{padding-top:0}
/* Compact project catalog, separate from the home filmstrip. */
.catalog{padding:34px 4vw 60px;min-height:75vh}.catalog-top{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:32px}.catalog-top h1{font-size:28px;font-weight:400;letter-spacing:-.04em;margin:0}.category-filters{gap:26px;flex-wrap:wrap}.category-filters a{color:#777;padding:8px 0;border-bottom:1px solid transparent}.category-filters a[aria-current=page]{color:#1b1b1b;border-color:currentColor}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 28px}.catalog-card{display:block;min-width:0;width:fit-content;max-width:100%}.catalog-card .cover{height:clamp(140px,17vw,240px);width:auto;aspect-ratio:var(--preview-ratio);max-width:100%;background:none;display:block}.catalog-card .cover img{display:block;width:100%;height:100%;object-fit:contain}.catalog-card .card-caption{height:auto;padding:12px 0 0;gap:10px}.catalog-card .card-caption h2{font-size:20px;min-height:0;line-height:1.15;margin-bottom:5px}.catalog-card .card-caption p{font-size:14px}.catalog-card .open-arrow{font-size:20px}.catalog-card:hover .cover img{opacity:.85}.catalog-empty{color:#777;margin-top:70px;font-size:16px}@media(max-width:850px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-card .cover{height:clamp(130px,24vw,210px)}.catalog-top{align-items:flex-start;flex-direction:column;gap:14px}}@media(max-width:480px){.catalog{padding:26px 20px 40px}.catalog-grid{gap:24px 16px}.catalog-card .cover{height:24vw}.catalog-card .card-caption{grid-template-columns:minmax(0,1fr)}.catalog-card .card-number,.catalog-card .open-arrow{display:none}.catalog-card .card-caption h2{font-size:17px}.category-filters{gap:22px}}
/* Justified rows preserve each preview's original aspect ratio. */
.catalog-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:32px 24px}.catalog-card{flex:none;width:auto}.catalog-card .cover{height:var(--row-height,240px);width:100%;max-width:none;aspect-ratio:var(--preview-ratio)}.catalog-card .card-caption{height:92px}.catalog-card .cover img,.still-grid img{transition:filter .3s ease,opacity .3s ease}.catalog-card:hover .cover img{opacity:1}.catalog-card:focus-visible .cover img{filter:brightness(1.07)}
@media(hover:hover) and (pointer:fine){.catalog-card:hover .cover img,.still-grid figure:hover img{filter:brightness(1.07)}}
@media(max-width:680px){.catalog-grid{column-gap:16px}.catalog-card .card-caption{height:100px}}
@media(prefers-reduced-motion:reduce){.catalog-card .cover img,.still-grid img{transition:none}}

/* Tighter titles and a square monochrome bio portrait. */
.work-card .card-caption h2{min-height:0;margin-bottom:5px}.information>img{aspect-ratio:1/1;width:100%;height:auto;object-fit:cover;object-position:center;filter:grayscale(1)}

.audrey-videos{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:24px}@media(max-width:900px){.audrey-videos{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.audrey-videos{grid-template-columns:1fr}}

/* Compact Audrey video collection and updated color portrait. */
.audrey-videos{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1280px;margin-inline:auto;gap:24px}.information>img{filter:none}@media(max-width:900px){.audrey-videos{grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px}}@media(max-width:540px){.audrey-videos{grid-template-columns:1fr;max-width:320px}}

/* Cards have no project numbering; portrait players occupy one grid cell. */
.card-caption{grid-template-columns:minmax(0,1fr) auto}.audrey-videos>.film-player{grid-column:auto}@media(max-width:480px){.catalog-card .card-caption{grid-template-columns:minmax(0,1fr)}}

/* RESA: three compact portrait teasers alongside the landscape Cyber Monday film. */
.resa-extras{display:grid;grid-template-columns:repeat(3,minmax(0,.56338fr)) minmax(0,1.33333fr);gap:20px;max-width:1150px;margin:32px auto 0;align-items:start}.resa-extras>.film-player{grid-column:auto}@media(max-width:900px){.resa-extras{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;gap:20px}}@media(max-width:540px){.resa-extras{grid-template-columns:1fr;max-width:280px}}

/* Align the RESA films on one shared, reduced canvas. */
.resa-films{width:80%;max-width:calc((100svh - 320px) * 1.33333);margin-inline:auto}.resa-films .resa-extras{width:100%;max-width:none;margin-top:24px;gap:16px}@media(max-width:900px){.resa-films{width:100%;max-width:none}.resa-films .resa-extras{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.resa-films .resa-extras{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
/* Responsive navigation, contact and comfortably sized project films. */
.ui-arrow{width:1em;height:1em;display:inline-block;vertical-align:-.12em;flex-shrink:0}button .ui-arrow{width:22px;height:22px}.masthead nav{align-items:center}.masthead nav a{display:inline-flex;align-items:center;min-height:44px}.project-pagination{display:grid;grid-template-columns:1fr 1fr;max-width:none;gap:24px;border-top:1px solid #ccc;padding:32px 0;margin-top:60px}.project-pagination a{display:flex;flex-direction:column;gap:9px;min-width:0;padding:8px 0}.project-pagination a:last-child{text-align:right;align-items:flex-end}.project-pagination span{font-size:13px;color:#666}.project-pagination strong{font-size:clamp(18px,2vw,26px);font-weight:400;letter-spacing:-.035em}.contact-page{min-height:75svh;display:grid;align-items:center;padding:50px 4vw}.contact-page .information{margin:0 auto;padding:0;border:0;width:100%;max-width:1000px;grid-template-columns:1fr minmax(200px,360px);gap:70px}.contact-page .information h2{font-size:clamp(42px,5vw,64px)}.contact-page .information>img{max-width:360px}.video-grid:not(.audrey-videos)>.film-player{width:100%;max-width:1100px;margin-inline:auto}.video-grid:not(.audrey-videos) .vimeo-frame{width:100%;max-width:calc((100svh - 300px) * var(--film-ratio,1.33333));margin-inline:auto}.resa-films .video-grid .vimeo-frame{max-width:none}.bio-contacts a{display:inline-block;padding:8px 0}.category-filters a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:650px){.masthead{align-items:center;gap:12px;padding:8px 20px}.masthead nav{flex-wrap:nowrap;gap:20px;max-width:none}.brand{font-size:21px}.brand span{font-size:11px}.work-section{padding-top:12px}.filmstrip{align-items:flex-start;min-height:0;padding-top:20px;padding-bottom:10px}.work-card,.work-card:focus-visible{--preview-height:min(43svh,calc((100vw - 40px) / 1.7781));width:calc(var(--preview-height) * var(--preview-scale));max-width:none;align-self:flex-start}.work-card .cover{height:var(--preview-height);width:100%;min-height:0}.work-card .cover img{height:100%;width:100%;object-fit:contain}.work-card .card-caption{height:108px;gap:5px;padding-top:12px}.work-card .card-caption h2{font-size:17px;line-height:1.15;min-height:2.3em;margin-bottom:5px;letter-spacing:-.04em}.work-card .card-caption p{font-size:12px}.work-card .open-arrow{display:none}.strip-footer{padding-top:0;margin-bottom:32px}.paging button{width:44px;height:44px}.project-heading h1{font-size:36px}.project-heading h1 span{font-size:23px}.project-pagination{gap:18px;margin-top:35px;padding:22px 0}.project-pagination strong{font-size:19px}.project-pagination span{font-size:12px}.contact-page{padding:34px 20px;min-height:0}.contact-page .information{grid-template-columns:1fr;gap:30px}.contact-page .information>img{max-width:280px;justify-self:start}.contact-page .information h2{font-size:44px}.contact-page .bio-line{font-size:16px}.video-grid:not(.audrey-videos) .vimeo-frame{max-width:calc((100svh - 240px) * var(--film-ratio,1.33333))}.project-info{gap:28px}.project-info dd{overflow-wrap:anywhere}.catalog-top{margin-bottom:20px}.category-filters{justify-content:flex-start;max-width:none;gap:20px}footer{padding-top:22px;padding-bottom:22px}}
/* Mobile home: a vertical project list navigated with normal page scrolling. */
@media(max-width:650px){.filmstrip{display:flex;flex-direction:column;align-items:stretch;gap:30px;overflow:visible;min-height:0;padding:16px 20px 36px;scroll-snap-type:none}.filmstrip .work-card,.filmstrip .work-card:focus-visible{width:100%;max-width:none;align-self:stretch;transition:none}.filmstrip .work-card .cover{width:100%;height:auto;aspect-ratio:var(--preview-ratio);min-height:0}.filmstrip .work-card .cover img{display:block;width:100%;height:auto;object-fit:contain}.filmstrip .work-card .card-caption{height:auto;padding:12px 0 0}.filmstrip .work-card .card-caption h2{font-size:22px;min-height:0;margin-bottom:5px}.filmstrip .work-card .card-caption p{font-size:14px}.work-section>.strip-footer{display:none}}

.project-meta{font-size:13px;line-height:1.5;color:#777;margin:18px 0 0}.resa-extras{grid-template-columns:minmax(0,1.33333fr) repeat(3,minmax(0,.56338fr))}@media(max-width:900px){.resa-extras{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.resa-films .resa-extras{grid-template-columns:1fr;width:100%;max-width:none;gap:24px}.resa-extras .vimeo-frame{max-width:320px;margin-inline:auto}.project-meta{margin-top:12px;font-size:13px}}

.collection-videos{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}.collection-videos>.film-player{grid-column:auto}.collection-videos .vimeo-frame{max-width:none!important}@media(max-width:650px){.collection-videos{grid-template-columns:1fr;gap:24px}}

.project-pagination{border-top:0}.resa-cyber{width:100%;margin:24px auto}.resa-films .resa-extras{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:none}.copy-status{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1b1b1b;color:#fff;padding:12px 20px;font-size:14px;z-index:100}.copy-status[hidden]{display:none}@media(max-width:650px){.resa-films .resa-extras{grid-template-columns:1fr}.resa-cyber .vimeo-frame{width:100%;max-width:none}}

/* Shared bounds keep the RESA campaign and Cyber Monday frames aligned. */
.resa-films>.video-grid,.resa-films>.resa-cyber{width:100%;max-width:1100px;margin-inline:auto}
.resa-films>.video-grid>.film-player,.resa-films>.resa-cyber>.film-player{width:100%;max-width:none}
.resa-films>.video-grid .vimeo-frame,.resa-films>.resa-cyber .vimeo-frame{width:100%;max-width:none;margin-inline:auto}
.contact-page .information{grid-template-columns:1fr;max-width:1000px}
.brand{white-space:nowrap}.brand span{font-size:12px;line-height:1.3}

/* The canvas module is loaded only for a desktop mouse. */
body:has(.filmstrip):not(.canvas-home) .filmstrip{display:flex;flex-direction:column;gap:30px;overflow:visible;min-height:0;padding:16px 20px 36px}
body:not(.canvas-home) .filmstrip .work-card{width:100%;max-width:760px;margin-inline:auto}
body:not(.canvas-home) .filmstrip .work-card .cover{height:auto;min-height:0;aspect-ratio:var(--preview-ratio)}
body:not(.canvas-home) .filmstrip .card-caption{height:auto}
.canvas-home{height:100svh;overflow:hidden}
.canvas-home .masthead{position:fixed;inset:0 0 auto;z-index:100;background:rgba(245,245,243,.94)}
.canvas-home footer{position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(245,245,243,.94)}
.canvas-home .work-section{padding:0}
.canvas-home .filmstrip{position:fixed;inset:0 auto auto 0;display:block;padding:0;min-height:0;overflow:visible;scroll-snap-type:none;will-change:transform;margin-left:-35vw;margin-top:var(--canvas-top)}
.canvas-slot{position:absolute;inset:0 auto auto 0}
.canvas-slot:has(.work-card:is(:hover,:focus-visible)){z-index:30}
.canvas-home .filmstrip .work-card,.canvas-home .filmstrip .work-card:hover,.canvas-home .filmstrip .work-card:focus-visible{display:block;position:relative;width:100%;max-width:none;margin:0;transform:scale(1);transition:transform 300ms ease-out;opacity:1;filter:none}
.canvas-home .filmstrip .work-card:is(:hover,:focus-visible){transform:scale(1.06)}
.canvas-home .work-card:focus-visible{outline:3px solid #171717;outline-offset:5px}
.canvas-home .work-card .cover{height:auto;min-height:0;width:100%;aspect-ratio:var(--preview-ratio);overflow:hidden;background:transparent}
.canvas-home .cover img{display:block;width:100%;height:100%;object-fit:contain}
.canvas-home .work-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(255,255,255,.4),transparent 34%),rgba(255,255,255,.12);opacity:0;transition:opacity 300ms ease-out;pointer-events:none}
.canvas-home .work-card .card-caption{position:absolute;inset:auto 20px 18px;z-index:2;width:auto;height:auto;margin:0;padding:0;opacity:0;pointer-events:none;transition:opacity 300ms ease-out;display:block}
.canvas-home .card-caption h2{font-size:clamp(17px,1.35vw,24px);line-height:1.12;margin:0 0 5px;color:#151515;letter-spacing:-.035em;text-shadow:0 1px 8px rgba(255,255,255,.65)}
.canvas-home .card-caption p{font-size:13px;line-height:1.25;color:#333;text-shadow:0 1px 5px white}
.canvas-home .open-arrow{display:none}
.canvas-home .work-card:is(:hover,:focus-visible)::after,.canvas-home .work-card:is(:hover,:focus-visible) .card-caption{opacity:1}
@media(prefers-reduced-motion:reduce){.canvas-home .filmstrip .work-card:is(:hover,:focus-visible){transform:none}}

/* Broad continuous light falloff, without hover-triggered dimming of neighbours. */
.canvas-home .filmstrip .work-card{opacity:var(--light-opacity,.76);filter:saturate(var(--light-saturation,.65));transition:transform 300ms ease-out,opacity 450ms ease-out,filter 450ms ease-out}
.canvas-home .filmstrip .work-card:is(:hover,:focus-visible){opacity:1;filter:saturate(1)}

/* Desktop film previews stay inside the rounded clickable card. */
.canvas-slot{transform-origin:0 0}
.canvas-home .work-card .card-caption,.canvas-home .work-card::after{display:none!important}
.canvas-home .work-card .cover{position:relative;border-radius:7px;isolation:isolate}
.hover-video{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity 300ms ease-out;background:transparent}
.hover-video.is-playing{opacity:1}
.hover-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}

/* A quiet, stationary title rail outside the moving images. */
.canvas-info{position:fixed;inset:auto 180px 67px;z-index:105;height:44px;display:flex;align-items:center;justify-content:center;gap:14px;pointer-events:none;opacity:0;transform:translate3d(0,4px,0);transition:opacity 220ms ease,transform 220ms ease;background:#f5f5f3}
.canvas-info.is-visible{opacity:1;transform:translate3d(0,0,0)}
.canvas-info strong{font-size:16px;font-weight:500;letter-spacing:.01em}
.canvas-info span{font-size:14px;color:#686868}

.canvas-overview{position:fixed;right:36px;bottom:76px;z-index:110;padding:8px 14px;border:1px solid #ccc;border-radius:22px;background:#f5f5f3;color:#242424;font:inherit;font-size:14px;cursor:pointer;transition:background 200ms ease}
.canvas-overview:hover{background:#e6e6e3}.canvas-overview:focus-visible{outline:2px solid #171717;outline-offset:4px}
.canvas-home::after{content:'';position:fixed;bottom:0;left:0;right:0;height:124px;background:#f5f5f3;z-index:90;pointer-events:none}
@view-transition{navigation:auto}
::view-transition-group(project-media){animation-duration:650ms;animation-timing-function:cubic-bezier(.22,1,.36,1)}
::view-transition-old(project-media),::view-transition-new(project-media){height:100%;object-fit:contain;overflow:hidden;border-radius:7px}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:0s!important}.canvas-info{transition:opacity 150ms;transform:none}}
.canvas-overview{width:auto;height:auto;min-width:92px;transform:none;display:block;line-height:1.4}
.project-entry-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#f5f5f3;pointer-events:none;opacity:1;transition:opacity 350ms ease}
.project-entry-poster.is-ready{opacity:0}
@media(prefers-reduced-motion:reduce){.project-entry-poster{display:none}}

/* Record sleeves: one focal image, neighbouring projects invite the next gesture. */
.records-home{height:100svh;overflow:hidden}
.records-home .masthead{position:fixed;inset:0 0 auto;z-index:100;background:#f5f5f3}
.records-home footer{position:fixed;inset:auto 0 0;z-index:100;background:#f5f5f3}
.records-home .work-section{padding:0}
body.records-home .filmstrip{position:fixed;inset:120px 0 175px;display:block;overflow:visible;padding:0;min-height:0;perspective:1600px;touch-action:pan-y;cursor:grab}
body.records-home .filmstrip .work-card{position:absolute;left:50%;top:50%;margin:0;width:min(57vw,calc((100svh - 340px)*var(--preview-scale)));max-width:900px;transform:translate3d(calc(-50% + var(--offset)*39vw + var(--drag,0px)),-50%,calc(var(--distance)*-160px)) rotateY(var(--turn)) scale(1);transform-origin:center;opacity:.45;filter:saturate(.65);transition:transform 650ms cubic-bezier(.22,1,.36,1),opacity 500ms ease,filter 500ms ease;will-change:transform}
body.records-home .filmstrip .work-card.record-active{opacity:1;filter:none}
body.records-home .filmstrip .work-card.record-active:hover{transform:translate3d(calc(-50% + var(--drag,0px)),-50%,0) scale(1.025)}
body.records-home .filmstrip .cover{position:relative;width:100%;height:auto;min-height:0;aspect-ratio:var(--preview-ratio);border-radius:8px;overflow:hidden;box-shadow:0 14px 36px #00000012;background:transparent}
body.records-home .filmstrip .cover img{width:100%;height:100%;object-fit:contain;display:block;user-select:none}
body.records-home .filmstrip .card-caption,body.records-home .filmstrip .work-card::after{display:none}
body.records-home .work-card:focus-visible{outline:2px solid #222;outline-offset:7px}
body.records-home .filmstrip.is-dragging{cursor:grabbing}
body.records-home .filmstrip.is-dragging .work-card{transition:none}
.record-controls{position:fixed;bottom:106px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:46px minmax(280px,440px) 46px;align-items:center;gap:28px;z-index:110}
.record-controls button{position:static;transform:none;width:46px;height:46px;border:1px solid #c8c8c8;border-radius:50%;background:transparent;font-size:23px;cursor:pointer;color:#222}
.record-controls button:hover{background:#e9e9e7}.record-controls button:disabled{opacity:.25;cursor:default}.record-controls button:focus-visible,.record-overview:focus-visible{outline:2px solid #222;outline-offset:4px}
.record-title{text-align:center;display:flex;flex-direction:column;gap:6px}.record-title strong{font-size:19px;font-weight:500}.record-title span{font-size:14px;color:#666}
.record-count{position:absolute;right:-90px;top:16px;font-size:12px;color:#777;font-variant-numeric:tabular-nums}
.record-hint{position:fixed;bottom:77px;left:50%;transform:translateX(-50%);font-size:12px;color:#777;z-index:110;margin:0}
.record-overview{position:fixed;right:36px;bottom:112px;width:auto;height:auto;transform:none;padding:9px 15px;border:1px solid #ccc;border-radius:24px;background:#f5f5f3;font:inherit;font-size:14px;z-index:110;cursor:pointer}
body.records-overview .filmstrip{inset:125px 40px 185px;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:22px;perspective:none;align-items:center;justify-items:center}
body.records-overview .filmstrip .work-card,body.records-overview .filmstrip .work-card.record-active:hover{position:relative;inset:auto;transform:none;width:min(100%,calc((100svh - 380px)/3*var(--preview-scale)));opacity:1;filter:none;max-height:100%}
.records-overview .record-controls,.records-overview .record-hint{visibility:hidden}
@media(prefers-reduced-motion:reduce){body.records-home .filmstrip .work-card{transition:none}body.records-home .filmstrip .work-card.record-active:hover{transform:translate3d(-50%,-50%,0)}}
/* Opaque card backing prevents deeper sleeves from showing through. */
body.records-home .filmstrip .work-card{opacity:1;filter:none}
body.records-home .filmstrip .cover{background:#f5f5f3}
body.records-home .filmstrip .cover img{opacity:.7;transition:opacity 500ms ease}
body.records-home .filmstrip .hover-video.is-playing{opacity:.7}
body.records-home .filmstrip .record-active .cover img,body.records-home .filmstrip .record-active .hover-video.is-playing{opacity:1}
.record-overview{text-decoration:none;color:#222;line-height:1.4;text-align:center}
