/* ===== Vercel Mono Minimal — Site 012 · Daum media bands (LIGHT) ===== */
:root{
  --bg:#FFFFFF; --surface:#FFFFFF; --surface-alt:#FAFAFA;
  --text:#0A0A0A; --muted:#666666;
  --border:#EAEAEA; --border-strong:#0A0A0A;
  --accent:#0060D0; --accent-2:#000000;
  --success:#0060D0; --warning:#F5A623; --danger:#C9343A;
  --font:"Pretendard","Pretendard Variable",-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic","맑은 고딕",sans-serif;
  --mono:"Geist Mono","JetBrains Mono","D2Coding",ui-monospace,SFMono-Regular,Consolas,monospace;
  --shell:1200px; --gutter:32px;
  --r-card:8px; --r-btn:6px; --r-input:6px; --r-tag:4px;
  --micro:140ms cubic-bezier(0.2,0,0,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--font);font-size:16px;line-height:1.65;
  letter-spacing:-0.01em;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:2px;
}
img,svg{display:block;max-width:100%}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ===== TICKER TOPLINE — signature ===== */
.ticker{
  height:28px;border-bottom:1px solid var(--border);
  background:var(--surface);overflow:hidden;
  display:flex;align-items:center;
}
.ticker__label{
  flex:0 0 auto;height:28px;display:flex;align-items:center;
  padding:0 12px;background:var(--accent-2);color:#fff;
  font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:0.04em;text-transform:uppercase;
}
.ticker__track{flex:1 1 auto;overflow:hidden;position:relative;white-space:nowrap}
.ticker__flow{
  display:inline-block;padding-left:100%;
  font-family:var(--mono);font-size:13px;line-height:28px;
  color:var(--text);font-variant-numeric:tabular-nums;
  animation:ticker 60s linear infinite;
}
.ticker__flow a{color:var(--text)}
.ticker__flow a:hover{color:var(--accent)}
.ticker__flow .sep{color:var(--accent);margin:0 14px}
.ticker__flow .ts{color:var(--muted);margin-right:6px}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}

