/* ==========================================================
   Structure only (layout, header, footer, text pages). site.css sets the look
   by overriding the --core-* variables and adding its own CSS.
   ========================================================== */
:root{
  --core-bg:#fff; --core-text:#1a1a1a; --core-muted:#555; --core-line:#e5e5e5; --core-accent:#333;
  --core-header-bg:#fff; --core-footer-bg:#111; --core-footer-text:#f2f2f2; --core-footer-muted:#9a9a9a;
  --core-head-font:Georgia,'Times New Roman',serif;
  --core-body-font:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --core-wide:1080px; --core-prose:680px; --core-gutter:24px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--core-bg);color:var(--core-text);font-family:var(--core-body-font);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video{max-width:100%;height:auto}
a{color:inherit}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:#000;color:#fff;padding:10px 14px;text-decoration:none}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--core-accent);outline-offset:2px}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--core-header-bg);padding-top:env(safe-area-inset-top,0px)}
.admin-bar .site-header{top:46px}
@media (min-width:783px){.admin-bar .site-header{top:32px}}
.site-header__bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:var(--core-wide);margin:0 auto;padding:10px 16px}
.site-brand{text-decoration:none;flex-shrink:0}
.site-header__actions{display:flex;align-items:center;gap:6px}
.site-header__button{display:inline-block;text-decoration:none;white-space:nowrap}
.site-nav-toggle{width:44px;height:44px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:0;padding:0;cursor:pointer}
.site-nav-toggle span{display:block;width:22px;height:2px;background:currentColor;transition:transform .2s,opacity .2s}
.site-nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.site-nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.site-nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--core-header-bg);border-bottom:1px solid var(--core-line);max-height:calc(100vh - 80px);overflow-y:auto}
.site-nav.is-open{display:block}
.site-nav__list,.site-nav__list .sub-menu{list-style:none;margin:0;padding:0}
.site-nav__list{padding:4px 16px 16px}
.site-nav__list a{display:block;text-decoration:none;padding:14px 0;border-bottom:1px solid var(--core-line)}
.site-nav__list .sub-menu a{padding-left:16px}
.site-nav__list .menu-button{display:none} /* shown as a button in the header instead */
@media (min-width:900px){
  .site-header__bar{padding:16px 24px}
  .site-nav{display:block;position:static;border:0;max-height:none;overflow:visible;margin-left:auto;background:none}
  .site-nav__list{display:flex;align-items:center;gap:28px;padding:0}
  .site-nav__list a{border:0;padding:8px 0}
  .site-nav__list .menu-item-has-children{position:relative}
  .site-nav__list .sub-menu{display:none;position:absolute;left:-16px;top:100%;min-width:220px;background:var(--core-header-bg);border:1px solid var(--core-line);padding:6px 16px;z-index:10}
  .site-nav__list .menu-item-has-children:hover>.sub-menu,.site-nav__list .menu-item-has-children:focus-within>.sub-menu{display:block}
  .site-nav__list .sub-menu a{padding:10px 0}
  .site-nav-toggle{display:none}
}

/* ---------- Main ---------- */
.site-main{display:block}
.page-full{width:100%}

/* ---------- Reading pages (posts, text pages) ---------- */
.prose-page{max-width:calc(var(--core-prose) + var(--core-gutter)*2);margin:0 auto;padding:48px var(--core-gutter) 72px}
.prose-page__meta{margin:0 0 8px;color:var(--core-muted);font-size:14px}
.prose-page__title{font-family:var(--core-head-font);margin:0 0 28px;line-height:1.1}
.prose-page__image{margin:0 0 28px}
.prose-page__back{margin-top:48px}
.prose{font-size:18px;line-height:1.75}
.prose>*+*{margin-top:1.1em}
.prose h2,.prose h3,.prose h4{font-family:var(--core-head-font);line-height:1.2;margin-top:1.8em}
.prose img{height:auto}
.prose blockquote{margin-left:0;padding-left:20px;border-left:3px solid var(--core-accent)}
.alignwide{max-width:var(--core-wide)}
.alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw)}
.aligncenter{margin-left:auto;margin-right:auto}

/* ---------- Post list ---------- */
.post-list{max-width:calc(var(--core-wide) + var(--core-gutter)*2);margin:0 auto;padding:48px var(--core-gutter) 72px}
.post-list__title{font-family:var(--core-head-font);margin:0 0 32px;line-height:1.1}
.post-card{display:grid;gap:18px;padding:28px 0;border-top:1px solid var(--core-line)}
.post-card__image img{display:block;width:100%;height:auto}
.post-card__meta{margin:0 0 6px;color:var(--core-muted);font-size:14px}
.post-card__title{font-family:var(--core-head-font);margin:0 0 10px;line-height:1.15}
.post-card__title a{text-decoration:none}
@media (min-width:700px){.post-card:has(.post-card__image){grid-template-columns:260px 1fr;align-items:start}}
.nav-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.nav-links .page-numbers{padding:8px 12px;border:1px solid var(--core-line);text-decoration:none}
.nav-links .current{background:var(--core-text);color:var(--core-bg)}

/* ---------- Footer ---------- */
.site-footer{background:var(--core-footer-bg);color:var(--core-footer-text);padding-bottom:env(safe-area-inset-bottom,0px)}
.site-footer__inner{max-width:var(--core-wide);margin:0 auto;padding:44px var(--core-gutter);text-align:center}
.site-footer__social,.site-footer__legal{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px}
.site-footer a{text-decoration:none}
.site-footer__copy{margin:0;color:var(--core-footer-muted)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
