.certification-modal-root{z-index:10000;pointer-events:none;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.certification-modal-root.is-visible{pointer-events:auto}body.certification-modal-open .custom-cursor{z-index:10002}body.certification-modal-open .custom-cursor-ring{z-index:10001}.certification-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;cursor:pointer;background:#020617b8;border:none;margin:0;padding:0;transition:opacity .22s;position:absolute;inset:0}.certification-modal-root.is-visible .certification-modal-backdrop{opacity:1}.certification-modal-panel{opacity:0;scrollbar-width:thin;border-radius:22px;width:min(780px,100vw - 32px);max-height:calc(100vh - 48px);transition:opacity .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden auto;transform:scale(.95)translateY(8px)}.certification-modal-root.is-visible .certification-modal-panel{opacity:1;transform:scale(1)translateY(0)}body:not(.dark-mode) .certification-modal-panel{background:#fff;border:1px solid #0f172a1a;box-shadow:0 28px 90px #0f172a24,0 8px 24px #0f172a14}body.dark-mode .certification-modal-panel{background:radial-gradient(circle at top,#38bdf814,#0000 42%),#080d1afa;border:1px solid #38bdf829;box-shadow:0 28px 90px #0000009e,0 0 40px #38bdf814}.certification-modal-close{z-index:2;border:1px solid var(--card-border);background:var(--section-bg);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:color .2s,border-color .2s,transform .2s;display:inline-flex;position:absolute;top:16px;right:16px}.certification-modal-close:hover{color:var(--text-color);border-color:#38bdf859;transform:translateY(-1px)}.certification-modal-close:focus-visible{outline:2px solid var(--logo-accent);outline-offset:2px}.certification-modal-content{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:48px 40px 40px;display:flex}.certification-modal-badge{justify-content:center;align-items:center;width:clamp(120px,18vw,168px);height:clamp(120px,18vw,168px);margin-bottom:8px;display:flex}.certification-modal-badge img{object-fit:contain;filter:drop-shadow(0 12px 28px #0000002e);width:100%;height:100%}.certification-modal-badge-placeholder{border:1px dashed var(--card-border);background:var(--section-bg);width:100%;height:100%;color:var(--logo-accent);border-radius:20px;justify-content:center;align-items:center;font-size:3rem;display:flex}.certification-modal-title{color:var(--text-color);max-width:28ch;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:800;line-height:1.2}.certification-modal-issuer{color:var(--text-secondary);margin:0;font-size:1.05rem;font-weight:600}.certification-modal-status{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:.78rem;font-weight:700;display:inline-flex}.certification-modal-status.completed{color:#16a34a;background:#22c55e24}.certification-modal-status.in-progress{color:#ca8a04;background:#facc1529}body.dark-mode .certification-modal-status.in-progress{color:#facc15}.certification-modal-status.in-progress i{font-size:.55rem}.certification-modal-status.expired,.certification-modal-status.revoked,.certification-modal-status.goal{color:var(--text-secondary);background:#94a3b824}.certification-modal-date{color:var(--text-secondary);flex-direction:column;gap:4px;margin:4px 0 0;display:flex}.certification-modal-date-label{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.certification-modal-date time{color:var(--text-color);font-size:.95rem;font-weight:600}.certification-modal-description{width:100%;max-width:620px;color:var(--text-secondary);text-align:center;margin-top:8px;font-size:.98rem;line-height:1.75}.certification-modal-skills{width:100%;max-width:620px;margin-top:8px}.certification-modal-skills-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 12px;font-size:.78rem;font-weight:700}.certification-modal-skills-list{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.certification-modal-skill{color:var(--text-color);background:#38bdf814;border:1px solid #38bdf833;border-radius:999px;align-items:center;padding:6px 12px;font-size:.78rem;font-weight:600;display:inline-flex}body:not(.dark-mode) .certification-modal-skill{background:#0f172a0a;border-color:#0f172a1f}.certification-modal-actions{border-top:1px solid var(--card-border);flex-direction:column;gap:12px;width:100%;max-width:420px;margin-top:20px;padding-top:24px;display:flex}.certification-modal-cta-primary{justify-content:center;gap:8px;width:100%}.certification-modal-cta-secondary{width:100%;color:var(--text-secondary);border:1px solid var(--card-border);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:.92rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.certification-modal-cta-secondary:hover{color:var(--logo-accent);background:#38bdf80f;border-color:#38bdf859}@media (max-width:640px){.certification-modal-content{padding:44px 22px 28px}.certification-modal-description{text-align:left;font-size:.92rem}.certification-modal-skills{text-align:left}.certification-modal-skills-list{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.certification-modal-backdrop,.certification-modal-panel,.certification-modal-close{transition:none}.certification-modal-root.is-visible .certification-modal-panel{transform:none}}
