@charset "UTF-8";
/* ==========================================================================
   project.reseedcorp.com — main
   ========================================================================== */

/* HERO ------------------------------------------------------------------- */
.hero{
  position:relative;
  background:var(--c-dark);color:var(--c-dark-text);
  padding:96px 0 64px;
}
.header-sentinel{position:absolute;top:0;left:0;width:1px;height:1px}
.hero-inner{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  align-items:center;gap:64px;
}
.hero-title{
  max-width:12em;
  font-size:clamp(2.25rem,1.25rem + 2.4vw,3.5rem);
  font-weight:500;line-height:1.12;letter-spacing:-.02em;
}
.hero-desc{
  max-width:34rem;margin-top:24px;
  font-size:1.125rem;line-height:1.7;color:var(--c-dark-sub);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}

.hero-media{min-width:0}
.hero-video-box{
  position:relative;overflow:hidden;
  aspect-ratio:16/9;border-radius:var(--r-panel);
  background:var(--c-dark-card);
}
.hero-video{width:100%;height:100%;object-fit:cover}
.video-toggle{
  position:absolute;right:16px;bottom:16px;
  display:inline-flex;align-items:center;gap:8px;
  min-height:36px;padding:0 12px;border-radius:var(--r-btn);
  background:rgba(20,20,21,.78);color:var(--c-dark-text);
  font-size:.8125rem;
  transition:background-color var(--t-fast) var(--ease);
}
.video-toggle:hover{background:rgba(20,20,21,.92)}
/* 재생 중 = 정지 아이콘, 정지 상태 = 재생 아이콘 */
.video-toggle .ico{fill:currentColor;stroke:none}
.video-toggle .ico-play,
.video-toggle.is-paused .ico-pause{display:none}
.video-toggle.is-paused .ico-play{display:block}
.hero-caption{
  display:flex;gap:12px;margin-top:16px;
  font-size:.875rem;color:var(--c-dark-sub);
}
.hero-caption .mono{flex:none;color:var(--c-dark-text)}
.hero-caption a{transition:color var(--t-fast) var(--ease)}
.hero-caption a:hover{color:var(--c-dark-text);text-decoration:underline;text-underline-offset:3px}

.hero-facts{
  display:grid;grid-template-columns:repeat(3,max-content);justify-content:start;gap:32px 80px;
  margin-top:80px;padding-top:32px;border-top:1px solid var(--c-dark-line);
}
.fact dt{font-size:.8125rem;color:var(--c-dark-dim)}
.fact dd{margin-top:8px;font-size:.875rem;color:var(--c-dark-sub)}
.fact-num{
  display:block;margin-bottom:4px;
  font-family:var(--ff-display);font-size:1.75rem;font-weight:500;line-height:1.2;
  color:var(--c-dark-text);font-variant-numeric:tabular-nums;
}

/* 첫 화면 등장 1회 */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero-text,.hero-media{animation:rise var(--t-enter) var(--ease) both}
.hero-media{animation-delay:60ms}

/* SECTION ---------------------------------------------------------------- */
.section{padding-top:var(--section-gap)}
.section-head{margin-bottom:40px}
.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.section-title{font-size:2rem;font-weight:500;line-height:1.25;letter-spacing:-.01em}
.section-desc{margin-top:8px;color:var(--c-text-sub)}

