/* GLOBAL RESET */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: #f3f5f6;
    font-family: Helvetica, Arial, sans-serif;
    letter-spacing: -0.5px;
    color: #241010;
    min-height: 100vh;
    position: relative;
    margin: 0;
    padding-bottom: 25px; /* same as footer height to avoid overlap */
}

/* LEFT SIDE NAVIGATION */
.side-nav {
    position: fixed;
    left: 40px;
    top: 150px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.side-nav a {
    color: #241010;
    text-decoration: none;
    font-size: 14px;
}

/* Default: no underline */
.side-nav a {
    text-decoration: none;
}

/* INDEX active */
.page-index .side-nav a[href="../index.html"],
.page-index .side-nav a[href="index.html"] {
    text-decoration: underline;
}

/* ABOUT active */
.page-about .side-nav a[href="../about.html"],
.page-about .side-nav a[href="about.html"] {
    text-decoration: underline;
}

/* MY NOTES active — applies to ANY notes page */
.page-my-notes .side-nav a[href="../my-notes.html"],
.page-my-notes .side-nav a[href="my-notes.html"] {
    text-decoration: underline;
}


/* MAIN COLUMN */
.content {
    width: 700px;
    margin: 0 auto;
    padding-top: 80px;
}

/* HEADLINE */
.headline {
    font-size: 48px;
    margin-bottom: 20px;
    letter-spacing: -5px;
}

/* SMALL COPY */
.subcopy {
    font-size: 18px;
    width: 80%;
    line-height: 1.3;
    margin-bottom: 40px;
    color: #241010;
}

.textcopy {
    font-size: 16px;
    width: 95%;
    line-height: 1.2;
    margin-bottom: 0px;
    text-align: left;
    letter-spacing: -0.5px;
    white-space: pre-wrap;
    color: #241010;
}

/* TAGS + SORT */
.tag-row {
    display: flex;
    align-items: center;
    gap: 30px;
    font-size: 14px;
    margin-bottom: 30px;
}

.tag-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.tag-dot {
    width: 12px;
    height: 12px;
    display: inline-block;
    border-radius: 50%;
    background: #241010;
    cursor: pointer;
}

/* RGB TAG COLOR CODING */
.blog {
    background: rgb(201, 0, 1);
}

.writing {
    background: rgb(255, 132, 0);
}


.conspiracy {
    background: rgb(0, 181, 0);
}

.history {
    background: rgb(221, 181, 4);
}
.art {
    background: rgb(191, 0, 166);
}
.forum {
    background: rgb(0, 182, 173);
}
.inexplicable {
    background: rgb(45, 0, 112);
}
.arctic {
    background: rgb(3, 138, 168);
}

/* SORT DROPDOWN */
.sort-controls select {
    border: none;
    background: transparent;
    font-size: 14px;
    cursor: pointer;
}

/* GRID LAYOUT */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, 20px);
    gap: 2px;
    margin-top: 20px;
}

/* SINGLE GRID ITEM */
.grid-item {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    cursor: pointer;
    border: none;
}


/* NEW EXPAND PART 
 Expand/Collapse Button */
.toggle-btn {
    margin-bottom: 20px;
    padding: 6px 10px;
    background: #241010;
    color: #f6f3f3;
    border: none;
    cursor: pointer;
    font-size: 14px;
    letter-spacing: -0.5px;
}

.clear-btn {
    margin-bottom: 20px;
    padding: 6px 10px;
    background: #f6f3f3;
    color: #241010;
    border: 1 px ;
    cursor: pointer;
    font-size: 14px;
    letter-spacing: -0.5px;
}

/* Expanded mode list layout */
.expanded .grid {
    display: block;
}

.expanded .grid-item {
    display: flex;
    align-items: center;
    width: 20px;
    height: 20px;
    margin-bottom: 10px;
    border-radius: 50%; /* keep dot shape */
}

/* Title shown in expanded mode */
.item-title {
    margin-left: 15px;
    font-size: 14px;
    letter-spacing: -0.5px;
    text-decoration: underline;
}

/* Notes area */
.item-notes {
    margin-left: auto;
    width: 250px;
    font-size: 14px;
    letter-spacing: -0.5px;
}
/*
.expanded .grid > div {
    border-bottom: 1px dashed #241010;
    padding-bottom: 10px;
}

.grid-item {
    position: relative;
}

/* Tooltip on hover */
.grid-item:hover::after {
    content: attr(data-title);
    position: absolute;
    top: -28px;
    left: 0;
    background: #f6f3f3;
    padding: 4px 6px;
    border: 1px solid #241010;
    font-size: 12px;
    white-space: nowrap;
    z-index: 999;
}

/* FLOATING LANES BETWEEN NAV & CONTENT */
#float-lanes {
    position: fixed;
    left: 300px;
    top: 0;
    height: 100vh;
    display: flex;
    gap: 20px;       /* ✅ exact 20px between lanes */
    pointer-events: none;
    z-index: 2;
}

/* EACH LANE */
.float-lane {
    position: relative;   /* ✅ creates its own positioning context */
    width: 18px;          /* exactly the dot width */
    height: 100%;
}

/* FLOATING DOT */
.float-dot {
    position: absolute;
    left: 0;              /* ✅ LOCKS dot inside its lane */
    width: 18px;
    height: 18px;
    border-radius: 50%;
    pointer-events: auto;
    cursor: pointer;
}


/*////////////*

/* TAG BAR AT TOP */
.tag-bar {
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  row-gap: 10px;   /* separate rows nicely */
  margin: -15px 0 60px 0px;
  font-size: 14px;
}

.tag-bar span {
  cursor: pointer;
  user-select: none;
}

/* ARTICLE LIST */
.notes-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: left;
}


