.cert-root{--c-paper: #fffdf8;--c-ink: #1f1a17;--c-ink-2: #5b524d;--c-maroon: #7d0c0e;--c-gold: #a9842f;--c-rule: #d9cfc2;--c-serif: "Cormorant Garamond", "EB Garamond", Georgia, serif;--c-sans: "Inter", system-ui, sans-serif;--c-mono: "JetBrains Mono", ui-monospace, Menlo, monospace}.cert-box{container-type:inline-size;width:100%;max-width:1040px;margin:0 auto}.cert{position:relative;aspect-ratio:297 / 210;width:100%;overflow:hidden;color:var(--c-ink);font-family:var(--c-serif);background:radial-gradient(ellipse at 50% 42%,#fffefb 0%,var(--c-paper) 60%,#f8f1e4 100%);box-shadow:0 1px 2px #00000014,0 18px 48px #3c141429}.cert p{margin:0}.cert .orn{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.cert .inner{position:absolute;inset:7.4cqw 9cqw 5.6cqw;display:grid;grid-template-rows:auto auto 1fr auto auto;justify-items:center;text-align:center}.cert .logo{display:block;height:7.4cqw;width:auto;max-width:none;border-radius:.3cqw;box-shadow:0 0 0 .25cqw var(--c-paper),0 0 0 .34cqw var(--c-gold)}.cert .title{margin-top:1.2cqw;display:grid;justify-items:center;gap:.3cqw}.cert .title .t1{font:600 4.5cqw/1 var(--c-serif);color:var(--c-maroon);letter-spacing:.02em}.cert .title .en{font:italic 500 1.7cqw/1.2 var(--c-serif);color:var(--c-ink-2);letter-spacing:.02em}.cert .orule{display:flex;align-items:center;gap:1cqw;margin-top:.6cqw;color:var(--c-gold)}.cert .orule i{display:block;width:9cqw;height:.1cqw;background:currentColor}.cert .orule b{width:.7cqw;height:.7cqw;transform:rotate(45deg);border:.1cqw solid currentColor}.cert .body{align-self:center;display:grid;gap:.7cqw;justify-items:center}.cert .given{font:italic 500 1.45cqw/1.3 var(--c-serif);color:var(--c-ink-2)}.cert .prog{font:700 3.3cqw/1.08 var(--c-serif);color:var(--c-ink);max-width:72cqw;text-wrap:balance}.cert .prog.lg{font-size:2.8cqw}.cert .prog.xl{font-size:2.35cqw}.cert .inst{font:600 2cqw/1.2 var(--c-serif);color:var(--c-maroon);letter-spacing:.01em;max-width:72cqw;text-wrap:balance}.cert .as{margin-top:.5cqw;font:500 1.35cqw/1.45 var(--c-serif);color:var(--c-ink-2);max-width:64cqw;text-wrap:balance}.cert .as b{color:var(--c-ink);font-weight:700}.cert .as .nra{font:600 1.15cqw/1 var(--c-mono);color:var(--c-maroon);letter-spacing:.04em}.cert .as i{display:block;margin-top:.2cqw;font-size:1.2cqw}.cert .period{margin-top:.6cqw;display:inline-flex;align-items:center;gap:1.2cqw;padding:.55cqw 1.6cqw;border-top:.1cqw solid var(--c-rule);border-bottom:.1cqw solid var(--c-rule);font:500 .95cqw/1.3 var(--c-sans);color:var(--c-ink-2);letter-spacing:.04em;text-transform:uppercase}.cert .period b{font:600 1.15cqw/1.3 var(--c-sans);color:var(--c-ink);text-transform:none;letter-spacing:0}.cert .foot{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 13cqw minmax(0,1fr);align-items:end;gap:0 3.4cqw;margin-top:.6cqw}.cert .sig{text-align:center;font-family:var(--c-sans);display:grid;gap:.45cqw;justify-items:center}.cert .sig .es{display:inline-flex;align-items:center;gap:.45cqw;font:600 .78cqw/1.2 var(--c-sans);color:var(--c-maroon);letter-spacing:.06em;text-transform:uppercase}.cert .sig .es svg{width:1.05cqw;height:1.05cqw}.cert .sig .line{width:100%;border-top:.1cqw solid var(--c-ink-2);padding-top:.5cqw}.cert .sig b{display:block;font:600 1.05cqw/1.3 var(--c-sans);color:var(--c-ink)}.cert .sig .t{display:block;font:500 .88cqw/1.3 var(--c-sans);color:var(--c-ink-2)}.cert .vq{display:grid;justify-items:center;gap:.6cqw}.cert .vq .tile{width:11cqw;height:11cqw;background:#fff;padding:.35cqw;border-radius:.7cqw;border:.1cqw solid var(--c-gold);box-shadow:0 0 0 .3cqw var(--c-paper),0 0 0 .4cqw var(--c-rule)}.cert .vq svg{display:block;width:100%;height:100%}.cert .vq .cap{font:700 .72cqw/1.25 var(--c-sans);color:var(--c-maroon);letter-spacing:.08em;text-transform:uppercase}.cert .vq .cap span{display:block;font:italic 500 .72cqw/1.25 var(--c-sans);letter-spacing:0;text-transform:none;color:var(--c-ink-2)}.cert .base{width:100%;margin-top:1cqw;padding-top:.9cqw;border-top:.1cqw solid var(--c-rule);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr) minmax(0,1fr);gap:2cqw;align-items:center;font-family:var(--c-sans)}.cert .meta{text-align:left;font:500 .78cqw/1.5 var(--c-sans);color:var(--c-ink-2)}.cert .meta code{display:block;font:500 .9cqw/1.45 var(--c-mono);color:var(--c-ink);letter-spacing:.03em}.cert .decl{font:500 .78cqw/1.5 var(--c-sans);color:var(--c-ink-2);text-wrap:balance}.cert .url{justify-self:end;text-align:right;font:500 .78cqw/1.5 var(--c-sans);color:var(--c-ink-2)}.cert .url code{display:block;font:500 .82cqw/1.45 var(--c-mono);color:var(--c-ink);overflow-wrap:anywhere}.cert .stamp{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%) rotate(-12deg);border:.4cqw double currentColor;padding:.8cqw 2.6cqw;font:700 3.4cqw/1 var(--c-sans);letter-spacing:.16em;text-transform:uppercase;color:#b91c1c;opacity:.8;mix-blend-mode:multiply;pointer-events:none}.cert-tip{margin:0;font-size:14px;color:var(--text-2)}.cert-foot{margin:0;font-size:14px;color:var(--text-2);text-align:center}@media print{@page{size:A4 landscape;margin:0}html,body{background:#fff!important}.page-body{padding:0!important}#print-card-root{position:fixed!important;inset:0!important;width:297mm!important;height:210mm!important;display:block!important}.cert-box{width:297mm!important;max-width:none!important}.cert{width:297mm!important;height:210mm!important;box-shadow:none!important}#print-card-root.is-expired{display:none!important}}
