@font-face{font-family:"PS";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/ps-400-normal.woff2) format("woff2")}
@font-face{font-family:"PS";font-weight:500;font-style:normal;font-display:swap;src:url(/assets/fonts/ps-500-normal.woff2) format("woff2")}
@font-face{font-family:"PS";font-weight:800;font-style:normal;font-display:swap;src:url(/assets/fonts/ps-800-normal.woff2) format("woff2")}
@font-face{font-family:"PS";font-weight:300 400;font-style:italic;font-display:swap;src:url(/assets/fonts/ps-300-italic.woff2) format("woff2")}

:root{
  --bg:#000;--fg:#f4f1ea;--dim:rgba(244,241,234,.55);--line:rgba(244,241,234,.16);
  --gold:#f5b54a;
  --g:clamp(16px,2.6vw,40px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:400 16px/1.5 "PS",system-ui,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
img,video,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
::selection{background:var(--gold);color:#000}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--gold);color:#000;padding:8px 12px;z-index:100}

/* type system: display / statement / body / label */
.label{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;line-height:1.3}
.gold{color:var(--gold)}
.dim{color:var(--dim)}
.display{font-weight:800;font-size:clamp(48px,9vw,148px);line-height:.9;letter-spacing:-.045em}
.intro{font-size:clamp(20px,2vw,30px);line-height:1.25;max-width:30ch;margin-top:clamp(20px,2.5vw,36px)}
.arr{width:18px;height:11px;margin-left:.5em;flex:none;transition:transform .3s var(--ease)}
a:hover .arr{transform:translateX(4px)}
.link{display:inline-flex;align-items:center}
.link:hover{color:var(--gold)}

/* header */
.hdr{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px var(--g);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.hdr.solid{background:rgba(0,0,0,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--line)}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:20px;letter-spacing:-.03em;text-transform:uppercase}
.brand img{width:40px}
.nav{display:flex;gap:clamp(20px,3vw,44px)}
.nav a{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:color .2s}
.nav a:hover,.nav a[aria-current]{color:var(--gold)}
.menu{display:none;background:none;border:0;color:inherit;width:44px;height:44px;padding:11px;cursor:pointer}
.menu span{display:block;height:1.5px;background:currentColor;margin:6px 0;transition:transform .25s}

main{padding-top:110px}
.home main{padding-top:0}
.wrap{padding:0 var(--g)}

/* reveal */
.js-reveal .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js-reveal .reveal.in{opacity:1;transform:none}

/* home */
.hero{position:relative;height:100svh;min-height:480px;overflow:hidden}
.hero video{width:100%;height:100%;object-fit:cover}
.hero-meta{position:absolute;left:var(--g);right:var(--g);bottom:24px;display:flex;justify-content:space-between;color:var(--dim)}
.statement{padding-top:clamp(80px,12vw,180px);padding-bottom:clamp(80px,10vw,150px)}
.statement p{font-size:clamp(30px,4.6vw,76px);font-weight:500;line-height:1.02;letter-spacing:-.035em;max-width:17ch}
.statement em{font-style:italic;font-weight:300;color:var(--gold)}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding:16px 0 28px}

/* work stack */
.page-head{padding-top:clamp(40px,6vw,100px);padding-bottom:clamp(40px,5vw,72px)}
.filters{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:clamp(28px,3vw,44px)}
.filters a{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding-bottom:4px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.filters a:hover{color:var(--fg)}
.filters a[aria-current]{color:var(--fg);border-color:var(--gold)}
.filters sup{font-size:10px;margin-left:3px;color:var(--gold)}
.stack{display:grid;gap:clamp(48px,6vw,96px);padding-bottom:clamp(80px,9vw,140px)}
.tile{display:block}
.tile-media{overflow:hidden;aspect-ratio:2.2/1;background:#111}
.tile-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.001);transition:transform 1.4s var(--ease),filter .6s}
.tile:hover .tile-media img{transform:scale(1.04)}
.tile-meta{display:flex;justify-content:space-between;gap:16px;padding-top:14px}
.t-title{font-weight:800;font-size:clamp(18px,1.7vw,26px);letter-spacing:-.03em;transition:color .2s}
.t-cat{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);white-space:nowrap;padding-top:.4em}
.tile:hover .t-title{color:var(--gold)}

/* recognition rows */
.rec{padding-bottom:clamp(80px,9vw,140px)}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:1.4fr 1fr auto;gap:24px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line);transition:color .2s,padding .3s var(--ease)}
.r-a{font-size:clamp(18px,1.7vw,26px);font-weight:500;letter-spacing:-.025em;line-height:1.2}
.r-b{color:var(--dim)}
.r-c{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);display:inline-flex;align-items:center}
a.row:hover{color:var(--gold);padding-left:8px}
a.row:hover .r-c{color:var(--gold)}

