/* =============================================
   Custom theme — Ritesh Moon
   Pure black & white. No images, no animation.
   ============================================= */

/* ---- Nuke the background image & all its effects ---- */
#bg,
#bg::before,
#bg::after,
body.is-article-visible #bg::after {
  background:        #000 !important;
  background-image:  none !important;
  background-color:  #000 !important;
  filter:            none !important;
  -webkit-filter:    none !important;
  transform:         none !important;
  -webkit-transform: none !important;
  transition:        none !important;
}

/* ---- Site base ---- */
html, body {
  background: #000 !important;
  color: #fff !important;
}

/* Remove the radial-gradient shadow on the wrapper */
#wrapper {
  background-image: none !important;
}

/* ---- Article panels — solid black with white border ---- */
#main > article {
  background-color: rgba(0, 0, 0, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

/* ---- Force all text to white ---- */
h1, h2, h3, h4, h5, h6,
p, li, label, span, td, th,
blockquote, address, figcaption {
  color: #fff !important;
}

/* ---- Links ---- */
a {
  color: rgba(255, 255, 255, 0.75) !important;
  border-bottom-color: rgba(255, 255, 255, 0.2) !important;
}
a:hover {
  color: #fff !important;
  border-bottom-color: rgba(255, 255, 255, 0.5) !important;
}

/* ---- h2.major underline ---- */
h2.major::after {
  background: linear-gradient(90deg, rgba(255,255,255,0.45), transparent) !important;
}

/* ---- Buttons ---- */
input[type="submit"].primary, .button.primary {
  background-color: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}
input[type="submit"]:hover, .button.primary:hover {
  background-color: rgba(255, 255, 255, 0.85) !important;
}

/* ---- Nav links ---- */
#header nav ul li a {
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: #fff !important;
}
#header nav ul li a:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
}

/* ---- Form inputs ---- */
input[type="text"], input[type="email"], textarea, select {
  background-color: rgba(255, 255, 255, 0.07) !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: #fff !important;
}
input[type="text"]:focus, input[type="email"]:focus, textarea:focus {
  border-color: rgba(255, 255, 255, 0.5) !important;
}

/* ---- Hero tagline ---- */
.hero-tagline {
  font-size: 0.8em;
  color: rgba(255, 255, 255, 0.5) !important;
  font-style: italic;
  line-height: 1.8;
  margin-top: 0.6em;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

/* ---- Header photo (landing page) ---- */
.header-photo-wrap {
  margin-bottom: 1em;
}
.header-photo {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.45);
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.12);
  background-image: url('../../images/profile.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: block !important;
  margin: 0 auto;
}

/* ---- Profile photo (About panel) ---- */
.profile-photo-wrap {
  text-align: center;
  margin-bottom: 1.8em;
}
.profile-photo {
  width: 260px;
  height: 260px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 0 24px rgba(255, 255, 255, 0.1);
  object-fit: cover;
  object-position: center;
  display: block;
  margin: 0 auto;
}

/* ---- Publication list ---- */
.pub-list { margin: 0.8em 0 1.5em; }
.pub-item {
  display: flex;
  gap: 1.2em;
  margin-bottom: 1.4em;
  align-items: flex-start;
}
.pub-year {
  font-size: 0.75em;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.08em;
  white-space: nowrap;
  padding-top: 0.2em;
  min-width: 2.5em;
}
.pub-content { flex: 1; }
.pub-title {
  font-size: 0.9em;
  color: #fff !important;
  margin: 0 0 0.3em;
  line-height: 1.5;
  font-weight: 600;
}
.pub-meta {
  font-size: 0.82em;
  color: rgba(255, 255, 255, 0.6) !important;
  margin: 0;
  line-height: 1.55;
}
.profile-photo-placeholder {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.3);
  font-size: 3.5em;
}

/* ---- Section sub-headers ---- */
article h3.major {
  font-size: 0.82em;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.5) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
  padding-bottom: 0.4em;
  margin-top: 1.8em;
  text-transform: uppercase;
}

