/* ==========================================================================
   Builpago Editorial Swiss Design System v1
   공유 디자인 시스템 — 모든 페이지 공통 스타일
   ========================================================================== */

:root{
  --ink:#0a0a0a;
  --paper:#ffffff;
  --gray-50:#fafafa;
  --gray-100:#f4f4f4;
  --gray-200:#e5e5e5;
  --gray-300:#cfcfcf;
  --gray-500:#8a8a8a;
  --gray-700:#4a4a4a;
  --accent:#e63946;
  --accent-soft:#fce8ea;
  --success:#2d7a4a;
  --warn:#b8860b;
  --warn-soft:#fdf6e3;
  --danger:#c0392b;
  --danger-soft:#fdf0ed;
  --sans:'Inter','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  --mono:'JetBrains Mono','SF Mono',Menlo,monospace;
  --max:1280px;
}

/* RESET */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  word-break:keep-all;
}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--accent);color:#fff}

/* 12-COL GRID */
.grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 40px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:24px;
}

/* NAV */
.nav{
  border-bottom:1px solid var(--ink);
  padding:18px 0;
  position:sticky;
  top:0;
  background:var(--paper);
  z-index:10;
}
.nav .grid{align-items:center}
.nav-brand{
  grid-column:1 / span 3;
  font-weight:800;
  font-size:15px;
  letter-spacing:-0.01em;
}
.nav-brand .dot{color:var(--accent)}
.nav-links{
  grid-column:4 / span 9;
  display:flex;
  justify-content:flex-end;
  gap:32px;
  flex-wrap:wrap;
}
.nav-links a{
  font-size:13px;
  font-weight:500;
  color:var(--ink);
  transition:color .15s ease;
}
.nav-links a:hover{color:var(--accent)}

/* MASTHEAD */
.masthead{
  padding:56px 0 40px;
  border-bottom:1px solid var(--ink);
}
.masthead-kicker{
  grid-column:1 / span 12;
  display:flex;
  align-items:baseline;
  gap:20px;
  margin-bottom:20px;
}
.masthead-kicker .num{
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  color:var(--accent);
  letter-spacing:0.08em;
}
.masthead-kicker .tag{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gray-500);
}
.masthead-title{
  grid-column:1 / span 10;
  font-size:clamp(36px,6vw,80px);
  font-weight:700;
  line-height:1.02;
  letter-spacing:-0.03em;
  margin-bottom:20px;
}
.masthead-title em{
  font-style:normal;
  color:var(--accent);
  font-weight:700;
}
.masthead-title--small{
  font-size:clamp(28px,4vw,52px);
}
.masthead-lede{
  grid-column:1 / span 8;
  font-size:17px;
  line-height:1.6;
  color:var(--gray-700);
  font-weight:400;
}
.masthead-lede--oneline{
  grid-column:1 / span 12;
  font-size:clamp(11px,1.1vw,14px);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* SECTION */
.section{padding:64px 0;border-bottom:1px solid var(--ink)}
.section:last-of-type{border-bottom:none}
.section-head{
  grid-column:1 / span 12;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:24px;
  align-items:baseline;
  margin-bottom:32px;
  padding-bottom:16px;
  border-bottom:1px solid var(--gray-200);
}
.section-number{
  grid-column:1 / span 2;
  font-family:var(--sans);
  font-size:clamp(48px,6vw,88px);
  font-weight:700;
  line-height:0.9;
  letter-spacing:-0.04em;
  color:var(--ink);
}
.section-number .slash{color:var(--accent)}
.section-title{
  grid-column:3 / span 7;
  font-size:clamp(24px,3vw,40px);
  font-weight:700;
  line-height:1.1;
  letter-spacing:-0.02em;
}
.section-title--oneline{
  grid-column:3 / span 10;
  font-size:clamp(18px,2vw,28px);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.section-kicker{
  grid-column:10 / span 3;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gray-500);
  text-align:right;
}

/* ESSAY */
.essay{
  grid-column:3 / span 7;
  font-size:16px;
  line-height:1.75;
  color:var(--gray-700);
}
.essay p{margin-bottom:18px}
.essay p:last-child{margin-bottom:0}
.essay strong{color:var(--ink);font-weight:700}
.essay h3{
  color:var(--ink);
  font-size:20px;
  font-weight:700;
  margin:28px 0 12px;
  letter-spacing:-0.015em;
}
.essay ul,.essay ol{margin:8px 0 16px 20px;line-height:1.9}
.essay li{margin-bottom:4px}
.essay a{color:var(--accent);border-bottom:1px solid var(--gray-200);transition:border-color .15s}
.essay a:hover{border-bottom-color:var(--accent)}

.essay-side{
  grid-column:10 / span 3;
  font-family:var(--mono);
  font-size:11px;
  line-height:1.9;
  color:var(--gray-500);
  padding-top:8px;
}
.essay-side .label{
  display:block;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--ink);
  font-weight:500;
  margin-bottom:8px;
  padding-bottom:8px;
  border-bottom:1px solid var(--gray-200);
}

