/* DUKOIN Academy (W3) — catalogue, reader, quiz, challenges, badges, certificates.
   Warm FUN FUTURE palette; mobile-first. Shared by the app (/app/academy) and public pages (/academy/). */
:root{--ac-y:var(--yellow,#FFC93C);--ac-o:var(--orange,#FF6B2C);--ac-r:var(--red,#FF2E3A);--ac-camel:var(--camel,#D4A373);--ac-cream:var(--cream,#FFF8EC);--ac-butter:var(--butter,#FFF3C9);--ac-disp:var(--display,"Unbounded","Montserrat",system-ui,sans-serif)}
[data-theme="dark"]{--ac-cream:#211B12;--ac-butter:#2A2414}

.ac-eyebrow{display:block;font:600 .7rem/1.3 var(--mono,ui-monospace,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--camel-2,#A8774A)}
.ac-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ac-row--cta{margin:18px 0 10px;gap:10px}
.ac-foot{margin:22px 0 8px}
.ac-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--ink-2);font-size:.74rem;font-weight:600;white-space:nowrap}
.ac-pill svg{width:13px;height:13px}
.ac-pill--free{background:var(--mint-bg);color:#00875F}
.ac-pill--pro{background:var(--ac-butter);color:#8A5A00}
.ac-pill--done{background:var(--up-bg);color:var(--up)}
[data-theme="dark"] .ac-pill--free{color:var(--mint)}[data-theme="dark"] .ac-pill--pro{color:var(--ac-y)}

.ac-bar{display:block;height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:8px 0 4px}
.ac-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ac-y),var(--ac-o));transition:width .6s}

/* hero / level */
.ac-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr);gap:16px;align-items:center;padding:18px;border-radius:20px;background:linear-gradient(135deg,var(--ac-cream),var(--ac-butter));border:1px solid var(--line);margin-bottom:14px}
.ac-hero__lvl{display:flex;gap:14px;align-items:center;min-width:0}
.ac-hero__lvl>div{flex:1;min-width:0}
.ac-hero__xp{display:block;font:700 1.5rem/1.1 var(--ac-disp);margin:4px 0 0}
.ac-lvl{--p:0;flex:none;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:conic-gradient(var(--ac-o) calc(var(--p)*1%),var(--line) 0);position:relative}
.ac-lvl::before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--card)}
.ac-lvl b{position:relative;font:700 1.35rem var(--ac-disp)}
.ac-lvl--lg{width:116px;height:116px;margin:0 auto 10px}.ac-lvl--lg::before{inset:10px}.ac-lvl--lg b{font-size:1.4rem}
.ac-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ac-stats div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;min-width:0}
.ac-stats b{display:block;font:700 1.15rem var(--ac-disp)}
.ac-stats small{display:block;font-size:.72rem;color:var(--mute);line-height:1.3}
@media (max-width:820px){.ac-hero{grid-template-columns:1fr}.ac-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.ac-next{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:var(--ink);color:#fff!important;text-decoration:none;margin-bottom:14px}
.ac-next small{display:block;opacity:.7;font-size:.76rem}.ac-next b{display:block;font-size:1rem}
.ac-next>span:nth-child(2){flex:1;min-width:0}
.ac-next svg{width:20px;height:20px;flex:none}
.ac-next__ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ac-y);color:var(--ink);flex:none}

/* tabs */
.ac-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 16px;padding-bottom:2px;position:sticky;top:0;z-index:5;background:var(--paper)}
.ac-tabs::-webkit-scrollbar{display:none}
.ac-tabs a{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-weight:600;font-size:.88rem;text-decoration:none;white-space:nowrap;color:var(--ink-2)}
.ac-tabs a svg{width:16px;height:16px}
.ac-tabs a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--paper)}

