/* screen.css — Savvy, neocities/kawaii. A narrow column on a tiled cloudy sky,
   over-decorated and cute. Reads tokens.css. Text stays dark-on-light for AA. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    color: var(--fg);
    font-family: var(--font-body);
    font-size: 1.02rem;
    line-height: 1.65;
    background-color: var(--sky);
    background-image: var(--sky-clouds), linear-gradient(180deg, #d6eeff, #eef8ff);
    background-repeat: repeat, no-repeat;
    background-attachment: fixed;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--purple); text-underline-offset: 2px; }
h1, h2, h3 { font-family: var(--font-display); color: var(--inkb); line-height: 1.15; }

/* ===== the narrow site panel ===== */
.site {
    max-width: var(--site-w);
    margin: 26px auto 60px;
    padding: var(--s-3) var(--s-3) var(--s-2);
    background: var(--paper);
    border: var(--frame);
    border-radius: 26px;
    box-shadow: var(--shadow), 0 0 0 7px rgba(255, 255, 255, .45), 0 0 0 9px var(--lav);
    position: relative;
}
.site::before, .site::after {  /* corner sparkles */
    content: "✦"; position: absolute; font-size: 1.4rem; color: var(--hotpink);
    top: -6px;
}
.site::before { left: 14px; }
.site::after { right: 14px; content: "✿"; color: var(--purple); }
.wrap { width: 100%; padding: 0; margin: 0; }

/* ===== nav: a row of candy tabs ===== */
.site-nav {
    display: flex; align-items: center; justify-content: center; gap: var(--s-2);
    flex-wrap: wrap; padding-bottom: var(--s-2);
    border-bottom: 3px dotted var(--lav);
}
.brand {
    font-family: var(--font-display); font-weight: 800; font-size: 1.4rem;
    text-decoration: none; color: var(--hotpink); width: 100%; text-align: center;
    text-shadow: 2px 2px 0 #fff, 3px 3px 0 var(--lav);
}
.nav ul { list-style: none; display: flex; gap: 6px; margin: 6px 0 0; padding: 0; flex-wrap: wrap; justify-content: center; }
.nav a {
    text-decoration: none; color: var(--inkb); font-weight: 600; font-family: var(--font-display);
    padding: 4px 14px; border-radius: var(--radius-pill);
    background: var(--mint); border: 2px solid #fff; box-shadow: var(--shadow-sm);
    transition: transform .12s ease;
}
.nav li:nth-child(2n) a { background: var(--pink); }
.nav li:nth-child(3n) a { background: var(--butter); }
.nav li:nth-child(4n) a { background: var(--peach); }
.nav a:hover { transform: translateY(-2px) rotate(-3deg); }

/* ===== hero: header banner with clouds ===== */
.hero {
    text-align: center; position: relative; overflow: hidden;
    margin: var(--s-3) 0; padding: var(--s-4) var(--s-3) var(--s-3);
    background: var(--grad-sky); border-radius: 22px; border: 3px solid #fff;
    box-shadow: var(--shadow-sm);
}
.hero::before, .hero::after {  /* fluffy CSS clouds */
    content: ""; position: absolute; top: 16px; width: 46px; height: 16px;
    background: #fff; border-radius: 20px;
    box-shadow: 16px 6px 0 -2px #fff, -16px 6px 0 -3px #fff, 0 8px 0 0 #fff;
}
.hero::before { left: 18px; }
.hero::after { right: 22px; top: 30px; }
.hero h1 {
    margin: var(--s-1) 0; font-size: clamp(2.2rem, 6vw, 3.2rem); color: var(--inkb);
    text-shadow: 2px 2px 0 #fff;
}
.hero .kicker { font-family: var(--font-hand); font-size: 1rem; color: var(--purple); margin: 0; }
.cta-row { display: flex; gap: var(--s-2); justify-content: center; flex-wrap: wrap; margin-top: var(--s-3); }

