.portfolio-taepyung-page{
  --tp-green:#22793a;
  --tp-ink:#171917;
  --tp-muted:#686d68;
  --tp-line:rgba(23,25,23,.12);
  --tp-soft:#f5f7f4;
  background:#fff;
  color:var(--tp-ink);
}

.portfolio-taepyung-page .portfolio-detail-kicker{color:var(--tp-green)}
.portfolio-taepyung-page .portfolio-detail-live{border-color:rgba(34,121,58,.28)}
.portfolio-taepyung-page .portfolio-detail-index a:hover,
.portfolio-taepyung-page .portfolio-detail-back:hover{color:var(--tp-green)}

.tp-hero-note{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:16px 0 0;
  color:#8b908b;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.tp-intro-band{
  margin-top:78px;
  padding:0 0 92px;
  border-bottom:1px solid var(--tp-line);
}
.tp-band-label,.tp-section-label{
  margin:0 0 22px;
  color:var(--tp-green);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.tp-intro-band h2{
  max-width:980px;
  margin:0;
  font-size:clamp(38px,4.4vw,72px);
  line-height:1.05;
  letter-spacing:-.055em;
  font-weight:650;
}
.tp-intro-band>p:last-child{
  max-width:840px;
  margin:34px 0 0;
  color:var(--tp-muted);
  font-size:15px;
  line-height:1.9;
  letter-spacing:-.015em;
}

.tp-foundation{
  padding:92px 0 104px;
  border-bottom:1px solid var(--tp-line);
}
.tp-foundation-head{
  display:grid;
  grid-template-columns:minmax(180px,.45fr) minmax(0,1.55fr);
  gap:54px;
  margin-bottom:50px;
  align-items:start;
}
.tp-foundation-head h2{
  margin:0;
  font-size:clamp(30px,3vw,46px);
  line-height:1.15;
  letter-spacing:-.045em;
  font-weight:640;
}
.tp-foundation-head p{
  max-width:720px;
  margin:2px 0 0 auto;
  color:var(--tp-muted);
  font-size:14px;
  line-height:1.85;
}
.tp-foundation-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--tp-line);
  border-left:1px solid var(--tp-line);
}
.tp-foundation-cell{
  min-height:220px;
  padding:30px;
  border-right:1px solid var(--tp-line);
  border-bottom:1px solid var(--tp-line);
}
.tp-foundation-cell small{
  display:block;
  margin-bottom:58px;
  color:var(--tp-green);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
.tp-foundation-cell strong{
  display:block;
  margin-bottom:12px;
  font-size:25px;
  line-height:1.3;
  letter-spacing:-.035em;
  font-weight:650;
}
.tp-foundation-cell p{
  max-width:560px;
  margin:0;
  color:var(--tp-muted);
  font-size:13px;
  line-height:1.8;
}
.tp-values{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}
.tp-values span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border:1px solid var(--tp-line);
  border-radius:999px;
  color:#414641;
  font-size:11px;
  font-weight:650;
  letter-spacing:-.01em;
}

.tp-portfolio-section{
  padding:96px 0 110px;
  border-bottom:1px solid var(--tp-line);
}
.tp-section-head{
  display:grid;
  grid-template-columns:minmax(180px,.45fr) minmax(0,1.55fr);
  gap:54px;
  align-items:start;
  margin-bottom:42px;
}
.tp-section-head h2{
  max-width:820px;
  margin:0;
  font-size:clamp(30px,3.2vw,50px);
  line-height:1.14;
  letter-spacing:-.05em;
  font-weight:640;
}
.tp-section-copy{
  max-width:720px;
  margin:0 0 44px auto;
  color:var(--tp-muted);
  font-size:14px;
  line-height:1.85;
}
.tp-image-stack{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
}
.tp-image{
  margin:0;
  overflow:hidden;
  background:var(--tp-soft);
}
.tp-image img{
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  object-fit:contain;
}
.tp-image-note{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:12px;
  color:#9aa09a;
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.tp-closing{
  padding:100px 0 112px;
}
.tp-closing h2{
  max-width:900px;
  margin:0;
  font-size:clamp(38px,4.7vw,74px);
  line-height:1.02;
  letter-spacing:-.06em;
  font-weight:650;
}
.tp-closing p:last-child{
  max-width:760px;
  margin:30px 0 0;
  color:var(--tp-muted);
  font-size:14px;
  line-height:1.85;
}

@media(max-width:980px){
  .tp-foundation-head,.tp-section-head{grid-template-columns:1fr;gap:18px}
  .tp-foundation-head p,.tp-section-copy{margin-left:0}
}

@media(max-width:760px){
  .tp-hero-note{flex-direction:column;gap:6px;padding-top:12px}
  .tp-intro-band{margin-top:54px;padding-bottom:66px}
  .tp-intro-band h2{font-size:38px}
  .tp-intro-band>p:last-child{margin-top:24px;font-size:14px;line-height:1.8}
  .tp-foundation{padding:66px 0 74px}
  .tp-foundation-grid{grid-template-columns:1fr}
  .tp-foundation-cell{min-height:auto;padding:24px}
  .tp-foundation-cell small{margin-bottom:34px}
  .tp-portfolio-section{padding:68px 0 78px}
  .tp-section-head{margin-bottom:28px}
  .tp-section-copy{margin-bottom:30px;font-size:13px;line-height:1.8}
  .tp-image-stack{gap:12px}
  .tp-closing{padding:72px 0 82px}
  .tp-closing h2{font-size:42px}
}