@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f3f1eb;--ink:#272921;--muted:#74766b;--line:#cecec2;--accent:#c7ccaf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}header{margin:0 4%;height:106px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.logo{font-family:'Manrope',sans-serif;font-size:43px;font-weight:800;letter-spacing:-3px}.logo span{font:12px 'DM Sans';vertical-align:top;display:inline-block;margin:12px 0 0 5px;letter-spacing:0}.header-note,.eyebrow,.years{font-size:10px;letter-spacing:1.5px;font-weight:500}nav{display:flex;gap:35px;font-size:12px}sup{font-size:9px;margin-left:4px}.intro{padding:35px 4% 40px}.intro>.eyebrow{display:flex;justify-content:space-between}h1{font-family:'Manrope',sans-serif;letter-spacing:-9px;line-height:.98;font-size:clamp(80px,10.8vw,170px);font-weight:500;margin:44px 0 0;position:relative}em{font-family:Georgia,serif;font-weight:400}h1 em{display:inline-block;margin-left:23%}.intro-copy{position:absolute;left:68%;bottom:14px;font:14px/1.7 'DM Sans';letter-spacing:0}.hero{margin:0 2%;height:620px;max-height:74vh;min-height:390px;position:relative;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center 58%}.hero-shade{position:absolute;inset:0;background:linear-gradient(transparent 35%,#0009)}.hero-caption{position:absolute;bottom:45px;left:35px;color:white}.hero-caption>span{font-size:10px;letter-spacing:1.6px}.hero-caption h2{font-size:37px;font-weight:400;letter-spacing:-1px;margin:15px 0 8px}.hero-caption p{font-size:12px;margin:0;color:#ddd}.circle{position:absolute;right:40px;bottom:40px;border:1px solid #fffa;border-radius:100%;width:65px;height:65px;background:transparent;color:white;font-size:30px;transition:.3s}.circle:hover{background:var(--paper);color:var(--ink);transform:rotate(45deg)}.vertical{position:absolute;right:28px;top:30px;writing-mode:vertical-rl;color:white;font-size:9px;letter-spacing:2px}.statement{padding:130px 6%;display:grid;grid-template-columns:1fr 2.1fr;gap:40px}.statement>.eyebrow{padding-top:15px}h2{font-family:'Manrope',sans-serif;font-weight:400;font-size:clamp(38px,4.4vw,68px);line-height:1.14;letter-spacing:-2.7px;margin:0}.statement-bottom{display:flex;align-items:flex-end;gap:55px;margin-top:35px}.statement p,.philosophy p{font-size:14px;line-height:1.9;color:var(--muted);max-width:350px;margin:0}.text-link{display:flex;justify-content:space-between;align-items:center;font-size:11px;border-bottom:1px solid var(--ink);padding:0 0 10px;gap:30px;white-space:nowrap}.text-link span{font-size:23px}.work{padding:30px 4% 110px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end}.section-heading h2{margin-top:23px;font-size:70px}.years{padding-bottom:8px}.filters{display:flex;gap:25px;border-top:1px solid var(--line);padding:23px 0;margin-top:35px}.filters button{padding:7px 0;border:0;background:none;font-size:11px;color:var(--muted)}.filters button.active{color:var(--ink);box-shadow:0 1px var(--ink)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 28px}.project-card{border:0;background:none;padding:0;text-align:left;display:block;width:100%}.project-card:nth-child(even){margin-top:90px}.project-photo{overflow:hidden;aspect-ratio:1.25;background:#ddd}.project-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.project-card:hover img{transform:scale(1.035)}.project-info{display:flex;justify-content:space-between;padding-top:18px;align-items:center}.project-info h3{font-size:21px;font-weight:400;letter-spacing:-.6px;margin:0 0 8px}.project-info p{font-size:10px;color:var(--muted);margin:0}.project-info>span{font-size:25px}.philosophy{background:#e6e7de;display:grid;grid-template-columns:1fr 1fr;padding:65px 6%;gap:10%;align-items:center}.material-image{height:570px}.material-image img{height:100%;width:100%;object-fit:cover}.philosophy-text h2{margin:35px 0;font-size:64px}.philosophy-text .text-link{margin-top:40px;max-width:320px}footer{padding:90px 4% 22px}.contact-title{display:block;font-family:'Manrope',sans-serif;font-size:clamp(75px,11vw,160px);letter-spacing:-7px;line-height:1.05;margin:35px 0 80px;position:relative}.contact-title em{margin-left:18%}.contact-title>span{position:absolute;right:5%;top:20px;font-size:130px;font-weight:400}.footer-bottom{border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;align-items:center}.footer-bottom>span,.footer-bottom>a:not(.logo){font-size:11px}.demo-note{font-size:10px;color:var(--muted);line-height:1.6;border-top:1px solid var(--line);padding-top:15px}dialog{padding:0;border:0;background:var(--paper);color:var(--ink);max-width:1000px;width:90vw;max-height:90vh}dialog::backdrop{background:#161811bc;backdrop-filter:blur(5px)}dialog>img{width:100%;height:50vh;object-fit:cover;display:block}.close{position:absolute;right:16px;top:16px;background:var(--paper);border:0;padding:12px 18px}.detail-content{padding:35px}.detail-content h2{margin:20px 0;font-size:44px}.detail-content p{line-height:1.8;color:var(--muted);max-width:650px}.detail-content>.eyebrow:last-child{display:block;margin-top:30px}a:focus-visible,button:focus-visible{outline:2px solid #717b45;outline-offset:6px}section,footer{scroll-margin-top:25px}@media(min-width:1600px){body{max-width:1900px;margin:auto}}@media(max-width:760px){header{height:85px}.header-note{display:none}nav{gap:18px;font-size:10px}.logo{font-size:35px}.intro{padding-top:25px}.intro>.eyebrow{font-size:8px;letter-spacing:1px}h1{letter-spacing:-5px;margin-top:45px;font-size:20vw}h1 em{margin-left:15%}.intro-copy{position:static;display:block;font-size:12px;line-height:1.5;margin:30px 0 0 40%}.hero{min-height:470px;max-height:65vh}.hero-caption{left:22px;bottom:28px}.hero-caption h2{font-size:27px}.circle{right:22px;bottom:28px;width:45px;height:45px;font-size:24px}.statement{padding:75px 6%;grid-template-columns:1fr;gap:30px}h2{letter-spacing:-1.8px}.statement-bottom{display:block}.statement-bottom .text-link{margin-top:25px;max-width:250px}.work{padding-bottom:65px}.section-heading h2{font-size:48px}.years{font-size:8px}.filters{gap:20px;overflow:auto}.filters button{white-space:nowrap}.project-grid{gap:35px;grid-template-columns:1fr}.project-card:nth-child(even){margin-top:0}.philosophy{grid-template-columns:1fr;gap:45px;padding:35px 6% 55px}.material-image{height:380px}.philosophy-text h2{font-size:52px}.contact-title{letter-spacing:-4px;margin-bottom:50px}.contact-title>span{font-size:65px;right:0}.footer-bottom{flex-wrap:wrap;gap:25px}.footer-bottom>span:nth-child(2){display:none}footer{padding-top:65px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}



