/*
Theme Name: KMA Press
Theme URI: https://kamikazemonkeys.com/
Author: Kamikaze Monkeys of America
Description: A modern broadsheet for the Kamikaze Monkeys of America comic strip. Set a post's "Comic strip" image, write the cartoonist's note in the body, publish (or schedule).
Version: 2.0.0
Requires at least: 6.8
Requires PHP: 8.0
Text Domain: kma-press
*/

/* ---------- Fonts (self-hosted) ---------- */
@font-face{font-family:"Newsreader";src:url(fonts/newsreader.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(fonts/newsreader-italic.woff2) format("woff2");font-weight:400 800;font-style:italic;font-display:swap}
@font-face{font-family:"Archivo";src:url(fonts/archivo.woff2) format("woff2");font-weight:400 900;font-stretch:62% 125%;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --paper:#060b18;--sheet:#0b1430;--ink:#f6f3ec;--ink-2:#cdd4e4;--muted:#8e9abb;--rule:#26365f;--rule-soft:#16224a;
  --red:#ff4d4d;--red-deep:#d62839;--blue:#2453c9;--blue-deep:#13307e;--white:#ffffff;
  --banana:#ffd23f;--banana-ink:#1a1405;
  --strip-bg:#fff;--dot:rgba(255,255,255,.055);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(1rem,4vw,3rem);--max:1240px;
  color-scheme:dark;
}

/* ---------- Base ---------- */
@view-transition{navigation:auto}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);background-size:6px 6px}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--banana);outline-offset:3px;border-radius:2px}
img{max-width:100%;height:auto}
button{font:inherit;color:inherit}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
kbd{font:600 .78em var(--sans);border:1px solid var(--rule);border-bottom-width:2px;border-radius:4px;padding:.05em .4em;background:var(--sheet)}
.skip-link{position:absolute;top:-100px;left:1rem;background:var(--ink);color:var(--sheet);padding:.6rem .9rem;z-index:50}.skip-link:focus{top:1rem}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.sheet{max-width:var(--max);margin:0 auto;background:var(--sheet);min-height:100vh;display:flex;flex-direction:column;box-shadow:0 0 0 1px var(--rule-soft),0 30px 80px -30px rgba(0,0,0,.6)}

/* ---------- Masthead ---------- */
.site-header{padding:0 var(--gutter)}
.folio{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--ink);
  font:600 .7rem/1.2 var(--sans);font-stretch:85%;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.folio-vol{flex:1;text-align:center}
.folio-edition{color:var(--banana)}

.nameplate{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:clamp(1rem,2.5vw,1.8rem) 0 clamp(.9rem,2vw,1.4rem);border-bottom:5px double var(--ink)}
.ear{max-width:11rem;border:1px solid var(--ink);padding:.6rem .75rem;font:500 .74rem/1.35 var(--sans);color:var(--ink-2)}
.ear strong{display:block;font:800 .64rem/1.2 var(--sans);font-stretch:80%;letter-spacing:.16em;text-transform:uppercase;color:var(--banana);margin-bottom:.25rem}
.ear-right{justify-self:end;text-align:right}
.nameplate-title{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink);text-align:center}
.nameplate-title:hover{color:var(--ink)}
.np-kicker{font:700 .68rem/1 var(--sans);font-stretch:110%;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}
.np-name{font:800 clamp(2.2rem,6.6vw,5.4rem)/.95 var(--serif);font-variation-settings:"opsz" 72;letter-spacing:-.045em;white-space:nowrap}
.np-sub{display:flex;align-items:center;gap:.8rem;margin-top:.4rem;font:800 clamp(.8rem,1.5vw,1.05rem)/1 var(--sans);font-stretch:125%;letter-spacing:.5em;text-transform:uppercase;padding-left:.5em}
.np-sub span{font:italic 500 1.15em var(--serif);letter-spacing:0;text-transform:none;color:var(--muted)}
.np-sub::before,.np-sub::after{content:"";width:clamp(1.5rem,6vw,4rem);height:2px;background:var(--banana)}

