:root {
  color-scheme: light;
  --ink: #151a2d;
  --muted: #6b7280;
  --blue: #2e5bff;
  --line: #e5e7ef;
  --paper: #f7f9fc;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, "Noto Sans KR", sans-serif; line-height: 1.8; }
.article-shell { width: min(900px, calc(100% - 40px)); margin: 0 auto; padding: 38px 0 80px; }
.back { color: var(--blue); text-decoration: none; font-weight: 700; }
.article-header { margin: 44px 0; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.category { color: var(--blue); font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
h1 { margin: 10px 0; font-size: clamp(30px, 5vw, 52px); line-height: 1.2; letter-spacing: -.04em; }
time { color: var(--muted); font-size: 14px; }
.article-content { background: #fff; padding: clamp(24px, 5vw, 58px); border: 1px solid var(--line); border-radius: 18px; overflow-wrap: anywhere; }
.article-content img { display: block; max-width: 100%; height: auto; margin: 24px auto; }
.article-content iframe { display: block; width: 100%; min-height: 420px; border: 0; }
.article-content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.article-content pre { max-width: 100%; overflow-x: auto; padding: 16px; background: #101828; color: #e5e7eb; border-radius: 10px; }
.article-content .source-button { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; padding: 11px 18px; border-radius: 999px; background: var(--blue); color: #fff; font-weight: 800; line-height: 1.2; text-decoration: none; box-shadow: 0 10px 20px rgba(46, 91, 255, .2); transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.article-content .source-button::after { content: "↗"; font-size: 1.05em; }
.article-content .source-button:hover { background: #1f46d8; transform: translateY(-2px); box-shadow: 0 14px 24px rgba(46, 91, 255, .28); }
.article-content .source-button:focus-visible { outline: 3px solid rgba(46, 91, 255, .35); outline-offset: 3px; }