/* project */
.p-hero{position:relative;height:min(78vh,56.25vw);min-height:300px;overflow:hidden;background:#111;margin-top:-110px}
.p-hero img{width:100%;height:100%;object-fit:cover}
.p-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent 30%,transparent 70%,rgba(0,0,0,.35));pointer-events:none}
.play{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:16px 26px 16px 20px;background:rgba(0,0,0,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--fg);border:1px solid rgba(255,255,255,.35);border-radius:999px;font:500 13px "PS",sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.play svg{width:22px;height:22px}
.play:hover{background:var(--gold);color:#000;border-color:var(--gold)}
.p-info{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,5vw,80px);align-items:end;padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(48px,6vw,96px)}
.p-titles .label{margin-bottom:16px}
.p-info .display{font-size:clamp(44px,7.5vw,124px)}
.credits{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;border-top:1px solid var(--line);padding-top:20px}
.credits dd{margin:6px 0 0;font-size:17px}
.credits dt{color:var(--dim)}
.credits a{display:inline-flex;align-items:center;border-bottom:1px solid var(--line)}
.credits a:hover{color:var(--gold);border-color:var(--gold)}
.p-stills{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.5vw,24px);padding-bottom:clamp(64px,7vw,110px)}
.p-stills img{width:100%;aspect-ratio:16/9;object-fit:cover}
.next{display:grid;grid-template-columns:1fr 38%;grid-template-rows:auto 1fr;gap:12px 32px;border-top:1px solid var(--line);padding:20px 0 clamp(80px,9vw,140px)}
.next .label{color:var(--dim)}
.next-title{grid-row:2;align-self:end;font-weight:800;font-size:clamp(28px,4vw,64px);letter-spacing:-.04em;line-height:1;display:flex;align-items:center;transition:color .2s}
.next-title .arr{width:32px;height:20px;margin-left:16px}
.next-media{grid-column:2;grid-row:1/3;overflow:hidden;aspect-ratio:16/9}
.next-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.next:hover .next-title{color:var(--gold)}
.next:hover img{transform:scale(1.05)}

/* player overlay */
.player{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:var(--g);border:0;background:rgba(0,0,0,.94);color:var(--fg)}
.player[open]{display:flex;align-items:center;justify-content:center}
.player::backdrop{background:rgba(0,0,0,.8)}
.player-frame{width:min(100%,calc((100vh - 140px) * 16 / 9));max-height:calc(100vh - 140px)}
.player-frame iframe{width:100%;height:100%;border:0}
.player-close{position:absolute;top:20px;right:var(--g);background:none;border:0;color:var(--fg);font:500 13px "PS",sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:10px}
.player-close:hover{color:var(--gold)}

/* services */
.steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:80px 1fr 1.3fr;gap:24px;padding:28px 0 32px;border-bottom:1px solid var(--line)}
.step h3{font-weight:800;font-size:clamp(24px,2.6vw,40px);letter-spacing:-.035em;line-height:1}
.step p{color:var(--dim);font-size:17px;max-width:52ch}
.step p+p{margin-top:.7em}
.rates{padding-top:clamp(64px,8vw,120px);padding-bottom:clamp(80px,9vw,140px)}
.rates .big{font-size:clamp(28px,4vw,60px);font-weight:500;line-height:1.05;letter-spacing:-.035em;max-width:22ch;margin-top:16px}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start;padding-bottom:clamp(80px,9vw,140px)}
.wordmark{width:100%;max-width:560px}
.prose p{font-size:18px;line-height:1.55}
.prose p+p{margin-top:1em}