/* ===== buttons: chunky candy ===== */
.btn {
    display: inline-block; padding: 9px 20px; cursor: pointer; border: 3px solid #fff;
    font-family: var(--font-display); font-weight: 600; font-size: 1rem;
    color: var(--inkb); text-decoration: none;
    background: var(--butter); border-radius: var(--radius-pill); box-shadow: var(--shadow-sm);
    transition: transform .12s ease;
}
.btn:hover { transform: translateY(-2px) rotate(-2deg); }
.btn-primary { background: var(--hotpink); color: #fff; }

/* ===== section headers with flanking sparkles ===== */
.featured h2, .latest h2, .page-head h1, .booking h2 {
    text-align: center; margin: var(--s-3) 0 var(--s-2);
}
.featured h2::before, .latest h2::before { content: "｡˚ "; color: var(--hotpink); }
.featured h2::after, .latest h2::after { content: " ˚｡"; color: var(--purple); }

/* ===== featured tiles: 2-up pastel boxes ===== */
.tile-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-2); }
.tile {
    display: flex; align-items: center; justify-content: center; text-align: center;
    min-height: 84px; padding: var(--s-2);
    font-family: var(--font-display); font-weight: 600; color: var(--inkb); text-decoration: none;
    border: 3px solid #fff; border-radius: 16px; box-shadow: var(--shadow-sm);
    transition: transform .14s ease;
}
.tile:nth-child(1) { background: var(--pink); }
.tile:nth-child(2) { background: var(--mint); }
.tile:nth-child(3) { background: var(--butter); }
.tile:nth-child(4) { background: var(--lav); }
.tile:hover { transform: rotate(-2deg) scale(1.03); }