/* starter + tracks */
.ac-starter,.ac-pstarter{display:flex;align-items:center;gap:14px;padding:16px;margin-bottom:18px;text-decoration:none;border-radius:18px}
.ac-pstarter{background:var(--ac-butter);border:1px solid var(--line)}
.ac-starter__ico,.ac-pstarter__ico{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--ac-y);flex:none}
.ac-starter__ico svg,.ac-pstarter__ico svg{width:24px;height:24px}
.ac-starter__txt,.ac-pstarter>span:nth-child(2){flex:1;min-width:0}
.ac-starter b,.ac-pstarter b{display:block;font-size:1.05rem}
.ac-starter small,.ac-pstarter small{display:block;color:var(--mute);font-size:.84rem}
.ac-pstarter>svg{width:20px;height:20px;flex:none}
.ac-starter__pct{text-align:right;flex:none}.ac-starter__pct b{font:700 1.2rem var(--ac-disp)}
.ac-track,.ac-ptrack{margin:0 0 26px}
.ac-track__head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.ac-track__head>div{flex:1;min-width:0}
.ac-track__head h2{margin:2px 0 0;font-size:1.25rem}
.ac-track__head p{margin:4px 0 0}
.ac-track__ico{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--ac-butter);flex:none}
.ac-track__ico svg{width:22px;height:22px}
.ac-track--mint .ac-track__ico{background:var(--mint-bg)}.ac-track--lav .ac-track__ico{background:var(--lav)}.ac-track--coral .ac-track__ico{background:var(--coral-bg)}.ac-track--sky .ac-track__ico{background:var(--sky-bg)}
.ac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:10px}
.ac-mod{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:18px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .15s,border-color .15s,box-shadow .15s}
.ac-mod:hover{transform:translateY(-2px);border-color:var(--ac-camel);box-shadow:0 10px 24px rgba(168,119,74,.12)}
.ac-mod b{font-size:1.02rem;line-height:1.25}
.ac-mod small{color:var(--mute);font-size:.84rem;line-height:1.4}
.ac-mod__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.ac-mod__ico{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--ac-cream);color:var(--ac-o);border:1px solid var(--line);flex:none}
.ac-mod__ico svg{width:19px;height:19px}
.ac-mod__ico--lg{width:56px;height:56px;border-radius:16px}.ac-mod__ico--lg svg{width:28px;height:28px}
.ac-mod__meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px;font-size:.74rem;color:var(--mute);font-weight:500}
.ac-mod.is-locked{background:var(--soft)}
.ac-mod.is-done .ac-mod__ico{background:var(--up-bg);color:var(--up);border-color:transparent}

/* module / lessons */
.ac-crumbs{font-size:.82rem;color:var(--mute);margin:0 0 12px;font-weight:500}
.ac-crumbs a{color:var(--ink-2)}
.ac-modhead{display:flex;gap:16px;align-items:flex-start;margin:4px 0 18px}
.ac-modhead h1{margin:10px 0 6px;font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:-.03em}
.ac-modhead p{margin:0;color:var(--ink-2)}
@media (max-width:560px){.ac-modhead{flex-direction:column;gap:8px}}
.ac-lessons{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ac-lessons a{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.ac-lessons a:hover{border-color:var(--ac-camel)}
.ac-lessons a>span:nth-child(2){flex:1;min-width:0}
.ac-lessons b{display:block}.ac-lessons small{display:block;color:var(--mute);font-size:.84rem;margin-top:2px}
.ac-num{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ac-butter);font:700 .9rem var(--ac-disp);flex:none}
.ac-num svg{width:16px;height:16px}
.ac-lessons li.is-done .ac-num{background:var(--up-bg);color:var(--up)}
.ac-modch{margin-top:18px}.ac-modch h2{margin:0;font-size:1.1rem}
.ac-modch__row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.ac-modch__row>b{flex:1;font-size:.92rem}.ac-modch__row svg{width:18px;height:18px}

/* upgrade */
.ac-upgrade{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;background:var(--ac-butter);border:1px dashed var(--ac-camel);margin:16px 0}
.ac-upgrade>div{flex:1;min-width:0}
.ac-upgrade__ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--card);flex:none}
.ac-upgrade__ico svg{width:20px;height:20px}
@media (max-width:560px){.ac-upgrade{flex-wrap:wrap}.ac-upgrade .btn{width:100%}}

