:root {
    --kto-theme-text: #1f2937;
    --kto-theme-muted: #64748b;
    --kto-theme-border: #e5e7eb;
    --kto-theme-bg: #ffffff;
    --kto-theme-soft: #f8fafc;
    --kto-theme-pink: #ff385c;
    --kto-theme-radius: 24px;
    --kto-theme-container: 1184px;
    --kto-theme-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--kto-theme-bg); color: var(--kto-theme-text); font-family: "Plus Jakarta Sans", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.7; }
img, svg, video { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
.screen-reader-text, .kto-theme-skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kto-theme-skip-link:focus { position: fixed; left: 16px; top: 16px; z-index: 99999; padding: 10px 14px; border-radius: 999px; background: var(--kto-theme-pink); color: #ffffff; text-decoration: none; }
.kto-theme-container { width: min(var(--kto-theme-container), calc(100% - 40px)); margin-inline: auto; }
.kto-theme-header { position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid rgba(148, 163, 184, 0.2); background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(16px); }
.admin-bar .kto-theme-header { top: 32px; }
.kto-theme-header__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.kto-theme-brand { display: inline-flex; align-items: center; min-width: 0; }
.kto-theme-brand img, .custom-logo { width: auto; max-height: 48px; display: block; }
.kto-theme-brand__text { color: var(--kto-theme-pink); font-size: 22px; font-weight: 800; letter-spacing: -0.04em; text-decoration: none; }
.kto-theme-navigation { display: flex; align-items: center; }
.kto-theme-menu, .kto-theme-footer-menu { margin: 0; padding: 0; list-style: none; }
.kto-theme-menu { display: flex; align-items: center; gap: 24px; }
.kto-theme-menu a { color: var(--kto-theme-text); font-size: 14px; font-weight: 800; text-decoration: none; }
.kto-theme-menu a:hover, .kto-theme-menu a:focus { color: var(--kto-theme-pink); }
.kto-theme-menu-toggle { display: none; width: 42px; height: 42px; padding: 0; border: 1px solid var(--kto-theme-border); border-radius: 12px; background: #ffffff; cursor: pointer; }
.kto-theme-menu-toggle span:not(.screen-reader-text) { width: 18px; height: 2px; margin: 4px auto; border-radius: 999px; background: var(--kto-theme-text); display: block; }
.kto-theme-main { min-height: 60vh; }
.kto-theme-page-header { padding: 72px 0 24px; }
.kto-theme-page-header h1, .kto-theme-empty-state h1, .kto-theme-entry-title { margin: 0; color: var(--kto-theme-text); font-size: clamp(32px, 5vw, 56px); line-height: 1.08; letter-spacing: -0.05em; }
.kto-theme-entry-content { width: 100%; }
.kto-theme-entry-content > * { margin-top: 0; }
.kto-theme-entry-content > *:last-child { margin-bottom: 0; }
.kto-theme-page > .kto-theme-entry-content, .kto-theme-single, .kto-theme-archive, .kto-theme-search, .kto-theme-empty-state { padding: 56px 0; }
.kto-theme-front-page > .kto-theme-entry-content { padding: 0; }
.kto-theme-post-list { display: grid; gap: 24px; }
.kto-theme-card { border: 1px solid var(--kto-theme-border); border-radius: var(--kto-theme-radius); background: #ffffff; box-shadow: var(--kto-theme-shadow); overflow: hidden; }
.kto-theme-card__thumbnail { display: block; }
.kto-theme-card__thumbnail img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.kto-theme-card__body { padding: 28px; }
.kto-theme-card .kto-theme-entry-title { margin-bottom: 12px; font-size: clamp(24px, 4vw, 36px); }
.kto-theme-card .kto-theme-entry-title a { text-decoration: none; }
.kto-theme-entry-meta { margin-bottom: 16px; color: var(--kto-theme-muted); font-size: 13px; font-weight: 700; }
.kto-theme-empty-state { text-align: center; }
.kto-theme-empty-state p { max-width: 560px; margin: 16px auto 0; color: var(--kto-theme-muted); }
.kto-theme-footer { padding: 48px 0; border-top: 1px solid var(--kto-theme-border); background: var(--kto-theme-soft); }
.kto-theme-footer__inner { display: grid; gap: 24px; }
.kto-theme-footer-menu { display: flex; flex-wrap: wrap; gap: 14px 24px; }
.kto-theme-footer-menu a { color: var(--kto-theme-muted); font-size: 14px; font-weight: 700; text-decoration: none; }
.kto-theme-footer-menu a:hover, .kto-theme-footer-menu a:focus { color: var(--kto-theme-pink); }
.kto-theme-footer__copyright { margin: 0; color: var(--kto-theme-muted); font-size: 13px; }
@media (max-width: 782px) { .admin-bar .kto-theme-header { top: 46px; } }
@media (max-width: 767px) {
    .kto-theme-container { width: calc(100% - 32px); }
    .kto-theme-header__inner { min-height: 64px; }
    .kto-theme-menu-toggle { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; }
    .kto-theme-navigation { position: fixed; left: 16px; right: 16px; top: calc(100% + 8px); padding: 16px; border: 1px solid var(--kto-theme-border); border-radius: 18px; background: #ffffff; box-shadow: var(--kto-theme-shadow); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: 0.2s ease; }
    .kto-theme-navigation.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
    .kto-theme-menu { width: 100%; display: grid; gap: 4px; }
    .kto-theme-menu a { padding: 10px 8px; display: block; }
    .kto-theme-page-header, .kto-theme-page > .kto-theme-entry-content, .kto-theme-single, .kto-theme-archive, .kto-theme-search, .kto-theme-empty-state { padding: 36px 0; }
    .kto-theme-card__body { padding: 22px; }
    .kto-theme-footer { padding: 36px 0; }
}
