<!-- PRESS-START · part 1 -->
===== FILE: public/press-start/coin.css =====
/* PRESS START coin — 48px flipping gold coin, top-centre of the front-page header (inside .solid-world-wrap). */
.ps-hcoin{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;z-index:3;display:block;perspective:400px;border-radius:50%;-webkit-tap-highlight-color:transparent;text-decoration:none;filter:drop-shadow(0 0 8px rgba(255,190,40,.55))}
.ps-hcoin span{position:absolute;inset:0;transform-style:preserve-3d;animation:ps-hflip 3.2s ease-in-out infinite}
.ps-hcoin i{position:absolute;inset:0;border-radius:50%;background:center/contain no-repeat;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ps-hcoin i.f{background-image:url(/img/press-start/coin-front.webp)}
.ps-hcoin i.b{background-image:url(/img/press-start/coin-back.webp);transform:rotateY(180deg)}
.ps-hcoin:focus-visible{outline:3px solid #ffd76a;outline-offset:3px}
.ps-hcoin:active span{animation-play-state:paused}
@keyframes ps-hflip{0%,30%{transform:rotateY(0)}50%,80%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}
@media (prefers-reduced-motion:reduce){.ps-hcoin span{animation:none}}
/* phones: the header is 3D-projected (translateZ) so only the lower ~29px of the 52px strip shows; on the front page
   give the strip room for the 48px coin and sit the coin at its bottom, clear of the "solid's block" tag. */
@media (max-width:600px){
  .site-header .solid-world-wrap:has(.ps-hcoin){height:80px !important}
  .ps-hcoin{top:auto;bottom:3px;margin:0 0 0 -24px}
}


===== FILE: public/press-start/index.html =====
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<meta name="theme-color" content="#000000">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<title>PRESS START — Solid City</title>
<link rel="stylesheet" href="/press-start/press-start.css?v=20261010a">
</head>
<body>
<main id="ps" role="button" tabindex="0" aria-label="Press start to enter Solid City">
  <div class="ps-bg" aria-hidden="true"></div>
  <div class="ps-center">
    <div class="ps-coin" aria-hidden="true"><i class="f"></i><i class="b"></i></div>
    <p class="ps-kicker">EPISTLES PRESENTS</p>
    <h1 class="ps-title">SOLID CITY</h1>
    <p class="ps-start">PRESS START</p>
    <p class="ps-hint" id="ps-hint">tap anywhere</p>
  </div>
  <a class="ps-back" href="/" aria-label="Back to epistles">&larr; epistles</a>
</main>
<script src="/press-start/press-start.js?v=20261010a"></script>
</body>
</html>


===== FILE: public/press-start/press-start.css =====
/* PRESS START — fullscreen title screen for Solid City (red, black, gold). Phone layout by default; desktop at >=900px. */
html,body{margin:0;height:100%;background:#000;color:#f6e9c4;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
#ps{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.ps-bg{position:absolute;inset:0;background:#000 url(/img/press-start/bg-phone.webp) center/cover no-repeat}
.ps-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(0,0,0,0) 0%,rgba(0,0,0,.55) 70%,#000 100%)}
.ps-center{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 20px calc(10vh + env(safe-area-inset-bottom));text-align:center}
.ps-coin{width:96px;height:96px;position:relative;transform-style:preserve-3d;animation:ps-flip 2.6s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(255,190,40,.55))}
.ps-coin i{position:absolute;inset:0;border-radius:50%;background:center/contain no-repeat;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ps-coin .f{background-image:url(/img/press-start/coin-front.webp)}
.ps-coin .b{background-image:url(/img/press-start/coin-back.webp);transform:rotateY(180deg)}
@keyframes ps-flip{0%,20%{transform:rotateY(0)}50%,70%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}
.ps-kicker{margin:6px 0 0;font:700 12px/1 system-ui,sans-serif;letter-spacing:.42em;color:#c9a227}
.ps-title{margin:0;font:900 clamp(40px,12vw,64px)/1 Georgia,"Times New Roman",serif;letter-spacing:.08em;color:#ffd76a;background:linear-gradient(180deg,#fff3c4 0%,#ffd76a 45%,#b8860b 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 #3a0006) drop-shadow(0 0 22px rgba(255,190,40,.35))}
.ps-start{margin:22px 0 0;font:900 clamp(26px,8vw,40px)/1 "Courier New",ui-monospace,monospace;letter-spacing:.18em;color:#ff2a3a;text-shadow:0 0 2px #000,0 0 14px rgba(255,30,50,.85),0 2px 0 #3a0006;-webkit-text-stroke:1p