/* 셀프호스팅 글씨체 (CSP가 외부 폰트를 막아서 나스에 직접 호스팅 — 선택 시에만 다운로드됨) */
@font-face { font-family: 'Nanum Gothic'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/nanum-gothic-korean-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Nanum Gothic'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/nanum-gothic-korean-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Gaegu'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/gaegu-korean-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Gaegu'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/gaegu-korean-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Nanum Pen Script'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/nanum-pen-script-korean-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Sandoll MiSaeng'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/SDMiSaeng.woff') format('woff'); }

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); overscroll-behavior-y: none; }
body { min-width: 320px; min-height: 100vh; margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font); line-height: 1.55; overscroll-behavior-y: none; }
.app-shell, .boot-screen, .lock-screen, .app-dialog, .toast-region { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
input, select, textarea { -webkit-touch-callout: default; -webkit-user-select: text; user-select: text; }
button, input, select, textarea { color: inherit; font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .62; }
input, select, textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); outline: none; background: #fffefa; }
input, select { min-height: 43px; padding: 8px 11px; }
textarea { resize: vertical; padding: 11px; }
input:focus, select:focus, textarea:focus { border-color: var(--olive); box-shadow: 0 0 0 3px rgba(119, 124, 87, .15); }
button:focus-visible, [tabindex]:focus-visible { outline: 3px solid rgba(119, 124, 87, .35); outline-offset: 2px; }
h1, h2, h3, p { margin-top: 0; }
[hidden] { display: none !important; }
.muted { color: var(--muted); }
.eyebrow { margin-bottom: 2px; color: var(--olive); font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.form-error { min-height: 24px; margin: 8px 0 0; color: var(--danger); font-size: 13px; }
.empty-message { margin: 28px 8px; color: var(--muted); text-align: center; font-size: 13px; }
