
:root{
  --habi-deep:#4a2c7a;
  --habi-purple:#a278ff;
  --habi-violet:#b486ff;
  --habi-accent:#ffd166;
  --habi-ink:#f4f0ff;
  --habi-ink-2:#d8caff;
  --card-bg:#2e1c54;

  --font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-pixel: "Press Start 2P", system-ui, sans-serif;

  --r-sm: .4rem;
  --r-md: .5rem;

  --s-3: 1rem;
  --s-4: 1.5rem;
 
  --surface-1: linear-gradient(180deg, #3b2570, var(--card-bg));

  --shadow-card: 0 8px 24px rgba(0,0,0,.35);
  --inset-weak: 0 0 0 2px rgba(255,255,255,.05) inset;


  --border-soft: 1px solid rgba(162,120,255,.35);
  --border-accent: 2px solid #c79aff;
  --border-muted: 1px solid rgba(255,255,255,.1);
}

/* -- Page basics -- */
html, body{
  background: radial-gradient(1200px 800px at 10% 0%, #5b3aa3 0%, #2e1c54 60%, #1a0e30 100%);
  color: var(--habi-ink);
  min-height: 100vh;
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.65;
}

p{ margin: 0 0 1rem; }
li{ margin-bottom: .35rem; }

/* -- Navbar -- */
.navbar{
  background: linear-gradient(180deg, var(--habi-deep), #3c2170);
  border-bottom: 2px solid var(--habi-purple);
}

.navbar-brand{
  font-family: var(--font-pixel);
  font-size: .9rem;
  color: var(--habi-accent) !important;
}

.nav-link{ color: var(--habi-ink-2) !important; }
.nav-link:hover{ color: var(--habi-accent) !important; }

/* -- Hero -- */
.hero{
  background: linear-gradient(135deg, rgba(164,120,255,.28), rgba(93,242,224,.08));
  border-bottom: 2px solid var(--habi-purple);
}

.subtitle{
  color: var(--habi-ink-2);
  margin-top: .75rem;
  max-width: 60ch;
  font-size: 1.05rem;
  line-height: 1.6;
  text-align: left; 
  font-family: var(--font-pixel);       
}

.panel--body > .subtitle{
  font-family: var(--font-pixel);
}

.panel--body h3 ~ img,
.panel--body h3 ~ * img{
  margin-left: .75rem;
}

/* -- Headings -- */
h1, h2, h3{
  font-family: var(--font-pixel);
  color: var(--habi-accent) !important;
}

h1{ font-size: 1.8rem; margin: 3rem 0 1.5rem; }
h2{ font-size: 1rem; margin: 2.5rem 0 1.25rem; }

h3{
  font-size: .8rem;
  margin: 2rem 0 1rem;
  padding-left: .75rem;  
}

h3 + p,
h3 + ul,
h3 + ol,
h3 + li,
h3 + div
h3 + img{
  margin-left: .75rem;
}

/* -- Buttons -- */
.btn-primary{
  --bs-btn-bg: var(--habi-violet);
  --bs-btn-border-color: var(--habi-violet);
  --bs-btn-hover-bg: #c79aff;
  --bs-btn-hover-border-color: #c79aff;
  --bs-btn-active-bg: #a278ff;
  --bs-btn-color: #fff;
  box-shadow: var(--inset-weak), 0 0 18px rgba(164,120,255,.4);
}

.btn-secondary{
  --bs-btn-bg: rgba(162,120,255,.25);
  --bs-btn-border-color: rgba(162,120,255,.45);
  --bs-btn-hover-bg: rgba(162,120,255,.35);
  --bs-btn-hover-border-color: rgba(162,120,255,.55);
  --bs-btn-color: var(--habi-ink);
  box-shadow: 0 0 0 2px rgba(255,255,255,.04) inset, 0 0 14px rgba(164,120,255,.18);
}

/*-- Panels --*/
.panel{
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.panel--title{
  background: var(--surface-1);
  color: var(--habi-accent);
  font-family: var(--font-pixel);
  text-align: left;
  padding: 1.2rem var(--s-3);
  border-radius: var(--r-md);
  border: var(--border-accent);
  box-shadow: 0 0 0 1px rgba(0,0,0,.65) inset, var(--shadow-card);
}

.panel--body{
  background: var(--surface-1);
  color: var(--habi-ink);
  padding: var(--s-4);
  border-bottom: 3px solid var(--habi-purple);
}

.panel--body h2,
.panel--body h3{ margin-top: 1.25rem; }
.panel--body h2:first-child,
.panel--body h3:first-child{ margin-top: 0; }

/* -- Accordion --  */
.accordion{
  --bs-accordion-bg: transparent !important;
  --bs-accordion-border-color: transparent;
  --bs-accordion-border-radius: var(--r-md);
  --bs-accordion-inner-border-radius: var(--r-md);
}

.accordion-item{
  background: var(--surface-1);
  border: var(--border-soft);
  margin-bottom: .75rem;
}

.accordion-button{
  background: var(--surface-1) !important;
  color: var(--habi-accent) !important;
  font-family: var(--font-pixel);
  border: none;
  box-shadow: none !important;
}

.accordion-button::after{
  filter: brightness(0) saturate(100%) invert(86%) sepia(27%) saturate(843%)
          hue-rotate(330deg) brightness(103%) contrast(101%);
}

.accordion-button:not(.collapsed){
  background: var(--habi-accent) !important;
  color: var(--habi-deep) !important;
}

.accordion-button:not(.collapsed)::after{
  filter: brightness(0) saturate(100%) invert(18%) sepia(15%) saturate(3570%)
          hue-rotate(233deg) brightness(92%) contrast(95%);
}

.accordion-body{
  background: var(--surface-1);
  color: var(--habi-ink);
  border-top: var(--border-muted);
}

.accordion-button:focus{
  box-shadow: 0 0 0 .2rem rgba(255, 209, 102, .35) !important;
}

/* -- Links -- */
a{
  color: var(--habi-accent);
  text-decoration: none;
}

a:hover,
a:focus{
  color: #ffe08a; 
}

/*-- Code --*/
pre,
code{
  color: var(--habi-accent); 
}

/*-- Footer --*/
.footer{
  position: relative;
  background: linear-gradient(180deg, #1a0e30, #12081f);
}

.footer::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--habi-purple);
}

/* -- Images -- */
.text-with-image{
  display: flex;
  align-items: center;
  gap: var(--s-3);
}

.text-with-image img{
  width: 120px;
  border-radius: var(--r-sm);
}

.pixel-image{
  width: 320px;
  max-width: 100%;
  border-radius: var(--r-md);
}

.code-image{
  display: flex;
  align-items: center;
  gap: var(--s-3);
}


