/* Kratom University. Uses the weg-article tokens when present. */
.ku{--ku-green:var(--weg-green,#36604e);--ku-deep:var(--weg-green-deep,#24493a);--ku-ink:var(--weg-ink,#212b26);--ku-paper:var(--weg-paper,#f7eedf);--ku-band:var(--weg-band,#e8dabe);--ku-ochre:var(--weg-ochre,#C8923A);--ku-terra:var(--weg-terracotta,#B5643C);--ku-sage:var(--weg-sage,#8fa896);--ku-hair:color-mix(in oklch,var(--ku-green) 18%,transparent)}
.ku .ku-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ku [hidden]{display:none!important}
/* Focus: no ring on mouse or touch clicks; a soft brand ring for keyboard users only. */
.ku a:focus,.ku button:focus,.ku summary:focus,.ku label:focus,.ku input:focus{outline:none}
.ku a:focus-visible,.ku button:focus-visible,.ku summary:focus-visible{outline:2px solid var(--ku-ochre);outline-offset:3px;border-radius:4px}

/* buttons */
.ku .ku-btn{display:inline-block;font:inherit;font-weight:600;line-height:1.2;padding:.7em 1.3em;border-radius:6px;border:1.5px solid var(--ku-green);cursor:pointer;text-decoration:none;transition:background .15s,color .15s}
.ku .ku-btn-primary{background:var(--ku-green);color:#fff}
.ku .ku-btn-primary:hover:not(:disabled){background:var(--ku-deep);color:#fff}
.ku .ku-btn-quiet{background:transparent;color:var(--ku-green)}
.ku .ku-btn-quiet:hover{background:var(--ku-hair)}
.ku .ku-btn:disabled{opacity:.55;cursor:not-allowed}

/* banner + notices */
.ku .ku-banner{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--ku-band);border-left:4px solid var(--ku-ochre);padding:12px 18px;margin:0 0 20px;border-radius:4px}
.ku .ku-banner p{margin:0;flex:1 1 300px}
.ku .ku-notice{background:var(--ku-band);border-left:4px solid var(--ku-terra);padding:12px 18px;margin:0 0 20px;border-radius:4px}
.ku .ku-notice p{margin:0}
.ku .ku-notice-soft{border-left-color:var(--ku-sage)}

/* layout */
.ku .ku-layout{display:block}
/* Title block centered to match the centered H2s the article stylesheet uses. */
.ku .ku-main>h1,.ku .ku-front-matter,.ku .ku-read-time{text-align:center}
.ku .ku-main>h1{overflow-wrap:anywhere}
.ku .ku-body h2,.ku .ku-body h3,.ku .ku-readmore h2{text-align:center}
/* Reading column: about 70 characters per line at the lesson type size. Articles use 700px; lessons get a touch more room. */
.ku .ku-main{max-width:740px;margin:0 auto}
.ku .ku-banner,.ku .ku-notice.ku-blocked{max-width:740px;margin-left:auto;margin-right:auto}
.ku .ku-body p,.ku .ku-body li{max-width:none}
.ku .ku-front-matter{font-weight:600;color:var(--ku-green);margin:0 0 4px;letter-spacing:.02em}
.ku .ku-read-time{color:#5a6660;margin:0 0 18px;font-size:.95em}

/* progress bar: 4 groups of 6 dots, each ending in its quiz */
.ku .ku-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 28px;padding:14px 16px;background:var(--ku-paper);border:1px solid var(--ku-hair);border-radius:8px}
@media (max-width:640px){.ku .ku-progress{grid-template-columns:repeat(2,1fr)}}
.ku .ku-progress-level{display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.ku .ku-progress-title{display:block;font-size:.8em;line-height:1.25;color:var(--ku-ink)}
.ku .ku-progress-num{display:block;font-weight:700;color:var(--ku-green);font-size:1.05em;margin-bottom:2px}
.ku .ku-progress-level.is-done .ku-progress-num::after{content:" \2713"}
.ku .ku-dots{list-style:none;margin:0;padding:0;display:flex;gap:6px;align-items:center}
.ku .ku-dot{margin:0;padding:0}
.ku .ku-dot a{display:block;width:14px;height:14px;border-radius:50%;border:2px solid var(--ku-sage);background:#fff;position:relative}
.ku .ku-dot.is-done a{background:var(--ku-green);border-color:var(--ku-green)}
.ku .ku-dot.is-current a{box-shadow:0 0 0 3px var(--ku-hair);border-color:var(--ku-green)}
.ku .ku-dot.is-locked a{opacity:.45;cursor:not-allowed}
.ku .ku-dot-quiz a{border-radius:3px;transform:rotate(45deg);width:12px;height:12px;margin-left:4px;border-color:var(--ku-ochre)}
.ku .ku-dot-quiz.is-done a{background:var(--ku-ochre);border-color:var(--ku-ochre)}
.ku .ku-dot-quiz.is-hidden{display:none}

/* rail */
.ku .ku-rail{margin:0 0 28px}
.ku .ku-rail-box{background:var(--ku-paper);border:1px solid var(--ku-hair);border-radius:8px;padding:10px 14px}
.ku .ku-rail-box>summary::after{content:" \25BE";font-size:.9em}
.ku .ku-rail-box[open]>summary::after{content:" \25B4"}
.ku .ku-rail-heading{font-weight:700;cursor:pointer;color:var(--ku-green)}
.ku .ku-rail-level{margin:8px 0 0}
.ku .ku-rail-level>summary{font-weight:600;cursor:pointer;padding:4px 0}
.ku .ku-rail-level ol{list-style:none;margin:4px 0 6px;padding:0 0 0 6px}
.ku .ku-rail-item{margin:0;padding:3px 0;font-size:.92em;line-height:1.3}
.ku .ku-rail-item a{color:var(--ku-ink);text-decoration:none;display:flex;gap:6px}
.ku .ku-rail-item a:hover{text-decoration:underline}
.ku .ku-rail-num{color:var(--ku-green);font-weight:600;min-width:2.2em}
.ku .ku-rail-item.is-done a::after{content:"\2713";color:var(--ku-green);margin-left:auto}
.ku .ku-rail-item.is-locked a{opacity:.5;cursor:not-allowed}
.ku .ku-rail-item.is-locked a::after{content:"\1F512";font-size:.8em;margin-left:auto}
.ku .ku-rail-item.is-current a{font-weight:700}

/* footnotes and apply it now */
.ku sup.ku-fn{font-size:.7em;line-height:0;vertical-align:super}
.ku sup.ku-fn a{text-decoration:none;font-weight:700}
.ku .ku-readmore{margin:36px 0 0;padding-top:14px;border-top:1px solid var(--ku-hair)}
.ku .ku-readmore ol{padding-left:1.6em;margin:0}
.ku .ku-readmore li{margin:0 0 18px;line-height:1.45}
.ku .ku-readmore li::marker{font-weight:700;color:var(--ku-green)}
.ku .ku-rm-title{font-weight:700}
.ku .ku-rm-desc{display:block;margin-top:3px;color:#4a5550;font-size:.95em}
.ku .ku-fn-back{text-decoration:none;margin-left:6px}
.ku .ku-body,.ku .ku-readmore{scroll-margin-top:calc(var(--weg-header-offset,120px) + 12px)}
.ku .ku-apply{position:relative;border:1.5px solid var(--ku-ochre);border-left-width:6px;border-radius:10px;padding:18px 24px 20px;margin:32px 0;background:linear-gradient(135deg,var(--ku-paper) 0%,#fbf6ec 100%);box-shadow:0 6px 18px -12px rgba(33,43,38,.35)}
.ku .ku-apply-head{display:flex;align-items:center;gap:14px;margin:0 0 6px}
.ku .ku-apply-head h2,.ku .ku-apply-head h3{margin:0!important;padding:0!important;border:0!important;text-align:left!important;color:var(--ku-deep)!important}
.ku .ku-apply-icon{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--ku-ochre);box-shadow:0 0 0 4px var(--ku-band);display:inline-block;position:relative}
.ku .ku-apply-icon::before{content:"";position:absolute;inset:0;background:no-repeat center/24px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20h9'/><path d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/></svg>")}
.ku .ku-apply p{margin:10px 0 0;font-size:1.03em}
.ku .ku-apply p:first-of-type{margin-top:4px}
.ku .ku-apply p::before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--ku-ochre);margin:0 .6em .1em 0}
.ku .ku-apply ul,.ku .ku-apply ol{margin-top:8px}
.ku .ku-up-next{margin:36px 0 8px;font-size:1.05em}
.ku .ku-up-next p{margin:0}
.ku .ku-up-next-teaser{margin-top:6px!important;font-size:.95em}

.ku .ku-disclaimer{margin-bottom:56px}

/* completion control */
.ku .ku-complete{margin:8px 0 32px;padding:22px 18px;border:1px solid var(--ku-hair);border-radius:8px;background:#fff;text-align:center}
.ku .ku-complete .ku-btn{min-width:260px}
.ku .ku-complete-help.ku-timer{font-variant-numeric:tabular-nums;color:var(--ku-terra);font-weight:600;font-size:1em;margin-top:10px}
.ku .ku-complete-help{margin:8px 0 0;color:#5a6660;font-size:.92em}
.ku .ku-complete-help:empty{display:none}
.ku .ku-confirm p{margin:0 0 10px}

/* modal */
.ku .ku-modal{position:fixed;inset:0;background:rgba(20,30,25,.55);display:flex;align-items:center;justify-content:center;z-index:100000;padding:16px}
.ku .ku-modal-card{background:#fff;color:var(--ku-ink);max-width:560px;width:100%;border-radius:10px;padding:28px 30px;position:relative;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:90vh;overflow-y:auto}
.ku .ku-modal-card h2{margin-top:0}
.ku .ku-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.ku .ku-modal-msg{margin:12px 0 0;font-weight:600;color:var(--ku-green)}
body.ku-modal-open{overflow:hidden}
.ku .ku-popup-card{text-align:center}
.ku .ku-popup-card .ku-modal-actions{justify-content:center}
.ku .ku-trophy{font-size:64px;line-height:1;margin:0 0 8px}
.ku .ku-badge{width:84px;height:84px;border-radius:50%;background:var(--ku-ochre);color:#fff;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;margin:0 auto 12px;box-shadow:0 0 0 6px var(--ku-band)}
.ku .ku-points-line{font-weight:700;color:var(--ku-green);font-size:1.1em}
.ku .ku-share{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}
.ku .ku-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ku .ku-confetti i{position:absolute;top:-20px;display:block;border-radius:2px;animation:ku-fall ease-in forwards;opacity:1}
@keyframes ku-fall{0%{transform:translate3d(0,0,0) rotateZ(0) rotateY(0)}50%{transform:translate3d(var(--ku-sway,0px),55vh,0) rotateZ(calc(var(--ku-spin,720deg)/2)) rotateY(540deg)}100%{transform:translate3d(0,112vh,0) rotateZ(var(--ku-spin,720deg)) rotateY(1080deg)}}

/* quiz */
.ku .ku-questions{list-style:none;padding:0;margin:0}
.ku .ku-q{margin:0 0 22px;padding:16px 18px;border:1px solid var(--ku-hair);border-radius:8px;background:#fff}
.ku .ku-q fieldset{border:0;padding:0;margin:0}
.ku .ku-q-text{font-weight:600;margin:0 0 10px;padding:0}
.ku .ku-options{display:grid;gap:8px}
.ku .ku-option{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--ku-hair);border-radius:6px;cursor:pointer}
.ku .ku-option:hover{background:var(--ku-paper)}
.ku .ku-option input{margin-top:.3em}
.ku .ku-q.is-correct{border-color:var(--ku-green);border-width:2px}
.ku .ku-q.is-wrong{border-color:#b3392b;border-width:2px}
.ku .ku-q-mark{margin:10px 0 0;font-weight:600}
.ku .ku-q.is-correct .ku-q-mark{color:var(--ku-green)}
.ku .ku-q.is-wrong .ku-q-mark{color:#b3392b}
.ku .ku-q.is-graded .ku-option{cursor:default}
.ku .ku-q.is-graded .ku-option input{display:none}
.ku .ku-q.is-graded .ku-option::before{content:"";display:inline-block;width:1.3em;min-width:1.3em;height:1.3em;border-radius:50%;border:1.5px solid var(--ku-hair);margin-top:.05em;text-align:center;line-height:1.3em;font-weight:800;font-size:.95em}
.ku .ku-q.is-graded .ku-option.is-right::before,.ku .ku-q.is-graded .ku-option.is-answer::before{content:"\2713";background:var(--ku-green);border-color:var(--ku-green);color:#fff}
.ku .ku-q.is-graded .ku-option.is-wrong-pick::before{content:"\2715";background:#b3392b;border-color:#b3392b;color:#fff}
.ku .ku-q.is-graded .ku-option.is-right,.ku .ku-q.is-graded .ku-option.is-answer{background:color-mix(in oklch,var(--ku-green) 12%,#fff);border-color:var(--ku-green)}
.ku .ku-q.is-graded .ku-option.is-wrong-pick{background:#fbeae7;border-color:#b3392b}
.ku .ku-quiz-error{color:var(--ku-terra);font-weight:600}
.ku .ku-score{font-size:1.4em;font-weight:700;color:var(--ku-green)}
.ku .ku-score.is-fail,.ku .ku-result.is-fail .ku-score,.ku .ku-result.is-fail h2{color:#b3392b}
.ku #ku-quiz-result{margin:24px 0;padding:20px;border:1.5px solid var(--ku-green);border-radius:8px;background:var(--ku-paper)}
.ku #ku-quiz-result.is-fail{border-color:#b3392b;background:#fbeae7}
.ku .ku-celebrate-title{color:var(--ku-deep);font-size:2em;margin:0 0 6px;letter-spacing:.01em}
.ku .ku-trophy{animation:ku-pop .7s cubic-bezier(.2,1.4,.4,1) both;margin:0 auto 10px;width:112px;height:112px;border-radius:50%;box-shadow:0 0 0 8px var(--ku-band),0 0 0 16px color-mix(in oklch,var(--ku-ochre) 22%,transparent)}
.ku .ku-trophy svg{display:block}
.ku .ku-popup-card{background:linear-gradient(180deg,#fffdf8 0%,#fff 40%,#fff 100%);border-top:6px solid var(--ku-ochre)}
.ku .ku-popup-card .ku-score.is-pass{color:var(--ku-green);font-size:1.6em}
.ku .ku-points-pill{display:inline-block;background:var(--ku-ochre);color:#fff;font-weight:700;padding:.5em 1.1em;border-radius:999px;box-shadow:0 6px 14px -8px rgba(200,146,58,.9)}
.ku .ku-points-line{margin:14px 0 4px}
.ku .ku-missed{text-align:left;margin:18px 0 0;padding:14px 16px;background:var(--ku-paper);border:1px solid var(--ku-hair);border-radius:8px;max-height:40vh;overflow:auto}
.ku .ku-missed h3{margin:0 0 8px;font-size:1em;color:var(--ku-terra)}
.ku .ku-missed ol{margin:0;padding-left:1.5em}
.ku .ku-missed li{margin:0 0 10px;font-size:.95em;line-height:1.4}
.ku .ku-missed-q{display:block}
.ku .ku-missed-a{display:block;color:var(--ku-green);font-weight:600}
.ku .ku-result.is-pass h2,.ku .ku-result.is-pass .ku-score{color:var(--ku-green)}
@keyframes ku-pop{0%{transform:scale(.3);opacity:0}100%{transform:scale(1);opacity:1}}
.ku-confetti-page{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2147483000}
.ku-confetti-page i{position:absolute;top:-20px;display:block;border-radius:2px;animation:ku-fall ease-in forwards;opacity:1;box-shadow:0 0 2px rgba(0,0,0,.15)}

/* hub */
.ku .ku-hub-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:20px 0 28px}
.ku .ku-hub-buttons .ku-btn{min-width:220px;text-align:center}
.ku .ku-btn-wide{min-width:280px}
.ku .ku-hub-edu{text-align:center;margin:-10px 0 24px;font-size:.95em}
.ku .ku-hub-edu a{color:var(--ku-green)}
.ku.ku-hub-progress{margin:16px 0}