.nameplate{position:relative;border-bottom:0;margin-bottom:7px}
.nameplate::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:5px;border-top:2px solid var(--red-deep);border-bottom:2px solid var(--blue)}
.site-header::before{content:"";display:block;height:3px;margin:0 calc(var(--gutter) * -1);background:linear-gradient(90deg,var(--blue) 0 33.3%,var(--white) 33.3% 66.6%,var(--red-deep) 66.6%)}
.main-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--sheet);border-bottom:1px solid var(--ink);padding:.55rem 0}
.nav-links{display:flex;gap:clamp(.9rem,2.6vw,2.2rem);flex-wrap:wrap}
.nav-links a{font:800 .78rem/1.2 var(--sans);font-stretch:90%;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:.35rem 0;border-bottom:3px solid transparent}
.nav-links a:hover{color:var(--ink);border-bottom-color:var(--rule)}
.nav-links a[aria-current="page"]{border-bottom-color:var(--banana)}
.site-search{display:flex;align-items:center;border:1px solid var(--rule);border-radius:99px;padding:.1rem .2rem .1rem .8rem;background:var(--paper)}
.site-search:focus-within{border-color:var(--ink)}
.site-search input{width:clamp(8rem,16vw,13rem);background:none;border:0;padding:.35rem 0;font:500 .85rem var(--sans);color:var(--ink);outline:none}
.site-search input::placeholder{color:var(--muted)}
.site-search button{display:grid;place-items:center;width:2rem;height:2rem;border:0;border-radius:50%;background:none;cursor:pointer}
.site-search button:hover{background:var(--banana);color:var(--banana-ink)}

.ticker{display:flex;align-items:stretch;border-bottom:1px solid var(--ink);overflow:hidden;font:600 .8rem/1 var(--sans)}
.ticker-label{flex:none;display:flex;align-items:center;background:var(--red-deep);color:#fff;padding:.55rem .8rem;font:900 .68rem/1 var(--sans);font-stretch:80%;letter-spacing:.18em;text-transform:uppercase}
.ticker-track{flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 2rem,#000 calc(100% - 3rem),transparent)}
.ticker-run{display:flex;width:max-content;animation:ticker 60s linear infinite}
.ticker:hover .ticker-run,.ticker:focus-within .ticker-run{animation-play-state:paused}
.ticker ul{display:flex;margin:0;padding:0;list-style:none}
.ticker li{display:flex;align-items:center;white-space:nowrap;padding:.55rem 0}
.ticker li::after{content:"\25C6";color:var(--banana);font-size:.6rem;margin:0 1.1rem}
.ticker a{text-decoration:none}
@keyframes ticker{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-run{animation:none}.ticker-track{overflow-x:auto}}

/* ---------- Shared bits ---------- */
.sheet>main{flex:1 0 auto}
main{padding:clamp(1.25rem,3vw,2.25rem) var(--gutter) clamp(2rem,4vw,3rem)}
.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font:700 .72rem/1.2 var(--sans);font-stretch:90%;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kicker-flag{background:var(--red-deep);color:var(--white);padding:.32rem .55rem .3rem}
.kicker-flag small{font-size:inherit;opacity:.65}
.section-label{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;font:800 .72rem/1.2 var(--sans);font-stretch:85%;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.section-label::after{content:"";flex:1;height:1px;background:var(--rule)}
.headline,.page-title{font:800 clamp(2.1rem,5vw,4.2rem)/1 var(--serif);font-variation-settings:"opsz" 72;letter-spacing:-.035em;margin:.5rem 0 1rem}
.headline a{text-decoration:none}
.headline a:hover{color:inherit;text-decoration:underline;text-decoration-color:var(--banana);text-decoration-thickness:.08em}
.standfirst{font:italic 400 clamp(1.1rem,1.8vw,1.35rem)/1.45 var(--serif);color:var(--ink-2);max-width:42rem;margin:0 0 1.5rem}
.text-link{font:800 .74rem/1.2 var(--sans);font-stretch:90%;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:2px solid var(--banana);padding-bottom:.15rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;border:2px solid var(--ink);background:var(--ink);color:var(--sheet);border-radius:0;padding:.7rem 1.1rem;cursor:pointer;text-decoration:none;
  font:800 .76rem/1 var(--sans);font-stretch:90%;letter-spacing:.12em;text-transform:uppercase;box-shadow:4px 4px 0 var(--banana);transition:transform .12s,box-shadow .12s}
.btn:hover{color:var(--sheet);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--banana)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--banana)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule);box-shadow:none}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink);box-shadow:none;transform:none}
.btn-banana{background:var(--banana);color:var(--banana-ink);border-color:var(--banana-ink);box-shadow:4px 4px 0 var(--banana-ink)}
.btn-banana:hover{color:var(--banana-ink);box-shadow:6px 6px 0 var(--banana-ink)}

