/* Poster: the landing half of the Mail by Pony system. Tokens match /static/tokens.css; see docs/DESIGN-SYSTEM.md. */
@font-face{font-family:DM;src:url('/static/fonts/DMSans-Variable.woff2');font-weight:100 1000;font-display:swap}@font-face{font-family:Mono;src:url('/static/fonts/IBMPlexMono-Regular.woff2');font-display:swap}
:root{--paper:#f5eedc;--paper-2:#eae1cb;--surface:#fffdf8;--ink:#28231f;--red:#b92f1d;--post:#ef4931;--muted:#686055;--g:clamp(16px,3.4vw,56px)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM,Arial,sans-serif;font-optical-sizing:auto;overflow-x:hidden}
button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:focus-visible{outline:4px solid var(--ink);outline-offset:4px}.block :focus-visible{outline-color:var(--paper)}
.skip{position:absolute;top:-80px;left:var(--g)}.skip:focus{top:12px;background:var(--ink);color:var(--paper);z-index:9;padding:12px 16px}
.g{padding-left:var(--g);padding-right:var(--g)}

header{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px;font-weight:800;font-size:clamp(16px,1.4vw,21px);letter-spacing:-.03em}
header nav{display:flex;gap:clamp(16px,2vw,32px)}header nav a{display:inline-flex;align-items:center;min-height:48px}
header a{text-decoration:none}header .send{background:none;border:0;padding:0;font-weight:800;letter-spacing:-.03em}header .send:hover{color:var(--red)}

/* Measured against the bundled DM Sans at 900. Container units keep the first
   paint and resize identical: no font-ready measurement/reset or layout writes. */
.g{container-type:inline-size}
.fit-send{--fit-wide:17.35;--fit-phone:46.87}
.fit-write{--fit-wide:21.91;--fit-phone:34.11}
.fit-print{--fit-wide:23.33;--fit-phone:36.12}
.fit-usps{--fit-wide:18.76;--fit-phone:32.55}
.fit-gallop{--fit-wide:24.31;--fit-phone:37.76}
.fit-assistant{--fit-wide:8.43;--fit-phone:25.15}
.fit-control{--fit-wide:13.54;--fit-phone:25.61}
@supports(font-size:1cqi){.g .fit{font-size:calc(var(--fit-wide) * 1cqi)}}
.fit{display:block;margin:0;font-weight:900;letter-spacing:-.065em;line-height:.82;white-space:nowrap;padding-bottom:.14em}
.fit>span{display:inline-block;padding-right:.06em}
.lede{font-size:clamp(22px,3.1vw,48px);line-height:1.08;font-weight:700;letter-spacing:-.035em;max-width:19ch;margin:clamp(24px,3vw,48px) 0 0}
.fine{font-size:clamp(13px,1.1vw,16px);color:var(--muted);margin:14px 0 0}

.cta{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;border-radius:0;background:var(--red);color:var(--surface);font-weight:900;font-size:clamp(28px,5.4vw,88px);letter-spacing:-.05em;line-height:1;padding:.32em .36em .38em;margin-top:clamp(32px,4vw,64px);text-align:left;text-decoration:none;transition:background .12s}
.cta:hover{background:var(--ink)}.cta .arrow{font-weight:400}

.snippet{display:flex;align-items:stretch;margin-top:clamp(14px,1.6vw,22px)}
.snippet code{flex:1;min-width:0;display:block;background:var(--surface);padding:14px 16px;font:clamp(13px,1.05vw,15px)/1.5 Mono,ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.copy{flex-shrink:0;min-width:84px;min-height:48px;border:0;background:var(--ink);color:var(--paper);font-weight:800;font-size:15px;padding:0 16px}
.copy:hover{background:var(--red)}

.block{background:var(--red);color:var(--paper);padding-top:clamp(56px,8vw,140px);padding-bottom:clamp(40px,5vw,80px);margin-top:clamp(40px,6vw,100px)}
.block h2{font-size:12vw}
.block .cta{background:var(--paper);color:var(--ink)}.block .cta:hover{background:var(--ink);color:var(--paper)}
footer{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:clamp(56px,7vw,120px);font-size:clamp(12px,1vw,14px);line-height:1.5}
footer strong{font-weight:800;letter-spacing:-.02em}footer a{text-underline-offset:.2em}

/* The pixel-retouched mark scales only by whole multiples, never smoothed. */
.mark{display:inline-flex;align-items:center;min-height:48px}.mark img{display:block;width:78px;height:36px;image-rendering:pixelated}

/* Assistant row under the hero button: real marks on square Surface tiles, each to its own setup tab. */
.assistants{margin-top:clamp(24px,3vw,40px)}
.assistants p{margin:0 0 10px;font-size:clamp(14px,1.1vw,16px);font-weight:700;color:var(--muted)}
.assistant-row{display:flex;flex-wrap:wrap;gap:6px}
.assistant-row a{display:grid;place-items:center;width:48px;height:48px;background:var(--surface);transition:background .12s}
.assistant-row a:hover{background:var(--paper-2)}
.assistant-row img,.assistant-row svg{width:22px;height:22px}

footer .legal{display:flex;flex-wrap:wrap;gap:4px 20px;font-weight:800;font-size:clamp(14px,1.1vw,16px)}
footer .legal a{display:inline-flex;align-items:center;min-height:44px}

@media(max-width:640px){
  .fit .w{display:block}
  @supports(font-size:1cqi){.g .fit{font-size:calc(var(--fit-phone) * 1cqi)}}
  .block h2{font-size:18vw}
  .snippet{flex-direction:column}.copy{min-height:52px}
}
/* Reveal only after the observer sees text. Content stays readable without JS
   or observers, and every animation affects compositing rather than layout. */
@keyframes text-reveal{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){.reveal-in{animation:text-reveal .42s cubic-bezier(.2,.65,.3,1) both}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
