/* ==========================================================================
   Killswitch theme for Ghost. Forked from Casper (MIT, Ghost Foundation).
   Light editorial: cream / ink / single brick accent.
   ========================================================================== */

/* Fonts (self-hosted, SIL OFL 1.1) */
@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-serif-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-serif-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/ibm-plex-serif-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/ibm-plex-serif-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/inter-latin-700-normal.woff2) format("woff2")}

/* Tokens. html:root outranks the :root accent that ghost_head injects, so the
   theme stays brick even if the admin accent colour differs. */
html:root{
    --ks-bg:#F7F4EE; --ks-ink:#1C1B19; --ks-accent:#B23A1E; --ks-accent-dark:#8F2E17;
    --ks-muted:#5E5A52; --ks-rule:#D9D3C7; --ks-tint:#F1E4DC; --ks-on-accent:#F7F1E8; --ks-paper:#FFFDF9;
    --ks-serif-stack:"IBM Plex Serif",Georgia,"Times New Roman",serif;
    /* Ghost custom fonts (Settings > Design) override these only if chosen */
    --ks-serif:var(--gh-font-body,var(--ks-serif-stack));
    --ks-display:var(--gh-font-heading,var(--ks-serif-stack));
    --ks-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --ks-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    --ks-main:720px; --ks-wide:1040px; --ks-page:1180px;
    --ghost-accent-color:#B23A1E;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-size:62.5%}
body{margin:0;background:var(--ks-bg);color:var(--ks-ink);font-family:var(--ks-sans);font-size:1.7rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--ks-accent);text-decoration:none}
a:hover{color:var(--ks-accent-dark)}
::selection{background:var(--ks-tint);color:var(--ks-ink)}
:focus-visible{outline:2px solid var(--ks-accent);outline-offset:2px}
.viewport{display:flex;flex-direction:column;min-height:100vh}
.site-content{flex-grow:1}
.site-main{padding-bottom:6rem}

