/**
 * 화면별 CSS — 메인 · 뉴스목록 · 기사 · 검색, 그리고 셋이 같이 쓰는 기사 카드.
 *
 * layout.css 는 **모든 화면에 깔리는 것**(헤더 · 푸터 · 드로어 · 광고 자리 · 토포AI)이고,
 * 여기는 **화면 안쪽**이다. 둘을 한 파일에 두면 layout.css 가 계속 커져 어디를 고쳐야
 * 하는지 알기 어려워진다.
 *
 * 색·치수·글자 크기는 전부 토큰이다. 생값을 쓰지 않는다.
 * 뼈대(.v3_container · .v3_cols · .v3_card · .v3_thumb · .v3_clamp_* · .t1~.b5m)는
 * base/components 가 준다. 여기서 다시 만들지 않는다.
 */

/* ── 기사 카드 ─────────────────────────────────────────────── */
/*
 * v5 의 목록 카드(Figma 369:22552)를 격자 한 벌로 옮긴 것이다.
 *
 *   모바일            [제목 | 썸네일] / [요약] / [메타]
 *   1024 이상         [제목 | 썸네일] / [요약 | ↑] / [메타 | ↑]  — 썸네일이 세 줄에 걸친다
 *
 * 요약·메타를 두 벌 그리지 않는 이유는 북마크 단추가 둘이 되기 때문이다.
 */
.article_card{
  display:grid;
  grid-template-columns:minmax(0,1fr) 117px;
  column-gap:var(--sp-4);
  padding-bottom:var(--sp-5);
  border-bottom:1px solid var(--border-default);
}
.article_card.has_no_thumb{grid-template-columns:minmax(0,1fr);}
.article_card + .article_card{margin-top:var(--sp-5);}

.article_card_title_link{grid-column:1 / 2;grid-row:1;min-width:0;}
.article_card_title{margin:0;color:var(--text-primary);}
.article_card_title_link:hover .article_card_title{color:var(--interactive-hover);}

.article_card_thumb{
  grid-column:2 / 3; grid-row:1; align-self:start;
  overflow:hidden; border-radius:var(--radius-lg);
  background:var(--placeholder-bg);
  width:117px; height:78px;
}
.article_card_thumb img{width:100%;height:100%;object-fit:cover;display:block;}

.article_card_summary_link{grid-column:1 / -1;grid-row:2;min-width:0;}
.article_card_summary{
  margin:0; padding-top:var(--sp-2);
  color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

.article_card_meta{grid-column:1 / -1;grid-row:3;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-4);}
.article_card_meta_left{
  display:flex; align-items:center; gap:var(--sp-2);
  min-width:0; overflow:hidden; white-space:nowrap;
  color:var(--text-tertiary);
}
.article_card_categories{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0;}
.article_card_dot{color:var(--text-disabled);}
/* 분류와 기자, 기자와 시각 사이의 세로 선 */
.article_card_divider{flex:none;width:1px;height:14px;background:var(--border-strong);}
.article_card_writer{display:flex;align-items:center;gap:var(--sp-1);min-width:0;}
.article_card_writer_image{width:20px;height:20px;border-radius:var(--radius-full);object-fit:cover;flex:none;}
.article_card_writer_name{overflow:hidden;text-overflow:ellipsis;}
.article_card_date{flex:none;}

.article_card_reactions{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3);
  color:var(--text-disabled);
}
.article_card_reaction_group{display:flex;align-items:center;gap:var(--sp-3);}
.article_card_reaction{display:inline-flex;align-items:center;gap:var(--sp-1);}
.article_card_reaction .v3_ic{width:16px;height:16px;}
/* 북마크 — 24 아이콘. 담으면 채운 아이콘 · 파랑(v5 BookmarkButton) */
.article_card_bookmark{display:flex;flex:none;align-items:center;padding:0;border:0;background:transparent;cursor:pointer;color:var(--text-disabled);}
.article_card_bookmark .v3_ic{width:24px;height:24px;}
.article_card_bookmark .ic_article_bookmark_filled,.article_card_bookmark.is_on .ic_article_bookmark{display:none;}
.article_card_bookmark.is_on .ic_article_bookmark_filled{display:block;}
.article_card_bookmark.is_on{color:var(--interactive-default);}

@media (min-width:1024px){
  .article_card{grid-template-columns:minmax(0,1fr) 184px;grid-template-rows:auto auto 1fr;}
  .article_card_thumb{grid-row:1 / 4;width:184px;height:122px;}
  .article_card_summary_link{grid-column:1 / 2;}
  .article_card_meta{grid-column:1 / 2;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--sp-4);}
  .article_card_reactions{justify-content:flex-end;}
}

/* compact — 좁은 칸(사이드 · 관련기사 · 메인 묶음). 제목과 시각만 */
.article_card_compact{grid-template-columns:minmax(0,1fr) 84px;padding-bottom:var(--sp-4);}
.article_card_compact.has_no_thumb{grid-template-columns:minmax(0,1fr);}
.article_card_compact + .article_card_compact{margin-top:var(--sp-4);}
.article_card_compact .article_card_title{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;}
.article_card_compact .article_card_thumb{width:84px;height:56px;}
.article_card_compact .article_card_meta{padding-top:var(--sp-2);}
@media (min-width:1024px){
  .article_card_compact{grid-template-columns:minmax(0,1fr) 84px;grid-template-rows:auto auto;}
  .article_card_compact .article_card_thumb{grid-row:1 / 3;width:84px;height:56px;}
  .article_card_compact .article_card_meta{grid-column:1 / 2;}
}

/* ── 기사 목록 (v5 ArticleList · ArticleRow) ─────────────────
 * 모바일   제목 왼쪽 · 그림 오른쪽 126×84 · 아래끝 정렬 · 줄마다 아래 실선
 * 1024↑   그림 왼쪽 132×88 · 위끝 정렬 · 실선 없음 · 칸 사이 32 · 1280 부터 2단
 * hover   그림 1.08 확대 · 제목 회색(v5 tp-thumb-list · tp-hover-dim)
 */
.article_list_wrap{display:grid;margin:0;padding:0;list-style:none;}
.article_list_item{border-bottom:1px solid var(--border-default);}
.article_list_wrap:not(.is_paged) > .article_list_item:last-child,
.article_list_item.is_page_end{border-bottom:0;}
.article_list_empty{margin:0;padding:var(--sp-6) 0;font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}

.article_row{display:flex;align-items:flex-end;gap:14px;padding:var(--sp-5) 0;}
.article_row_thumb{
  order:2; display:block; flex:none; overflow:hidden;
  border:1px solid var(--thumb-border); border-radius:var(--radius-lg); background:var(--surface-inset);
}
.article_row_thumb img{display:block;width:126px;height:84px;object-fit:cover;transition:transform .38s cubic-bezier(.2,.7,.3,1);}
.article_row:hover .article_row_thumb img{transform:scale(1.08);}
.article_row_body{order:1;display:flex;flex:1;flex-direction:column;min-width:0;}
/* 제목만 램프 밖이다 — 시안이 17px 로 못 박았다. 모바일 800 · 데스크톱 700 */
.article_row_title{
  display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:17px; font-weight:800; line-height:1.5; letter-spacing:-0.425px; color:var(--text-primary);
  transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.article_row:hover .article_row_title{color:var(--text-secondary);}
.article_row_meta{
  display:flex; align-items:center; gap:6px; margin-top:auto; padding-top:var(--sp-2);
  font-size:13px; font-weight:500; line-height:1.5; letter-spacing:-0.325px; color:var(--text-tertiary);
}
.article_row_coins{display:flex;flex:none;align-items:center;}
.article_row_coins img{width:16px;height:16px;border:1px solid var(--border-default);border-radius:var(--radius-full);object-fit:cover;}
.article_row_coins img + img{margin-left:-6px;}
.article_row_alpha{display:flex;flex:none;align-items:center;gap:var(--sp-1);font-weight:700;color:var(--interactive-default);}
.article_row_bar{flex:none;width:1px;height:10px;background:var(--border-strong);}
@media (min-width:1024px){
  .article_list_wrap{gap:var(--sp-8);padding-top:var(--sp-6);}
  .article_list_item{border-bottom:0;}
  .article_row{align-items:flex-start;gap:var(--sp-4);padding:0;}
  .article_row_thumb{order:1;border:0;}
  .article_row_thumb img{width:132px;height:88px;}
  .article_row_body{order:2;}
  .article_row_title{font-weight:700;}
  .article_row_meta{gap:var(--sp-2);font-size:14px;font-weight:400;letter-spacing:-0.35px;color:var(--text-secondary);}
  .article_row_bar{height:14px;}
}
@media (min-width:1280px){.article_list_wrap{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (prefers-reduced-motion:reduce){.article_row:hover .article_row_thumb img{transform:none;}}

/*
 * 넘김 목록(paged) — 모바일만 여섯 줄씩 옆으로 넘긴다. 칸 폭 = 화면 − 좌우 여백 40 − 비침 16.
 * 칸 사이 16 을 더하면 다음 쪽이 오른쪽 여백 안에서 반쯤 비친다. 데스크톱은 한 목록으로 되돌린다.
 */
.article_list_wrap.is_paged{
  width:max-content; grid-auto-flow:column; grid-auto-columns:calc(100vw - 56px);
  grid-template-rows:repeat(6,auto); column-gap:var(--sp-4);
}
.article_list_wrap.is_paged > [data-page-start]{scroll-snap-align:start;}
@media (min-width:1024px){
  .paged_scroller.home_paged{margin:0;padding:0;overflow:visible;scroll-snap-type:none;}
  .article_list_wrap.is_paged{width:auto;grid-auto-flow:row;grid-auto-columns:auto;grid-template-rows:none;column-gap:var(--sp-8);}
  .home_paged .tp_paged_item{opacity:1;}
  .home_paged_dots{display:none;}
}

/* ── 묶음 머리 (v5 SectionHeading) — 모바일 20 Black · 데스크톱 24 ── */
.section_heading_wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);}
.section_heading_title{margin:0;font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-0.5px;color:var(--text-primary);}
.section_heading_more{flex:none;}
.section_heading_more:hover{color:var(--text-primary);}
@media (min-width:1024px){.section_heading_title{font-size:24px;line-height:1.2;letter-spacing:-0.6px;}}

/* ══ 메인 (v5 app/(site)/page.tsx) ══════════════════════════════════════
 *
 * 모바일은 회색 바탕 위 흰 블록(home_block — 좌우 20 · 위아래 32) 사이 8px 틈이다(v5 MOBILE_SECTION).
 * 블록이 화면 끝까지 가므로 본문 칸은 컨테이너 여백을 걷는다. 데스크톱은 이어진 한 장 —
 * 바로가기 아래 80 · 본문 44 사이드바, 리서치 · 토픽은 위로 80 씩 띄운다.
 */
.home_shortcuts_box{display:none;}
.home_wrap{background:var(--surface-muted);}
.home_inner{display:flex;flex-direction:column;gap:var(--sp-2);padding-left:0;padding-right:0;}
.home_body{display:flex;flex:1;flex-direction:column;gap:var(--sp-2);min-width:0;}
.home_block{padding:var(--sp-8) var(--sp-5);background:var(--surface-default);}
@media (min-width:1024px){
  .home_shortcuts_box{display:block;}
  .home_wrap{padding:80px 0 40px;background:transparent;}
  .home_inner{flex-direction:row;gap:44px;padding-left:var(--page-gutter);padding-right:var(--page-gutter);}
  .home_body{display:block;}
  .home_block{padding:0;background:transparent;}
  .home_side{flex:none;width:326px;}
}
@media (min-width:1280px){.home_side{width:348px;}}

/* 뉴스 탭 (v5 TabGroup) — 74×39 · radius 8. 꺼진 탭은 흰 바탕에 테두리만 */
.home_news_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);}
.home_news_tabs{display:flex;gap:var(--sp-2);}
.home_tab{
  padding:var(--sp-2) var(--sp-3); border:1px solid var(--border-default); border-radius:var(--radius-md);
  background:var(--surface-default); cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:700; line-height:1.5; letter-spacing:-0.35px; color:var(--text-tertiary);
  transition:border-color .15s, color .15s;
}
.home_tab:hover{border-color:var(--border-strong);color:var(--text-secondary);}
.home_tab[aria-selected="true"]{border-color:transparent;background:var(--surface-selected);color:var(--text-inverse);}
.home_news_more{
  display:flex; flex:none; align-items:center; gap:var(--sp-1);
  font-size:15px; font-weight:500; line-height:1.6; letter-spacing:-0.375px; color:var(--text-secondary);
}
.home_news_more:hover{color:var(--text-primary);}
.home_news_more[hidden],.home_news_panel[hidden]{display:none;}

/* 토큰앱스 — 모바일만 · 여기만 좌우 16 */
.home_service_section{padding:var(--sp-8) var(--sp-4);background:var(--surface-default);}
.home_service_launcher{margin-top:var(--sp-4);}
@media (min-width:1024px){.home_service_section{display:none;}}

/* ── 서비스 바로가기 (v5 ServiceShortcuts · ServiceLauncher) ──
 * 모바일 3열 — 열 폭을 아이콘 폭 60 으로 못 박고 양끝으로 벌린다(양끝 아이콘이 화면 끝에서 40).
 * 데스크톱 한 줄 — 칸 104 × 6 가운데 정렬.
 */
.home_shortcuts{padding-top:var(--sp-6);}
.service_launcher{
  display:grid; grid-template-columns:repeat(3,60px); justify-content:space-between; row-gap:var(--sp-3);
  margin:0 var(--sp-6); padding:0; list-style:none;
}
.service_launcher_link{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) 0;}
.service_launcher_box{display:flex;align-items:center;justify-content:center;width:60px;height:60px;overflow:hidden;border-radius:16px;}
.service_launcher_icon{position:relative;display:block;flex:none;overflow:hidden;}
.service_launcher_icon img{position:absolute;max-width:none;}
.service_launcher_label{white-space:nowrap;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-secondary);}
.service_shortcuts_ad{margin-top:var(--sp-6);}
@media (min-width:1024px){
  .service_launcher{display:flex;width:fit-content;margin:0 auto;row-gap:0;}
  .service_launcher_item{flex:none;}
  .service_launcher_link{width:104px;padding-left:2px;padding-right:2px;}
}

/* ── 암호화폐 분위기 (v5 CryptoSentiment) — 모바일만 ── */
@media (min-width:1024px){.home_mobile_ad{display:none;}}
.crypto_sentiment_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-bottom:var(--sp-4);}
.crypto_sentiment_title_link{display:flex;align-items:center;gap:var(--sp-1);color:var(--text-primary);}
.crypto_sentiment_title{margin:0;font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-0.5px;color:var(--text-primary);}
.crypto_sentiment_title_link:hover .crypto_sentiment_title{text-decoration:underline;}
.crypto_sentiment_title_link .chevron_right_wrap{width:14px;height:14px;-webkit-mask-size:14px 14px;mask-size:14px 14px;}
.crypto_sentiment_card{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-lg);background:var(--surface-muted);}
.crypto_sentiment_card.is_positive{background:var(--status-up-bg);}
.crypto_sentiment_card.is_negative{background:var(--status-down-bg);}
.crypto_sentiment_coin{display:flex;align-items:center;gap:var(--sp-2);min-width:0;}
.crypto_sentiment_logo{display:block;flex:none;width:32px;height:32px;border-radius:var(--radius-full);background:var(--surface-inset);object-fit:cover;}
.crypto_sentiment_text{display:flex;flex-direction:column;min-width:0;}
.crypto_sentiment_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;line-height:24px;letter-spacing:-0.4px;color:var(--text-primary);}
.crypto_sentiment_quote{display:flex;align-items:center;gap:var(--sp-2);}
.crypto_sentiment_price{font-size:13px;font-weight:700;line-height:1.5;letter-spacing:-0.325px;color:var(--text-primary);}
.crypto_sentiment_change{display:flex;align-items:center;gap:3px;font-size:13px;font-weight:500;line-height:1.5;}
.crypto_sentiment_change.is_up{color:var(--status-up);}
.crypto_sentiment_change.is_down{color:var(--status-down);}
.crypto_sentiment_change.is_flat{color:var(--status-flat);}
.crypto_sentiment_side{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:var(--sp-1);text-align:right;font-size:13px;font-weight:600;line-height:1.5;letter-spacing:-0.325px;}
.crypto_sentiment_label{color:var(--text-secondary);}
.crypto_sentiment_tone{color:var(--text-secondary);}
.crypto_sentiment_card.is_positive .crypto_sentiment_tone{color:var(--status-up);}
.crypto_sentiment_card.is_negative .crypto_sentiment_tone{color:var(--status-down);}
.crypto_sentiment_basis{color:var(--text-tertiary);}

/* ── 리서치 · 토픽별 뉴스 — 데스크톱 리서치 → 토픽, 모바일 토픽 → 리서치(order) ── */
.home_research_topics{display:flex;flex-direction:column;gap:var(--sp-2);}
.home_research_box{order:2;}
.home_topics_box{order:1;}
@media (min-width:1024px){
  .home_research_topics{display:block;}
  .home_research_wrap,.home_topics_wrap{margin-top:80px;}
}