/* ---- Timeline ---- */
.timeline { position: relative; margin: 1.2em 0; padding-left: 1.8em; }
.timeline::before {
  content: '';
  position: absolute;
  left: 6px; top: 6px; bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.35), transparent);
}
.timeline-item { position: relative; margin-bottom: 2em; }
.timeline-item::before {
  content: '';
  position: absolute;
  left: -1.55em; top: 5px;
  width: 11px; height: 11px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.4);
}
.timeline-date {
  display: inline-block;
  font-size: 0.75em;
  color: rgba(255, 255, 255, 0.45) !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.4em;
}
.timeline-item h4 {
  margin: 0 0 0.2em;
  color: #fff !important;
  font-size: 0.95em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.timeline-item p, .timeline-item ul {
  font-size: 0.88em;
  color: rgba(255, 255, 255, 0.65) !important;
  margin: 0.3em 0 0;
}
.timeline-item ul { padding-left: 1.2em; }
.timeline-item ul li { margin-bottom: 0.4em; }

/* ---- Project cards ---- */
.project-card {
  background: rgba(255, 255, 255, 0.03) !important;
  border-left: 2px solid rgba(255, 255, 255, 0.35);
  border-radius: 0 4px 4px 0;
  padding: 1.1em 1.3em;
  margin-bottom: 1.4em;
}
.project-card h4 {
  margin: 0 0 0.5em;
  color: #fff !important;
  font-size: 0.9em;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.project-tags { display: flex; flex-wrap: wrap; gap: 0.4em; margin-bottom: 0.7em; }
.tag {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 3px;
  padding: 0.1em 0.55em;
  font-size: 0.72em;
  color: rgba(255, 255, 255, 0.65) !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.project-card p {
  font-size: 0.88em;
  color: rgba(255, 255, 255, 0.65) !important;
  margin: 0;
  line-height: 1.65;
}

/* ---- Skill groups ---- */
.skill-group { margin-bottom: 1.2em; }
.skill-tags { display: flex; flex-wrap: wrap; gap: 0.45em; }
.skill-tag {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  padding: 0.25em 0.7em;
  font-size: 0.82em;
  color: rgba(255, 255, 255, 0.8) !important;
}

/* ---- Contact links ---- */
.contact-links { list-style: none; padding: 0; margin: 0 0 1.5em; }
.contact-links li { margin-bottom: 0.65em; }
.contact-links a {
  display: flex;
  align-items: center;
  gap: 0.9em;
  padding: 0.75em 1em;
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 5px;
  text-decoration: none !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 0.9em;
  transition: background 0.2s, border-color 0.2s;
}
.contact-links a:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #fff !important;
}
.contact-links .icon {
  font-size: 1.1em;
  color: rgba(255, 255, 255, 0.55) !important;
  width: 1.4em;
  text-align: center;
}

/* ---- Footer ---- */
#footer p { color: rgba(255, 255, 255, 0.4) !important; }

/* ================================================
   SCROLLABLE ONE-PAGE LAYOUT
   Overrides Dimension's click-to-open overlay system
   ================================================ */

html {
  scroll-behavior: smooth;
}

html, body {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  height: auto !important;
  min-height: 100vh !important;
}

#bg {
  position: fixed !important;
  height: 100% !important;
}

/* Wrapper becomes a scrollable column */
#wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  min-height: 100vh !important;
  height: auto !important;
  overflow: visible !important;
  padding-bottom: 4em !important;
}

/* Header stays as full-height landing screen */
#header {
  position: relative !important;
  min-height: 100vh !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}

/* Main becomes a normal block container */
#main {
  display: block !important;
  position: relative !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: 820px !important;
  padding: 1em 2em 2em !important;
  margin: 0 auto !important;
}

/* All articles always visible, stacked */
#main > article {
  display: block !important;
  position: relative !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
  filter: none !important;
  width: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  overflow-y: visible !important;
  margin: 0 0 3em 0 !important;
  padding: 2.5em !important;
  top: auto !important;
  left: auto !important;
  scroll-behavior: auto !important;
}

/* Hide template's close button */
#main > article .close {
  display: none !important;
}
