:root{--ink:#0a0a0a;--paper:#f3f3f0;--acid:#b7ff16;--orange:#ff3b0a;--line:rgba(10,10,10,.2)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"HarmonyOS Sans SC",sans-serif;cursor:none;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.loader{position:fixed;inset:0;background:#050505;color:#fff;z-index:9999;display:grid;place-items:center;transition:clip-path 1s cubic-bezier(.8,0,.2,1);clip-path:inset(0)}.loader.done{clip-path:inset(0 0 100% 0)}.loader-mark{font-size:clamp(4rem,15vw,14rem);font-weight:700;letter-spacing:-.09em}.loader-mark span{font-size:.15em;font-weight:600;vertical-align:top}.loader-line{position:absolute;left:5vw;right:5vw;bottom:7vh;height:1px;background:#333}.loader-line i{display:block;height:100%;width:0;background:var(--acid)}.loader b{position:absolute;left:5vw;bottom:9vh;font-size:11px;letter-spacing:.2em}.loader em{font-style:normal}.cursor{position:fixed;width:34px;height:34px;border:1px solid rgba(255,255,255,.65);border-radius:50%;z-index:9000;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width .2s,height .2s}.cursor i:before,.cursor i:after{content:"";position:absolute;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%)}.cursor i:before{width:12px;height:1px}.cursor i:after{width:1px;height:12px}.cursor.big{width:76px;height:76px}.nav{position:absolute;z-index:50;top:0;left:0;right:0;height:108px;color:#fff;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:18px 2vw;font-size:13px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800}.brand-grid{font-size:10px;line-height:.5;color:var(--acid)}nav{display:flex;justify-content:center;gap:6vw}nav a{position:relative;padding:12px 0}nav a:after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:1px;background:currentColor;transition:.35s}nav a:hover:after{right:0}sup{font-size:9px;color:#aaa;margin-left:5px}.profile{justify-self:end;background:white;color:#111;width:245px;height:68px;padding:4px;display:flex;gap:9px;align-items:center}.profile img{width:62px}.profile span{display:grid;gap:4px}.profile b{font-size:16px}.profile small{line-height:1.1}.hero{height:100svh;min-height:680px;background:#111;color:white;position:relative;overflow:hidden}.hero-bg{position:absolute;inset:-8%;background:linear-gradient(90deg,rgba(255,51,0,.87),rgba(20,0,0,.15)),url('./assets/hero.jpg') center/cover;filter:saturate(1.2) contrast(1.05);will-change:transform}.hero-noise{position:absolute;inset:0;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}.hero-copy{position:absolute;left:2vw;top:27%;width:300px;font-size:18px}.hero-copy p{line-height:1.08}.line-link{display:flex;justify-content:space-between;border-bottom:1px solid;padding:34px 0 12px;font-size:18px}.hero-index{position:absolute;left:22%;bottom:26%;display:grid;gap:8px;font-size:16px}.hero-index span:last-child{opacity:.28}.hero-footer{position:absolute;left:2vw;bottom:4%;display:flex;align-items:flex-end;gap:8px}.ticks{width:145px;height:36px;background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(255,255,255,.75) 8px 9px);clip-path:polygon(0 78%,16% 78%,16% 45%,17% 45%,17% 78%,33% 78%,33% 60%,34% 60%,34% 78%,50% 78%,50% 20%,51% 20%,51% 78%,100% 78%,100% 82%,0 82%)}.hero h1{position:absolute;left:25%;bottom:-3vw;margin:0;font-size:clamp(8rem,22vw,23rem);line-height:.65;letter-spacing:-.11em;white-space:nowrap;display:flex;gap:.1em}.hero h1 span:last-child{color:transparent;-webkit-text-stroke:2px white}.about{position:relative;background:var(--paper);padding:18vh 2vw 9vw;clip-path:polygon(0 6vw,100% 0,100% 100%,0 100%);margin-top:-6vw;z-index:3}.section-cap{border-top:1px solid var(--line);padding:13px 0 7vw;display:flex;justify-content:space-between;font-size:12px}.section-cap.dark{border-color:#444}.statement{font-size:clamp(3.3rem,7.1vw,8rem);line-height:.95;letter-spacing:-.06em;text-align:center;max-width:1500px;margin:auto;padding:0 5vw 10vw}.statement p{margin:0}.statement span{display:inline-block}.about-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2vw;align-items:start}.about-grid figure{margin:0;height:650px;overflow:hidden}.about-grid>div{border-top:1px solid;padding-top:12px}.about-grid p{font-size:16px;line-height:1.45}.about-grid small{font-weight:700}.result strong{display:block;font-size:7vw;letter-spacing:-.08em}.result strong em{font-size:.4em;font-style:normal}.circle-link{margin-top:60px;border:1px solid;border-radius:50%;width:110px;height:110px;display:grid;place-items:center;text-align:center;font-size:12px;transition:.3s}.circle-link:hover{background:var(--ink);color:white}.work{background:#080808;color:#eee;padding:4vw 2vw 10vw}.work-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:6vw}.work-intro h2{font-size:clamp(5rem,14vw,14rem);line-height:.7;letter-spacing:-.09em;margin:0}.work-intro p{font-size:13px}.project-list{display:grid;gap:2px}.project{height:72vh;min-height:550px;position:relative;overflow:hidden;border-top:1px solid #333}.project-media{position:absolute;inset:0;clip-path:inset(100% 0 0);transition:clip-path .8s cubic-bezier(.2,.8,.2,1)}.project.visible .project-media{clip-path:inset(0)}.project-media img{transition:transform 1s}.project:hover img{transform:scale(1.04)}.project-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.72))}.project-meta{position:absolute;left:2%;right:2%;bottom:4%;display:grid;grid-template-columns:8% 1fr auto auto;align-items:end;gap:2vw}.project h3{font-size:clamp(3rem,7vw,8rem);letter-spacing:-.07em;margin:0}.project-meta p,.project-meta b{font-size:12px}.services{padding:5vw 2vw 10vw}.service-lead{font-size:clamp(2rem,4.2vw,5rem);line-height:1.05;text-align:right;padding:0 0 9vw}.service-row{display:grid;grid-template-columns:1fr 1fr 2fr;gap:3vw;border-top:1px solid;padding:3vw 0;min-height:550px;align-items:center}.service-row>b{font-size:10vw;align-self:start;line-height:.8}.service-row figure{height:360px;margin:0;overflow:hidden}.service-row div{align-self:end}.service-row h3{font-size:clamp(3rem,6vw,7rem);letter-spacing:-.06em;margin:0 0 20px}.service-row p{max-width:480px;line-height:1.5}.archive{background:#080808;color:#eee;padding:5vw 2vw 12vw;position:relative}.archive-list a{display:grid;grid-template-columns:12% 1fr auto;align-items:center;border-top:1px solid #3a3a3a;padding:2.4vw 0;position:relative;z-index:2}.archive-list h4{font-size:clamp(2rem,5vw,6rem);letter-spacing:-.06em;margin:0;transition:transform .35s}.archive-list a:hover h4{transform:translateX(28px);color:var(--acid)}.archive-list span,.archive-list em{font-size:12px;font-style:normal}.archive-preview{position:fixed;width:360px;height:260px;z-index:20;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.8) rotate(-3deg);transition:opacity .2s,transform .2s}.archive-preview.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}.faq{padding:8vw 2vw;display:grid;grid-template-columns:1fr 1.2fr;gap:6vw}.faq-side h2{font-size:clamp(4rem,9vw,10rem);line-height:.75;letter-spacing:-.08em;margin:2vw 0;position:sticky;top:20px}.faq-list{padding-top:10vw}details{border-top:1px solid;padding:25px 0}summary{list-style:none;font-size:clamp(1.3rem,2.2vw,2.6rem);display:flex;justify-content:space-between;cursor:pointer}summary::-webkit-details-marker{display:none}summary i{font-style:normal;transition:.3s}details[open] summary i{transform:rotate(45deg)}details p{max-width:600px;line-height:1.55;color:#555}footer{min-height:100vh;background:var(--orange);color:#090909;padding:5vw 2vw 2vw;display:flex;flex-direction:column}footer>p{font-size:18px}footer h2{font-size:clamp(6rem,17vw,18rem);line-height:.7;letter-spacing:-.09em;margin:auto 0 4vw}.mail{align-self:flex-start;font-size:clamp(1.5rem,3vw,4rem);border-bottom:2px solid;padding-bottom:8px}.footer-bottom{margin-top:auto;border-top:1px solid;padding-top:20px;display:flex;justify-content:space-between;font-size:12px}.reveal{opacity:0;transform:translateY(30px);transition:1s .4s}.loaded .reveal{opacity:1;transform:none}@media(max-width:800px){body{cursor:auto}.cursor{display:none}.nav{height:76px;grid-template-columns:1fr auto}.nav nav{display:none}.profile{width:auto;height:48px}.profile img{display:none}.profile b{font-size:12px}.hero-copy{top:20%;width:70%}.hero-index{left:5%;bottom:26%}.hero h1{left:3%;bottom:7%;font-size:28vw;display:block;line-height:.7}.about{padding-top:16vh}.section-cap{padding-bottom:15vw}.statement{text-align:left;font-size:12vw;padding:0 0 20vw}.about-grid{grid-template-columns:1fr}.about-grid figure{height:70vw}.result strong{font-size:22vw}.work{padding-top:12vw}.work-intro{display:block}.work-intro h2{font-size:24vw}.project{height:58vh;min-height:460px}.project-meta{grid-template-columns:1fr auto}.project-meta span,.project-meta p{display:none}.project h3{font-size:13vw}.service-lead{text-align:left}.service-row{grid-template-columns:25% 1fr;min-height:auto;padding:10vw 0}.service-row figure{height:50vw}.service-row div{grid-column:1/-1}.service-row>b{font-size:20vw}.archive-list a{grid-template-columns:20% 1fr}.archive-list em{display:none}.archive-list h4{font-size:9vw}.faq{grid-template-columns:1fr}.faq-side h2{position:static;font-size:20vw}.faq-list{padding:0}footer h2{font-size:24vw}.footer-bottom span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.cursor{display:none}}

.page-rail{position:fixed;z-index:45;right:18px;top:50%;transform:translateY(-50%);height:150px;color:#fff;mix-blend-mode:difference;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;gap:8px;font-size:9px;letter-spacing:.12em}.page-rail>i{display:block;width:1px;height:100%;background:rgba(255,255,255,.35);position:relative}.page-rail>i:after{content:"";position:absolute;left:0;top:0;width:1px;height:var(--progress,0%);background:white}
.film{background:var(--paper);overflow:hidden;padding:3vw 0 10vw;transform:rotate(-2.2deg);width:105%;margin-left:-2.5%}.film-track{display:flex;width:max-content;gap:12px;animation:filmMove 32s linear infinite}.film:hover .film-track{animation-play-state:paused}.film figure{margin:0;width:25vw;min-width:300px;height:19vw;min-height:230px;position:relative;overflow:hidden;background:#111}.film figure:nth-child(even){transform:translateY(35px)}.film img{transition:transform .6s,filter .6s;filter:saturate(.7)}.film figure:hover img{transform:scale(1.08);filter:saturate(1)}.film figcaption{position:absolute;left:10px;bottom:8px;color:white;font-size:10px;mix-blend-mode:difference}@keyframes filmMove{to{transform:translateX(calc(-50% - 30px))}}
.statement p,.service-lead p,.stat{opacity:.12;transform:translateY(60px);transition:opacity .9s,transform .9s cubic-bezier(.2,.8,.2,1)}.statement p.in,.service-lead p.in,.stat.in{opacity:1;transform:none}
.project{cursor:none}.project-media{will-change:clip-path,transform}.project:after{content:"OPEN ↗";position:absolute;z-index:4;left:var(--px,50%);top:var(--py,50%);width:86px;height:86px;border-radius:50%;background:var(--acid);color:#111;display:grid;place-items:center;font-size:10px;transform:translate(-50%,-50%) scale(0);transition:transform .25s}.project:hover:after{transform:translate(-50%,-50%) scale(1)}
.service-row{position:sticky;top:0;background:var(--paper);min-height:100vh;padding-left:2vw;padding-right:2vw;margin-left:-2vw;margin-right:-2vw}.service-row:nth-of-type(3){top:18px}.service-row:nth-of-type(4){top:36px}.service-row figure img{transform:scale(1.12);transition:transform .2s linear}
.stats{padding:6vw 2vw 9vw;background:var(--acid)}.stats .section-cap{padding-bottom:2vw}.stat{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;border-top:1px solid;padding:1.5vw 0}.stat strong{font-size:clamp(5rem,15vw,16rem);letter-spacing:-.1em;line-height:.78}.stat div{display:grid;grid-template-columns:1fr 1.5fr;gap:2vw;align-items:start}.stat b{font-size:17px}.stat p{margin:0;line-height:1.45;max-width:360px}
.split-cta{height:100vh;min-height:700px;background:#090909;color:white;display:grid;grid-template-columns:1fr 1.15fr 1fr;position:relative;overflow:hidden}.split-panel{overflow:hidden}.split-panel img{width:120%;height:120%;margin:-10%;filter:saturate(.7);transition:filter .5s}.split-cta:hover img{filter:saturate(1)}.split-a{clip-path:polygon(0 0,100% 8%,88% 100%,0 94%)}.split-b{clip-path:polygon(12% 8%,100% 0,100% 94%,0 100%)}.split-copy{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;z-index:2}.split-copy span{font-size:12px;letter-spacing:.3em}.split-copy strong{font-size:clamp(3.8rem,7vw,8rem);line-height:.75;letter-spacing:-.08em;margin:3vw 0}.split-copy a{width:120px;height:120px;border:1px solid;border-radius:50%;display:grid;place-items:center;font-size:12px;transition:.3s}.split-copy a:hover{background:white;color:#111}
@media(max-width:800px){.page-rail{display:none}.film{padding-bottom:18vw}.film figure{width:70vw;height:52vw}.statement p,.service-lead p,.stat{opacity:1;transform:none}.project:after{display:none}.service-row,.service-row:nth-of-type(3),.service-row:nth-of-type(4){position:relative;top:auto;min-height:auto}.stats{padding:12vw 4vw}.stat{grid-template-columns:1fr;padding:6vw 0}.stat strong{font-size:25vw}.stat div{grid-template-columns:1fr;margin-top:5vw}.split-cta{height:80vh;min-height:620px;grid-template-columns:1fr 1fr}.split-copy{position:absolute;inset:0;background:rgba(0,0,0,.28)}.split-panel{opacity:.78}}

body{cursor:auto}.cursor{display:none!important}a,button,summary,.project{cursor:pointer}.project:after{display:none}.all-work-link{margin-top:4vw;border-top:1px solid #444;border-bottom:1px solid #444;padding:2.5vw 0;display:grid;grid-template-columns:1fr 2fr auto;align-items:center}.all-work-link span{font-size:12px}.all-work-link b{font-size:clamp(2rem,5vw,6rem);letter-spacing:-.06em}.all-work-link em{font-style:normal;font-size:3rem;transition:transform .3s}.all-work-link:hover em{transform:rotate(45deg)}
.contact-lines{display:flex;align-items:flex-end;gap:3vw;flex-wrap:wrap}.contact-lines>span{font-size:clamp(1rem,2vw,2rem);padding-bottom:10px}.contact-lines .mail{font-size:clamp(1.2rem,2.4vw,3rem)}
@media(max-width:800px){.all-work-link{grid-template-columns:1fr auto;padding:7vw 0}.all-work-link span{display:none}.all-work-link b{font-size:10vw}.contact-lines{gap:5vw}.contact-lines>span{width:100%}}

@media (min-width: 801px) {
  .services {
    padding-bottom: 0;
  }

  .service-row {
    min-height: calc(clamp(640px, 78vh, 820px) + 10vw);
  }

  .service-row figure {
    align-self: start;
    margin-top: 9vw;
  }

  .service-row > div {
    align-self: end;
    margin-top: 0;
    transform: translateY(-3vw);
  }

  .service-row > div p {
    white-space: nowrap;
  }

  .service-row:nth-of-type(3),
  .service-row:nth-of-type(4),
  .service-row:nth-of-type(5) {
    min-height: calc(clamp(640px, 78vh, 820px) + 16vw);
  }

  .service-row:nth-of-type(3) > div,
  .service-row:nth-of-type(4) > div,
  .service-row:nth-of-type(5) > div {
    transform: translateY(-9vw);
  }
}

@media (max-width: 800px) {
  .desktop-title-break {
    display: none;
  }

  .service-row figure,
  .service-row > div {
    margin-top: 0;
  }
}

.service-row {
  border-top: 0;
}

.service-row::before {
  content: "";
  position: absolute;
  top: 0;
  left: 2vw;
  right: 2vw;
  height: 1px;
  background: rgba(10, 10, 10, .16);
}

.service-row figure img.service-image-contain {
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
}

.service-case-link {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  touch-action: manipulation;
  overflow: hidden;
  transition: transform .32s cubic-bezier(.2,.8,.2,1), filter .32s ease;
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .service-case-link:hover {
    transform: translateY(-6px) scale(1.025);
    filter: brightness(1.05);
  }
}

.service-case-link:active {
  transform: scale(.975);
  transition-duration: .12s;
}

.service-case-link:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -4px;
}

.service-row figure img.service-image-original {
  object-fit: contain;
  object-position: center;
  transform: none;
}

.service-portrait-hover .service-image-original {
  transition: transform .7s cubic-bezier(.22,.75,.2,1), filter .7s cubic-bezier(.22,.75,.2,1);
  will-change: transform, filter;
}

@media (hover: hover) and (pointer: fine) {
  .service-case-link.service-portrait-hover:hover {
    transform: none;
    filter: none;
  }

  .service-portrait-hover:hover .service-image-original {
    transform: scale(1.05);
    filter: brightness(.94);
  }
}

.service-case-link.service-portrait-hover:active {
  transform: scale(.975);
}

.service-video-hover-zone {
  isolation: isolate;
  background: #111;
}

.service-video-action {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: #111;
  color: inherit;
  cursor: pointer;
  overflow: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: transform .7s cubic-bezier(.22,.75,.2,1), filter .7s cubic-bezier(.22,.75,.2,1);
  will-change: transform, filter;
}

.service-video-action .service-video-frame,
.service-video-action video {
  transform: none !important;
  filter: none !important;
  backface-visibility: hidden;
}

@media (hover: hover) and (pointer: fine) {
  .service-video-hover-zone:hover .service-video-action {
    transform: translateZ(0) scale(1.05);
    filter: brightness(.94);
  }
}

.service-video-action:active {
  transform: translateZ(0) scale(.975);
  transition-duration: .12s;
}

.service-video-action:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -4px;
}

/* Keep the contact section fixed while FAQ answers expand. */
.faq {
  overflow: hidden;
}

.faq-list {
  min-height: 0;
  max-height: none;
  overflow: visible;
  scrollbar-width: none;
}

.faq-list::-webkit-scrollbar {
  display: none;
}

.faq details p {
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-12px) scale(.985);
  transform-origin: top left;
  white-space: normal !important;
  transition:
    max-height .56s cubic-bezier(.22,1.22,.36,1),
    margin .56s cubic-bezier(.22,1.22,.36,1),
    opacity .28s ease,
    transform .56s cubic-bezier(.22,1.22,.36,1);
}

.faq details.faq-expanded p {
  max-height: var(--faq-answer-height, 180px);
  margin-top: 20px;
  margin-bottom: 6px;
  opacity: 1;
  transform: translateY(0) scale(1);
}

.faq details.faq-expanded summary i {
  transform: rotate(45deg) scale(1.08);
}

.faq details:not(.faq-expanded) summary i {
  transform: rotate(0deg) scale(1);
}

.contact-heading > span {
  display: inline-block;
  transform: scaleX(1.06);
  transform-origin: left center;
}
