.project-info h3{font-size:1.35rem;line-height:1.2}
.project-number{color:#a9aaa3;font-size:.7rem;letter-spacing:.12em}
.modal-caption{margin:28px 0 42px;color:#74766d}.button-dark{background:var(--ink);color:var(--white)}
.reveal{opacity:0;transform:translateY(38px);filter:blur(5px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1),filter .9s}
.reveal.visible{opacity:1;transform:none;filter:none}
.project-card.reveal .project-image{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.22,1,.36,1)}
.project-card.reveal.visible .project-image{clip-path:inset(0)}
.project-card:nth-child(2n).reveal{transition-delay:.08s}
.scroll-progress{position:fixed;z-index:40;left:0;top:0;width:100%;height:2px;background:var(--stone);transform:scaleX(0);transform-origin:left center;pointer-events:none}
.contact-links{display:flex;align-items:center;gap:30px}.contact-links a{font-size:.82rem;border-bottom:1px solid var(--stone);padding-bottom:8px}
.process-icon{display:block;width:42px;height:42px;margin:0 0 24px;color:var(--stone)}
.process-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:square;stroke-linejoin:miter}
.field-error{display:none;margin-top:8px;color:#d9a99f;font-size:.72rem;letter-spacing:.01em}
.contact-form input:not(:placeholder-shown):invalid{border-color:#d9a99f}
.contact-form input:not(:placeholder-shown):invalid+.field-error{display:block}
.project-card:nth-child(8),.project-card:nth-child(11){grid-column:span 5;margin-top:110px}
.project-card:nth-child(9),.project-card:nth-child(12){grid-column:span 7}
.project-card:nth-child(10){grid-column:2/span 6}
.modal-gallery{position:relative;min-width:0;background:#11130f}
.modal-gallery .modal-image{height:100%;min-height:680px}
.gallery-arrow{position:absolute;z-index:3;top:50%;width:48px;height:48px;border:1px solid rgba(255,255,255,.45);background:rgba(15,17,14,.72);color:#fff;cursor:pointer;transform:translateY(-50%);transition:background .25s ease,border-color .25s ease}
.gallery-arrow:hover{background:var(--stone);border-color:var(--stone);color:var(--ink)}
.gallery-prev{left:18px}.gallery-next{right:18px}
.gallery-count{position:absolute;right:22px;bottom:20px;padding:8px 12px;background:rgba(15,17,14,.72);color:#fff;font-size:.68rem;letter-spacing:.12em}
.modal-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:0 0 36px}
.modal-thumbs button{padding:0;border:1px solid transparent;background:none;cursor:pointer;aspect-ratio:4/3;overflow:hidden;opacity:.48;transition:opacity .25s ease,border-color .25s ease}
.modal-thumbs button:hover,.modal-thumbs button.active{opacity:1;border-color:var(--ink)}
.modal-thumbs img{width:100%;height:100%;object-fit:cover}
.review-author span{display:block;margin-top:3px;color:#77796f}
@media(max-width:900px){
  .contact-links{align-items:flex-start;flex-direction:column;gap:14px}
  .project-card:nth-child(n){grid-column:1/-1;margin-top:0}
  .mobile-menu{display:block;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-12px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
  .mobile-menu.open{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition-delay:0s}
  .process-icon{margin-bottom:18px}
  .project-modal[open]{display:block;overflow:auto}
  .modal-gallery .modal-image{min-height:0;height:auto;aspect-ratio:4/5}
  .modal-copy{padding:34px 24px 45px}
  .gallery-arrow{width:44px;height:44px}
  .modal-thumbs{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){.project-card.reveal .project-image{clip-path:none}.scroll-progress{display:none}}