/* WIDE TEXT (full width reading, used when no sidebar) */
.text-full{
  grid-column:1 / span 12;
  font-size:16px;
  line-height:1.75;
  color:var(--gray-700);
}
.text-full p{margin-bottom:18px;max-width:75ch}
.text-full strong{color:var(--ink);font-weight:700}

/* LIST (editorial) */
.list{grid-column:1 / span 12;margin-top:8px}
.list-row{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:24px;
  padding:22px 0;
  border-top:1px solid var(--gray-200);
  align-items:baseline;
  color:var(--ink);
  transition:background .15s ease,padding-left .15s ease;
}
.list-row:last-child{border-bottom:1px solid var(--gray-200)}
.list-row:hover{background:var(--gray-100);padding-left:12px}
.list-row:hover .list-arrow{color:var(--accent);transform:translateX(6px)}
.list-idx{
  grid-column:1 / span 1;
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  color:var(--accent);
  letter-spacing:0.06em;
  padding-top:4px;
}
.list-title{
  grid-column:2 / span 5;
  font-size:20px;
  font-weight:700;
  letter-spacing:-0.015em;
  line-height:1.25;
}
.list-desc{
  grid-column:7 / span 4;
  font-size:14px;
  line-height:1.55;
  color:var(--gray-700);
}
.list-kind{
  grid-column:11 / span 1;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--gray-500);
  text-align:right;
  padding-top:4px;
}
.list-arrow{
  grid-column:12 / span 1;
  font-family:var(--mono);
  font-size:18px;
  color:var(--gray-500);
  text-align:right;
  transition:color .15s ease,transform .2s ease;
}

/* CARDS */
.cards-wrap{grid-column:1 / span 12;margin-top:8px}
.cards{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:24px;
}
.card{
  grid-column:span 6;
  display:flex;
  flex-direction:column;
  padding:28px 24px 24px;
  border-top:1px solid var(--ink);
  border-right:1px solid var(--gray-200);
  color:var(--ink);
  background:var(--paper);
  transition:background .2s ease;
  min-height:180px;
}
.cards--three .card{grid-column:span 4}
.cards--three .card:nth-child(3n){border-right:none}
.cards--two .card{grid-column:span 6}
.cards--two .card:nth-child(2n){border-right:none}
.card:hover{background:var(--gray-100)}
.card .idx{
  font-family:var(--mono);
  font-size:11px;
  font-weight:500;
  color:var(--accent);
  letter-spacing:0.08em;
  margin-bottom:14px;
}
.card .kind{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gray-500);
  margin-bottom:12px;
}
.card .title{
  font-size:22px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-0.015em;
  margin-bottom:10px;
}
.card .desc{
  font-size:14px;
  line-height:1.6;
  color:var(--gray-700);
  margin-bottom:20px;
  flex:1;
}
.card .open{
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:0.04em;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding-top:14px;
  border-top:1px solid var(--gray-200);
}
.card .open .arrow{transition:transform .2s ease}
.card:hover .open{color:var(--accent)}
.card:hover .open .arrow{transform:translateX(4px)}

/* STATS */
.stats{
  grid-column:1 / span 12;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  column-gap:24px;
  padding:32px 0;
  border-top:1px solid var(--gray-200);
  border-bottom:1px solid var(--gray-200);
  margin:16px 0 32px;
}
.stat{text-align:left}
.stat-value{
  font-family:var(--sans);
  font-size:36px;
  font-weight:700;
  line-height:1;
  letter-spacing:-0.03em;
  color:var(--ink);
  margin-bottom:8px;
}
.stat-value .unit{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--gray-500);margin-left:4px}
.stat-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gray-500);
}

/* CTA banner */
.cta{
  grid-column:1 / span 12;
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:24px;
  padding:36px 0;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  align-items:center;
  transition:background .2s ease,color .2s ease;
}
.cta:hover{background:var(--ink);color:var(--paper)}
.cta:hover .cta-desc{color:var(--gray-300)}
.cta:hover .cta-arrow{color:var(--accent)}
.cta-lead{
  grid-column:1 / span 2;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent);
}
.cta-text{
  grid-column:3 / span 7;
  font-size:22px;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.25;
}
.cta-desc{
  display:block;
  font-size:13px;
  font-weight:400;
  color:var(--gray-500);
  margin-top:6px;
  letter-spacing:0;
}
.cta-arrow{
  grid-column:10 / span 3;
  font-family:var(--mono);
  font-size:28px;
  text-align:right;
  color:var(--accent);
  font-weight:500;
}