/* contact */
.contact{min-height:70vh}
.contact .display{margin-top:12px}
.contact-mail{display:inline-flex;align-items:center;margin-top:clamp(32px,4vw,56px);font-weight:800;font-size:clamp(26px,4.4vw,72px);letter-spacing:-.04em;border-bottom:2px solid var(--line);transition:color .2s,border-color .2s;word-break:break-word}
.contact-mail .arr{width:36px;height:22px;margin-left:16px}
.contact-mail:hover{color:var(--gold);border-color:var(--gold)}
.contact-logo{width:min(420px,70%);margin-top:clamp(64px,8vw,120px);opacity:.9}

/* footer */
.ftr{border-top:1px solid var(--line);padding:clamp(56px,7vw,110px) var(--g) 32px}
.ftr-cta .label{color:var(--dim)}
.ftr-mail{display:inline-flex;align-items:center;margin-top:12px;font-weight:800;font-size:clamp(26px,4vw,64px);letter-spacing:-.04em;transition:color .2s}
.ftr-mail .arr{width:32px;height:20px;margin-left:14px}
.ftr-mail:hover{color:var(--gold)}
.ftr-grid{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:32px;margin-top:clamp(56px,7vw,100px);padding-top:20px;border-top:1px solid var(--line);font-size:14px}
.ftr-grid .label{color:var(--dim);margin-bottom:10px}
.ftr-links{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ftr-links a:hover{color:var(--gold)}
.ftr-copy{align-self:end;color:var(--dim)}

/* mobile */
@media (max-width:820px){
  .menu{display:block;position:relative;z-index:30}
  .nav{position:fixed;inset:0;background:#000;flex-direction:column;justify-content:center;padding:0 var(--g);gap:8px;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
  .nav a{font-size:44px;font-weight:800;letter-spacing:-.04em;text-transform:none}
  .nav-open .nav{opacity:1;visibility:visible}
  .nav-open{overflow:hidden}
  .nav-open .menu span:first-child{transform:translateY(3.75px) rotate(45deg)}
  .nav-open .menu span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
  .brand span{font-size:17px}.brand img{width:34px}
  main{padding-top:88px}
  .hero{height:auto;aspect-ratio:4/3;min-height:0;margin-top:64px}
  .tile-media{aspect-ratio:16/10}
  .tile-meta{flex-direction:column;gap:4px}
  .t-cat{padding-top:0}
  .row{grid-template-columns:1fr auto;gap:4px 16px}
  .r-b{grid-column:1;grid-row:2;font-size:14px}
  .r-c{grid-row:1/3;grid-column:2;align-self:center}
  .p-hero{margin-top:-88px;height:62svh}
  .p-info{grid-template-columns:1fr;align-items:start}
  .p-stills{grid-template-columns:1fr}
  .next{grid-template-columns:1fr}
  .next-media{grid-column:1;grid-row:auto}
  .step{grid-template-columns:1fr;gap:10px}
  .about-grid{grid-template-columns:1fr}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .ftr-copy{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.contact-page .ftr-cta{display:none}.contact-page .ftr-grid{margin-top:0}

/* ===== v3 motion system: one curve, three durations ===== */
:root{--fast:.22s;--mid:.55s;--slow:.9s}

/* living stills: stacked frames, slow drift on the active one */
.frames{position:relative;width:100%;height:100%;overflow:hidden;background:#0b0b0b;contain:paint}
.frames .f{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s var(--ease);will-change:opacity}
.frames .f.on{opacity:1;animation:kb 16s ease-in-out infinite alternate}
.frames .f:nth-child(2n).on{animation-name:kb2}
.frames:not(.vis) .f{animation-play-state:paused}
@keyframes kb{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.12) translate3d(-2%,-1.2%,0)}}
@keyframes kb2{from{transform:scale(1.12) translate3d(1.5%,1%,0)}to{transform:scale(1.03) translate3d(0,0,0)}}
.tile-media .frames{transition:transform var(--slow) var(--ease)}
.tile:hover .tile-media .frames{transform:scale(1.025)}
.tile-media img{transform:none}
.tile:hover .tile-media img{transform:none}
.tile .frames::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.35));pointer-events:none}