/* ---------- The strip ---------- */
.lead{max-width:min(100%,calc(var(--w,640) * 1.32px + 2.6rem));margin:0 auto}
.strip{margin:0;view-transition-name:strip}
.strip-zoom{position:relative;display:block;width:100%;padding:clamp(.6rem,1.6vw,1.3rem);border:0;background:var(--strip-bg);cursor:zoom-in;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.8);transition:box-shadow .15s}
.strip-zoom:hover{box-shadow:0 22px 50px -16px rgba(0,0,0,.9)}
.strip-img{display:block;width:100%;height:auto;margin:0 auto}
.strip-zoom-hint{position:absolute;right:.6rem;bottom:.6rem;background:var(--ink);color:var(--sheet);padding:.3rem .5rem;font:800 .62rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .15s}
.strip-zoom:hover .strip-zoom-hint,.strip-zoom:focus-visible .strip-zoom-hint{opacity:1}
.strip figcaption{margin-top:1rem;font:italic .95rem/1.45 var(--serif);color:var(--muted)}

.strip-nav{display:flex;justify-content:center;gap:.5rem;margin:1.25rem auto 0;flex-wrap:wrap}
.sn{display:inline-flex;align-items:center;gap:.45rem;min-width:3rem;justify-content:center;padding:.6rem .9rem;border:1px solid var(--rule);text-decoration:none;background:var(--sheet);
  font:800 .74rem/1 var(--sans);font-stretch:90%;letter-spacing:.1em;text-transform:uppercase;transition:background .12s,color .12s}
.sn-glyph{font:700 1.1rem/1 var(--serif)}
a.sn:hover{background:var(--ink);color:var(--sheet)}
.sn-random{background:var(--banana);color:var(--banana-ink);border-color:var(--banana-ink)}
a.sn-random:hover{background:var(--banana-ink);color:var(--banana)}
.sn.is-disabled{opacity:.3}
.kbd-hint{text-align:center;margin:.75rem 0 0;font:500 .8rem var(--sans);color:var(--muted)}
@media (hover:none){.kbd-hint{display:none}}

/* ---------- Below the lead ---------- */
.desk{margin-top:clamp(1.75rem,3.5vw,2.5rem);padding-top:1.25rem;border-top:1px solid var(--rule)}
.note{font-size:1.15rem;line-height:1.6;max-width:44rem}
.note p{margin:0 0 .8em}
.note p:last-child{margin-bottom:0}
.dropcap>p:first-child::first-letter{float:left;font:800 4.1em/.78 var(--serif);margin:.06em .1em 0 0;color:var(--red)}
.note-actions{clear:both;display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:1.25rem}
.edit-link{font:600 .8rem var(--sans);margin:1rem 0 0}

.info-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.5vw,1.75rem);margin-top:clamp(2.25rem,5vw,3.25rem)}
.info{display:flex;flex-direction:column;padding:1.25rem 1.25rem 1.35rem;border:1px solid var(--rule);border-top:3px solid var(--red-deep);background:rgba(255,255,255,.015)}
.info-start{border-top-color:var(--blue)}
.info-img{display:flex;align-items:center;justify-content:center;height:150px;background:#fff;padding:.5rem;margin-bottom:1rem}
.more-links{display:flex;gap:1.25rem;flex-wrap:wrap}
.info .section-label{margin-bottom:.75rem}
.info p{margin:0 0 1rem;font-size:.98rem;line-height:1.5;color:var(--ink-2)}
.info .info-big{margin:0 0 .5rem;font:800 1.6rem/1.1 var(--serif);letter-spacing:-.02em;color:var(--ink)}
.info .text-link{margin-top:auto;align-self:flex-start}
.cast-img,.info-strip{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}

.around-wrap{margin-top:clamp(1.75rem,3.5vw,2.5rem)}
.around{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--rule)}
.around li{border-right:1px solid var(--rule)}
.around li:last-child{border-right:0}
.around a{display:block;height:100%;padding:.7rem .8rem;text-decoration:none;font:600 1rem/1.25 var(--serif)}
.around a:hover{background:rgba(255,255,255,.04);color:var(--ink)}
.around span{display:block;font:700 .64rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem}
.around .is-current a{box-shadow:inset 0 3px 0 var(--banana)}

