:root{
  --bg:#15110D;
  --bg-grad:#0F0C09;
  --surface:#221C16;
  --surface-2:#2A2219;
  --line:rgba(246,239,228,0.10);
  --line-soft:rgba(246,239,228,0.06);
  --cream:#F6EFE4;
  --sand:#C8BAA9;
  --sand-dim:#8C7C6B;
  --terracotta:#E0653A;
  --gold:#E8B563;
  --clay:#A4684A;
  --font-display:'Sora',-apple-system,sans-serif;
  --font-body:'Inter',-apple-system,sans-serif;
  --radius:16px;
  --radius-sm:9px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(1100px 480px at 18% -8%, rgba(224,101,58,0.16), transparent 60%),
    radial-gradient(900px 420px at 92% 0%, rgba(232,181,99,0.10), transparent 55%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-grad) 100%);
  color:var(--cream);
  font-family:var(--font-body);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-0.01em;}
p{margin:0;}
a{color:inherit;}
::selection{background:var(--terracotta);color:#1a1410;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px;}

.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.card-box{
  width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);
  border-radius:20px;padding:34px 30px;border-top:4px solid var(--terracotta);
}
.card-box.wide{max-width:880px;}
.brand-row{display:flex;align-items:center;gap:12px;margin-bottom:22px;}
.brand-mark{
  width:38px;height:38px;border-radius:10px;background:linear-gradient(145deg,var(--terracotta),var(--clay));
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;
  font-size:15px;color:#1a1008;flex-shrink:0;object-fit:contain;
}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:16.5px;}

h2{font-size:21px;}
.sub{margin-top:8px;font-size:13.5px;color:var(--sand-dim);line-height:1.55;}

label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--sand);font-family:var(--font-display);margin-top:16px;}
input[type=text],input[type=email],input[type=password]{
  background:var(--bg);border:1px solid var(--line);color:var(--cream);border-radius:var(--radius-sm);
  padding:11px 13px;font-size:14px;font-family:var(--font-body);font-weight:400;width:100%;
}

.btn{
  font-family:var(--font-display);font-weight:600;font-size:14px;border-radius:999px;padding:12px 22px;
  border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;text-decoration:none;
}
.btn.primary{background:var(--terracotta);color:#1a1008;}
.btn.primary:hover{background:#ea7549;transform:translateY(-1px);}
.btn.ghost{background:transparent;color:var(--cream);border-color:var(--line);}
.btn.ghost:hover{border-color:var(--sand-dim);}
.btn.full{width:100%;margin-top:22px;}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;}

.msg{margin-top:16px;padding:10px 13px;border-radius:10px;font-size:12.5px;line-height:1.5;}
.msg.error{background:rgba(224,101,58,0.12);border:1px solid rgba(224,101,58,0.4);color:#f0a98f;}
.msg.success{background:rgba(138,154,126,0.12);border:1px solid rgba(138,154,126,0.4);color:#bcd0ac;}

.muted-link{display:block;text-align:center;margin-top:18px;font-size:12.5px;color:var(--sand-dim);text-decoration:none;}
.muted-link:hover{color:var(--cream);}

.top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;flex-wrap:wrap;gap:12px;}

.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-top:24px;}
.course-card{
  position:relative;border-radius:14px;aspect-ratio:9/16;background:var(--surface-2);border:1px solid var(--line);
  overflow:hidden;text-decoration:none;display:block;transition:transform .2s ease;
}
.course-card:hover{transform:translateY(-4px);}
.course-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.course-card .fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(155deg,var(--terracotta) -20%, var(--surface) 80%);font-family:var(--font-display);font-weight:800;font-size:32px;color:rgba(255,255,255,.2);}
.course-card .label{position:absolute;left:0;right:0;bottom:0;padding:12px;background:linear-gradient(0deg, rgba(7,5,4,.95) 10%, transparent);font-family:var(--font-display);font-weight:700;font-size:13px;}

.empty-state{text-align:center;padding:50px 20px;color:var(--sand-dim);font-size:14px;line-height:1.6;}

.video-wrap{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;margin-top:20px;}
.video-wrap iframe,.video-wrap video{position:absolute;inset:0;width:100%;height:100%;border:0;}

.block{margin-top:22px;}
.block h4{font-family:var(--font-display);font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--gold);margin-bottom:6px;}
.block p{font-size:14.5px;line-height:1.6;color:var(--sand);}

.loading{text-align:center;padding:60px 20px;color:var(--sand-dim);font-family:var(--font-display);}

@media (max-width:600px){
  .card-box{padding:26px 22px;}
}
