/* ─── 알고랩 제작 사례 상세 페이지 공용 스타일 (cases.html 디자인 토큰 상속) ─── */
:root{
  --bg:#0a0c0f;--bg2:#0f1217;--bg3:#161b22;--bg4:#1c2330;
  --border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.12);
  --gold:#c9a84c;--gold2:#e8c96a;--gold-dim:rgba(201,168,76,0.12);--gold-dim2:rgba(201,168,76,0.2);
  --text:#e8e6e0;--text2:#9a9690;--text3:#86847d;
  --green:#3fb950;--red:#f85149;
  --mono:'IBM Plex Mono',monospace;
  --serif:'Noto Serif KR',serif;
  --sans:'Noto Sans KR',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.8;}
a{color:var(--gold);text-decoration:none;}
a:hover{color:var(--gold2);}
.wrap{max-width:820px;margin:0 auto;padding:120px 24px 80px;}

.breadcrumb{font-family:var(--mono);font-size:11px;color:var(--text3);margin-bottom:30px;letter-spacing:.06em;}
.breadcrumb a{color:var(--text2);}
.breadcrumb a:hover{color:var(--gold);}

.case-tag{display:inline-block;font-family:var(--mono);font-size:10px;color:var(--gold);background:var(--gold-dim);border:1px solid var(--gold-dim2);padding:5px 12px;border-radius:999px;letter-spacing:.06em;margin-bottom:18px;text-transform:uppercase;}
h1{font-family:var(--serif);font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.28;letter-spacing:-.02em;margin-bottom:18px;}
h1 em{font-style:normal;color:var(--gold);}
.lead{font-size:17px;color:var(--text2);line-height:1.85;margin-bottom:28px;}

/* 플랫폼·언어·기간 메타 스트립 */
.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:52px;}
.meta-grid .cell{background:var(--bg2);padding:16px 18px;}
.meta-grid .k{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.meta-grid .v{font-size:13.5px;color:var(--text);font-weight:500;line-height:1.5;}

/* 본문 섹션 */
section.block{margin-bottom:44px;}
section.block h2{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--text);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border);letter-spacing:-.01em;}
section.block h2 .num{font-family:var(--mono);font-size:13px;color:var(--gold);margin-right:10px;font-weight:400;}
section.block p{color:var(--text2);line-height:1.85;margin-bottom:14px;}
section.block p strong{color:var(--text);font-weight:600;}

.feature-list{list-style:none;margin:6px 0 4px;}
.feature-list li{position:relative;padding-left:26px;color:var(--text2);line-height:1.75;margin-bottom:12px;}
.feature-list li::before{content:"";position:absolute;left:4px;top:11px;width:7px;height:7px;background:var(--gold);border-radius:2px;transform:rotate(45deg);}
.feature-list li strong{color:var(--text);font-weight:600;}

/* 기술 난제 강조 박스 */
.callout{background:linear-gradient(180deg,var(--bg3),var(--bg2));border:1px solid var(--gold-dim2);border-left:3px solid var(--gold);border-radius:0 12px 12px 0;padding:22px 24px;margin:18px 0;}
.callout .ctitle{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;}
.callout p{color:var(--text2);margin-bottom:0;line-height:1.8;}

/* 기술 스택 태그 */
.stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.stack span{font-family:var(--mono);font-size:11.5px;color:var(--text);background:var(--bg3);border:1px solid var(--border2);padding:7px 13px;border-radius:7px;letter-spacing:.02em;}

/* 관련 링크 */
.related{margin-top:12px;}
.related a{display:inline-flex;align-items:center;gap:6px;font-size:14px;margin-right:20px;}

code{font-family:var(--mono);font-size:12.5px;background:var(--bg4);color:var(--gold2);padding:2px 6px;border-radius:5px;word-break:break-all;}
.fig{margin:22px 0 6px;}
.fig img{width:100%;display:block;border-radius:12px;border:1px solid var(--border2);box-shadow:0 12px 34px rgba(0,0,0,0.45);}
.fig figcaption{font-family:var(--mono);font-size:12px;color:var(--text3);text-align:center;margin-top:11px;letter-spacing:.02em;}
.fig-hero{margin:8px 0 44px;}

.disclaimer{font-size:12px;color:var(--text3);line-height:1.7;margin-top:8px;padding:18px 22px;background:var(--bg2);border-left:3px solid var(--text3);border-radius:0 4px 4px 0;}

.cta-box{background:linear-gradient(180deg,var(--bg3),var(--bg2));border:1px solid var(--gold-dim2);border-radius:16px;padding:42px 28px;margin:56px 0 0;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,0.35);}
.cta-box h2{font-family:var(--serif);font-size:23px;margin-bottom:10px;border:0;padding:0;}
.cta-box p{color:var(--text2);margin-bottom:20px;}
.btn-primary{display:inline-block;background:linear-gradient(135deg,var(--gold2),var(--gold));color:#0a0c0f;font-weight:700;font-size:14px;padding:14px 32px;border-radius:8px;letter-spacing:.02em;box-shadow:0 8px 24px rgba(201,168,76,0.22);transition:transform .2s ease,box-shadow .2s ease;}
.btn-primary:hover{transform:translateY(-2px);color:#0a0c0f;box-shadow:0 11px 30px rgba(201,168,76,0.34);}
.btn-ghost{display:inline-block;border:1px solid var(--border2);color:var(--text);padding:14px 28px;border-radius:8px;font-size:14px;margin-left:8px;transition:border-color .2s ease,color .2s ease;}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

.back-link{display:inline-block;margin-top:44px;font-family:var(--mono);font-size:12px;color:var(--text2);letter-spacing:.04em;}
.back-link:hover{color:var(--gold);}

@media(max-width:600px){
  .wrap{padding:96px 18px 64px;}
  .btn-ghost{margin-left:0;margin-top:10px;}
}