.note-row {
  display: grid;
  grid-template-columns: auto 24px 1fr 200px;
  align-items: left;
  gap: 12px;
}

/* DOT */
.note-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
}

/* TITLE */
.note-title {
  font-size: 14px;
  text-decoration: underline;
  background:#f6f3f3;
  color: #241010;
}


/* DATE */
.note-date {
  font-size: 14px;
  opacity: 1;
  text-align: right;
}

/* WORD TAGS (RIGHT) */
.note-tags {
  display: flex;
  gap: 10px;
}

/* PLAIN WORD TAGS */
.word-tag {
  font-size: 14px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
}

/* COLOR SYSTEM */
.word-tag.blog, .note-title.blog { color: rgb(201, 0, 0); }
.word-tag.writing, .note-title.writing { color: rgb(255, 132, 0); }
.word-tag.conspiracy, .note-title.conspiracy { color: rgb(0, 181, 0); }
.word-tag.history, .note-title.history { color: rgb(221, 181, 4); }
.word-tag.forum, .note-title.forum { color: rgb(0, 182, 173); }
.word-tag.art, .note-title.art { color: rgb(191, 0, 166); }
.word-tag.inexplicable, .note-title.inexplicable { color: rgb(45, 0, 112); }

.word-tag:hover {
  text-decoration: underline;
}

.note-row {
  display: flex;
  align-items: flex-start;
  gap: 10px; /* space between dot, date, and content */
}

.link-wrapper {
  display: flex;
  flex-direction: column; /* title on top, description below */
}

.note-description {
  margin-top: 3px;
  font-size: 0.9em;
  color: #333;
}

.note-row {
  display: flex;
  align-items: flex-start;
  gap: 15px; /* space between dot, date, content, tags */
  margin-bottom: 20px; /* space between rows */
}

.note-dot {
  flex: 0 0 18px; /* fixed width for the dot */
  height: 18px;
  border-radius: 50%;
  margin-top: 5px;
}

.note-date {
  flex: 0 0 100px; /* fixed width for date column */
  font-size: 14px;
  color: #4d3b3b;
}

.link-wrapper {
  flex: 1; /* take remaining space */
  display: flex;
  flex-direction: column;
}

.note-title {
  color: #241010;
}

.note-description {
  margin-top: 3px;
  font-size: 14px;
  color: #4d3b3b;
}

.note-tags {
  flex: 0 0 auto; /* only take necessary width */
  display: flex;
  flex-wrap: wrap;
    font-size: 14px;
  gap: 5px;
}

.site-footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    color: #8a857d; /* light beige-gray */
    text-align: center;
    padding: 0px 30px 10px;
    background: transparent;
}

.site-footer a {
    color: inherit;
    text-decoration: none;
}

.site-footer a:hover {
    text-decoration: underline;
}


/* =========================
   MOBILE LAYOUT
   ========================= */

@media (max-width: 768px) {

  /* ---- NAVIGATION ---- */

  .side-nav {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 220px;
    background: #f5f5f5;
    padding: 60px 20px;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    z-index: 1000;
  }

  .side-nav.open {
    transform: translateX(0);
  }

  /* ---- NAV TOGGLE DOT ---- */

  .mobile-nav-toggle {
    position: fixed;
    top: 15px;
    left: 15px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #241010;
    z-index: 1100;
    cursor: pointer;
  }

  /* ---- CONTENT ---- */

  .content {
    margin-left: 0;
    padding: 80px 20px 40px;
  }

  /* ---- TYPOGRAPHY ---- */

  .headline {
    font-size: clamp(5rem, 8vw, 2.4rem);
    line-height: 1;
    letter-spacing: -0.1em;
  }

  .subcopy {
    font-size: clamp(1.9rem, 6vw, 1.1rem);
    max-width: 100%;
    line-height: 1.1;
    letter-spacing: -0.05em;
  }

  /* ---- TAG LEGEND ---- */

  .tag-row {
    flex-wrap: wrap;
    gap: 12px 18px;
    font-size: 0.85rem;
  }

   .note-dot,
  .tag-dot {
    width: 25px;
    height: 25px;
    min-width: 25px;
    min-height: 25px;
  }

  /* ---- GRID ---- */

  .grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(30px, 30px));
    gap: 5px;
    width: 90%;
  }

    /* ---- DOTS ---- */
  /* IMPORTANT: dot size stays EXACTLY the same */

/* TAGS + SORT */
.tag-row {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: clamp(2rem, 6vw, 1.1rem);
    margin-bottom: 30px;
    width: 90%;
}

/* SINGLE GRID ITEM */
.grid-item {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    border: none;
}

/* TAG BAR AT TOP */
.tag-bar {
  display: flex;
  gap: 16px;
  margin: -15px 0 60px 0px;
  font-size: clamp(2rem, 6vw, 1.1rem);
  width:auto;
}

.tag-bar span {
  cursor: pointer;
  user-select: none;
}

/* ARTICLE LIST */
.notes-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: left;
}

.note-row {
  display: grid;
  grid-template-columns: 10% auto auto 20%;
  align-items: left;
  gap: 12px;
}

/* DOT */
.note-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
}

/* TITLE */
.note-title {
  font-size: clamp(2rem, 6vw, 1.1rem);
  text-decoration: underline;
  background:#f6f3f3;
  color: #241010;
}


/* DATE */
.note-date {
  font-size: clamp(2rem, 6vw, 1.1rem);
  opacity: 1;
  text-align: right;
}

/* WORD TAGS (RIGHT) */
.note-tags {
  display: flex;
  gap: 10px;
}

/* PLAIN WORD TAGS */
.word-tag {
  font-size: clamp(2rem, 6vw, 1.1rem);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
}

}