/* ---------- Cards ---------- */
.more{margin-top:clamp(2.25rem,5vw,3.25rem)}
.more-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-top:1px solid var(--rule);padding-top:1rem;margin-bottom:1.25rem}
.more-head h2{margin:0;font:800 clamp(1.7rem,3.4vw,2.6rem)/1.05 var(--serif);letter-spacing:-.03em}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.75rem 1.5rem}
.card{container-type:inline-size}
.card a{display:block;text-decoration:none;height:100%}
.card-strip{display:block;background:var(--strip-bg);padding:.45rem;aspect-ratio:3.05/1;overflow:hidden}
.card-img{display:block;width:100%;height:100%;object-fit:contain}
.card a:hover .card-strip{outline:2px solid var(--banana);outline-offset:2px}
.card-meta{display:flex;align-items:center;gap:.7rem;margin:.8rem 0 .3rem;font:700 .66rem/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.card-no{color:var(--ink-2)}
.card h3{margin:0;font:700 1.35rem/1.15 var(--serif);letter-spacing:-.015em}
.card a:hover h3{color:var(--ink);text-decoration:underline;text-decoration-color:var(--banana);text-decoration-thickness:2px}
.card-page .card-meta{margin-top:0}

/* ---------- Archive ---------- */
.page-head{border-bottom:5px double var(--ink);padding-bottom:1.5rem;margin-bottom:2rem}
.archive-tools{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.archive-tools input{flex:1;max-width:30rem;padding:.8rem 1rem;border:2px solid var(--ink);background:var(--strip-bg);color:#171511;font:500 1rem var(--sans);border-radius:0;box-shadow:4px 4px 0 var(--banana)}
.archive-tools input:focus{outline:none;box-shadow:6px 6px 0 var(--banana)}
.archive-count{font:700 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.year+.year{margin-top:3rem}
.year-head{display:flex;align-items:baseline;gap:1rem;margin:0 0 1.4rem;border-bottom:1px solid var(--ink);padding-bottom:.4rem}
.year-head span{font:800 clamp(2.4rem,5vw,3.6rem)/1 var(--serif);letter-spacing:-.04em}
.year-head small{font:700 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.archive-empty,.empty-state p{font:italic 1.2rem var(--serif);color:var(--muted)}
.nav-links .page-numbers,.pagination .page-numbers{font:700 .85rem var(--sans);padding:.4rem .7rem;border:1px solid var(--rule);text-decoration:none}
.pagination{margin-top:2.5rem}.pagination .nav-links{gap:.4rem}.pagination .current{background:var(--ink);color:var(--sheet);border-color:var(--ink)}

/* ---------- Pages ---------- */
.content-page{max-width:820px;margin:0 auto}
.prose{font-size:1.2rem;line-height:1.65}
.prose img{display:block;width:min(100%,560px);margin:0 auto 2rem;background:#fff;padding:.6rem;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--red-deep)}
.prose p:has(> img:only-child){margin:0}
.dropcap-after-img>p:nth-of-type(2)::first-letter,.dropcap-after-img>p:first-child:not(:has(img))::first-letter{float:left;font:800 4.2em/.78 var(--serif);margin:.06em .1em 0 0;color:var(--red)}

.error-page{position:relative;max-width:860px;margin:0 auto;padding-top:clamp(2.5rem,7vw,5rem);padding-bottom:clamp(3rem,8vw,6rem)}
.stamp{mix-blend-mode:normal!important;position:absolute;right:var(--gutter);top:1.5rem;transform:rotate(-12deg);border:5px solid var(--red);color:var(--red);padding:.2rem 1rem;font:900 clamp(2.5rem,7vw,4.5rem)/1 var(--sans);font-stretch:70%;letter-spacing:.06em;opacity:.85;border-radius:6px;mix-blend-mode:multiply}

/* ---------- Footer ---------- */
.site-footer{margin:0 var(--gutter);padding:1.5rem 0 2rem;border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr auto;gap:1.2rem 2rem;align-items:end}
.footer-name{font:800 2rem/1 var(--serif);letter-spacing:-.04em}
.footer-plate p{margin:.5rem 0 0;font:italic .98rem/1.45 var(--serif);color:var(--muted)}
.footer-links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.footer-links a{font:800 .72rem var(--sans);font-stretch:90%;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.footer-links a:hover{text-decoration:underline;text-decoration-color:var(--banana);text-decoration-thickness:2px}
.footer-fine{grid-column:1/-1;margin:0;padding-top:1rem;border-top:1px solid var(--rule);font:500 .72rem/1.5 var(--sans);color:var(--muted)}

/* ---------- Lightbox ---------- */
.lightbox{border:0;padding:0;max-width:none;max-height:none;width:100vw;height:100dvh;background:rgba(14,13,11,.94)}
.lightbox::backdrop{background:transparent}
.lightbox[open]{display:grid;animation:lb-in .2s ease-out}
.lightbox-scroll{display:grid;place-items:center;overflow:auto;padding:4rem 1rem 2rem}
.lightbox img{width:auto;max-width:none;height:auto;min-width:min(1200px,94vw);max-height:calc(100dvh - 6rem);object-fit:contain;background:#fff;padding:1rem;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox-close{position:fixed;top:1rem;right:1rem;width:2.8rem;height:2.8rem;border:2px solid #f3c623;border-radius:50%;background:#171511;color:#f3c623;font:400 1.8rem/1 var(--sans);cursor:pointer;z-index:2}
@keyframes lb-in{from{opacity:0}}
@media (max-width:700px){.lightbox img{min-width:0;max-height:none;width:auto;height:min(78dvh,520px);max-width:none}.lightbox-scroll{place-items:center start}}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .ear{display:none}
  .nameplate{grid-template-columns:1fr}
  .info-row{grid-template-columns:1fr}
  .info-img{height:auto;max-height:200px}
  .around{grid-template-columns:1fr}
  .around li{border-right:0;border-bottom:1px solid var(--rule)}
  .around .is-current a{box-shadow:inset 3px 0 0 var(--banana)}
}
@media (max-width:640px){
  .folio{font-size:.6rem;letter-spacing:.1em}
  .folio-date{display:none}
  .folio-vol{text-align:left}
  .np-name{font-size:clamp(1.8rem,9.4vw,2.6rem)}
  .np-kicker{font-size:.58rem;letter-spacing:.22em}
  .np-sub{letter-spacing:.35em}
  .main-nav{flex-direction:column;align-items:stretch;gap:.4rem}
  .nav-links{justify-content:space-between;gap:.5rem}
  .nav-links a{font-size:.68rem;letter-spacing:.08em}
  .site-search input{flex:1;width:auto}
  .strip-zoom{padding:.4rem}
  .strip-zoom-hint{opacity:1;font-size:.55rem;right:.35rem;bottom:.35rem}
  .sn{padding:.6rem .7rem}.sn-label{display:none}.sn-random .sn-label{display:inline}
  .note{font-size:1.08rem}
  .site-footer{grid-template-columns:1fr}
  .more-head{flex-direction:column;align-items:flex-start}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}@view-transition{navigation:none}}
@media print{.folio,.main-nav,.ticker,.strip-nav,.kbd-hint,.note-actions,.info-row,.around-wrap,.footer-links{display:none}.sheet{box-shadow:none}body{background:#fff}}
.error-page .page-title{padding-right:clamp(0px,16vw,12rem)}
@media (max-width:640px){.stamp{mix-blend-mode:normal!important;position:static;display:inline-block;transform:rotate(-6deg);font-size:2.2rem;margin-bottom:1.2rem}.error-page .page-title{padding-right:0}}