/* ===== HEADER ===== */
.head{
  position:sticky;top:0;z-index:50;height:56px;
  background:var(--surface);border-bottom:1px solid var(--border);
}
.head__in{
  max-width:var(--shell);margin:0 auto;height:56px;padding:0 24px;
  display:flex;align-items:center;gap:24px;
}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.brand__mark{
  width:30px;height:30px;border:1px solid var(--border-strong);
  display:grid;place-items:center;font-family:var(--mono);
  font-weight:600;font-size:15px;color:var(--text);
}
.brand__name{font-weight:700;font-size:18px;letter-spacing:-0.03em}
.brand__name b{color:var(--accent)}
.nav{display:flex;align-items:center;gap:4px;flex:1 1 auto;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{
  height:56px;min-height:44px;display:flex;align-items:center;padding:0 12px;
  font-size:14px;font-weight:500;color:var(--muted);white-space:nowrap;
  border-bottom:2px solid transparent;transition:color var(--micro),border-color var(--micro);
}
.nav a:hover{color:var(--text)}
.nav a.is-active{color:var(--text);border-bottom-color:var(--border-strong)}
.head__act{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.search{position:relative;display:flex;align-items:center}
.search::before{
  content:">";position:absolute;left:10px;font-family:var(--mono);
  color:var(--muted);font-size:14px;pointer-events:none;
}
.search input{
  height:40px;width:200px;border:1px solid var(--border);border-radius:var(--r-input);
  padding:0 12px 0 26px;font-family:var(--mono);font-size:13px;color:var(--text);
  background:var(--surface);transition:border-color var(--micro),box-shadow var(--micro);
}
.search input::placeholder{color:var(--muted)}
.search input:focus{outline:none;border-color:var(--border-strong);box-shadow:0 0 0 1px var(--border-strong)}

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;height:40px;padding:0 16px;border-radius:var(--r-btn);
  font-family:var(--font);font-size:14px;font-weight:600;letter-spacing:-0.01em;
  border:1px solid transparent;cursor:pointer;white-space:nowrap;
  transition:background var(--micro),border-color var(--micro),color var(--micro);
}
.btn--primary{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}
.btn--primary:hover{background:#383838;border-color:#383838}
.btn--primary:active{background:#000}
.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border)}
.btn--secondary:hover{border-color:var(--border-strong)}

/* ===== SHELL ===== */
.shell{max-width:var(--shell);margin:0 auto;padding:0 24px}

/* category ribbon tag */
.tag{
  display:inline-flex;align-items:center;height:20px;padding:0 7px;
  background:var(--accent-2);color:#fff;border-radius:var(--r-tag);
  font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:0.03em;text-transform:uppercase;
}
.tag--accent{background:var(--accent)}
.tag--warn{background:var(--warning);color:#0A0A0A}
.tag--danger{background:var(--danger);color:#fff;font-weight:700}

/* shared media (4:3) */
.media{position:relative;aspect-ratio:4/3;background:var(--surface-alt);overflow:hidden}
.media .ph{width:100%;height:100%;object-fit:cover}
.cap-over{
  position:absolute;left:0;right:0;bottom:0;
  background:rgba(0,0,0,0.62);padding:10px 12px;
}
.cap-over h3{font-size:14px;line-height:1.35;font-weight:600;color:#fff;letter-spacing:-0.01em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rib{position:absolute;top:8px;left:8px}

/* ===== (1) FEATURED CLUSTER (hero band) ===== */
.featured{
  margin-top:24px;border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;
  display:grid;grid-template-columns:1.5fr 1fr;
}
.feat-main{position:relative;display:flex;flex-direction:column}
.feat-main .media{aspect-ratio:4/3;border-bottom:1px solid var(--border)}
.feat-main__body{padding:24px;display:flex;flex-direction:column;gap:14px}
.feat-main__meta{font-family:var(--mono);font-size:13px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.feat-main__meta b{color:var(--text)}
.feat-main__body h1{font-size:32px;line-height:1.2;font-weight:700;letter-spacing:-0.02em}
.feat-main__body h1 a{transition:color var(--micro)}
.feat-main__body h1 a:hover{color:var(--accent)}
.feat-main__body p{font-size:16px;color:var(--text);line-height:1.65;max-width:42ch}
.feat-main__act{display:flex;gap:8px;margin-top:2px;flex-wrap:wrap}

/* right secondary headline cluster */
.feat-side{border-left:1px solid var(--border);display:flex;flex-direction:column}
.feat-side__h{
  padding:12px 16px;border-bottom:1px solid var(--border);
  font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);
  letter-spacing:0.04em;text-transform:uppercase;
}
.feat-side__h .dot{color:var(--accent)}
.subhead{list-style:none;display:flex;flex-direction:column;flex:1 1 auto}
.subhead li{border-bottom:1px solid var(--border)}
.subhead li:last-child{border-bottom:none}
.subhead a{
  display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;
  padding:12px 16px;transition:background var(--micro);
}
.subhead a:hover{background:#F3F8FF}
.subhead .thumb{width:96px;aspect-ratio:4/3;border:1px solid var(--border);border-radius:var(--r-tag);overflow:hidden;background:var(--surface-alt)}
.subhead .thumb .ph{width:100%;height:100%;object-fit:cover}
.subhead .info{min-width:0;display:flex;flex-direction:column;gap:5px}
.subhead .info .t{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:-0.01em;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.subhead .info .m{font-family:var(--mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.subhead .info .m .c{color:var(--accent);font-weight:600}

/* ===== BAND scaffolding ===== */
.band{margin-top:56px}
.band__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding-bottom:12px;border-bottom:2px solid var(--border-strong);
}
.band__title{display:flex;align-items:baseline;gap:12px;min-width:0}
.band__key{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0.04em;white-space:nowrap}
.band__key .h{color:var(--accent)}
.band__head h2{font-size:25px;line-height:1.25;font-weight:600;letter-spacing:-0.02em}
.band__more{font-family:var(--mono);font-size:13px;color:var(--muted);transition:color var(--micro);white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.band__more:hover{color:var(--accent)}

/* horizontal 4:3 card row */
.cardrow{
  margin-top:20px;display:grid;gap:16px;
  grid-template-columns:repeat(4,1fr);
}
.hcard{
  border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;
  background:var(--surface);transition:border-color var(--micro);
  display:flex;flex-direction:column;
}
.hcard:hover{border-color:var(--border-strong)}
.hcard .media{border-bottom:1px solid var(--border)}
.hcard__body{padding:12px 14px;display:flex;flex-direction:column;gap:8px;flex:1 1 auto}
.hcard__title{font-size:15px;line-height:1.4;font-weight:600;letter-spacing:-0.01em;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color var(--micro)}
.hcard:hover .hcard__title{color:var(--accent)}
.hcard__meta{margin-top:auto;font-family:var(--mono);font-size:12px;color:var(--muted);
  display:flex;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums}
.hcard__meta .v{color:var(--text)}
.hcard__meta--pad{padding:10px 14px}

/* HOT band: small featured + timeline list */
.hotgrid{margin-top:20px;display:grid;grid-template-columns:300px 1fr;gap:var(--gutter);align-items:start}
.hotfeat{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--surface);transition:border-color var(--micro)}
.hotfeat:hover{border-color:var(--border-strong)}
.hotfeat .media{border-bottom:1px solid var(--border)}
.hotfeat__body{padding:14px}
.hotfeat__body h3{font-size:18px;line-height:1.3;font-weight:600;letter-spacing:-0.01em;margin-bottom:8px;transition:color var(--micro)}
.hotfeat:hover .hotfeat__body h3{color:var(--accent)}
.hotfeat__body p{font-size:14px;color:var(--muted);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.timeline{list-style:none;border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}
.row{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
  padding:14px 16px;border-bottom:1px solid var(--border);
  border-left:3px solid transparent;background:var(--surface);
  transition:background var(--micro),border-color var(--micro);min-height:44px;
}
.timeline .row:last-child{border-bottom:none}
.timeline .row:nth-child(even){background:var(--surface-alt)}
.row.is-new{border-left-color:var(--accent)}
.row:hover{background:#F3F8FF}
.row__ts{font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.row__main{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.row__title{
  font-size:15px;line-height:1.45;font-weight:500;letter-spacing:-0.01em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;
  transition:color var(--micro);
}
.row__title:hover{color:var(--accent)}
.row__by{font-family:var(--mono);font-size:12px;color:var(--muted)}
.row__meta{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.row__meta .c-cmt{color:var(--accent);font-weight:600}
.pager{margin-top:16px;display:flex;gap:8px;justify-content:flex-start;flex-wrap:wrap}
.pager a{
  min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border);border-radius:var(--r-btn);
  font-family:var(--mono);font-size:14px;color:var(--text);
  font-variant-numeric:tabular-nums;transition:border-color var(--micro),background var(--micro),color var(--micro);
}
.pager a:hover{border-color:var(--border-strong)}
.pager a.is-active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}

/* RANK band: number rows + tag chips */
.rankgrid{margin-top:20px;display:grid;grid-template-columns:1fr 1fr 240px;gap:var(--gutter);align-items:start}
.ranklist{list-style:none;border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}
.ranklist li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;
  padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface);
  transition:background var(--micro);min-height:44px}
.ranklist li:last-child{border-bottom:none}
.ranklist li:hover{background:#F3F8FF}
.ranklist .num{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--accent);width:24px;text-align:right;font-variant-numeric:tabular-nums}
.ranklist .num.top{color:var(--danger)}
.ranklist a.rt{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:-0.01em;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--micro)}
.ranklist a.rt:hover{color:var(--accent)}
.ranklist .rv{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.tagpanel{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.tagpanel__h{padding:12px 16px;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);letter-spacing:0.04em;text-transform:uppercase}
.tagpanel__h .dot{color:var(--accent)}
.tags{padding:16px;display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:inline-flex;align-items:center;min-height:44px;padding:0 12px;
  border:1px solid var(--border);border-radius:var(--r-tag);
  font-family:var(--mono);font-size:12px;color:var(--text);background:var(--surface);
  transition:border-color var(--micro),color var(--micro);
}
.chip:hover{border-color:var(--border-strong);color:var(--accent)}
.chip .n{color:var(--muted);margin-left:6px}

/* ===== FOOTER ===== */
.foot{margin-top:64px;border-top:1px solid var(--border);background:var(--surface)}
.foot__in{max-width:var(--shell);margin:0 auto;padding:32px 24px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}
.foot__col{display:flex;flex-direction:column;gap:8px}
.foot__col h4{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);letter-spacing:0.04em;text-transform:uppercase}
.foot__col a{font-size:13px;color:var(--muted);transition:color var(--micro);min-height:24px;display:inline-flex;align-items:center}
.foot__col a:hover{color:var(--accent)}
.foot__bar{border-top:1px solid var(--border)}
.foot__bar div{
  max-width:var(--shell);margin:0 auto;padding:16px 24px;
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;
}
.foot__sig{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:0.02em}
.foot__sig b{color:var(--text)}

/* ===== RESPONSIVE ===== */
@media (max-width:1024px){
  .featured{grid-template-columns:1.3fr 1fr}
  .cardrow{grid-template-columns:repeat(3,1fr)}
  .rankgrid{grid-template-columns:1fr 1fr;}
  .rankgrid .tagpanel{grid-column:1 / -1}
}
@media (max-width:768px){
  .head__in{padding:0 16px;gap:16px}
  .search input{width:140px}
  .shell{padding:0 16px}
  .featured{grid-template-columns:1fr}
  .feat-side{border-left:none;border-top:1px solid var(--border)}
  .feat-main__body h1{font-size:28px}
  .cardrow{grid-template-columns:repeat(2,1fr)}
  .hotgrid{grid-template-columns:1fr;gap:24px}
  .rankgrid{grid-template-columns:1fr;gap:24px}
  .rankgrid .tagpanel{grid-column:auto}
  .band{margin-top:48px}
}
@media (max-width:480px){
  .ticker__flow{font-size:12px}
  .brand__name{font-size:16px}
  .head__act .search{display:none}
  .feat-main__body{padding:20px}
  .feat-main__body h1{font-size:24px}
  .band__head h2{font-size:21px}
  .band__title{flex-wrap:wrap;gap:6px}
  .cardrow{grid-template-columns:1fr}
  .subhead a{grid-template-columns:80px 1fr}
  .subhead .thumb{width:80px}
  .row{grid-template-columns:1fr;gap:6px;padding:14px 14px 14px 16px}
  .row__meta{justify-content:flex-start}
  .ranklist li{grid-template-columns:auto 1fr auto}
  .foot__in{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  .ticker__flow{animation:none}
  *{transition-duration:0ms!important}
}

/* ============ gnuboard dynamic supplements (Vercel Mono Minimal) ============ */
/* thumb images inside .media wrappers */
.media img{width:100%;height:100%;object-fit:cover;display:block;}
.subhead .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
/* pager current page highlight (Gnuboard outputs <strong> or .now for current) */
.pager strong,.pager .now{
  min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums;
  background:var(--accent-2);color:#fff;border:1px solid var(--accent-2);
  border-radius:var(--r-btn);font-weight:700;
}
/* board list header */
.board-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:2px solid var(--border-strong);margin-bottom:20px;}
.board-list-head h1{font-size:25px;line-height:1.25;font-weight:600;letter-spacing:-0.02em;margin:0;}
.board-list-head .total{font-family:var(--mono);font-size:13px;color:var(--muted);}
/* board actions bar */
.board-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px;padding-top:16px;border-top:1px solid var(--border);}
.board-actions .board-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.board-actions select,.board-actions input[type=text]{height:40px;padding:0 12px;font-family:var(--font);font-size:14px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-input);}
/* board detail view */
.hm-board-view{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:28px;margin:32px auto 24px;max-width:920px;}
.hm-view-head{border-bottom:2px solid var(--border-strong);padding-bottom:16px;margin-bottom:20px;}
.hm-view-head .hm-board-kicker{font-family:var(--mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;}
.hm-view-head h1{font-size:28px;font-weight:700;line-height:1.25;color:var(--text);margin:0;letter-spacing:-0.02em;}
.hm-view-meta{display:flex;gap:14px;margin-top:12px;font-family:var(--mono);font-size:13px;color:var(--muted);flex-wrap:wrap;font-variant-numeric:tabular-nums;}
.hm-view-content{font-size:16px;line-height:1.8;color:var(--text);padding:8px 0 24px;border-bottom:1px solid var(--border);}
.hm-view-content img{max-width:100%;height:auto;border-radius:var(--r-card);}
.hm-view-content p{margin:0 0 16px;}
.hm-view-files{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;}
.hm-view-files a{font-family:var(--mono);font-size:13px;border:1px solid var(--border);border-radius:var(--r-tag);padding:6px 12px;color:var(--accent);background:var(--surface);}
.hm-view-neighbor{display:flex;flex-direction:column;gap:8px;margin:20px 0;}
.hm-view-neighbor a{display:flex;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-alt);}
.hm-view-neighbor span{font-family:var(--mono);font-size:12px;color:var(--muted);flex:0 0 auto;}
.hm-view-neighbor strong{font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hm-view-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px;}
.hm-view-actions a{min-height:40px;display:inline-flex;align-items:center;padding:0 16px;border:1px solid var(--border);border-radius:var(--r-btn);font-size:14px;font-weight:600;color:var(--text);background:var(--surface);}
.hm-view-actions a.is-primary{background:var(--accent-2);color:#fff;border-color:var(--accent-2);}
.hm-view-vote{display:flex;gap:10px;margin:16px 0;}
.hm-view-vote a{padding:8px 16px;border:1px solid var(--border);border-radius:var(--r-btn);color:var(--text);font-family:var(--mono);font-size:13px;}
