@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg,#f7f8fc);color:var(--ink,#17213c);font-family:Pretendard,system-ui,sans-serif;line-height:1.65;overflow-wrap:anywhere}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}img,canvas{max-width:100%}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.5rem,4.8vw,5rem);line-height:1.17;letter-spacing:-.055em;text-wrap:balance}h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.3;letter-spacing:-.04em}h3{font-size:1.25rem;line-height:1.4}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.l-wrap{width:min(1180px,calc(100% - 64px));margin:auto}.l-header{border-bottom:1px solid var(--line,#dde0e9);background:var(--header,var(--bg));position:relative;z-index:5}.l-header>.l-wrap{display:flex;align-items:center;gap:24px;min-height:88px;flex-wrap:wrap;padding-block:16px}.l-brand{font-size:1.7rem;font-weight:900;letter-spacing:-.07em}.l-brand span{display:block;font-size:.62rem;letter-spacing:.1em}.l-header nav{display:flex;gap:18px;flex:1;justify-content:center;flex-wrap:wrap;font-size:.85rem;font-weight:650}.l-header nav [aria-current]{color:var(--accent);text-decoration:underline;text-underline-offset:8px}.t-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border:1px solid var(--line,#b8bed0);border-radius:var(--radius,8px);font-weight:750;cursor:pointer;color:inherit;background:transparent}.t-btn--primary{background:var(--accent);color:var(--button-ink,#fff);border-color:var(--accent)}.t-btn:disabled{cursor:default;opacity:.55}.l-cta__actions{display:flex;gap:12px;flex-wrap:wrap;margin-block:28px}.l-home-hero{padding:85px 0 100px;background:var(--hero,var(--bg));color:var(--hero-ink,var(--ink));position:relative;overflow:hidden}.l-hero-grid{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:40px;position:relative}.l-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.18em;color:var(--accent)}.l-lead{font-size:1.15rem;max-width:650px;opacity:.78}.l-art{height:390px;position:relative;display:grid;place-items:center;isolation:isolate}.l-art>span{position:relative;font-size:6rem;font-weight:900;line-height:1;text-align:center;letter-spacing:-.07em}.l-art small{font-size:.65rem;letter-spacing:.24em}.l-art canvas{position:absolute;inset:0;width:100%;height:100%}.l-orbit{position:absolute;width:280px;height:280px;border:1px solid var(--accent);border-radius:50%;transform:rotate(-25deg);box-shadow:0 0 70px color-mix(in srgb,var(--accent) 20%,transparent)}.l-key-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:-36px;position:relative;z-index:1}.l-key-info h3{margin:10px 0;font-size:1.2rem}.l-key-info small{color:var(--accent);font-weight:700}.l-key-info p{font-size:.85rem;margin:0;opacity:.7}.l-section{padding:65px 0;border-bottom:1px solid var(--line,#dde0e9)}.l-section-heading{margin-bottom:28px}.l-grid{display:grid;gap:20px}.l-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.l-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.l-card,.t-card{background:var(--card,#fff);border:1px solid var(--line,#dde0e9);border-radius:var(--radius,12px);padding:28px;min-width:0}.l-card p{opacity:.75;margin-bottom:10px}.l-card__icon{display:block;color:var(--accent);font-weight:900;font-size:1.2rem;margin-bottom:20px}.l-detail{padding:12px 0;border-bottom:1px solid var(--line,#dde0e9)}.l-detail strong{display:inline-block;min-width:120px}.l-footer{padding-block:48px;font-size:.85rem}.l-footer p{opacity:.65;margin-top:12px}.l-cta{padding:72px 0;text-align:center;background:var(--hero,var(--accent));color:var(--hero-ink,var(--ink));margin-top:40px}.l-cta h2{font-size:clamp(2rem,4vw,3.5rem)}.l-cta__actions{justify-content:flex-start}.l-cta .l-cta__actions{justify-content:center}.l-hero{padding:48px 0;background:var(--hero,var(--bg));color:var(--hero-ink,var(--ink))}.l-hero h1{font-size:clamp(2.6rem,5vw,4rem)}.l-crumb{display:flex;gap:15px;font-size:.8rem;opacity:.7;margin-bottom:40px}.l-page-content{padding-block:48px;min-height:350px}.l-page-content>.l-section:first-child{padding-top:0}.l-notices{list-style:none;padding:0}.l-notices li{border-top:1px solid var(--line,#ddd)}.l-notices a{display:flex;align-items:center;gap:20px;padding:22px 0}.l-notices strong{flex:1}.l-notices time,.l-meta{font-size:.82rem;opacity:.65}.l-cat,.l-pill,.l-tags span{display:inline-block;padding:4px 10px;font-size:.75rem;border:1px solid var(--line,#ddd);border-radius:var(--radius,8px)}.l-tags{display:flex;gap:6px;flex-wrap:wrap}.l-empty{padding:50px;text-align:center;border:1px dashed var(--line,#bbb);border-radius:var(--radius,12px)}.l-prose{padding-top:28px;white-space:normal;line-height:1.9}.l-person__photo{height:180px;display:grid;place-items:center;background:var(--hero,#eaeafa);background-position:center;background-size:cover;border-radius:var(--radius,12px);margin-bottom:24px;font-size:3rem;color:var(--accent)}.l-timeline{list-style:none;padding:0}.l-timeline li,.l-schedule-item{padding:24px;border-left:3px solid var(--accent);margin-left:8px}.l-faq details,details.l-faq-item{padding:20px;border-bottom:1px solid var(--line,#ccc)}summary{cursor:pointer;font-weight:700}.t-field{display:grid;gap:8px;margin-bottom:18px}.t-input,input:not([type=checkbox]):not([type=radio]),textarea,select{max-width:100%;background:var(--card,#fff);color:var(--ink);padding:10px 12px;border:1px solid var(--line,#bbb);border-radius:6px}.t-stepper{display:flex;gap:12px;flex-wrap:wrap}.skip-link{position:fixed;top:-100px;left:12px;padding:12px;background:var(--accent);color:var(--button-ink,#fff);z-index:100}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.preview-bar{position:sticky;bottom:0;z-index:20;background:#111827;color:white;padding:12px 24px;display:flex;gap:15px;flex-wrap:wrap;font-size:.8rem;box-shadow:0 -5px 25px #0003}.preview-bar__group,.preview-bar__pages{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.preview-bar__pages .is-active{color:#b9ff71;text-decoration:underline}.preview-bar select{background:#243047;color:white}.preview-bar__label{max-width:250px}.l-countdown{display:flex;gap:14px;margin-top:30px}.l-countdown strong{font-size:1.5rem}.l-countdown__unit{display:grid}
@media(max-width:1000px){.l-header nav{order:3;flex-basis:100%;justify-content:flex-start}.l-header>.l-wrap>.t-btn{margin-left:auto}.l-hero-grid{gap:20px}.l-key-info{grid-template-columns:repeat(2,minmax(0,1fr))}.l-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.l-art{height:300px}.l-art>span{font-size:4.5rem}}
@media(max-width:600px){.l-wrap{width:calc(100% - 36px)}.l-home-hero{padding:45px 0 65px}.l-hero-grid{grid-template-columns:1fr}.l-art{height:200px}.l-orbit{width:180px;height:180px}.l-grid--2,.l-grid--3{grid-template-columns:1fr}.l-key-info{gap:10px}.l-key-info .l-card{padding:16px}.l-key-info h3{font-size:1rem}.l-card{padding:22px}.l-section{padding-block:42px}.l-header nav{gap:12px}.l-header .t-btn{padding:10px 12px;font-size:.8rem}.l-notices a{flex-wrap:wrap;gap:8px}.l-notices strong{flex-basis:75%}.l-notices time{margin-left:auto}.preview-bar{position:relative}.l-empty{padding:28px}.l-art>span{font-size:3.8rem}.l-detail strong{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* ── 밴드 ──────────────────────────────────────────────────────────────────
   섹션마다 전면 폭 배경을 갖는 띠. 색·모션은 각 테마가 정하고 여기서는 뼈대만 만든다.
   base(기본) / alt(톤다운) / deep(반전) / float(히어로 위로 겹침) */
.l-band{position:relative;isolation:isolate;background:var(--band-bg,transparent);color:var(--band-ink,inherit)}
.l-band>.l-wrap{position:relative;z-index:1}
.l-band[data-band=alt]{--band-bg:var(--surface-alt,transparent)}
.l-band[data-band=deep]{--band-bg:var(--surface-deep,var(--ink));--band-ink:var(--surface-deep-ink,var(--bg))}
.l-band[data-band=deep] .l-card{background:var(--deep-card,transparent);border-color:var(--deep-line,#ffffff30);color:inherit}
.l-band[data-band=deep] .l-detail{border-bottom-color:var(--deep-line,#ffffff30)}
.l-band[data-band=deep] .l-card__icon{color:inherit;opacity:.75}
.l-band[data-band=float]{z-index:2}
.l-band[data-band=float]>.l-wrap{padding-bottom:28px}
.l-section>.l-grid+.l-grid{margin-top:24px}
.l-footer-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:20px}
.l-footer-links a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.l-band[data-band=float]>.l-wrap{padding-bottom:20px}.l-section>.l-grid+.l-grid{margin-top:20px}}
.l-section{border-bottom:0}
.l-band+.l-band[data-band=base] .l-section{padding-top:76px}
.l-progress{position:fixed;top:0;left:0;z-index:50;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--accent);pointer-events:none}
.l-stats{display:flex;flex-wrap:wrap;gap:34px;margin:30px 0 0;padding-top:24px;border-top:1px solid color-mix(in srgb,currentColor 16%,transparent)}
.l-stats div{display:grid;gap:2px}
.l-stats dd{margin:0;font-size:1.75rem;font-weight:800;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.l-stats dt{font-size:.74rem;opacity:.62;letter-spacing:.04em}
@media(max-width:600px){.l-stats{gap:22px}.l-stats dd{font-size:1.35rem}}

/* ── 플립 시계 ─────────────────────────────────────────────────────────────
   접수와 본 행사를 각각 센다. 자릿수가 바뀔 때 카드 윗면이 접혀 내려간다. */
.l-clocks{margin-top:26px;justify-content:flex-end}
.l-clock{display:grid;gap:8px;justify-items:end}
.l-clock__label{margin:0;font-size:.72rem;letter-spacing:.1em;opacity:.62}
.l-clock__note{margin:0;font-size:1.05rem;font-weight:750}
.l-clock__row{display:flex;gap:8px}
.l-flip{display:grid;gap:6px;justify-items:center;perspective:220px}
.l-flip__card{position:relative;display:block;min-width:54px;padding:10px 8px 11px;border-radius:8px;background:var(--clock-face,color-mix(in srgb,currentColor 10%,transparent));border:1px solid var(--clock-line,color-mix(in srgb,currentColor 18%,transparent));font-size:1.55rem;font-weight:800;line-height:1;text-align:center;font-variant-numeric:tabular-nums}
.l-flip__card:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--clock-hinge,color-mix(in srgb,currentColor 22%,transparent))}
.l-flip__fold{position:absolute;left:0;right:0;top:0;height:50%;overflow:hidden;display:grid;align-items:start;justify-items:center;border-radius:8px 8px 0 0;background:var(--clock-face,color-mix(in srgb,currentColor 10%,transparent));font-style:normal;line-height:1;padding-top:10px;transform-origin:bottom;backface-visibility:hidden;opacity:0}
.l-flip.is-flip .l-flip__fold{opacity:1;animation:l-fold .42s cubic-bezier(.36,0,.66,-.06) forwards}
@keyframes l-fold{from{transform:rotateX(0)}to{transform:rotateX(-90deg)}}
.l-flip__caption{font-style:normal;font-size:.55rem;letter-spacing:.14em;opacity:.5}
@media(max-width:1000px){.l-clocks{justify-items:start}.l-clock{justify-items:start}}
@media(max-width:600px){.l-clocks{gap:14px;margin-top:20px}.l-flip__card{min-width:44px;padding:8px 6px 9px;font-size:1.2rem}.l-clock__row{gap:6px}}
/* 히어로 안의 시계는 아트와 함께 우측 열에 들어가므로 더 촘촘하게 둔다 */
.l-home-hero .l-art{height:340px}
.l-home-hero .l-clocks{gap:12px 26px;margin-top:20px;justify-content:flex-end}
.l-home-hero .l-flip__card{min-width:46px;padding:8px 6px 9px;font-size:1.28rem}
.l-home-hero .l-flip__fold{padding-top:8px}
.l-home-hero .l-clock__row{gap:6px}
@media(max-width:1000px){.l-home-hero .l-clocks{justify-content:flex-start}.l-home-hero .l-art{height:300px}}
.l-hero-side{min-width:0;display:grid;align-content:center;gap:0}
/* 히어로 좌측 상단 주최·주관 로고.
   기관 로고는 배경색이 제각각이라(흰 배경 PNG·컬러 마크) 어두운 히어로 위에서 톤이 튄다 —
   흰색으로 눕혀(brightness+grayscale) 한 줄로 보이게 하고, 마우스를 올리면 원래 색을 보여 준다.
   높이만 고정하고 폭은 자유롭게 둔다: 가로세로비가 기관마다 달라 폭을 맞추면 찌그러진다. */
.l-hero-logos{list-style:none;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:0 0 26px;padding:0}
.l-hero-logos img{height:28px;width:auto;display:block;opacity:.92;filter:brightness(0) invert(1)}
@media(max-width:600px){.l-hero-logos{gap:14px;margin-bottom:20px}.l-hero-logos img{height:22px}}


/* ── 개수에 따라 줄이 나뉘는 그리드 ─────────────────────────────────────────
   카드 수를 --cols 로 받아 배치한다. 프로세스는 5단계까지 한 줄, 6단계부터 두 줄.
   시상은 4개까지 한 줄, 5개부터 두 줄. 계산은 파셜이 하고 여기서는 칸만 만든다. */
.l-key-info{grid-template-columns:repeat(var(--cols,4),minmax(0,1fr))}
.l-steps,.l-prizes{display:grid;gap:20px;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));margin:0;padding:0;list-style:none}
.l-steps li{min-width:0}
.l-steps time{display:block;margin-top:12px;font-size:.8rem;opacity:.65;font-variant-numeric:tabular-nums}
.l-steps h3,.l-prizes h3{margin-bottom:8px}
.l-prizes small{display:block;margin-bottom:8px;font-size:.72rem;font-weight:800;letter-spacing:.1em;color:var(--accent)}
.l-prizes strong{display:block;margin-top:10px;font-size:1.15rem}
.l-band[data-band=deep] .l-prizes small{color:inherit;opacity:.7}
.l-key-info p{white-space:pre-line}

