@font-face{font-family:"DM Sans";src:url(/assets/fonts/dm-sans-var.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}
/* Brand: Mix Artistry site globals (primary #5F21CE, deep #39137B, ink #17151F, body #5B5770, light #F2F0F5, lines #E4E2EC) */
:root{--ink:#17151F;--paper:#F7F6FA;--accent:#5F21CE;--deep:#39137B;--muted:#5B5770;--line:#E4E2EC;--light:#F2F0F5;--teal:#1AE7BE}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 "DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3{letter-spacing:-.01em}h1{font-weight:800}h2,h3{font-weight:700}
.wrap{max-width:640px;margin:0 auto;padding:32px 20px}
.brand{font-weight:600;letter-spacing:.04em;color:var(--muted);margin:0 0 24px}
h1{font-size:1.7rem;line-height:1.2;margin:0 0 16px}
label{display:block;margin:16px 0 6px;font-weight:600}
input[type=email],input[inputmode=numeric]{width:100%;padding:12px;border:1px solid #c9c3d3;border-radius:6px;font-size:1rem}
.btn{display:inline-block;margin-top:16px;padding:12px 20px;border:0;border-radius:8px;background:var(--accent);color:#fff;font:600 .95rem/1.2 "DM Sans",system-ui,sans-serif;letter-spacing:.02em;cursor:pointer;text-decoration:none}.btn:hover{background:var(--deep)}
.btn.secondary{background:var(--light);color:var(--deep);box-shadow:inset 0 0 0 1px var(--line)}.btn.secondary:hover{background:#e9e4f5}
.btn:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #f0b429;outline-offset:2px}
.note{padding:12px;border-left:4px solid var(--accent);background:#efeaf7}
details{margin-top:28px}
summary{cursor:pointer;color:var(--accent)}
.cf-turnstile{margin-top:16px;min-height:65px}
.player{position:relative;aspect-ratio:16/9;background:#111;border-radius:8px;display:flex;align-items:center;justify-content:center}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:8px}
.readout{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}
table{border-collapse:collapse;width:100%;font-size:.85rem}td,th{border-bottom:1px solid #ddd;padding:4px;text-align:left;vertical-align:top}
pre,code{white-space:pre-wrap;word-break:break-word;font-size:.85rem}
.muted{color:var(--muted)}
h2{font-size:1.25rem;margin:28px 0 10px}h3{font-size:1.05rem;margin:20px 0 8px}
body.admin{font-size:15px}
.adminbar{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:10px 20px;background:var(--deep);color:#fff}
.adminbar a{color:#fff;text-decoration:none}.adminbar nav{display:flex;gap:16px;flex-wrap:wrap}.adminbar .brand{margin:0;font-weight:700;color:#fff}.adminbar .who{margin-left:auto;opacity:.75;font-size:.85rem}
.wide{max-width:1150px;margin:0 auto;padding:20px}
.banner{padding:10px 14px;border-radius:6px;margin:0 0 16px}.banner.ok{background:#e3f4e8;border-left:4px solid #2e7d4f}.banner.err{background:#fbe6e6;border-left:4px solid #b3261e}.banner.warn{background:#fff4d6;border-left:4px solid #b7791f}
section{background:#fff;border:1px solid #e6e1ee;border-radius:8px;padding:4px 18px 18px;margin-bottom:18px}
.stack{display:flex;flex-direction:column;gap:6px;max-width:560px}.stack label{margin:8px 0 0}
.stack input:not([type=checkbox]):not([type=radio]),.stack select,.stack textarea,.row input,.row select,select,textarea{padding:8px;border:1px solid #c9c3d3;border-radius:6px;font:inherit}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.row .btn{margin-top:0}
fieldset.inline{border:1px solid #e6e1ee;border-radius:6px;margin:10px 0;padding:8px 12px}fieldset.inline label{display:block;font-weight:400;margin:6px 0}
.mini{display:inline-flex;gap:6px;align-items:center;margin:4px 8px 4px 0}.mini .btn{margin-top:0}
.btn.small{padding:6px 10px;font-size:.85rem}.btn.danger{background:#b3261e}
td.actions{min-width:300px}
.tag{font-size:.7rem;background:#efeaf7;color:var(--accent);border-radius:4px;padding:1px 5px;vertical-align:middle}
.state{font-size:.8rem;border-radius:4px;padding:1px 6px;background:#eee}.state.active{background:#e3f4e8}.state.expired,.state.revoked,.state.blocked{background:#fbe6e6}
.health{list-style:none;padding:0}.health li{margin:6px 0}.health .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.health .good .dot{background:#2e7d4f}.health .bad .dot{background:#b3261e}
ul.plain{padding-left:18px}
.sr{position:absolute;left:-9999px}
table.list td{vertical-align:middle}
.unit{background:#fff;border:1px solid #e6e1ee;border-radius:8px;padding:8px 20px}
.unit img{max-width:100%;height:auto}.unit table{font-size:.95rem}
.component{padding:10px;background:#f3f0f8;border-radius:6px}
:focus-visible{outline:3px solid #f0b429;outline-offset:2px}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:8px;background:#fff;padding:8px;z-index:10}
.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 20px;background:var(--accent);color:#fff}
.topbar a,.topbar .linklike{color:#fff;text-decoration:none}.topbar a:hover,.topbar .linklike:hover{text-decoration:underline}.topbar .brand{margin:0;font-weight:800;color:#fff;letter-spacing:.02em}
.topbar nav{margin-left:auto;display:flex;gap:16px;align-items:center}
form.inline{display:inline}.linklike{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline}
.wrap.wide-unit{max-width:820px}
.card{background:#fff;border:1px solid #e6e1ee;border-radius:10px;padding:6px 20px 16px;margin:16px 0}
.card h2 a{color:var(--ink)}
.progress{height:10px;background:#e6e1ee;border-radius:6px;overflow:hidden;margin:8px 0}
.progress span{display:block;height:100%;background:var(--accent)}
.w0{width:0%}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w35{width:35%}.w40{width:40%}.w45{width:45%}.w50{width:50%}.w55{width:55%}.w60{width:60%}.w65{width:65%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}.w95{width:95%}.w100{width:100%}
.crumbs{font-size:.9rem;color:var(--muted);margin:0 0 6px}.crumbs a{color:var(--muted)}
.small{font-size:.8rem}
.week{margin:22px 0}.week h2{border-bottom:2px solid #e6e1ee;padding-bottom:4px}
.week h3{font-size:1rem;margin:14px 0 4px}
ol.units{list-style:none;padding:0;margin:0}
ol.units li{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid #f0edf4}
ol.units li a{color:var(--ink)}ol.units li a[aria-current]{font-weight:700}
.tick{flex:none;width:16px;height:16px;border-radius:50%;border:2px solid #c9c3d3;position:relative;top:3px}
li.done .tick{background:#2e7d4f;border-color:#2e7d4f}
li.locked{color:var(--muted)}li.locked .tick{border-style:dashed}
.lock{font-size:.8rem;color:#7a5b00;background:#fff4d6;border-radius:4px;padding:1px 6px;white-space:nowrap}
.unit{background:#fff;border:1px solid #e6e1ee;border-radius:10px;padding:8px 20px;margin:12px 0}
.unit img{max-width:100%;height:auto}.unit table{width:100%;font-size:.95rem}.unit figure{margin:16px 0}
.unit .aligncenter,.unit .has-text-align-center{text-align:center;margin-left:auto;margin-right:auto}
.unit blockquote{border-left:4px solid var(--accent);margin:16px 0;padding:4px 16px;background:#f7f5fb}
.unit pre{background:#1f1a2e;color:#f3ead7;padding:12px;border-radius:6px;overflow:auto}
figure.video{position:relative;aspect-ratio:16/9;margin:16px -8px;background:#111;border-radius:8px;overflow:hidden}
figure.video .play{position:absolute;inset:0;width:100%;border:0;padding:0;background:#111;cursor:pointer;color:#fff}
figure.video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
figure.video .playicon{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:rgba(91,63,160,.92)}
figure.video .playicon:after{content:"";position:absolute;left:29px;top:22px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent #fff}
figure.video .vlabel{position:absolute;left:12px;bottom:10px;background:rgba(0,0,0,.65);padding:2px 8px;border-radius:4px;font-size:.9rem}
figure.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.embed iframe{width:100%;min-height:680px;border:0}
.tool-card{padding:12px;background:#f3f0f8;border-radius:8px}
.download{display:inline-block;padding:10px 14px;border:1px solid var(--accent);border-radius:6px}
.unit-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.unit-actions .btn{margin-top:0}
.unit-nav{display:flex;justify-content:space-between;gap:12px;margin:16px 0;flex-wrap:wrap}
details.outline{margin:24px 0}details.outline .week.compact h2{font-size:1.05rem}
@media (max-width:600px){body{font-size:16px}.wrap{padding:20px 14px}figure.video{margin:12px -14px;border-radius:0}.topbar nav{margin-left:0}}
.adminview{margin:0;border-radius:0}
.preview-controls label{display:inline-flex;gap:6px;align-items:center;margin:0;font-weight:400}
.stack input:not([type=checkbox]):not([type=radio]),.stack textarea{width:100%;padding:10px;border:1px solid #c9c3d3;border-radius:6px;font:inherit}
fieldset.inline label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}fieldset.inline input[type=radio],fieldset.inline input[type=checkbox]{width:auto;margin:0}

/* Desktop: LearnDash-style focus layout, outline in a sticky sidebar. Mobile keeps the collapsible outline. */
.unit-layout{display:block}
@media (min-width:1000px){
  .wrap.wide-unit{max-width:1280px}
  .unit-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}
  .unit-layout > .unit-main{min-width:0}
  .unit-layout > details.outline{order:2;margin:0;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 14px}
  .unit-layout > details.outline > summary{font-weight:700;color:var(--deep)}
  .wrap.wide-course{max-width:980px}
}
/* Per-viewer watermark on videos (pointer-events off so the player stays usable). */
figure.video .wm{position:absolute;z-index:3;pointer-events:none;opacity:.45;color:#c4c4c8;text-shadow:0 0 1px #000,0 0 2px #000,0 1px 2px rgba(0,0,0,.8);font:700 clamp(10px,1.15vw,13px)/1.2 "DM Sans",sans-serif;letter-spacing:.02em;max-width:60%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* One look all the time (Dan, 17 Oct): soft grey with a dark edge, easy to ignore, readable on light and dark scenes. */
figure.video .wm.tl{top:4%;left:3%}figure.video .wm.tr{top:4%;right:3%}figure.video .wm.bl{bottom:16%;left:3%}figure.video .wm.br{bottom:16%;right:3%}
figure.video .fs{position:absolute;z-index:4;top:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;border:0;border-radius:6px;padding:4px 8px;font-size:.8rem;cursor:pointer}
figure.video:fullscreen{width:100%;height:100%;aspect-ratio:auto;margin:0;border-radius:0}
.tick{border-color:#c8c5d6}li.done .tick{background:var(--accent);border-color:var(--deep)}

/* Copy protection on unit text (Dan, 11 Oct): no selecting, copying or printing course pages.
   Form fields stay usable. Screenshots can't be blocked by a web page; the watermark covers videos. */
.student .unit-html,.student .unit h1,.student .unit-main h1{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
@media print{.student main{display:none}.student:after{content:"Printing is not available for course pages.";display:block;padding:40px;font:18px sans-serif}}
.topbar .brand img{display:block;height:40px;width:auto;background:#fff;border-radius:8px;padding:3px 8px}
.adminbar .brand img{display:block;height:32px;width:auto;background:#fff;border-radius:6px;padding:2px 6px}
.brand .logo{display:block;height:64px;width:auto}
/* Resources (3b) */
.tool-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.tool-card a{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink);height:100%}
.tool-card a:hover{border-color:var(--accent)}
.tool-card.locked a{background:var(--light)}
.tool-card .tag{align-self:flex-start}
.tool-frame{display:block;width:100%;height:calc(100vh - 150px);min-height:600px;border:1px solid var(--line);border-radius:10px;background:#101015}
.crumbs{font-size:.9rem;margin:0 0 8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.upgrade-panel{border-left:4px solid var(--accent)}
/* Resources, dark (matches the live mixartistry.com Resources page: Poppins headings, DM Sans text) */
@font-face{font-family:'Poppins';src:url(/assets/fonts/poppins-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Poppins';src:url(/assets/fonts/poppins-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Poppins';src:url(/assets/fonts/poppins-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Poppins';src:url(/assets/fonts/poppins-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Poppins';src:url(/assets/fonts/poppins-800.woff2) format('woff2');font-weight:800;font-display:swap}
body.dark{background:#0b0b11;background-image:radial-gradient(1100px 520px at 15% -10%,rgba(95,33,206,.28),transparent 60%),radial-gradient(900px 520px at 100% 0%,rgba(26,231,190,.07),transparent 55%);background-repeat:no-repeat;color:#e8eaed}
body.dark main a{color:#c9b5ff}
body.dark .crumbs a{color:#1ae7be}
body.dark .muted{color:#9ca3af}
.rs{max-width:1180px;margin:0 auto}
.rs-h1,.rs-h2,.rs .rs-group h3,.rs-card .n,.rs-kicker{font-family:'Poppins',system-ui,sans-serif}
.rs-kicker{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#1ae7be;margin:8px 0 6px}
.rs-h1{font-weight:700;text-transform:uppercase;font-size:clamp(30px,5vw,48px);letter-spacing:.01em;color:#fff;margin:0 0 26px}
.rs-h2{font-weight:700;text-transform:uppercase;font-size:clamp(22px,3vw,30px);color:#fff;margin:0 0 6px}
.rs section.rs-sec{background:none;border:0;border-radius:0;padding:0;margin:0 0 44px}
body.dark .wrap.wide-unit{max-width:1220px}
.rs .gs{color:#a6a8b8;font-size:15px;margin:0 0 16px}
.rs-note{color:#b9bbcc}
.rs-group{margin-bottom:26px}
.rs .rs-group h3{font-weight:600;font-size:21px;letter-spacing:-.03em;color:#fff;margin:0 0 2px}
.rs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:13px}
.rs a.rs-card{display:flex;flex-direction:column;gap:9px;padding:20px 22px;background:#0e0e13;border:1px solid rgba(255,255,255,.10);border-radius:14px;color:inherit;text-decoration:none;transition:border-color .16s,transform .16s,box-shadow .16s;box-shadow:0 14px 30px rgba(0,0,0,.32)}
.rs a.rs-card:hover{border-color:rgba(26,231,190,.45);transform:translateY(-2px);box-shadow:0 18px 38px rgba(0,0,0,.46)}
.rs a.rs-card.locked .n{color:#d6d3e3}
.rs-card .n{font-weight:400;font-size:23px;color:#fff;line-height:1.25}
.rs-card .d{color:#b9bbcc;font-size:15px;line-height:1.65}
.rs-card .f{display:flex;align-items:center;gap:8px;margin-top:auto;flex-wrap:wrap}
.rs-tag{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a06ef5;border:1px solid rgba(160,110,245,.38);border-radius:6px;padding:3px 8px}
.rs-tag.hv{color:#1ae7be;border-color:rgba(26,231,190,.45)}
.rs-tag.soon{color:#9494b0;border-color:rgba(148,148,176,.35)}
.rs-card .go{margin-left:auto;color:#9494b0;font-size:12px}
.rs-card:hover .go{color:#1ae7be}
.rs-search{margin:0 0 22px}
.rs-search input{width:100%;background:#14141a;border:1px solid #38383f;color:#e8eaed;font-family:inherit;font-size:14px;padding:12px 16px;border-radius:11px}
.rs-search input:focus{border-color:#1ae7be;outline:none}
.rs-empty{color:#8f92a8;text-align:center}
body.dark .tool-frame{border-color:#2a2a35}
body.dark .upgrade-panel,body.dark .card{background:rgba(16,16,30,.7);border-color:rgba(255,255,255,.1);color:#e8eaed}
@media (max-width:720px){.rs-grid{grid-template-columns:1fr}}
/* Phone: the menu sits under the logo and wraps whole items (5 tabs + Sign out). */
@media (max-width:600px){.topbar nav{margin-left:0;width:100%;flex-wrap:wrap;gap:6px 16px;font-size:15px}.topbar nav a,.topbar .linklike{white-space:nowrap}}
.rs .rs-card.mt{display:flex;flex-direction:column;gap:8px;padding:17px 19px 18px;background:rgba(16,16,30,.55);border:1px solid rgba(255,255,255,.10);border-radius:14px}
.rs a.mt-file{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid rgba(26,231,190,.35);border-radius:9px;color:#1ae7be;text-decoration:none;font-size:14px}
.rs a.mt-file:hover{background:rgba(26,231,190,.08)}
.rs-banner{border:1px solid rgba(26,231,190,.45);background:rgba(26,231,190,.06);color:#e8eaed;border-radius:10px;padding:12px 18px;margin:0 0 18px}
.rs-card .pro{margin-left:auto;color:#8f92a8;font-size:13px;letter-spacing:.04em}
.rs-grid + .gs{margin-top:12px}
/* Top menu like the live site: Poppins 13px, roomy */
.topbar{padding:12px 24px;min-height:68px}
.topbar .brand img{height:42px}
.topbar nav{gap:0}
.topbar nav a,.topbar .linklike{font:400 13px/1.4 'Poppins',system-ui,sans-serif;padding:6px 11px;text-decoration:none}
@media (max-width:600px){.topbar nav{gap:2px 0}.topbar nav a,.topbar .linklike{padding:4px 8px}}
/* Multitrack licence */
.rs-licence{background:#fff;color:#4a4760;border-radius:16px;padding:26px 30px;margin:0 0 18px;border-top:6px solid #a06ef5;max-width:900px}
.rs-licence h3{font-family:'Poppins',system-ui,sans-serif;color:#2a1a55;font-size:22px;font-weight:600;margin:0 0 10px}
.rs-licence ul{padding-left:20px;margin:12px 0}.rs-licence li{margin:0 0 8px}.rs-licence li::marker{color:#a06ef5}
.rs-licence strong{color:#2a1a55}
.rs-agree{display:flex;gap:10px;align-items:center;background:#f6f3fc;border:1px solid #e4def2;border-radius:10px;padding:14px 16px;margin:14px 0}
.rs-agree.warn{border-color:#b3261e}
.rs-dim{opacity:.55}
.rs .mt-file.off{display:flex;justify-content:space-between;padding:9px 12px;border:1px dashed rgba(255,255,255,.18);border-radius:9px;color:#9494b0;font-size:14px}
.rs-lead{max-width:760px;font-size:17px}
.rs-cta{background:#5F21CE;color:#fff !important;font-family:'Poppins',sans-serif;letter-spacing:.04em;text-transform:uppercase;font-size:14px;padding:12px 22px;border-radius:10px;text-decoration:none;display:inline-block;margin:6px 0 30px}
.rs-num{font-family:'Poppins',sans-serif;color:#1ae7be;font-weight:600;font-size:13px}
.cal-frame{width:100%;height:760px;border:0;border-radius:12px;background:#0e0e13}
/* ===== Student side, dark (Dan 11 Oct: the Resources look everywhere) ===== */
body.student.dark{color:#d9dbe6}
body.student.dark .muted,body.student.dark .crumbs,body.student.dark .crumbs a{color:#9ca3af}
body.student.dark h1,body.student.dark h2,body.student.dark h3{font-family:'Poppins',system-ui,sans-serif;color:#fff;letter-spacing:-.01em}
body.student.dark main h1{font-weight:700;font-size:clamp(26px,3.6vw,38px);line-height:1.15}
body.student.dark main h2{font-weight:600}
body.student.dark main a{color:#c9b5ff}
body.student.dark main a:hover{color:#1ae7be}
body.student.dark .card,body.student.dark section:not(.rs-sec),body.student.dark .unit,body.student.dark details.outline,body.student.dark .unit-layout > details.outline{background:#0e0e13;border:1px solid rgba(255,255,255,.10);border-radius:14px;box-shadow:0 14px 30px rgba(0,0,0,.32);color:#d9dbe6}
body.student.dark .card{padding:16px 24px 22px;transition:border-color .16s,transform .16s,box-shadow .16s}
body.student.dark .card:hover{border-color:rgba(26,231,190,.45);transform:translateY(-2px);box-shadow:0 18px 38px rgba(0,0,0,.46)}
body.student.dark .card h2 a{color:#fff;text-decoration:none}
body.student.dark .card h2 a:hover{color:#1ae7be}
body.student.dark .progress{background:#1e1e28;height:8px}
body.student.dark .progress span{background:linear-gradient(90deg,#5F21CE,#1ae7be)}
body.student.dark .btn{background:#5F21CE;color:#fff;font-family:'Poppins',system-ui,sans-serif;font-weight:500;border-radius:10px;transition:box-shadow .16s,transform .16s}
body.student.dark .btn:hover{box-shadow:0 0 0 1px rgba(26,231,190,.5),0 10px 24px rgba(95,33,206,.45);transform:translateY(-1px)}
body.student.dark .btn.secondary{background:#17171f;color:#e8eaed;box-shadow:inset 0 0 0 1px #38383f}
body.student.dark .btn.secondary:hover{box-shadow:inset 0 0 0 1px rgba(26,231,190,.6)}
body.student.dark .note{background:rgba(26,231,190,.06);border:1px solid rgba(26,231,190,.45);border-left-width:1px;border-radius:10px;color:#e8eaed}
body.student.dark .week h2{border-bottom:1px solid rgba(255,255,255,.10);font-size:1.3rem;text-transform:uppercase;letter-spacing:.01em}
body.student.dark .week h3{color:#a6a8b8;font-weight:500}
body.student.dark ol.units li{border-bottom:1px solid rgba(255,255,255,.06);padding:8px 10px;border-radius:8px;transition:background .14s}
body.student.dark ol.units li:hover{background:rgba(255,255,255,.035)}
body.student.dark ol.units li a{color:#e8eaed;text-decoration:none}
body.student.dark ol.units li a:hover{color:#1ae7be}
body.student.dark ol.units li a[aria-current]{color:#1ae7be}
body.student.dark .tick{border-color:#4a4a5a}
body.student.dark li.done .tick{background:#5F21CE;border-color:#5F21CE}
body.student.dark li.locked,body.student.dark li.locked a{color:#7c7f92}
body.student.dark .lock{background:rgba(240,180,41,.12);color:#f0c46b}
body.student.dark .unit{padding:12px 28px}
body.student.dark .unit-html{color:#c9cbd8}
body.student.dark .unit blockquote{background:#14141a;border-left-color:#5F21CE}
body.student.dark .unit pre{background:#14141a;color:#e8eaed}
body.student.dark td,body.student.dark th{border-bottom-color:rgba(255,255,255,.10)}
body.student.dark .unit-nav a{color:#c9b5ff}
body.student.dark summary{color:#1ae7be}
body.student.dark input:not([type=checkbox]):not([type=radio]),body.student.dark select,body.student.dark textarea{background:#14141a;border:1px solid #38383f;color:#e8eaed;border-radius:8px}
body.student.dark input:focus,body.student.dark select:focus,body.student.dark textarea:focus{border-color:#1ae7be;outline:none}
body.student.dark .download{border-color:rgba(26,231,190,.45);color:#1ae7be;border-radius:9px}
body.student.dark figure.video .playicon{background:rgba(95,33,206,.95);box-shadow:0 0 0 6px rgba(95,33,206,.25)}
body.student.dark .tag{background:rgba(160,110,245,.15);color:#c9b5ff}
/* Sidebar outline: no boxes inside the box; locked labels drop under the title */
body.student.dark details.outline section.week{background:none;border:0;box-shadow:none;padding:0;margin:14px 0}
body.student.dark details.outline .week h2{font-size:1rem}
body.student.dark .week.compact ol.units li{flex-wrap:wrap;column-gap:10px;row-gap:2px}
body.student.dark .week.compact ol.units li .lock{flex-basis:100%;margin-left:26px;width:max-content;flex-grow:0}
body.student.dark section.week:not(.compact){padding:8px 24px 18px}
.rs-narrow{max-width:760px}
.rs-form label{display:block;margin:16px 0 6px;font-weight:500;color:#e8eaed}
.rs-form input,.rs-form select,.rs-form textarea{width:100%;padding:12px 14px;font:inherit;font-size:15px}
.rs-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:600px){.rs-two{grid-template-columns:1fr}}
/* Library */
.lib-note{color:#7c7f92;font-size:12.5px;margin:0 0 30px}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;margin:0 0 44px}
.rs a.lib-book{display:flex;flex-direction:column;background:#0e0e13;border:1px solid rgba(255,255,255,.10);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 14px 30px rgba(0,0,0,.32);transition:border-color .16s,transform .16s,box-shadow .16s}
.rs a.lib-book:hover{border-color:rgba(26,231,190,.45);transform:translateY(-3px);box-shadow:0 18px 38px rgba(0,0,0,.46)}
.lib-book img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;background:#17171f;display:block}
.lib-info{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px;flex:1}
.lib-title{font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;color:#fff;line-height:1.3}
.lib-author{font-size:12.5px;color:#9ca3af}
.lib-buy{margin-top:auto;padding-top:6px;font-size:12.5px;color:#1ae7be}
@media (max-width:600px){.lib-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
.tool-frame.fit{height:480px;min-height:0;border:0;background:transparent;overflow:hidden}
body.student.dark .rs-licence h3{color:#2a1a55}body.student.dark .rs-licence label{color:#2a1a55}
/* Tool pages: full width like the live site (the tool sets its own padding and width) */
main.tool-main{max-width:none;margin:0;padding:0}
.tool-crumbs{max-width:none;padding:18px 80px 0;margin:0}
@media (max-width:1024px){.tool-crumbs{padding:16px 40px 0}}
@media (max-width:767px){.tool-crumbs{padding:12px 24px 0}}
.tool-frame.bleed{display:block;width:100%;height:100vh;min-height:0;border:0;border-radius:0;background:#0a0a0e}
/* Book a call, as the live page */
.bc{max-width:1460px;margin:0 auto;padding:56px 80px 80px}
@media (max-width:1024px){.bc{padding:48px 40px 64px}}
@media (max-width:767px){.bc{padding:36px 24px 48px}}
.bc-kicker{font:700 13px/1.3 "DM Sans",sans-serif;letter-spacing:2.08px;text-transform:uppercase;color:#1ae7be;margin:0 0 6px}
body.student.dark .bc-h1{font:800 58px/1.08 "Poppins",sans-serif;letter-spacing:-1px;text-transform:uppercase;color:#f4f3f7;margin:0 0 18px}
@media (max-width:767px){body.student.dark .bc-h1{font-size:40px}}
.bc-lead{font-size:19px;line-height:1.65;color:#c8c5d6;margin:0 0 6px;max-width:806px}
.bc-note{font-size:17px;line-height:1.75;color:#9c98ad;margin:0 0 40px;max-width:806px}
.bc-cal{display:block;width:100%;height:700px;border:0;border-radius:10px}
/* Resources drop-down (hover or keyboard/tap focus; no script) */
.topbar .nav-dd{position:relative;display:flex;align-items:center}
.topbar .dd-caret{background:none;border:0;color:#fff;font-size:11px;padding:6px 6px 6px 0;margin-left:-6px;cursor:pointer;opacity:.85}
.topbar .dd-menu{display:none;position:absolute;top:100%;left:0;min-width:190px;padding:8px 0;background:#121219;border:1px solid rgba(255,255,255,.10);border-radius:10px;box-shadow:0 18px 38px rgba(0,0,0,.46);z-index:20}
.topbar .nav-dd:hover>.dd-menu,.topbar .nav-dd:focus-within>.dd-menu{display:block}
.topbar .dd-menu a{display:block;padding:9px 16px;white-space:nowrap}
.topbar .dd-menu a:hover{background:rgba(26,231,190,.08);color:#1ae7be;text-decoration:none}
#downloads,#toolkit,#keyword-search{scroll-margin-top:20px}
/* Certificates */
body.student.dark .cert-card{border-color:rgba(26,231,190,.45)}
.check{display:flex;gap:10px;align-items:center;font-weight:400}
dl.verify{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:4px 0 14px}
dl.verify dt{color:#9ca3af}dl.verify dd{margin:0;color:#fff}
/* Mix critiques */
.mixes .mix-how{border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 16px 16px;margin:16px 0}
.mixes .mix-how legend{padding:0 6px;color:#e8eaed}
.mix-list{list-style:none;padding:0;margin:0 0 30px}
.mix-list a{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px solid rgba(255,255,255,.1);border-radius:12px;margin:0 0 10px;text-decoration:none;color:#e8eaed;background:#0e0e13}
.mix-list a:hover{border-color:rgba(26,231,190,.45)}
.mix-status{margin-left:auto;font-size:12px;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:3px 8px;color:#c9cbd8}
.mix-status.reviewed{border-color:rgba(26,231,190,.6);color:#1ae7be}
.mix-status.waiting,.mix-status.in_review{border-color:rgba(160,110,245,.5);color:#c9b5ff}
.mix-progress{margin:14px 0}
.mix-audio{width:100%;max-width:640px}
.mix-scores{font-size:18px}
.rs-form input[type=radio],.rs-form input[type=checkbox]{width:auto;padding:0;margin:0;flex:none}
.rs-form label.check{display:flex;flex-direction:row;align-items:center;gap:10px;font-weight:400;margin:10px 0}
ol.mix-steps{padding-left:22px}ol.mix-steps li{margin:0 0 14px}ol.mix-steps li.done::marker{color:#2e7d4f;font-weight:700}

/* Dropdown lists: brand purple highlight, not the system blue (Dan, 17 Oct). Chrome/Edge 135+; other browsers keep their own list. */
@supports (appearance: base-select) {
  body.student.dark select, body.student.dark select::picker(select){appearance:base-select}
  body.student.dark select{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}
  body.student.dark select::picker(select){background:#14141a;color:#e8eaed;border:1px solid #38383f;border-radius:8px;padding:4px;margin-top:4px;box-shadow:0 18px 38px rgba(0,0,0,.46)}
  body.student.dark select option{padding:7px 12px;border-radius:6px;background:transparent;color:#e8eaed;font-size:inherit}
  body.student.dark select option:checked{background:rgba(95,33,206,.35);color:#fff}
  body.student.dark select option:hover,body.student.dark select option:focus-visible{background:#5F21CE;color:#fff;outline:none}
  body.student.dark select option::checkmark{display:none}
}
/* Student Toolkit fly-out inside the Resources menu (Dan, 17 Oct). Opens to the left: Resources sits near the right edge. */
.topbar .dd-sub{position:relative}
.topbar .dd-sub>a{position:relative}
.topbar .dd-arrow{position:absolute;left:5px;top:50%;transform:translateY(-55%);opacity:.6;font-size:14px;line-height:1}
.topbar .dd-menu .dd-menu2{display:none;top:-9px;left:auto;right:100%;margin-right:0;min-width:240px}
.topbar .dd-sub:hover>.dd-menu2,.topbar .dd-sub:focus-within>.dd-menu2{display:block}
@media (max-width:760px){.topbar .dd-menu .dd-menu2{position:static;box-shadow:none;border:0;padding:0 0 0 14px;min-width:0}}
/* Sticky header and Back to top (Dan, 17 Oct). On phones the menu wraps to 2-3 rows, so it only sticks from 761px up. */
@media (min-width:761px){
  body.student .topbar{position:sticky;top:0;z-index:50}
  html:has(body.student){scroll-padding-top:84px}
  .unit-layout > details.outline{top:84px;max-height:calc(100vh - 100px)}
}
.to-top{position:fixed;right:22px;bottom:22px;z-index:60;width:46px;height:46px;border:0;border-radius:50%;background:var(--accent);color:#fff;font-size:20px;line-height:46px;text-align:center;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--deep)}
.to-top:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
@media print{.to-top{display:none}}