/* ===== post / book cards ===== */
.post-grid, .book-grid { display: grid; gap: var(--s-3); grid-template-columns: 1fr 1fr; padding-block: var(--s-2); }
.post-card, .book-card {
    background: #fff; border: 3px solid var(--lav); border-radius: 16px;
    box-shadow: var(--shadow-sm); overflow: hidden; transition: transform .14s ease;
}
.post-card:nth-child(2n), .book-card:nth-child(2n) { border-color: var(--pink); }
.post-card:hover, .book-card:hover { transform: rotate(-1deg) translateY(-3px); }
.post-card-link, .book-card-link { display: block; color: var(--inkb); text-decoration: none; }
.post-card-img, .book-card-cover { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.book-card-cover { aspect-ratio: 2/3; }
.post-card-body { padding: var(--s-2); }
.post-card-title, .book-card-title { font-family: var(--font-display); font-size: 1.1rem; margin: 4px 0; }
.book-card-title { padding: 0 var(--s-2) var(--s-2); }
.post-card-excerpt { margin: 0; font-size: .9rem; color: #7a6a9c; }

/* ===== single post / page: content within the panel (no extra frame) ===== */
.post, .page { background: transparent; max-width: none; margin: 0; box-shadow: none; }
.post-content, .page-content { max-width: 100%; }
.post-content h2, .page-content h2 { margin-top: var(--s-3); }
.post-content ul, .page-content ul { list-style: none; padding-left: 1.4em; }
.post-content ul li::before, .page-content ul li::before { content: "✿ "; color: var(--hotpink); margin-left: -1.4em; }
.feature-image { width: 100%; border-radius: 14px; border: 3px solid #fff; box-shadow: var(--shadow-sm); margin-bottom: var(--s-3); }
.post-content blockquote, .page-content blockquote {
    margin: var(--s-3) 0; padding: var(--s-2) var(--s-3);
    border: 2px dashed var(--hotpink); background: #fff4fb; border-radius: 14px;
    font-family: var(--font-hand);
}
.faq { margin: var(--s-2) 0; padding: var(--s-2); background: #f4efff; border: 2px solid var(--lav); border-radius: 14px; }
.faq summary { font-family: var(--font-display); font-weight: 600; cursor: pointer; }

/* book review header */
.book-head { display: flex; gap: var(--s-3); flex-wrap: wrap; align-items: flex-start; margin-bottom: var(--s-3); }
.book-cover { width: 160px; border-radius: 12px; border: 4px solid #fff; box-shadow: var(--shadow); }
.book-meta { flex: 1; min-width: 200px; }
.book-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: var(--s-2) 0 0; }

/* ===== tags: candy pills ===== */
.tag-pill {
    display: inline-block; padding: 3px 12px; border-radius: var(--radius-pill);
    text-decoration: none; color: var(--inkb); font-weight: 700; font-size: .78rem;
    border: 2px solid #fff; background: var(--mint);
}
.tag-pill:nth-of-type(3n+1) { background: var(--pink); }
.tag-pill:nth-of-type(3n+2) { background: var(--butter); }
.tag-pill:nth-of-type(3n+3) { background: var(--lav); }
.post-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--s-3); padding-top: var(--s-2); border-top: 3px dotted var(--lav); }

/* ===== booking form ===== */
.booking { margin-top: var(--s-3); padding: var(--s-3); background: #f4fbff; border: 3px dashed var(--sky2); border-radius: 18px; }
.booking h2 { margin-top: 0; }
.form { display: grid; gap: var(--s-2); }
.form label { display: grid; gap: 4px; font-weight: 700; font-family: var(--font-display); color: var(--inkb); }
.form input, .form select, .form textarea {
    padding: 10px 14px; border: 2px solid var(--lav); border-radius: 12px;
    font: inherit; background: #fff; color: var(--ink);
}
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--hotpink); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { font-weight: 700; min-height: 1.2em; color: var(--purple); }
.form-done { padding: var(--s-3); border-radius: 14px; background: var(--mint); border: 3px solid #fff; font-family: var(--font-hand); }

/* ===== fun facts: cute chips ===== */
.funfacts { text-align: center; }
.facts { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-2); justify-content: center; padding: 0; margin: var(--s-2) 0; }
.facts li {
    font-family: var(--font-display); font-weight: 600; color: var(--inkb);
    padding: 8px 16px; background: #fff; border: 3px solid var(--pink); border-radius: var(--radius-pill);
    box-shadow: var(--shadow-sm);
}
.facts li:nth-child(2n) { border-color: var(--sky2); transform: rotate(-2deg); }
.facts li:nth-child(3n) { border-color: var(--mint); transform: rotate(2deg); }

/* ===== pagination ===== */
.pagination { text-align: center; margin-top: var(--s-3); font-family: var(--font-display); }
.pagination a { text-decoration: none; }

/* ===== footer: maximally cute ===== */
.site-footer {
    margin-top: var(--s-3); padding-top: var(--s-2); text-align: center;
    border-top: 3px dotted var(--lav); font-family: var(--font-body);
}
.footer-nav ul { list-style: none; display: flex; gap: var(--s-2); padding: 0; margin: 0 0 var(--s-1); flex-wrap: wrap; justify-content: center; }
.footer-nav a { color: var(--purple); font-weight: 700; text-decoration: none; }
.footer-contact a { font-family: var(--font-display); font-weight: 600; color: var(--hotpink); }
.footer-charm { font-family: var(--font-hand); color: var(--purple); margin: var(--s-1) 0; }
.footer-counter {
    display: inline-block; margin: 6px 0; padding: 3px 10px; font-family: monospace; font-size: .85rem;
    color: #b6f; background: #1a1030; border-radius: 6px; letter-spacing: 2px;
}
.copyright { color: #9a85b8; font-size: .85rem; }

/* ===== error ===== */
.error { text-align: center; padding-block: var(--s-5); }
.error h1 { font-size: 4rem; margin: 0; color: var(--hotpink); text-shadow: 2px 2px 0 #fff; }

/* ===== mobile ===== */
@media (max-width: 560px) {
    .site { margin: 12px; padding: var(--s-2); }
    .tile-row, .post-grid, .book-grid { grid-template-columns: 1fr; }
}

/* ===== Koenig editor cards (required by Ghost) ===== */
.kg-width-wide { position: relative; width: 100%; }
.kg-width-full { position: relative; width: 100%; }
.kg-width-full img { width: 100%; }
.kg-gallery-container { display: flex; flex-direction: column; max-width: 100%; }
.kg-gallery-row { display: flex; flex-direction: row; justify-content: center; }
.kg-gallery-image img { display: block; margin: 0; width: 100%; height: 100%; }
.kg-gallery-row:not(:first-of-type) { margin-top: 8px; }
.kg-gallery-image:not(:first-of-type) { margin-left: 8px; }
.kg-bookmark-card { width: 100%; margin-block: var(--s-3); }
.kg-bookmark-container { display: flex; min-height: 124px; border: 3px solid var(--lav); border-radius: 14px; text-decoration: none; color: var(--ink); overflow: hidden; background: #fff; }
.kg-bookmark-content { flex-basis: 0; flex-grow: 1; padding: var(--s-2); }
.kg-bookmark-title { font-family: var(--font-display); font-weight: 600; }
.kg-bookmark-description { color: #7a6a9c; margin-top: 4px; }
.kg-bookmark-metadata { display: flex; align-items: center; margin-top: var(--s-1); font-size: .85rem; }
.kg-bookmark-icon { width: 18px; height: 18px; margin-right: 6px; }
.kg-bookmark-author { font-weight: 700; }
.kg-bookmark-author::after { content: "•"; margin: 0 6px; opacity: .6; }
.kg-bookmark-publisher { opacity: .7; }
.kg-bookmark-thumbnail { position: relative; min-width: 33%; max-height: 100%; }
.kg-bookmark-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