/* 리서치 (v5 HomeResearch) — 모바일 목록(표지 102×68 이 세 줄을 걸친다) · 데스크톱 카드 */
.home_research_list{margin:var(--sp-4) 0 0;padding:0;list-style:none;}
.home_research_item.has_line{border-bottom:1px solid var(--border-default);}
.home_research_item.is_desktop_only{display:none;}
.home_research_link{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;row-gap:var(--sp-1);padding:var(--sp-5) 0;}
.home_research_link.has_cover{grid-template-columns:minmax(0,1fr) 102px;column-gap:var(--sp-3);}
.home_research_meta{display:flex;align-items:center;gap:var(--sp-1);font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
.home_research_coins{display:flex;flex:none;align-items:center;}
.home_research_coins img{width:16px;height:16px;border:1px solid var(--border-default);border-radius:var(--radius-full);object-fit:cover;}
.home_research_coins img + img{margin-left:-6px;}
.home_research_category{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.home_research_bar{flex:none;width:1px;height:10px;margin:0 2px;background:var(--border-strong);}
.home_research_meta time{flex:none;white-space:nowrap;}
.home_research_badge{flex:none;margin-left:var(--sp-1);padding:2px 6px;border-radius:var(--radius-sm);background:var(--interactive-subtle);font-size:12px;font-weight:700;line-height:1.3;color:var(--interactive-default);}
.home_research_title{
  display:-webkit-box; min-width:0; overflow:hidden; -webkit-line-clamp:3; -webkit-box-orient:vertical;
  font-size:17px; font-weight:700; line-height:1.5; letter-spacing:-0.425px; color:var(--text-primary);
  transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.home_research_link:hover .home_research_title{color:var(--text-secondary);}
.home_research_cover{
  display:block; grid-column:2; grid-row:1 / span 3; align-self:center; width:102px; height:68px;
  overflow:hidden; border-radius:var(--radius-md); background:var(--surface-inset);
}
.home_research_cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .38s cubic-bezier(.2,.7,.3,1);}
.home_research_link:hover .home_research_cover img{transform:scale(1.1);}
.research_byline_wrap{grid-column:1;display:flex;align-items:center;gap:var(--sp-1);font-size:13px;line-height:1.5;letter-spacing:-0.325px;}
.research_byline_faces{display:flex;flex:none;align-items:center;}
.research_byline_face{position:relative;display:block;width:16px;height:16px;overflow:hidden;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-inset);}
.research_byline_face + .research_byline_face{margin-left:-6px;}
.research_byline_face img{display:block;width:100%;height:100%;object-fit:cover;}
.research_byline_extra{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--overlay-strong);font-size:8px;font-weight:700;line-height:1;color:var(--white);}
.research_byline_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);}
.research_byline_bar{flex:none;width:1px;height:10px;background:var(--border-strong);}
.research_byline_count{flex:none;color:var(--text-tertiary);}
@media (min-width:1024px){
  .home_research_list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-8) var(--sp-6);}
  .home_research_item.has_line{border-bottom:0;}
  .home_research_item.is_desktop_only{display:block;}
  .home_research_link,.home_research_link.has_cover{grid-template-columns:minmax(0,1fr);column-gap:0;row-gap:var(--sp-2);padding:0;}
  .home_research_cover{order:1;grid-column:auto;grid-row:auto;align-self:auto;width:100%;height:auto;aspect-ratio:258/178;border-radius:var(--radius-lg);}
  .home_research_meta{order:2;}
  .home_research_title{order:3;-webkit-line-clamp:2;font-size:18px;letter-spacing:-0.45px;}
  .research_byline_wrap{order:4;grid-column:auto;}
  .home_research_coins img,.research_byline_face{width:18px;height:18px;}
  .home_research_coins img + img,.research_byline_face + .research_byline_face{margin-left:-7px;}
}
@media (min-width:1280px){.home_research_list{grid-template-columns:repeat(3,minmax(0,1fr));}}

/* 토픽별 뉴스 (v5 HomeTopics) — 모바일 282 카드 가로 넘김 · 데스크톱 격자(1024 2열 · 1280 3열) */
.home_topics_track{
  display:flex; gap:var(--sp-3); margin:var(--sp-4) calc(var(--sp-5) * -1) 0; padding:0 var(--sp-5);
  overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-left:var(--sp-5);
  scrollbar-width:none;
}
.home_topics_track::-webkit-scrollbar{display:none;}
.home_topic_card{flex:none;width:282px;scroll-snap-align:start;}
.home_topic_card.is_c0{--topic-tone:var(--primary-08);}
.home_topic_card.is_c1{--topic-tone:var(--green-08);}
.home_topic_card.is_c2{--topic-tone:var(--topic-orange);}
.home_topic_card.is_c3{--topic-tone:var(--purple-08);}
.home_topic_name{display:none;}
.home_topic_articles{margin:0;padding:0;list-style:none;}
.home_topic_article.is_desktop_only{display:none;}
.home_topic_link{display:flex;flex-direction:column;gap:var(--sp-3);}
.home_topic_thumb{display:block;aspect-ratio:282/188;overflow:hidden;border:1px solid var(--thumb-border-soft);border-radius:var(--radius-lg);background:var(--surface-inset);}
.home_topic_thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .38s cubic-bezier(.2,.7,.3,1);}
.home_topic_link:hover .home_topic_thumb img{transform:scale(1.1);}
/* 제목은 늘 두 줄 높이(3em) — 한 줄 제목이 있어도 칸마다 아래 줄이 맞는다 */
.home_topic_article_title{
  display:-webkit-box; min-height:3em; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:17px; font-weight:800; line-height:1.5; letter-spacing:-0.425px; color:var(--text-primary);
  transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.home_topic_link:hover .home_topic_article_title{color:var(--text-secondary);}
.home_topic_meta{display:flex;align-items:center;gap:var(--sp-2);min-width:0;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
.home_topic_meta time{flex:none;white-space:nowrap;}
.home_topic_hash{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px;letter-spacing:-0.35px;color:var(--topic-tone);}
@media (min-width:1024px){
  .home_topics_track{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-8) var(--sp-6);margin:var(--sp-4) 0 0;padding:0;overflow:visible;}
  .home_topic_card{width:auto;min-width:0;}
  .home_topic_name{display:flex;align-items:center;gap:2px;padding-bottom:var(--sp-3);color:var(--topic-tone);}
  .home_topic_title{min-width:0;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;}
  .home_topic_name:hover .home_topic_title{text-decoration:underline;}
  .home_topic_chevron{flex:none;width:12px;height:12px;-webkit-mask-size:12px 12px;mask-size:12px 12px;}
  .home_topic_count{flex:none;margin-left:auto;padding-left:var(--sp-2);font-size:13px;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
  .home_topic_article{padding:var(--sp-5) 0;border-bottom:1px solid var(--border-default);}
  .home_topic_article:first-child{padding-top:0;}
  .home_topic_article:last-child{border-bottom:0;}
  .home_topic_article.is_desktop_only{display:block;}
  .home_topic_thumb{aspect-ratio:258/178;}
  .home_topic_article_title{font-size:18px;font-weight:700;letter-spacing:-0.45px;}
  .home_topic_meta{gap:var(--sp-1);font-size:14px;letter-spacing:-0.35px;}
  .home_topic_hash{display:none;}
}
@media (min-width:1280px){.home_topics_track{grid-template-columns:repeat(3,minmax(0,1fr));}}

/* ══ 뉴스 목록 (v5 components/news/news-list-view.tsx) ══════════════════ */
.news_list_view_wrap{padding-top:var(--sp-6);padding-bottom:var(--sp-6);}
.news_list_inner{display:flex;flex-direction:column;gap:40px;}
.news_list_body{flex:1;min-width:0;}
.news_list_side{width:100%;flex:none;}
@media (min-width:1024px){
  .news_list_view_wrap{padding-top:40px;padding-bottom:40px;}
  .news_list_inner{flex-direction:row;gap:44px;}
  .news_list_side{width:326px;}
}
@media (min-width:1280px){.news_list_side{width:348px;}}

.news_list_head{display:flex;align-items:baseline;gap:var(--sp-2);}
.news_list_title{margin:0;font-size:24px;font-weight:700;line-height:1.5;letter-spacing:-0.6px;color:var(--text-primary);}
.news_list_count{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}
.news_list_items{display:flex;flex-direction:column;gap:var(--sp-5);margin:0;padding:var(--sp-6) 0 0;list-style:none;}
.news_list_ad{padding-bottom:var(--sp-5);}
.news_list_empty{margin:0;padding:64px 0;text-align:center;font-size:15px;line-height:1.6;color:var(--text-tertiary);}

/* ── 분류 탭 (v5 CategoryTabs) — 가로로 넘친다. 오른쪽 20 흐림이 "더 있다" ── */
.category_tabs_wrap{padding-top:var(--sp-4);}
.h_scroller{position:relative;}
.category_tabs_track{
  margin:0 calc(var(--page-gutter) * -1); padding:0 var(--page-gutter) var(--sp-1);
  overflow-x:auto; scrollbar-width:none;
  -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent);
          mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent);
}
.category_tabs_track::-webkit-scrollbar{display:none;}
@media (min-width:1024px){.category_tabs_track{margin:0;padding:0 0 var(--sp-1);}}
.category_tabs_list{display:flex;gap:var(--sp-2);margin:0;padding:0;list-style:none;}
.category_tab_item{flex:none;}
/* `토픽` 단추는 모바일만 — 데스크톱은 목록 위 토픽 줄이 그 자리다 */
@media (min-width:1024px){.category_tab_item.is_topic{display:none;}}
.category_tab{
  display:block; padding:var(--sp-2) var(--sp-3); border:1px solid var(--border-default); border-radius:var(--radius-md);
  background:var(--surface-default); white-space:nowrap;
  font-size:14px; font-weight:700; line-height:1.5; letter-spacing:-0.35px; color:var(--text-tertiary);
}
.category_tab:hover{color:var(--text-secondary);}
.category_tab.is_on{border-color:var(--surface-selected);background:var(--surface-selected);color:var(--text-inverse);}
/* 양 끝 화살표 — 마우스(정밀 포인터)에서만. 손가락으로 미는 화면에는 안 뜬다 */
.h_scroller_arrow{
  position:absolute; top:50%; z-index:10; display:none; align-items:center; justify-content:center;
  width:28px; height:28px; padding:0; transform:translateY(-50%); cursor:pointer;
  border:1px solid var(--border-default); border-radius:var(--radius-full); background:var(--surface-default);
  box-shadow:var(--hscroll-shadow); color:var(--icon-secondary); transition:background-color .15s;
}
.h_scroller_arrow:hover{background:var(--surface-muted);}
.h_scroller_arrow .v3_ic{width:12px;height:12px;}
.h_scroller_arrow.is_left{left:-12px;}
.h_scroller_arrow.is_left .v3_ic{transform:rotate(180deg);}
.h_scroller_arrow.is_right{right:-12px;}
@media (pointer:fine){.h_scroller_arrow:not([hidden]){display:flex;}}

/* ── 쪽 번호 (v5 Pagination) — 모바일 5 · 데스크톱 10 묶음 ── */
.pagination_wrap{padding-top:40px;}
.paging_row{display:flex;align-items:center;justify-content:center;gap:var(--sp-5);}
.paging_row.is_desktop{display:none;}
@media (min-width:1024px){
  .paging_row.is_mobile{display:none;}
  .paging_row.is_desktop{display:flex;}
}
.paging_steps{display:flex;gap:var(--sp-2);}
.paging_numbers{display:flex;align-items:center;gap:var(--sp-1);}
.paging_number{
  display:flex; align-items:center; justify-content:center; height:32px; min-width:32px; padding:0 var(--sp-1);
  border-radius:var(--radius-xs); font-size:14px; line-height:1.5; letter-spacing:-0.35px; color:var(--text-secondary);
}
.paging_number:hover{background:var(--surface-muted);}
.paging_number.is_on{background:var(--interactive-subtle);font-weight:700;color:var(--interactive-default);}
.paging_step{
  display:flex; align-items:center; justify-content:center; width:32px; height:32px;
  border:1px solid var(--border-default); border-radius:var(--radius-xs); background:var(--surface-default); color:var(--icon-secondary);
}
a.paging_step:hover{background:var(--surface-muted);}
.paging_step.is_off{color:var(--border-strong);}
.paging_step .v3_ic{width:14px;height:14px;}
.paging_step .v3_ic.is_flip{transform:rotate(180deg);}

/* ══ 토픽 (v5 app/(site)/topics · TopicCard · TopicIntro) ══════════════════
 * 틀(본문 + 사이드바)은 뉴스 목록과 같다. 모바일 머리는 뉴스 목록 머리(`뉴스` + 분류 탭)다.
 */
.topics_title_desktop{display:none;}
@media (min-width:1024px){
  .topics_title_desktop{display:block;}
  .topics_head_mobile{display:none;}
}
/* 데스크톱 3열 카드 · 모바일은 줄 목록(줄 사이 선은 카드가 긋는다) */
.topic_card_grid{display:grid;grid-template-columns:minmax(0,1fr);margin:0;padding:var(--sp-2) 0 0;list-style:none;}
@media (min-width:1024px){.topic_card_grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--sp-6);row-gap:var(--sp-8);padding-top:var(--sp-4);}}
.topic_card{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5) 0;border-bottom:1px solid var(--border-default);}
.topic_card_thumb{display:block;flex:none;width:117px;height:78px;overflow:hidden;border:1px solid var(--thumb-border);border-radius:var(--radius-md);background:var(--surface-inset);}
.topic_card_thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s;}
.topic_card:hover .topic_card_thumb img{transform:scale(1.03);}
.topic_card_text{display:flex;flex:1;flex-direction:column;gap:var(--sp-1);min-width:0;}
.topic_card_count{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:-0.4px;color:var(--text-secondary);}
/* 모바일은 이름을 자르지 않는다 — 옆 그림 높이 안에서 두 줄까지 자연스럽다 */
.topic_card_name{font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;color:var(--text-primary);}
.topic_card:hover .topic_card_name{text-decoration:underline;}
@media (min-width:1024px){
  .topic_card{flex-direction:column;gap:var(--sp-3);padding:0;border-bottom:0;}
  .topic_card_thumb{width:100%;height:auto;aspect-ratio:258/178;border-radius:var(--radius-lg);}
  .topic_card_text{width:100%;}
  .topic_card_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
}

/* 토픽 상세 머리 — 640 부터 그림이 왼쪽으로 선다 */
.topic_intro_wrap{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);border:1px solid var(--border-default);border-radius:var(--radius-lg);}
.topic_intro_thumb{display:block;flex:none;width:100%;aspect-ratio:258/178;overflow:hidden;border:1px solid var(--thumb-border);border-radius:var(--radius-lg);background:var(--surface-inset);}
.topic_intro_thumb img{display:block;width:100%;height:100%;object-fit:cover;}
.topic_intro_text{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;}
.topic_intro_heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-2);margin:0;}
.topic_intro_title{font-size:24px;font-weight:700;line-height:1.5;letter-spacing:-0.6px;color:var(--text-primary);}
.topic_intro_count{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}
.topic_intro_desc{margin:0;white-space:pre-line;font-size:15px;font-weight:400;line-height:1.6;letter-spacing:-0.375px;color:var(--text-secondary);}
@media (min-width:640px){
  .topic_intro_wrap{flex-direction:row;align-items:flex-start;gap:var(--sp-6);}
  .topic_intro_thumb{width:220px;}
}

/* ══ 사이드바 (v5 components/common/sidebar.tsx) ═══════════════════════
 *
 * 모바일에서는 블록들이 본문 아래로 내려와 **흰 블록 + 8px 회색 띠**로 이어진다.
 * 띠가 화면 끝까지 가야 해서 사이드바를 감싼 칸이 컨테이너 여백을 걷어 낸다(.v3_bleed).
 * 데스크톱은 테두리 카드(radius 12 · 1px · 안여백 20) 사이 32.
 */
.sidebar_wrap{display:flex;flex-direction:column;gap:var(--sp-2);}
@media (max-width:1023px){
  /* width:auto — 100% 로 두면 음수 여백이 왼쪽으로 밀기만 하고 오른쪽은 안 늘어난다 */
  .article_view_side,.news_list_side{width:auto;margin-left:calc(var(--page-gutter) * -1);margin-right:calc(var(--page-gutter) * -1);}
}

/* 광고 — 모바일은 흰 블록 · 위아래 16, 데스크톱은 포장 없이(v5 AD_BOX) */
.sidebar_ad{padding:var(--sp-4) 0;background:var(--surface-default);}
.sidebar_after_top{background:var(--surface-default);}

/* MY 코인 자리 — 데스크톱 전용 */
.sidebar_top_box{display:none;}

/* TOP10 · 화면 블록(top) — 모바일 흰 블록 + 위 8px 띠. 팟캐스트는 띠 없이 칸 사이 8 만(v5 그대로) */
.sidebar_top10_box,.sidebar_market_box,.sidebar_end_box{
  padding:var(--sp-8) var(--sp-5);
  border-top:8px solid var(--surface-muted);
  background:var(--surface-default);
}
.sidebar_end_box{border-top:0;}
/* 기사 상세의 `기사 속 관련 암호화폐` — 모바일은 맨 위로(v5 order-first) */
.sidebar_market_box{order:-1;}
/* 마켓 동향은 데스크톱 전용 */
.sidebar_market_trend_box{display:none;}
/* 토큰포스트 앱 — 모바일 흰 블록(v5 MOBILE_SECTION) */
.sidebar_app_box{padding:var(--sp-8) var(--sp-5);background:var(--surface-default);}

