@font-face{font-family:Certificate Myeongjo;src:url('assets/fonts/certificate/NanumMyeongjo-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Certificate Myeongjo;src:url('assets/fonts/certificate/NanumMyeongjo-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Certificate Garamond;src:url('assets/fonts/certificate/CormorantGaramond-Regular.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:Certificate Garamond;src:url('assets/fonts/certificate/CormorantGaramond-Semibold.woff') format('woff');font-weight:600;font-display:swap}
.certificate-dialog{box-sizing:border-box;width:min(1180px,96vw,calc(133dvh - 245px));max-width:96vw;max-height:calc(100dvh - 32px);padding:0;border:1px solid #dfe1e5;border-radius:16px;background:#f3f4f5;color:#242629;overflow:auto;font-family:Pretendard,system-ui,sans-serif}
.certificate-dialog::backdrop{background:#18221f99}
.certificate-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:white;gap:18px}
.certificate-dialog>header strong{font-size:20px}.certificate-dialog>header p{font-size:13px;color:#62666d;margin:5px 0 0}
.certificate-dialog button{font:inherit;min-height:46px;border:1px solid #dfe1e5;border-radius:10px;padding:12px 22px;cursor:pointer;background:white;color:#242629;font-weight:700}
.certificate-dialog button:disabled{cursor:wait;opacity:.6}.certificate-dialog>header button{font-size:24px;padding:5px 16px}
.certificate-preview{padding:24px}.certificate-frame{position:relative;width:100%;max-width:1123px;aspect-ratio:297/210;margin:auto;background:white;box-shadow:0 3px 20px #18221f10;overflow:hidden}
.certificate-paper{position:absolute;left:0;top:0;box-sizing:border-box;width:841.8898px;height:595.2756px;background:white;color:#303734;transform-origin:top left}
.certificate-paper>*{position:absolute;box-sizing:border-box;margin:0;padding:0;max-width:none}
.certificate-logo{display:block;object-fit:contain;filter:none;opacity:1}
.certificate-ornament{display:block;object-fit:contain;pointer-events:none;user-select:none}
.certificate-text{white-space:pre-line;overflow-wrap:anywhere;word-break:keep-all;font-weight:400;letter-spacing:normal}
.certificate-font-regular{font-family:'Certificate Myeongjo',serif}.certificate-font-bold{font-family:'Certificate Myeongjo',serif;font-weight:700}.certificate-font-display,.certificate-font-displayStrong{font-family:'Certificate Garamond',serif}.certificate-font-displayStrong{font-weight:600}.certificate-font-sans{font-family:Arial,sans-serif}
.certificate-border,.certificate-line{pointer-events:none}
.certificate-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 24px 24px}
.certificate-actions>p{font-size:14px;line-height:1.5;color:#62666d;margin:0}.certificate-actions>div{display:flex;gap:10px;margin-left:auto;flex-shrink:0}
.certificate-actions [data-print]{background:#29464b;border-color:#29464b;color:white;min-width:120px}.certificate-actions [data-print]:hover{background:#375a60}
.certificate-dialog :focus-visible,.trophy-shelf :focus-visible{outline:3px solid #b97e20;outline-offset:4px}
/* Keep this root measurable while it is prepared, but never visible on screen. */
#certificatePrintRoot{position:absolute;left:-20000px;top:0;width:841.8898px;visibility:hidden;pointer-events:none}
.trophy-shelf{margin-top:28px;padding:28px;border:1px solid #dde2d7;border-radius:24px;background:#f7f8f3;color:#293e33}.trophy-shelf>header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.trophy-shelf header span{font:10px system-ui;letter-spacing:2px;color:#68765f}.trophy-shelf h2{font-size:28px;margin:7px 0}.trophy-shelf p{font-size:14px;line-height:1.7;color:#687368}.trophy-shelf header>strong{font:36px Georgia;text-align:center}.trophy-shelf header small{display:block;font:12px system-ui;margin-top:6px;white-space:nowrap}.trophy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.trophy-card{display:flex;align-items:center;gap:22px;padding:26px;min-width:0;border:1px solid #d5dacc;border-radius:18px;background:white;color:#304737;text-align:left;font:inherit;cursor:pointer;transition:transform .18s,box-shadow .18s}.trophy-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #273b3215}.trophy-visual{width:75px;flex-shrink:0;text-align:center}.trophy-visual img{width:100%;height:auto;object-fit:contain;filter:none}.trophy-visual small{display:block;font:9px Arial;letter-spacing:1px;margin-top:15px;color:#8b7347}.trophy-content{display:grid;gap:9px;min-width:0}.trophy-content small{font:9px Arial;letter-spacing:1.4px;color:#7a7c62}.trophy-content strong{font-size:21px;line-height:1.4;overflow-wrap:anywhere}.trophy-content>span{font-size:12px;color:#6c786c}.trophy-content b{font-size:13px;margin-top:4px}.trophy-empty{display:flex;align-items:center;gap:20px;padding:22px;border:1px dashed #c2cbb8;border-radius:16px}.trophy-empty>span{font-size:36px;color:#a38a55}.certificate-dialog :focus-visible,.trophy-shelf :focus-visible{outline:3px solid #b97e20;outline-offset:4px}
@media(max-width:620px){.certificate-preview{padding:12px}.certificate-dialog>header{padding:16px}.certificate-actions{padding:4px 12px 16px;align-items:stretch;flex-direction:column}.certificate-actions>div{margin:0;display:grid;grid-template-columns:1fr}.certificate-actions>p:empty{display:none}.trophy-shelf{padding:20px}}
@page course-certificate{size:A4 landscape;margin:0}
@media print{
 html:has(body.certificate-printing){height:auto!important;min-height:0!important;overflow:visible!important}
 body.certificate-printing{display:block!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;background:white!important;overflow:visible!important}
 body.certificate-printing>*:not(#certificatePrintRoot){display:none!important}
 body.certificate-printing dialog::backdrop{display:none!important}
 body.certificate-printing #certificatePrintRoot{display:block!important;position:static;visibility:visible;width:297mm;height:210mm;page:course-certificate;pointer-events:auto}
 #certificatePrintRoot .certificate-frame{width:297mm!important;height:210mm!important;max-width:none;margin:0;box-shadow:none;break-inside:avoid}
 #certificatePrintRoot .certificate-paper{transform:scale(1.333333333)!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
@media(prefers-reduced-motion:reduce){.trophy-card{transition:none;transform:none!important}}
