@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Prata&display=swap');

:root{--ink:#171714;--paper:#f3f0e9;--card:#e7e1d6;--accent:#f2653c;--lime:#cde86b;--line:rgba(23,23,20,.18);--radius:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.5}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;width:100%}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(22px,4vw,64px);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:.25s}.site-header.scrolled{border-color:var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:700}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:13px}.nav{display:flex;align-items:center;gap:28px;font-size:14px}.nav a:not(.nav-cta):hover{opacity:.55}.nav-cta,.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 20px;font-weight:700}.nav-cta{border:1px solid var(--ink)}.menu-toggle{display:none;border:0;background:none;width:42px;height:42px}.menu-toggle span{display:block;width:22px;height:2px;margin:6px auto;background:var(--ink)}main{overflow:hidden}.hero{min-height:calc(100vh - 75px);display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:7vw;padding:clamp(60px,9vw,130px) clamp(22px,6vw,96px)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:700;margin:0 0 22px}.hero h1,.section-heading h2,.about h2,.contact h2{font-family:Prata,Georgia,serif;font-weight:400;letter-spacing:-.035em;margin:0}.hero h1{font-size:clamp(54px,7.5vw,118px);line-height:.96;max-width:1050px}.hero h1 em,.contact h2 em{color:var(--accent);font-style:italic}.hero-lead{font-size:clamp(17px,1.5vw,22px);max-width:650px;margin:32px 0;color:#4e4c46}.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.button-dark{background:var(--ink);color:white;padding:16px 24px}.button-dark:hover{transform:translateY(-2px)}.text-link{font-weight:700;border-bottom:1px solid}.hero-art{position:relative;min-height:520px;margin:0;border-radius:34px;overflow:hidden;background:var(--card);transform:rotate(1.2deg);box-shadow:0 24px 70px rgba(23,23,20,.16)}.hero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(15,12,9,.56));pointer-events:none}.hero-art img{width:100%;height:100%;min-height:520px;object-fit:cover;object-position:center;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.hero-art:hover img{transform:scale(1.025)}.hero-art figcaption{position:absolute;left:28px;bottom:24px;z-index:2;margin:0;padding:10px 14px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(20,17,14,.26);backdrop-filter:blur(10px);color:white;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.projects{padding:110px clamp(22px,6vw,96px)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.section-heading h2{font-size:clamp(52px,7vw,100px)}.section-heading>p{max-width:440px;color:#66635c}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:35px}.filter{border:1px solid var(--line);background:transparent;border-radius:999px;padding:10px 17px;cursor:pointer}.filter.is-active,.filter:hover{background:var(--ink);color:white}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 24px}.project-card-large{grid-column:1/-1}.project-card-wide{grid-column:1/-1}.project-image{position:relative;width:100%;padding:0;border:0;border-radius:var(--radius);overflow:hidden;background:var(--card);cursor:zoom-in;aspect-ratio:4/3}.project-card-large .project-image{aspect-ratio:16/8}.project-card-wide .project-image{aspect-ratio:16/7}.project-image img{height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.project-image:hover img{transform:scale(1.035)}.project-index{position:absolute;top:18px;left:18px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--paper);font-size:12px;font-weight:700}.project-meta{display:flex;justify-content:space-between;gap:20px;padding:18px 4px}.project-meta h3{margin:0;font-size:clamp(20px,2.2vw,32px);line-height:1.2}.project-meta p{margin:7px 0 0;color:#6b675f}.project-meta>span{font-size:12px;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;margin-top:8px}.project-card.is-hidden{display:none}.about{display:grid;grid-template-columns:.75fr 1.25fr;gap:6vw;align-items:center;padding:120px clamp(22px,6vw,96px);background:var(--ink);color:var(--paper)}.about-number{font-family:Prata,serif;font-size:clamp(130px,25vw,390px);line-height:.8;color:var(--accent)}.about h2{font-size:clamp(40px,5vw,72px);line-height:1.08}.about-copy>p:not(.eyebrow){font-size:19px;max-width:720px;color:#bdb9b0;margin:30px 0}.services{display:flex;flex-wrap:wrap;gap:10px}.services span{border:1px solid #55534e;border-radius:999px;padding:10px 15px;font-size:13px}.contact{text-align:center;padding:150px 22px}.contact h2{font-size:clamp(48px,8vw,116px);line-height:1;max-width:1250px;margin:auto}.contact-links{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:45px}.contact-links a{font-weight:700;border-bottom:1px solid;padding-bottom:4px}footer{display:flex;justify-content:space-between;padding:28px clamp(22px,6vw,96px);border-top:1px solid var(--line);font-size:13px}.lightbox{width:min(94vw,1300px);height:min(92vh,900px);padding:55px;border:0;border-radius:24px;background:#111;color:white}.lightbox::backdrop{background:rgba(0,0,0,.8);backdrop-filter:blur(7px)}.lightbox figure{margin:0;width:100%;height:100%;display:grid;place-items:center}.lightbox img{max-height:calc(92vh - 125px);width:auto;max-width:100%;object-fit:contain}.lightbox figcaption{position:absolute;left:30px;bottom:20px;font-size:13px;color:#aaa}.lightbox-close,.lightbox-arrow{position:absolute;z-index:2;border:0;background:rgba(255,255,255,.1);color:white;border-radius:50%;cursor:pointer}.lightbox-close{right:18px;top:18px;width:42px;height:42px;font-size:27px}.lightbox-arrow{top:50%;width:46px;height:46px}.lightbox-prev{left:8px}.lightbox-next{right:8px}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s,transform .7s}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:800px){.site-header{padding:14px 20px}.menu-toggle{display:block;z-index:22}.nav{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;background:var(--paper);font-size:28px;transform:translateY(-105%);transition:.35s}.menu-open .nav{transform:none}.hero{grid-template-columns:1fr;padding-top:70px}.hero-art,.hero-art img{min-height:430px}.project-grid{grid-template-columns:1fr}.project-card-large,.project-card-wide{grid-column:auto}.project-card-large .project-image,.project-card-wide .project-image,.project-image{aspect-ratio:4/3}.section-heading{align-items:start;flex-direction:column}.about{grid-template-columns:1fr}.about-number{font-size:45vw}.project-meta{flex-direction:column}.project-meta>span{margin:0}.lightbox{padding:45px 15px}footer{gap:20px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-image img{transition:none}}

/* Mobile layout fixes */
html, body { max-width: 100%; overflow-x: clip; }
.site-header { min-width: 0; }
.brand { min-width: 0; }
.brand > span:last-child { min-width: 0; }

@media (max-width: 800px) {
  .site-header {
    min-height: 68px;
    padding: 12px 16px;
    gap: 12px;
  }

  .brand {
    flex: 1 1 auto;
    max-width: calc(100% - 56px);
    gap: 10px;
    overflow: hidden;
  }

  .brand-mark {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
  }

  .brand > span:last-child {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 16px;
  }

  .menu-toggle {
    position: relative;
    z-index: 32;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 8px;
  }

  .nav {
    z-index: 30;
    inset: 0;
    min-height: 100dvh;
    padding: 100px 24px 40px;
    gap: 20px;
    justify-content: flex-start;
    align-items: stretch;
    background: var(--paper);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-24px);
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }

  .menu-open .nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition-delay: 0s;
  }

  .nav a {
    display: block;
    width: 100%;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
    font-size: clamp(26px, 8vw, 38px);
    line-height: 1.15;
  }

  .nav .nav-cta {
    margin-top: 12px;
    padding: 16px 20px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    text-align: center;
    font-size: 18px;
  }

  .hero {
    min-height: auto;
    gap: 42px;
    padding: 64px 20px 72px;
  }

  .hero-copy { min-width: 0; }

  .hero h1 {
    max-width: 100%;
    font-size: clamp(42px, 13.5vw, 62px);
    line-height: .98;
    letter-spacing: -.045em;
  }

  .hero h1 em {
    display: block;
    max-width: 100%;
    font-size: .84em;
    line-height: 1.06;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .hero-lead {
    margin: 26px 0;
    font-size: 17px;
    line-height: 1.55;
  }

  .hero-actions {
    align-items: stretch;
    gap: 24px;
  }

  .hero-actions .button {
    width: 100%;
  }

  .hero-actions .text-link {
    max-width: 100%;
    overflow-wrap: anywhere;
    font-size: 15px;
  }

  .hero-art,
  .hero-art img {
    min-height: 360px;
  }

  .hero-art {
    width: 100%;
    border-radius: 28px;
    transform: none;
  }

  .hero-art figcaption {
    left: 16px;
    right: 16px;
    bottom: 16px;
    width: max-content;
    max-width: calc(100% - 32px);
    white-space: normal;
  }

  .projects { padding: 84px 20px; }
  .about { padding: 84px 20px; }
  .contact { padding: 100px 20px; }
  footer { padding: 24px 20px; }
}