/* ── 주최·후원 로고 ───────────────────────────────────────────────────────── */
.l-sponsors{display:flex;flex-wrap:wrap;gap:28px 44px;align-items:center;margin:0;padding:0;list-style:none}
.l-sponsors li{display:grid;gap:8px;justify-items:center;text-align:center}
.l-sponsors img{max-height:56px;width:auto;object-fit:contain}
.l-sponsors__mark{font-size:1.05rem;font-weight:750;letter-spacing:-.02em}
.l-sponsors b{font-size:.9rem;font-weight:650}
.l-sponsors small{font-size:.7rem;opacity:.55;letter-spacing:.08em}
.l-sponsors.is-logo-only{gap:32px 56px}
.l-sponsors.is-logo-only img{max-height:64px}

/* ── 하단 CTA 의 큰 카운트다운 ─────────────────────────────────────────────── */
.l-cta .l-clock--hero{justify-items:center;margin:26px auto 4px}
.l-cta .l-clock--hero .l-clock__label{font-size:.78rem;letter-spacing:.14em;opacity:.7}
.l-cta .l-clock--hero .l-flip__card{min-width:88px;padding:16px 12px 18px;font-size:2.6rem;border-radius:12px}
.l-cta .l-clock--hero .l-flip__fold{padding-top:16px;border-radius:12px 12px 0 0}
.l-cta .l-clock--hero .l-flip__caption{font-size:.62rem}
.l-cta .l-clock--hero .l-clock__row{gap:12px}
.l-cta .l-clock--hero .l-clock__note{font-size:1.6rem}