.gallery{position:relative;background:#d4d2c8}.gallery-track{display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;overscroll-behavior-x:contain}.gallery-track::-webkit-scrollbar{display:none}.gallery-track.dragging{scroll-snap-type:none;cursor:grabbing}.gallery-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.gallery-slide img{display:block;width:100%;height:50vh;min-height:280px;object-fit:cover;user-select:none}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);border:1px solid #ffffff70;border-radius:50%;width:42px;height:42px;background:#1115;color:white;font-size:22px;backdrop-filter:blur(8px)}.gallery-prev{left:16px}.gallery-next{right:16px}.gallery-arrow:disabled{opacity:.25;cursor:default}.gallery-counter{position:absolute;bottom:15px;right:20px;color:white;font-size:11px;background:#0005;padding:6px 10px;border-radius:20px}.gallery-dots{display:flex;justify-content:center;gap:12px;padding:15px 0 0}.gallery-dots button{width:24px;height:24px;position:relative;border:0;background:transparent;padding:0}.gallery-dots button:after{content:"";width:6px;height:6px;border-radius:50%;position:absolute;inset:9px;background:#b9b9ae}.gallery-dots button.selected:after{background:#272921;transform:scale(1.35)}#project-dialog .close{background:transparent;z-index:5;color:#fff;text-shadow:0 1px 5px #000,0 0 12px #0009;font-weight:500}.detail-content{padding-top:20px}

@media (max-width: 760px) {
  #project-dialog { width: min(88vw, 520px); max-height: 76vh; max-height: 76dvh; overflow-y: auto; overscroll-behavior: contain; }
  #project-dialog .close { position: sticky; top: 8px; right: auto; display: block; width: fit-content; height: 44px; margin: 8px 8px -52px auto; padding: 0 12px; border-radius: 4px; background: #22241e; color: #fff; text-shadow: none; }
  .gallery-slide img { height: clamp(150px, 30dvh, 260px); min-height: 0; }
  .gallery-arrow { width: 44px; height: 44px; border: 0; border-radius: 0; background: #22241e80; backdrop-filter: none; font-size: 0; }
  .gallery-prev { left: 6px; }
  .gallery-next { right: 6px; }
  .gallery-arrow::before, .gallery-arrow::after { content: ""; position: absolute; top: 50%; }
  .gallery-arrow::before { left: 11px; width: 22px; height: 1px; background: currentColor; }
  .gallery-arrow::after { width: 8px; height: 8px; border-top: 1px solid; border-right: 1px solid; }
  .gallery-prev::after { left: 11px; transform: translateY(-50%) rotate(-135deg); }
  .gallery-next::after { right: 11px; transform: translateY(-50%) rotate(45deg); }
  #project-dialog .detail-content { padding: 16px 20px 24px; }
  #project-dialog .detail-content h2 { font-size: clamp(26px, 7vw, 36px); margin: 8px 0; }
  #project-dialog .detail-content p { line-height: 1.55; }
  #project-dialog .detail-content > .eyebrow:last-child { margin-top: 18px; }
  .gallery-dots { padding-top: 6px; }
}
@media (max-width: 760px) {
  header { gap: 8px; }
  header .logo { flex-shrink: 0; font-size: clamp(21px, 6.5vw, 29px); letter-spacing: -.07em; line-height: 1; white-space: nowrap; }
  header .logo span { font-size: 8px; margin: 2px 0 0 3px; }
  header nav { align-items: center; justify-content: flex-end; gap: clamp(6px, 2.5vw, 18px); font-size: 11px; line-height: 1.2; }
  header nav a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
}
