@charset "UTF-8";

/* ===== Google Fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@300;400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap');

/* ===== Pretendard ===== */
@font-face { font-family: "Pretendard"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Light.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Pretendard"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Pretendard"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Pretendard"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Pretendard"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }

/* ===== GMarketSans ===== */
@font-face { font-family: "GMarketSans"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansLight.woff") format("woff"); font-weight: 300; font-display: swap; }
@font-face { font-family: "GMarketSans"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansMedium.woff") format("woff"); font-weight: 500; font-display: swap; }
@font-face { font-family: "GMarketSans"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansBold.woff") format("woff"); font-weight: 700; font-display: swap; }

/* ===== ChosunIlboMyungjo ===== */
@font-face { font-family: "ChosunIlboMyungjo"; src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_one@1.0/Chosunilbo_myungjo.woff") format("woff"); font-weight: normal; font-display: swap; }

/* ===== KoPubWorld Batang ===== */
@font-face { font-family: "KoPubWorld Batang"; src: url("https://cdn.jsdelivr.net/npm/font-kopubworld@1.0/fonts/KoPubWorldBatangLight.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "KoPubWorld Batang"; src: url("https://cdn.jsdelivr.net/npm/font-kopubworld@1.0/fonts/KoPubWorldBatangMedium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "KoPubWorld Batang"; src: url("https://cdn.jsdelivr.net/npm/font-kopubworld@1.0/fonts/KoPubWorldBatangBold.woff2") format("woff2"); font-weight: 700; font-display: swap; }


/* ===== Spoiler / Blur ===== */
[data-spoiler="true"],
.spoiler-blur {
    filter: blur(5px);
    transition: filter 0.3s ease;
    cursor: pointer;
    display: inline-block;
}
[data-spoiler="true"].revealed,
.spoiler-blur.revealed {
    filter: none;
}

/* ===== Quote Blocks ===== */
.quote-block {
    display: block;
    margin: 12px 0;
}

/* ===== Collapsible (Details/Summary) ===== */
details[data-editor] {
    margin: 12px 0;
}
details[data-editor] > summary {
    cursor: pointer;
    font-weight: 600;
    padding: 4px 0;
    list-style-position: inside;
}

/* ===== Tables ===== */
.editor-table-wrap table {
    width: 100%;
    border-collapse: collapse;
}
.editor-table-wrap td,
.editor-table-wrap th {
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
}

/* ===== Code Blocks ===== */
pre[data-editor-code] {
    background: #1e293b;
    color: #e2e8f0;
    padding: 16px;
    border-radius: 8px;
    font-family: 'Fira Code', 'Courier New', monospace;
    font-size: 14px;
    line-height: 1.6;
    overflow-x: auto;
    margin: 16px 0;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* ===== HR Overrides ===== */
hr[data-editor-hr] {
    border: none;
    margin: 16px 0;
}

/* ===== Image Resize Wrapper ===== */
.img-resize-wrapper {
    display: inline-block;
    position: relative;
    line-height: 0;
    max-width: 100%;
    vertical-align: bottom;
}
.img-resize-wrapper img {
    display: block;
    width: 100%;
    height: auto;
}
/* Selected state: dashed border like the reference image */
.img-resize-wrapper.img-resize-active {
    outline: 1.5px dashed #A34148;
    outline-offset: 2px;
}
