:root{--ink:#080808}
.project-contact{width:min(680px,calc(100vw - 28px));max-height:90svh;padding:30px;background:#111112;border:1px solid #424242;color:#eeeae4;overflow:auto}
.project-contact-close{display:block;margin:0 0 22px auto;background:none;border:0;padding:8px 0;font-size:12px}
.project-contact-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#aaa}
.project-contact h2{font-size:clamp(27px,4vw,39px);font-weight:500;letter-spacing:-.04em;margin:15px 0}
.project-contact-offer{font-size:13px;line-height:1.6;color:#c9c6bd;margin-bottom:25px}
.project-contact label{display:block;font-size:12px;margin-bottom:10px}
.project-contact textarea{display:block;width:100%;resize:vertical;min-height:180px;padding:14px;background:#1a1a1b;color:#eeeae4;border:1px solid #555;font:400 14px/1.65 Arial,Helvetica,sans-serif}
.project-contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}
.project-contact-actions>a,.project-contact-actions>button{padding:13px 15px;border:1px solid #555;background:transparent;font-size:12px;color:#eeeae4;line-height:1.4}
.project-contact-actions .project-email{background:#e8e5dd;color:#111;border-color:#e8e5dd}
.project-contact-actions>a:hover,.project-contact-actions>button:hover{opacity:.8}
.project-contact-help,.project-contact-status{font-size:12px;line-height:1.6;margin:18px 0 0;color:#bdbbb5}
.project-contact-status:empty{display:none}
@media(max-width:650px){.project-contact{padding:22px}.project-contact textarea{font-size:16px}.project-contact-actions{gap:9px}.project-contact-actions>a,.project-contact-actions>button{min-height:44px}}
.navigation{position:fixed;transition:transform .3s ease,opacity .3s ease,visibility .3s;pointer-events:none}
.navigation a{pointer-events:auto}
.navigation.nav-hidden{transform:translateY(-120%);opacity:0;visibility:hidden}
.navigation.is-returning .brand{visibility:hidden;pointer-events:none}
.navigation.is-returning nav{background:rgba(8,8,8,.82);padding:15px 18px;backdrop-filter:blur(12px)}
.player-navigation{clear:both;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:18px}
.player-navigation button{background:none;border:0;padding:12px 0;font-size:12px}
.player-navigation button:hover{text-decoration:underline;text-underline-offset:5px}
.player-navigation span{font-size:10px;white-space:nowrap;color:#b7b7b2}
.project-index{padding:65px 7vw 85px}
.index-heading{margin-bottom:32px}
.index-heading>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#c9c8c3}
.index-heading h2{font-size:clamp(32px,4vw,58px);font-weight:500;letter-spacing:-.045em;margin:18px 0 0}
.index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px}
.index-card{display:grid;grid-template-columns:auto 1fr auto;gap:9px;text-align:left;border:0;background:none;padding:0;min-width:0;align-items:baseline}
.index-card img{grid-column:1/-1;display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:rgba(0,0,0,.3);filter:grayscale(.85) brightness(.75);transition:filter .4s}
.index-card:hover img,.index-card:focus-visible img{filter:none}
.index-visual{grid-column:1/-1;display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:rgba(0,0,0,.3)}
.index-visual img{transition:filter .4s,opacity .3s}
.index-visual video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .3s;pointer-events:none;filter:none}
.index-card.is-previewing .index-visual video{opacity:1}
.index-card.is-previewing .index-visual img{opacity:0}
.index-number{font-size:10px;color:#999}
.index-name{font-size:12px;line-height:1.45}
.index-open{font-size:14px}
@media(max-width:650px){.project-index{padding:50px 22px 65px}.index-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.index-name{font-size:11px}.index-card{gap:6px}.player-navigation{gap:8px}.player-navigation button{font-size:11px}.navigation.is-returning nav{padding:14px}}
body{background:var(--ink);isolation:isolate}
main,footer{position:relative;z-index:1}
.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:.05em;margin-top:9px;text-transform:uppercase}

/* Background sits above the body paint and below every section. */
.ambient-background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:#030509}
.ambient-background canvas{display:block;position:absolute;inset:0;width:100%;height:100%}

/* Home: fill both edges by stretching width; preserve the entire height. */
.hero{background:#080808}
.hero>video{object-fit:fill;transform:none;filter:none}
.hero>.hero-clip{opacity:0;pointer-events:none}
.hero>.hero-clip.is-current{opacity:1}
.hero-bottom{align-items:flex-end;line-height:1.5}
.hero-bottom>a{text-align:right}
.hero .texture{opacity:.045}
.hero .shade{background:linear-gradient(0deg,rgba(0,0,0,.5),transparent 55%,rgba(0,0,0,.22))}
.hero-controls{position:absolute;z-index:3;right:4vw;bottom:90px;display:flex;align-items:center;gap:22px}
.hero-controls span{font-size:10px;letter-spacing:.1em;margin-right:10px}
.hero-controls button{border:0;background:none;padding:8px 0;font-size:29px;transition:opacity .2s,transform .25s}
.hero-controls button:hover{opacity:.65;transform:translateX(4px)}
.hero-controls button:first-of-type:hover{transform:translateX(-4px)}

.section-break{padding:75px 7vw 65px}
.section-break>span,.section-label>span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#d0d0cb}
.section-break h2,.section-label h2,.pricing-heading h2{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:600;letter-spacing:-.045em;line-height:1.04}
.section-break h2{font-size:clamp(40px,6vw,80px);margin:26px 0}
.craft-list{display:flex;flex-wrap:wrap;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#c9c8c3}
.craft-list span+span::before{content:'/';margin:0 18px;opacity:.6}
.films{padding:0;background:transparent}
.film-card{height:clamp(250px,27vw,400px);min-height:0;max-height:none;aspect-ratio:auto;margin:0 0 12px;border:0;overflow:hidden;transition:height .7s cubic-bezier(.2,.75,.2,1);isolation:isolate}
.film-card:hover{height:min(61.5svh,calc(var(--preview-height,56.25vw) * .75));min-height:300px;transform:none;z-index:2}
.film-card>:is(video,.preview-poster){object-fit:cover;transform:scale(1.015);filter:grayscale(.78) brightness(.65) contrast(1.16);transition:filter .65s,transform .85s cubic-bezier(.2,.75,.2,1)}
.film-card:hover>:is(video,.preview-poster){filter:none;object-fit:cover;transform:scale(1.025)}
.film-card .texture{opacity:.17;mix-blend-mode:soft-light;transition:opacity .6s}
.film-card:hover .texture{opacity:0}
.film-card .shade{background:linear-gradient(0deg,rgba(0,0,0,.62),rgba(0,0,0,.12) 65%,transparent);opacity:.85;transition:opacity .5s}
.film-card:hover .shade{opacity:.5}
.card-caption{left:4vw;bottom:30px;max-width:75%;padding-left:17px;border-left:2px solid rgba(255,255,255,.65);transition:border-color .4s,transform .5s}
.film-card:hover .card-caption,.vertical-card:hover .card-caption{transform:translateX(7px);border-left-color:#fff}
.card-caption h3{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:500;letter-spacing:-.045em;line-height:1.03;font-size:clamp(30px,4vw,60px);margin:13px 0 0;text-shadow:0 2px 15px rgba(0,0,0,.35)}
.card-caption>span{font-size:10px;letter-spacing:.2em;font-weight:600}
.film-card .play-symbol{font-size:12px;letter-spacing:.04em}

.section-label{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:60px 0;margin:0 7vw;border:0;min-height:0}
.section-label h2{font-size:clamp(32px,4vw,58px);margin:0;line-height:1}
.verticals{padding-bottom:0}
.vertical-grid{padding:0;gap:12px;background:transparent;border:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.vertical-card{isolation:isolate;height:auto;min-height:0;aspect-ratio:9/16}
.vertical-card>:is(video,.preview-poster){object-fit:cover;transform:scale(1.01);filter:grayscale(.8) brightness(.66) contrast(1.15);transition:filter .6s,transform .8s}
.vertical-card:hover>:is(video,.preview-poster){filter:none;transform:scale(1.09)}
.vertical-card::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='white' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");opacity:.14;mix-blend-mode:soft-light;transition:opacity .5s}
.vertical-card:hover::after{opacity:0}
.vertical-card h3,.invitation .card-caption h3{font-size:clamp(22px,2.7vw,38px);letter-spacing:-.04em}
.vertical-card .card-caption{left:18px;bottom:24px;padding-left:12px;max-width:85%}
.invitation .card-caption{border-left-color:rgba(0,0,0,.5)}
.invitation{grid-column:auto;aspect-ratio:9/16;min-height:0;background:#dedbd4}

/* Pricing: contained lift, monochrome preview, colour at hover. */
.pricing{padding-top:75px}
.pricing-heading{padding:0 7vw 55px}
.pricing-heading h2{font-size:clamp(48px,7vw,100px)}
.price-grid{padding:12px;gap:12px;background:transparent;overflow:visible}
.price-card{height:540px;min-height:0;transform:none;transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.price-card>:is(video,.preview-poster){object-fit:cover;filter:grayscale(1) brightness(.55);transform:scale(1.04);transition:filter .65s,transform .9s}
.price-card:hover{transform:translateY(-8px);z-index:3;box-shadow:0 15px 40px rgba(0,0,0,.4)}
.price-card:hover>:is(video,.preview-poster){filter:none;transform:scale(1.13)}
.price-copy h3{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:clamp(38px,4vw,58px);font-weight:600;letter-spacing:-.04em;margin:auto 0 20px}
.price-copy p{max-width:280px;margin-bottom:32px}
.budget{padding:75px 10vw 90px}
.budget h3{font-size:clamp(36px,5vw,70px)}
.contact .texture{opacity:.06}
.contact .shade{background:rgba(0,0,0,.3)}
.contact-icons{position:absolute;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;gap:65px}
.contact-icons>a{display:grid;place-items:center;width:84px;height:84px;color:#fff;transition:opacity .25s,transform .25s}
.contact-icons>a:hover{opacity:.8;transform:translateY(-5px)}
.contact-icons svg{display:block;width:62px;height:62px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}

.solid-logo{animation:smooth-orbit 3.6s cubic-bezier(.3,.05,.2,1) both;will-change:transform;backface-visibility:hidden}
.solid-logo span{text-shadow:none}
.solid-logo span:nth-child(16){color:#efede7}
.logo-orbit{position:absolute;left:-4%;top:12%;width:108%;height:76%;border:2px solid #b4b1a9;border-radius:50%;transform:rotateX(58deg) rotateZ(-15deg);transform-style:preserve-3d;box-shadow:0 2px 0 #555,0 -2px 0 #666}
@keyframes smooth-orbit{from{transform:rotateX(0) rotateY(-360deg)}to{transform:rotateX(0) rotateY(0)}}
.film-cursor{position:fixed;left:0;top:0;z-index:50;pointer-events:none;opacity:0;visibility:hidden;padding:14px 18px;border-radius:40px;background:rgba(239,236,230,.95);color:#101010;font-size:11px;font-weight:600;letter-spacing:.015em;white-space:nowrap;box-shadow:0 4px 25px rgba(0,0,0,.18);transition:opacity .15s,visibility .15s;will-change:transform}
.film-cursor.is-visible{opacity:1;visibility:visible}
footer{border-top:0}
@media(hover:hover) and (pointer:fine){.film-card,.vertical-card[data-file]{cursor:none}.film-card:hover .play-symbol,.vertical-card[data-file]:hover .play-symbol{opacity:0}}
@media(max-width:650px){.section-break{padding:55px 22px}.films{padding:0}.film-card{height:230px;min-height:0;border:0;margin-bottom:10px}.film-card:hover{height:min(56.25svh,calc(var(--preview-height,70vw) * .75));min-height:250px}.film-card .card-caption{left:18px;bottom:20px}.film-card .play-symbol{right:15px;bottom:20px;font-size:9px}.card-caption h3{font-size:27px}.card-caption>span{font-size:8px}.section-label{padding:45px 0;margin:0 22px;gap:20px}.vertical-grid{grid-template-columns:repeat(2,1fr);gap:10px;border:0}.vertical-card h3,.invitation .card-caption h3{font-size:23px}.price-grid{grid-template-columns:1fr;padding:10px;gap:10px}.price-card{height:460px}.pricing-heading{padding:0 22px 45px}.pricing-heading h2{margin-top:30px}.contact{min-height:500px}.hero-controls{right:18px;bottom:95px}.brand small{font-size:7px;letter-spacing:0}.navigation{align-items:flex-start}.craft-list{font-size:10px}.craft-list span+span::before{margin:0 12px}.contact-icons{gap:40px}.contact-icons svg{width:54px;height:54px}}
@media(prefers-reduced-motion:reduce){.solid-logo,.ambient-background i,.ambient-background span{animation:none}.film-card:hover{height:clamp(250px,27vw,400px);min-height:0}.price-card:hover{transform:none}}

/* Home controls and inactivity treatment. */
.brand{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:600;font-size:14px;letter-spacing:-.025em;line-height:1.15}
.brand small{font-family:inherit;font-size:9px;font-weight:400;letter-spacing:.06em}
.hero-controls{left:50%;right:auto;bottom:28px;transform:translateX(-50%);gap:34px}
.hero-controls>span{position:absolute;bottom:51px;left:50%;transform:translateX(-50%);margin:0;white-space:nowrap}
.hero>video{transition:filter 1s ease}
.hero.is-idle>video{filter:grayscale(.78) brightness(.65) contrast(1.16)}
.hero .texture{transition:opacity 1s ease}
.hero.is-idle .texture{opacity:.17}
@media(hover:hover) and (pointer:fine){.hero.is-idle,.hero.is-idle button,.hero.is-idle a{cursor:none}}

/* Transparent viewfinder follows the pointer without covering the picture. */
.film-cursor{padding:0;width:0;height:0;border:0;border-radius:0;background:none;color:#fff;box-shadow:none;font-weight:500;overflow:visible}
.cursor-reticle{position:absolute;left:-11px;top:-11px;display:block;width:22px;height:22px;border:0;border-radius:0;color:rgba(255,255,255,.9);background:linear-gradient(currentColor,currentColor) center top/1px 5px no-repeat,linear-gradient(currentColor,currentColor) center bottom/1px 5px no-repeat,linear-gradient(currentColor,currentColor) left center/5px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/5px 1px no-repeat;filter:drop-shadow(0 1px 2px rgba(0,0,0,.75))}
.cursor-reticle::before,.cursor-reticle::after{content:none}
.cursor-reticle i{position:absolute;width:2px;height:2px;border-radius:50%;background:currentColor;top:10px;left:10px}
.cursor-label{position:absolute;left:21px;top:19px;font-size:10px;letter-spacing:.06em;text-shadow:0 1px 5px #000;white-space:nowrap}
.film-cursor.is-left .cursor-label{right:21px;left:auto}
.film-cursor.is-above .cursor-label{bottom:19px;top:auto}

.price-copy h3{font-size:clamp(27px,3vw,43px);line-height:1.08;letter-spacing:-.035em}
.price-card:first-child .price-copy h3{font-size:clamp(26px,2.6vw,37px)}
.budget .budget-emphasis{font-size:16px;line-height:1.7;max-width:650px;font-weight:600}
.budget-emphasis u{text-decoration-thickness:1.5px;text-underline-offset:5px;text-decoration-skip-ink:auto}
.contact{height:100svh;min-height:500px}
.contact>:is(video,.preview-poster){inset:0;width:100%;height:100%;object-fit:cover;transform:none}
.contact-footer{position:absolute;bottom:0;left:0;right:0;z-index:4;margin:0;background:transparent;border:0;padding:30px 4vw;text-shadow:0 1px 6px #000}
@media(max-width:650px){.brand{font-size:11px}.brand small{font-size:7px}.hero-controls{right:auto;bottom:28px}.hero-bottom{bottom:110px}.price-copy h3,.price-card:first-child .price-copy h3{font-size:31px}.contact-footer{padding:25px 18px;align-items:flex-end;font-size:8px}.contact-footer>span{max-width:65%;line-height:1.5}.budget .budget-emphasis{font-size:14px}}

/* Fixed, grain-textured mark fades to black before revealing the site. */
.intro{background:#000;transition:opacity 1.4s cubic-bezier(.4,0,.2,1),visibility 1.4s}
.solid-logo{display:grid;place-items:center;animation:none;transform:none;will-change:opacity;font-family:'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:clamp(120px,28vw,430px);font-weight:800;letter-spacing:-.09em;line-height:1;color:#e9e7e0;isolation:isolate;position:relative;transition:opacity 1.35s cubic-bezier(.4,0,.2,1)}
.solid-logo::after{content:'370';position:absolute;inset:0;display:grid;place-items:center;font:inherit;letter-spacing:inherit;color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='white' filter='url(%23g)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-clip:text;-webkit-background-clip:text;opacity:.65;pointer-events:none}
.intro>span{transition:opacity 1.35s cubic-bezier(.4,0,.2,1)}
.intro.fade-logo .solid-logo,.intro.fade-logo>span{opacity:0}
.card-caption h3{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:13px;row-gap:5px}
.card-caption .release-year{font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:400;letter-spacing:.06em;line-height:1.2;opacity:.7;text-shadow:0 1px 6px rgba(0,0,0,.6);white-space:nowrap}
@media(max-width:650px){.card-caption .release-year{font-size:9px}.card-caption h3{column-gap:9px}}

.preview-poster{display:block;width:100%;height:100%;object-fit:cover}
.preview-poster+video:not(.has-frame){opacity:0}