@media (min-width:1024px){
  .sidebar_wrap{gap:var(--sp-8);}
  .sidebar_ad{padding:0;background:transparent;}
  .sidebar_top_box{display:flex;flex-direction:column;gap:var(--sp-8);}
  .sidebar_top10_box,.sidebar_market_box,.sidebar_end_box{
    padding:var(--sp-5); border:1px solid var(--border-default); border-radius:var(--radius-lg);
  }
  .sidebar_market_box{order:0;}
  .sidebar_market_trend_box{display:block;}
  .sidebar_app_box{padding:0;background:transparent;}
}

/* ── 묶음 머리 크기 (v5 SectionHeading size) ── */
.section_heading_title.is_sm{font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;}
.section_heading_title.is_block{font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-0.5px;}
@media (min-width:1024px){
  .section_heading_title.is_sm{font-size:18px;line-height:1.5;letter-spacing:-0.45px;}
  .section_heading_title.is_block{font-size:18px;font-weight:700;letter-spacing:-0.45px;}
}
/* 더보기 — 15px · 꺾쇠 */
.section_heading_wrap > .section_heading_more{
  display:flex;align-items:center;gap:var(--sp-1);padding-top:6px;
  font-size:15px;line-height:1.6;letter-spacing:-0.375px;color:var(--text-secondary);
}

/* ── TOP10 (v5 TopNews) ── */
.top_news_updated{flex:none;padding-top:6px;font-size:12.5px;font-weight:500;color:var(--text-tertiary);}
@media (min-width:1024px){
  .top_news_updated{padding-top:var(--sp-1);font-size:13px;}
}

/*
 * 장 넘김 상자(v5 PagedScroller). 블록 좌우 여백 밖까지 흘려 다음 장이 오른쪽 끝에서
 * 넘어온다. 끝 여백 36 이 있어야 마지막 장이 왼쪽까지 당겨진다.
 * container-type — 안쪽 칸 폭을 **이 상자 폭**(cqw)으로 잡는다.
 */
.paged_scroller{
  container-type:inline-size;
  margin:0 calc(var(--sp-5) * -1);
  padding:0 36px 0 var(--sp-5);
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-padding-left:var(--sp-5);
  scrollbar-width:none;
}
.paged_scroller::-webkit-scrollbar{display:none;}

.top_news_list{
  display:grid; width:max-content; margin:var(--sp-1) 0 0; padding:0; list-style:none;
  grid-auto-flow:column; grid-auto-columns:100cqw; grid-template-rows:repeat(5,auto);
  column-gap:var(--sp-5);
}
.top_news_item{border-bottom:1px solid var(--border-default);}
.top_news_item.is_page_end{border-bottom:0;}
.top_news_item.is_page_start{scroll-snap-align:start;}
.top_news_link{display:flex;align-items:center;gap:14px;height:100%;padding:var(--sp-3) 0;}
.top_news_rank{
  flex:none; width:22px; text-align:center;
  font-size:20px; font-weight:700; line-height:1.6; letter-spacing:-0.5px; color:var(--interactive-default);
}
.top_news_title{
  flex:1; min-width:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-size:17px; font-weight:700; line-height:1.5; letter-spacing:-0.425px; color:var(--text-primary);
  transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.top_news_link:hover .top_news_title{color:var(--text-secondary);}
/* 모바일 66×44 · 데스크톱 84×56. 크기·테두리는 감싼 쪽이 갖는다 — 확대된 그림을 잘라야 한다 */
.top_news_thumb{
  flex:none; display:block; width:66px; height:44px; overflow:hidden;
  border:1px solid var(--thumb-border); border-radius:var(--radius-md); background:var(--surface-inset);
}
.top_news_thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .38s cubic-bezier(.2,.7,.3,1);}
.top_news_link:hover .top_news_thumb img{transform:scale(1.08);}
@media (min-width:1024px){
  .top_news_link{gap:10px;padding:var(--sp-3) 0 var(--sp-5);}
  .top_news_thumb{width:84px;height:56px;}
}
@media (prefers-reduced-motion:reduce){.top_news_link:hover .top_news_thumb img{transform:none;}}

/* 지금 장이 아닌 칸 — 흐리게(tp_paged_item), TOP10 은 아예 감춘다(tp_paged_off) */
.tp_paged_item{
  opacity:calc(1 - .5 * min(1, max(var(--tp-i,0) - var(--tp-p,0), var(--tp-p,0) - var(--tp-i,0))));
  transition:opacity .25s ease;
}
.tp_paged_item.tp_paged_off{
  opacity:calc(1 - min(1, max(var(--tp-i,0) - var(--tp-p,0), var(--tp-p,0) - var(--tp-i,0))));
}

/* 장 표시 — 지금 장 16×6 알약, 나머지 6×6 점 */
.paged_dots{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--sp-4);}
.paged_dot{
  width:6px; height:6px; padding:0; border:0; border-radius:var(--radius-full); cursor:pointer;
  background:var(--border-default); transition:width .2s, background-color .2s;
}
.paged_dot.is_on{width:16px;background:var(--gray-05);}

/* ── 마켓 동향 (v5 MarketTrend) ── */
.market_trend_wrap{
  padding:var(--sp-5); border:1px solid var(--border-default); border-radius:var(--radius-lg);
  background:var(--surface-default);
}
.sidebar_market_list{margin:var(--sp-1) 0 0;padding:0;list-style:none;}
.sidebar_market_item{border-bottom:1px solid var(--border-default);}
.sidebar_market_item:last-child{border-bottom:0;}
.sidebar_market_link{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-5) 0;}
.sidebar_market_item:last-child .sidebar_market_link{padding:var(--sp-3) 0;}
.sidebar_market_logo{flex:none;display:block;width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover;background:var(--surface-inset);}
.sidebar_market_body{display:flex;flex-direction:column;gap:var(--sp-1);flex:1;min-width:0;}
.sidebar_market_name{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:14px; font-weight:700; line-height:1.3; letter-spacing:-0.35px; color:var(--text-primary);
  transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.sidebar_market_link:hover .sidebar_market_name{color:var(--text-secondary);}
.sidebar_market_meta{display:flex;align-items:center;gap:var(--sp-2);}
.sidebar_market_price{font-size:13px;line-height:1.5;letter-spacing:-0.325px;color:var(--text-primary);}
.sidebar_market_change{display:flex;align-items:center;gap:var(--sp-1);font-size:13px;line-height:1.5;letter-spacing:-0.325px;}
.sidebar_market_change.is_up{color:var(--status-up);}
.sidebar_market_change.is_down{color:var(--status-down);}
.sidebar_market_change.is_flat{color:var(--status-flat);}
.sidebar_market_sentiment{flex:none;width:68px;text-align:right;}
/* 분위기 — 긍정 빨강 · 중립 회색 · 부정 파랑(등락과 같은 규칙) */
.sentiment_badge{font-size:14px;font-weight:700;line-height:1.5;letter-spacing:-0.35px;}
.sentiment_badge.is_positive{color:var(--status-up);}
.sentiment_badge.is_neutral{color:var(--text-secondary);}
.sentiment_badge.is_negative{color:var(--status-down);}

/* ── 토큰포스트 앱 (v5 AppPromo · 369:22686) — 바탕·글자는 테마를 따르지 않는다 ── */
.app_promo_wrap{
  display:flex; flex-direction:column; gap:14px; padding:var(--sp-5);
  border-radius:var(--radius-lg); background:var(--app-promo-bg);
}
.app_promo_top{display:flex;align-items:center;gap:var(--sp-3);width:100%;}
.app_promo_qr{flex:none;display:block;}
.app_promo_qr img{display:block;width:74px;height:74px;border:1px solid var(--app-promo-qr-border);border-radius:10px;object-fit:cover;}
.app_promo_text{display:flex;flex-direction:column;flex:1;min-width:0;}
.app_promo_title{margin:0;font-size:20px;font-weight:800;line-height:1.6;letter-spacing:-0.5px;color:var(--black);}
.app_promo_desc{margin:0;padding-top:3px;font-size:14px;font-weight:600;line-height:1.5;letter-spacing:-0.35px;color:var(--gray-10);}
.app_promo_stores{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding-top:var(--sp-2);}
.store_btn{
  flex:1; min-width:0; display:flex; align-items:center; justify-content:center; gap:var(--sp-2);
  padding:var(--sp-1) var(--sp-2); border-radius:var(--radius-md); background:var(--black);
}
.store_btn img{flex:none;width:20px;height:25px;}
.store_btn_text{color:var(--white);}
.store_btn_top{display:block;font-size:13px;font-weight:700;line-height:1.3;letter-spacing:-0.325px;}
.store_btn_bottom{display:block;font-size:12px;font-weight:500;line-height:1.3;letter-spacing:-0.325px;}

/* ── 팟캐스트 (v5 Podcast · 185:16184) ── */
.sidebar_podcast_link{display:block;}
.sidebar_podcast_thumb{position:relative;display:block;}
.sidebar_podcast_image{display:block;width:100%;aspect-ratio:348 / 196;border-radius:var(--radius-md);object-fit:cover;background:var(--input-bg-disabled);}
.sidebar_podcast_play{
  position:absolute; left:50%; top:50%; width:48px; height:auto; transform:translate(-50%,-50%);
  opacity:.9; pointer-events:none; transition:opacity .15s;
}
.sidebar_podcast_link:hover .sidebar_podcast_play{opacity:1;}
.sidebar_podcast_title{
  margin:var(--sp-3) 0 0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-size:15px; font-weight:700; line-height:1.6; letter-spacing:-0.375px; color:var(--text-primary);
}
.sidebar_podcast_link:hover .sidebar_podcast_title{text-decoration:underline;}

/* ── 기사 속 관련 암호화폐 (v5 ArticleCoinSentiment · 332:11990) ── */
.article_coin_sentiment_list{display:flex;flex-direction:column;gap:var(--sp-3);margin:var(--sp-4) 0 0;padding:0;list-style:none;}
.article_coin_sentiment_card{display:block;padding:var(--sp-4) var(--sp-4) var(--sp-3);border-radius:var(--radius-lg);background:var(--surface-muted);}
.article_coin_sentiment_card.is_positive{background:var(--status-up-bg);}
.article_coin_sentiment_card.is_negative{background:var(--status-down-bg);}
.article_coin_sentiment_top{display:flex;align-items:center;gap:var(--sp-3);}
.article_coin_sentiment_logo{flex:none;display:block;width:40px;height:40px;border-radius:var(--radius-full);object-fit:cover;background:var(--surface-inset);}
.article_coin_sentiment_body{display:flex;flex-direction:column;flex:1;min-width:0;}
.article_coin_sentiment_name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;line-height:1.5;letter-spacing:-0.4px;color:var(--text-primary);}
.article_coin_sentiment_quote{display:flex;align-items:center;gap:var(--sp-2);}
.article_coin_sentiment_price{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.article_coin_sentiment_change{display:flex;align-items:center;gap:3px;font-size:14px;font-weight:500;line-height:1.5;}
.article_coin_sentiment_change.is_up{color:var(--status-up);}
.article_coin_sentiment_change.is_down{color:var(--status-down);}
.article_coin_sentiment_change.is_flat{color:var(--status-flat);}
.article_coin_sentiment_chevron{width:14px;height:14px;color:var(--text-tertiary);}
.article_coin_sentiment_foot{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-2);
  margin-top:var(--sp-3); padding-top:var(--sp-3); border-top:1px solid var(--divider-on-tone);
}
.article_coin_sentiment_label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;line-height:1.5;letter-spacing:-0.375px;color:var(--text-secondary);}
.article_coin_sentiment_card.is_positive .article_coin_sentiment_tone{color:var(--status-up);}
.article_coin_sentiment_card.is_negative .article_coin_sentiment_tone{color:var(--status-down);}
.article_coin_sentiment_basis{flex:none;font-size:13px;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}

/* ══ 기사 상세 (v5 app/(site)/news/[category]/[article]/page.tsx) ═════════
 *
 * 레일(60) · 본문(545 / 1280 이상 640) · 사이드바(326 / 348) 세 칸을 **가운데로 모은다** —
 * 왼쪽에 붙이면 남는 폭이 통째로 오른쪽에 몰린다. 어느 칸에도 최소 폭을 걸지 않는다(좁은 화면 가로 스크롤).
 * 모바일은 본문 → 사이드바 차례로 쌓이고, 레일 대신 헤더 자리 막대가 뜬다.
 */
.article_view_wrap{padding-top:var(--sp-6);padding-bottom:var(--sp-6);}
.article_view_inner{display:flex;flex-direction:column;gap:40px;}
.article_view_rail{order:2;flex:none;}
.article_view_body{order:1;display:flex;flex-direction:column;flex:1;min-width:0;}
.article_view_side{order:3;flex:none;align-items:flex-start;}
.article_view_article{min-width:0;}

@media (min-width:1024px){
  /* 헤더와 본문 사이 80 — 목록·홈과 같아 화면을 옮겨도 첫 줄이 같은 자리다 */
  .article_view_wrap{padding-top:80px;padding-bottom:40px;}
  .article_view_inner{flex-direction:row;justify-content:center;gap:var(--sp-8);}
  .article_view_rail{order:1;}
  .article_view_body{order:2;max-width:545px;}
  .article_view_side{width:326px;}
  .sticky_column{position:sticky;top:84px;}
}
@media (min-width:1280px){
  .article_view_body{max-width:640px;}
  .article_view_side{width:348px;}
}

/* 기사 광고 자리 — 위아래 24(v5 ARTICLE_AD_GAP). 소재가 없으면 칸도 안 생긴다 */
.article_ad{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-4);padding:var(--sp-6) 0;}
/* 맨 아래 광고 — 본문 칼럼이 아니라 영역 전체 폭 */
.article_view_bottom_ad{display:flex;justify-content:center;width:100%;padding:var(--sp-6) 0;}

/* ── 레일 (v5 ArticleActionRail · 332:11539) — 데스크톱만 ── */
.article_rail{display:none;}
@media (min-width:1024px){
  .article_rail{
    position:sticky; top:96px; display:flex; flex-direction:column; align-items:center; width:60px;
    padding:10px 0; border:1px solid var(--border-default); border-radius:30px;
    background:var(--surface-default); box-shadow:var(--elevation-1);
  }
}
.article_rail_btn{
  display:flex; flex-direction:column; align-items:center; gap:6px; width:60px;
  padding:11px 0 10px; border:0; border-radius:var(--radius-sm); background:transparent; cursor:pointer;
  font-family:inherit; font-size:12px; font-weight:600; line-height:1.5; color:var(--text-secondary);
}
.article_rail_btn:hover{color:var(--text-primary);}
/* 눌린 상태 — 추천은 빨강, 스크랩은 파랑. 아이콘도 속이 찬 모양으로 바뀐다(JS) */
.article_rail_btn.is_like.is_on,.article_rail_bar_btn.is_like.is_on{color:var(--badge);}
.article_rail_btn.is_scrap.is_on,.article_rail_bar_btn.is_scrap.is_on{color:var(--interactive-default);}
.article_rail_icon{position:relative;display:flex;}
/* 개수 배지(332:11553) — 세 자리가 넘으면 999+ */
.article_rail_badge{
  position:absolute; top:-6px; left:14px; display:flex; align-items:center; justify-content:center;
  height:18px; min-width:18px; padding:0 5px; border:1px solid var(--surface-default); border-radius:var(--radius-full);
  background:var(--badge); color:var(--text-inverse); font-size:10px; font-weight:800; line-height:1;
}
.article_rail_badge[hidden]{display:none;}