/* frame counter that appears while cycling */
.tile-media{position:relative}

/* home reel */
.reel{position:relative;height:100svh;min-height:520px;overflow:hidden;background:#000}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility 0s .9s}
.slide.on{opacity:1;visibility:visible;transition:opacity .9s var(--ease),visibility 0s}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 6.5s linear}
.slide.on img{transform:scale(1)}
.reel.paused .slide.on img{transition:none}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),transparent 30%,transparent 50%,rgba(0,0,0,.7));pointer-events:none}
.slide-meta{position:absolute;z-index:2;left:var(--g);right:var(--g);bottom:110px;display:flex;flex-direction:column;gap:14px}
.slide-title{font-weight:800;font-size:clamp(40px,7vw,120px);line-height:.92;letter-spacing:-.045em;max-width:14ch}
.slide-meta>*{opacity:0;transform:translateY(18px);transition:opacity var(--mid) var(--ease),transform var(--mid) var(--ease)}
.slide.on .slide-meta>*{opacity:1;transform:none}
.slide.on .slide-meta>:nth-child(2){transition-delay:.08s}
.slide.on .slide-meta>:nth-child(3){transition-delay:.16s}
.slide-cta{display:inline-flex;align-items:center}
.slide:hover .slide-title{color:var(--gold)}
.reel-ui{position:absolute;z-index:3;left:0;right:0;bottom:32px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.reel-idx{display:flex;gap:clamp(12px,2vw,28px);flex:1;max-width:720px}
.idx{flex:1;background:none;border:0;padding:8px 0;color:var(--dim);cursor:pointer;text-align:left;font:500 12px "PS",sans-serif;letter-spacing:.08em}
.idx.on,.idx:hover{color:var(--fg)}
.idx .bar{display:block;height:2px;background:rgba(255,255,255,.2);margin-top:8px;overflow:hidden}
.idx .bar i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}
.idx.on .bar i{animation:fill var(--dur,6s) linear forwards}
.reel.paused .idx.on .bar i{animation-play-state:paused}
@keyframes fill{to{transform:scaleX(1)}}

/* kinetic headlines: words rise from behind a mask */
.w{display:inline-block;overflow:clip;vertical-align:top;padding:0 .02em .1em;margin-bottom:-.1em}
.w>span{display:inline-block;animation:rise var(--slow) var(--ease) both;animation-delay:calc(var(--i) * 60ms + 120ms)}
@keyframes rise{from{transform:translateY(108%)}}

/* film grain: one tiny tile, one composited layer */
.grain{position:fixed;inset:-50%;z-index:60;pointer-events:none;background:url(/assets/grain.webp);opacity:.04;animation:grain .9s steps(6) infinite}
@keyframes grain{0%{transform:translate3d(0,0,0)}20%{transform:translate3d(-3%,2%,0)}40%{transform:translate3d(2%,-4%,0)}60%{transform:translate3d(-4%,-1%,0)}80%{transform:translate3d(3%,3%,0)}}