@media(max-width:1000px){
  .l-steps,.l-prizes{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
  .l-key-info{grid-template-columns:repeat(2,minmax(0,1fr))}
  .l-cta .l-clock--hero .l-flip__card{min-width:70px;font-size:2.1rem}
}
@media(max-width:600px){
  .l-steps,.l-prizes{grid-template-columns:1fr}
  /* 한 줄에 한 단계가 되는 폭에서는 번호를 왼쪽 칸에 두고 제목·기간을 그 오른쪽에 — 번호 아래로 내려 쓰면 오른쪽이 텅 빈다. */
  .l-steps li.l-card{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:start}
  .l-steps li.l-card>.l-card__icon{grid-row:1/span 3;margin:0}
  .l-steps li.l-card>:not(.l-card__icon){grid-column:2}
  .l-steps li.l-card>h3{margin-top:0;margin-bottom:4px}
  .l-steps li.l-card>p{margin:0}
  .l-steps li.l-card>time{margin-top:6px}
  .l-sponsors{gap:20px 28px;justify-content:center}
  .l-cta .l-clock--hero .l-flip__card{min-width:56px;padding:11px 8px 12px;font-size:1.5rem}
  .l-cta .l-clock--hero .l-clock__row{gap:8px}
}

/* ── 히어로 배경 이펙트 ─────────────────────────────────────────────────────
   파티클 캔버스는 히어로 전체를 채우는 배경이다. 그리는 주체는 각 테마의 theme.js 이고,
   쓰지 않는 테마에서는 빈 캔버스라 아무것도 보이지 않는다. */
/* 히어로 배경 이펙트는 **오른쪽 절반**에 둔다 — 왼쪽은 제목·본문 자리다.
   캔버스는 자기 상자 크기로 투영을 다시 계산하므로(ResizeObserver), 상자를 좁히면 형상도 그 안에서 가운데로 온다.
   한 단 레이아웃으로 접히는 좁은 화면에서는 글이 이펙트 위에 오지 않으므로 전체 폭을 그대로 쓴다. */
.l-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
/* 왼쪽 끝은 색을 덧칠하지 않고 **알파로** 흐린다 — 색을 칠하면 히어로 배경과 한 톤만 달라도 경계선이 보인다. */
@media(min-width:1001px){.l-hero-bg{left:44%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%)}}
.l-hero-bg canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.l-home-hero>.l-wrap{position:relative;z-index:1}
.l-art canvas{display:none}

