:root{--ink:#272a2e;--paper:#f3f4f5;--accent:#c7cbd0;--muted:#62676d;--line:#d2d6da}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #59636d;outline-offset:5px}header{height:88px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid var(--line)}.wordmark{font-family:Arial,Helvetica,sans-serif;font-size:20px;font-weight:500;letter-spacing:-.4px;line-height:1.15;text-transform:none}.wordmark span{display:block;font:400 12px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.5px;margin-top:7px;color:var(--muted)}nav{display:flex;gap:32px;font-size:14px}#language{border:1px solid var(--line);border-radius:50%;width:43px;height:43px;background:none}.hero{position:relative;min-height:670px;height:min(780px,85vh);background:#d9d9d8;overflow:hidden}.hero>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}.hero-copy{position:relative;padding:100px 0 90px 6%;max-width:57%}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:500;margin:0 0 25px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Arial,Helvetica,sans-serif;font-weight:400;line-height:1.08;letter-spacing:-2px}h1{font-size:clamp(44px,4.5vw,76px);margin-bottom:26px}h2{font-size:clamp(36px,4.2vw,64px);margin-bottom:28px}em{font-weight:400;color:inherit}.intro{max-width:390px;font-size:17px;margin-bottom:34px}.button{display:inline-block;padding:15px 23px;background:var(--ink);color:white;font-size:14px}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:14px}.hero .text-link{margin-left:20px}.hero-bottom{position:absolute;bottom:24px;left:6%;right:6%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px}.section{padding:100px 6%}.section-heading{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:45px}.section-heading>p{max-width:330px;color:var(--muted);margin-bottom:30px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}.filters button{border:1px solid var(--line);background:none;padding:9px 20px;border-radius:25px;font-size:14px}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 25px}.project{padding:0;border:0;background:none;text-align:left;color:inherit;width:100%}.project-media{position:relative;aspect-ratio:3/4;overflow:hidden;background:#ddd}.project img{width:100%;height:100%;object-fit:cover;transition:transform .55s}.project:hover img{transform:scale(1.035)}.project .open-mark{position:absolute;bottom:18px;right:18px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#f3f4f5e8;font-size:19px}.project-meta{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.project h3{font:27px Arial,Helvetica,sans-serif;margin:5px 0}.portfolio-note{color:var(--muted);font-size:13px;max-width:650px;margin:36px 0 0}.feature{background:var(--paper);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.feature-visual img{display:block;width:100%;max-height:740px;object-fit:cover}.feature h2{font-size:clamp(44px,5vw,74px)}.feature p{max-width:430px}.feature .eyebrow{color:#5c6670}.recognition{border-left:2px solid var(--accent);padding-left:20px;margin:30px 0;font-size:14px;color:var(--muted);max-width:430px}.approach-top{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-bottom:35px}.approach-top>div{max-width:510px}.detail-strip{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:20px}.detail-strip img{width:100%;height:390px;object-fit:cover}.strip-label{display:flex;justify-content:space-between;margin-top:20px;font-size:12px;letter-spacing:1px}.services{background:#e8eaec}.price-row{display:grid;grid-template-columns:.9fr 1.5fr .5fr 36px;gap:30px;border-top:1px solid #c7ccd0;padding:30px 0;align-items:center}.price-row h3{font-size:16px;font-weight:500;margin:0;letter-spacing:1px}.price-row p{margin:0;font-size:14px;max-width:480px}.price{font:28px Arial,Helvetica,sans-serif;white-space:nowrap}.price-row .arrow{font-size:28px}.extra-service{border-top:1px solid #c7ccd0;display:flex;justify-content:space-between;padding-top:25px;font-size:14px}.about{display:grid;grid-template-columns:1fr 1fr;gap:8%;border-bottom:1px solid var(--line)}.large-copy{font:30px/1.35 Arial,Helvetica,sans-serif}.about>div:last-child{max-width:520px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin:50px 0 65px}.step{border-top:1px solid var(--line);padding-top:18px}.step>span{font:400 32px Arial,Helvetica,sans-serif;color:#69727b}.step h3{font-size:18px;margin:20px 0 10px}.step p{font-size:14px;color:var(--muted)}details{border-top:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-size:17px;padding-right:25px}details p{max-width:800px;margin:16px 0 0;color:var(--muted);font-size:15px}.contact{background:var(--accent)}.contact h2{font-size:clamp(43px,6.5vw,95px);max-width:1100px}.contact>p:not(.eyebrow){max-width:530px}.contact-links{display:flex;flex-wrap:wrap;gap:30px;margin-top:38px}.contact-links a{border-bottom:1px solid var(--ink);font-size:20px;padding-bottom:8px}footer{padding:35px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:1px}.skip{position:absolute;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:0}dialog{width:min(1100px,96vw);max-height:94vh;border:0;padding:24px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#111d;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;position:sticky;top:-24px;background:var(--paper);z-index:2;padding:10px 0}#close-viewer{background:none;border:0;font-size:34px;width:44px;height:44px}#viewer-content video{display:block;max-height:73vh;max-width:100%;margin:auto;background:#000}#viewer-content .gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px}#viewer-content img{width:100%;display:block}#viewer-content .case-desc{max-width:780px;margin:0 0 22px}#viewer-content .case-status{font-size:12px;color:var(--muted);margin-bottom:12px}@media(min-width:1500px){.hero-copy{padding-top:135px}}@media(max-width:1000px){.hero{min-height:580px;height:650px}.hero-copy{padding-top:85px;max-width:56%}.hero .text-link{margin:15px 0 0;display:table}.project-grid{grid-template-columns:repeat(2,1fr)}.section{padding:75px 5%}.detail-strip img{height:300px}.price-row{gap:20px}.steps{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){header{height:78px;padding:0 5%}nav{gap:14px;font-size:13px}nav a:nth-child(2),nav a:nth-child(3){display:none}.wordmark{font-size:17px;letter-spacing:-.3px}.hero{height:auto;min-height:0;padding-top:0;background:#dededd}.hero>img{position:relative;height:360px;object-fit:cover;object-position:80% center;display:block}.hero-copy{padding:28px 6% 40px;max-width:none}.hero-copy .eyebrow{font-size:10px;letter-spacing:1.6px}h1{font-size:43px;letter-spacing:-1.5px}.intro{font-size:16px;max-width:100%}.hero .text-link{display:inline-block;margin:14px 0 0 15px}.hero-bottom{display:none}.section{padding:58px 6%}.section-heading{display:block;margin-bottom:25px}.section-heading>p{max-width:100%}.project-grid{gap:28px 13px}.project h3{font-size:22px}.project-meta{font-size:10px;letter-spacing:0;display:block}.project-meta span{display:block}.project .open-mark{width:32px;height:32px;bottom:10px;right:10px}.feature{grid-template-columns:1fr;gap:36px}.feature-visual img{max-height:500px}.feature h2{font-size:49px}.approach-top,.about{grid-template-columns:1fr;gap:16px}.detail-strip{gap:8px}.detail-strip img{height:210px}.strip-label{gap:20px;align-items:start;letter-spacing:0}.price-row{grid-template-columns:1fr auto;gap:12px;padding:24px 0}.price-row p{grid-column:1;grid-row:2}.price-row .price{grid-column:2;grid-row:1;font-size:25px}.price-row .arrow{grid-column:2;grid-row:2}.extra-service{gap:20px}.steps{gap:22px;margin:35px 0}.contact-links{flex-direction:column;align-items:flex-start;gap:20px}.contact-links a{font-size:19px}footer{flex-wrap:wrap;padding:25px 6%}footer>span:last-child{display:none}.gallery{grid-template-columns:1fr!important}dialog{padding:15px}.dialog-top{top:-15px}h2{letter-spacing:-1px}.filters button{padding:8px 14px}.large-copy{font-size:26px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-item{padding:32px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.service-item .eyebrow{color:#5c6670;font-size:12px;margin-bottom:24px}.service-item h3{font:400 28px/1.2 Arial,Helvetica,sans-serif;margin-bottom:20px;overflow-wrap:anywhere}.service-item>p:last-child{font-size:16px;line-height:1.65;color:var(--muted);margin-bottom:0}.service-item:last-child{grid-column:span 2}.service-overview .section-heading{max-width:740px}@media(max-width:1000px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.service-grid{grid-template-columns:1fr}.service-item{padding:28px 22px}.service-item:last-child{grid-column:auto}.service-item h3{font-size:27px}}

.project-cinema .project-media{aspect-ratio:16/9}.project-cinema{grid-column:span 2}@media(min-width:1001px){.project-cinema{grid-column:span 3}}

.folder-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.folder-card .project-media{aspect-ratio:4/5}.folder-card h3{font-size:28px}#folder-label{font-size:30px;margin:0}#folder-viewer .dialog-top{gap:20px}#folder-projects{padding-top:24px}#close-folder{background:none;border:0;font-size:32px;cursor:pointer;color:inherit}.folder-card:focus-visible,.project:focus-visible{outline:2px solid #5c6670;outline-offset:5px}@media(max-width:1000px){.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.folder-card h3{font-size:23px}#folder-label{font-size:26px}}

.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.folder-card .project-media{aspect-ratio:4/3}.folder-card h3{font-size:42px}.folder-card .project-meta{font-size:12px;display:flex;justify-content:space-between}@media(max-width:640px){.folder-grid{grid-template-columns:1fr;gap:30px}.folder-card h3{font-size:32px}.folder-card .project-media{aspect-ratio:4/3}}

.portfolio-controls{margin:35px 0}.portfolio-controls .filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}.portfolio-controls .filters button{border:1px solid var(--line);border-radius:0;background:transparent;padding:11px 18px;font-size:13px;letter-spacing:1px;color:var(--muted)}.portfolio-controls .filters button.active{border-color:#5c6670;color:var(--ink);background:#e0e3e6}.portfolio-controls .media-filters button{font-size:14px;letter-spacing:0;padding:8px 16px}.portfolio-grid .project-media{aspect-ratio:4/5}.more-projects{display:block;margin:36px auto 0;padding:14px 30px;border:1px solid #5c6670;background:transparent;color:inherit;font:inherit;cursor:pointer}.more-projects[hidden]{display:none}.portfolio-controls button:focus-visible{outline:2px solid #5c6670;outline-offset:3px}@media(max-width:640px){.portfolio-controls .filters{gap:8px}.portfolio-controls .filters button{padding:9px 12px;font-size:12px}}

em{font-style:normal}h1,h2{letter-spacing:-.035em;line-height:1.12;overflow-wrap:break-word}.feature h2{font-size:clamp(36px,4.3vw,64px)}@media(max-width:640px){.feature h2{font-size:clamp(30px,8.8vw,43px)}}

.hero{background:var(--paper)}.hero>img{left:auto;right:0;width:43%;height:100%;object-fit:contain;object-position:center;background:#f0eff1}.hero-bottom{right:46%}.hero-bottom>span:last-child{display:none}@media(max-width:640px){.hero>img{width:100%;height:480px;height:min(125vw,560px);object-fit:contain;object-position:center}.hero-copy{background:var(--paper)}}

/* Full-bleed portrait with a shoulder crop and a soft edge into the page. */
.hero{background:#f3f4f5;min-height:680px;height:min(780px,88vh)}
.hero>img{width:52%;height:100%;right:0;top:0;object-fit:cover;object-position:50% 18%;background:transparent;mask-image:linear-gradient(to right,transparent 0%,#000 15%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 15%)}
.hero-copy{max-width:52%;padding-right:3%;padding-top:105px}
.hero h1{font-size:clamp(40px,4.1vw,66px)}
.hero-bottom{right:52%;letter-spacing:1.3px}
@media(max-width:1000px) and (min-width:641px){.hero-copy{padding-top:85px}.hero h1{font-size:42px}.hero>img{object-position:52% 12%}.hero-bottom{font-size:10px;letter-spacing:.5px}}
@media(max-width:640px){.hero{height:auto;min-height:0}.hero>img{position:relative;display:block;width:100%;height:112vw;max-height:510px;object-fit:cover;object-position:50% 18%;mask-image:linear-gradient(to bottom,#000 87%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 87%,transparent 100%)}.hero-copy{max-width:none;padding:16px 6% 40px;background:transparent}.hero h1{font-size:clamp(35px,9vw,43px)}}

.hero{height:auto;min-height:0}.hero-copy{max-width:1100px;padding:90px 6% 105px}.hero h1{font-size:clamp(42px,6vw,88px)}.hero .intro{max-width:650px}.hero-bottom{right:6%}.about{align-items:center}.about-portrait{display:block;width:100%;max-width:460px;aspect-ratio:4/5;height:auto;object-fit:cover;object-position:50% 18%;margin-top:32px}@media(max-width:640px){.hero-copy{padding:50px 6% 55px}.hero h1{font-size:clamp(36px,9vw,48px)}.about-portrait{margin:24px 0 20px;max-width:100%}}

.hero{min-height:700px;height:min(820px,90vh);background:#f3f4f5}.hero>img{position:absolute;right:0;top:0;width:48%;height:100%;object-fit:cover;object-position:50% 42%;mask-image:linear-gradient(to right,transparent,#000 12%);-webkit-mask-image:linear-gradient(to right,transparent,#000 12%)}.hero-copy{max-width:55%;padding:100px 3% 100px 6%}.hero h1{font-size:clamp(40px,4.2vw,68px)}.hero .intro{max-width:470px}.hero-bottom{right:50%}@media(max-width:1000px) and (min-width:641px){.hero-copy{padding-top:70px}.hero h1{font-size:42px}}@media(max-width:640px){.hero{height:auto;min-height:0}.hero>img{position:relative;width:100%;height:145vw;max-height:650px;object-fit:cover;object-position:center 42%;mask-image:linear-gradient(to bottom,#000 92%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 92%,transparent)}.hero-copy{max-width:none;padding:20px 6% 50px}.hero h1{font-size:clamp(36px,9vw,48px)}}

.hero>img{object-position:50% 12%}.hero-copy{max-width:52%;padding-right:3%}@media(max-width:640px){.hero>img{height:112vw;max-height:490px;object-position:50% 12%}.hero-copy{max-width:none;padding-right:6%}}


/* Only the two landscape films use a wide cover. */
.portfolio-grid .project-landscape .project-media{aspect-ratio:16/9}


/* Quiet, consistent typography throughout the portfolio. */
body,button,input,textarea,select,h1,h2,h3,.wordmark,.wordmark span,.project h3,.service-item h3,.folder-card h3,.price,.large-copy,.step>span,footer{
  font-family:"Segoe UI",Arial,Helvetica,sans-serif;
}
h1,h2{font-weight:400;line-height:1.18;letter-spacing:-.025em}
h1{font-size:clamp(2.4rem,4vw,3.6rem)}
.hero h1{font-size:clamp(2.4rem,3.6vw,3.45rem)}
h2{font-size:clamp(2rem,3vw,2.85rem)}
.feature h2{font-size:clamp(2rem,3.2vw,2.9rem)}
.contact h2{font-size:clamp(2.35rem,4.5vw,3.8rem)}
.project h3{font-size:1.3rem;line-height:1.3}
.service-item h3{font-size:1.35rem;line-height:1.3}
.folder-card h3{font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.25}
#folder-label{font-size:1.6rem}
.large-copy{font-size:1.5rem;line-height:1.45}
.price{font-size:1.45rem}
@media(max-width:640px){
  .hero h1{font-size:clamp(2.15rem,8vw,2.65rem)}
  h2{font-size:clamp(1.8rem,7vw,2.2rem)}
  .feature h2{font-size:clamp(1.85rem,7vw,2.2rem)}
  .contact h2{font-size:clamp(2rem,8vw,2.6rem)}
  .project h3{font-size:1.2rem}
  .folder-card h3{font-size:1.5rem}
  .large-copy{font-size:1.35rem}
}

/* Type pairing from the supplied references: classic serif headings, clean sans text. */
h1,h2,h3,.project h3,.service-item h3,.folder-card h3,.step h3,.price-row h3{
  font-family:"Times New Roman",Georgia,serif;
  font-weight:400;
}
h1,h2{letter-spacing:-.01em}

.about-portrait{object-position:78% center}

/* Front-facing editorial portrait for the opening screen. */
.hero>img{object-position:73% 44%}
@media(max-width:640px){.hero>img{object-position:73% 44%}}

/* Align portfolio cards and give every vertical film the same cover ratio. */
.portfolio-grid .project{align-self:start}
.portfolio-grid .project-video:not(.project-landscape) .project-media{aspect-ratio:9/16}
