
/* ===================== FINAL EXAM + DIPLOMA ===================== */
/* home card */
.examcard{position:relative;margin:34px 0 0;border-radius:22px;padding:2px;background:linear-gradient(135deg,#caa46f,#8a6430 40%,#e5c284 70%,#9a6f33);box-shadow:0 18px 50px -18px rgba(42,30,18,.35)}
.examcard::before{content:"";position:absolute;inset:2px;border-radius:20px;background:linear-gradient(160deg,#fdfbf7,#f6f0e4)}
.examcard.locked::before{background:linear-gradient(160deg,#faf8f2,#efe9dc)}
.examcard .ex-tag,.examcard h3,.examcard p,.examcard .ex-bar,.examcard .ex-go,.examcard .ex-row{position:relative;margin-left:26px;margin-right:26px}
.examcard .ex-tag{display:inline-block;margin-top:22px;font-size:.62em;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#8a6430;border:1px solid rgba(138,100,48,.35);border-radius:999px;padding:4px 11px;background:rgba(229,194,132,.15)}
.examcard h3{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.35em;margin-top:12px;margin-bottom:6px;color:#221f1a}
.examcard p{color:#5d5748;font-size:.92em;line-height:1.55;margin-top:0;margin-bottom:16px}
.examcard .ex-bar{height:8px;border-radius:4px;background:rgba(138,100,48,.15);overflow:hidden;margin-bottom:24px}
.examcard .ex-bar span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#d97757,#c79248)}
.examcard.locked h3{color:#6b6353}
.ex-go{display:inline-flex;align-items:center;gap:9px;margin-bottom:24px;border:none;cursor:pointer;border-radius:999px;padding:12px 22px;font-weight:800;font-size:.92em;color:#fff;background:linear-gradient(135deg,#d97757,#b04a3a);box-shadow:0 10px 26px -10px rgba(176,74,58,.55);transition:transform .5s cubic-bezier(.32,.72,0,1),box-shadow .5s cubic-bezier(.32,.72,0,1)}
.ex-go:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(176,74,58,.6)}
.ex-go:active{transform:scale(.98)}
.examcard .ex-row{display:flex;align-items:center;gap:16px;margin-top:18px}
.examcard .ex-row .ex-go{margin:8px 0 0}
.examcard.passed .ex-row{margin-bottom:24px}
.ex-medal svg{filter:drop-shadow(0 6px 12px rgba(138,100,48,.35))}

/* exam room */
.examov{position:fixed;inset:0;z-index:80;display:none;background:rgba(24,20,14,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.examov.show{display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:4vh 14px}
.exroom{width:100%;max-width:760px;background:linear-gradient(170deg,#fdfbf7,#f7f1e6);border-radius:26px;padding:26px 28px 30px;box-shadow:0 40px 90px -30px rgba(0,0,0,.5);animation:exIn .7s cubic-bezier(.32,.72,0,1)}
@keyframes exIn{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
.ex-top{display:flex;align-items:center;gap:12px}
.ex-top .ex-tag{font-size:.62em;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#8a6430;border:1px solid rgba(138,100,48,.35);border-radius:999px;padding:4px 11px}
.ex-count{flex:1;text-align:center;font-size:.82em;color:#8a8272;font-variant-numeric:tabular-nums}
.ex-quit{border:none;background:none;color:#a09781;font-weight:700;cursor:pointer;font-size:.82em;padding:6px 10px;border-radius:8px}
.ex-quit:hover{background:rgba(0,0,0,.05)}
.ex-prog{height:6px;border-radius:3px;background:rgba(138,100,48,.14);margin:16px 0 22px;overflow:hidden}
.ex-prog span{display:block;height:100%;background:linear-gradient(90deg,#d97757,#c79248);border-radius:3px;transition:width .5s cubic-bezier(.32,.72,0,1)}
.ex-card{background:#fff;border:1px solid rgba(138,100,48,.18);border-radius:18px;padding:22px 24px;box-shadow:inset 0 1px 1px rgba(255,255,255,.6),0 12px 30px -18px rgba(42,30,18,.25)}
.ex-mod{font-size:.68em;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c79248;margin-bottom:8px}
.ex-card h2{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.22em;line-height:1.4;margin:0 0 18px;color:#221f1a}
.ex-opts{display:grid;gap:10px}
.ex-opt{text-align:left;border:1.5px solid rgba(138,100,48,.22);background:#fdfbf7;border-radius:13px;padding:13px 16px;font:inherit;font-size:.93em;color:#3d382e;cursor:pointer;transition:border-color .35s,background .35s,transform .35s cubic-bezier(.32,.72,0,1)}
.ex-opt:hover{border-color:#d97757;transform:translateX(3px)}
.ex-opt.on{border-color:#d97757;background:rgba(217,119,87,.09);box-shadow:inset 0 0 0 1px #d97757}
.ex-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.ex-nav.center{justify-content:center}
.ex-prim{border:none;cursor:pointer;border-radius:999px;padding:12px 24px;font-weight:800;font-size:.92em;color:#fff;background:#221f1a;transition:transform .5s cubic-bezier(.32,.72,0,1),opacity .3s;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.ex-prim:hover{transform:translateY(-2px)}
.ex-prim:active{transform:scale(.98)}
.ex-prim.gold{background:linear-gradient(135deg,#d97757,#b04a3a);box-shadow:0 10px 26px -10px rgba(176,74,58,.55)}
.ex-prim.big{font-size:1.02em;padding:15px 30px}
.ex-prim.li{background:#0a66c2}
.ex-alt{border:1.5px solid rgba(138,100,48,.3);background:none;cursor:pointer;border-radius:999px;padding:12px 22px;font-weight:700;font-size:.9em;color:#6b6353;transition:background .3s}
.ex-alt:hover{background:rgba(138,100,48,.08)}
.ex-alt:disabled{opacity:.35;cursor:default}
.exroom.result{text-align:center;padding:44px 34px}
.exroom.result h2{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.7em;margin:18px 0 10px;color:#221f1a}
.exroom.result p{color:#5d5748;max-width:52ch;margin:0 auto 24px;line-height:1.6}
.ex-seal{animation:sealPop .9s cubic-bezier(.32,.72,0,1) .15s both}
@keyframes sealPop{from{opacity:0;transform:scale(.6) rotate(-8deg)}to{opacity:1;transform:none}}
.ex-weak{max-width:420px;margin:0 auto 26px;text-align:left;background:#fff;border:1px solid rgba(138,100,48,.18);border-radius:14px;padding:16px 18px}
.ex-weak h4{margin:0 0 10px;font-size:.72em;text-transform:uppercase;letter-spacing:.14em;color:#8a6430}
.ex-weak-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed rgba(138,100,48,.18);font-size:.9em;color:#3d382e}
.ex-weak-row:last-child{border-bottom:none}
.ex-weak-row b{color:#b04a3a}
.ex-name{display:block;width:100%;max-width:420px;margin:0 auto 22px;padding:14px 18px;border:1.5px solid rgba(138,100,48,.35);border-radius:13px;font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.25em;text-align:center;background:#fff;color:#221f1a}
.ex-name:focus{outline:none;border-color:#d97757;box-shadow:0 0 0 3px rgba(217,119,87,.18)}

/* diploma */
.dipov{position:fixed;inset:0;z-index:90;display:none;background:rgba(20,16,11,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.dipov.show{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:22px;padding:20px;overflow:auto}
.dip-wrap{display:flex;flex-direction:column;align-items:center;gap:22px;max-width:min(960px,96vw);width:100%;margin:auto}
.dip-shell{width:100%;background:linear-gradient(160deg,#2a241c,#171310);border-radius:26px;padding:14px;box-shadow:0 60px 120px -40px rgba(0,0,0,.8),inset 0 1px 1px rgba(255,255,255,.08);animation:dipIn 1s cubic-bezier(.32,.72,0,1)}
@keyframes dipIn{from{opacity:0;transform:translateY(30px) scale(.94)}to{opacity:1;transform:none}}
.dip-frame{border-radius:16px;padding:3px;background:linear-gradient(120deg,#e9c98f,#8a6430 30%,#e5c284 52%,#9a6f33 75%,#e9c98f);background-size:220% 220%;animation:dipShine 3.2s cubic-bezier(.45,.05,.35,1) .6s 1}
@keyframes dipShine{from{background-position:0% 0%}to{background-position:100% 100%}}
.diploma{position:relative;border-radius:13px;background:radial-gradient(120% 90% at 50% 8%,#fefcf8 0%,#faf6ec 55%,#f3ecdc 100%);padding:clamp(26px,5vw,58px) clamp(20px,6vw,72px) clamp(22px,4vw,44px);text-align:center;overflow:hidden}
.diploma::before{content:"";position:absolute;inset:10px;border:1px solid rgba(138,100,48,.4);border-radius:9px;pointer-events:none}
.diploma::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
.dip-corner{position:absolute;width:clamp(44px,7vw,84px);height:clamp(44px,7vw,84px);opacity:.9}
.dip-corner svg{width:100%;height:100%}
.dip-corner.tl{top:16px;left:16px}
.dip-corner.tr{top:16px;right:16px;transform:rotate(90deg)}
.dip-corner.br{bottom:16px;right:16px;transform:rotate(180deg)}
.dip-corner.bl{bottom:16px;left:16px;transform:rotate(270deg)}
.dip-seal{margin:2px auto 10px;width:clamp(78px,12vw,112px)}
.dip-seal svg{width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(138,64,40,.35))}
.dip-eyebrow{font-size:clamp(.58em,1.4vw,.72em);font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:#8a6430;margin-bottom:6px}
.dip-course{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:clamp(1.5em,4.2vw,2.5em);margin:0 0 14px;color:#221f1a;letter-spacing:.01em}
.dip-award{font-size:clamp(.78em,1.8vw,.95em);font-style:italic;color:#6b6353;margin-bottom:10px}
.dip-name{display:flex;align-items:center;gap:18px;justify-content:center;margin:6px 0 16px}
.dip-rule{flex:1;max-width:120px;height:1px;background:linear-gradient(90deg,transparent,#b98a45,transparent)}
.dip-name-t{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-style:italic;font-size:clamp(1.5em,4.6vw,2.7em);color:#7c2f1c;white-space:nowrap;max-width:70vw;overflow:hidden;text-overflow:ellipsis}
.dip-body{max-width:58ch;margin:0 auto 26px;font-size:clamp(.8em,1.9vw,.98em);line-height:1.65;color:#4a4438}
.dip-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:0 auto;max-width:640px}
.dip-meta>div{flex:1;min-width:0}
.dip-meta span{display:block;font-size:.6em;text-transform:uppercase;letter-spacing:.2em;color:#8a8272;margin-bottom:5px}
.dip-meta b{font-size:clamp(.72em,1.6vw,.88em);color:#221f1a;font-variant-numeric:tabular-nums}
.dip-sig .dip-sig-name{display:block;font-family:'Iowan Old Style',Palatino,Georgia,serif;font-style:italic;font-size:clamp(1.05em,2.6vw,1.5em);color:#221f1a;letter-spacing:.03em;text-transform:none;margin-bottom:2px}
.dip-sig i{display:block;height:1px;background:linear-gradient(90deg,transparent,#8a6430,transparent);margin:4px auto 6px;max-width:190px}
.dip-sig b{font-size:.62em;text-transform:uppercase;letter-spacing:.16em;color:#8a8272;font-weight:700}
.dip-foot{margin-top:22px;font-size:.62em;letter-spacing:.22em;text-transform:uppercase;color:#a09781}
.dip-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;animation:dipIn 1s cubic-bezier(.32,.72,0,1) .25s both}
@media(max-width:640px){.dip-meta{flex-direction:column;align-items:center;gap:14px;text-align:center}.dip-name-t{white-space:normal}}
@media(prefers-reduced-motion:reduce){.exroom,.dip-shell,.dip-actions,.ex-seal{animation:none}.dip-frame{animation:none}.ex-prog span{transition:none}}
/* print: the diploma alone, edge to edge */
@media print{
  body.dip-open>*{display:none !important}
  body.dip-open #dipov{display:block !important;position:static;background:none;padding:0;backdrop-filter:none}
  body.dip-open .dip-actions{display:none !important}
  body.dip-open .dip-wrap{max-width:none}
  body.dip-open .dip-shell{box-shadow:none;border-radius:0;animation:none;page-break-inside:avoid}
  body.dip-open .diploma{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{size:landscape;margin:8mm}
}

/* ===== diploma v2: engraved wahou layer ===== */
.diploma{isolation:isolate}
.dip-guill{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.dip-burst{position:absolute;left:50%;top:44%;width:min(120%,760px);transform:translate(-50%,-50%);opacity:.045;pointer-events:none;z-index:0}
.diploma>*:not(.dip-guill):not(.dip-burst):not(.dip-ribbon):not(.dip-filigree):not(.dip-qr){position:relative;z-index:1}
.diploma::before{inset:26px;border-radius:4px}
.dip-corner{display:none}
.dip-sealrow{display:flex;align-items:center;justify-content:center;gap:clamp(4px,2vw,18px);margin-top:6px}
.dip-laurel{width:clamp(58px,10vw,104px);height:auto;opacity:.92}
.dip-laurel.r{transform:scaleX(-1)}
.dip-sealwrap{position:relative;width:clamp(84px,13vw,118px)}
.dip-ribbons{position:absolute;left:50%;top:58%;width:88%;transform:translateX(-50%);z-index:0}
.dip-sealwrap svg.dip-seal-svg{position:relative;z-index:1;width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(138,64,40,.35))}
.dip-seal{display:none}
.dip-curric{font-size:clamp(.56em,1.3vw,.68em);letter-spacing:.3em;text-transform:uppercase;color:#a08a5e;margin:2px 0 12px;font-variant-numeric:tabular-nums}
.dip-microtext{max-width:520px;margin:-8px auto 4px;font-size:5.5px;letter-spacing:.18em;color:#b98a45;opacity:.65;white-space:nowrap;overflow:hidden;font-weight:700}
.dip-mention{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-style:italic;font-size:clamp(.9em,2.2vw,1.12em);color:#8a6430;margin:8px 0 10px;letter-spacing:.06em}
.dip-star{color:#c79248;font-style:normal;font-size:.85em}
.dip-div{display:block;width:min(260px,60%);margin:2px auto 14px;height:auto}
.dip-frame:hover{animation:dipShine 2.6s cubic-bezier(.45,.05,.35,1) infinite}
/* preview mode */
.diploma.preview .dip-name-t{color:#a08a5e}
.dip-ribbon{position:absolute;top:26px;right:-42px;transform:rotate(38deg);z-index:3;background:linear-gradient(135deg,#b04a3a,#7c2f1c);color:#fdf6ec;font-weight:800;font-size:.66em;letter-spacing:.3em;padding:7px 52px;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.dip-preview-note{width:100%;text-align:center;color:#e8ddca;font-size:.9em;margin-bottom:4px;text-wrap:balance}
/* mini preview in the exam card */
.dip-mini{position:relative;margin:0 26px 24px;cursor:pointer;border-radius:14px;max-width:560px}
.dip-mini-in{pointer-events:none;border-radius:12px;overflow:hidden;box-shadow:0 14px 34px -16px rgba(42,30,18,.4);transition:transform .5s cubic-bezier(.32,.72,0,1)}
.dip-mini-in .dip-shell{padding:6px;border-radius:12px}
.dip-mini-in .dip-frame{padding:2px;border-radius:8px;animation:none}
.dip-mini-in .diploma{padding:18px 16px 14px;border-radius:6px;font-size:.5em}
.dip-mini-in .diploma::before{inset:10px}
.dip-mini-in .dip-microtext,.dip-mini-in .dip-div{display:none}
.dip-mini-in .dip-ribbon{top:12px;right:-46px;font-size:.6em;padding:5px 50px}
.dip-mini:hover .dip-mini-in{transform:translateY(-3px) scale(1.01)}
.dip-mini-lbl{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;font-size:.8em;font-weight:700;color:#8a6430}
/* per-module progress on home cards */
.modcard{position:relative;overflow:hidden}
.mc-prog{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(138,100,48,.12)}
.mc-prog span{display:block;height:100%;background:linear-gradient(90deg,#d97757,#c79248);transition:width .5s cubic-bezier(.32,.72,0,1)}
.mc-prog-n{position:absolute;top:14px;right:14px;font-size:.68em;font-weight:800;color:#8a6430;background:rgba(229,194,132,.22);border-radius:999px;padding:3px 9px;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:4px}
.modcard.mc-done .mc-prog-n{background:#5f8a63;color:#fff}
@media(prefers-reduced-motion:reduce){.dip-frame:hover{animation:none}.dip-mini:hover .dip-mini-in{transform:none}}

/* narrow screens: the stretched guilloche band gets tall, give the foot room */
@media(max-width:640px){
  .diploma{padding-bottom:74px;padding-left:34px;padding-right:34px}
  .dip-foot{font-size:.55em;letter-spacing:.12em;margin-top:16px}
  .dip-microtext{font-size:4.5px}
}

/* ===== diploma v3: engine-turned grandeur ===== */
.dip-filigree{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);opacity:.07;pointer-events:none;z-index:0}
.dip-filigree svg{width:min(78vw,560px);height:auto}
.diploma>.dip-filigree{position:absolute}
.dip-award{display:flex;align-items:center;justify-content:center;gap:14px}
.dip-swash{flex-shrink:1;min-width:0;width:clamp(60px,12vw,120px);height:auto}
.dip-swash.r{transform:scaleX(-1)}
.diploma{box-shadow:inset 0 0 0 1px rgba(138,100,48,.25),inset 0 0 60px rgba(138,100,48,.07)}
/* mini preview: centered */
.dip-mini{margin:0 auto 24px;width:min(560px,calc(100% - 52px))}
@media(max-width:640px){.dip-swash{width:clamp(36px,10vw,60px)}}
/* keep the foot clear of the bottom braid */
.diploma{padding-bottom:clamp(52px,6vw,78px)}
.dip-foot{margin-top:14px}
@media(max-width:640px){.diploma{padding-bottom:88px}}

/* ===== diploma anti-forgery layer ===== */
.diploma{user-select:none;-webkit-user-select:none}
.dip-qr{position:absolute;left:52px;bottom:52px;z-index:2;text-align:center;background:rgba(254,252,248,.85);padding:6px 6px 3px;border:1px solid rgba(138,100,48,.35);border-radius:6px}
.dip-qr svg{width:60px;height:60px;display:block}
.dip-qr span{display:block;font-size:5.5px;letter-spacing:.14em;text-transform:uppercase;color:#8a6430;font-weight:800;margin-top:3px}
.dip-cert{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;color:#e8ddca;font-size:.86em}
.dip-cert span{opacity:.8}
.dip-cert.ok{background:rgba(95,138,99,.18);border:1px solid rgba(95,138,99,.5);color:#cfe3cf;border-radius:999px;padding:9px 18px;font-weight:700}
.ver-badge{display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:10px 18px;font-weight:800;margin:12px 0}
.ver-badge.ok{background:#e9efe3;color:#4d7a4f;border:1.5px solid #b8d0b4}
.ver-badge.ko{background:#f6e2dc;color:#b8503f;border:1.5px solid #e3b5aa}
.ver-cred{font-family:Consolas,monospace;font-weight:700;color:#8a6430;background:#f6eedb;border-radius:9px;padding:8px 14px;display:inline-block}
.ver-wait{color:#8a8272}
@media(max-width:640px){.dip-qr{left:38px;bottom:44px}.dip-qr svg{width:46px;height:46px}}
@media print{.dip-qr{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ===== juice: xp float, quiz burst/shake, momentum strip, lesson progress ===== */
.xp-float{position:fixed;z-index:120;transform:translateX(-50%);font-weight:800;font-size:.86em;color:#bf5d3c;pointer-events:none;animation:xpUp 1.05s cubic-bezier(.2,.7,.3,1) forwards;text-shadow:0 1px 0 #fff}
@keyframes xpUp{from{opacity:0;translate:0 6px}15%{opacity:1}to{opacity:0;translate:0 -34px}}
.rankchip.xp-tick .rk-ic{animation:xpTick .55s cubic-bezier(.32,.72,0,1)}
@keyframes xpTick{30%{transform:scale(1.18)}}
.q-spark{position:fixed;z-index:120;width:7px;height:7px;border-radius:2px;pointer-events:none}
.qopt.bad{animation:qShake .32s cubic-bezier(.36,.07,.19,.97)}
@keyframes qShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(3px)}30%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}50%{transform:translateX(-3px)}}
.qopt.good{animation:qPop .4s cubic-bezier(.32,.72,0,1)}
@keyframes qPop{40%{transform:scale(1.025)}}
.momentum{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 2px}
.mo-chip{display:inline-flex;align-items:center;gap:6px;background:#fffdf8;border:1.5px solid var(--line,#e9e3d5);border-radius:999px;padding:7px 13px;font-size:.78em;font-weight:700;color:#6b6353}
.mo-flame{color:#b04a3a;border-color:#ecd0c4;background:#fdf3ee}
.lesson-prog{height:4px;border-radius:2px;background:rgba(138,100,48,.13);overflow:hidden;margin:8px 0 2px;max-width:420px}
.lesson-prog span{display:block;height:100%;background:linear-gradient(90deg,#d97757,#c79248);border-radius:2px;transition:width .5s cubic-bezier(.32,.72,0,1)}
@media(prefers-reduced-motion:reduce){.xp-float,.qopt.bad,.qopt.good,.rankchip.xp-tick .rk-ic{animation:none}}

/* skills library promo card on the home */
.skpromo{display:flex;align-items:center;gap:16px;margin:26px 0 0;padding:18px 22px;border-radius:18px;text-decoration:none;background:linear-gradient(140deg,#2a251f,#3b332a);border:1px solid #4a4034;transition:transform .5s cubic-bezier(.32,.72,0,1),box-shadow .5s cubic-bezier(.32,.72,0,1)}
.skpromo:hover{transform:translateY(-2px);box-shadow:0 16px 40px -16px rgba(42,30,18,.5)}
.skp-ic{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#d97757,#b04a3a);color:#fff}
.skp-txt{flex:1;min-width:0}
.skp-txt b{display:block;color:#fff;font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.08em;margin-bottom:2px}
.skp-txt span{display:block;color:#cfc5b4;font-size:.84em;line-height:1.45}
.skp-go{flex-shrink:0;color:#f0b890;font-weight:800;font-size:.86em;white-space:nowrap}
@media(max-width:640px){.skpromo{flex-wrap:wrap}.skp-go{margin-left:60px}}

/* ---- diplome : tenir a l'ecran (le .diploma est tout en em, son font-size scale tout) ---- */
@media(max-height:940px){.dipov .diploma{font-size:.85em}}
@media(max-height:820px){.dipov .diploma{font-size:.72em}}
@media(max-width:640px){
  .dipov.show{padding:12px;gap:12px}
  .dip-wrap{gap:14px}
  .dip-shell{padding:8px;border-radius:18px}
  .dip-frame{padding:2px;border-radius:12px}
  .dipov .diploma{font-size:.62em}
  .dip-actions .seal3d{width:92px;height:92px;margin:0 auto 4px}
  .dip-preview-note{font-size:.84em}
}
@media print{body.dip-open .diploma{font-size:1em !important}}

/* ---- carte examen mobile : compacte, le mini-diplome devient un bouton ---- */
@media(max-width:560px){
  .examcard .ex-tag,.examcard h3,.examcard p,.examcard .ex-bar,.examcard .ex-row{margin-left:18px;margin-right:18px}
  .examcard .ex-tag{margin-top:18px}
  .examcard .seal3d{margin:14px auto 0}
  .dip-mini{margin:0 18px 20px}
  /* pas de display:none : les gradients SVG du sceau (ids partages) doivent rester rendus,
     sinon le sceau du diplome en modale perd ses couleurs (resolution d'id Chromium) */
  .dip-mini .dip-mini-in{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
  .dip-mini-lbl{margin-top:0;padding:13px 14px;border:1.5px solid rgba(191,93,60,.45);border-radius:13px;background:rgba(255,253,248,.65);color:#bf5d3c;font-weight:800;font-size:.86em}
  .dip-mini-lbl svg{width:17px;height:17px;flex-shrink:0}
}

/* ---- anti-triche examen ---- */
.exroom{user-select:none;-webkit-user-select:none}
.ex-timer{font-variant-numeric:tabular-nums;font-weight:800;font-size:.82em;color:#8a6430;border:1px solid rgba(138,100,48,.3);border-radius:999px;padding:4px 12px}
.ex-timer.low{color:#b8503f;border-color:rgba(184,80,63,.5);animation:acPulse 1s ease-in-out infinite}
@keyframes acPulse{50%{opacity:.55}}
.ex-warnbar{margin:12px 0 0;background:rgba(184,80,63,.1);border:1px solid rgba(184,80,63,.35);color:#9e3a30;border-radius:12px;padding:10px 14px;font-size:.86em;font-weight:700}
.ex-note{font-size:.78em !important;color:#8a8272 !important}

/* ---- verrou quiz sur Marquer comme lu ---- */
.btn.mark.qlock{opacity:.45;filter:saturate(.4)}
@keyframes qzShake{0%,100%{transform:none}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.quiz.qz-shake{animation:qzShake .5s ease}
@media(prefers-reduced-motion:reduce){.quiz.qz-shake{animation:none}.ex-timer.low{animation:none}}

/* ---- pastille check-up sur les cartes modules ---- */
.chk-chip{position:absolute;top:12px;right:12px;border:1.5px solid rgba(199,146,72,.55);background:rgba(246,238,219,.92);color:#a9772f;border-radius:999px;padding:5px 12px;font-size:.7em;font-weight:800;cursor:pointer;font-family:var(--sans)}
.chk-chip:hover{background:#c79248;color:#fff;border-color:#c79248}

/* ---- CTA examen dans la barre de navigation (fin de cours) ---- */
.btn.next.exam-cta{background:linear-gradient(135deg,#d97757,#b04a3a);color:#fff;box-shadow:0 10px 26px -10px rgba(176,74,58,.55)}