/* page transitions (Chrome 126+, Safari 18.2+; others just navigate) */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:var(--mid);animation-timing-function:cubic-bezier(.2,.7,.2,1)}
::view-transition-group(*){animation-duration:.6s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
.hdr{view-transition-name:hdr}

/* project hero parallax where scroll timelines exist */
.p-hero .frames{height:100%}
@supports (animation-timeline:scroll()){
  .p-hero .frames{animation:par linear both;animation-timeline:scroll(root);animation-range:0 100vh}
  @keyframes par{to{transform:translate3d(0,14%,0)}}
}

/* reveal: media scales in, text rises */
.js-reveal .tile.reveal{transform:none;opacity:1}
.js-reveal .tile.reveal .tile-media{opacity:0;transform:scale(.965);transition:opacity var(--slow) var(--ease),transform 1.2s var(--ease)}
.js-reveal .tile.reveal .tile-meta{opacity:0;transform:translateY(14px);transition:opacity var(--slow) var(--ease) .12s,transform var(--slow) var(--ease) .12s}
.js-reveal .tile.reveal.in .tile-media,.js-reveal .tile.reveal.in .tile-meta{opacity:1;transform:none}

@media (max-width:820px){
  .reel{height:74svh}
  .slide-meta{bottom:140px}
  .reel-ui{flex-direction:column;align-items:stretch;gap:12px}
}
@media (prefers-reduced-motion:reduce){
  .frames .f.on,.grain,.w>span,.p-hero .frames,.idx.on .bar i{animation:none!important}
  .slide img{transform:none!important}
  @view-transition{navigation:none}
}

.reel + .rec{padding-top:clamp(64px,8vw,120px)}

/* v3: title sits on the hero so it is seen on arrival */
.p-hero{height:min(88vh,62vw)}
.p-hero::after{background:linear-gradient(180deg,rgba(0,0,0,.5),transparent 28%,transparent 45%,rgba(0,0,0,.78))}
.p-hero .p-titles{position:absolute;z-index:2;left:var(--g);right:var(--g);bottom:clamp(24px,4vw,56px)}
.p-hero .p-titles .label{margin-bottom:14px}
.p-hero .display{font-size:clamp(44px,8vw,132px);max-width:12ch}
.p-hero .play{top:44%}
.p-info{grid-template-columns:1fr;padding-top:clamp(28px,3vw,44px);padding-bottom:clamp(48px,6vw,96px)}
.credits{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
/* headings inside a not-yet-revealed block wait for it */
.js-reveal .reveal:not(.in) .w>span{animation-play-state:paused}
@media (max-width:820px){.p-hero{height:70svh}.p-hero .play{top:38%}}

/* ===== v3.1 smooth living stills ===== */
:root{--xfade:1.4s;--soft:cubic-bezier(.45,0,.55,1)}
/* every frame drifts all the time (own phase), so swapping frames never snaps a transform */
.frames .f,.frames .f.on{animation:kb 22s var(--soft) infinite alternate;animation-delay:calc(var(--d,0) * -7s)}
.frames .f:nth-child(2n),.frames .f:nth-child(2n).on{animation-name:kb2}
@keyframes kb{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-1.6%,-1%,0)}}
@keyframes kb2{from{transform:scale(1.1) translate3d(1.2%,.8%,0)}to{transform:scale(1.04) translate3d(0,0,0)}}
/* layered crossfade: the new frame fades in over the old one, no dip to black */
.frames .f{opacity:0;z-index:0;transition:opacity var(--xfade) var(--soft)}
.frames .f.prev{opacity:1;z-index:1;transition:none}
.frames .f.on{opacity:1;z-index:2}
.tile-media .frames{transition:transform 1.4s var(--soft)}
.tile:hover .tile-media .frames{transform:scale(1.02)}

/* reel: same layered crossfade */
.slide{transition:opacity 1.2s var(--soft),visibility 0s 1.2s;z-index:0}
.slide.prev{opacity:1;visibility:visible;z-index:1;transition:none}
.slide.on{z-index:2;transition:opacity 1.2s var(--soft),visibility 0s}
.slide.prev img{transform:scale(1)}

/* services: rates sits quietly in the list */
.services-list{padding-bottom:clamp(80px,9vw,140px)}

/* footer: two columns + copyright after removing the Studio list */
.ftr-grid{grid-template-columns:1fr 1fr auto}
@media (max-width:820px){.ftr-grid{grid-template-columns:1fr 1fr}}

/* recognition rows: fixed last column so the middle column aligns across rows */
.row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 7.5rem}
.r-c{justify-content:flex-end}
@media (max-width:820px){.row{grid-template-columns:minmax(0,1fr) 6rem}}

/* audit fixes */
.statement h1{font-size:clamp(30px,4.6vw,76px);font-weight:500;line-height:1.02;letter-spacing:-.035em;max-width:17ch}
.statement h1 em{font-style:italic;font-weight:300;color:var(--gold)}
.step h2{font-weight:800;font-size:clamp(24px,2.6vw,40px);letter-spacing:-.035em;line-height:1}
.link{min-height:32px;padding:6px 0}
.ftr-links a{display:inline-block;padding:4px 0}
.statement h1{max-width:21ch}

