.hero .btn-outline{border-color:rgba(255,255,255,.55);color:#fff;}
  .hero .btn-outline:hover{background:#fff;color:var(--ink);border-color:#fff;}

  .hero{
    position:relative;
    min-height:calc(100vh - 144px);
    display:flex;align-items:center;
    overflow:hidden;
    background:var(--ink);
  }
  .hero-slides{
    position:absolute;inset:0;z-index:0;
  }
  .hero-slide{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    opacity:0;
    animation:heroSlide 18s infinite;
  }
  .hero-slide:nth-child(1){animation-delay:0s;}
  .hero-slide:nth-child(2){animation-delay:6s;}
  .hero-slide:nth-child(3){animation-delay:12s;}
  @keyframes heroSlide{
    0%{opacity:0;}
    5%{opacity:1;}
    33%{opacity:1;}
    38%{opacity:0;}
    100%{opacity:0;}
  }
  .hero-overlay{
    position:absolute;inset:0;z-index:1;
    background:
      linear-gradient(180deg, rgba(19,20,22,.55) 0%, rgba(19,20,22,.4) 35%, rgba(19,20,22,.55) 65%, rgba(19,20,22,.8) 100%),
      radial-gradient(ellipse at center, rgba(19,20,22,.35) 0%, rgba(19,20,22,.7) 100%);
  }
  .hero-content{position:relative;z-index:2;padding-top:60px;padding-bottom:60px;text-align:center;display:flex;flex-direction:column;align-items:center;max-width:100%;}
  .hero .eyebrow{color:#ff8b8f;}
  .hero h1{
    color:#fff;font-size:clamp(42px,6vw,65px);line-height:0.98;letter-spacing:0.005em;max-width:960px;margin:0 auto;
  }
  .hero h1 em{font-style:normal;color:#ff8b8f;}
  .hero p.lead{
    font-family:var(--font-body);font-weight:400;font-size:19px;color:rgba(255,255,255,.82);max-width:640px;margin:26px auto 40px;
  }
  .hero-actions{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;}
  @media (prefers-reduced-motion: reduce){
    .hero-slide{animation:none;opacity:0;}
    .hero-slide:first-child{opacity:1;}
  }

  .showcase{background:var(--paper);padding:90px 0 110px;}
  .showcase-tick{width:1px;height:38px;background:var(--line);margin:0 auto;}
  .showcase-grid{
    display:grid;grid-template-columns:420px 1fr 420px;gap:56px;align-items:center;margin:36px 0;
  }
  .showcase-grid .frame{aspect-ratio:3/4;}
  .showcase-content{text-align:center;padding:0 10px;}
  .showcase-content h2{
    font-family:var(--font-display);font-weight:500;text-transform:uppercase;letter-spacing:0.01em;
    font-size:clamp(28px,3.4vw,30px);line-height:1.18;color:var(--ink);
  }
  .showcase-content h2 em{font-style:normal;color:var(--red);}
  .showcase-content h2 .dot{color:var(--red);}
  .showcase-content p{
    font-family:var(--font-body);font-weight:400;font-size:19px;line-height:1.7;color:var(--text-body);max-width:520px;margin:26px auto 0;
  }
  .showcase-content p + p{margin-top:18px;}
  .showcase-content .btn{margin-top:34px;}
  @media (max-width:1200px){
    .showcase-grid{grid-template-columns:320px 1fr 320px;gap:40px;}
  }
  @media (max-width:980px){
    .showcase-grid{grid-template-columns:1fr;gap:32px;}
    .showcase-grid .frame{max-width:420px;margin:0 auto;aspect-ratio:4/3;}
    .showcase-grid .frame:nth-child(1){order:2;}
    .showcase-content{order:1;}
    .showcase-grid .frame:nth-child(3){order:3;}
  }

  section{padding:120px 0;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:64px;flex-wrap:wrap;}
  .section-head h2{font-size:clamp(30px,4vw,46px);max-width:640px;line-height:1.05;}
  .section-head p{max-width:380px;color:var(--text-body);font-weight:400;padding-bottom:4px;}
  .band{background:var(--concrete);}

  .frame{
    position:relative;
    background:linear-gradient(135deg,#efece4,#e2ddd0);
    overflow:hidden;
  }
  .frame img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  }
  .frame::before,.frame::after{
    content:"";position:absolute;width:20px;height:20px;border:1px solid rgba(255,255,255,.75);z-index:2;
  }
  .frame::before{top:14px;left:14px;border-right:none;border-bottom:none;}
  .frame::after{bottom:14px;right:14px;border-left:none;border-top:none;}

  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
  .about-copy p{margin-bottom:20px;font-weight:400;font-size:17px;}

  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .svc-icon{
    width:56px;height:56px;border-radius:14px;
    background:linear-gradient(135deg,#d84c52,var(--red));
    display:flex;align-items:center;justify-content:center;
    margin-bottom:22px;flex-shrink:0;
  }
  .svc-icon i{font-size:22px;color:#fff;}
  .svc-card{
    background:var(--paper);border:1px solid var(--line);border-radius:18px;
    padding:34px 30px;box-shadow:0 2px 10px rgba(19,20,22,0.03);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  }
  .svc-card:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(19,20,22,0.1);border-color:transparent;}
  .svc-card h3{font-size:20px;margin-bottom:12px;}
  .svc-card p{font-size:17px;font-weight:400;color:var(--text-body);}

  .gallery-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:40px;}
  .gallery-filters button{
    font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
    padding:10px 20px;border:1px solid var(--line);background:transparent;color:var(--text-body);
    cursor:pointer;border-radius:999px;transition:background .2s ease,color .2s ease,border-color .2s ease;
  }
  .gallery-filters button:hover{border-color:var(--red);color:var(--ink);}
  .gallery-filters button.active{background:var(--ink);border-color:var(--ink);color:#fff;}

  .gallery-masonry{columns:4;column-gap:20px;}
  .gallery-item{
    position:relative;overflow:hidden;cursor:pointer;break-inside:avoid;margin-bottom:20px;
    background:linear-gradient(135deg,#efece4,#e2ddd0);
  }
  .gallery-item img{width:100%;height:auto;display:block;transition:transform .45s ease;}
  .gallery-item:hover img{transform:scale(1.045);}
  .gallery-item::before,.gallery-item::after{
    content:"";position:absolute;width:18px;height:18px;border:1px solid rgba(255,255,255,.75);z-index:2;pointer-events:none;
  }
  .gallery-item::before{top:12px;left:12px;border-right:none;border-bottom:none;}
  .gallery-item::after{bottom:12px;right:12px;border-left:none;border-top:none;}
  .gallery-item .gallery-cap{
    position:absolute;left:0;right:0;bottom:0;padding:14px 16px 12px;z-index:2;
    background:linear-gradient(0deg,rgba(19,20,22,.78) 0%,rgba(19,20,22,0) 100%);
    opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .25s ease;
  }
  .gallery-item:hover .gallery-cap{opacity:1;transform:translateY(0);}
  .gallery-item .gallery-cap span{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#fff;}
  .gallery-item.hide{display:none;}

  .gallery-empty{display:none;text-align:center;padding:40px 0;color:var(--text-body);font-family:var(--font-mono);font-size:13px;}

  @media (max-width:1200px){.gallery-masonry{columns:3;}}
  @media (max-width:860px){.gallery-masonry{columns:2;}}

  .gallery-slider-nav{display:none;}
  @media (max-width:640px){
    .gallery-slider{position:relative;}
    .gallery-masonry{
      display:flex;
      columns:unset;
      overflow-x:auto;
      overflow-y:hidden;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      -ms-overflow-style:none;
    }
    .gallery-masonry::-webkit-scrollbar{display:none;height:0;}
    .gallery-item{
      flex:0 0 100%;
      width:100%;
      scroll-snap-align:start;
      margin-bottom:0;
    }
    .gallery-item img{height:320px;object-fit:cover;}
    .gallery-item.hide{display:none;}

    .gallery-slider-nav{
      display:flex;align-items:center;justify-content:center;
      position:absolute;top:50%;transform:translateY(-50%);
      width:40px;height:40px;border-radius:50%;
      background:rgba(19,20,22,.55);color:#fff;border:none;
      cursor:pointer;z-index:5;font-size:16px;
      transition:background .2s ease;
    }
    .gallery-slider-nav:hover{background:rgba(19,20,22,.8);}
    .gallery-slider-prev{left:8px;}
    .gallery-slider-next{right:8px;}

    .gallery-slider-dots{
      display:flex;justify-content:center;gap:8px;margin-top:16px;
    }
    .gallery-slider-dots button{
      width:8px;height:8px;border-radius:50%;padding:0;border:none;
      background:var(--line);cursor:pointer;transition:background .2s ease,transform .2s ease;
    }
    .gallery-slider-dots button.active{background:var(--red);transform:scale(1.2);}
  }

  .lightbox{
    position:fixed;inset:0;z-index:999;display:none;align-items:center;justify-content:center;
    background:rgba(12,12,13,.94);padding:40px;
    -webkit-user-select:none;-moz-user-select:none;user-select:none;
  }
  .lightbox img{-webkit-user-drag:none;}
  .lightbox.open{display:flex;}
  .lightbox-img-wrap{position:relative;max-width:min(1100px,92vw);max-height:88vh;}
  .lightbox img{display:block;max-width:100%;max-height:88vh;width:auto;height:auto;margin:0 auto;}

  .lightbox-prev,.lightbox-next{
    position:fixed;top:50%;transform:translateY(-50%);z-index:1000;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;
    width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    cursor:pointer;transition:background .2s ease;font-size:16px;
  }
  .lightbox-prev{left:24px;}
  .lightbox-next{right:24px;}
  .lightbox-close{
    position:fixed;top:20px;right:20px;z-index:1000;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;
    width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    cursor:pointer;transition:background .2s ease;font-size:16px;
  }
  .lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,.2);}
  .lightbox-counter{
    position:fixed;bottom:24px;left:0;right:0;text-align:center;z-index:1000;
    font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.7);
  }
  @media (max-width:760px){
    .lightbox{padding:16px;}
    .lightbox-close{top:12px;right:12px;width:40px;height:40px;}
    .lightbox-prev,.lightbox-next{top:auto;bottom:16px;transform:none;width:40px;height:40px;}
    .lightbox-prev{left:16px;}
    .lightbox-next{right:16px;}
    .lightbox-counter{bottom:26px;font-size:11px;}
  }

  .cap-section{padding:120px 0;}
  .cap-head{display:block;text-align:center;justify-content:center;margin-bottom:70px;}
  .cap-head h2{max-width:none;margin:6px auto 0;}
  .cap-head-rule{display:block;width:60px;height:3px;background:var(--red);border-radius:2px;margin:24px auto 0;}
  .cap-row{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
  .cap-row + .cap-row{margin-top:100px;}
  .cap-row .frame{aspect-ratio:16/9;border-radius:10px;}
  .cap-icon{
    width:52px;height:52px;border-radius:50%;border:1.4px solid var(--red);
    display:flex;align-items:center;justify-content:center;margin-bottom:26px;flex-shrink:0;
  }
  .cap-icon i{color:var(--red);font-size:19px;}
  .cap-text h2{
    font-family:var(--font-display);font-weight:500;text-transform:none;
    font-size:clamp(28px,3.4vw,42px);color:var(--ink);line-height:1.16;
  }
  .cap-text p{font-family:var(--font-body);font-weight:400;font-size:17px;line-height:1.8;color:var(--text-body);margin-top:20px;}
  .cap-text p + p{margin-top:16px;}

  @media (max-width:980px){
    .cap-row{grid-template-columns:1fr;gap:40px;}
    .cap-row .frame{max-width:520px;margin:0 auto;}
  }
  @media (max-width:640px){
    .cap-section{padding:80px 0;}
    .cap-row + .cap-row{margin-top:60px;}
  }

  .cta-band{background:var(--red);padding:80px 0;}
  .cta-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;}
  .cta-inner h2{color:#fff;font-size:clamp(28px,4vw,42px);max-width:560px;}

  @media (max-width:980px){
    .svc-grid{grid-template-columns:repeat(2,1fr);}
    .about-grid{grid-template-columns:1fr;gap:40px;}
  }
  @media (max-width:760px){
    .svc-grid{grid-template-columns:1fr;}
    section{padding:64px 0;}

    .hero{min-height:0;}
    .hero-content{padding-top:24px;padding-bottom:20px;}
    .hero h1{font-size:clamp(34px,9vw,54px);}
    .hero p.lead{font-size:17px;margin:20px auto 30px;}
    .cta-inner{flex-direction:column;align-items:flex-start;}

    .showcase{padding:56px 0 64px;}
    .showcase-grid{margin:24px 0;gap:28px;}
    .showcase-content p{margin-top:18px;}
    .showcase-content .btn{margin-top:26px;}

    .cap-section{padding:64px 0;}
    .cap-head{margin-bottom:40px;}
    .cap-row + .cap-row{margin-top:48px;}

    .section-head{margin-bottom:36px;}
    .cta-band{padding:50px 0;}
    .about-grid{gap:32px;}
  }
  @media (max-width:480px){
    section{padding:48px 0;}
    .showcase{padding:44px 0 50px;}
    .cap-section{padding:48px 0;}
    .cap-row + .cap-row{margin-top:36px;}
    .section-head{margin-bottom:28px;}
    .cap-head{margin-bottom:32px;}
    .cta-band{padding:40px 0;}
    .hero .btn{padding:13px 20px;font-size:15px;}
  }