/* Shared bits */
.ks-kicker{font-family:var(--ks-sans);font-size:1.2rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ks-accent);margin:0}
.ks-section-label{font-family:var(--ks-sans);font-size:1.3rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ks-muted);margin:0 0 2.4rem;padding-bottom:1.2rem;border-bottom:1px solid var(--ks-rule)}
.ks-btn{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;min-height:46px;padding:0 2.2rem;border:0;border-radius:999px;background:var(--ks-accent);color:#fff;font-family:var(--ks-sans);font-size:1.5rem;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s}
.ks-btn:hover{background:var(--ks-accent-dark);color:#fff}
.ks-btn-sm{min-height:36px;padding:0 1.6rem;font-size:1.4rem}
.ks-btn-ghost{background:transparent;color:var(--ks-ink);box-shadow:inset 0 0 0 1.5px var(--ks-ink)}
.ks-btn-ghost:hover{background:var(--ks-ink);color:var(--ks-bg)}
.ks-input{flex:1;min-width:0;height:46px;padding:0 1.6rem;border:1.5px solid var(--ks-rule);border-radius:999px;background:var(--ks-paper);color:var(--ks-ink);font-family:var(--ks-sans);font-size:1.6rem}
.ks-input:focus{outline:none;border-color:var(--ks-accent)}

/* Header */
.ks-head{position:sticky;top:0;z-index:50;background:rgba(247,244,238,.96);backdrop-filter:saturate(1.2) blur(6px);border-top:4px solid var(--ks-accent);border-bottom:1px solid var(--ks-rule)}
.ks-head-inner{display:flex;align-items:center;gap:3.2rem;max-width:var(--ks-page);margin:0 auto;padding:0 4vmin;height:72px}
.ks-head-logo img{height:40px;width:auto}
.ks-head-menu{flex:1}
.ks-head-menu .nav{display:flex;gap:2.4rem;margin:0;padding:0;list-style:none}
.ks-head-menu .nav a{color:var(--ks-ink);font-size:1.5rem;font-weight:500}
.ks-head-menu .nav a:hover,.ks-head-menu .nav-current a{color:var(--ks-accent)}
.ks-head-actions{display:flex;align-items:center;gap:1.6rem}
.ks-head-link{color:var(--ks-ink);font-size:1.5rem;font-weight:500}
.ks-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;background:none;color:var(--ks-ink);cursor:pointer}
.ks-icon-btn svg{width:20px;height:20px}
.ks-burger{display:none;width:36px;height:36px;padding:0;border:0;background:none;cursor:pointer;position:relative}
.ks-burger span,.ks-burger span::before,.ks-burger span::after{position:absolute;left:8px;width:20px;height:2px;background:var(--ks-ink);content:""}
.ks-burger span{top:17px}.ks-burger span::before{top:-6px;left:0}.ks-burger span::after{top:6px;left:0}

/* Home hero */
.ks-hero{display:grid;grid-template-columns:1.25fr 1fr;gap:5.6rem;align-items:center;max-width:var(--ks-page);margin:0 auto;padding:7.2rem 4vmin 6.4rem;border-bottom:1px solid var(--ks-rule)}
.ks-hero-title{font-family:var(--ks-display);font-size:clamp(3.4rem,4.6vw,5.4rem);font-weight:600;line-height:1.08;letter-spacing:-.015em;margin:1.6rem 0 2rem}
.ks-hero-sub{font-size:1.9rem;color:var(--ks-muted);margin:0;max-width:56ch}

/* Signup box (theme + in-post) */
.ks-signup{background:var(--ks-paper);border:1px solid var(--ks-rule);border-top:4px solid var(--ks-accent);border-radius:6px;padding:3.2rem 3.2rem 2.6rem;box-shadow:10px 10px 0 var(--ks-tint)}
.ks-signup-title{font-family:var(--ks-display);font-size:2.8rem;font-weight:600;line-height:1.2;margin:1rem 0 1rem;color:var(--ks-ink)}
.ks-signup-text{color:var(--ks-muted);margin:0 0 2rem;font-size:1.6rem;line-height:1.5}
.ks-signup-row{display:flex;gap:1rem}
.ks-signup-fine{margin:1.2rem 0 0;font-size:1.3rem;color:var(--ks-muted)}
.ks-signup-ok,.ks-signup-err{display:none;margin:1.2rem 0 0;font-size:1.5rem}
.ks-signup-ok{color:var(--ks-ink);font-weight:600}
.ks-signup-err{color:var(--ks-accent)}
.ks-btn-loading{display:none}
.ks-btn-loading svg{width:20px;height:20px}
.ks-btn-loading svg path,.ks-btn-loading svg rect{fill:#fff}
form.loading .ks-btn-label{display:none}
form.loading .ks-btn-loading{display:inline-flex}
form.success .ks-signup-row{display:none}
form.success .ks-signup-ok{display:block}
form.error .ks-signup-err{display:block}
.ks-post-signup{max-width:var(--ks-main);margin:0 auto 7.2rem;padding:0 4vmin;box-sizing:content-box}

/* Feed + cards */
.ks-feed{max-width:var(--ks-page);margin:0 auto;padding:5.6rem 4vmin 0}
.ks-feed-list{display:flex;flex-direction:column}
.ks-card{display:grid;grid-template-columns:440px 1fr;gap:4rem;align-items:start;padding:3.2rem 0;border-bottom:1px solid var(--ks-rule)}
.ks-card.no-image{grid-template-columns:1fr}
.ks-card-image{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--ks-rule);border-radius:4px;background:var(--ks-tint)}
.ks-card-meta{display:flex;align-items:center;gap:1.2rem;margin:0 0 1rem;font-size:1.3rem;color:var(--ks-muted)}
.ks-card-meta svg{width:14px;height:14px}
.ks-card-title{font-family:var(--ks-display);font-size:2.8rem;font-weight:600;line-height:1.18;letter-spacing:-.01em;margin:0 0 1.2rem}
.ks-card-title a{color:var(--ks-ink)}
.ks-card-title a:hover{color:var(--ks-accent)}
.ks-card-excerpt{color:var(--ks-muted);margin:0 0 1.4rem;font-family:var(--ks-serif);font-size:1.75rem;line-height:1.55}
.ks-card-more{font-size:1.4rem;font-weight:600}
.ks-more{max-width:var(--ks-page);margin:0 auto;padding:0 4vmin 4rem}
.ks-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3.2rem}
.ks-more-grid .ks-card{grid-template-columns:1fr;gap:1.6rem;border-bottom:0;padding:0}
.ks-more-grid .ks-card-title{font-size:2.1rem}
.pagination{display:flex;justify-content:space-between;align-items:center;padding:3.2rem 0;font-size:1.4rem;color:var(--ks-muted)}