/* 모바일 헤더 자리 막대 — 높이 59, 헤더(z) 위. 제목이 헤더 뒤로 넘어가면 나타난다 */
.article_rail_bar{
  position:fixed; left:0; right:0; top:0; z-index:999;
  display:flex; align-items:center; justify-content:space-between; height:59px; padding:0 var(--sp-1);
  border-bottom:1px solid var(--border-default); background:var(--surface-default);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.article_rail_bar.is_pinned{opacity:1;pointer-events:auto;}
@media (min-width:340px){.article_rail_bar{padding:0 6px;}}
@media (min-width:1024px){.article_rail_bar{display:none;}}
.article_rail_bar_right{display:flex;align-items:center;min-width:0;}
.article_rail_bar_actions{display:flex;align-items:center;min-width:0;}
/* 44×44 — 평소 헤더 단추와 같은 상자라 막대가 덮어도 햄버거가 제자리다 */
.article_rail_bar_btn{
  position:relative; flex:none; display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0; border:0; border-radius:14px; background:transparent; cursor:pointer;
  color:var(--icon-primary); transition:background-color .15s;
}
.article_rail_bar_actions .article_rail_bar_btn{flex:0 1 44px;min-width:0;}
.article_rail_bar_btn:hover{background:var(--surface-subtle);}
.article_rail_bar_avatar{width:24px;height:24px;border-radius:var(--radius-full);object-fit:cover;}

/* ── 머리 (332:11663 ~ 332:11694) ── */
.article_header_top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);}
.article_header_categories{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
.article_header_category{display:flex;align-items:center;gap:var(--sp-1);}
.article_header_categories a:hover{color:var(--text-secondary);}
/* 구글 선호 출처 — 데스크톱만. 모바일에서는 줄을 다 먹는다 */
.article_header_google{
  display:none; flex:none; align-items:center; gap:6px; padding:6px var(--sp-3);
  border:1px solid var(--border-default); border-radius:var(--radius-full);
  font-size:13px; font-weight:500; line-height:1.5; letter-spacing:-0.325px; color:var(--text-secondary);
}
.article_header_google:hover{background:var(--surface-muted);}
@media (min-width:1024px){.article_header_google{display:flex;}}

.article_view_title{margin:0;padding-top:var(--sp-4);font-size:32px;font-weight:700;line-height:1.6;letter-spacing:-0.8px;color:var(--text-primary);word-break:keep-all;overflow-wrap:break-word;}

.article_header_coins{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding-top:var(--sp-4);}
/* 뉴스분위기: 중립(46) — 상자는 회색 하나, 글자색만 등급을 따른다. 누르면 기준 안내 */
.article_sentiment_badge{
  display:inline-flex; align-items:center; gap:var(--sp-1); padding:var(--sp-1) var(--sp-3);
  border:0; border-radius:var(--radius-full); background:var(--surface-muted); cursor:pointer;
  font-family:inherit; font-size:13px; font-weight:500; line-height:1.5; letter-spacing:-0.325px;
  transition:background-color .15s;
}
.article_sentiment_badge:hover{background:var(--surface-inset);}
.article_sentiment_label{color:var(--text-secondary);}
.article_sentiment_value{font-weight:700;}
.article_sentiment_value.is_positive{color:var(--status-up);}
.article_sentiment_value.is_neutral{color:var(--text-secondary);}
.article_sentiment_value.is_negative{color:var(--status-down);}
.article_sentiment_more{color:var(--text-tertiary);}
.article_coin_chip{
  display:flex; align-items:center; gap:6px; padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);
  border:1px solid var(--border-default); border-radius:var(--radius-full); transition:border-color .15s;
}
.article_coin_chip.is_link:hover{border-color:var(--border-strong);}
.article_coin_logo{flex:none;display:block;width:20px;height:20px;border-radius:var(--radius-full);object-fit:cover;background:var(--surface-inset);}
.article_coin_name{font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-primary);}
.article_coin_symbol{color:var(--text-tertiary);}

.article_byline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding-top:var(--sp-4);font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}
.article_byline_writer{display:flex;align-items:center;gap:6px;}
.article_byline_image{width:24px;height:24px;border-radius:var(--radius-full);object-fit:cover;}
.article_byline_divider{width:1px;height:14px;background:var(--border-strong);}

/* 기고자 — 한 명은 그대로, 여럿은 접었다 편다 */
.article_contributors{position:relative;display:flex;align-items:center;gap:6px;}
.article_contributor_face{flex:none;display:block;width:24px;height:24px;border-radius:var(--radius-full);object-fit:cover;background:var(--surface-inset);}
.article_contributor_name{font-weight:700;}
.article_contributor_name.is_link{color:var(--interactive-default);}
.article_contributor_name.is_link:hover{text-decoration:underline;}
.article_contributors_faces{display:flex;align-items:center;}
.article_contributors_more{
  display:flex; align-items:center; justify-content:center; width:24px; height:24px; margin-left:-8px;
  border-radius:var(--radius-full); background:var(--surface-inset); box-shadow:0 0 0 2px var(--surface-default);
  font-size:12px; font-weight:700; color:var(--text-secondary);
}
.article_contributors_toggle{display:flex;align-items:center;gap:var(--sp-1);padding:0;border:0;background:transparent;cursor:pointer;font:inherit;color:var(--text-secondary);}
.article_contributors_toggle:hover{color:var(--text-primary);}
.article_contributors_chevron{width:12px;height:12px;color:var(--icon-secondary);transition:transform .15s;}
.article_contributors.is_open .article_contributors_chevron{transform:rotate(180deg);}
.article_contributors_list{
  position:absolute; top:100%; left:0; z-index:30; display:flex; flex-direction:column; gap:var(--sp-3);
  width:260px; margin:var(--sp-2) 0 0; padding:var(--sp-4); list-style:none;
  border:1px solid var(--border-default); border-radius:var(--radius-lg); background:var(--surface-default);
  box-shadow:var(--elevation-pop);
}
.article_contributors_list[hidden]{display:none;}
.article_contributors_item{display:flex;align-items:flex-start;gap:10px;}
.article_contributors_item_text{display:flex;flex-direction:column;min-width:0;}
.article_contributors_item_position{font-size:13px;font-weight:400;color:var(--text-tertiary);}

/* ── 토포AI 요약 카드 (332:11704) ── */
.ai_summary_wrap{
  margin-top:var(--sp-6); padding:18px var(--sp-5);
  border:2px solid var(--interactive-default); border-radius:var(--radius-lg); background:var(--surface-subtle);
}
/* 받기 전 전문이 번쩍이지 않게 — JS 가 있을 때만 감춘다 */
.has_js .tp_typing[data-typing="pending"]{visibility:hidden;}
.ai_summary_head{display:flex;align-items:center;gap:var(--sp-2);}
.ai_summary_title{
  margin:0; font-size:18px; font-weight:700; line-height:1.5; letter-spacing:-0.45px;
  background:var(--ai-summary-title); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ai_summary_list{display:flex;flex-direction:column;gap:9px;margin:0;padding:13px 0 0;list-style:none;}
.ai_summary_item{display:flex;gap:9px;font-size:17px;line-height:1.5;letter-spacing:-0.425px;}
.ai_summary_num{flex:none;font-weight:700;color:var(--interactive-default);}
.ai_summary_text{font-weight:500;color:var(--text-primary);}
/* 아직 안 나온 글자는 투명하게 남긴다 — 지우면 줄 수가 바뀌어 상자가 들썩인다 */
.ai_summary_rest{opacity:0;}
.ai_gradient_text{background:var(--ai-brand-text);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:-0.35px;}
.article_qna_wrap{display:flex;flex-direction:column;gap:10px;}
.article_qna_wrap.has_top_line{margin-top:10px;padding-top:var(--sp-3);border-top:1px solid var(--border-default);}
.article_qna_title{display:flex;align-items:center;gap:6px;margin:0;}
.article_qna_orb{flex:none;width:20px;height:20px;}
.article_qna_list{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0;list-style:none;}
.article_qna_list li{max-width:100%;}
/* 칩은 흰 바탕 — 카드가 surface-subtle 이라 회색 알약이면 바탕에 묻힌다 */
.article_qna_btn{
  max-width:100%; padding:5px 9px; border:1px solid var(--border-default); border-radius:var(--radius-full);
  background:var(--surface-default); cursor:pointer; text-align:left;
  font-family:inherit; font-size:14px; font-weight:500; line-height:1.5; letter-spacing:-0.35px; color:var(--text-secondary);
  transition:border-color .15s, color .15s;
}
.article_qna_btn:hover{border-color:var(--interactive-default);color:var(--interactive-default);}
.ai_summary_foot{display:flex;flex-direction:column;gap:var(--sp-1);margin-top:10px;padding-top:10px;border-top:1px solid var(--border-default);}
.ai_summary_notice{margin:0;font-size:12px;line-height:1.5;color:var(--text-tertiary);}
.ai_summary_ask_btn{display:flex;align-items:center;gap:var(--sp-1);width:fit-content;padding:0;border:0;background:transparent;cursor:pointer;}
/* 화살표도 글자와 **같은 물감** — currentColor 면 글자만 흐르고 화살표는 따로 논다 */
.ai_summary_ask_chevron{
  flex:none; width:12px; height:12px; background:var(--ai-brand-text);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M4.5 2.5L8 6l-3.5 3.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M4.5 2.5L8 6l-3.5 3.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
}

/* ── 동영상·오디오 · 대표 이미지 ── */
.article_media_embeds_wrap{padding-top:var(--sp-6);}
/* 임베드는 width=560 height=315 처럼 고정 크기다 — 16:9 상자에 꽉 채운다(v4 .viewContentVideo) */
.article_media{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-md);}
.article_media + .article_media{margin-top:var(--sp-4);}
.article_media iframe,.article_media video,.article_media embed,.article_media object{position:absolute;inset:0;width:100%;height:100%;max-width:100%;border:0;}
.article_cover_image_wrap{margin:0;padding-top:var(--sp-6);}
.article_cover_image_wrap.is_in_body{padding:var(--sp-6) 0;}
/* 폭은 최대만 칸 폭 — 작은 원본이 늘어나 뭉개지지 않게. 확대 표시가 그림 모서리에 붙는다 */
.article_cover_button{position:relative;display:block;width:fit-content;max-width:100%;margin:0 auto;padding:0;border:0;background:transparent;cursor:zoom-in;}
.article_cover_image{display:block;max-width:100%;height:auto;border-radius:var(--radius-md);}
.article_cover_extend{position:absolute;top:10px;right:10px;}
.article_cover_caption{padding-top:var(--sp-2);font-size:13px;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}

/* ── 본문 (v5 .tp-article-body) ──
 * 관리자가 저장한 HTML 을 태그별로 그린다. 글자크기 팝업이 --tp-article-font-scale 을 바꾼다 —
 * em 이 아니라 변수다. em 은 중첩될 때마다 곱해져 <blockquote><p> 안이 두 배가 된다.
 * 기준 18px 은 v4 와 같다(view.volt:1745 의 `보통`).
 */
.tp_article_body{
  --tp-article-font-scale:1;
  padding-top:var(--sp-8);
  font-size:calc(18px * var(--tp-article-font-scale)); line-height:1.8; color:var(--article-body-text);
  word-break:break-word; overflow-wrap:break-word; min-width:0; max-width:100%;
}
.tp_article_body iframe,.tp_article_body video,.tp_article_body embed,.tp_article_body object{max-width:100% !important;}
.tp_article_body figure,.tp_article_body blockquote{max-width:100%;}
/* 표·코드는 줄일 수 없어 그 안에서 가로로 스크롤한다 — 페이지 전체가 밀리지 않게 */
.tp_article_body table,.tp_article_body pre{display:block;max-width:100%;overflow-x:auto;}
.tp_article_body p{margin:0 0 1.2em;}
/* 인라인 크기가 박힌 그림이 있다(`style="width:800px"`) — v4 와 같게 !important */
.tp_article_body img{max-width:100% !important;height:auto !important;border-radius:var(--radius-md);}
.tp_article_body .caption{margin-top:var(--sp-2);font-size:calc(13px * var(--tp-article-font-scale));color:var(--text-tertiary);}
.tp_article_body a{color:var(--interactive-default);text-decoration:underline;}
.tp_article_body h2,.tp_article_body h3{margin:1.6em 0 .6em;font-weight:700;color:var(--text-primary);}
.tp_article_body h2{font-size:calc(20px * var(--tp-article-font-scale));}
.tp_article_body h3{font-size:calc(18px * var(--tp-article-font-scale));}
.tp_article_body blockquote{margin:1.2em 0;padding:var(--sp-3) var(--sp-4);border-left:3px solid var(--border-strong);background:var(--surface-subtle);}
.tp_article_body hr{margin:2em 0;border:0;border-top:1px solid var(--border-default);}
.tp_article_body .tp-faq-answer{margin:0 0 1.2em;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text-secondary);}
.tp_article_body .img_area2{cursor:zoom-in;}
/* 본문 속 AI 기사요약 상자 — 배경이 인라인이라 다크에서만 덮는다(라이트는 편집자 색 그대로) */
html.dark .tp_article_body .ai_summary{background-color:var(--article-ai-box-dark) !important;color:var(--text-secondary);}
html.dark .tp_article_body .ai_summary strong{color:var(--text-primary);}
.article_body_empty{padding:64px 0;margin:0;font-size:15px;color:var(--text-tertiary);}

/* ── 저작권 · 제보 · 태그 · 구독 (332:11756) ── */
.article_footer_wrap{padding-top:var(--sp-6);}
.article_footer_line,.article_footer_tags{margin:0;font-size:12.5px;line-height:23px;letter-spacing:-0.45px;color:var(--text-tertiary);}
.article_footer_link{font-weight:600;color:var(--interactive-default);}
.article_footer_link:hover{text-decoration:underline;}
.article_footer_tags{display:flex;flex-wrap:wrap;column-gap:var(--sp-2);color:var(--text-disabled);}
.article_footer_tags a:hover{color:var(--text-tertiary);text-decoration:underline;}
.article_follow_wrap{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-5);}
.follow_btn{
  display:flex; align-items:center; justify-content:center; gap:var(--sp-2); min-width:0; height:var(--btn-h);
  padding:0 var(--sp-3); border:1px solid var(--border-default); border-radius:var(--radius-md); background:var(--surface-default);
}
.follow_btn:hover{border-color:var(--border-strong);}
.follow_btn img{flex:none;width:24px;height:24px;}
.follow_btn_label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;letter-spacing:-0.38px;color:var(--text-primary);}
@media (min-width:640px){
  .article_follow_wrap{flex-direction:row;gap:var(--sp-4);}
  .follow_btn{flex:1;}
}

/* ── 페이월 (제한 기사 — v4 content_blind_level_1) ── */
.article_paywall_wrap{padding-top:var(--sp-2);}
/* 잘린 마지막 문단을 덮는 흐림 — 위 문단과 겹치도록 끌어올린다. 링크는 눌려야 한다 */
.article_paywall_mask{height:96px;margin-top:-96px;pointer-events:none;background:linear-gradient(to bottom, transparent, var(--surface-default));position:relative;}
.article_paywall_box{padding:40px var(--sp-6);border-radius:var(--radius-lg);background:var(--interactive-subtle);text-align:center;}
.article_paywall_eyebrow{margin:0;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--interactive-hover);}
.article_paywall_title{margin:0;padding-top:var(--sp-2);font-size:20px;font-weight:700;line-height:1.6;letter-spacing:-0.5px;color:var(--text-primary);}
.article_paywall_desc{margin:0;padding-top:var(--sp-3);font-size:15px;line-height:1.6;letter-spacing:-0.375px;color:var(--text-secondary);}
.article_paywall_button{
  display:inline-flex; align-items:center; justify-content:center; height:var(--btn-h-xl); margin-top:var(--sp-6); padding:0 var(--sp-8);
  border-radius:var(--radius-lg); background:var(--interactive-default); color:var(--text-inverse);
  font-size:16px; font-weight:700; line-height:1.5; letter-spacing:-0.4px;
}
.article_paywall_button:hover{background:var(--interactive-hover);}

/* ── 앱 설치 이벤트 (v4 .article_bottom_app_event_wrap 2차) — 테마를 따르지 않는다 ── */
.article_event_wrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);width:100%;margin-top:var(--sp-5);padding:var(--sp-5);border-radius:10px;background:var(--app-event-bg);}
.article_event_body{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);width:100%;}
.article_event_head{display:flex;align-items:flex-start;justify-content:center;gap:var(--sp-3);width:100%;}
.article_event_icon{flex:none;width:68px;object-fit:contain;}
.article_event_text{display:flex;flex-direction:column;gap:var(--sp-1);flex:1;min-width:0;}
.article_event_title{font-size:16px;font-weight:500;line-height:1.6;letter-spacing:-0.4px;color:var(--app-event-title);}
.article_event_label{margin:0;font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--app-event-text);}
.article_event_item{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);width:100%;padding:var(--sp-3) var(--sp-5);border:1px solid var(--app-event-item-border);border-radius:var(--radius-md);background:var(--app-event-item-bg);}
.article_event_prize{flex:none;width:84px;object-fit:contain;}
.article_event_item_text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);}
.article_event_item_title{margin:0;font-size:14px;font-weight:700;line-height:1.5;color:var(--black);}
.article_event_item_sub{display:block;font-size:13px;font-weight:500;color:var(--gray-08);}
.article_event_item_label{padding:2px 6px;border-radius:var(--radius-full);background:var(--app-event-label-bg);font-size:13px;font-weight:500;line-height:1.5;color:var(--white);}
.article_event_btn{display:flex;align-items:center;justify-content:center;width:100%;height:var(--btn-h);border-radius:var(--radius-md);background:var(--interactive-default);font-size:14px;font-weight:700;line-height:1.5;letter-spacing:-0.35px;color:var(--white);}
@media (min-width:640px){
  .article_event_body{flex-direction:row;align-items:stretch;gap:var(--sp-4);}
  .article_event_head{flex:1;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);width:auto;}
  .article_event_icon{width:88px;}
  .article_event_text{flex:none;text-align:center;}
  .article_event_item{flex:1;width:auto;}
}
@media (min-width:1280px){
  .article_event_title{font-size:20px;letter-spacing:-0.5px;}
}

