:root{
  --black:#080808;
  --ink:#101010;
  --paper:#f1ede7;
  --warm:#d9c4af;
  --muted:#8d8984;
  --line:rgba(255,255,255,.11);
  --max:1280px;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--black);
  color:#f5f3ef;
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden;
}

a{
  text-decoration:none;
  color:inherit;
}

button,
input,
select{
  font:inherit;
}


/* =========================================
   CRIVU HEADER
========================================= */

.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;

  height:82px;
  padding:0 5vw;

  display:flex;
  align-items:center;
  justify-content:space-between;

  background:
    linear-gradient(
      180deg,
      rgba(8,8,8,.92),
      rgba(8,8,8,0)
    );

  transition:.35s ease;
}

.site-header.scrolled{
  height:68px;

  background:rgba(8,8,8,.78);

  backdrop-filter:blur(18px);

  border-bottom:
    1px solid rgba(255,255,255,.07);
}

.brand{
  font-size:27px;
  font-weight:700;
  letter-spacing:7px;
}

.main-nav{
  display:flex;
  align-items:center;
  gap:30px;
}

.main-nav a{
  font-size:12px;
  color:#d8d4cf;
  transition:.25s;
}

.main-nav a:hover{
  color:#fff;
}


/* =========================================
   DESIGNERS PAGE
========================================= */

.page{
  min-height:100vh;

  padding:
    150px
    6vw
    100px;

  position:relative;
  overflow:hidden;

  background:
    radial-gradient(
      ellipse at 80% 35%,
      rgba(217,196,175,.08),
      transparent 30%
    ),
    #080808;
}


/* Architectural circle */

.page:before{
  content:"";

  position:absolute;

  width:720px;
  height:720px;

  right:-250px;
  top:80px;

  border:
    1px solid
    rgba(217,196,175,.08);

  border-radius:50%;

  pointer-events:none;
}


/* Architectural arch */

.page:after{
  content:"";

  position:absolute;

  width:460px;
  height:700px;

  right:90px;
  top:170px;

  border:
    1px solid
    rgba(255,255,255,.06);

  border-bottom:0;

  border-radius:
    230px 230px 0 0;

  pointer-events:none;
}

.page-inner{
  max-width:var(--max);
  margin:auto;

  position:relative;
  z-index:2;
}


/* =========================================
   PAGE TITLE
========================================= */

.page-kicker{
  color:#bba996;

  font-size:10px;

  letter-spacing:3px;

  text-transform:uppercase;

  margin-bottom:16px;
}

.page-title{
  margin:0;

  font-size:
    clamp(
      48px,
      6vw,
      78px
    );

  line-height:.96;

  font-weight:300;

  letter-spacing:-4px;
}

.page-title span{
  color:var(--warm);
}

.page-subtitle{
  max-width:620px;

  margin:
    20px
    0
    42px;

  color:#8f8a84;

  font-size:14px;

  line-height:1.7;
}


/* =========================================
   FILTERS
========================================= */

.filters{
  display:flex;

  gap:12px;

  flex-wrap:wrap;

  margin-bottom:48px;
}

.filter-control{
  min-height:50px;

  padding:
    0
    17px;

  border:
    1px solid
    rgba(255,255,255,.14);

  border-radius:12px;

  background:#111;

  color:#eee;

  outline:none;
}

.filter-control:focus{
  border-color:
    rgba(217,196,175,.55);
}

select.filter-control{
  min-width:220px;
}

input.filter-control{
  width:250px;
}

.filter-control::placeholder{
  color:#716d68;
}


/* =========================================
   RESULT COUNT
========================================= */

.results-meta{
  color:#77736e;

  font-size:10px;

  letter-spacing:1.5px;

  text-transform:uppercase;

  margin-bottom:16px;
}


/* =========================================
   DESIGNER GRID
========================================= */

.designer-grid{
  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:15px;
}


/* =========================================
   DESIGNER CARD
========================================= */

.designer-card{
  overflow:hidden;

  border-radius:16px;

  background:#151515;

  border:
    1px solid
    var(--line);

  transition:.4s;
}

.designer-card:hover{
  transform:
    translateY(-6px);

  border-color:
    rgba(217,196,175,.32);
}


/* =========================================
   DESIGNER IMAGE
========================================= */

.designer-image{
  width:100%;

  height:285px;

  object-fit:cover;

  display:block;

  filter:saturate(.78);

  transition:.7s;
}

.designer-card:hover
.designer-image{
  transform:scale(1.035);

  filter:saturate(.95);
}


/* =========================================
   CARD CONTENT
========================================= */

.card-content{
  padding:19px;
}

.featured-badge{
  display:inline-block;

  margin-bottom:10px;

  color:#cdbba9;

  font-size:9px;

  letter-spacing:1.5px;

  text-transform:uppercase;
}

.designer-name{
  font-size:20px;

  font-weight:500;

  margin-bottom:7px;
}

.designer-role{
  color:#aaa39d;

  font-size:12px;

  margin-bottom:6px;
}

.designer-location{
  color:#77736e;

  font-size:11px;

  margin-bottom:14px;
}

.rating{
  color:var(--warm);

  letter-spacing:2px;

  font-size:13px;

  margin-bottom:17px;
}


/* =========================================
   VIEW PROFILE BUTTON
========================================= */

.profile-button{
  width:100%;

  min-height:46px;

  border:
    1px solid
    rgba(255,255,255,.22);

  border-radius:999px;

  background:var(--paper);

  color:#111;

  cursor:pointer;

  font-size:12px;

  font-weight:600;

  transition:.3s;
}

.profile-button:hover{
  transform:
    translateY(-2px);

  box-shadow:
    0 12px 30px
    rgba(0,0,0,.28);
}


/* =========================================
   LOADING / EMPTY
========================================= */

.loading,
.empty-state{
  grid-column:1 / -1;

  padding:70px 20px;

  text-align:center;

  color:#77736e;

  border:
    1px solid
    var(--line);

  border-radius:16px;

  background:#101010;
}


/* =========================================
   FOOTER
========================================= */

footer{
  padding:30px 6vw;

  background:#060606;

  border-top:
    1px solid
    var(--line);

  text-align:center;

  color:#625e59;

  font-size:10px;
}


/* =========================================
   TABLET
========================================= */

@media(max-width:980px){

  .designer-grid{
    grid-template-columns:
      repeat(2,1fr);
  }

  .page:after{
    right:-100px;
    opacity:.55;
  }

}


/* =========================================
   MOBILE
========================================= */

@media(max-width:680px){

  .site-header{
    height:70px;

    padding:
      0
      20px;
  }

  .brand{
    font-size:22px;

    letter-spacing:5px;
  }

  .main-nav{
    gap:11px;
  }

  .main-nav a:nth-child(1),
  .main-nav a:nth-child(3){
    display:none;
  }

  .page{
    padding:
      125px
      20px
      75px;
  }

  .page-title{
    font-size:51px;

    letter-spacing:-3px;
  }

  .page-subtitle{
    font-size:13px;

    margin-bottom:30px;
  }

  .filters{
    flex-direction:column;
  }

  select.filter-control,
  input.filter-control{
    width:100%;
  }

  .designer-grid{
    grid-template-columns:1fr;
  }

  .designer-image{
    height:275px;
  }

  .page:before{
    right:-360px;
    top:180px;
  }

  .page:after{
    right:-180px;
    top:250px;
  }

}