@import url('https://fonts.googleapis.com/css2?family=Indie+Flower&display=swap');


:root {
    --bg: #ffffff;
    --text: #222;
    --desc: #555;
    --border: #ccc;
    --link: #0072ff;
    --hover: #f7f7f7;
}

[data-theme="dark"] {
    --bg: #121212;
    --text: #eee;
    --desc: #aaa;
    --border: #333;
    --link: #66b2ff;
    --hover: #1e1e1e;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    padding: 20px;
}

body {
    height: 100%;
    font-family: 'Kode Mono', monospace;
    background: var(--bg);
    color: var(--text);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px;
    text-align: center;
    position: relative;
}

.toggle-theme {
    position: fixed; /* better than absolute for top-right */
    top: 20px;
    right: 20px;
    background: var(--hover); /* light grey / dark background based on theme */
    border: 2px solid var(--border);
    border-radius: 50%; /* makes it a circle! */
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    cursor: pointer;
    color: var(--text);
    z-index: 1000;
    transition: background 0.3s, color 0.3s, border 0.3s;
}

/* top-left back button (distinct from the theme toggle) */
.back-button {
    position: fixed;
    top: 20px;
    left: 20px;
    background: var(--hover);
    color: var(--text);
    border: 1px solid var(--border);
    padding: 8px 12px;
    border-radius: 8px;
    text-decoration: none;
    z-index: 1001; /* above most content but below toggle which is 1000; keep it above by using 1001 */
    font-size: 14px;
}

.back-button:hover {
    background: var(--hover);
}

.logo {
    font-family: "Press Start 2P", system-ui;
    font-style: normal;
    font-size: 35px;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    margin-bottom: 20px;
    padding:20px;
    background-image: linear-gradient(to left, rgb(247, 208, 247), rgba(95, 0, 164, 0.428), rgba(0, 0, 255, 0.393), rgba(0, 128, 0, 0.273), rgb(185, 195, 0), rgba(255, 166, 0, 0.581), rgba(255, 0, 0, 0.784));
}

.logo a {
    color: inherit;
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
}

.welcome {
    font-size: 24px;
    margin-bottom: 10px;
}

.description {
    font-size: 16px;
    color: var(--desc);
    margin-bottom: 20px;
}

/* add a bit of spacing when a description follows an h2 (e.g., seattle ferry / film by kolyroll) */
h2 + .description {
    margin-top: 6px;
}

.disclaimer {
    background-image: linear-gradient(to left, rgb(247, 208, 247), rgba(95, 0, 164, 0.428), rgba(0, 0, 255, 0.393), rgba(0, 128, 0, 0.273), rgb(185, 195, 0), rgba(255, 166, 0, 0.581), rgba(255, 0, 0, 0.784));
    color: var(--text);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 40px;
    display: inline-block;
}

.section {
    width: 100%;
    max-width: 500px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
}

.link-button {
    border: 1px solid var(--border);
    padding: 12px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--text);
    font-size: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 0.3s;
    justify-content: center;
    cursor: pointer;
}

.link-button:hover {
    background: var(--hover);
}

.star {
    font-size: 18px;
    text-align:left;
}

.photo-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 20px;
    text-align: center;
    margin-top: 10px;
    width: 100%;
    max-width: 720px; /* keep the photo card from stretching too wide */
    margin-left: auto;
    margin-right: auto;
}

/* Slideshow styles */
.slideshow {
    position: relative;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    overflow: hidden;
}

.slide {
    display: none;
}

.slide img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.prev, .next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.5);
    color: white;
    border: none;
    padding: 8px 12px;
    cursor: pointer;
    border-radius: 4px;
}

.prev { left: 8px; }
.next { right: 8px; }

.dots {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 12px;
}

.dot {
    width: 10px;
    height: 10px;
    background: var(--border);
    border-radius: 50%;
    cursor: pointer;
}

.dot.active { background: var(--link); }


.photo-card h2 {
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 20px;
}

.photo-card img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;
    margin: 0 auto 15px auto;
    object-fit: cover;
    padding: 6px; /* small padding so image doesn't touch the card edges */
    background: var(--bg);
}

/* Make diary text slightly muted and spaced */
.diary {
    color: var(--desc);
    font-size: 14px;
    margin-bottom: 12px;
    text-align: left;
}

.caption {
    padding: 0%;
    font-size: 14px;
    color: var(--desc);
    font-style: italic;
    line-height: 1.6;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

/* image wrapper for overlay captions */
.image-wrap {
    position: relative;
    display: block;
}

.image-wrap img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
}


.caption.overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 12px 14px;
    color: var(--text); /* dark text to contrast the white gradient */
    font-style: italic;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    text-align: left;
    z-index: 3; /* ensure caption sits above the gradient */
}

/* ensure the non-overlay caption style doesn't interfere */
.photo-card .caption:not(.overlay) {
    position: static;
    background: transparent;
    color: var(--desc);
}

/* captions placed below images and centered */
.caption.below {
    text-align: center;
    color: var(--desc);
    font-style: italic;
    margin: 8px 0 16px 0;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

footer {
    font-size: 12px;
    color: var(--desc);
    margin-top: 40px;
}

footer a {
    color: var(--link);
    text-decoration: none;
    margin-left: 4px;
}

details summary {
    list-style: none;
}

details summary::-webkit-details-marker {
    display: none;
}

summary {
    display: flex;
    justify-content: center;
}