.leo-missions{--leo-accent:#247b69;--leo-ink:#23443b;--leo-light:#f2f8ec;--leo-gold:#e5b952;max-width:1200px;margin:36px auto;padding:34px clamp(18px,4vw,48px);background:linear-gradient(145deg,#fafff5,#eaf6ed);border-radius:28px;color:var(--leo-ink);font-family:inherit;box-shadow:0 12px 35px rgba(24,85,63,.1)}
.leo-missions *{box-sizing:border-box}.leo-missions__intro{text-align:center;max-width:720px;margin:auto}.leo-missions__eyebrow{font-size:.78rem;letter-spacing:.12em;font-weight:750;color:var(--leo-accent)}.leo-missions h2{color:var(--leo-ink);font-family:Georgia,serif;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.15;margin:12px 0}.leo-missions__intro p{font-size:1.06rem;line-height:1.6;margin:0}.leo-missions__progress{max-width:520px;margin:30px auto 34px;text-align:center}.leo-missions__count{display:block;font-weight:700;margin-bottom:9px}.leo-missions__track{height:12px;background:#dcebdc;border-radius:99px;overflow:hidden}.leo-missions__track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--leo-accent),#9dc949);border-radius:99px;transition:width .4s}.leo-missions__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.leo-missions__card{background:#fff;border:1px solid #dce9db;border-radius:22px;padding:23px;box-shadow:0 8px 20px rgba(30,75,52,.06);transition:transform .2s,border-color .2s}.leo-missions__card:hover{transform:translateY(-3px)}.leo-missions__card.is-done{border-color:#70ab78;background:#fbfff9}.leo-missions__card-head{display:flex;align-items:center;justify-content:space-between}.leo-missions__icon{display:grid;place-items:center;width:57px;height:57px;border-radius:17px;background:var(--leo-light);color:var(--leo-accent)}.leo-missions__time{font-size:.87rem;font-weight:700;color:var(--leo-accent);background:#eef6eb;padding:7px 11px;border-radius:99px}.leo-missions h3{color:var(--leo-ink);font-family:Georgia,serif;font-size:1.36rem;margin:16px 0 8px}.leo-missions__desc{line-height:1.58;margin:0 0 15px}.leo-missions button{font:inherit;cursor:pointer}.leo-missions__open{border:0;background:transparent;color:var(--leo-accent);padding:8px 0;font-weight:750;text-decoration:underline;text-underline-offset:4px}.leo-missions__open span{display:inline-block;margin-left:6px}.leo-missions__panel{border-top:1px solid #e1ebdf;margin-top:10px;padding-top:15px}.leo-missions__panel[hidden]{display:none}.leo-missions__panel-title{font-weight:750;margin:0 0 11px}.leo-missions__steps{display:grid;gap:12px;margin-bottom:18px}.leo-missions__step{display:flex;align-items:flex-start;gap:11px;line-height:1.45;cursor:pointer}.leo-missions__step input{appearance:auto;width:20px;height:20px;flex:none;margin:2px 0 0;accent-color:var(--leo-accent)}.leo-missions__step input:checked+span{text-decoration:line-through;opacity:.65}.leo-missions__done{color:#fff;background:var(--leo-accent);border:0;border-radius:99px;padding:11px 18px;font-weight:700}.leo-missions__done:hover{filter:brightness(.9)}.leo-missions__card.is-done .leo-missions__done{background:#557d55}.leo-missions__note{text-align:center;margin:24px 0 8px;font-size:.86rem;line-height:1.5;color:#506c5b}.leo-missions__reset{display:block;margin:auto;border:0;background:transparent;color:var(--leo-accent);font-size:.89rem;text-decoration:underline;padding:6px}.leo-missions :focus-visible{outline:3px solid var(--leo-gold);outline-offset:4px}@media(max-width:700px){.leo-missions{padding:24px 16px;border-radius:18px}.leo-missions__grid{grid-template-columns:1fr}.leo-missions__card{padding:20px}}@media(prefers-reduced-motion:reduce){.leo-missions *{scroll-behavior:auto!important;transition:none!important}}
/* Leo palette and character artwork from the supplied page images. */
.leo-missions{--leo-ink:#173d39;--leo-light:#e7f5df;background:#f4fbf3;padding:0 0 30px;overflow:hidden}
.leo-missions__hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:22px;padding:36px clamp(20px,5vw,62px);background:radial-gradient(circle at 20% 15%,rgba(204,230,166,.65),transparent 48%),linear-gradient(115deg,#d8e9c5,#6bc3b4 67%,#16a7a4);overflow:hidden}
.leo-missions__hero:before{content:"";position:absolute;width:420px;height:420px;right:-180px;top:-260px;border:4px dotted rgba(16,103,93,.4);border-radius:50%;pointer-events:none}
.leo-missions__intro{position:relative;z-index:1;max-width:700px;text-align:left;margin:0}
.leo-missions__intro p{max-width:610px}
.leo-missions__portrait{position:relative;z-index:1;display:grid;place-items:center;width:196px;height:196px;border-radius:50%;border:6px solid rgba(255,255,255,.85);background:#fff;box-shadow:0 12px 27px rgba(13,80,68,.19);overflow:hidden}
.leo-missions__portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.leo-missions__progress{padding:0 15px;margin:27px auto 30px}
.leo-missions__grid{padding:0 clamp(16px,4vw,48px)}
.leo-missions__note{margin-left:14px;margin-right:14px}
@media(max-width:700px){.leo-missions__hero{grid-template-columns:1fr;text-align:center;gap:20px;padding:28px 18px}.leo-missions__intro{text-align:center}.leo-missions__portrait{grid-row:1;width:145px;height:145px;margin:auto}}
/* v1.1: illustrated mission modules and unlocked reward */
.leo-missions,.leo-missions__card,.leo-missions__icon,.leo-missions__time,.leo-missions__done,.leo-missions__track,.leo-missions__track span,.leo-missions__print,.leo-missions__reward,.leo-missions__name{border-radius:0}
.leo-missions__hero{background:linear-gradient(100deg,rgba(222,242,219,.94),rgba(79,190,178,.77)),url('header.png') center 38%/cover no-repeat}
.leo-missions__hero:before{border-radius:0;border-width:0 0 4px 0;transform:rotate(20deg)}
.leo-missions__leaves{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:16px auto 4px}
.leo-missions__leaf{width:32px;height:32px;color:#a6b5a6;filter:grayscale(1);opacity:.58;transform:rotate(-18deg) scale(.9);transition:transform .3s,color .3s,opacity .3s}
.leo-missions__leaf svg{width:30px;height:30px}
.leo-missions__leaf.is-collected{color:#3f9a3c;filter:none;opacity:1;transform:rotate(6deg) scale(1.17)}
.leo-missions__hint{font-size:.85rem;color:#49675c}
.leo-missions__card{overflow:hidden;padding-top:0}
.leo-missions__art{height:130px;margin:0 -23px 19px;background-image:linear-gradient(0deg,rgba(21,80,54,.15),transparent 50%),url('header.png');background-size:auto,290% auto;background-repeat:no-repeat;background-position:center,10% 44%;border-bottom:4px solid var(--leo-accent)}
.leo-missions__card--water .leo-missions__art{background-position:center,65% 78%}
.leo-missions__card--reuse .leo-missions__art{background-position:center,99% 57%}
.leo-missions__card--tree .leo-missions__art{background-position:center,16% 34%}
.leo-missions__card--leaf .leo-missions__art{background-position:center,49% 76%}
.leo-missions__done:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.5)}
.leo-missions__reward{display:grid;grid-template-columns:minmax(180px,36%) 1fr;margin:30px clamp(16px,4vw,48px) 0;background:#e1f3dc;border:2px solid #3d8b6c;overflow:hidden;box-shadow:8px 8px 0 rgba(31,109,86,.16)}
.leo-missions__reward[hidden]{display:none}
.leo-missions__reward-art{min-height:300px;background:linear-gradient(90deg,transparent,rgba(225,243,220,.2)),url('header.png') 39% 62%/auto 150% no-repeat;animation:leo-reveal 1.2s ease-out both}
@keyframes leo-reveal{from{filter:grayscale(1) brightness(.6)}to{filter:grayscale(0) brightness(1)}}
.leo-missions__reward-body{padding:clamp(23px,4vw,48px);align-self:center}
.leo-missions__reward h3{font-family:Georgia,serif;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.18;color:#173d39;margin:13px 0}
.leo-missions__reward p{line-height:1.6}
.leo-missions__name-label{display:block;font-weight:700;margin:20px 0 8px}
.leo-missions__name{display:block;width:min(100%,350px);padding:11px 12px;border:1px solid #4b8970;background:#fff;font:inherit;margin-bottom:14px}
.leo-missions__print{background:var(--leo-accent);color:#fff;font-weight:700;padding:12px 19px;border:0;cursor:pointer}
.leo-missions__print:hover{filter:brightness(.9)}
.leo-missions__certificate{display:none}
@media(max-width:700px){.leo-missions__art{margin-left:-20px;margin-right:-20px}.leo-missions__reward{grid-template-columns:1fr}.leo-missions__reward-art{min-height:160px;background-size:cover;background-position:center 65%}.leo-missions__reward-body{padding:23px}}
@media(prefers-reduced-motion:reduce){.leo-missions__reward-art{animation:none}}
@media print{
  @page{size:A4 portrait;margin:14mm}
  body:has(.leo-missions.is-print-target) *{visibility:hidden!important}
  body .leo-missions.is-print-target .leo-missions__certificate,
  body .leo-missions.is-print-target .leo-missions__certificate *{visibility:visible!important}
  body .leo-missions.is-print-target .leo-missions__certificate{display:flex!important;position:fixed;inset:0;z-index:2147483647;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28mm 18mm;border:6mm double #378772;background:#f8fff4 url('header.png') center top/100% auto no-repeat;color:#173d39;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .leo-missions__certificate:before{content:"";position:absolute;inset:42mm 13mm 14mm;background:rgba(255,255,255,.93);z-index:0}
  .leo-missions__certificate>*{position:relative;z-index:1}
  .leo-missions__certificate-kicker{font-size:11pt;letter-spacing:.15em;color:#176961}
  .leo-missions__certificate h2{font:normal 38pt Georgia,serif;margin:12mm 0 8mm}
  .leo-missions__certificate p{font:16pt Georgia,serif;line-height:1.4;margin:5mm 0}
  .leo-missions__certificate-name{font:24pt Georgia,serif;border-bottom:2px solid #378772;padding:3mm 8mm;min-width:90mm;overflow-wrap:anywhere}
  .leo-missions__certificate h3{font:normal 27pt Georgia,serif;color:#247b69;margin:5mm 0}
  .leo-missions__certificate-sign{font:italic 15pt Georgia,serif;margin-top:12mm}
}
/* v1.2: completion follows the checklist, with a visible path to the award. */
.leo-missions__done{display:inline-block;cursor:default;filter:none!important;opacity:1!important}
.leo-missions__card:not(.is-done) .leo-missions__done{background:#809a88}
.leo-missions__show-reward{display:block;margin:14px auto 0;padding:10px 16px;background:var(--leo-accent);border:0;color:#fff;font-weight:700;cursor:pointer;border-radius:0}
.leo-missions__show-reward[hidden]{display:none}