/* ── 오늘의 스탬프 (332:11834 · 338:18932) ── */
.article_stamp_card_wrap{margin:40px calc(var(--page-gutter) * -1) 0;padding:40px var(--page-gutter);border-top:8px solid var(--surface-muted);border-bottom:8px solid var(--surface-muted);}
@media (min-width:1024px){.article_stamp_card_wrap{display:none;}}
.article_stamp_card{padding:var(--sp-5);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-default);}
.article_stamp_card_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-bottom:var(--sp-3);}
.article_stamp_card_title{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;}
.article_stamp_card_list{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-default);}
.article_stamp_bar_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) var(--sp-5) 0;}
.article_stamp_bar_title{display:flex;align-items:center;gap:var(--sp-2);min-width:0;white-space:nowrap;}
.article_stamp_bar_body{padding:var(--sp-3) var(--sp-5) var(--sp-5);}
.article_stamp_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5);}
.article_stamp_grid > .article_stamp_empty{grid-column:1 / -1;}
.article_stamp_name{font-size:14px;font-weight:800;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.article_stamp_count{font-size:14px;line-height:1.5;letter-spacing:-0.35px;}
.article_stamp_count_num{font-weight:800;color:var(--interactive-default);}
.article_stamp_count_label{font-weight:600;color:var(--text-secondary);}
/* 32 높이 · 모서리 8 — 사이트의 다른 32 높이 단추와 같은 radius/md */
.article_stamp_btn{
  flex:none; display:flex; align-items:center; justify-content:center; height:32px; padding:0 var(--sp-3);
  border:0; border-radius:var(--radius-md); background:var(--interactive-subtle); cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:500; line-height:1.5; letter-spacing:-0.35px; color:var(--interactive-default);
}
.article_stamp_btn:disabled{opacity:.6;cursor:default;}
.article_stamp_btn.is_done,.article_stamp_btn.is_done:disabled{opacity:1;background:var(--surface-muted);color:var(--text-tertiary);}
.visitor_row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-width:0;}
.visitor_row_who{display:flex;align-items:center;gap:7px;min-width:0;}
.visitor_row_who img{flex:none;}
.visitor_row_name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-secondary);}
.visitor_row_time{flex:none;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-secondary);}
.article_stamp_empty{margin:0;font-size:14px;line-height:1.5;color:var(--text-tertiary);}

/* ── 관련 뉴스 (332:11983) ── */
.related_news_wrap{margin-top:40px;padding-top:40px;border-top:1px solid var(--border-default);}
.related_news_title{margin:0;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;color:var(--text-primary);}
.related_news_list{display:flex;flex-direction:column;gap:var(--sp-8);margin:0;padding:var(--sp-5) 0 0;list-style:none;}
.related_row{display:flex;align-items:flex-start;gap:var(--sp-5);}
.related_row_body{display:flex;flex-direction:column;gap:var(--sp-3);flex:1;min-width:0;}
/* 좁은 화면은 15.5px — 18px 이면 두 줄에 제목이 너무 적게 들어간다 */
.related_row_title{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-size:15.5px; font-weight:700; line-height:1.5; letter-spacing:-0.025em; color:var(--text-primary);
  transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.related_row:hover .related_row_title{color:var(--text-secondary);}
.related_row_meta{display:flex;align-items:center;gap:var(--sp-1);font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-secondary);}
.related_row_bar{display:block;width:1px;height:10px;background:var(--border-strong);}
.related_row_thumb{flex:none;display:block;overflow:hidden;border-radius:var(--radius-lg);background:var(--surface-inset);}
.related_row_thumb img{display:block;width:120px;height:80px;object-fit:cover;transition:transform .38s cubic-bezier(.2,.7,.3,1);}
.related_row:hover .related_row_thumb img{transform:scale(1.08);}
@media (min-width:1024px){
  .related_row_title{font-size:18px;letter-spacing:-0.45px;}
  .related_row_thumb img{width:150px;height:100px;}
}

/* ══ 댓글 (v5 CommentSection · 332:11833) ═══════════════════════════════ */
.comment_section_wrap{margin-top:40px;scroll-margin-top:96px;overflow:hidden;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-default);}
/* 스탬프 칸 — 데스크톱만, 아래 실선으로 댓글과 나뉜다 */
.comment_stamp_slot{display:none;border-bottom:1px solid var(--border-default);}
@media (min-width:1024px){.comment_stamp_slot{display:block;}}
.comment_section_body{padding:var(--sp-5);}
.comment_section_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);}
.comment_section_title{display:flex;align-items:center;gap:var(--sp-2);margin:0;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;}
.comment_section_label{color:var(--text-primary);}
.comment_section_count{color:var(--interactive-default);}
.comment_write_btn{
  flex:none; height:36px; padding:0 var(--sp-4); border:0; border-radius:var(--radius-md); cursor:pointer;
  background:var(--interactive-default); font-family:inherit; font-size:14px; font-weight:700; line-height:1.5; letter-spacing:-0.35px; color:var(--white);
}
.comment_error{margin:0;padding-top:var(--sp-3);font-size:13px;color:var(--status-up);}
.comment_error[hidden]{display:none;}
.comment_preview_list{margin:0;padding:var(--sp-2) 0 0;list-style:none;}
.comment_preview_list[hidden]{display:none;}
.comment_placeholder{margin:0;padding:40px 0;text-align:center;font-size:14px;line-height:1.5;color:var(--text-tertiary);}
.comment_placeholder[hidden]{display:none;}
.comment_more_btn{
  width:100%; height:var(--btn-h); border:1px solid var(--border-default); border-radius:var(--radius-md);
  background:var(--surface-default); cursor:pointer; font-family:inherit; font-size:13px; font-weight:600; color:var(--text-secondary);
}
.comment_more_btn[hidden]{display:none;}

/* 한 줄 (344:36175) */
.comment_thread_wrap{border-bottom:1px solid var(--border-default);}
.comment_thread_wrap:last-child{border-bottom:0;}
.comment_row{display:flex;gap:var(--sp-3);padding:var(--sp-5) 0;}
.comment_avatar{flex:none;display:block;width:34px;height:34px;border-radius:var(--radius-full);object-fit:cover;background:var(--surface-inset);}
.comment_main{display:flex;flex-direction:column;flex:1;min-width:0;}
.comment_head{display:flex;align-items:flex-start;gap:var(--sp-2);}
.comment_who{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.comment_nick{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.comment_time{font-size:12px;line-height:1.5;color:var(--text-tertiary);}
/* 사용자 입력 — 줄바꿈만 살린다 */
.comment_body{margin:0;padding-top:var(--sp-2);white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.6;letter-spacing:-0.375px;color:var(--gray-09);}
html.dark .comment_body{color:var(--text-primary);}
.comment_image{display:block;width:100%;max-height:320px;margin-top:var(--sp-3);border-radius:var(--radius-md);object-fit:cover;}
.comment_foot{display:flex;align-items:center;justify-content:space-between;padding-top:var(--sp-3);}
.comment_actions{display:flex;align-items:center;gap:var(--sp-4);}
.comment_action_btn{display:flex;align-items:center;gap:var(--sp-1);padding:0;border:0;background:transparent;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;line-height:1.5;color:var(--text-secondary);}
.comment_action_count{color:var(--text-tertiary);}
.comment_reactions{display:flex;align-items:center;gap:var(--sp-3);}
.reaction_btn{display:flex;align-items:center;gap:var(--sp-1);padding:0;border:0;background:transparent;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;line-height:1.5;color:var(--text-tertiary);}
.reaction_btn.is_like.is_on{color:var(--red-08);}
.reaction_btn.is_dislike.is_on{color:var(--interactive-default);}
.reaction_btn.is_like .reaction_icon{width:15px;height:15px;}
.reaction_btn.is_dislike .reaction_icon{width:14px;height:14px;transform:rotate(180deg);}
/* 답글 묶음 (338:34675) — 회색 바탕에 왼쪽으로 들여쓴다 */
.comment_replies{padding-left:var(--sp-8);background:var(--surface-subtle);}
.comment_replies ul{margin:0;padding:0;list-style:none;}
.comment_reply_item{border-top:1px solid var(--border-default);}
.comment_replies_loading{margin:0;padding:var(--sp-3) 0;border-top:1px solid var(--border-default);text-align:center;font-size:13px;color:var(--text-tertiary);}
@media (min-width:768px){.comment_replies{padding-left:46px;}}

/* ⋮ 메뉴 */
.comment_menu_wrap{position:relative;flex:none;margin-left:auto;}
.comment_menu_btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:var(--radius-xs);background:transparent;cursor:pointer;color:var(--text-disabled);}
.comment_menu_btn:hover{background:var(--surface-muted);}
.comment_menu_btn .v3_ic{width:16px;height:16px;}
.comment_menu_list{
  position:absolute; right:0; top:30px; z-index:10; width:110px; margin:0; padding:var(--sp-1) 0; list-style:none; overflow:hidden;
  border:1px solid var(--border-default); border-radius:var(--radius-md); background:var(--surface-default); box-shadow:var(--elevation-2);
}
.comment_menu_list[hidden]{display:none;}
.comment_menu_item{display:flex;width:100%;padding:var(--sp-2) var(--sp-3);border:0;background:transparent;cursor:pointer;text-align:left;font-family:inherit;font-size:14px;line-height:1.5;color:var(--text-primary);}
.comment_menu_item:hover{background:var(--surface-muted);}
.comment_menu_item.is_danger{color:var(--status-up);}

/* 인라인 편집 */
.comment_editor{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-2);}
.comment_editor_input{width:100%;padding:var(--sp-3);resize:none;outline:none;border:1px solid var(--border-focus);border-radius:var(--radius-md);background:var(--surface-default);font-family:inherit;font-size:15px;line-height:1.6;color:var(--text-primary);}
.comment_editor_btns{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);}
.comment_editor_cancel,.comment_editor_save{height:32px;padding:0 var(--sp-3);border:0;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:13px;}
.comment_editor_cancel{background:transparent;color:var(--text-secondary);}
.comment_editor_save{background:var(--interactive-default);font-weight:700;color:var(--white);}
.comment_editor_save:disabled{background:var(--gray-05);}

/* ── 드로어 (v5 Drawer) — 데스크톱 오른쪽 곁창 480 · 모바일 바텀 시트 90dvh ── */
.v3_drawer_dim{position:fixed;inset:0;display:none;background:var(--modal-dim);animation:v3_overlay_dim .2s ease-out;}
.v3_drawer_dim.is_open{display:block;}
@media (min-width:768px){.v3_drawer_dim.is_mobile_only.is_open{display:none;}}
.v3_drawer{
  position:fixed; left:0; right:0; bottom:0; display:none; flex-direction:column; height:90dvh;
  border-radius:16px 16px 0 0; background:var(--surface-default);
  animation:v3_drawer_up .25s cubic-bezier(.32,.72,0,1);
}
.v3_drawer.is_open{display:flex;}
@media (min-width:768px){
  .v3_drawer{
    left:auto; top:0; right:0; bottom:0; height:auto; width:var(--drawer-w,480px); max-width:92vw;
    border-radius:0; border-left:1px solid var(--border-default); box-shadow:var(--elevation-2);
    animation:v3_drawer_in .25s cubic-bezier(.32,.72,0,1);
  }
}
@keyframes v3_drawer_up{from{transform:translateY(100%)}to{transform:none}}
@keyframes v3_drawer_in{from{transform:translateX(100%)}to{transform:none}}
.v3_drawer_handle{display:flex;justify-content:center;flex:none;padding:10px 0;border:0;background:transparent;cursor:grab;touch-action:none;}
.v3_drawer_handle span{display:block;width:44px;height:5px;border-radius:var(--radius-full);background:var(--surface-inset-strong);}
@media (min-width:768px){.v3_drawer_handle{display:none;}}
.v3_drawer_head{position:relative;display:flex;align-items:center;flex:none;padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-default);}
.v3_drawer_title{display:flex;align-items:center;gap:var(--sp-2);min-width:0;margin:0;padding-right:40px;font-size:15px;font-weight:700;line-height:1.6;letter-spacing:-0.375px;color:var(--text-primary);}
.v3_drawer_count{color:var(--interactive-default);}
.v3_drawer_close{position:absolute;right:var(--sp-5);}
/* 본문만 스크롤 — 끝에서 계속 밀어도 뒤 페이지가 따라가지 않게 */
.v3_drawer_body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;}
/* 입력칸은 목록 위에 얹힌 판 — 위로 옅은 그림자 */
.v3_drawer_foot{flex:none;padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-default);box-shadow:var(--drawer-foot-shadow);}
.comment_drawer_list{margin:0;padding:var(--sp-4) var(--sp-4) 0;list-style:none;}
@media (min-width:768px){.comment_drawer_list{padding:var(--sp-5) var(--sp-5) 0;}}
.comment_sentinel{height:1px;}
.comment_drawer_loading{margin:0;padding:var(--sp-6) 0;text-align:center;font-size:13px;color:var(--text-tertiary);}
.comment_drawer_loading[hidden],.comment_drawer_more[hidden]{display:none;}
.comment_drawer_more{padding:0 var(--sp-5) var(--sp-6);}
.comment_drawer_more_btn{width:100%;height:var(--btn-h);border:1px solid var(--border-default);border-radius:var(--radius-md);background:transparent;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-secondary);}

/* 추천 문구 (541:30235) — 라벨 위, 칩 아래 줄 */
.comment_quick{padding-bottom:var(--sp-3);}
.comment_quick[hidden]{display:none;}
.comment_quick_label{margin:0;font-size:14px;font-weight:500;line-height:1.5;color:var(--text-secondary);}
.comment_quick_list{display:flex;gap:var(--sp-2);padding-top:var(--sp-2);overflow-x:auto;scrollbar-width:none;}
.comment_quick_list::-webkit-scrollbar{display:none;}
.comment_quick_btn{flex:none;height:32px;padding:0 var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-default);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;color:var(--text-secondary);}

/* 입력창 (v5 CommentComposer) — 접힌 모습(345:41176)은 모바일만 */
.comment_composer_wrap{padding:var(--sp-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-default);}
.comment_composer_wrap.is_replying{border-color:var(--border-focus);}
.comment_composer_wrap:not(.is_open){padding:var(--sp-2);}
.comment_composer_open{display:none;width:100%;justify-content:flex-end;padding:0;border:0;background:transparent;cursor:pointer;}
.comment_composer_open_label{display:flex;align-items:center;height:32px;padding:0 var(--sp-3);border-radius:var(--radius-md);background:var(--interactive-default);font-size:14px;font-weight:500;color:var(--white);}
.comment_composer_wrap:not(.is_open) .comment_composer_open{display:flex;}
.comment_composer_wrap:not(.is_open) .comment_composer_field,
.comment_composer_wrap:not(.is_open) .comment_composer_actions{display:none;}
.comment_composer_preview{position:relative;width:fit-content;padding-bottom:var(--sp-2);}
.comment_composer_preview[hidden]{display:none;}
.comment_composer_preview img{display:block;width:72px;height:72px;border-radius:var(--radius-md);object-fit:cover;}
.comment_composer_preview_remove{position:absolute;right:-8px;top:-4px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface-default);cursor:pointer;color:var(--icon-secondary);}
.comment_composer_preview_remove .v3_ic{width:10px;height:10px;}
.comment_composer_field{position:relative;}
.comment_composer_mention{position:absolute;left:0;top:0;pointer-events:none;white-space:pre;font-size:14px;font-weight:500;line-height:1.5;color:var(--interactive-default);}
.comment_composer_mention[hidden]{display:none;}
.comment_composer_input{display:block;width:100%;min-height:64px;padding:0;resize:none;outline:none;border:0;background:transparent;font-family:inherit;font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.comment_composer_wrap.is_replying .comment_composer_input{min-height:112px;}
.comment_composer_input::placeholder{color:var(--text-disabled);}
.comment_composer_actions{display:flex;align-items:center;gap:10px;padding-top:var(--sp-3);}
.comment_composer_count{flex:1;font-size:12px;color:var(--text-disabled);}
.comment_composer_attach{display:flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer;color:var(--icon-secondary);}
.comment_composer_cancel,.comment_composer_submit{flex:none;height:32px;padding:0 var(--sp-3);border:0;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;}
.comment_composer_cancel{background:transparent;color:var(--text-secondary);}
.comment_composer_cancel[hidden]{display:none;}
.comment_composer_submit{background:var(--interactive-default);color:var(--white);}
.comment_composer_submit:disabled{background:var(--gray-05);cursor:default;}
@media (min-width:768px){
  .comment_composer_wrap:not(.is_open){padding:var(--sp-4);}
  .comment_composer_wrap:not(.is_open) .comment_composer_open{display:none;}
  .comment_composer_wrap:not(.is_open) .comment_composer_field{display:block;}
  .comment_composer_wrap:not(.is_open) .comment_composer_actions{display:flex;}
}

/* ── 신고 · 차단 · 완료 (v5 ReportDialog · BlockDialog · DialogDone) ── */
.report_dialog_target,.block_dialog_desc{margin:0;font-size:15px;line-height:1.6;letter-spacing:-0.375px;color:var(--text-secondary);}
.report_dialog_target b,.block_dialog_desc b{font-weight:700;color:var(--text-primary);}
.report_dialog_ask,.block_dialog_ask{margin:0;padding-top:var(--sp-1);font-size:15px;font-weight:700;line-height:1.6;color:var(--text-primary);}
.block_dialog_ask{padding-top:var(--sp-2);}
.block_dialog_text{padding:var(--sp-2) 0;}
.report_dialog_reasons{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding:var(--sp-4) 0 0;list-style:none;}
.checkbox_wrap{display:flex;align-items:center;gap:10px;padding:6px 0;cursor:pointer;}
.checkbox_box{
  position:relative; flex:none; width:20px; height:20px; border:1px solid var(--border-strong);
  border-radius:var(--radius-xs); background:var(--surface-default);
}
.checkbox_wrap input:checked + .checkbox_box{border-color:var(--interactive-default);background:var(--interactive-default);}
.checkbox_wrap input:checked + .checkbox_box::after{
  content:""; position:absolute; left:4px; top:4px; width:10px; height:6px;
  border-left:2px solid var(--white); border-bottom:2px solid var(--white); transform:rotate(-45deg);
}
.checkbox_wrap input:focus-visible + .checkbox_box{outline:2px solid var(--border-focus);outline-offset:2px;}
.checkbox_label{font-size:14px;line-height:1.5;color:var(--text-primary);}
.report_dialog_detail{padding-top:var(--sp-3);}
.report_dialog_detail[hidden]{display:none;}
.report_dialog_textarea{width:100%;padding:var(--sp-3);resize:none;outline:none;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-default);font-family:inherit;font-size:14px;color:var(--text-primary);}
.report_dialog_textarea:focus{border-color:var(--border-focus);}
.report_dialog_count{margin:0;padding-top:var(--sp-1);text-align:right;font-size:12px;color:var(--text-disabled);}
.dialog_btns{display:flex;gap:var(--sp-3);}
.dialog_btns[hidden]{display:none;}
.dialog_btn{flex:1;height:44px;border:0;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:15px;font-weight:500;}
.dialog_btn.is_cancel{background:var(--surface-inset);color:var(--text-secondary);}
.dialog_btn.is_ok{background:var(--interactive-default);color:var(--white);}
.dialog_btn.is_ok:disabled{background:var(--gray-05);cursor:default;}
.dialog_btn.is_full{width:100%;}
.dialog_btn[hidden]{display:none;}
.dialog_done_wrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:var(--sp-6) 0;}
.dialog_done_wrap[hidden],[data-report-form][hidden],[data-block-form][hidden]{display:none;}
.dialog_done_icon{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:var(--radius-full);background:var(--border-strong);}
.dialog_done_icon span{width:22px;height:12px;margin-top:-4px;border-left:3px solid var(--white);border-bottom:3px solid var(--white);transform:rotate(-45deg);}
.dialog_done_text{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);}
.dialog_done_title{margin:0;font-size:18px;font-weight:700;line-height:1.5;color:var(--text-primary);}
.dialog_done_message{margin:0;text-align:center;font-size:15px;line-height:1.6;color:var(--text-secondary);}

