.paper-reveal {
 position: relative;
 isolation: isolate;
}
.paper-reveal::before,
.paper-reveal::after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 height: 1px;
 background: linear-gradient(
 to right,
 transparent 0%,
 rgba(183, 129, 104, 0.35) 18%,
 rgba(183, 129, 104, 0.55) 50%,
 rgba(183, 129, 104, 0.35) 82%,
 transparent 100%
 );
 transform: scaleX(0);
 opacity: 0;
 pointer-events: none;
 z-index: 2;
}
.paper-reveal::before {
 top: 0;
 transform-origin: left center;
 transition:
 transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
 opacity 0.45s ease 0.1s;
}
.paper-reveal::after {
 bottom: 0;
 transform-origin: right center;
 transition:
 transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.1s,
 opacity 0.45s ease 0.15s;
}
.paper-reveal:hover::before,
.paper-reveal:hover::after {
 transform: scaleX(1);
 opacity: 1;
}

.dark-mode .paper-reveal::before,
.dark-mode .paper-reveal::after {
 background: linear-gradient(
 to right,
 transparent 0%,
 rgba(220, 175, 150, 0.32) 18%,
 rgba(220, 175, 150, 0.5) 50%,
 rgba(220, 175, 150, 0.32) 82%,
 transparent 100%
 );
}

.glow-card {
 position: relative;
 overflow: hidden;
 isolation: isolate;
}
.glow-card::after {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background: radial-gradient(
 240px circle at var(--mx, 50%) var(--my, 50%),
 rgba(229, 200, 170, 0.18),
 transparent 60%
 );
 opacity: 0;
 transition: opacity 0.5s ease;
 z-index: 0;
 mix-blend-mode: multiply;
}
.glow-card:hover::after { opacity: 1; }

.dark-mode .glow-card::after {
 background: radial-gradient(
 240px circle at var(--mx, 50%) var(--my, 50%),
 rgba(220, 200, 170, 0.12),
 transparent 60%
 );
 mix-blend-mode: screen;
}

.glow-card > * { position: relative; z-index: 1; }

.chapter-rail {
 position: fixed;
 right: clamp(0.7rem, 2vw, 1.3rem);
 top: 50%;
 transform: translateY(-50%);
 z-index: 80;
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 padding: 0.4rem 0.2rem;

 pointer-events: none;
 opacity: 0;
 transition: opacity 0.4s ease;
}
.chapter-rail.is-visible { opacity: 1; }

.chapter-rail-item {
 position: relative;
 display: flex;
 align-items: center;
 justify-content: flex-end;
 gap: 0.5rem;
 min-height: 22px;
 cursor: pointer;

 pointer-events: auto;
 -webkit-tap-highlight-color: transparent;
 color: rgba(110, 100, 88, 0.42);
 transition: color 0.3s ease;
 text-decoration: none;
}
.chapter-rail-item::before {
 content: "";
 position: absolute;
 right: -8px;
 top: 50%;
 transform: translateY(-50%) scaleX(0);
 width: 6px;
 height: 1px;
 background: currentColor;
 transform-origin: right center;
 transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.chapter-rail-item:hover {
 color: rgba(110, 100, 88, 0.85);
}
.chapter-rail-item:hover::before { transform: translateY(-50%) scaleX(1); }

.chapter-rail-num {
 font-family: "SF Mono", "Menlo", "Monaco", monospace;
 font-size: 0.6rem;
 letter-spacing: 0.18em;
 font-variant-numeric: tabular-nums;
 font-weight: 500;
}
.chapter-rail-label {
 font-family: "Kaiti SC", "STKaiti", "KaiTi", serif;
 font-size: 0.78rem;
 letter-spacing: 0.05em;
 white-space: nowrap;
 opacity: 0;
 transform: translateX(6px);
 transition:
 opacity 0.3s ease,
 transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
 pointer-events: none;
}
.chapter-rail-item:hover .chapter-rail-label { opacity: 1; transform: translateX(0); }
.chapter-rail-item.is-active {
 color: var(--clay, #b78168);
}
.chapter-rail-item.is-active::before { transform: translateY(-50%) scaleX(1); }
.chapter-rail-item.is-active .chapter-rail-num { font-weight: 600; }

.dark-mode .chapter-rail-item { color: rgba(220, 205, 180, 0.4); }
.dark-mode .chapter-rail-item:hover { color: rgba(220, 205, 180, 0.85); }
.dark-mode .chapter-rail-item.is-active { color: rgba(220, 175, 150, 0.92); }

@media (max-width: 768px) { .chapter-rail { display: none; } }

[data-stamp] {
 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
 letter-spacing 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-stamp].press-down { transform: translateY(2px); }
[data-stamp].press-up { transform: translateY(-2px); }

.note-card-wrap { position: relative; }
.note-num {
 position: absolute;
 left: 8px;
 bottom: 6px;
 z-index: 3;
 font-family: "SF Mono", "Menlo", "Monaco", monospace;
 font-size: 0.62rem;
 letter-spacing: 0.1em;
 color: rgba(80, 70, 60, 0.35);
 pointer-events: none;
 opacity: 0.85;
 transition: color 0.3s ease, opacity 0.3s ease;
 font-variant-numeric: tabular-nums;
}
.note-card-wrap:hover .note-num { color: rgba(80, 70, 60, 0.7); }
.note-card-wrap.is-pinned .note-num { left: 26px; }

.dark-mode .note-num { color: rgba(220, 205, 180, 0.4); }
.dark-mode .note-card-wrap:hover .note-num { color: rgba(220, 205, 180, 0.75); }

@media (prefers-reduced-motion: reduce) {
 .paper-reveal::before,
 .paper-reveal::after,
 .glow-card::after,
 .chapter-rail,
 .chapter-rail-item::before,
 .chapter-rail-item .chapter-rail-label,
 [data-stamp] {
 transition: none !important;
 animation: none !important;
 }
 .paper-reveal:hover::before,
 .paper-reveal:hover::after { transform: scaleX(1); opacity: 1; }
 .glow-card:hover::after { opacity: 1; }
}