/* Archive heads / errors */
.ks-archive-head,.ks-error{max-width:var(--ks-page);margin:0 auto;padding:6.4rem 4vmin 0}
.ks-archive-title{font-family:var(--ks-display);font-size:4.4rem;font-weight:600;line-height:1.1;margin:1rem 0 1.2rem}
.ks-archive-desc{max-width:64ch;color:var(--ks-muted);font-size:1.8rem;margin:0}
.ks-author-image{width:72px;height:72px;border-radius:50%;margin-bottom:1.6rem}
.ks-error{padding-bottom:10rem}

/* ==========================================================================
   Article: 720px reading column, wide (1040px) for slide images
   ========================================================================== */
.gh-canvas{display:grid;grid-template-columns:[full-start] minmax(4vmin,auto) [wide-start] minmax(auto,160px) [main-start] min(var(--ks-main),calc(100% - 8vmin)) [main-end] minmax(auto,160px) [wide-end] minmax(4vmin,auto) [full-end]}
.gh-canvas > *{grid-column:main-start/main-end}
.kg-width-wide{grid-column:wide-start/wide-end}
.kg-width-full{grid-column:full-start/full-end}
.kg-width-full img{width:100%}

.ks-article-header{padding:6.4rem 0 1.6rem}
.ks-article-kicker{display:flex;align-items:center;gap:1.4rem;margin:0 0 1.8rem;font-size:1.4rem;color:var(--ks-muted)}
.ks-article-title{font-family:var(--ks-display);font-size:clamp(3.4rem,5vw,5.2rem);font-weight:600;line-height:1.08;letter-spacing:-.018em;margin:0 0 2rem;color:var(--ks-ink)}
.ks-article-excerpt{font-family:var(--ks-serif);font-size:2.1rem;line-height:1.5;color:var(--ks-muted);margin:0 0 2.4rem}
.ks-byline{display:flex;align-items:center;gap:1rem;padding:1.4rem 0;border-top:1px solid var(--ks-rule);border-bottom:1px solid var(--ks-rule);font-size:1.4rem;color:var(--ks-muted)}
.ks-byline-authors{color:var(--ks-ink);font-weight:600}
.ks-byline-authors a{color:var(--ks-ink)}
.ks-byline-share{margin-left:auto;font-weight:600}
.ks-article-image{margin:3.2rem 0 0}
.ks-article-image img{width:100%;border:1px solid var(--ks-rule);border-radius:4px}
.ks-article-image figcaption{margin-top:1rem;font-size:1.3rem;color:var(--ks-muted);text-align:center}