/* ── 시계: 나란히 두다가 좁아지면 탭 ───────────────────────────────────────── */
.l-clocks{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:flex-start}
.l-clocks.is-tabbed{flex-direction:column;gap:10px}
.l-clocks__tabs{display:flex;gap:4px;padding:3px;border-radius:999px;background:color-mix(in srgb,currentColor 8%,transparent)}
.l-clocks__tabs button{padding:6px 14px;border:0;border-radius:999px;background:transparent;color:inherit;font-size:.74rem;font-weight:700;letter-spacing:.02em;opacity:.6;cursor:pointer}
.l-clocks__tabs button[aria-selected=true]{background:var(--clock-face,color-mix(in srgb,currentColor 14%,transparent));opacity:1}
.l-clocks.is-tabbed .l-clock__label{display:none}
/* Padding is included in border-box: reserve three digits plus horizontal space.
   Never wrap a clock number, including the animated previous value. */
.l-flip__card,.l-flip__fold{white-space:nowrap;overflow-wrap:normal}
.l-flip[data-unit=days] .l-flip__card{min-width:calc(3ch + 1em);width:max-content}
/* Dropdown affordance survives page-specific background/padding shorthands. */
html body select:not([multiple]):not([size]),html body select:not([multiple])[size="1"]{
 appearance:none!important;-webkit-appearance:none!important;padding-right:30px!important;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M1 3.5h10L6 9z'/%3E%3C/svg%3E")!important;
 background-position:right 10px center!important;background-size:10px 10px!important;background-repeat:no-repeat!important;
}
html body select[multiple],html body select[size]:not([size="1"]){background-image:none!important}
@media(forced-colors:active){html body select:not([multiple]){appearance:auto!important;-webkit-appearance:auto!important;background-image:none!important}}
.apply-readonly{padding:12px 16px;border:1px solid var(--accent);border-radius:var(--radius,10px);background:color-mix(in srgb,var(--accent) 8%,transparent);font-size:.85rem;line-height:1.7}
.apply-readonly b{display:block;margin-bottom:2px}
/* 한 섹션에 목록이 여럿일 때의 소제목(교육 안내 → 교육 포인트 / 과정 안내).
   섹션 제목(h2)보다 작고, 카드 묶음의 시작을 알린다. */