/* ── 공유 · 글자크기 · 분위기 기준 ── */
.share_targets{display:flex;align-items:flex-start;justify-content:space-around;}
.share_target{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:72px;}
.share_target_disc{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);color:var(--white);}
.share_target_disc .v3_ic{width:20px;height:20px;}
.share_target_label{font-size:13px;line-height:1.5;color:var(--text-tertiary);}
.font_steps{display:flex;align-items:flex-start;justify-content:space-between;}
.font_step{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:64px;padding:0;border:0;background:transparent;cursor:pointer;font-family:inherit;}
.font_step_disc{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--border-default);border-radius:var(--radius-full);font-weight:600;color:var(--text-tertiary);}
.font_step_label{font-size:13px;color:var(--text-tertiary);}
.font_step.is_on .font_step_disc{border-color:var(--interactive-default);color:var(--interactive-default);}
.font_step.is_on .font_step_label{color:var(--interactive-default);}
.sentiment_guide_intro{margin:0;font-size:14px;line-height:1.625;color:var(--text-secondary);}
.sentiment_guide_intro b,.sentiment_guide_item_text b{font-weight:700;color:var(--text-primary);}
.sentiment_guide_scale{padding-top:var(--sp-5);}
/* 100 → 0 띠. 색이 갈리는 자리는 실제 경계(61 · 41) — 39.5% · 59.5% */
.sentiment_guide_bar{height:10px;border-radius:var(--radius-full);background:linear-gradient(to right, var(--status-up) 0 39.5%, var(--surface-inset) 39.5% 59.5%, var(--status-down) 59.5% 100%);}
.sentiment_guide_scale_label{position:relative;height:20px;padding-top:6px;font-size:13px;color:var(--text-tertiary);}
.sentiment_guide_scale_label span{position:absolute;}
.sentiment_guide_list{display:flex;flex-direction:column;gap:var(--sp-4);margin:0;padding:var(--sp-5) 0 0;list-style:none;}
.sentiment_guide_item{display:flex;align-items:flex-start;gap:var(--sp-3);}
.sentiment_guide_item_label{flex:none;padding:2px var(--sp-2);border-radius:var(--radius-sm);font-size:13px;font-weight:700;line-height:1.5;}
.sentiment_guide_item_label.is_positive{background:var(--status-up-bg);color:var(--status-up);}
.sentiment_guide_item_label.is_neutral{background:var(--surface-muted);color:var(--text-secondary);}
.sentiment_guide_item_label.is_negative{background:var(--status-down-bg);color:var(--status-down);}
.sentiment_guide_item_text{margin:0;font-size:14px;line-height:1.625;color:var(--text-secondary);}
.sentiment_guide_note{margin:var(--sp-5) 0 0;padding-top:var(--sp-4);border-top:1px solid var(--border-default);font-size:13px;line-height:1.625;color:var(--text-tertiary);}

/* ── 토스트 (v4 .copyAlert) — 딤 없음 · 클릭을 막지 않는다 ── */
.v3_toast{
  position:fixed; left:50%; top:35%; z-index:3000; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-3); width:280px; padding:var(--sp-6) var(--sp-5);
  border:1px solid var(--border-default); border-radius:10px; background:var(--surface-default); box-shadow:var(--elevation-2);
  font-size:14px; line-height:1.5; color:var(--text-primary); pointer-events:none; transition:opacity .3s;
}
.v3_toast[hidden]{display:none;}
.v3_toast.is_leaving{opacity:0;}

/* ── 이미지 확대 ── 검은 판 85% 위 원본. 누르는 것은 판 전체 */
.image_zoom{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:10px;background:var(--zoom-dim);animation:v3_overlay_dim .2s ease-out;}
.image_zoom[hidden]{display:none;}
.image_zoom_close{position:absolute;top:10px;right:10px;z-index:1;padding:0;border:0;background:transparent;cursor:pointer;}
.image_zoom_stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;}
.image_zoom_img{max-width:100%;max-height:100%;box-shadow:var(--zoom-glow);}

/* ── 인쇄 — 본문만 남긴다. 사이트 머리만 빼고 기사 머리(<header>)는 남긴다 ── */
@media print{
  #header_v3_wrap,.footer_v3,nav,aside,#comments,[data-ad-slot],.tp_no_print,.v3_ad_slot,.ai_orb,.bottom_banner_v3{display:none !important;}
}

/* ── 검색 (v5 app/(site)/search · components/search/*) ─────────────────
 * 사이드바가 없는 화면이다. 데스크톱은 왼쪽 영역 목록 224 + 결과, 모바일은 위 가로 줄 + 결과.
 */
.search_page_wrap{padding-top:var(--sp-6);padding-bottom:var(--sp-6);}
@media (min-width:1024px){.search_page_wrap{padding-top:40px;padding-bottom:40px;}}

/* 검색창 (SearchBox · 422:29989 — 700×56) */
.search_box_wrap{
  display:flex; align-items:center; gap:var(--sp-2);
  width:100%; max-width:700px; height:48px; margin:0 auto; padding:0 var(--sp-5);
  border:1px solid var(--border-default); border-radius:var(--radius-full); background:var(--surface-default);
}
@media (min-width:1024px){.search_box_wrap{height:56px;}}
.search_box_input{
  flex:1; min-width:0; border:0; background:transparent; outline:none; padding:0;
  font-size:16px; font-weight:400; line-height:1.5; letter-spacing:-0.4px; color:var(--text-primary);
}
.search_box_input::placeholder{color:var(--text-tertiary);}
.search_box_input::-webkit-search-cancel-button{-webkit-appearance:none;}
.search_box_submit{display:flex;flex:none;padding:0;border:0;background:transparent;cursor:pointer;color:var(--text-secondary);}
.search_box_submit .v3_ic{width:24px;height:24px;}

/* 토포AI 띠 (SearchAiBanner · 422:29994) */
.search_form_box{padding-top:var(--sp-6);}
.search_ai_banner_wrap{
  display:flex; align-items:center; gap:var(--sp-3); width:100%; padding:var(--sp-3) var(--sp-4);
  border:0; border-radius:var(--radius-lg); background:var(--search-ai-banner-bg); cursor:pointer; text-align:left;
}
.search_ai_orb{display:block;flex:none;width:36px;height:36px;}
.search_ai_text{flex:1;min-width:0;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.search_ai_brand{font-weight:700;color:var(--interactive-default);}
.search_ai_cta{
  display:flex; flex:none; align-items:center; height:36px; padding:0 var(--sp-4);
  border-radius:var(--radius-full); background:var(--interactive-default);
  font-size:13px; font-weight:700; line-height:1.5; letter-spacing:-0.325px; color:var(--white);
}
@media (min-width:1024px){
  .search_ai_banner_wrap{justify-content:center;gap:var(--sp-4);padding-top:var(--sp-4);padding-bottom:var(--sp-4);}
  .search_ai_orb{width:44px;height:44px;}
  .search_ai_text{flex:none;font-size:16px;letter-spacing:-0.4px;}
  .search_ai_cta{height:40px;}
}

.search_tabs_box{padding-top:var(--sp-8);}
.search_inner{display:flex;flex-direction:column;gap:var(--sp-6);padding-top:var(--sp-8);}
.search_body{flex:1;min-width:0;}
@media (min-width:1024px){.search_inner{flex-direction:row;align-items:flex-start;gap:40px;}}

/* 검색어와 겹친 글자 (Highlight) */
.search_hit{color:var(--interactive-default);}

/* 영역 목록 (SearchNav · 422:29951) — 모바일은 가로 줄(검은 면), 데스크톱은 세로 목록(옅은 파란 면) */
.search_nav_list{
  display:flex; gap:var(--sp-1); margin:0 calc(var(--page-gutter) * -1); padding:0 var(--page-gutter);
  overflow-x:auto; list-style:none; scrollbar-width:none;
}
.search_nav_list::-webkit-scrollbar{display:none;}
.search_nav_item{flex:none;}
.search_nav_link{
  display:flex; align-items:center; gap:var(--sp-1); padding:var(--sp-2) var(--sp-3); white-space:nowrap;
  border:1px solid var(--border-default); border-radius:var(--radius-md); background:var(--surface-default);
  font-size:14px; font-weight:700; line-height:1.5; letter-spacing:-0.35px; color:var(--text-tertiary);
}
.search_nav_link.is_muted{color:var(--text-disabled);}
.search_nav_link.is_on{border-color:var(--surface-selected);background:var(--surface-selected);color:var(--text-inverse);}
.search_nav_count{color:var(--text-tertiary);}
.search_nav_link.is_on .search_nav_count{color:inherit;}
@media (min-width:1024px){
  .search_nav_wrap{width:224px;flex:none;}
  .search_nav_list{
    flex-direction:column; margin:0; padding:var(--sp-5); overflow:visible;
    border:1px solid var(--border-default); border-radius:var(--radius-lg);
  }
  .search_nav_item{flex:initial;}
  .search_nav_link{width:100%;padding:var(--sp-2);border-color:transparent;background:transparent;color:var(--text-secondary);}
  .search_nav_link.is_muted{color:var(--text-disabled);}
  .search_nav_link:hover{background:var(--surface-muted);color:var(--text-primary);}
  .search_nav_link.is_on{border-color:transparent;background:var(--interactive-subtle);color:var(--interactive-default);}
}

/* 결과 묶음 (SearchSections) */
.search_sections_wrap{display:flex;flex-direction:column;}
.search_section{padding:var(--sp-8) 0;border-bottom:1px solid var(--border-default);}
.search_section_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-bottom:var(--sp-4);}
.search_section_title{margin:0;font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-0.5px;color:var(--text-primary);}
@media (min-width:1024px){.search_section_title{font-size:24px;}}
.search_section_count{padding-left:var(--sp-1);color:var(--interactive-default);}
.search_section_more{display:flex;flex:none;align-items:center;gap:var(--sp-1);font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-secondary);}
.search_section_more:hover{color:var(--text-primary);}
.search_rows{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;}
.search_row_meta{display:flex;align-items:center;gap:var(--sp-2);min-width:0;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
.search_row_meta time{flex:none;white-space:nowrap;}
.search_meta_bar{flex:none;width:1px;height:10px;background:var(--border-strong);}

/* 마켓 동향 줄 */
.search_coin_row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) 0;}
.search_coin_logo{display:block;flex:none;width:32px;height:32px;border-radius:var(--radius-full);background:var(--surface-inset);object-fit:cover;}
.search_coin_text{display:flex;flex:1;flex-direction:column;min-width:0;}
.search_coin_title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;line-height:1.6;letter-spacing:-0.375px;color:var(--text-primary);}
.search_coin_row:hover .search_coin_title{text-decoration:underline;}
.search_coin_quote{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;line-height:1.5;letter-spacing:-0.325px;}
.search_coin_price{color:var(--text-primary);}
.search_coin_quote .is_up{color:var(--status-up);}
.search_coin_quote .is_down{color:var(--status-down);}
.search_coin_tone{flex:none;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:-0.35px;color:var(--status-down);}
.search_coin_tone.is_positive{color:var(--status-up);}
.search_coin_tone.is_neutral{color:var(--text-secondary);}

/* 뉴스 · 알파리포트 줄 — 썸네일이 오른쪽 */
.search_article_row{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4) 0;}
.search_article_text{display:flex;flex:1;flex-direction:column;gap:var(--sp-2);min-width:0;}
.search_article_title{
  display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:16px; font-weight:700; line-height:1.5; letter-spacing:-0.4px; color:var(--text-primary);
}
.search_article_row:hover .search_article_title{opacity:.7;}
@media (min-width:1024px){.search_article_title{font-size:18px;letter-spacing:-0.45px;}}
.search_article_thumb{display:block;flex:none;width:92px;height:62px;overflow:hidden;border:1px solid var(--thumb-border);border-radius:var(--radius-md);background:var(--surface-inset);}
.search_article_thumb img{display:block;width:100%;height:100%;object-fit:cover;}
@media (min-width:1024px){.search_article_thumb{width:126px;height:84px;}}
.search_alpha_badge{display:flex;flex:none;align-items:center;gap:var(--sp-1);font-weight:700;color:var(--interactive-default);}
.search_alpha_symbol{position:relative;display:block;width:16px;height:16px;}
.search_alpha_symbol img{position:absolute;inset:0;width:100%;height:100%;}
/* 안쪽 글리프는 절반 크기로 가운데(v5 AlphaSymbol h-1/2 w-1/2) — 꽉 채우면 늘어나 깨져 보인다 */
.search_alpha_symbol .alpha_inner{inset:auto;top:50%;left:50%;width:50%;height:50%;transform:translate(-50%,-50%);}

