@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Newsreader:opsz,wght@6..72,300;6..72,400;6..72,600&display=swap");

  :root { --sans: "Inter", "Helvetica Neue", Arial, sans-serif; --serif: "Newsreader", Georgia, "Times New Roman", serif; --ink: #1c1c1c; --grey: #ebebeb; --paper: #f6f5f3; --black: #060606; }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  body { font-family: var(--sans); color: var(--ink); background: #fff; line-height: 1.5; font-size: 17px; }
  a { color: inherit; text-decoration: none; }
  img { max-width: 100%; display: block; }

  /* Header */
  header { background: #fff; border-bottom: 8px solid #f1f1f1; position: sticky; top: 0; z-index: 20; }
  .bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 18px 30px; }
  .logo { width: 67px; height: 67px; background: #1a1a1a; color: #fff; display: grid; place-items: center; font-size: 17px; letter-spacing: 0.18em; font-weight: 600; }
  .pill { background: #fff; border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,.18); padding: 14px 30px; }
  .pill:hover { box-shadow: 0 3px 12px rgba(0,0,0,.28); }
  nav.pill { display: flex; gap: 70px; padding: 14px 72px; }
  .connect { justify-self: end; }

  /* Hero */
  .hero { min-height: 420px; aspect-ratio: 2.46 / 1; background: url("images/hero.jpg") left center / cover no-repeat, radial-gradient(circle at 20% 40%, #3a3f4b, #0b0b0d 65%); display: flex; align-items: center; justify-content: flex-end; padding: 0 7%; }
  .hero-text { text-align: center; color: #fff; width: min(38%, 640px); }
  .hero h1 { font-size: clamp(2.6rem, 6vw, 6rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.02em; margin-bottom: 36px; }
  .hero .pill { display: inline-block; color: var(--ink); }

  /* Intro */
  .intro { background: var(--grey); display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding: 110px 30px 140px; }
  .intro h2 { font-size: clamp(2.4rem, 4.6vw, 4.4rem); font-weight: 300; line-height: 1.08; margin-bottom: 28px; }
  .intro p { max-width: 570px; font-size: 1.05rem; }
  .profile { margin-top: 6px; }
  .profile h3 { font-size: 1.05rem; font-weight: 600; padding-bottom: 14px; border-bottom: 1px dashed #333; }
  .row { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0 52px; border-bottom: 1px dashed #333; }
  .row b { font-weight: 600; }
  .row div { text-align: right; }

  /* Featured works */
  .works { background: var(--black); color: #fff; padding: 140px 30px 120px; }
  .works h2 { text-align: center; font-size: clamp(2.2rem, 4vw, 3.6rem); font-weight: 400; margin-bottom: 70px; }
  .grid { max-width: 1250px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 50px 30px; }
  .thumb { aspect-ratio: 16 / 9; background: linear-gradient(135deg, #262626, #121212); overflow: hidden; }
  .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
  .work:hover img { transform: scale(1.04); }
  .work h3 { font-size: 1.5rem; font-weight: 400; margin-top: 16px; }
  .future { display: flex; flex-direction: column; justify-content: center; }
  .future .thumb { display: grid; place-items: center; border: 1px dashed #555; background: none; color: #aaa; }

  /* Framework */
  .framework { background: var(--paper); text-align: center; padding: 70px 30px 110px; }
  .framework h2 { font-size: clamp(2.8rem, 6vw, 5.6rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.03em; }
  .framework .sub { margin: 14px 0 100px; }
  .step { max-width: 900px; margin: 0 auto; padding: 30px 20px 34px; border-bottom: 1px dashed #333; }
  .step:first-of-type { padding-top: 0; }
  .step h3 { font-size: 2rem; font-weight: 300; margin-bottom: 14px; }
  .step p { max-width: 620px; margin: 0 auto; font-size: 1.05rem; }

  /* Contact */
  .contact { background: var(--black); color: #fff; text-align: center; padding: 100px 30px; }
  .contact h2 { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; margin-bottom: 24px; }
  .contact a.mail { font-size: 1.3rem; border-bottom: 1px solid #fff; }
  .contact .links { margin-top: 28px; }
  .contact .links a { margin: 0 12px; opacity: .75; }
  .contact .links a:hover { opacity: 1; }

  /* Phones */
  @media (max-width: 800px) {
    .bar { padding: 12px 16px; }
    .logo { width: 52px; height: 52px; font-size: 13px; }
    nav.pill { gap: 22px; padding: 10px 22px; font-size: 16px; }
    .pill { padding: 10px 18px; font-size: 16px; }
    .hero { aspect-ratio: auto; min-height: 560px; align-items: flex-end; justify-content: center; padding: 0 20px 60px; background-position: 25% center; }
    .hero-text { width: 100%; }
    .intro { grid-template-columns: 1fr; padding: 70px 20px 80px; }
    .works { padding: 90px 20px 80px; }
    .grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 480px) { .connect { display: none; } .bar { grid-template-columns: auto 1fr; } nav.pill { justify-self: end; } }

/* ---- inner pages ---- */
body.dark{background:#0d0d0d;color:#fff}
.page-hero{min-height:380px;background:linear-gradient(90deg,rgba(0,0,0,.1),rgba(0,0,0,.85)),var(--img,none) center/cover no-repeat,#111;display:flex;justify-content:flex-end;align-items:center;padding:110px 7%;color:#fff}
.page-hero div{width:min(44%,560px)}
.page-hero h1{font-size:clamp(2.2rem,5vw,4rem);font-weight:400;line-height:1.1;margin-bottom:16px}
.page-hero p{font-size:1rem;color:#ddd}
.sec{max-width:1200px;margin:0 auto;padding:60px 30px}
.sec h2{font-weight:400;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.15;margin-bottom:16px}
.sec h3{font-weight:600;font-size:1.05rem;margin-bottom:8px}
.sec p{color:#cfcfcf;margin-bottom:10px;font-size:1rem}
.sec a.link{border-bottom:1px solid #888}
.sec.c{text-align:center}.sec.c p{margin-left:auto;margin-right:auto;max-width:640px}
.rule{border:0;border-top:1px dashed #444;max-width:900px;margin:0 auto}
.split{display:grid;grid-template-columns:1.4fr 1fr;gap:50px;align-items:center}
.split.rev{grid-template-columns:1fr 1.4fr}
.video{position:relative;aspect-ratio:16/9;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video.v{aspect-ratio:9/16;max-width:300px;margin:0 auto}
.yt{display:inline-block;margin-top:10px;font-size:.85rem;opacity:.65}.yt:hover{opacity:1}
.ig{max-width:400px;margin:0 auto}.ig iframe{width:100%;height:560px;border:0;background:#fff}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.gallery figure{aspect-ratio:16/9;background:linear-gradient(135deg,#262626,#151515);overflow:hidden}
.gallery.tall figure{aspect-ratio:3/4}.gallery.tall{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.gallery img{width:100%;height:100%;object-fit:cover}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;text-align:center}
.role{margin-top:14px;font-size:.95rem;color:#aaa}
.more{padding:90px 30px;border-top:1px solid #222}.more h2{margin-bottom:40px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));max-width:1000px}
.about-hero{min-height:720px;background:url("images/hero.jpg") left bottom/cover no-repeat,#0b0b0d;display:flex;justify-content:center;padding:70px 7% 60px 38%;color:#fff;text-align:center}
.about-hero div{max-width:520px}.about-hero h1{font-size:clamp(2.2rem,4vw,3.4rem);font-weight:400;line-height:1.1}
.about-hero .lead{font-weight:600;margin:10px 0 34px}.about-hero p{margin-bottom:20px}
.expertise{background:var(--grey);text-align:center;padding:50px 20px 80px}
.expertise h2{font-size:clamp(2rem,4vw,3rem);font-weight:300;margin-bottom:20px}
.tags span{display:inline-block;background:#ffffd6;padding:4px 22px;margin:5px;font-size:.95rem}
.cpage{background:var(--paper);padding:80px 20px 110px;text-align:center}
.cpage h1{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:300;line-height:1.1;margin-bottom:14px}
.cpage form{max-width:540px;margin:40px auto 0;background:#ebebeb;padding:18px 18px 22px;text-align:left}
.cpage .two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cpage label{display:block;font-size:.8rem;margin-bottom:14px}
.cpage input,.cpage textarea{display:block;width:100%;border:0;border-bottom:1px solid #888;background:transparent;padding:10px 0;font:inherit;font-size:1rem;outline:0}
.cpage button{width:100%;background:#1a1a1a;color:#fff;border:0;padding:12px;font:inherit;font-weight:600;cursor:pointer}
@media (max-width:800px){.split,.split.rev{grid-template-columns:1fr;gap:30px}.page-hero{padding:90px 20px;justify-content:flex-start}.page-hero div{width:100%}.sec{padding:40px 20px}.about-hero{padding:60px 20px;background-position:30% bottom}.cpage .two{grid-template-columns:1fr;gap:0}}

/* ---- round 2 ---- */
h1,h2,h3,.logo{font-family:var(--serif)}
header{color:var(--ink)}
.logo:has(img){width:auto;background:none}
.logo img{height:67px;width:auto;max-width:170px;object-fit:contain}
@media (min-width:801px){.works .grid{grid-template-columns:repeat(2,1fr);max-width:1100px}.about-hero{aspect-ratio:2.46/1;min-height:640px;align-items:center;background-position:left center}}
.future{display:block}
.future .thumb{border:1px dashed #666;background:none;transition:border-color .2s}
.plus{font-size:5rem;font-weight:200;line-height:1;color:#999;transition:color .2s}
.future:hover .thumb{border-color:#fff}.future:hover .plus{color:#fff}
.gallery.one{grid-template-columns:repeat(var(--n,5),1fr)}
.gallery.center{display:flex;justify-content:center;flex-wrap:wrap}
.gallery.center figure{flex:0 0 260px}
@media (max-width:800px){.logo img{height:52px}.gallery.one{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.gallery.one figure{flex:0 0 72%;scroll-snap-align:center}}

/* ---- round 3: motion ---- */
@keyframes reveal{from{clip-path:circle(3% at 50% 50%)}to{clip-path:circle(75% at 50% 50%)}}
.hero,.page-hero,.about-hero{animation:reveal 1.6s cubic-bezier(.65,0,.35,1) both}
.rv{opacity:0;transform:translateY(32px);transition:opacity .8s ease-in-out,transform .8s ease-in-out}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.hero,.page-hero,.about-hero{animation:none}.rv{opacity:1;transform:none;transition:none}}
/* zuju: 4-up grid + centred last row */
.gallery.q{grid-template-columns:repeat(4,1fr)}
.gallery.center.q figure{flex:0 0 calc((100% - 42px)/4)}
@media (max-width:800px){.gallery.q{grid-template-columns:repeat(2,1fr)}.gallery.center.q figure{flex:0 0 calc(50% - 7px)}}

.logo:has(img){justify-self:start}
.bar{padding-left:30px}
