@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,700;0,900;1,500&family=Amiri:ital,wght@0,400;0,700;1,400&display=swap";.cert-wrap{--gold:#c8a66a;--gold-l:#e9d7ae;--gold-d:#7a6a53;--bg:#0c0c0c;--bg-d:#050505;--ink:#f5f5f5;--muted:#8f8f8f;--sign:#e9d7ae;--line:#c8a66a47;container-type:inline-size}.cert-wrap .cert.is-light{--gold:#a9842f;--gold-l:#8a6a22;--gold-d:#c8a66a;--bg:#fff;--bg-d:#f4f5f7;--ink:#14181f;--muted:#5b6470;--sign:#14233b;--line:#14181f29}.cert{background:radial-gradient(125% 140% at 50% 0%, var(--bg) 0%, var(--bg-d) 80%);border:2px solid var(--gold);outline:1px solid color-mix(in srgb, var(--gold-l) 45%, transparent);outline-offset:-9px;box-shadow:0 30px 70px -22px #000000b3, inset 0 0 0 1px color-mix(in srgb, var(--gold-l) 12%, transparent);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:6px;flex-direction:column;display:flex;position:relative;overflow:hidden}@media (width>=768px){.cert{min-height:70.7cqw}}.cert-bar{top:0;background:linear-gradient(90deg, var(--gold-d), var(--gold-l) 35%, var(--gold) 60%, var(--gold-d));z-index:3;height:5px;position:absolute;inset-inline:0;overflow:hidden}.cert-bar:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:5s ease-in-out infinite bar-shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes bar-shine{0%,55%{transform:translate(-100%)}to{transform:translate(100%)}}.cert-guilloche{pointer-events:none;background:repeating-radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--gold) 4%, transparent) 0 1px, transparent 1px 7px);position:absolute;inset:0}.cert-vignette{pointer-events:none;background:radial-gradient(92% 92%,#0000 54%,#00000080 100%);position:absolute;inset:0}.is-light .cert-vignette{background:radial-gradient(92% 92%,#0000 60%,#14181f0d 100%)}.cert-watermark{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cert-wm-img{object-fit:contain;opacity:.05;filter:saturate(.7)brightness(1.4);width:300px;max-width:55%;transition:opacity .6s}.is-light .cert-wm-img{opacity:.06;filter:saturate(.8)brightness(.9)}.group:hover .cert-wm-img{opacity:.09}.cert-wm-ring{border:2px solid color-mix(in srgb, var(--gold) 5%, transparent);width:300px;height:300px;box-shadow:inset 0 0 0 26px color-mix(in srgb, var(--gold) 2.5%, transparent);color:color-mix(in srgb, var(--gold) 5%, transparent);border-radius:50%;justify-content:center;align-items:center;display:flex}.cert-wm-ring svg{width:104px;height:104px}.cert-shine{pointer-events:none;background:linear-gradient(105deg, transparent 40%, color-mix(in srgb, var(--gold-l) 9%, transparent) 50%, transparent 60%);z-index:2;transition:transform 1.1s;position:absolute;inset:0;transform:translate(-130%)}.group:hover .cert-shine{transform:translate(130%)}.cert-orn{pointer-events:none;z-index:2;width:32px;height:32px;position:absolute}.cert-orn:before{content:"";border:0 solid var(--gold);position:absolute;inset:0}.cert-orn:after{content:"◆";color:var(--gold);font-size:7px;position:absolute}.cert-orn--tl{top:14px;left:14px}.cert-orn--tl:before{border-top-width:2px;border-left-width:2px}.cert-orn--tl:after{top:-4px;left:-4px}.cert-orn--tr{top:14px;right:14px}.cert-orn--tr:before{border-top-width:2px;border-right-width:2px}.cert-orn--tr:after{top:-4px;right:-4px}.cert-orn--bl{bottom:14px;left:14px}.cert-orn--bl:before{border-bottom-width:2px;border-left-width:2px}.cert-orn--bl:after{bottom:-4px;left:-4px}.cert-orn--br{bottom:14px;right:14px}.cert-orn--br:before{border-bottom-width:2px;border-right-width:2px}.cert-orn--br:after{bottom:-4px;right:-4px}.cert-content{z-index:2;text-align:center;flex-direction:column;flex:1 0 auto;padding:34px 48px 26px;display:flex;position:relative}@media (width<=640px){.cert-content{padding:28px 22px 22px}}.cert-head{flex-direction:column;align-items:center;display:flex}.cert-logo-img{object-fit:contain;width:auto;max-width:260px;height:52px}@media (width>=640px){.cert-logo-img{max-width:300px;height:64px}}.cert-logo-text{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink);font-size:22px;font-weight:800}.cert-logo-text span{color:var(--gold)}.cert-org{letter-spacing:.28em;color:var(--gold-l);opacity:.9;margin-top:7px;font-family:Amiri,serif;font-size:11px}[dir=ltr] .cert-org{font-family:var(--font-mono);letter-spacing:.34em;font-size:9px}.cert-divider{max-width:280px;color:var(--gold);align-items:center;gap:14px;margin:14px auto 12px;font-size:8px;display:flex}.cert-divider:before,.cert-divider:after{content:"";flex:1;height:1px}.cert-divider:before{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--gold) 70%, transparent))}.cert-divider:after{background:linear-gradient(90deg, color-mix(in srgb, var(--gold) 70%, transparent), transparent)}.cert-title{letter-spacing:.26em;text-indent:.26em;color:var(--ink);font-family:Playfair Display,Amiri,serif;font-size:clamp(26px,4.2vw,40px);font-weight:900;line-height:1.05}[dir=rtl] .cert-title{letter-spacing:.05em;text-indent:0;font-family:Amiri,serif}.cert-type{font-family:var(--font-mono);letter-spacing:.4em;text-indent:.4em;color:var(--gold);margin-top:6px;font-size:10px}[dir=rtl] .cert-type{letter-spacing:.1em;text-indent:0;font-family:Amiri,serif;font-size:12px;font-weight:700}.cert-awarded{color:var(--muted);margin-top:18px;font-family:Amiri,serif;font-size:13px;font-style:italic}.cert-name{color:var(--gold-l);text-shadow:0 1px #0006;margin-top:6px;font-family:Playfair Display,Amiri,serif;font-size:clamp(26px,3.8vw,38px);font-weight:700;line-height:1.2}.is-light .cert-name{text-shadow:none}[dir=rtl] .cert-name{font-family:Amiri,serif}.cert-name-rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:min(320px,68%);height:1px;margin:10px auto 0;position:relative}.cert-name-rule:after{content:"◆";color:var(--gold);font-size:7px;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.cert-for{color:var(--muted);margin-top:14px;max-width:540px;margin-inline:auto;font-family:Amiri,serif;font-size:13px;line-height:1.8}.cert-course{letter-spacing:.1em;color:var(--gold);margin-top:8px;font-family:Playfair Display,Amiri,serif;font-size:clamp(17px,2.5vw,24px);font-weight:700}[dir=rtl] .cert-course{letter-spacing:.02em;font-family:Amiri,serif}.cert-module{font-family:var(--font-mono);color:var(--ink);margin-top:6px;font-size:11px}.cert-module-label{color:var(--muted);margin-inline-end:4px}[dir=rtl] .cert-module{font-family:Amiri,serif;font-size:12px}.cert-skills{margin-top:12px}.cert-skills-label{font-family:var(--font-mono);letter-spacing:.3em;color:var(--muted);margin-bottom:5px;font-size:8px;display:block}.cert-skills-line{font-family:var(--font-mono);color:var(--gold-l);opacity:.92;font-size:10.5px}.cert-foot{grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;margin-top:auto;padding-top:18px;display:grid}@media (width<=640px){.cert-foot{grid-template-columns:1fr;justify-items:center;gap:16px}}.cert-sig{flex-direction:column;align-items:center;gap:4px;min-width:140px;display:flex}.cert-sign{opacity:.92;width:130px;height:38px}.cert-sign path{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.7s cubic-bezier(.65,0,.35,1) forwards sign-draw}.cert-foot>.cert-sig:nth-child(3) .cert-sign path{animation-delay:.45s}@keyframes sign-draw{to{stroke-dashoffset:0}}.cert-sig-line{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink) 55%, transparent), transparent);width:100%;height:1px}.cert-sig-name{color:var(--ink);font-family:Amiri,serif;font-size:11px;font-weight:700}[dir=ltr] .cert-sig-name{font-family:var(--font-mono);letter-spacing:.04em;font-size:10px}.cert-sig-role{color:var(--muted);font-family:Amiri,serif;font-size:9.5px}[dir=ltr] .cert-sig-role{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:8px}.cert-seal{justify-self:center;width:104px;height:118px;animation:.6s cubic-bezier(.16,1,.3,1) .3s both seal-pop;position:relative}@keyframes seal-pop{0%{opacity:0;transform:scale(.6)rotate(-8deg)}to{opacity:1;transform:none}}.cert-ribbon{background:linear-gradient(180deg, var(--gold) 0%, var(--gold-d) 100%);clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);width:21px;height:36px;position:absolute;bottom:0;box-shadow:0 3px 6px #00000073}.cert-ribbon--l{left:21px;transform:rotate(20deg)}.cert-ribbon--r{right:21px;transform:rotate(-20deg)}.cert-seal-rays{background:repeating-conic-gradient(var(--gold) 0deg 4deg, color-mix(in srgb, var(--gold) 12%, transparent) 4deg 8deg);filter:drop-shadow(0 4px 8px #00000073);border-radius:50%;width:104px;height:104px;position:absolute;top:0;left:50%;transform:translate(-50%)}.cert-seal-body{background:conic-gradient(from 210deg, var(--gold-d), var(--gold-l) 22%, var(--gold) 40%, var(--gold-d) 55%, var(--gold-l) 78%, var(--gold) 92%, var(--gold-d));border-radius:50%;width:88px;height:88px;position:absolute;top:8px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:inset 0 0 0 2px #ffffff47,inset 0 0 12px #0000004d}.cert-seal-body:after{content:"";background:conic-gradient(#0000 0%,#ffffff59 10%,#0000 22%);border-radius:50%;animation:7s linear infinite cert-seal-spin;position:absolute;inset:0}@keyframes cert-seal-spin{to{transform:rotate(360deg)}}.cert-seal-ring{background:radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--bg) 70%, #000), var(--bg-d));border:1.5px solid var(--gold-l);color:var(--gold-l);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:7px}.cert-seal-icon{width:19px;height:19px}.cert-seal-pwn{font-family:var(--font-mono);letter-spacing:.1em;font-size:11px;font-weight:800}.cert-seal-verify{font-family:var(--font-mono);letter-spacing:.2em;opacity:.85;font-size:6px}.cert-strip{border-top:1px solid var(--line);text-align:start;align-items:center;gap:16px;margin-top:16px;padding-top:14px;display:flex}@media (width<=640px){.cert-strip{text-align:center;flex-wrap:wrap;justify-content:center}}.cert-qr{background:#fff;border-radius:4px;flex-shrink:0;width:58px;height:58px;padding:5px;box-shadow:0 0 0 1px #00000014}.cert-qr-grid{gap:0;width:100%;height:100%;display:grid}.cert-qr-grid span{background:0 0}.cert-qr-on{background:#0b0b0b!important}.cert-strip-meta{flex-wrap:wrap;flex:1;gap:4px 22px;min-width:0;display:flex}.cert-strip-row{flex-direction:column;gap:1px;display:flex}.cert-strip-label{font-family:var(--font-mono);letter-spacing:.22em;color:var(--muted);font-size:7.5px}.cert-strip-value{font-family:var(--font-mono);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.cert-strip-link{color:var(--gold-l)}.cert-strip-xp{border-inline-start:1px solid var(--line);flex-shrink:0;align-items:baseline;gap:4px;padding-inline-start:16px;display:flex}.cert-strip-xp-num{font-family:var(--font-mono);color:var(--gold);font-size:22px;font-weight:800;line-height:1}.cert-strip-xp-unit{font-family:var(--font-mono);letter-spacing:.1em;color:var(--muted);font-size:9px}@media (width<=640px){.cert-strip-xp{border-inline-start:none;padding-inline-start:0}}@media print{@page{size:A4 landscape;margin:10mm}.cert{min-height:180mm;box-shadow:none;border-radius:0;width:100%}.cert-shine,.cert-bar:after,.cert-seal-body:after{display:none}.cert-sign path{stroke-dashoffset:0;animation:none}.cert-seal{opacity:1;animation:none;transform:none}}@media (prefers-reduced-motion:reduce){.cert-shine,.cert-bar:after,.cert-seal-body:after{display:none}.cert-sign path{stroke-dashoffset:0;animation:none}.cert-seal{opacity:1;animation:none;transform:none}.cert-wm-img{transition:none}}.divide-x.divide-border-rev[data-v-d546de42]>:not([hidden])~:not([hidden]){border-inline-start-width:1px;border-color:var(--color-border)}.verify-scan[data-v-d546de42]{pointer-events:none;background:linear-gradient(90deg,#0000,#d6ff4524,#0000);animation:2.4s ease-out .3s verify-scan-d546de42;position:absolute;inset:0;transform:translate(-100%)}@keyframes verify-scan-d546de42{to{transform:translate(100%)}}.reveal-init[data-v-d546de42]{opacity:0;filter:blur(5px);transform:translateY(18px)}.reveal-in[data-v-d546de42]{opacity:1;filter:blur();transition:opacity .6s cubic-bezier(.16, 1, .3, 1) var(--d,0s), transform .6s cubic-bezier(.16, 1, .3, 1) var(--d,0s), filter .6s cubic-bezier(.16, 1, .3, 1) var(--d,0s);transform:none}@media (prefers-reduced-motion:reduce){.verify-scan[data-v-d546de42]{display:none}.reveal-init[data-v-d546de42]{opacity:1;filter:none;transform:none}.reveal-in[data-v-d546de42]{transition:none}}