/* 커뮤니티 줄 — 말머리 · 제목 · 작성자(등급) · 반응 · 시각 */
.search_community_row{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4) 0;}
.search_community_text{display:flex;flex:1;flex-direction:column;gap:var(--sp-1);min-width:0;}
.search_board_category{width:fit-content;padding:2px 6px;border-radius:var(--radius-xs);font-size:12px;font-weight:700;line-height:1.3;}
.search_board_title{font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
.search_community_title{
  display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:16px; font-weight:700; line-height:1.5; letter-spacing:-0.4px; color:var(--text-primary);
}
.search_community_row:hover .search_community_title{text-decoration:underline;}
.search_community_meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-3);padding-top:var(--sp-1);font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
.search_community_user{display:flex;align-items:center;gap:6px;min-width:0;}
.search_community_profile{flex:none;width:24px;height:24px;border:1px solid var(--border-default);border-radius:var(--radius-full);object-fit:cover;}
.search_community_grade{flex:none;width:20px;height:20px;}
.search_community_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.search_community_counts{display:flex;flex:none;align-items:center;gap:var(--sp-3);}
.search_count{display:flex;align-items:center;gap:var(--sp-1);}
.search_count .v3_ic{width:14px;height:14px;}
.search_community_meta time{flex:none;}
.search_community_thumb{flex:none;width:72px;height:72px;border:1px solid var(--thumb-border);border-radius:var(--radius-md);object-fit:cover;}
@media (min-width:1024px){.search_community_thumb{width:100px;height:100px;}}
/* 말머리 색 — v4 common.css `.board_category_0~8` 을 그대로 옮겼다(v5 BOARD_CATEGORY_COLOR) */
.search_board_category.is_c0,.search_board_category.is_c8{color:#999999;background:#ededed;}
.search_board_category.is_c1{color:#ff9900;background:#fff0d4;}
.search_board_category.is_c2{color:#8256ff;background:#ede7ff;}
.search_board_category.is_c3{color:#29b67b;background:#e4f9f0;}
.search_board_category.is_c4{color:#00bce5;background:#e4faff;}
.search_board_category.is_c5{color:#ea48e3;background:#ffe3fe;}
.search_board_category.is_c6{color:#2f80eb;background:#e6ecff;}
.search_board_category.is_c7{color:#ff7511;background:#fff3db;}

/* 리서치 · 퀴즈 · 캘린더 · 이벤트 줄 */
.search_simple_row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) 0;}
.search_simple_thumb{flex:none;width:48px;height:48px;border:1px solid var(--thumb-border);border-radius:var(--radius-md);object-fit:cover;}
.search_simple_text{display:flex;flex:1;flex-direction:column;gap:var(--sp-1);min-width:0;}
.search_simple_title{
  display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:15px; font-weight:700; line-height:1.6; letter-spacing:-0.375px; color:var(--text-primary);
}
.search_simple_row:hover .search_simple_title{text-decoration:underline;}
.search_simple_caption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}

/* 결과 없음 (SearchEmpty) */
.search_empty_wrap{display:flex;flex-direction:column;gap:var(--sp-6);}
.search_empty_box{
  display:flex; flex-direction:column; align-items:center; padding:40px var(--sp-5); text-align:center;
  border:1px solid var(--border-default); border-radius:var(--radius-lg);
}
.search_empty_mark{
  display:flex; align-items:center; justify-content:center; width:32px; height:32px;
  border-radius:var(--radius-full); background:var(--surface-inset);
  font-size:15px; font-weight:700; line-height:1.6; color:var(--text-tertiary);
}
.search_empty_lead{margin:0;padding-top:var(--sp-4);font-size:16px;line-height:1.5;letter-spacing:-0.4px;color:var(--text-primary);}
.search_empty_word{font-weight:700;color:var(--interactive-default);}
.search_empty_desc{margin:0;padding-top:var(--sp-1);font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-secondary);}

/* 길잡이 기사 카드 (SearchIntro · SearchEmpty) — TOP 10 은 데스크톱 2열 */
.search_suggest_wrap{padding:var(--sp-5);border:1px solid var(--border-default);border-radius:var(--radius-lg);}
.search_suggest_title{margin:0;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;color:var(--text-primary);}
.search_suggest_list{display:grid;margin:0;padding:var(--sp-2) 0 0;list-style:none;}
@media (min-width:1024px){.search_suggest_list.is_grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--sp-8);}}
.suggest_row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;}
.suggest_rank{flex:none;width:20px;text-align:center;font-size:15px;font-weight:700;line-height:1.6;color:var(--interactive-default);}
.suggest_title{
  display:-webkit-box; flex:1; min-width:0; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:14px; font-weight:500; line-height:1.5; letter-spacing:-0.35px; color:var(--text-primary);
}
.suggest_row:hover .suggest_title{opacity:.7;}
.suggest_thumb{display:block;flex:none;width:66px;height:44px;overflow:hidden;border:1px solid var(--thumb-border);border-radius:var(--radius-md);background:var(--surface-inset);}
.suggest_thumb img{display:block;width:100%;height:100%;object-fit:cover;}

/* iOS 앱에서는 유료(알파리포트)를 감춘다 — 하드 제약 #2 */
[data-ios-app="Y"] .v3_hide_ios{display:none !important;}

/* ── 히어로 (v5 HeroSearch) ──────────────────────────────────
 *
 * 배경색이 헤더와 같아야 한다. 헤더가 sticky 로 이 블록 위에 겹치는데 색이 다르면
 * 경계선이 그어진 것처럼 보인다. 그라디언트는 **데스크톱에만** 둔다 —
 * 모바일까지 끌고 오면 첫 줄만 파랗고 곧 흰색이 되어 헤더와 어긋난다(v5 주석).
 */
.hero_search_wrap{background:var(--hero-bg);padding:var(--sp-8) var(--sp-5);}
.hero_search_inner{max-width:660px;margin:0 auto;display:flex;flex-direction:column;align-items:center;}

/* 오른쪽 아래 떠 있는 단추와 같은 구슬 */
.hero_orb{width:56px;height:56px;}

/* 흐르는 질문 — 한 줄 높이만 보이고 track 이 위로 흐른다 */
.hero_roll{height:29px;overflow:hidden;margin-top:var(--sp-5);}
.hero_roll_track{animation:hero_roll 15s steps(1) infinite;}
.hero_roll_item{
  display:flex;align-items:center;justify-content:center;white-space:nowrap;margin:0;
  height:29px;
  font-size:21px;font-weight:900;line-height:29px;letter-spacing:-0.53px;
  color:var(--text-primary);
}
@keyframes hero_roll{
  0%,18%{transform:translateY(0);}
  20%,38%{transform:translateY(-29px);}
  40%,58%{transform:translateY(-58px);}
  60%,78%{transform:translateY(-87px);}
  80%,98%{transform:translateY(-116px);}
  100%{transform:translateY(-145px);}
}
@media (prefers-reduced-motion:reduce){
  .hero_roll_track{animation:none;}
}

.hero_lead{
  margin:2px 0 0;
  font-size:21px;font-weight:900;line-height:29px;letter-spacing:-0.53px;
  color:var(--text-primary);
}
.hero_lead_brand{
  background-image:var(--ai-brand-text);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* 묻기 입력칸 — 진짜 입력칸이 아니라 곁창을 여는 단추다 */
.ai_search_trigger_wrap{
  display:flex;align-items:center;gap:var(--sp-3);
  width:100%;height:48px;margin-top:var(--sp-6);
  padding:0 var(--sp-2) 0 var(--sp-4);
  border:1px solid var(--border-default);border-radius:var(--radius-full);
  background:var(--input-bg);text-align:left;cursor:pointer;
  box-shadow:-18px 10px 34px 0 rgba(76,141,251,.14), 0 12px 30px 0 rgba(110,124,246,.1), 18px 10px 34px 0 rgba(160,108,240,.14);
}
.ai_search_trigger_label{
  flex:1;font-size:17px;font-weight:500;letter-spacing:-0.425px;color:var(--text-disabled);
}
.search_icon_wrap{position:relative;display:block;width:24px;height:24px;flex:none;}
.search_icon_glass{position:absolute;inset:2%;width:96%;height:96%;}
.search_icon_spark{position:absolute;top:0;left:45.83%;width:41.67%;height:41.67%;}

/* 속보 한 줄 (v5 BreakingLine) — 창 높이 모바일 21 · 데스크톱 24. 히어로 안에서는 데스크톱 좌우 40 */
.breaking_line_wrap{width:100%;padding-top:var(--sp-4);}
.breaking_line_view{width:100%;height:21px;overflow:hidden;}
.breaking_line_track{margin:0;padding:0;list-style:none;}
.breaking_line_item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;height:21px;}
.breaking_line_link{display:flex;align-items:center;gap:11px;min-width:0;}
.breaking_line_badge,.breaking_line_title{font-size:13px;font-weight:700;line-height:1.6;letter-spacing:-0.325px;}
.breaking_line_badge{flex:none;color:var(--status-up);}
.breaking_line_title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);}
.breaking_line_link:hover .breaking_line_title{text-decoration:underline;}
.breaking_line_time{flex:none;font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}
@media (min-width:1024px){
  .breaking_line_wrap{padding-left:40px;padding-right:40px;}
  .breaking_line_view,.breaking_line_item{height:24px;}
  .breaking_line_badge,.breaking_line_title{font-size:15px;letter-spacing:-0.375px;}
}

/*
 * 속보 띠 (v5 BreakingBar) — 헤더(z 998) 바로 아래에 붙고 그 뒤로 지나간다. 바탕은 불투명이다 —
 * 반투명이면 아래 본문이 비쳐 글자가 겹쳐 읽힌다(v5 주석). 붙는 높이는 breaking.js 가 헤더를 재서 준다.
 */
.breaking_bar_wrap{
  position:fixed; left:0; right:0; top:60px; z-index:997;
  border-bottom:1px solid var(--border-default); background:var(--surface-default);
  opacity:0; transform:translateY(-8px); pointer-events:none;
  transition:opacity .2s, transform .2s;
}
.breaking_bar_wrap.is_stuck{opacity:1;transform:translateY(0);pointer-events:auto;}
.breaking_bar_inner{max-width:1280px;margin:0 auto;padding:var(--sp-2) var(--sp-4);}
@media (min-width:1024px){
  .breaking_bar_wrap{top:65px;}
  .breaking_bar_inner{padding-left:var(--sp-6);padding-right:var(--sp-6);}
}


@media (min-width:1024px){
  .hero_search_wrap{
    padding:56px var(--sp-6);
    background:var(--hero-bg-wide);
  }
  .hero_roll{height:42px;}
  .hero_roll_item{height:42px;font-size:30px;line-height:1.4;letter-spacing:-0.75px;}
  .hero_lead{font-size:30px;line-height:1.4;letter-spacing:-0.75px;}
  .ai_search_trigger_wrap{height:60px;padding:0 14px 0 22px;}
  @keyframes hero_roll{
    0%,18%{transform:translateY(0);}
    20%,38%{transform:translateY(-42px);}
    40%,58%{transform:translateY(-84px);}
    60%,78%{transform:translateY(-126px);}
    80%,98%{transform:translateY(-168px);}
    100%{transform:translateY(-210px);}
  }
}
/* ── 토픽 줄 (v5 TopicStrip) ─────────────────────────────────
 *
 * ⚠️ 아래 여백을 **이 줄이 들고 있다.** 목록 쪽에 주면 토픽이 없는 화면에서
 *    여백만 남아 제목이 사이드바보다 내려앉는다.
 */
/* 데스크톱만 — 모바일은 분류 탭 맨 앞 `토픽` 단추가 그 자리다(v5 hidden lg:block). 아래 여백 40 은 이 줄이 든다 */
.topic_strip_wrap{display:none;margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid var(--border-default);}
@media (min-width:1024px){.topic_strip_wrap{display:block;}}
.topic_strip_list{
  display:flex; gap:var(--sp-6); margin:var(--sp-4) 0 0; padding:0 var(--sp-4);
  margin-left:calc(var(--sp-4) * -1); margin-right:calc(var(--sp-4) * -1);
  list-style:none; overflow-x:auto; scrollbar-width:none;
  /* 오른쪽 끝을 흐려 더 있다는 것을 보인다 */
  -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);
  mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);
}
.topic_strip_list::-webkit-scrollbar{display:none;}
.topic_strip_item{flex:none;}
.topic_strip_link{display:flex;flex-direction:column;gap:var(--sp-3);width:120px;}
.topic_strip_thumb{
  display:block;width:120px;height:120px;overflow:hidden;
  border-radius:var(--radius-full);background:var(--placeholder-bg);
}
.topic_strip_thumb img{width:100%;height:100%;object-fit:cover;transition:transform .2s;}
.topic_strip_link:hover .topic_strip_thumb img{transform:scale(1.05);}
.topic_strip_name{text-align:center;font-size:14px;font-weight:600;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.topic_strip_link:hover .topic_strip_name{text-decoration:underline;}

@media (min-width:1024px){
  .topic_strip_list{
    margin-left:0;margin-right:0;padding:0;gap:0;justify-content:space-between;overflow:visible;
    -webkit-mask-image:none;mask-image:none;
  }
}

/* ══ MY 코인 (v5 MyCoins · MyCoinsEmptyCard · MyCoinsSetupCta) ═══════════
 *
 * 내용은 myCoins.js 가 채운다. 자리는 셋 —
 *   sidebar  데스크톱 사이드바 맨 위. 받기 전에는 229px 자리를 잡는다(운영도 229px)
 *   section  모바일 본문 맨 위. 고른 회원만
 *   cta      모바일 뉴스 아래 한 줄. 판정 전에도 비로그인 모습 그대로 보인다
 */
.mycoins_root[hidden],
.mycoins_card[hidden],
.my_coins_empty_card[hidden],
.my_coins_cta[hidden]{display:none;}
.mycoins_root.is_loading[data-mycoins-show="sidebar"]{min-height:229px;}
/*
 * 화면 폭으로 하나만 보인다(v5 `hidden lg:flex` / `lg:hidden`). 사이드바는 좁은 화면에서
 * 본문 아래로 내려오므로 감추지 않으면 한 화면에 MY 코인이 두 번 나온다.
 */
@media (max-width:1023px){
  .mycoins_root[data-mycoins-show="sidebar"]{display:none;}
}
@media (min-width:1024px){
  .mycoins_root[data-mycoins-show="section"],
  .mycoins_root[data-mycoins-show="cta"]{display:none;}
}

/* 사이드바 — TOP10·마켓 동향과 같은 카드(radius 12 · 테두리 · 안여백 20) */
.mycoins_card.is_sidebar{
  padding:var(--sp-5); border:1px solid var(--border-default); border-radius:var(--radius-lg);
  background:var(--surface-default);
}
/* 모바일 본문 — 흰 블록 · 좌우 20 · 위아래 32 (v5 MOBILE_SECTION) */
.mycoins_card.is_section{padding:var(--sp-8) var(--sp-5);background:var(--surface-default);}

/* ── 제목 + 설정 ── */
.my_coins_head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);}
.my_coins_title{margin:0;color:var(--text-primary);}
.my_coins_wrap.is_sidebar .my_coins_title{font-size:20px;font-weight:700;line-height:1.6;letter-spacing:-0.5px;}
/* 모바일은 다른 모바일 섹션 제목과 같은 20px Black (시안 147:8063) */
.my_coins_wrap.is_section .my_coins_title{font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-0.5px;}
/* 개수는 제목과 같은 크기·굵기에 색만 파랑. 사이 7px (147:8065) */
.my_coins_count{margin-left:7px;color:var(--interactive-default);}
.my_coins_setting{flex:none;padding:0;border:0;background:transparent;cursor:pointer;color:var(--text-secondary);}
.my_coins_setting:hover{color:var(--text-primary);}

/* ── 코인 칩 — 가로로 넘긴다. 스크롤바는 감추고 마우스는 끌어서 ── */
.coin_chips_wrap{
  display:flex; gap:var(--sp-2); margin:var(--sp-3) 0 0; padding:0; list-style:none;
  overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;
}
.coin_chips_wrap::-webkit-scrollbar{display:none;}
.coin_chip_item{flex:none;}
/* 알약이 아니라 8px 각진 사각형이다(185:17332). 고른 것은 gray-09 로 채운다 */
.coin_chip{
  display:flex; align-items:center; gap:6px; padding:var(--sp-2) var(--sp-3);
  border:1px solid var(--border-default); border-radius:var(--radius-md);
  background:var(--input-bg); color:var(--text-tertiary); cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:700; line-height:1.5; letter-spacing:-0.35px;
  user-select:none; -webkit-user-select:none; transition:border-color .15s, background-color .15s, color .15s;
}
.coin_chip:hover{border-color:var(--border-strong);}
.coin_chip.is_on{border-color:var(--gray-09);background:var(--gray-09);color:var(--white);}
.coin_chip img{-webkit-user-drag:none;}

.coin_logo_wrap{flex:none;display:block;border-radius:var(--radius-full);object-fit:cover;}
.coin_logo_fallback{
  flex:none; display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius-full); background:var(--surface-inset);
  font-weight:700; color:var(--text-tertiary);
}

/* 등락 — 상승 빨강, 하락 파랑(한국 관례). 고른 칩 위에서는 밝은 쪽을 쓴다 */
.change_text.is_up,.change_arrow.is_up,.change_badge.is_up{color:var(--status-up);}
.change_text.is_down,.change_arrow.is_down,.change_badge.is_down{color:var(--status-down);}
.change_text.is_flat,.change_arrow.is_flat,.change_badge.is_flat{color:var(--status-flat);}
.coin_chip.is_on .change_text.is_up{color:var(--status-up-on-dark);}
.coin_chip.is_on .change_text.is_down{color:var(--status-down-on-dark);}
.coin_chip.is_on .change_text.is_flat{color:var(--status-flat-on-dark);}