/* ===== philycius.com additions ===== */
.brand{gap:10px;font-size:18px;letter-spacing:-.02em}
.brand .mk{display:inline-grid;place-items:center;width:30px;height:30px;border:1.5px solid var(--gold);color:var(--gold);font-size:12px;letter-spacing:0;border-radius:50%}

/* poster slide / poster hero: blurred backdrop + upright one-sheet */
.slide.poster img.bgp,.p-hero.poster .bgp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide.poster .one,.p-hero.poster .one{position:absolute;z-index:1;right:var(--g);top:96px;height:calc(100% - 236px);width:auto;max-width:none;box-shadow:0 30px 80px rgba(0,0,0,.6);object-fit:contain;transform:none}
.slide.poster.on img.one{transform:none}
.p-hero.poster .one{top:110px;height:calc(100% - 150px)}
@media (max-width:820px){
  .slide.poster .one{top:80px;height:calc(100% - 400px);left:0;right:0;margin:0 auto}
  .p-hero.poster .one{top:96px;height:calc(100% - 300px);left:0;right:0;margin:0 auto}
}

/* disciplines */
.disc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);padding-bottom:clamp(80px,9vw,140px)}
.disc article{border-top:1px solid var(--line);padding-top:18px}
.disc .n{color:var(--gold)}
.disc h2{font-weight:800;font-size:clamp(26px,2.8vw,44px);letter-spacing:-.04em;line-height:1;margin:18px 0 14px}
.disc p{color:var(--dim);font-size:17px;max-width:40ch}
.disc a.link{margin-top:14px;color:var(--fg)}
@media (max-width:820px){.disc{grid-template-columns:1fr}}

/* credit list sections (work + resume) */
.block{padding-bottom:clamp(64px,7vw,110px)}
.block .sec-head h2{font-size:12px}
.row .r-a small{display:block;font-size:14px;color:var(--dim);font-weight:400;letter-spacing:0;margin-top:4px}

/* resume entries */
.entries{border-top:1px solid var(--line)}
.entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) 10rem;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}
.entry h3{font-weight:800;font-size:clamp(19px,1.7vw,26px);letter-spacing:-.03em;line-height:1.15}
.entry .org{color:var(--dim);margin-top:6px}
.entry p{color:var(--dim);font-size:16px;max-width:62ch}
.entry .when{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);text-align:right;padding-top:.5em}
@media (max-width:820px){.entry{grid-template-columns:1fr;gap:8px}.entry .when{text-align:left;padding:0;order:-1}}
.chips{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);padding-top:22px}
.chips li{list-style:none;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:15px}
.chips{margin:0;padding-left:0}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px)}
@media (max-width:820px){.cols2{grid-template-columns:1fr}}

/* about */
.about-grid .shot{width:100%;max-width:560px;aspect-ratio:4/5;object-fit:cover;background:#111}
.stats{margin:clamp(32px,4vw,56px) 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px 28px;border-top:1px solid var(--line);padding-top:20px}
.stats dt{color:var(--dim)}
.stats dd{margin:6px 0 0;font-size:17px}
.ext{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px}
.ext a{display:inline-flex;align-items:center;border-bottom:1px solid var(--line);padding:6px 0}
.ext a:hover{color:var(--gold);border-color:var(--gold)}

/* poster still on project page */
.p-stills .tall{grid-column:1/-1;max-width:520px;aspect-ratio:2/3;width:100%;object-fit:cover}
.p-note{color:var(--dim);max-width:60ch;font-size:17px;margin-top:20px}

/* footer: four columns */
.ftr-grid{grid-template-columns:1fr 1fr 1fr auto}
@media (max-width:820px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media print{.hdr,.ftr,.grain,.player{display:none}main{padding-top:0}body{background:#fff;color:#000}.dim,.entry p,.entry .org,.entry .when{color:#444}}
