.post-preview-trigger{display:block;margin:18px 0 0;background:transparent;border:1px solid currentColor;border-radius:4px;color:inherit;padding:9px 13px;font:13px Arial,sans-serif;cursor:pointer}
.post-station{--ink:#101010;--paper:#1c5d95;position:fixed;inset:0;z-index:20000;display:grid;place-items:center;padding:20px;background:rgba(7,10,18,.77);backdrop-filter:blur(7px);font-family:Arial,sans-serif;color:var(--ink)}
.post-station[hidden]{display:none}.ps-panel{position:relative;width:min(850px,100%);max-height:calc(100dvh - 40px);overflow:auto;background:var(--paper);border:1px solid rgba(255,255,255,.22);border-radius:9px;padding:30px 36px 24px;box-shadow:0 25px 90px #0006}
.ps-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.ps-label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.75}.ps-close{border:1px solid #10101066;border-radius:50%;background:none;color:inherit;width:32px;height:32px;font-size:22px;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer}
.ps-title{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-weight:400;font-size:clamp(32px,5vw,53px);line-height:1;margin:15px 0 0;letter-spacing:-.02em}.ps-art svg{width:100%;height:auto;display:block;overflow:visible;margin:0 auto}.ps-art{margin-top:10px}.ps-bottom{border-top:1px solid #10101055;padding-top:17px;display:flex;align-items:center;justify-content:space-between;gap:18px}.ps-message{font-size:14px;margin:0;line-height:1.5;max-width:440px;min-height:42px}.ps-counter{font:11px monospace;letter-spacing:.13em;white-space:nowrap}.ps-actions{display:flex;gap:14px;margin-top:15px}.ps-replay,.ps-error-demo{background:transparent;color:inherit;border:0;border-bottom:1px solid #10101077;font:12px Arial,sans-serif;padding:6px 0;cursor:pointer}.ps-replay:disabled,.ps-error-demo:disabled{opacity:.4;cursor:default}.ps-footnote{font-size:10px;line-height:1.5;opacity:.7;margin:16px 0 0}.ps-stamp,.ps-incoming,.ps-outgoing,.ps-check,.ps-puff{opacity:0}.ps-wheel{transform-origin:173px 345px}.ps-head{transform-origin:466px 163px}.ps-hand-a{transform-origin:430px 181px}.ps-hand-b{transform-origin:472px 184px}.ps-lever{transform-origin:530px 316px}.ps-outgoing{transform-origin:677px 268px}.ps-incoming{transform-origin:169px 33px}.ps-pull-arm{opacity:0}.ps-sending .ps-pull-arm{animation:ps-check .5s both}.ps-sending .ps-hand-b{opacity:0}
.ps-running .ps-incoming{animation:ps-drop 1.8s ease-in both}.ps-running .ps-wheel{animation:ps-spin 2.4s linear infinite}.ps-running .ps-carriage{animation:ps-carriage 1.4s steps(6) infinite}.ps-running .ps-hand-a{animation:ps-type .22s ease-in-out infinite alternate}.ps-running .ps-hand-b{animation:ps-type .29s ease-in-out infinite alternate-reverse}.ps-running .ps-head{animation:ps-read 2s ease-in-out infinite}.ps-running .ps-typed{stroke-dasharray:55;animation:ps-ink 1.4s steps(6) infinite}
.ps-approved .ps-stamp{animation:ps-stamp 1s ease-in-out both}.ps-approved .ps-check{animation:ps-check .7s .7s ease-out both}.ps-sending .ps-lever{animation:ps-lever 1.2s ease-in-out both}.ps-sending .ps-outgoing{animation:ps-send 2s .7s ease-in-out both}.ps-sending .ps-puff{animation:ps-check .7s 2.3s ease-out both}.ps-done .ps-head{animation:ps-nod .8s ease-in-out both}.ps-done .ps-check{opacity:1}
@keyframes ps-drop{0%{opacity:0;transform:translate(0,-60px) rotate(-12deg)}20%{opacity:1}75%{opacity:1;transform:translate(48px,125px) rotate(2deg)}100%{opacity:0;transform:translate(48px,210px) rotate(6deg)}}
@keyframes ps-spin{to{transform:rotate(360deg)}}@keyframes ps-carriage{0%,85%{transform:translateX(0)}75%{transform:translateX(-20px)}}@keyframes ps-type{to{transform:rotate(-5deg)}}@keyframes ps-read{50%{transform:rotate(-7deg)}}@keyframes ps-ink{from{stroke-dashoffset:55}to{stroke-dashoffset:0}}
@keyframes ps-stamp{0%,100%{opacity:1;transform:translateY(0)}60%,75%{opacity:1;transform:translateY(20px)}}@keyframes ps-check{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes ps-lever{50%,80%{transform:rotate(46deg)}}@keyframes ps-reach{50%,80%{transform:rotate(-44deg)}}@keyframes ps-send{0%{opacity:0;transform:translate(-46px,0) scale(.65)}20%{opacity:1;transform:translate(0,0) scale(.65)}65%{opacity:1;transform:translate(-10px,-175px) scale(.65)}100%{opacity:0;transform:translate(140px,-205px) scale(.65)}}@keyframes ps-nod{40%{transform:rotate(10deg)}80%{transform:rotate(-4deg)}}
@media(max-width:600px){.post-station{padding:12px}.ps-panel{padding:20px 17px;max-height:calc(100dvh - 24px)}.ps-bottom{align-items:flex-start}.ps-counter{font-size:9px}.ps-message{font-size:12px}.ps-art{margin:30px -8px 25px}.ps-footnote{max-width:280px}}
@media(prefers-reduced-motion:reduce){.post-station *{animation:none!important;transition:none!important}.ps-running .ps-incoming,.ps-approved .ps-check,.ps-done .ps-check{opacity:1}.ps-sending .ps-outgoing{opacity:1}}

/* Illustration v2: articulated joints, matched to the editable vector master. */
.ps-panel{width:min(1000px,100%)}.ps-art{margin-top:6px}.ps-title{font-size:clamp(29px,4vw,44px)}
.ps-wheel{transform-origin:323px 465px}.ps-head{transform-origin:606px 278px}.ps-hand-a{transform-origin:554px 310px}.ps-hand-b{transform-origin:624px 314px}.ps-lever{transform-origin:770px 454px}.ps-pull-arm{transform-origin:624px 314px}.ps-outgoing{transform-origin:937px 328px}.ps-incoming{transform-origin:207px 123px}
.ps-sending .ps-pull-arm{animation:ps-pull-v2 1.6s ease-in-out both}.ps-sending .ps-lever{animation:ps-lever-v2 1.6s ease-in-out both}
@keyframes ps-drop{0%{opacity:0;transform:translate(0,-70px) rotate(-8deg)}20%{opacity:1}75%{opacity:1;transform:translate(0,90px) rotate(3deg)}100%{opacity:0;transform:translate(0,155px) rotate(8deg)}}
@keyframes ps-send{0%{opacity:0;transform:translate(-18px,0) scale(.65)}20%{opacity:1;transform:translate(-15px,0) scale(.65)}65%{opacity:1;transform:translate(-15px,-215px) scale(.65)}100%{opacity:0;transform:translate(170px,-225px) scale(.65)}}
@keyframes ps-stamp{0%,100%{opacity:1;transform:translateY(0)}60%,75%{opacity:1;transform:translateY(7px)}}
@keyframes ps-pull-v2{0%{opacity:1;transform:rotate(0)}55%,75%{opacity:1;transform:rotate(35deg)}100%{opacity:0;transform:rotate(0)}}
@keyframes ps-lever-v2{55%,75%{transform:rotate(-35deg)}}
@media(prefers-reduced-motion:reduce){.post-station *{animation:none!important}.ps-sending .ps-pull-arm{opacity:1}}

/* Post house v3: a contextual, non-modal companion at the bottom edge. */
.post-house{position:fixed;right:24px;bottom:18px;z-index:12000;font-family:Arial,sans-serif;color:#101010}.post-house[hidden],.post-house [hidden]{display:none!important}
.ph-door{position:relative;display:flex;flex-direction:column;align-items:center;background:none;border:0;padding:0;color:#fff;cursor:pointer;filter:drop-shadow(0 5px 9px #0005)}.ph-door img{width:110px;height:95px;transition:transform .25s}.ph-door:hover img{transform:translateY(-4px)}.ph-door-label{font:9px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}.ph-bubble{background:#1c5d95;color:#101010;padding:7px 12px;border:1px solid #101010;border-radius:16px 16px 2px 16px;font-size:12px;margin-bottom:2px}
.post-house .post-station{position:relative;inset:auto;display:block;padding:0;background:transparent;backdrop-filter:none;max-width:calc(100vw - 48px)}
.post-house .ps-panel{width:640px;max-width:100%;max-height:calc(100dvh - 100px);padding:20px 24px 15px;box-shadow:0 15px 50px #0005;overflow:auto;border-radius:8px 8px 3px 3px;border-color:#10101088}
.post-house .ps-title{font-size:34px;margin:8px 0 0}.ph-invitation{font:15px Arial,sans-serif;margin:7px 0 0}.post-house .ps-label{font-size:9px}.post-house .ps-message{font-size:12px;min-height:18px}.post-house .ps-counter{font-size:9px}.post-house .ps-bottom{padding-top:10px}.post-house .ps-actions{margin-top:10px;align-items:center}.post-house .ps-footnote{font-size:9px;margin-top:10px}.post-house .ps-replay{font-size:11px}.ph-write{font:12px Arial,sans-serif;background:#101010;color:#1c5d95;border:1px solid #101010;border-radius:3px;padding:8px 12px;cursor:pointer}.ph-write:disabled{opacity:.4}
.ph-building{position:relative;perspective:950px;overflow:hidden}.post-house .ps-art{margin:4px 0 0;min-height:80px}.ph-facade{position:absolute;inset:0;pointer-events:none;background:#1c5d95;backface-visibility:hidden;opacity:0;visibility:hidden}.ph-facade img{width:100%;height:100%;object-fit:contain}.ph-left{clip-path:inset(0 50% 0 0);transform-origin:0 50%}.ph-right{clip-path:inset(0 0 0 50%);transform-origin:100% 50%}.ph-opening .ph-left{animation:ph-unfold-left 1.4s ease-in-out both}.ph-opening .ph-right{animation:ph-unfold-right 1.4s ease-in-out both}.ph-opening .ps-art{animation:ph-inside 1.4s ease both}
@keyframes ph-unfold-left{0%,15%{opacity:1;visibility:visible;transform:rotateY(0)}90%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden;transform:rotateY(-110deg)}}
@keyframes ph-unfold-right{0%,15%{opacity:1;visibility:visible;transform:rotateY(0)}90%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden;transform:rotateY(110deg)}}
@keyframes ph-inside{0%,20%{opacity:0;transform:scale(.92)}100%{opacity:1;transform:scale(1)}}
@media(max-width:600px){.post-house{right:12px;bottom:86px}.post-house .post-station{max-width:calc(100vw - 24px)}.post-house .ps-panel{width:calc(100vw - 24px);padding:14px 15px 12px;max-height:calc(100dvh - 175px)}.post-house .ps-title{font-size:29px}.post-house .ps-art{margin:17px -5px 10px}.post-house .ps-bottom{gap:8px}.post-house .ps-message{font-size:11px}.ph-door img{width:92px;height:80px}.ph-bubble{font-size:11px}.post-house .ps-close{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.post-house *{animation:none!important;transition:none!important}.ph-facade{display:none}}

/* v4: quiet interface and real alternating keystrokes. */
.post-house .ps-top{justify-content:flex-end;height:20px}.post-house .ps-title{margin-top:0}.post-house .ps-panel{padding-bottom:6px}.post-house .ph-building{margin-top:8px}.post-house .ps-art{cursor:pointer}.post-house .ps-art:focus-visible{outline:1px solid #101010;outline-offset:-3px}.ph-sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ps-running .ps-hand-a,.ps-running .ps-hand-b{animation:none}.ps-running .ps-fingers-a{animation:ps-keystroke-a .48s steps(1,end) infinite}.ps-running .ps-fingers-b{animation:ps-keystroke-b .61s steps(1,end) infinite}.ps-running .ps-finger-one{animation:ps-fingertip .24s steps(1,end) infinite}.ps-running .ps-finger-two{animation:ps-fingertip .33s .12s steps(1,end) infinite}
@keyframes ps-keystroke-a{0%,35%,75%,100%{transform:translateY(0)}20%,55%{transform:translateY(3px)}}
@keyframes ps-keystroke-b{0%,15%,55%,100%{transform:translateY(0)}35%,75%{transform:translateY(3px)}}
@keyframes ps-fingertip{50%{transform:translateY(2px)}}
@media(prefers-reduced-motion:reduce){.post-house *{animation:none!important}}

/* v5: the original falling envelope lands in the left-hand post house. */
.post-house{left:112px;right:auto}.post-house .post-station{max-width:min(640px,calc(100vw - 136px))}.post-house .ps-title{max-width:560px;font-size:clamp(28px,3.6vw,38px)}
.ph-letter-lane{position:absolute;bottom:0;left:0;width:110px;height:210px;overflow:hidden;pointer-events:none}.ph-door .ph-mail-drop{position:absolute;left:50%;top:110px;width:32px;height:32px;max-width:none;max-height:none;animation:ph-letter-arrives 5s linear infinite;transform-origin:center;object-fit:contain;transition:none}
@keyframes ph-letter-arrives{0%,12%{opacity:0;transform:translate(-50%,-110px) rotate(16deg)}24%{opacity:.8}75%{opacity:1;transform:translate(-50%,-21px) rotate(-6deg)}88%{opacity:0;transform:translate(-50%,9px) rotate(0)}100%{opacity:0;transform:translate(-50%,9px) rotate(0)}}
@media(max-width:600px){.post-house{left:12px;right:auto}.post-house .post-station{max-width:calc(100vw - 24px)}.ph-letter-lane{width:92px;height:190px}.ph-door .ph-mail-drop{top:98px;width:28px;height:28px}.post-house .ps-title{font-size:29px}}
@media(prefers-reduced-motion:reduce){.ph-door .ph-mail-drop{animation:none;opacity:1;transform:translate(-50%,-22px)}}

/* v6: occasional sky mail, all routes share the real house entrance. */
.post-sky{position:fixed;inset:0;z-index:11900;pointer-events:none;overflow:hidden;opacity:1;transition:opacity .22s ease}.post-sky[hidden],.post-sky [hidden]{display:none!important}.post-sky.sky-paused{opacity:0}.sky-cloud{position:absolute;width:124px;height:76px;opacity:.8;animation:sky-cloud-breathe 8s ease-in-out infinite}.sky-plane{position:absolute;left:0;top:0;width:124px;height:59px;will-change:transform}.post-sky .sky-letter{position:absolute;top:0;left:0;width:34px;height:28px;max-width:none;max-height:none;object-fit:contain;transform-origin:center;will-change:transform,opacity}.sky-paused .sky-cloud{animation-play-state:paused}
@keyframes sky-cloud-breathe{50%{transform:translateY(5px)}}
@media(max-width:600px){.sky-cloud{width:110px;height:67px}.sky-plane{width:108px;height:51px}.post-sky .sky-letter{width:30px;height:26px}}
@media(prefers-reduced-motion:reduce){.post-sky{display:none!important}}

/* v8: white cloud, gently drifting on the same pausable animation clock. */
.post-sky .sky-cloud{fill:#fff;opacity:1;animation:none}