/* Content typography */
.gh-content{font-family:var(--ks-serif);font-size:2rem;line-height:1.7;color:var(--ks-ink);padding-top:1.6rem}
.gh-content > * + *{margin-top:2.4rem;margin-bottom:0}
.gh-content > *:first-child{margin-top:0}
.gh-content p,.gh-content ul,.gh-content ol{margin-left:0;margin-right:0}
.gh-content a{color:var(--ks-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.gh-content strong{font-weight:700}
.gh-content h2,.gh-content h3,.gh-content h4{font-family:var(--ks-display);font-weight:600;letter-spacing:-.01em;color:var(--ks-ink)}
.gh-content h2{font-size:3rem;line-height:1.2;margin-top:6.4rem;padding-top:2.4rem;border-top:1px solid var(--ks-rule)}
.gh-content h3{font-size:2.3rem;line-height:1.3;margin-top:4rem}
.gh-content > h2 + *,.gh-content > h3 + *{margin-top:1.6rem}
.gh-content ul,.gh-content ol{padding-left:2.4rem}
.gh-content li + li{margin-top:.8rem}
.gh-content li::marker{color:var(--ks-accent)}
.gh-content blockquote:not([class]){margin-left:0;margin-right:0;padding:.4rem 0 .4rem 2.4rem;border-left:3px solid var(--ks-accent);font-style:italic}
.gh-content hr{border:0;height:1px;background:var(--ks-rule);margin:5.6rem 0}
.gh-content code{font-family:var(--ks-mono);font-size:.85em;background:var(--ks-tint);padding:.1em .35em;border-radius:3px}
.gh-content pre{background:var(--ks-ink);color:var(--ks-bg);padding:2rem;border-radius:4px;overflow-x:auto;font-size:1.5rem}
.gh-content figure{margin-left:0;margin-right:0}
.gh-content .kg-image-card img{margin:0 auto;border:1px solid var(--ks-rule);border-radius:4px;background:#fff}
.gh-content .kg-width-wide img{width:100%}
.gh-content figcaption{margin-top:1.2rem;font-family:var(--ks-sans);font-size:1.35rem;line-height:1.5;color:var(--ks-muted);text-align:center}
.gh-content > figure + p{margin-top:2.8rem}
.gh-content table{width:100%;border-collapse:collapse;font-family:var(--ks-sans);font-size:1.5rem}
.gh-content th,.gh-content td{padding:.8rem 1rem;border-bottom:1px solid var(--ks-rule);text-align:left}
.gh-content .kg-callout-card{border-radius:4px}
.gh-content .kg-btn,.gh-content .kg-btn-accent{border-radius:999px;font-family:var(--ks-sans);background:var(--ks-accent)}

/* In-post components (inserted through HTML cards) */
.ks-download{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem 2.4rem;background:var(--ks-tint);border:1px solid var(--ks-accent);border-radius:6px;font-family:var(--ks-sans)}
.ks-download-text{font-size:1.5rem;line-height:1.45;color:var(--ks-ink)}
.ks-download-text strong{display:block;font-family:var(--ks-serif);font-size:2rem;font-weight:600;margin-bottom:.2rem}
.gh-content a.ks-btn,.gh-content a.ks-btn:hover{color:#fff;text-decoration:none}
.ks-flagnote{font-family:var(--ks-sans);font-size:1.4rem;color:var(--ks-muted)}
.ks-cta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.6rem;font-family:var(--ks-sans)}
.gh-content .ks-cta-grid a{display:block;padding:2rem 2.2rem;background:var(--ks-paper);border:1px solid var(--ks-rule);border-radius:6px;color:var(--ks-ink);text-decoration:none;transition:border-color .15s}
.gh-content .ks-cta-grid a:hover{border-color:var(--ks-accent)}
.ks-cta-grid .ks-cta-title{display:block;font-family:var(--ks-serif);font-size:2rem;font-weight:600;line-height:1.25;margin:.6rem 0 .4rem}
.ks-cta-grid .ks-cta-sub{display:block;font-size:1.4rem;line-height:1.45;color:var(--ks-muted)}
.gh-content .ks-signup{font-family:var(--ks-sans)}
.gh-content .ks-signup .ks-signup-title{margin-top:1rem;padding:0;border:0;font-size:2.6rem}
.gh-content .ks-signup p{margin-top:0}
.ks-sources{font-family:var(--ks-sans);font-size:1.45rem;line-height:1.55}
.ks-sources li{word-break:break-word}

/* Footer */
.ks-footer{margin-top:4rem;background:var(--ks-ink);color:#CFC9BD;border-top:4px solid var(--ks-accent)}
.ks-footer-inner{max-width:var(--ks-page);margin:0 auto;padding:5.6rem 4vmin 3.2rem}
.ks-footer-brand{display:flex;align-items:center;gap:1.6rem;margin-bottom:3.6rem}
.ks-footer-brand img{width:48px;height:48px;background:var(--ks-bg);border-radius:50%;padding:3px}
.ks-footer-tag{margin:0;font-family:var(--ks-serif);font-size:1.9rem;color:var(--ks-bg)}
.ks-footer-ctas{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.ks-footer-cta{display:flex;flex-direction:column;gap:.6rem;padding:2rem;border:1px solid #3A3833;border-radius:6px;color:var(--ks-bg);transition:border-color .15s,background .15s}
.ks-footer-cta:hover{border-color:var(--ks-accent);background:#26241F;color:var(--ks-bg)}
.ks-footer-cta .ks-kicker{color:#E0806A}
.ks-footer-cta-title{font-family:var(--ks-serif);font-size:2rem;font-weight:600;line-height:1.25}
.ks-footer-cta-sub{font-size:1.35rem;color:#A9A397}
.ks-footer-base{display:flex;align-items:center;gap:2.4rem;margin-top:4rem;padding-top:2rem;border-top:1px solid #3A3833;font-size:1.35rem}
.ks-footer-base a{color:#CFC9BD}
.ks-footer-base a:hover{color:#fff}
.ks-footer-nav{flex:1}
.ks-footer-nav .nav{display:flex;flex-wrap:wrap;gap:2rem;margin:0;padding:0;list-style:none}

/* Responsive */
@media (max-width:960px){
    .ks-hero{grid-template-columns:1fr;gap:3.2rem;padding-top:4.8rem}
    .ks-card{grid-template-columns:1fr;gap:2rem}
    .ks-more-grid{grid-template-columns:1fr}
    .ks-footer-ctas{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
    body{font-size:1.6rem}
    .ks-head-inner{gap:1.2rem;height:64px}
    .ks-head-logo img{height:30px}
    .ks-head-menu{display:none;position:absolute;top:64px;left:0;right:0;padding:2rem 4vmin;background:var(--ks-bg);border-bottom:1px solid var(--ks-rule)}
    .ks-menu-open .ks-head-menu{display:block}
    .ks-head-menu .nav{flex-direction:column;gap:1.4rem}
    .ks-head-actions{margin-left:auto}
    .ks-head-link{display:none}
    .ks-burger{display:inline-block}
    .gh-content{font-size:1.8rem}
    .gh-content h2{font-size:2.5rem}
    .ks-signup{padding:2.4rem 2rem 2rem}
    .ks-signup-row{flex-direction:column}
    .ks-download{flex-direction:column;align-items:flex-start}
    .ks-cta-grid,.ks-footer-ctas{grid-template-columns:1fr}
    .ks-footer-base{flex-direction:column;align-items:flex-start;gap:1.2rem}
}

/* In-post signup cards: hide for signed-in members; avoid a duplicate box after a post that already ends with one */
.is-member .gh-content .ks-signup{display:none}
.site-main:has(.gh-content .ks-signup) ~ .ks-post-signup{display:none}
.gh-content > .ks-signup,.gh-content > .ks-download,.gh-content > .ks-cta-grid{margin-top:4rem}
.gh-content li a,.gh-content p a,.ks-cta-sub,.ks-footer-cta-sub{overflow-wrap:anywhere}
