
:root{
  --bg:#090b10;
  --panel:#10131b;
  --panel2:#151925;
  --text:#f5f7fb;
  --muted:#9ca6b7;
  --line:#252b38;
  --accent:#a8ff3e;
  --accent2:#78d7ff;
  --danger:#ff6b7a;
  --gold:#e7c873;
  --shadow:0 22px 70px rgba(0,0,0,.36);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:
  radial-gradient(900px 600px at 10% -10%, rgba(120,215,255,.12), transparent 60%),
  radial-gradient(1000px 800px at 100% 0%, rgba(168,255,62,.08), transparent 50%),
  var(--bg);
  color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  min-height:100vh;
}
button,input{font:inherit}
button{cursor:pointer}
.noise{position:fixed;inset:0;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}
.topbar{
  position:sticky;top:0;z-index:20;height:76px;display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;border-bottom:1px solid rgba(255,255,255,.07);
  backdrop-filter:blur(18px);background:rgba(9,11,16,.75)
}
.brand{display:flex;align-items:center;gap:12px;border:0;background:none;color:var(--text);text-align:left}
.brand-mark{
  width:42px;height:42px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--accent),#6fffad);color:#071009;font-weight:1000;font-size:22px;
  box-shadow:0 8px 30px rgba(168,255,62,.18)
}
.brand strong{display:block;font-size:16px}
.brand small{display:block;color:var(--muted);font-size:11px;margin-top:1px}
.top-actions{display:flex;gap:10px;align-items:center}
.ghost,.profile-pill,.secondary,.chip,.back{
  border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--text);border-radius:999px;padding:10px 14px
}
.ghost:hover,.profile-pill:hover,.secondary:hover,.chip:hover,.back:hover{border-color:#3b4457;background:rgba(255,255,255,.05)}
.profile-pill{display:flex;gap:8px;align-items:center}
.profile-pill span:first-child{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#252a35;font-size:11px;font-weight:800
}
#app{max-width:1220px;margin:0 auto;padding:44px 22px 80px}
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:26px;align-items:stretch;margin-bottom:34px}
.hero-main,.stat-card,.panel{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
  border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)
}
.hero-main{padding:38px;position:relative;overflow:hidden}
.hero-main:after{
  content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:-90px;top:-100px;
  background:radial-gradient(circle,rgba(168,255,62,.35),transparent 65%);filter:blur(4px)
}
.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--accent);text-transform:uppercase}
.hero h1{font-size:clamp(36px,6vw,68px);line-height:.95;letter-spacing:-.055em;margin:14px 0 18px;max-width:760px}
.hero p{font-size:17px;line-height:1.6;color:var(--muted);max-width:700px}
.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.stat-card{padding:22px;display:flex;flex-direction:column;justify-content:space-between;min-height:144px}
.stat-card strong{font-size:36px;letter-spacing:-.04em}
.stat-card span{color:var(--muted);font-size:13px}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:22px 0}
.search{
  flex:1;min-width:240px;border:1px solid var(--line);background:var(--panel);color:var(--text);
  border-radius:16px;padding:13px 16px;outline:none
}
.search:focus{border-color:#536079}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip.active{background:var(--accent);color:#081007;border-color:var(--accent);font-weight:850}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:30px 0 16px}
.section-head h2{font-size:25px;margin:0;letter-spacing:-.03em}
.section-head p{margin:0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.course{
  position:relative;padding:22px;border-radius:22px;border:1px solid var(--line);background:var(--panel);
  transition:transform .18s ease,border-color .18s ease,background .18s ease;min-height:220px;display:flex;flex-direction:column
}
.course:hover{transform:translateY(-3px);border-color:#3c4558;background:#121722}
.course-top{display:flex;justify-content:space-between;gap:12px}
.icon{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;background:var(--panel2);font-size:22px}
.badge{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 9px;height:max-content}
.badge.done{color:#071009;background:var(--accent);border-color:var(--accent);font-weight:900}
.course h3{font-size:20px;margin:22px 0 8px;letter-spacing:-.025em}
.course p{color:var(--muted);line-height:1.5;margin:0 0 20px;font-size:14px}
.course-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;color:var(--muted);font-size:12px}
.open-course{position:absolute;inset:0;border:0;background:transparent;border-radius:22px}
.panel{padding:28px}
.course-page{max-width:920px;margin:0 auto}
.course-hero{padding:30px 0 24px}
.course-hero h1{font-size:46px;letter-spacing:-.05em;line-height:1.02;margin:13px 0}
.course-hero p{color:var(--muted);font-size:17px;line-height:1.6}
.back{margin-bottom:14px}
.progress-shell{height:9px;background:#191e29;border-radius:999px;overflow:hidden;margin:22px 0}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0;transition:width .25s}
.lesson-stack{display:grid;gap:14px}
.lesson{padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}
.lesson-num{font-size:11px;font-weight:900;color:var(--accent);letter-spacing:.12em}
.lesson h3{margin:8px 0 8px;font-size:22px}
.lesson p{color:#c3cad7;line-height:1.65;margin:0}
.example{margin-top:13px;padding:12px 14px;border-radius:13px;background:#0b0e14;border:1px solid #202634;color:#aeb7c8;font-size:13px}
.primary{
  border:0;border-radius:14px;background:var(--accent);color:#071009;font-weight:950;padding:13px 18px;
  box-shadow:0 10px 30px rgba(168,255,62,.15)
}
.primary:hover{filter:brightness(1.04)}
.primary:disabled{opacity:.45;cursor:not-allowed}
.course-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.quiz{max-width:820px;margin:0 auto}
.quiz h1{font-size:42px;letter-spacing:-.04em;margin-bottom:8px}
.quiz-intro{color:var(--muted);margin-bottom:26px}
.question{padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--panel);margin-bottom:14px}
.question h3{font-size:17px;margin:0 0 15px;line-height:1.45}
.options{display:grid;gap:9px}
.option{
  display:flex;gap:10px;align-items:flex-start;padding:13px 14px;border:1px solid #2b3240;border-radius:14px;background:#0f131b;color:#e9edf5
}
.option:hover{border-color:#465168}
.option input{margin-top:3px}
.result{
  padding:26px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(150deg,#121721,#0e1118);margin-top:18px
}
.result.pass{border-color:rgba(168,255,62,.4)}
.result.fail{border-color:rgba(255,107,122,.35)}
.result h2{font-size:34px;margin:0 0 8px}
.result p{color:var(--muted);line-height:1.55}
.missed{display:grid;gap:8px;margin:16px 0}
.missed div{padding:10px 12px;background:#0b0e14;border:1px solid var(--line);border-radius:12px;font-size:13px}
.cert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cert-card{padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}
.cert-card h3{margin:0 0 5px}
.cert-card p{color:var(--muted);margin:0 0 15px;font-size:13px}
.certificate{
  width:min(100%,1000px);aspect-ratio:11/8.5;margin:18px auto;background:#f7f4ed;color:#121826;
  border:3px solid #121826;outline:1px solid #b89146;outline-offset:-11px;padding:44px;position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  box-shadow:0 30px 100px rgba(0,0,0,.38)
}
.cert-corner{position:absolute;width:56px;height:56px;border-color:#b89146;border-style:solid}
.cert-corner.tl{left:20px;top:20px;border-width:2px 0 0 2px}
.cert-corner.tr{right:20px;top:20px;border-width:2px 2px 0 0}
.cert-corner.bl{left:20px;bottom:20px;border-width:0 0 2px 2px}
.cert-corner.br{right:20px;bottom:20px;border-width:0 2px 2px 0}
.cert-mark{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#121826;color:white;font-weight:1000;margin-bottom:16px}
.certificate .eyebrow{color:#9b7c35}
.certificate h1{font-size:clamp(28px,5vw,50px);margin:10px 0 14px;letter-spacing:-.04em}
.presented{color:#69707c;font-size:14px}
.cert-name{font-size:clamp(26px,5vw,44px);font-weight:900;margin:14px 0;border-bottom:2px solid #b89146;padding:0 20px 7px}
.cert-desc{max-width:720px;line-height:1.6;color:#434a56}
.score-pill{margin-top:18px;background:#121826;color:white;border-radius:12px;padding:10px 20px;font-weight:900}
.cert-meta{width:100%;display:flex;justify-content:space-between;margin-top:22px;color:#606775;font-size:12px}
.cert-id{position:absolute;bottom:15px;color:#8a8f98;font-size:8px}
.modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:20px;backdrop-filter:blur(9px)}
.modal-backdrop.hidden{display:none}
.modal{width:min(520px,100%);background:#10141c;border:1px solid #2b3240;border-radius:26px;padding:30px;box-shadow:var(--shadow)}
.modal h1{font-size:32px;letter-spacing:-.04em;line-height:1.05}
.modal p{color:var(--muted);line-height:1.55}
.modal label{display:block;font-size:12px;font-weight:850;margin:22px 0 7px}
.modal input{width:100%;padding:14px;border-radius:14px;background:#0a0d12;color:white;border:1px solid #303747;outline:none}
.modal-actions{display:flex;justify-content:flex-end;margin-top:16px}
.empty{padding:50px 20px;text-align:center;border:1px dashed #31394a;border-radius:24px;color:var(--muted)}
.confetti-wrap{position:fixed;inset:0;pointer-events:none;z-index:100;overflow:hidden}
.confetti-piece{position:absolute;top:-20px;width:10px;height:14px;background:var(--accent);animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(900deg)}}
@media(max-width:900px){
  .hero{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cert-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .topbar{padding:0 12px}.ghost{display:none}#app{padding:28px 14px 60px}
  .hero-main{padding:26px}.hero-side{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}
  .course-hero h1,.quiz h1{font-size:34px}.certificate{padding:28px 24px}.cert-meta{font-size:9px}
}
@media print{
  body{background:white}
  .topbar,.cert-actions,.noise{display:none!important}
  #app{padding:0;max-width:none}
  .certificate{box-shadow:none;margin:0;width:11in;height:8.5in;aspect-ratio:auto;border:3px solid #121826;page-break-after:avoid}
  @page{size:landscape;margin:0}
}