/* CARD (공통) ------------------------------------------------------------ */
.card-link{display:block;height:100%}
.card-thumb{
  position:relative;overflow:hidden;
  aspect-ratio:4/3;border-radius:var(--r-card);
  background:var(--c-raised);
}
.card-thumb img,.card-thumb video{
  width:100%;height:100%;object-fit:cover;
  transition:opacity var(--t-fast) var(--ease);
}
.card-badge{
  position:absolute;top:12px;left:12px;
  padding:2px 8px;border-radius:4px;
  background:rgba(20,20,21,.78);color:var(--c-dark-text);
  font-size:.75rem;line-height:1.25rem;
}
.card-body{padding-top:16px}
.card-meta{display:flex;gap:12px;font-size:.75rem;line-height:1rem;color:var(--c-text-dim)}
.card-no{color:var(--c-text)}
.card-title{
  margin-top:8px;
  font-size:1.125rem;font-weight:500;line-height:1.45;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
.card-client{margin-top:4px;font-size:.875rem;color:var(--c-text-sub)}
.card-tags{margin-top:4px;font-size:.8125rem;color:var(--c-text-dim)}
.card-link:hover .card-thumb img,
.card-link:hover .card-thumb video{opacity:.88}
.card-link:hover .card-title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}

/* FEATURED --------------------------------------------------------------- */
.featured-list{
  display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  grid-template-rows:auto auto;gap:32px;
}
.featured-card .card-thumb{aspect-ratio:16/10}
.featured-card.is-lead{grid-row:1 / span 2}
.featured-card.is-lead .card-link{display:flex;flex-direction:column}
.featured-card.is-lead .card-thumb{flex:1;aspect-ratio:auto;min-height:360px}
/* 큰 카드는 오른쪽 두 카드 높이에 맞춤 — 이미지 원본 높이가 행 높이를 밀어내지 않게 */
.featured-card.is-lead .card-thumb img,
.featured-card.is-lead .card-thumb video{position:absolute;inset:0}
.featured-card.is-lead .card-title{font-size:1.5rem;line-height:1.35}

/* ARCHIVE ---------------------------------------------------------------- */
.archive-count{font-size:.9375rem;color:var(--c-text-sub)}
.archive-count .mono{margin-right:2px;color:var(--c-text)}

.filter{margin-bottom:40px}
.filter-list{display:flex;flex-wrap:wrap;gap:8px}
.filter-btn{
  min-height:40px;padding:0 16px;border-radius:var(--r-btn);
  border:1px solid var(--c-line-strong);background:var(--c-card);
  font-size:.9375rem;color:var(--c-text-sub);white-space:nowrap;
  transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.filter-btn:hover{background:var(--c-raised);color:var(--c-text)}
.filter-btn[aria-pressed="true"]{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-on-accent);font-weight:500}

.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px}
.archive-more{display:flex;justify-content:center;margin-top:56px}

/* SERVICES --------------------------------------------------------------- */
.service-list{border-bottom:1px solid var(--c-line)}
.service-item{
  display:grid;grid-template-columns:64px 200px minmax(0,1fr) auto;
  align-items:baseline;gap:24px;
  padding:32px 0;border-top:1px solid var(--c-line);
}
.service-no{font-size:.8125rem;color:var(--c-text-dim)}
.service-name{font-size:1.5rem;font-weight:500;line-height:1.3}
.service-body{max-width:40rem;color:var(--c-text-sub)}
.service-tags{margin-top:8px;font-size:.875rem;color:var(--c-text-dim)}
.service-link{
  display:inline-flex;align-items:center;gap:8px;min-height:40px;
  font-size:.9375rem;color:var(--c-text);white-space:nowrap;
  border-bottom:1px solid var(--c-line-strong);
  transition:border-color var(--t-fast) var(--ease);
}
.service-link:hover{border-bottom-color:var(--c-text)}

/* CLIENTS & AWARDS ------------------------------------------------------- */
.clients{padding-bottom:var(--section-gap)}
.clients-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.clients-col .section-title{margin-bottom:32px}
.client-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.client-list li{padding:12px 0;border-top:1px solid var(--c-line)}

.award-table{width:100%;font-size:.9375rem;text-align:left}
.award-table tr{border-top:1px solid var(--c-line)}
.award-table td,.award-table th{padding:12px 16px 12px 0;vertical-align:baseline}
.award-table td:first-child{width:64px;color:var(--c-text-dim);font-size:.8125rem}
.award-table td:nth-child(2){width:56px;color:var(--c-text-dim)}
.award-table th{width:96px;font-weight:500}
.award-table td:last-child{padding-right:0;color:var(--c-text-sub)}

