:root{--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--brand:#1893c9;--dark:#191919;--bg:#fff}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 "Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo",sans-serif;word-break:keep-all}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.site-head{border-bottom:1px solid var(--line);background:#fff}.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-weight:700;font-size:20px;color:var(--ink)}.site-head nav a{margin-left:22px;color:var(--ink);font-weight:500}
main{padding:36px 0 60px}

/* 카드 캐러셀: 전 카드가 DOM에 있고 가로 스크롤 스냅. 데스크톱 4장(원본 사이트와 동일), 태블릿 3장, 모바일 1.4장 */
.cards{position:relative;margin:0 0 44px}
.card-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 2px 8px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.card-track::-webkit-scrollbar{height:6px}.card-track::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}
.card{flex:0 0 calc((100% - 54px)/4);scroll-snap-align:start}
.card figure{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:1/1;background:#f3f4f6}.card img{width:100%;height:100%;object-fit:cover}
.card-title{margin:10px 6px 0;font-size:15px;line-height:1.5;text-align:center;font-weight:700}.card-title a{color:var(--ink)}
.card-nav{position:absolute;top:calc((100% - 72px)/2 - 42px);left:-14px;right:-14px;display:flex;justify-content:space-between;pointer-events:none;z-index:2}
.card-nav button{pointer-events:auto;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.card-nav button:hover{border-color:var(--brand);color:var(--brand)}.card-nav button:disabled{opacity:.3;cursor:default}
@media(max-width:900px){.card{flex-basis:calc((100% - 36px)/3)}}
@media(max-width:560px){.card-track{gap:12px}.card{flex-basis:70%}.card-nav{left:-6px;right:-6px}.card-nav button{width:34px;height:34px;font-size:22px}}

.post-body{max-width:820px;margin:0 auto}.post-body h2{font-size:22px;margin:44px 0 14px;padding-left:12px;border-left:4px solid var(--brand);line-height:1.4}
.post-body h3{font-size:17px;margin:26px 0 6px}.post-body p{margin:0 0 16px}.post-body li{margin:6px 0}
.post-body table{width:100%;border-collapse:collapse;margin:18px 0;font-size:15px}.post-body th,.post-body td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.post-body th{background:#f8fafc}
.post-body blockquote{margin:22px 0;padding:16px 20px;background:#f0f9ff;border:1px solid #7dd3fc;border-radius:10px}.post-body blockquote p:last-child{margin:0}
.post-head h1{font-size:24px;margin:0 0 6px;line-height:1.4}.post .meta{color:var(--muted);font-size:14px;margin:0 0 24px}.post .post-body img{margin:0 auto}
.post-nav{text-align:right}.btn{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:8px 16px;color:var(--ink)}
.board-title{font-size:22px;margin:0 0 16px}
table.board{width:100%;border-collapse:collapse;font-size:15px;margin-top:32px}table.board th,table.board td{border-top:1px solid var(--line);padding:11px 8px;text-align:center}table.board td.title{text-align:left}table.board td.no{color:var(--muted);width:56px}table.board a.current{font-weight:700}
@media(max-width:560px){table.board{font-size:14px}table.board td:last-child,table.board th:last-child{white-space:nowrap}}
.site-foot{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:13px}.site-foot p{margin:4px 0}.site-foot .foot-brand{color:var(--ink);font-weight:700;font-size:15px;margin-bottom:8px}
.post-body table.fact caption{caption-side:top;text-align:left;font-weight:700;padding:0 0 8px;color:var(--ink)}
.tbl{overflow-x:auto;margin:18px 0;-webkit-overflow-scrolling:touch}.tbl table{margin:0;min-width:100%}
@media(max-width:560px){.tbl table{font-size:14px;min-width:560px}.tbl table.fact{min-width:0}.post-body th,.post-body td{padding:8px 10px}}