/* ── 고른 코인 시세 — 로고 36 에 시세·등락이 세로로 (204:17674) ── */
.my_coins_price{display:flex;align-items:center;gap:var(--sp-2);}
.my_coins_wrap.is_sidebar .my_coins_price{margin-top:var(--sp-4);}
.my_coins_wrap.is_section .my_coins_price{padding-top:var(--sp-5);}
.my_coins_price_col{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.my_coins_price_value{font-size:18px;font-weight:900;line-height:1.5;letter-spacing:-0.45px;color:var(--text-primary);}
.change_arrow{display:flex;align-items:center;gap:var(--sp-1);font-size:13px;font-weight:700;line-height:1.5;letter-spacing:-0.325px;}
/* 삼각형 9×7 — 내려갈 때는 같은 도형을 180° 돌린다(204:17678) */
.change_arrow_icon{
  display:block; width:9px; height:7px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 7'><path d='M4.5 0L9 7H0z'/></svg>") center / 9px 7px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 7'><path d='M4.5 0L9 7H0z'/></svg>") center / 9px 7px no-repeat;
}
.change_arrow_icon.is_down{transform:rotate(180deg);}

.my_coins_more,.my_coins_community_more{
  margin-left:auto; flex:none; display:flex; align-items:center; gap:2px; color:var(--text-secondary);
}
.my_coins_more{font-size:14px;line-height:1.5;letter-spacing:-0.35px;}
.my_coins_more:hover,.my_coins_community_more:hover{color:var(--text-primary);}
/* v5 section-heading 의 ChevronRight — 10×10, 선 1.4 */
.chevron_right_wrap{
  display:block; width:10px; height:10px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M3.5 1.5L7 5l-3.5 3.5' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / 10px 10px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M3.5 1.5L7 5l-3.5 3.5' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / 10px 10px no-repeat;
}

/* ── 관련 뉴스 ── */
.my_coins_wrap.is_sidebar .my_coins_news{margin-top:var(--sp-6);}
.my_coins_wrap.is_section .my_coins_news{padding-top:var(--sp-6);}
.my_coins_news_title{margin:0;color:var(--text-primary);}
.my_coins_wrap.is_sidebar .my_coins_news_title{font-size:15px;font-weight:700;line-height:1.6;letter-spacing:-0.375px;}
.my_coins_wrap.is_section .my_coins_news_title{padding-bottom:var(--sp-4);font-size:15px;font-weight:900;line-height:1.5;letter-spacing:-0.375px;}

.my_coins_news_list,.my_coins_news_grid{margin:0;padding:0;list-style:none;}
.my_coins_news_headline{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-weight:700; color:var(--text-primary); transition:color .38s cubic-bezier(.2,.7,.3,1);
}
.my_coins_news_link:hover .my_coins_news_headline{color:var(--text-secondary);}
.my_coins_news_meta{display:flex;align-items:center;gap:6px;color:var(--text-tertiary);}
.my_coins_news_bar{display:block;width:1px;background:var(--border-strong);}
.my_coins_news_thumb{display:block;overflow:hidden;background:var(--surface-inset);}
.my_coins_news_thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .38s cubic-bezier(.2,.7,.3,1);}
.my_coins_news_link:hover .my_coins_news_thumb img{transform:scale(1.1);}
@media (prefers-reduced-motion:reduce){.my_coins_news_link:hover .my_coins_news_thumb img{transform:none;}}

/* 사이드바 — 제목 왼쪽(18 Bold, TOP10 과 같은 굵기) · 썸네일 84×56 오른쪽 */
.my_coins_news_list{margin-top:var(--sp-3);}
.my_coins_news_list .my_coins_news_item{padding:var(--sp-4) 0;border-top:1px solid var(--border-default);}
.my_coins_news_list .my_coins_news_item:first-child{padding-top:0;border-top:0;}
.my_coins_news_list .my_coins_news_link{display:flex;gap:var(--sp-3);}
.my_coins_news_body{display:block;flex:1;min-width:0;}
.my_coins_news_list .my_coins_news_headline{font-size:18px;line-height:1.5;letter-spacing:-0.45px;}
.my_coins_news_list .my_coins_news_meta{margin-top:6px;font-size:13px;line-height:1.5;letter-spacing:-0.325px;}
.my_coins_news_list .my_coins_news_bar{height:10px;}
.my_coins_news_list .my_coins_news_thumb{flex:none;width:84px;height:56px;border-radius:var(--radius-xs);}

/* 모바일 — 표지가 위로 올라온 카드 2열(147:8113). 표지 165×110 */
.my_coins_news_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px var(--sp-3);}
.my_coins_news_grid .my_coins_news_item{min-width:0;}
.my_coins_news_grid .my_coins_news_link{display:flex;flex-direction:column;gap:var(--sp-2);}
.my_coins_news_grid .my_coins_news_thumb{
  aspect-ratio:165 / 110; border-radius:var(--radius-md); border:1px solid var(--border-default);
}
.my_coins_news_grid .my_coins_news_headline{font-size:14px;line-height:1.5;letter-spacing:-0.35px;}
.my_coins_news_grid .my_coins_news_meta{font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;}
.my_coins_news_grid .my_coins_news_bar{height:12px;}

/* ── 코인 커뮤니티 ── */
.my_coins_community{border-radius:var(--radius-lg);}
.my_coins_wrap.is_sidebar .my_coins_community{margin-top:var(--sp-6);padding:var(--sp-4);background:var(--surface-subtle);}
/* 모바일 시안 147:8158 — 바탕 input/bg-disabled · 라운드 12 · 로고 24 */
.my_coins_wrap.is_section .my_coins_community{margin-top:var(--sp-5);padding:14px var(--sp-4);background:var(--surface-muted);}
.my_coins_community_head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);}
.my_coins_community_title{display:flex;align-items:center;gap:var(--sp-2);min-width:0;margin:0;font-weight:700;color:var(--text-primary);}
.my_coins_wrap.is_sidebar .my_coins_community_title{font-size:15px;line-height:1.6;letter-spacing:-0.375px;}
.my_coins_wrap.is_section .my_coins_community_title{font-size:16px;line-height:1.5;letter-spacing:-0.4px;}
.my_coins_community_name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.my_coins_community_more{font-size:13px;line-height:1.5;letter-spacing:-0.325px;}
.my_coins_community_list{display:flex;flex-direction:column;gap:var(--sp-2);margin:var(--sp-3) 0 0;padding:0;list-style:none;}
.my_coins_community_link{display:flex;gap:var(--sp-2);font-size:14px;line-height:1.5;letter-spacing:-0.35px;}
.my_coins_community_nick{flex:none;font-weight:700;color:var(--text-primary);}
.my_coins_community_post{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);}

/* ── 안내 카드 (데스크톱 · 498:46746, 348×229) ── */
.my_coins_empty_card{
  display:flex; flex-direction:column;
  border:1px solid var(--border-default); border-radius:var(--radius-lg);
  background:var(--surface-default);
}
.my_coins_empty_body{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-5);}
.my_coins_empty_text{display:flex;flex-direction:column;align-items:center;text-align:center;}
.my_coins_empty_title{margin:0;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-0.45px;color:var(--text-primary);}
.my_coins_empty_desc{margin:0;padding-top:var(--sp-1);font-size:15px;font-weight:500;line-height:1.5;letter-spacing:-0.375px;color:var(--text-secondary);}
/* 두 줄이고 **아랫줄만 파랑**이다(498:46753) */
.my_coins_empty_accent{color:var(--interactive-default);}
.my_coins_empty_icons{display:flex;align-items:center;gap:var(--sp-2);margin:0;padding:0;list-style:none;}
.my_coins_empty_icons img{width:40px;height:40px;border-radius:var(--radius-full);display:block;}
.my_coins_empty_foot{display:flex;padding:0 var(--sp-5) var(--sp-5);}
.my_coins_empty_button{
  flex:1; display:flex; align-items:center; justify-content:center;
  height:var(--btn-h); border:0; border-radius:var(--radius-md);
  background:var(--interactive-default); color:var(--white);
  font-family:inherit; font-size:14px; font-weight:500; letter-spacing:-0.35px; cursor:pointer;
}
.my_coins_empty_button[hidden],.my_coins_cta_button[hidden]{display:none;}
.my_coins_empty_button:hover,.my_coins_cta_button:hover{background:var(--interactive-hover);}

/* ── 모바일 한 줄 CTA (155:12208, 375×80) — 위아래 20 · 좌우 16 ── */
.my_coins_cta{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-4);background:var(--surface-default);}
.my_coins_cta_text{display:flex;flex-direction:column;gap:var(--sp-1);flex:1;min-width:0;}
.my_coins_cta_title{margin:0;font-size:16px;font-weight:800;line-height:normal;letter-spacing:-0.29px;color:var(--text-primary);}
.my_coins_cta_accent{color:var(--interactive-default);}
.my_coins_cta_desc{margin:0;font-size:12px;line-height:16.1px;letter-spacing:normal;color:var(--text-tertiary);}
/* 70×40 — 폭 70 은 최소값. 글자에 여백을 더하면 70 을 살짝 넘는다 */
.my_coins_cta_button{
  flex:none; display:flex; align-items:center; justify-content:center;
  min-width:70px; height:var(--btn-h); padding:0 var(--sp-3); border:0; border-radius:var(--radius-md);
  background:var(--interactive-default); color:var(--white); cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:500; line-height:1.5; letter-spacing:-0.35px;
}

/* ══ MY 코인 팝업 (v5 MyCoinSetup · CoinAdd) — 틀은 components.css 의 .v3_modal ══ */
.my_coin_setup_body{display:flex;flex-direction:column;gap:var(--sp-6);}
.my_coin_setup_label{margin:0;font-size:13px;font-weight:700;line-height:1.5;letter-spacing:-0.325px;color:var(--text-tertiary);}
/* 2×2 (와이어프레임 .mm-sort-list) */
.my_coin_sort_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin-top:var(--sp-2);}
.my_coin_sort_option{
  display:flex; align-items:center; justify-content:space-between; gap:6px;
  height:var(--btn-h); padding:0 var(--sp-3); border:1px solid var(--border-default); border-radius:9px;
  background:var(--surface-default); color:var(--text-secondary); cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:500; line-height:1.5; letter-spacing:-0.35px;
  transition:border-color .15s, background-color .15s, color .15s;
}
.my_coin_sort_option:hover{border-color:var(--interactive-default);}
.my_coin_sort_option.is_on{border-color:var(--interactive-default);background:var(--interactive-subtle);color:var(--interactive-default);font-weight:700;}
/* 체크는 고른 것만. 자리는 늘 차지한다 */
.my_coin_sort_check{visibility:hidden;}
.my_coin_sort_option.is_on .my_coin_sort_check{visibility:visible;}

.my_coin_setup_subs{display:flex;flex-direction:column;gap:var(--sp-2);}
.my_coin_setup_subs_head{display:flex;align-items:flex-end;justify-content:space-between;}
.my_coin_setup_subs_count{margin:0;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.my_coin_setup_subs_num{color:var(--interactive-default);}
.my_coin_setup_clear{
  padding:0; border:0; background:transparent; cursor:pointer; text-decoration:underline;
  font-family:inherit; font-size:14px; font-weight:500; line-height:1.5; letter-spacing:-0.35px; color:var(--text-tertiary);
}
.my_coin_setup_clear:disabled{opacity:.4;cursor:default;}
.my_coin_setup_empty{margin:0;padding:40px 0;text-align:center;font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}
.my_coin_setup_empty[hidden],.coin_list_wrap[hidden],.coin_add_status[hidden],.my_coin_setup_error[hidden]{display:none;}

/* 구독 목록 · 후보 목록 — 같은 행 모양 */
.coin_list_wrap,.coin_add_list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;}
.coin_list_item,.candidate_row{
  display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-3) 0;
  border-bottom:1px solid var(--border-default);
}
.coin_list_item:last-child,.candidate_row:last-child{border-bottom:0;}
.coin_list_item.is_dragging{border-radius:var(--radius-md);background:var(--surface-subtle);opacity:.7;}
/* 끌기 손잡이 — 24 프레임 안에 17×9 선 셋(148:8916). touch-action 이 없으면 터치 끌기를 스크롤이 가져간다 */
.coin_list_handle{
  flex:none; width:24px; height:24px; padding:0; border:0; cursor:grab; touch-action:none;
  background:var(--icon-secondary);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 9'><path d='M.5.5h16M.5 8.5h16M.5 4.5h16' stroke='black' stroke-linecap='round'/></svg>") center / 17px 9px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 9'><path d='M.5.5h16M.5 8.5h16M.5 4.5h16' stroke='black' stroke-linecap='round'/></svg>") center / 17px 9px no-repeat;
}
.coin_list_handle:active{cursor:grabbing;}
.coin_list_body{display:flex;flex-direction:column;flex:1;min-width:0;}
.coin_list_name{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:-0.35px;color:var(--text-primary);}
.coin_list_meta{display:flex;align-items:center;gap:var(--sp-2);}
.coin_list_price{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;color:var(--text-secondary);}
.change_badge{flex:none;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-0.325px;}
/* 회색 원 안의 작은 × — 원은 surface-inset, × 는 icon-secondary */
.coin_list_remove{
  position:relative; flex:none; width:32px; height:32px; padding:var(--sp-1); border:0; cursor:pointer;
  background:transparent;
}
.coin_list_remove::before,.coin_list_remove::after{content:"";position:absolute;inset:4px;border-radius:var(--radius-full);}
.coin_list_remove::before{background:var(--surface-inset);}
.coin_list_remove::after{
  background:var(--icon-secondary);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M16.24 16.24L7.76 7.76M16.24 7.76l-8.48 8.48' stroke='black' stroke-linejoin='round'/></svg>") center / 24px 24px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M16.24 16.24L7.76 7.76M16.24 7.76l-8.48 8.48' stroke='black' stroke-linejoin='round'/></svg>") center / 24px 24px no-repeat;
}

.my_coin_setup_error{margin:0 0 var(--sp-2);font-size:13px;line-height:1.5;letter-spacing:-0.325px;color:var(--status-up);}
.my_coin_setup_wrap{display:flex;gap:var(--sp-2);}
.my_coin_setup_add,.my_coin_setup_save,.coin_add_wrap{
  height:var(--btn-h-xl); border-radius:var(--radius-md); cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:700; line-height:1.6; letter-spacing:-0.375px;
}
.my_coin_setup_add{flex:1;border:1px solid var(--border-default);background:var(--surface-default);color:var(--text-secondary);}
.my_coin_setup_add:hover{border-color:var(--interactive-default);color:var(--interactive-default);}
.my_coin_setup_save{flex:1;border:0;background:var(--interactive-default);color:var(--white);}
.coin_add_wrap{width:100%;border:0;background:var(--interactive-default);color:var(--white);}
.my_coin_setup_save:disabled,.coin_add_wrap:disabled{opacity:.6;cursor:default;}

/* 추가 팝업 — 검색 46px · input/bg-disabled · 돋보기는 오른쪽(155:13216) */
.coin_add_body{display:flex;flex-direction:column;gap:var(--sp-4);}
.coin_add_search{display:flex;align-items:center;gap:var(--sp-2);height:46px;padding:0 14px;border-radius:var(--radius-md);background:var(--surface-muted);}
.coin_add_input{
  flex:1; min-width:0; border:0; outline:0; background:transparent;
  font-family:inherit; font-size:14px; line-height:1.5; letter-spacing:-0.35px; color:var(--text-primary);
}
.coin_add_input::placeholder{color:var(--text-tertiary);}
.coin_add_search_icon{
  flex:none; width:20px; height:20px; background:var(--icon-secondary);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.5 19.5'><circle cx='8.25' cy='8.25' r='7.5' fill='none' stroke='black' stroke-width='1.5'/><path d='M13.75 13.75l5 5' stroke='black' stroke-width='1.5' stroke-linecap='round'/></svg>") center / 19.5px 19.5px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.5 19.5'><circle cx='8.25' cy='8.25' r='7.5' fill='none' stroke='black' stroke-width='1.5'/><path d='M13.75 13.75l5 5' stroke='black' stroke-width='1.5' stroke-linecap='round'/></svg>") center / 19.5px 19.5px no-repeat;
}
.coin_add_status{margin:0;padding:40px 0;text-align:center;font-size:14px;line-height:1.5;letter-spacing:-0.35px;color:var(--text-tertiary);}
/* 70×32 · 옅은 파랑 바탕에 파란 글씨. 구독중은 흰 바탕 · 테두리 */
.candidate_toggle{
  flex:none; width:70px; height:32px; border:0; border-radius:var(--radius-md); cursor:pointer;
  background:var(--interactive-subtle); color:var(--interactive-default);
  font-family:inherit; font-size:13px; font-weight:500; line-height:1.5; letter-spacing:-0.325px;
  transition:background-color .15s, color .15s;
}
.candidate_toggle.is_on{border:1px solid var(--border-default);background:var(--surface-default);color:var(--text-tertiary);}

/* ══ 없는 쪽 (v5 app/not-found.tsx) ══════════════════════════════════════ */
.not_found_wrap{display:flex;flex-direction:column;align-items:center;padding-top:80px;padding-bottom:80px;text-align:center;}
@media (min-width:768px){.not_found_wrap{padding-top:112px;padding-bottom:112px;}}
.not_found_title{margin:0;font-size:20px;font-weight:700;line-height:1.6;letter-spacing:-0.5px;color:var(--interactive-default);}
.not_found_art{position:relative;width:304px;max-width:100%;margin-top:var(--sp-8);}
.not_found_art img{display:block;width:100%;height:auto;}
.not_found_code{position:absolute;left:8.2%;top:3.1%;font-size:30px;font-weight:900;line-height:1;letter-spacing:-0.025em;color:var(--primary-06);}
.not_found_text{margin:0;padding-top:var(--sp-8);font-size:16px;line-height:1.5;letter-spacing:-0.4px;color:var(--text-secondary);}
.not_found_link{text-decoration:underline;}
.not_found_home{display:flex;align-items:center;justify-content:center;width:140px;height:44px;margin-top:40px;border-radius:var(--radius-md);background:var(--interactive-default);font-size:15px;font-weight:500;line-height:1.6;color:var(--white);}
