/* CAIN-42 Academy — same tokens as the homepage (dark navy, neon CAIN red). */
:root{--bg:#060a17;--raised:#0d1328;--raised2:#111a33;--sunken:#040711;--line:#1a2342;--line2:#2b3760;--text:#eef1f8;--dim:#b4bdd6;
  --faint:#7d87a6;--red:#ff2a3d;--red2:#ff5a67;--ok:#3fb68b;--bad:#e5484d;--warn:#d9a441;--cyan:#22d3ee;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,rgba(255,42,61,.12),transparent 60%),var(--bg);color:var(--text);font:16px/1.65 var(--sans)}
a{color:#ff7a85}a:hover{color:#fff}
.ac-wrap{max-width:1180px;margin:0 auto;padding:0 16px}
code{font:13px var(--mono);background:var(--sunken);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:#ffd1d5;overflow-wrap:anywhere}
.ac-dim{color:var(--faint);font-size:13.5px}

/* header */
.ac-top{position:sticky;top:0;z-index:50;background:rgba(6,10,23,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.ac-topin{display:flex;align-items:center;gap:14px;min-height:62px}
.ac-brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:600;white-space:nowrap}
.ac-brand img{filter:drop-shadow(0 0 6px var(--red));animation:spin 16s linear infinite}
.ac-brand b{color:var(--red2);text-shadow:0 0 10px var(--red)}
.ac-nav{display:flex;flex-wrap:wrap;gap:2px 14px;margin-left:auto;font-size:14px}
.ac-nav a{color:var(--dim);text-decoration:none;padding:6px 0}.ac-nav a:hover{color:#fff}
.ac-nav .ac-home{color:var(--faint)}
.ac-burger{display:none;margin-left:auto;background:none;border:1px solid var(--line2);color:#fff;border-radius:8px;padding:6px 10px;font-size:18px}
@media (max-width:900px){.ac-burger{display:block}.ac-nav{display:none;position:absolute;left:0;right:0;top:62px;background:var(--bg);flex-direction:column;padding:10px 16px;border-bottom:1px solid var(--line)}
  .ac-nav.open{display:flex}}
.ac-crumbs{font-size:13px;color:var(--faint);margin:18px 0 0}.ac-crumbs a{color:var(--dim)}

/* type */
.ac-h1{font-size:clamp(28px,4.4vw,44px);line-height:1.15;margin:22px 0 10px;letter-spacing:-.01em}
.ac-h2{font-size:clamp(20px,2.6vw,26px);margin:34px 0 10px}
.ac-k{font:700 11px/1.2 var(--mono);letter-spacing:.24em;color:var(--red2);text-transform:uppercase;margin:24px 0 0}
.ac-lead{font-size:clamp(16px,1.8vw,19px);color:var(--dim);max-width:72ch}
.ac-sub{color:var(--dim);max-width:80ch}

/* hero */
.ac-hero{position:relative;padding:58px 0 30px;overflow:hidden}
.ac-net{position:absolute;inset:0;width:100%;height:100%;opacity:.55;pointer-events:none}
.ac-hero>*:not(.ac-net){position:relative}
.ac-hero h1{font-size:clamp(34px,6vw,64px);line-height:1.05;margin:10px 0 14px;letter-spacing:-.02em}
.ac-hero h1 span{color:var(--red2);text-shadow:0 0 18px rgba(255,42,61,.7)}
.ac-cta{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
.ac-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line2);background:var(--raised2);color:var(--text);border-radius:11px;padding:11px 16px;
  font:600 14.5px/1.1 var(--sans);text-decoration:none;cursor:pointer;transition:transform .12s,border-color .2s,box-shadow .2s}
.ac-btn:hover{border-color:var(--red);color:#fff;transform:translateY(-1px)}
.ac-btn.p{background:var(--red);border-color:transparent;color:#fff;box-shadow:0 0 18px rgba(255,42,61,.6)}
.ac-btn.ghost{background:transparent}
.ac-btn[disabled]{opacity:.45;cursor:not-allowed}
.ac-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}
@media (max-width:640px){.ac-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ac-stats div{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--raised)}
.ac-stats b{display:block;font:900 clamp(26px,4vw,40px)/1 var(--mono);color:#fff;text-shadow:0 0 12px var(--red)}
.ac-stats span{color:var(--faint);font-size:13px}

/* ladder */
.ac-ladder{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.ac-rung{flex:1 1 220px;display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:14px;border:1px solid var(--line2);background:var(--raised);text-decoration:none;color:var(--text);
  animation:rise .6s both}
.ac-rung:nth-child(3){animation-delay:.15s}.ac-rung:nth-child(5){animation-delay:.3s}
.ac-rung b{font:900 26px/1 var(--mono);color:var(--red2)}.ac-rung span{font-weight:700;font-size:17px}.ac-rung i{font-style:normal;color:var(--faint);font-size:13px}
.ac-rung.n{border-color:var(--red);box-shadow:0 0 20px -6px var(--red)}
.ac-arrow{align-self:center;color:var(--red);font-size:24px;text-shadow:0 0 8px var(--red)}
@media (max-width:760px){.ac-arrow{display:none}}

/* cards */
.ac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
@media (max-width:360px){.ac-grid{grid-template-columns:1fr}}
.ac-card{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:16px;border:1px solid var(--line);border-top:3px solid var(--c,var(--red));background:var(--raised);
  color:var(--text);text-decoration:none;transition:transform .2s,box-shadow .2s;animation:rise .5s both}
.ac-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px var(--c,var(--red))}
.ac-card h3{margin:2px 0;font-size:18px;line-height:1.25}.ac-card p{margin:0;color:var(--dim);font-size:14px;flex:1}
.ac-code{align-self:flex-start;font:800 11px/1 var(--mono);letter-spacing:.14em;padding:5px 8px;border-radius:6px;border:1px solid var(--c,var(--red));color:var(--c,var(--red));background:var(--sunken)}
.ac-code.sm{font-size:10px;padding:3px 6px}
.ac-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ac-tags span{font:600 11.5px/1 var(--mono);padding:6px 8px;border-radius:999px;border:1px solid var(--line2);color:var(--dim)}
.ac-tags span.d{color:#fff;border-color:var(--red)}
.ac-panel{border:1px solid var(--line2);border-radius:16px;padding:20px;background:var(--raised);margin:22px 0}
.ac-panel h2{margin-top:0}
.ac-list{padding-left:20px;color:var(--dim)}.ac-list li{margin:4px 0}
.ac-steps{padding-left:22px;color:var(--dim)}.ac-steps li{margin:12px 0}.ac-steps b{color:var(--text)}
.ac-pill{font:700 11px/1 var(--mono);padding:4px 8px;border-radius:999px;border:1px solid var(--c,var(--red));color:var(--c,var(--red));vertical-align:middle}

/* tables */
.ac-tablew{overflow-x:auto}
.ac-table{width:100%;border-collapse:collapse;font-size:14px;min-width:720px}
.ac-table th{text-align:left;font:700 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:10px;border-bottom:1px solid var(--line2)}
.ac-table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--dim)}.ac-table td b{color:var(--text)}

/* why */
.ac-why-s{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);animation:rise .5s both}
.ac-why-s h2{margin:0 0 6px;font-size:21px}.ac-why-s p{margin:0;color:var(--dim)}
.ac-num{flex:0 0 auto;font:900 34px/1 var(--mono);color:var(--red2);text-shadow:0 0 14px var(--red);min-width:56px}
.ac-dem{border-left:3px solid var(--c);padding:6px 0 6px 16px;margin:16px 0}.ac-dem h3{margin:0 0 4px}.ac-dem p{margin:0;color:var(--dim)}
.ac-src li{margin:6px 0}
.ac-career{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--raised)}.ac-career h3{margin:0 0 6px;font-size:16px}.ac-career p{margin:0}

/* track */
.ac-thero{padding:26px 0 8px;border-bottom:1px solid var(--line)}
.ac-thero h1{font-size:clamp(28px,4.4vw,44px);line-height:1.15;margin:12px 0 8px}
.ac-prog{height:8px;border-radius:5px;background:var(--line);overflow:hidden;margin:16px 0 0;max-width:460px}
.ac-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c),#fff);transition:width 1s ease}
.ac-two{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}@media (max-width:860px){.ac-two{grid-template-columns:1fr}}
.ac-two p{color:var(--dim)}
.ac-mods{display:grid;gap:8px}
.ac-mod{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--raised);text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s}
.ac-mod:hover{border-color:var(--red);transform:translateX(4px)}
.ac-mod b{font:900 20px/1 var(--mono);color:var(--red2);min-width:28px}.ac-mod span{flex:1}.ac-mod i{font-style:normal;color:var(--faint);font-size:13px}
.ac-done{font-style:normal;color:var(--ok);visibility:hidden}.ac-mod.seen .ac-done{visibility:visible}
.ac-code-list{columns:2;color:var(--dim)}@media (max-width:640px){.ac-code-list{columns:1}}

/* lesson */
.ac-lesson{max-width:820px}
.ac-lesson>p{font-size:17px;color:#d6dcec}
.ac-scan{height:2px;margin:6px 0 18px;background:linear-gradient(90deg,transparent,var(--c,var(--red)),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:scan 2.2s linear infinite}
.ac-key,.ac-incode{border:1px solid var(--line2);border-radius:14px;padding:16px 18px;margin:20px 0;background:var(--raised)}
.ac-key{border-left:3px solid var(--c,var(--red))}
.ac-key h2,.ac-incode h2{margin:0 0 8px;font-size:17px}.ac-key ul,.ac-incode ul{margin:0 0 6px;padding-left:20px;color:var(--dim)}
.ac-incode .ac-btn{margin-top:8px}
.ac-pager{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:28px 0 10px}

/* practice / exam questions */
.ac-q{border:1px solid var(--line2);border-radius:14px;padding:16px;background:var(--raised);margin:14px 0;animation:rise .45s both}
.ac-qk{font:700 10.5px/1.2 var(--mono);letter-spacing:.18em;color:var(--red2);text-transform:uppercase;margin:0 0 6px}
.ac-q h4{margin:0 0 12px;font-size:17px;line-height:1.35}
.ac-opts{display:grid;gap:8px}.ac-opts.tf{grid-template-columns:1fr 1fr}
.ac-opt{position:relative;display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line2);background:var(--sunken);color:var(--text);border-radius:10px;padding:11px 12px;
  font:15px/1.35 var(--sans);cursor:pointer;transition:border-color .2s,background .2s,transform .15s;animation:rise .35s both}
.ac-opt:nth-child(2){animation-delay:.06s}.ac-opt:nth-child(3){animation-delay:.12s}.ac-opt:nth-child(4){animation-delay:.18s}
.ac-opt:hover:not([disabled]){border-color:var(--red);transform:translateX(3px)}
.ac-opt kbd{font:700 11px/1 var(--mono);border:1px solid var(--line2);border-radius:5px;padding:4px 6px;color:var(--faint)}
.ac-opt.right{border-color:var(--ok);background:rgba(63,182,139,.16);animation:bump .4s}
.ac-opt.wrong{border-color:var(--bad);background:rgba(229,72,77,.15);animation:shake .4s}
.ac-opt.pick{border-color:var(--red);background:rgba(255,42,61,.2);box-shadow:0 0 14px rgba(255,42,61,.5);animation:bump .3s}
.ac-opt[disabled]{cursor:default}
.ac-why{margin-top:10px;padding:10px 12px;border-left:3px solid var(--red);background:var(--sunken);border-radius:0 8px 8px 0;color:var(--dim);font-size:14.5px;animation:rise .3s both}
.ac-why.r{border-color:var(--ok)}

/* exam */
.ac-exam{max-width:900px;margin:0 auto;padding-bottom:30px}
.ac-clock{display:flex;align-items:center;justify-content:center;gap:22px;margin:16px 0 10px;padding:10px;border:1px solid #5a1a22;border-radius:16px;
  background:radial-gradient(80% 140% at 50% 0%,rgba(255,42,61,.18),transparent 70%)}
.ac-clock small{display:block;font:700 11px/1 var(--mono);letter-spacing:.3em;color:#ff7a85;text-align:center}
.ac-clock b{display:block;font:900 clamp(54px,11vw,104px)/1 var(--mono);color:#fff;text-shadow:0 0 10px var(--red),0 0 30px var(--red),0 0 60px rgba(255,10,34,.6)}
.ac-clock.warn b{color:#ffb3b9;animation:glow 1s infinite}.ac-clock.crit b{color:var(--red);animation:glow .45s infinite}
.ac-pace{position:relative;width:clamp(70px,13vw,110px);height:clamp(70px,13vw,110px)}
.ac-pace svg{width:100%;height:100%}.ac-pace .arc{transition:stroke-dashoffset .25s linear;filter:drop-shadow(0 0 6px var(--red))}
.ac-pace span{position:absolute;inset:0;display:grid;place-items:center;font:800 clamp(18px,3.4vw,28px)/1 var(--mono)}
.ac-pace.over{animation:shake .5s infinite}.ac-pace.over span{color:var(--red)}
.ac-eprog{font:600 13px var(--mono);color:var(--dim);margin:6px 0}
.ac-estage{position:relative;min-height:280px;overflow:hidden}
.ac-ecard{animation:inr .42s cubic-bezier(.2,1.3,.4,1)}.ac-ecard.inl{animation:inl .42s cubic-bezier(.2,1.3,.4,1)}
.ac-ecard.outl{position:absolute;inset:0 0 auto 0;animation:outl .38s forwards}.ac-ecard.outr{position:absolute;inset:0 0 auto 0;animation:outr .38s forwards}
.ac-enav{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.ac-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ac-in{flex:1 1 260px;min-width:0;background:var(--sunken);border:1px solid var(--line2);color:var(--text);border-radius:10px;padding:11px 12px;font:15px var(--mono);margin:6px 0}
.ac-in:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(255,42,61,.2)}
.ac-res{text-align:center;padding:12px 0;animation:rise .5s both}
.ac-ring{width:160px;height:160px;margin:0 auto}
.ac-stamp{display:inline-block;font:900 26px/1 var(--mono);letter-spacing:.14em;padding:10px 18px;border:3px solid;border-radius:10px;margin:12px 0;
  transform:rotate(-8deg) scale(2.4);opacity:0;animation:stamp .5s .9s cubic-bezier(.3,1.6,.5,1) forwards}
.ac-stamp.pass{color:var(--ok)}.ac-stamp.fail{color:var(--red)}
.ac-vout{margin-top:12px}
.ac-vcard{border:1px solid var(--ok);border-radius:14px;padding:16px;background:rgba(63,182,139,.08);animation:rise .4s both}
.ac-vcard.bad{border-color:var(--red);background:rgba(255,42,61,.08)}
.ac-mycert{margin:10px 0}
.ac-gloss{display:grid;gap:8px}.ac-term{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--raised)}.ac-term dt{font-weight:700}.ac-term dd{margin:2px 0 0;color:var(--dim)}
.ac-faq{border:1px solid var(--line);border-radius:12px;padding:12px 16px;background:var(--raised);margin:8px 0}.ac-faq summary{cursor:pointer;font-weight:600}.ac-faq p{color:var(--dim)}
.ac-burst{position:absolute;width:8px;height:8px;border-radius:2px;pointer-events:none;animation:burst .9s ease-out forwards}

/* footer */
.ac-foot{margin-top:50px;border-top:1px solid var(--line);padding:20px 0 30px;color:var(--dim);font-size:14px}
.ac-foot img{vertical-align:middle}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
@keyframes scan{from{background-position:-40% 0}to{background-position:140% 0}}
@keyframes bump{50%{transform:scale(1.03)}}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@keyframes glow{50%{opacity:.45}}
@keyframes inr{from{opacity:0;transform:translateX(60px) rotate(2deg)}}
@keyframes inl{from{opacity:0;transform:translateX(-60px) rotate(-2deg)}}
@keyframes outl{to{opacity:0;transform:translateX(-140px) rotate(-10deg)}}
@keyframes outr{to{opacity:0;transform:translateX(140px) rotate(10deg)}}
@keyframes stamp{to{transform:rotate(-8deg);opacity:1}}
@keyframes burst{to{transform:translate(var(--bx),var(--by)) rotate(540deg);opacity:0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