/* reader */
.ac-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:80;pointer-events:none}
.ac-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ac-y),var(--ac-o),var(--ac-r))}
.ac-reader{max-width:720px}
.ac-reader h1{font-size:clamp(1.6rem,4.4vw,2.4rem);letter-spacing:-.03em;margin:12px 0 8px;line-height:1.15}
.ac-lede{font-size:1.08rem;color:var(--ink-2);margin:0 0 18px}
.ac-body{font-size:1.04rem;line-height:1.7;color:var(--ink)}
.ac-body h3{font-size:1.2rem;margin:28px 0 8px}
.ac-body h4{font-size:1.02rem;margin:20px 0 6px}
.ac-body p{margin:0 0 14px}
.ac-body ul,.ac-body ol{padding-left:22px;margin:0 0 14px}
.ac-body li{margin:4px 0}
.ac-body blockquote{margin:16px 0;padding:10px 16px;border-left:4px solid var(--ac-y);background:var(--ac-cream);border-radius:0 12px 12px 0}
.ac-body table{width:100%;border-collapse:collapse;font-size:.92rem;margin:12px 0 18px;display:block;overflow-x:auto}
.ac-body th,.ac-body td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.ac-body th{background:var(--soft);font-weight:600}
.ac-example,.ac-warn,.ac-try{margin:18px 0;padding:14px 16px;border-radius:16px;font-size:.98rem}
.ac-example{background:var(--ac-cream);border:1px solid var(--ac-camel)}
.ac-example>strong:first-child,.ac-warn>strong:first-child,.ac-try>strong:first-child{display:block;font:600 .72rem var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px;color:var(--camel-2,#A8774A)}
.ac-warn{background:var(--coral-bg);border:1px solid rgba(255,46,58,.25)}
.ac-warn>strong:first-child{color:var(--ac-r)}
.ac-try{background:var(--sky-bg);border:1px solid rgba(30,155,255,.2)}
.ac-example p:last-child,.ac-warn p:last-child,.ac-try p:last-child{margin-bottom:0}
.ac-video{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;margin:0 0 20px;background:#000}
.ac-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ac-take{margin:22px 0;padding:16px 18px;border-radius:18px;background:var(--ac-butter);border:1px solid var(--line)}
.ac-take h2{margin:0 0 8px;font-size:1.05rem}
.ac-take ul{margin:0;padding-left:20px}.ac-take li{margin:5px 0}
.ac-done{margin:18px 0}.ac-done .btn{width:100%;max-width:360px}
.ac-pn{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:20px 0}
.ac-pn .btn{max-width:100%;white-space:normal;text-align:left;height:auto;padding-top:8px;padding-bottom:8px}
.ac-cta{display:flex;align-items:center;gap:14px;margin:18px 0}
.ac-cta>div{flex:1}
@media (max-width:560px){.ac-cta{flex-direction:column;align-items:stretch}.ac-pn .btn{width:100%}}

/* quiz */
.ac-quiz{max-width:720px}
.ac-quiz__top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ac-quiz h2{font-size:1.25rem;margin:14px 0}
.ac-opts{display:grid;gap:8px}
.ac-opt{display:flex;gap:12px;align-items:flex-start;width:100%;padding:13px 14px;border-radius:14px;border:1.5px solid var(--line-2);background:var(--card);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.ac-opt:hover:not(:disabled){border-color:var(--ac-o);background:var(--ac-cream)}
.ac-opt:disabled{cursor:default}
.ac-opt small{display:block;margin-top:6px;font-size:.86rem;color:var(--ink-2);line-height:1.45}
.ac-opt__k{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--soft);font-weight:700;font-size:.85rem;flex:none}
.ac-opt.is-right{border-color:var(--up);background:var(--up-bg)}.ac-opt.is-right .ac-opt__k{background:var(--up);color:#fff}
.ac-opt.is-wrong{border-color:var(--dn);background:var(--dn-bg)}.ac-opt.is-wrong .ac-opt__k{background:var(--dn);color:#fff}
.ac-opt.is-dim{opacity:.55}
.ac-verdict{font-weight:600;margin:12px 0 0}
.ac-verdict.is-right{color:var(--up)}.ac-verdict.is-wrong{color:var(--dn)}
.ac-result{text-align:center;max-width:560px;margin:0 auto;padding:28px 18px}
.ac-result h2{margin:6px 0}
.ac-result.is-pass{background:linear-gradient(180deg,var(--ac-butter),var(--card))}

/* challenges */
.ac-note{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px}
.ac-note svg{width:18px;height:18px;flex:none;margin-top:2px}
.ac-chs{display:grid;gap:10px}
.ac-ch{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:16px;border-radius:18px;background:var(--card);border:1px solid var(--line)}
.ac-ch h3{margin:4px 0 6px;font-size:1.02rem}
.ac-ch p{margin:0 0 4px}
.ac-ch__ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--ac-butter);flex:none}
.ac-ch__ico svg{width:20px;height:20px}
.ac-ch.is-done{background:var(--soft)}
.ac-ch.is-done .ac-ch__ico{background:var(--up-bg);color:var(--up)}
@media (max-width:560px){.ac-ch{grid-template-columns:auto 1fr}.ac-ch__cta{grid-column:1/-1}.ac-ch__cta .btn{width:100%}}
.ac-review{margin-top:18px}.ac-review h2{margin:0 0 4px;font-size:1.15rem}
.ac-form{display:grid;gap:12px;margin-top:10px}
.ac-form .field span{display:block;font-size:.86rem;font-weight:600;margin-bottom:4px}
.ac-form textarea{width:100%;resize:vertical;min-height:64px}
.ac-past{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--soft)}
.ac-past summary{cursor:pointer;font-weight:600;font-size:.9rem}

/* badges */
.ac-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px}
.ac-badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:16px 10px;border-radius:18px;background:var(--soft);border:1px solid var(--line);color:var(--mute)}
.ac-badge b{color:var(--ink-2);font-size:.92rem}
.ac-badge small{font-size:.76rem;line-height:1.35}
.ac-badge__medal{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--line);margin-bottom:6px}
.ac-badge__medal svg{width:26px;height:26px}
.ac-badge.is-earned{background:var(--card);color:var(--ink-2)}
.ac-badge.is-earned b{color:var(--ink)}
.ac-badge.is-earned .ac-badge__medal{background:radial-gradient(circle at 35% 30%,#FFE7A3,var(--ac-y) 55%,var(--ac-o));color:var(--ink);box-shadow:0 6px 18px rgba(255,107,44,.25)}

/* certificates */
.ac-certs{display:grid;gap:10px}
.ac-cert-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
@media (max-width:560px){.ac-cert-row{grid-template-columns:auto 1fr}.ac-cert-row>div:last-child{grid-column:1/-1}.ac-cert-row .btn{width:100%}}

/* public pages */
.ac-page{padding:24px 0 20px}
.ac-psec .ac-ptrack{padding:18px;border-radius:24px;background:var(--card);border:1px solid var(--line)}
.ac-how{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;margin-bottom:22px}
.ac-how h3{margin:10px 0 4px}
.ac-honest{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.ac-certpage{text-align:center;padding:clamp(24px,6vw,56px) clamp(16px,5vw,48px);border-radius:28px;background:linear-gradient(180deg,var(--ac-cream),var(--card));border:2px solid var(--ac-camel);margin:10px 0 60px;position:relative}
.ac-certpage__seal{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFE7A3,var(--ac-y) 55%,var(--ac-o))}
.ac-certpage__seal svg{width:34px;height:34px}
.ac-certpage__small{margin:14px 0 4px;color:var(--mute)}
.ac-certpage__name{font:700 clamp(1.8rem,6vw,3rem)/1.1 var(--ac-disp);margin:6px 0;letter-spacing:-.02em;word-break:break-word}
.ac-certpage__track{font-size:clamp(1.2rem,4vw,1.7rem);margin:6px 0 14px;color:var(--ac-o)}
.ac-certpage__mods{list-style:none;padding:0;margin:0 auto 18px;max-width:520px;display:grid;gap:6px;font-size:.92rem}
.ac-certpage__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px;margin:18px 0}
.ac-certpage__meta div{padding:10px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.ac-certpage__meta small{display:block;color:var(--mute);font-size:.74rem}
.ac-certpage__note{max-width:560px;margin:12px auto}
@media print{.ph,.msheet,footer,.ac-row--cta{display:none!important}.ac-certpage{border-width:3px;margin:0}}