/* BUTTONS */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 24px;
  background:var(--ink);
  color:var(--paper);
  font-size:14px;
  font-weight:600;
  letter-spacing:-0.01em;
  border-radius:2px;
  transition:background .15s ease,color .15s ease;
  cursor:pointer;
}
.btn:hover{background:var(--accent)}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--ink);
}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}

/* FORM */
.form-grid{
  grid-column:3 / span 8;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  column-gap:24px;
  row-gap:20px;
}
.form-grid .full{grid-column:1 / -1}
.field label{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--gray-500);
  font-weight:500;
  margin-bottom:8px;
}
.field input,.field select,.field textarea{
  width:100%;
  padding:12px 0 10px;
  font-size:15px;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--gray-300);
  outline:none;
  transition:border-color .15s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--accent)}
.field textarea{min-height:120px;resize:vertical;line-height:1.6}

/* BOXES */
.info-box{
  background:var(--gray-100);
  border-left:2px solid var(--ink);
  padding:20px 24px;
  margin:16px 0;
}
.info-box-title{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:500;
  margin-bottom:10px;
}
.info-box p{font-size:14px;color:var(--gray-700);line-height:1.7;margin-bottom:6px}
.info-box p:last-child{margin-bottom:0}
.warn-box{
  background:var(--warn-soft);
  border-left:2px solid var(--warn);
  padding:16px 20px;
  margin:16px 0;
  font-size:13px;
  color:var(--warn);
  line-height:1.7;
}
.danger-box{
  background:var(--danger-soft);
  border-left:2px solid var(--danger);
  padding:16px 20px;
  margin:16px 0;
  font-size:13px;
  color:var(--danger);
  line-height:1.7;
}

/* BACK NAV */
.back-nav{
  grid-column:1 / span 12;
  margin-bottom:24px;
}
.back-nav a{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--gray-500);
  text-transform:uppercase;
  transition:color .15s ease;
}
.back-nav a:hover{color:var(--accent)}

/* FOOTER */
footer{
  padding:36px 0 48px;
  background:var(--ink);
  color:var(--gray-300);
}
footer .grid{align-items:start}
.foot-brand{
  grid-column:1 / span 4;
  font-weight:800;
  font-size:15px;
  color:var(--paper);
  letter-spacing:-0.01em;
}
.foot-brand .dot{color:var(--accent)}
.foot-brand small{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  font-weight:400;
  color:var(--gray-500);
  margin-top:6px;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.foot-links{
  grid-column:5 / span 4;
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:13px;
}
.foot-links a{color:var(--gray-300);transition:color .15s}
.foot-links a:hover{color:var(--accent)}
.foot-meta{
  grid-column:9 / span 4;
  font-family:var(--mono);
  font-size:11px;
  color:var(--gray-500);
  line-height:1.8;
  text-align:right;
}

/* RESPONSIVE */
@media(max-width:960px){
  .grid{padding:0 24px;column-gap:16px}
  .masthead{padding:40px 0 32px}
  .masthead-title{grid-column:1 / span 12}
  .masthead-lede{grid-column:1 / span 12}
  .section{padding:48px 0}
  .section-number{grid-column:1 / span 12;font-size:56px;margin-bottom:8px}
  .section-title{grid-column:1 / span 12}
  .section-kicker{grid-column:1 / span 12;text-align:left;padding-top:12px}
  .essay{grid-column:1 / span 12}
  .essay-side{grid-column:1 / span 12;margin-top:32px;padding-top:16px;border-top:1px solid var(--gray-200)}
  .list-row{grid-template-columns:1fr auto;row-gap:4px;padding:20px 0}
  .list-idx{grid-column:1 / span 1;grid-row:1}
  .list-arrow{grid-column:2;grid-row:1;text-align:right}
  .list-title{grid-column:1 / span 2;grid-row:2;margin-top:4px}
  .list-desc{grid-column:1 / span 2;grid-row:3}
  .list-kind{grid-column:1 / span 2;grid-row:4;text-align:left;padding-top:4px}
  .card,.cards--three .card,.cards--two .card{grid-column:span 12;border-right:none}
  .cta-lead{grid-column:1 / span 12;margin-bottom:12px}
  .cta-text{grid-column:1 / span 12;font-size:18px}
  .cta-arrow{grid-column:1 / span 12;text-align:left;margin-top:12px}
  .nav-brand{grid-column:1 / span 6}
  .nav-links{grid-column:7 / span 6;gap:18px}
  .stats{grid-template-columns:repeat(2,1fr);row-gap:24px}
  .form-grid{grid-column:1 / span 12;grid-template-columns:1fr}
  .foot-brand,.foot-links,.foot-meta{grid-column:1 / span 12;text-align:left;margin-bottom:20px}
}
