/* ALPA Catalyst certificate: the component copied from partners.html (.cert-wrap / .cert), scoped under .cert-wrap.
   No PREVIEW marks, no 3-D tilt. Used by admin.html (Certificates tab); drawCertificate() is in cert.js. */
.cert-wrap{ --plum-950:#1E1130; --plum-800:#2D1B4E; --plum-700:#3A2560; --violet-500:#6B47A8; --teal-500:#14B8A6; --teal-600:#0F9C8D; --teal-700:#0C7A6F; --ink:#1A1523; --ink-soft:#4A4358; }
.cert-wrap{ container-type:inline-size; max-width:720px; width:100%; margin-inline:auto; }
.cert-wrap .cert{ position:relative; display:grid; grid-template-columns:30cqw 1fr; grid-template-rows:1fr; align-items:stretch; aspect-ratio:1.414/1; width:100%; overflow:hidden; border-radius:.7cqw; direction:ltr; color:var(--ink); background:#FBF8F2; box-shadow:0 24px 60px rgba(30,17,48,.18); transform-origin:50% 60%; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion:no-preference){ .cert-wrap .cert.cert-enter{ animation:cert-rise .45s cubic-bezier(.2,.7,.2,1) both; } }
@keyframes cert-rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
.cert-wrap .band{ position:relative; overflow:hidden; height:100%; color:#fff; padding:3.4cqw 2.4cqw 3cqw; display:flex; flex-direction:column; align-items:center; justify-content:space-between; text-align:center; background:linear-gradient(90deg,transparent 30%,rgba(20,184,166,.20) 100%),linear-gradient(160deg,var(--plum-950) 0%,var(--plum-700) 100%); }
.cert-wrap .band-art{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.cert-wrap .band > *:not(.band-art){ position:relative; }
.cert-wrap .brand{ display:flex; flex-direction:column; align-items:center; gap:.9cqw; }
.cert-wrap .brand-logo{ width:5.6cqw; height:5.6cqw; border-radius:1.1cqw; background:#fff; display:grid; place-items:center; box-shadow:0 .3cqw .9cqw rgba(0,0,0,.25); }
.cert-wrap .brand-logo img{ width:78%; height:78%; object-fit:contain; }
.cert-wrap .brand-txt b{ display:block; font:800 2.3cqw/1.1 'Inter',sans-serif; letter-spacing:-.01em; }
.cert-wrap .brand-txt span{ display:block; margin-top:.7cqw; font:500 1.2cqw/1 'IBM Plex Mono',monospace; letter-spacing:.24em; color:rgba(255,255,255,.62); text-transform:uppercase; }
.cert-wrap .seal-block{ display:flex; flex-direction:column; align-items:center; }
.cert-wrap .seal{ width:19cqw; filter:drop-shadow(0 .5cqw 1cqw rgba(0,0,0,.35)); }
.cert-wrap .seal svg{ display:block; width:100%; height:auto; }
.cert-wrap .seal-cap{ margin-top:1.6cqw; white-space:nowrap; overflow-wrap:normal; font:600 1.45cqw/1 'IBM Plex Mono',monospace; letter-spacing:.32em; color:#5EEAD4; text-transform:uppercase; }
.cert-wrap .band-foot{ display:flex; flex-direction:column; align-items:center; gap:1cqw; align-self:stretch; padding-top:1.6cqw; border-top:1px solid rgba(255,255,255,.14); }
.cert-wrap .b-lab{ display:block; font:500 1.2cqw/1 'IBM Plex Mono',monospace; letter-spacing:.2em; color:rgba(255,255,255,.55); text-transform:uppercase; }
.cert-wrap .b-val{ display:block; margin-top:.55cqw; font:500 1.55cqw/1.15 'IBM Plex Mono',monospace; color:#fff; letter-spacing:.03em; }
.cert-wrap .qr{ position:relative; width:9cqw; height:9cqw; border-radius:.5cqw; background:rgba(255,255,255,.95); }
.cert-wrap .qr svg{ position:absolute; inset:8%; width:84%; height:84%; display:block; }
.cert-wrap .paper{ position:relative; overflow:hidden; height:100%; padding:3.4cqw 4.2cqw 2.8cqw; display:flex; flex-direction:column; align-items:center; justify-content:space-between; text-align:center; background-color:#FBF8F2;
  background-image:radial-gradient(120% 90% at 50% 45%,transparent 60%,rgba(120,96,60,.09) 100%),
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNjAnIGhlaWdodD0nMTYwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjknIG51bU9jdGF2ZXM9JzInIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9JzAgMCAwIDAgLjM1ICAwIDAgMCAwIC4yOCAgMCAwIDAgMCAuMiAgMCAwIDAgLjA2IDAnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4="); }
.cert-wrap .paper::before{ content:""; position:absolute; inset:1.8cqw; border:1px solid rgba(58,37,96,.22); border-radius:.4cqw; pointer-events:none; }
.cert-wrap .paper-art{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.cert-wrap .paper > *:not(.paper-art){ position:relative; }
.cert-wrap .p-head{ display:flex; flex-direction:column; align-items:center; gap:1.3cqw; }
.cert-wrap .kicker{ display:flex; align-items:center; gap:1.5cqw; font:600 calc(var(--k,1) * 1.8cqw)/1 'IBM Plex Mono',monospace; letter-spacing:.3em; color:var(--teal-700); text-transform:uppercase; white-space:nowrap; }
.cert-wrap .kicker::before, .cert-wrap .kicker::after{ content:""; width:5cqw; height:1px; background:linear-gradient(90deg,transparent,rgba(12,122,111,.55)); }
.cert-wrap .kicker::after{ background:linear-gradient(90deg,rgba(12,122,111,.55),transparent); }
.cert-wrap .title{ max-width:58cqw; white-space:nowrap; text-align:center; font:800 calc(var(--k,1) * 5.4cqw)/1.05 'Inter',sans-serif; letter-spacing:-.03em; color:var(--plum-950); }
.cert-wrap .title em{ font-style:normal; background:linear-gradient(90deg,var(--teal-600),var(--violet-500)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cert-wrap .award{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; }
.cert-wrap .awarded{ font:500 calc(var(--k,1) * 1.7cqw)/1 'IBM Plex Mono',monospace; letter-spacing:.28em; color:rgba(74,67,88,.8); text-transform:uppercase; }
.cert-wrap .name{ margin-top:1.6cqw; max-width:58cqw; white-space:nowrap; font:800 calc(var(--k,1) * 6.8cqw)/1.04 'Inter',sans-serif; letter-spacing:-.03em; color:var(--plum-950); overflow-wrap:normal; hyphens:none; }
.cert-wrap .name.wrap-fallback{ white-space:normal; text-wrap:balance; }
.cert-wrap .name-ar{ margin-top:1cqw; font:600 calc(var(--k,1) * 3.4cqw)/1.3 'IBM Plex Sans Arabic',Alexandria,sans-serif; color:var(--violet-500); }
.cert-wrap .name-ar[hidden]{ display:none; }
.cert-wrap .name-rule{ margin-top:1.8cqw; display:flex; align-items:center; gap:1cqw; width:34cqw; }
.cert-wrap .name-rule::before, .cert-wrap .name-rule::after{ content:""; flex:1; height:.18cqw; border-radius:1cqw; background:linear-gradient(90deg,transparent,#C9A23A); }
.cert-wrap .name-rule::after{ background:linear-gradient(90deg,var(--teal-500),transparent); }
.cert-wrap .name-rule i{ width:.85cqw; height:.85cqw; transform:rotate(45deg); background:linear-gradient(135deg,#F3DC96,var(--teal-500)); }
.cert-wrap .body{ margin:2.2cqw 0 0; max-width:60cqw; font:400 calc(var(--k,1) * 2.35cqw)/1.55 'Inter',sans-serif; color:var(--ink-soft); text-wrap:balance; }
.cert-wrap .body b{ font-weight:700; color:var(--plum-800); }
.cert-wrap .p-foot{ width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:2cqw; }
.cert-wrap .stat{ display:flex; flex-direction:column; align-items:center; }
.cert-wrap .stat .b-lab{ color:rgba(74,67,88,.72); }
.cert-wrap .stat .s-val{ display:block; margin-top:.8cqw; font:700 calc(var(--k,1) * 2.5cqw)/1.12 'Inter',sans-serif; letter-spacing:-.02em; color:var(--plum-800); font-variant-numeric:tabular-nums; text-align:center; text-wrap:balance; white-space:nowrap; }
.cert-wrap .stat .s-val small{ font:500 calc(var(--k,1) * 1.8cqw)/1 'IBM Plex Mono',monospace; letter-spacing:.06em; color:rgba(74,67,88,.8); margin-inline-start:.4cqw; }
.cert-wrap .stamp-block{ display:flex; flex-direction:column; align-items:center; }
.cert-wrap .stamp{ width:calc(var(--k,1) * 13cqw); height:calc(var(--k,1) * 13cqw); transform:rotate(-9deg); mix-blend-mode:multiply; opacity:.82; }
.cert-wrap .stamp-cap{ margin-top:.6cqw; font:600 calc(var(--k,1) * 1.8cqw)/1.2 'Inter',sans-serif; white-space:nowrap; color:var(--plum-800); }
.cert-wrap .stamp-cap span{ display:block; font:500 calc(var(--k,1) * 1.6cqw)/1 'IBM Plex Mono',monospace; letter-spacing:.2em; color:rgba(74,67,88,.72); text-transform:uppercase; margin-bottom:.5cqw; }

.cert-wrap .paper .b-lab{ font-size:calc(var(--k,1) * 1.6cqw); }