.memory-timeline{margin:1rem 0;padding:1rem;border:1px solid var(--border,#e3e8ed);border-radius:1.2rem;background:var(--card,#fbf8f3);box-shadow:var(--shadow-card,0 8px 22px rgba(23,35,50,.06))}.memory-timeline h2{margin:.1rem 0 .8rem}.memory-timeline__scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(13rem,16rem);gap:.85rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:.2rem .1rem .9rem}.memory-timeline__entry{appearance:none;position:relative;display:grid;grid-template-rows:auto auto auto;gap:.5rem;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;scroll-snap-align:start}.memory-timeline__entry:before{content:"";position:absolute;left:.35rem;right:-.8rem;top:2.05rem;height:2px;background:linear-gradient(90deg,rgba(43,111,98,.18),rgba(43,111,98,.7),rgba(43,111,98,.18))}.memory-timeline__date{position:relative;color:#2f5149;font-size:.82rem;font-weight:800;white-space:nowrap}.memory-timeline__marker{position:relative;width:.68rem;height:.68rem;margin-left:.28rem;border:2px solid var(--primary,#2b6f62);border-radius:999px;background:var(--card,#fbf8f3);box-shadow:0 0 0 4px rgba(43,111,98,.12)}.memory-timeline__card{display:grid;grid-template-rows:auto 1fr;gap:.65rem;min-height:9.6rem;padding:.75rem;border:1px solid #dce4ea;border-radius:1rem;background:linear-gradient(180deg,#fff 0%,#f8fbf9 100%);box-shadow:0 6px 16px rgba(23,35,50,.07);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.memory-timeline__entry:hover .memory-timeline__card,.memory-timeline__entry:focus-visible .memory-timeline__card{border-color:rgba(43,111,98,.55);box-shadow:0 10px 24px rgba(23,35,50,.12);transform:translateY(-1px)}.memory-timeline__card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:.75rem;border:1px solid #e3e8ed;background:#eef3f1}.memory-timeline__card strong{display:block;color:#5f6e7b;font-size:.78rem}.memory-timeline__card span span{display:block;margin-top:.25rem;font-weight:800;line-height:1.2}.memory-section{margin:1rem 0;padding:1rem;border:1px solid rgba(43,111,98,.18);border-radius:1.2rem;background:#f8fbf9}.memory-section__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.memory-section__header h2{margin:.1rem 0 .3rem}.memory-section__header p{margin:0;color:var(--muted,#677282)}.memory-section__button,.memory-back-link{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--primary,#2b6f62);color:#fff;text-decoration:none;font-weight:900;padding:.75rem 1rem}.memory-sheet-backdrop{position:fixed;inset:0;background:rgba(10,18,28,.42);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:90}.memory-sheet-backdrop.is-open{opacity:1;pointer-events:auto}.memory-sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,105%);width:min(760px,100%);max-height:88vh;overflow:auto;background:var(--card,#fbf8f3);border-radius:1.4rem 1.4rem 0 0;padding:1rem 1rem 1.3rem;box-shadow:0 -18px 42px rgba(15,23,42,.22);z-index:91;transition:transform .22s ease}.memory-sheet.is-open{transform:translate(-50%,0)}.memory-sheet__close{float:right;border:0;border-radius:999px;background:#edf2f1;font-size:1.6rem;width:2.4rem;height:2.4rem;cursor:pointer}.memory-sheet h2{margin:.4rem 2.8rem .2rem 0}.memory-sheet__date,.memory-sheet__contributor{color:var(--muted,#677282);font-weight:700}.memory-sheet img{width:100%;max-height:42vh;object-fit:cover;border-radius:1rem;margin:.7rem 0}.village-memory-contribution{margin-top:1rem}.village-memory-empty{padding:1rem;border:1px dashed var(--border,#e3e8ed);border-radius:1rem;color:var(--muted,#677282)}

.village-memory-rich-content {
    padding: clamp(1rem, 2vw, 1.35rem);
    margin: 1rem 0 1.2rem;
    border: 1px solid var(--border, #e3e8ed);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: var(--shadow-soft, 0 10px 30px rgba(23, 35, 50, .07));
    overflow-x: auto;
    line-height: 1.7;
}

.village-memory-rich-content h2,
.village-memory-rich-content h3,
.village-memory-rich-content h4 {
    margin: 1.2rem 0 .65rem;
    color: #172233;
    line-height: 1.2;
}

.village-memory-rich-content h2:first-child,
.village-memory-rich-content h3:first-child,
.village-memory-rich-content h4:first-child,
.village-memory-rich-content p:first-child {
    margin-top: 0;
}

.village-memory-rich-content p,
.village-memory-rich-content ul,
.village-memory-rich-content ol,
.village-memory-rich-content blockquote,
.village-memory-rich-content table,
.village-memory-rich-content figure {
    margin: 0 0 1rem;
}

.village-memory-rich-content img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 1rem;
    margin: .75rem auto;
}

.village-memory-rich-content figure {
    max-width: 100%;
}

.village-memory-rich-content figcaption {
    color: var(--muted, #677282);
    font-size: .92rem;
    text-align: center;
}

.village-memory-rich-content blockquote {
    border-left: 4px solid #2b6f62;
    padding: .35rem 0 .35rem 1rem;
    color: #3b4f68;
    background: #f7faf8;
}

.village-memory-rich-content a {
    color: #1f665b;
    overflow-wrap: anywhere;
}

.village-memory-rich-content table {
    width: 100%;
    min-width: min(100%, 34rem);
    border-collapse: collapse;
}

.village-memory-rich-content th,
.village-memory-rich-content td {
    border: 1px solid var(--border, #e3e8ed);
    padding: .55rem;
    vertical-align: top;
}

@media (max-width: 640px) {
    .village-memory-rich-content {
        border-radius: 1rem;
        padding: .95rem;
    }
}
