/* 큰 용어 카드: 부모 패널의 overflow와 무관하게 읽을 수 있다. */
.fn[data-term] { cursor: help; border-radius: 3px; }
.fn[data-term]:hover::after { content: none !important; }
.fn[data-term]:focus-visible { outline: 2px solid #d7a954; outline-offset: 4px; }
.term-popup { position: fixed; inset: auto; z-index: 1000; box-sizing: border-box; margin: 0; width: min(480px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow-y: auto; padding: 22px 24px; border: 1px solid #d9bb80; border-radius: 18px; background: #fff8e9; color: #19233e; box-shadow: 0 16px 64px #02091966; text-align: left; font-family: var(--font-sans, sans-serif); word-break: keep-all; overflow-wrap: anywhere; }
.term-popup[hidden] { display: none; }
.term-popup header { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.term-popup small { color: #756035; font-size: .8rem; font-weight: 700; }
.term-popup h3 { margin: 5px 0 0; font-size: 1.5rem; font-weight: 800; line-height: 1.3; color: #19233e; }
.term-popup button { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #d9c9a9; border-radius: 10px; background: #eee3cb; color: #19233e; font-size: 1.5rem; cursor: pointer; }
.term-popup button:focus-visible { outline: 3px solid #3b5d96; outline-offset: 3px; }
.term-popup__text { margin: 0; font-size: 1.08rem; font-weight: 500; line-height: 1.85; }
.term-popup__hint { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid #e5d9c0; color: #756035; font-size: .78rem; line-height: 1.6; }
.fn-box { font-size: .95rem; line-height: 1.8; }
.fn-box__h { font-size: .88rem; margin-bottom: 8px; }
.fn-list { gap: 8px; }
@media (max-width: 600px) { .term-popup { padding: 18px 20px; } .term-popup__text { font-size: 1rem; } }