@media (max-width: 380px) {
  .brand > span:last-child { font-size: 14px; }
  .hero { padding-left: 16px; padding-right: 16px; }
  .hero h1 { font-size: clamp(38px, 13vw, 50px); }
  .hero h1 em { font-size: .79em; }
}

/* Project detail pages */
.project-image{display:block;cursor:pointer}.project-meta h3 a:hover{color:var(--accent)}
.case-page{overflow:hidden}.case-hero{padding:48px clamp(22px,6vw,96px) 88px}.case-back{display:inline-flex;margin:10px 0 70px;font-weight:700;border-bottom:1px solid}.case-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);column-gap:8vw;align-items:end;margin-bottom:56px}.case-heading .eyebrow{grid-column:1/-1}.case-heading h1{font-family:Prata,Georgia,serif;font-weight:400;letter-spacing:-.045em;font-size:clamp(56px,8vw,126px);line-height:.95;margin:0}.case-heading>p:not(.eyebrow){font-size:clamp(17px,1.5vw,22px);color:#5c5952;margin:0}.case-meta{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.case-meta span{border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:12px}.case-cover{margin:0;border-radius:34px;overflow:hidden;background:var(--card)}.case-cover img{width:100%;max-height:88vh;object-fit:contain;background:#e5e0d8}.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:0 clamp(22px,6vw,96px) 120px}.case-image{margin:0;border-radius:24px;overflow:hidden;background:white}.case-image img{width:100%;height:100%;object-fit:contain}.case-image-wide{grid-column:1/-1}.case-image-medium{min-height:420px}.case-image-portrait{grid-column:1/-1;justify-self:center;width:min(100%,720px)}.case-next{padding:100px clamp(22px,6vw,96px);background:var(--ink);color:var(--paper)}.case-next>a{display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:Prata,Georgia,serif;font-size:clamp(42px,6vw,92px);line-height:1.05}.case-next>a:hover{color:var(--accent)}
@media(max-width:800px){.case-hero{padding:28px 20px 60px}.case-back{margin-bottom:46px}.case-heading{grid-template-columns:1fr;gap:24px;margin-bottom:38px}.case-heading h1{font-size:clamp(46px,14vw,72px)}.case-heading>p:not(.eyebrow),.case-meta{grid-column:1}.case-cover{border-radius:24px}.case-gallery{grid-template-columns:1fr;gap:16px;padding:0 20px 80px}.case-image-wide,.case-image-portrait{grid-column:auto;width:100%}.case-image-medium{min-height:0}.case-image{border-radius:18px}.case-next{padding:72px 20px}.case-next>a{font-size:clamp(36px,11vw,56px)}}