.l-subheading{margin:38px 0 16px;font-size:1.05rem;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}
.l-subheading:before{content:"";width:18px;height:2px;background:var(--accent);border-radius:2px}
.l-section>.l-subheading:first-of-type{margin-top:8px}
/* 섹션 제목 바로 아래 설명 문단 — 라벨 없이 읽히는 글. */
.l-lead-text{max-width:760px;margin:-6px 0 26px;font-size:1rem;line-height:1.85;opacity:.8}
/* '제목 : 값' 줄 목록. 한 줄짜리 값을 카드에 담으면 여백만 커진다.
   제목 칸 폭을 고정해 값이 세로로 줄을 맞춘다 — 긴 제목은 그 칸 안에서 줄바꿈된다.
   좁은 화면에서는 두 칸이 다 좁아지므로 위아래로 쌓는다. */
.l-details{margin-bottom:8px}
.l-details .l-detail{display:flex;gap:20px;align-items:baseline}
.l-details .l-detail:first-child{border-top:1px solid var(--line,#dde0e9)}
.l-details .l-detail>strong{flex:0 0 160px;min-width:0;display:block}
.l-details .l-detail>span{flex:1;min-width:0}
@media(max-width:600px){.l-details .l-detail{display:block}.l-details .l-detail>span{display:block;margin-top:5px}}

.l-topic__head{margin-bottom:14px}
.l-topic>h3{margin-top:0}
.l-topic__thumb{display:block;margin:-28px -28px 20px;overflow:hidden;aspect-ratio:16/9;background:var(--line,#dde0e9);border-radius:var(--radius,12px) var(--radius,12px) 0 0}
.l-topic__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.l-topic.is-closed .l-topic__thumb img{filter:grayscale(1);opacity:.6}
.theme-journal .l-topic__thumb{margin-inline:0;border-radius:0}
@media(max-width:600px){.l-topic__thumb{margin:-22px -22px 16px}.theme-journal .l-topic__thumb{margin-inline:0}}

/* 주제 카드 → 상세 창. 제목 버튼의 ::after 가 카드 전체를 덮어 어디를 눌러도 열린다. */
.l-topic{position:relative;display:flex;flex-direction:column}
.l-topic__open{all:unset;cursor:pointer}
/* z-index 가 없으면 opacity 를 가진 본문 문단이 덮개 위로 그려져 본문을 눌러도 열리지 않는다. */
.l-topic__open::after{content:'';position:absolute;inset:0;border-radius:inherit;z-index:1}
.l-topic__open:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.l-topic:hover{border-color:var(--accent)}
.l-topic__text{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.l-topic__more{margin-top:auto;padding-top:12px;font-size:.8rem;font-weight:750;color:var(--accent)}
.l-topic-dialog{width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line,#dde0e9);border-radius:var(--radius,12px);background:var(--dialog-bg,var(--card,#fff));color:var(--ink,#17213c);overflow:auto}
.l-topic-dialog::backdrop{background:#0b1020a6}
.l-topic-dialog__body{position:relative;padding:32px}
.l-topic-dialog__close{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:50%;background:var(--dialog-bg,var(--card,#fff));color:inherit;font-size:1.6rem;line-height:1;cursor:pointer;z-index:1}
.l-topic-dialog__thumb{display:block;margin:-32px -32px 22px;aspect-ratio:16/9;overflow:hidden;background:var(--line,#dde0e9)}
.l-topic-dialog__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.l-topic-dialog h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:0 0 12px}
.l-topic-dialog__summary{font-weight:650;opacity:1}
.l-topic-dialog__desc{line-height:1.85;opacity:1;margin-bottom:14px}
@media(max-width:600px){.l-topic-dialog__body{padding:22px}.l-topic-dialog__thumb{margin:-22px -22px 16px}}

/* 공지 상세의 대표 이미지 — 2026-10-03. 본문 안의 그림은 .l-prose img(=img{max-width:100%})가 맡는다. */
.notice-cover-wide{margin:20px 0 0}
.notice-cover-wide img{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:var(--radius,12px);border:1px solid var(--line,#dde0e9)}