/* CTA -------------------------------------------------------------------- */
.cta{background:var(--c-dark);color:var(--c-dark-text);padding:96px 0}
.cta-inner{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:end;gap:32px 64px;
}
.cta-title{font-size:clamp(1.75rem,1.2rem + 1.6vw,2.5rem);font-weight:500;line-height:1.2;letter-spacing:-.02em}
.cta-desc{margin-top:16px;color:var(--c-dark-sub)}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px}
.cta-contact{
  grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:12px 40px;
  margin-top:32px;padding-top:24px;border-top:1px solid var(--c-dark-line);
  font-size:.9375rem;
}
.cta-contact li{display:flex;align-items:baseline;gap:12px}
.cta-contact .mono{font-size:.75rem;color:var(--c-dark-dim)}
.cta-contact a{transition:color var(--t-fast) var(--ease)}
.cta-contact a:hover{color:var(--c-accent)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1280px){
  .hero-inner{gap:48px}
  .service-item{grid-template-columns:48px 160px minmax(0,1fr) auto}
}

@media (max-width:1024px){
  .hero{padding:64px 0 48px}
  .hero-inner{grid-template-columns:1fr;gap:48px}
  .hero-facts{margin-top:56px}

  .featured-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
  .featured-card.is-lead{grid-column:1 / -1;grid-row:auto}
  .featured-card.is-lead .card-thumb{flex:none;aspect-ratio:4/3;min-height:0}

  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px}

  .service-item{grid-template-columns:48px minmax(0,1fr);row-gap:12px}
  .service-body,.service-link{grid-column:2}
  .service-link{justify-self:start}

  .clients-inner{grid-template-columns:1fr;gap:64px}
  .client-list{grid-template-columns:repeat(3,minmax(0,1fr))}

  .cta{padding:80px 0}
  .cta-inner{grid-template-columns:1fr;align-items:start}
}

@media (max-width:768px){
  .hero{padding:48px 0 40px}
  .hero-desc{font-size:1rem}
  .hero-actions{margin-top:32px}
  .hero-facts{grid-template-columns:1fr;gap:0;margin-top:48px;padding-top:0;border-top:0}
  .fact{
    display:flex;justify-content:space-between;align-items:baseline;gap:16px;
    padding:16px 0;border-top:1px solid var(--c-dark-line);
  }
  .fact dd{margin-top:0;text-align:right}
  .fact-num{font-size:1.25rem}

  .section-head{margin-bottom:32px}
  .section-title{font-size:1.5rem}

  .featured-list{grid-template-columns:1fr;gap:40px}
  .featured-card .card-thumb{aspect-ratio:16/10}
  .featured-card.is-lead .card-thumb{aspect-ratio:4/3}
  .featured-card.is-lead .card-title{font-size:1.25rem}

  /* 필터: 한 줄 가로 스크롤 (페이지 가로 스크롤은 생기지 않음) */
  .filter{margin:0 calc(var(--gutter) * -1) 32px}
  .filter-list{
    flex-wrap:nowrap;overflow-x:auto;padding:0 var(--gutter) 4px;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .filter-list::-webkit-scrollbar{display:none}
  .filter-list li{flex:none}

  .client-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .award-table{font-size:.875rem}
  .award-table td:nth-child(2){display:none}

  .cta{padding:64px 0}
  .cta-actions .btn{flex:1 1 auto}
}

@media (max-width:480px){
  .hero-actions .btn{flex:1 1 100%}
  .hero-caption{flex-direction:column;gap:4px}

  .project-grid{grid-template-columns:1fr;gap:40px}
  .service-item{grid-template-columns:1fr;row-gap:8px;padding:24px 0}
  .service-body,.service-link{grid-column:1}
  .service-name{font-size:1.25rem}

  .award-table td:first-child{width:48px}
  .award-table th{width:72px}
}
