html,body{margin:0;padding:0}

  :root{
    --ground:#F5F7FA; --surface:#FFFFFF; --ink:#131C2E; --ink-soft:#3C4860;
    --muted:#6B7689; --line:#DCE1EA; --line-soft:#E9EDF3;
    --accent:#0F6E64; --accent-soft:#E2F0ED; --seal:#A93226;
    --warn:#8A6100; --warn-soft:#F6EEDA;
    --shadow:0 1px 2px rgba(19,28,46,.05);
    --serif:"Noto Serif KR","Nanum Myeongjo",serif;
    --sans:"IBM Plex Sans KR",-apple-system,BlinkMacSystemFont,"Malgun Gothic",sans-serif;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ground:#0E1219; --surface:#161C27; --ink:#E9EDF5; --ink-soft:#C2CAD8;
      --muted:#8B97AB; --line:#28313F; --line-soft:#212934;
      --accent:#5BC3B3; --accent-soft:#15302D; --seal:#E0776A;
      --warn:#D7A945; --warn-soft:#2E2718; --shadow:0 1px 2px rgba(0,0,0,.3);
    }
  }
  :root[data-theme="dark"]{
    --ground:#0E1219; --surface:#161C27; --ink:#E9EDF5; --ink-soft:#C2CAD8;
    --muted:#8B97AB; --line:#28313F; --line-soft:#212934;
    --accent:#5BC3B3; --accent-soft:#15302D; --seal:#E0776A;
    --warn:#D7A945; --warn-soft:#2E2718; --shadow:0 1px 2px rgba(0,0,0,.3);
  }
  *{box-sizing:border-box}
  body{background:var(--ground);color:var(--ink);font-family:var(--sans);
    font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}
  img{max-width:100%}
  .wrap{width:100%;max-width:760px;margin:0 auto;padding-inline:20px;padding-block:0 64px}

  header{padding-block:44px 28px}
  .mark{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--seal);font-weight:600;margin-bottom:14px}
  .mark .dot{width:9px;height:9px;border-radius:50%;border:2px solid var(--seal)}
  h1{font-family:var(--serif);font-weight:700;font-size:clamp(30px,6.5vw,42px);
    line-height:1.25;margin:0 0 12px;letter-spacing:-.01em;text-wrap:balance}
  .lede{margin:0;color:var(--ink-soft);font-size:16px;max-width:52ch}
  .meta-row{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:20px;padding-top:18px;
    border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
  .meta-row b{color:var(--ink-soft);font-weight:500}

  .controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:22px}
  .search{flex:1 1 200px;min-width:0;display:flex;align-items:center;gap:8px;
    background:var(--surface);border:1px solid var(--line);border-radius:8px;
    padding:9px 12px;box-shadow:var(--shadow)}
  .search svg{flex:none;color:var(--muted)}
  .search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);
    font:inherit;font-size:14px;outline:none}
  .search input::placeholder{color:var(--muted)}
  .chips{display:flex;flex-wrap:wrap;gap:6px}
  .chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);
    font:inherit;font-size:13px;padding:7px 13px;border-radius:999px;cursor:pointer;
    transition:background .15s,border-color .15s,color .15s}
  .chip:hover{border-color:var(--accent)}
  .chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}
  :root[data-theme="dark"] .chip[aria-pressed="true"]{color:#0E1219}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .chip[aria-pressed="true"]{color:#0E1219}
  }
  .chip:focus-visible,.search input:focus-visible,a:focus-visible{
    outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

  .count{font-size:13px;color:var(--muted);margin:0 0 14px}
  .list{display:flex;flex-direction:column;gap:14px}

  article{background:var(--surface);border:1px solid var(--line);border-radius:10px;
    padding:20px;box-shadow:var(--shadow)}
  .top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:10px}
  .date{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.04em}
  .cat{font-size:12px;color:var(--accent);font-weight:500;background:var(--accent-soft);
    padding:3px 9px;border-radius:5px}
  .status{margin-left:auto;font-size:12px;font-weight:600;padding:3px 10px;border-radius:5px;
    font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid var(--line);color:var(--ink-soft)}
  .status.cls-open{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
  .status.cls-soon{border-color:var(--seal);color:var(--seal)}
  .status.cls-tbd{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}

  h2{font-family:var(--serif);font-weight:700;font-size:20px;line-height:1.4;
    margin:0 0 14px;letter-spacing:-.005em;text-wrap:balance}

  dl{margin:0;display:grid;grid-template-columns:76px 1fr;gap:1px 0}
  dl>div{display:contents}
  dt{font-size:13px;color:var(--muted);font-weight:500;padding:8px 12px 8px 0;
    border-top:1px solid var(--line-soft)}
  dd{margin:0;font-size:14px;color:var(--ink-soft);padding:8px 0;
    border-top:1px solid var(--line-soft);overflow-wrap:anywhere}
  dl>div:first-child dt,dl>div:first-child dd{border-top:0;padding-top:0}
  .flag{display:inline-block;font-size:11.5px;font-weight:600;color:var(--warn);
    background:var(--warn-soft);padding:1px 7px;border-radius:4px;margin-left:5px;white-space:nowrap}
  .sub{display:block;margin-top:5px;font-size:13px;color:var(--muted)}

  .links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:16px;padding-top:14px;
    border-top:1px solid var(--line-soft);font-size:13.5px}
  .links a{color:var(--accent);text-decoration:none;font-weight:500;
    display:inline-flex;align-items:center;gap:5px}
  .links a:hover{text-decoration:underline}
  .links .org{color:var(--muted);font-weight:400}

  .empty{text-align:center;padding:48px 20px;color:var(--muted);
    border:1px dashed var(--line);border-radius:10px;font-size:14px}

  .adbox{margin:20px 0;min-height:1px}
  .adbox ins{display:block}
  .ad-desktop{display:block}
  .ad-mobile{display:none}
  @media (max-width:430px){
    .ad-desktop{display:none}
    .ad-mobile{display:block}
  }

  footer{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);
    font-size:13px;color:var(--muted)}
  footer p{margin:0 0 8px}
  footer a{color:var(--accent)}
  .fnav{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px}

  @media (max-width:430px){
    .wrap{padding-inline:16px}
    dl{grid-template-columns:1fr}
    dt{padding-bottom:0;border-top:1px solid var(--line-soft)}
    dd{padding-top:2px;border-top:0}
    dl>div:first-child dt{border-top:0}
    .status{margin-left:0}
  }
  @media (prefers-reduced-motion:reduce){*{transition:none!important}}

[hidden]{display:none!important}
  h2 a{color:inherit;text-decoration:none}
  h2 a:hover{color:var(--accent);text-decoration:underline}
