*{box-sizing:border-box}
:root{
  --black:#11110f;
  --white:#fbfbf9;
  --paper:#f3f3f0;
  --muted:#74746f;
  --line:#d8d8d2;
  --max:1180px;
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--black);font-family:"DM Sans",Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button{font:inherit}
.container{width:min(var(--max),calc(100% - 64px));margin:0 auto}

.header{position:sticky;top:0;z-index:100;background:rgba(251,251,249,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(17,17,15,.09)}
.nav{height:74px;display:flex;align-items:center;justify-content:space-between}
.logo{font-size:20px;font-weight:700;letter-spacing:-.8px}
.logo span{font-weight:400;color:#777}
.nav-menu{display:flex;align-items:center;gap:34px;font-size:13px}
.nav-menu>a:not(.nav-contact){color:#666}
.nav-menu>a:not(.nav-contact):hover{color:#111}
.nav-contact{border-bottom:1px solid #111;padding-bottom:2px}
.menu-button{display:none;width:38px;height:38px;border:1px solid var(--line);background:transparent;padding:10px;cursor:pointer}
.menu-button span{display:block;width:16px;height:1px;background:#111;margin:4px auto;transition:.2s}

.hero{border-bottom:1px solid var(--line);padding:120px 0 110px}
.hero-inner{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:100px}
.kicker{font-size:10px;font-weight:700;letter-spacing:2px;color:#777;margin:0 0 20px}
.hero h1{font-size:clamp(48px,6.7vw,82px);line-height:.99;letter-spacing:-4px;font-weight:600;max-width:900px;margin:0}
.hero h1 em{font-style:normal;color:#777}
.hero-description{max-width:600px;color:#666;font-size:16px;line-height:1.7;margin:28px 0 34px}
.hero-actions{display:flex;align-items:center;gap:28px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:14px 18px;font-size:12px;font-weight:600;border:1px solid var(--black);transition:background .2s,color .2s}
.button.dark{background:var(--black);color:#fff}.button.dark:hover{background:#333}
.button.light{background:#fff;color:#111;border-color:#fff}.button.light:hover{background:#e9e9e5}
.quiet-link{font-size:12px;color:#777}.quiet-link span{color:#111;border-bottom:1px solid #111;padding-bottom:2px}
.hero-side{border-left:1px solid var(--line);padding-left:28px;margin-top:6px;min-height:260px;display:flex;flex-direction:column}
.side-label{display:flex;flex-direction:column;gap:4px;font-size:9px;letter-spacing:1.6px;color:#888}
.side-label strong{color:#111;font-size:10px}
.side-line{height:1px;background:var(--line);margin:24px 0}
.hero-side p{font-size:13px;color:#666;line-height:1.9;margin:0}
.side-bottom{margin-top:auto;padding-top:25px;font-size:10px;color:#999}

.section{padding:110px 0}
.section-top{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:40px}
.section-top h2,.about h2{font-size:46px;letter-spacing:-2.5px;line-height:1.08;margin:0;font-weight:600}
.section-intro{max-width:280px;color:#777;font-size:13px;text-align:right}

.work-controls{display:flex;gap:6px;margin-bottom:30px}
.filter{background:transparent;border:1px solid var(--line);color:#777;padding:8px 14px;font-size:11px;cursor:pointer}
.filter.active,.filter:hover{background:#111;color:#fff;border-color:#111}

.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 28px}
.work-item.hidden{display:none}
.video{position:relative;background:#e8e8e4;overflow:hidden}
.video.landscape{aspect-ratio:16/9}
.video.portrait{aspect-ratio:9/16;width:min(100%,350px)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.short-item{display:flex;flex-direction:column;align-items:flex-start}
.short-item .work-meta{width:min(100%,350px)}
.work-meta{padding-top:14px}
.work-meta span{font-size:9px;letter-spacing:1.4px;color:#888}
.work-meta h3{font-size:16px;font-weight:500;margin:3px 0 0}

.statement{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:100px 0}
.statement-inner{max-width:900px;margin:0 auto}
.statement h2{font-size:clamp(38px,5vw,64px);line-height:1.08;letter-spacing:-3px;font-weight:500;margin:0}
.statement h2 span{color:#888}

.services{background:var(--white)}
.service-list{border-top:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:70px 1fr 30px;gap:25px;align-items:start;padding:29px 0;border-bottom:1px solid var(--line)}
.service-row>span{font-size:10px;color:#999;padding-top:5px}
.service-row h3{font-size:20px;font-weight:500;margin:0 0 6px}
.service-row p{font-size:13px;color:#777;max-width:600px;margin:0}
.service-row strong{font-weight:400;color:#777}

.about{background:var(--paper)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.about-copy{max-width:520px}
.about-copy p{font-size:15px;color:#666;line-height:1.8;margin:0 0 18px}
.signature{font-size:25px;font-weight:600;letter-spacing:-1px;margin-top:35px}

.contact{padding-top:90px;padding-bottom:90px}
.contact-box{background:#11110f;color:#fff;padding:62px;display:flex;align-items:center;justify-content:space-between;gap:60px}
.contact-box h2{font-size:clamp(38px,4.7vw,58px);line-height:1.04;letter-spacing:-2.5px;font-weight:500;max-width:700px;margin:0}
.contact-box>div>p:last-child{font-size:13px;color:#aaa;margin:17px 0 0}
.footer{border-top:1px solid var(--line);padding:24px 0;font-size:11px;color:#888}
.footer-inner{display:flex;justify-content:space-between}
.footer strong{color:#111;font-weight:600}.footer span{color:#888}

@media(max-width:900px){
  .container{width:min(var(--max),calc(100% - 40px))}
  .hero{padding:90px 0}.hero-inner{grid-template-columns:1fr;gap:55px}.hero-side{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;min-height:auto}.side-bottom{margin-top:25px}
  .section{padding:85px 0}.section-top{display:block}.section-intro{text-align:left;margin-top:12px}
  .about-grid{gap:50px}
  .contact-box{padding:48px}
}

@media(max-width:680px){
  .container{width:calc(100% - 28px)}
  .nav{height:66px}.menu-button{display:block}.nav-menu{display:none;position:absolute;top:66px;left:14px;right:14px;background:#fbfbf9;border:1px solid var(--line);padding:8px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 15px 40px rgba(0,0,0,.06)}
  .nav-menu.open{display:flex}.nav-menu a{padding:12px 10px}.nav-contact{margin-top:3px;text-align:center;border:1px solid #111!important}
  .hero{padding:70px 0 65px}.hero-inner{gap:45px}.hero h1{font-size:clamp(43px,13vw,60px);letter-spacing:-2.8px}.hero-description{font-size:14px;margin:22px 0 28px}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:20px}
  .hero-side{display:grid;grid-template-columns:1fr 1fr;gap:15px}.side-line{display:none}.side-bottom{grid-column:1/-1}
  .section{padding:70px 0}.section-top h2,.about h2{font-size:37px;letter-spacing:-2px}
  .work-controls{overflow:auto;padding-bottom:2px}.filter{white-space:nowrap}
  .work-grid{grid-template-columns:1fr;gap:40px}.work-item{width:100%}
  .video.landscape{aspect-ratio:16/10}
  .short-item{align-items:center}.video.portrait{width:min(100%,300px)}
  .statement{padding:70px 0}.statement h2{font-size:38px;letter-spacing:-2px}
  .service-row{grid-template-columns:36px 1fr 20px;gap:12px}.service-row h3{font-size:18px}.service-row p{font-size:12px}
  .about-grid{grid-template-columns:1fr;gap:30px}.about-copy p{font-size:14px}
  .contact{padding:65px 0}.contact-box{display:block;padding:38px 24px}.contact-box h2{font-size:38px}.contact-box .button{margin-top:30px}
  .footer-inner{font-size:10px}
}


/* =========================================================
   Selected Work — editorial light-mode portfolio layout
   ========================================================= */
.work{background:#fafaf8;padding-top:96px}
.portfolio-shell{
  border:1px solid #dddde4;
  border-radius:20px;
  background:#fff;
  padding:52px 40px 42px;
  overflow:hidden;
}
.short-form-shell{margin-top:30px}
.portfolio-heading{text-align:center;max-width:760px;margin:0 auto 34px}
.portfolio-heading .kicker{margin-bottom:13px}
.portfolio-heading h2{
  font-size:clamp(34px,4.2vw,52px);
  line-height:1.02;
  letter-spacing:-2.8px;
  margin:0;
  font-weight:600;
}
.portfolio-heading p:not(.kicker){
  color:#777;
  font-size:13px;
  max-width:690px;
  margin:13px auto 16px;
}
.portfolio-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#111;
  font-size:11px;
  font-weight:600;
  padding:8px 13px;
  border:1px solid #d9d9df;
  border-radius:999px;
  background:#fff;
  transition:.2s ease;
}
.portfolio-link:hover{border-color:#111;background:#111;color:#fff}
.portfolio-link span{font-size:13px}
.long-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.video-card,.short-video-card{
  appearance:none;
  border:0;
  padding:0;
  margin:0;
  background:#eee;
  cursor:pointer;
  position:relative;
  display:block;
  overflow:hidden;
  text-align:left;
}
.video-card{
  aspect-ratio:16/9;
  border-radius:17px;
}
.video-card img,.short-video-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease,filter .35s ease;
}
.video-card:hover img,.short-video-card:hover img{
  transform:scale(1.025);
  filter:brightness(.9);
}
.play-button{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:56px;
  height:40px;
  border-radius:10px;
  display:grid;
  place-items:center;
  padding-left:2px;
  color:#fff;
  background:rgba(20,20,20,.72);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  font-size:14px;
  backdrop-filter:blur(6px);
  transition:transform .2s ease,background .2s ease;
}
.video-card:hover .play-button,.short-video-card:hover .play-button{
  transform:translate(-50%,-50%) scale(1.07);
  background:rgba(20,20,20,.86);
}
.short-form-wrap{position:relative}
.short-form-track{
  display:flex;
  gap:9px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 3px 8px;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.short-form-track::-webkit-scrollbar{display:none}
.short-video-card{
  flex:0 0 205px;
  aspect-ratio:9/15.8;
  border-radius:12px;
  scroll-snap-align:start;
}
.short-gradient{
  position:absolute;
  left:0;right:0;bottom:0;height:38%;
  background:linear-gradient(transparent,rgba(0,0,0,.34));
  pointer-events:none;
}
.play-button.small{
  width:45px;
  height:34px;
  border-radius:9px;
  font-size:11px;
}
.scroll-arrow{
  position:absolute;
  z-index:3;
  top:50%;
  transform:translateY(-50%);
  width:42px;
  height:42px;
  border:1px solid #d8d8df;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  color:#111;
  cursor:pointer;
  box-shadow:0 8px 25px rgba(20,20,30,.1);
}
.scroll-arrow:hover:not(:disabled){background:#111;color:#fff;border-color:#111}
.scroll-arrow:disabled{opacity:.35;cursor:default}
.scroll-left{left:13px}
.scroll-right{right:13px}
.video-modal{
  position:fixed;
  inset:0;
  z-index:500;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .2s ease,visibility .2s ease;
}
.video-modal.is-open{opacity:1;visibility:visible}
.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(18,18,18,.72);
  backdrop-filter:blur(7px);
}
.modal-content{
  position:relative;
  z-index:2;
  width:min(1050px,94vw);
  background:#111;
  padding:10px;
  border-radius:15px;
  box-shadow:0 25px 90px rgba(0,0,0,.35);
}
.modal-video{aspect-ratio:16/9;background:#000}
.modal-video iframe{width:100%;height:100%;border:0}
.modal-close{
  position:absolute;
  z-index:3;
  right:-14px;
  top:-14px;
  width:38px;
  height:38px;
  border:1px solid #ddd;
  border-radius:50%;
  background:#fff;
  color:#111;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
body.modal-open{overflow:hidden}

/* Keep the rest of the site light and consistent with the new portfolio section. */
@media(max-width:900px){
  .portfolio-shell{padding:42px 24px 30px}
  .long-form-grid{gap:8px}
  .short-video-card{flex-basis:190px}
}
@media(max-width:680px){
  .work{padding-top:70px}
  .portfolio-shell{padding:34px 13px 22px;border-radius:16px}
  .portfolio-heading{padding:0 7px;margin-bottom:27px}
  .portfolio-heading h2{font-size:35px;letter-spacing:-2px}
  .portfolio-heading p:not(.kicker){font-size:12px;line-height:1.6}
  .long-form-grid{grid-template-columns:1fr;gap:8px}
  .video-card{border-radius:13px}
  .short-form-shell{margin-top:20px}
  .short-video-card{flex-basis:164px;border-radius:10px}
  .scroll-arrow{display:none}
  .modal-content{width:96vw;padding:5px;border-radius:10px}
  .modal-close{right:-7px;top:-14px;width:34px;height:34px}
}


/* =========================================================
   Selected Work refinement — centered short-form rail
   ========================================================= */
.short-form-wrap{
  width:100%;
  max-width:1000px;
  margin:0 auto;
  position:relative;
}
.short-form-track{
  width:100%;
  max-width:900px;
  margin:0 auto;
  justify-content:center;
  align-items:flex-start;
  overflow-x:auto;
  padding:0 6px 10px;
}
.short-video-card{
  flex:0 0 205px;
  width:205px;
}
.short-form-shell .portfolio-heading{
  margin-bottom:32px;
}
.short-form-shell{
  padding-bottom:38px;
}
@media (min-width:1100px){
  .short-form-track{
    overflow-x:hidden;
  }
}
@media (max-width:1099px) and (min-width:681px){
  .short-form-track{
    justify-content:flex-start;
    max-width:900px;
  }
}
@media (max-width:680px){
  .short-form-wrap{
    max-width:100%;
  }
  .short-form-track{
    max-width:100%;
    justify-content:flex-start;
    padding-left:2px;
    padding-right:2px;
    scroll-padding-left:2px;
  }
  .short-video-card{
    flex:0 0 164px;
    width:164px;
  }
}


/* =========================================================
   Final Selected Work refinement
   - Four larger short-form cards across the full line
   - Embedded mobile-friendly video playback
   ========================================================= */
.short-form-wrap{
  width:100%;
  max-width:none;
  margin:0 auto;
}
.short-form-track{
  width:100%;
  max-width:none;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  overflow:visible;
  padding:0;
  justify-content:initial;
}
.short-video-card{
  width:100%;
  min-width:0;
  flex:none;
  aspect-ratio:9/15.8;
  border-radius:14px;
}
.short-form-shell .portfolio-heading{
  margin-bottom:32px;
}
.scroll-arrow{
  display:none;
}

/* Make the modal player stay inside the page on mobile instead of
   handing playback to the YouTube app. */
.modal-video{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
}
.modal-video iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

@media(max-width:900px) and (min-width:681px){
  .short-form-track{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
  }
}

@media(max-width:680px){
  .short-form-track{
    display:flex;
    width:100%;
    max-width:none;
    gap:10px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0 2px 8px;
    justify-content:flex-start;
    scroll-snap-type:x mandatory;
  }
  .short-video-card{
    flex:0 0 calc((100vw - 58px) / 2);
    width:calc((100vw - 58px) / 2);
    max-width:190px;
    border-radius:12px;
    scroll-snap-align:start;
  }
  .video-modal{
    padding:12px;
  }
  .modal-content{
    width:100%;
  }
  .modal-video{
    aspect-ratio:16/9;
  }
}


/* =========================================================
   Final mobile optimization
   Short-form content: 2 x 2 grid, no horizontal scrolling
   ========================================================= */
@media (max-width:680px){
  .short-form-wrap{
    width:100%;
    overflow:visible;
  }

  .short-form-track{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
    max-width:100%;
    overflow:visible;
    padding:0;
    margin:0;
    scroll-snap-type:none;
  }

  .short-video-card{
    width:100%;
    min-width:0;
    max-width:none;
    flex:none;
    aspect-ratio:9/15.8;
    border-radius:11px;
    scroll-snap-align:none;
  }

  .short-form-track::-webkit-scrollbar{
    display:none;
  }

  .short-form-shell{
    overflow:hidden;
  }

  .portfolio-shell{
    width:100%;
  }

  .portfolio-heading h2{
    font-size:34px;
    line-height:1.05;
  }

  .portfolio-heading p:not(.kicker){
    max-width:330px;
  }

  .play-button.small{
    width:40px;
    height:31px;
    font-size:10px;
  }
}

@media (max-width:380px){
  .portfolio-shell{
    padding-left:10px;
    padding-right:10px;
  }

  .short-form-track{
    gap:7px;
  }

  .short-video-card{
    border-radius:9px;
  }

  .portfolio-heading h2{
    font-size:31px;
  }
}
