/* Caveat is self-hosted under SIL OFL; original font notice ships beside it. */
@font-face{font-family:'Eden Caveat';src:url('../assets/fonts/Caveat-Variable-latin.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
.postcard-invitation.manifesto-listen{position:relative;left:50%;translate:-50% 0;width:min(740px,90vw);max-width:none;min-height:0;display:block;margin:12px 0 34px;padding:0;background:none;border:0;border-radius:0;overflow:visible;isolation:isolate;color:#38291e;opacity:0;visibility:hidden;filter:drop-shadow(0 14px 22px #140c0526)}
.postcard-invitation.is-ready{opacity:1;visibility:visible}
.envelope-open{position:relative;display:block;width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;cursor:pointer;transition:transform .35s ease}
.envelope-art{display:block;width:100%;height:auto}
.envelope-face{position:relative;display:block}
.envelope-caption{position:absolute;left:20%;right:20%;bottom:14%;display:flex;flex-direction:column;align-items:center;gap:7px;pointer-events:none}
.envelope-prompt{display:block;padding:12px 0;font:400 20px/1.2 var(--display);letter-spacing:.01em;color:#d8c39b;text-align:center}
.envelope-logo.brand-mark{width:110px;color:#38291e;flex:none}
@media(hover:hover) and (pointer:fine){.envelope-open:hover{transform:translateY(-3px)}}
.postcard-play{display:grid;place-items:center;flex:none;width:48px;height:48px;padding:12px;border:1px solid #8b714b70;border-radius:50%;background:transparent;color:#735e42;cursor:pointer}
.postcard-play svg{grid-area:1/1;width:22px;height:22px;fill:currentColor}
.postcard-play .i-pause,.postcard-play.is-playing .i-play{display:none}.postcard-play.is-playing .i-pause{display:block}
.postcard-play:hover{background:#8b714b12}
.postcard-reader-ready #manifestoText>summary{display:none}
.postcard-reader-ready #manifestoText{display:none}

.letter-dialog{position:fixed;inset:0;width:min(820px,100vw);height:100dvh;max-width:none;max-height:none;margin:0 auto;padding:0;border:0;background:transparent;color:#38291e;overflow:hidden;opacity:0}
.letter-dialog.is-ready{opacity:1}
.letter-dialog::backdrop{background:#140c05d1}
.letter-scroll{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin;scrollbar-color:#9b87624d transparent}
.letter-sheet{position:relative;isolation:isolate;width:min(700px,calc(100% - 40px));margin:34px auto 0;padding:calc(50dvh - 58px) 80px calc(50dvh + 30px);min-height:1000px}
.letter-sheet::before{content:'';position:absolute;inset:0;z-index:-1;border:32px solid transparent;border-image:url('../assets/oneeden/manifesto-cotton-paper-v1.webp') 95 fill / 32px / 0 stretch round;pointer-events:none}
.paper-fallback .letter-sheet::before{border:0;border-radius:3px;background:#f2f0e6 url('../assets/oneeden/paper-grain.svg')}
.letter-writing{position:relative;width:100%;max-width:480px;margin:0 auto}
.letter-passage{position:relative;margin:0 0 100px}
.letter-passage:last-child{margin-bottom:0}
.letter-type{width:100%;margin:0;font:400 35px/1.4 'Eden Caveat','Segoe Print',cursive;text-align:center;letter-spacing:0;text-wrap:pretty}
.letter-type strong{font-weight:700}
/* Existing accent marks now use bold, with one consistent ink colour. */
.letter-blue,.letter-olive,.letter-clay,.letter-gold{font-weight:700}
.letter-underline{text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-style:wavy;text-decoration-thickness:1px;text-underline-offset:.14em;text-decoration-skip-ink:none}
.letter-double{text-decoration-style:double;text-decoration-thickness:1px}
.letter-word{opacity:0}
.letter-word.is-inked{opacity:1}
.letter-doodle{position:absolute;left:-40px;bottom:-68px;width:90px;height:90px;opacity:.3;transform-origin:50% 85%;animation:letter-drift 8s ease-in-out infinite alternate;animation-play-state:paused;pointer-events:none}
.letter-passage:nth-child(even) .letter-doodle{left:auto;right:-40px;animation-delay:-3s}
@keyframes letter-drift{from{transform:translateX(-3px) rotate(-3deg)}to{transform:translateX(3px) rotate(3deg)}}
.letter-dialog[open] .letter-passage.is-near .letter-doodle{animation-play-state:running}
.page-idle .letter-doodle{animation-play-state:paused!important}
.letter-close{position:absolute;right:17px;top:18px;width:44px;height:44px;display:grid;place-items:center;padding:12px;border:0;border-radius:50%;background:#f2f0e6e8;color:#544a3c;box-shadow:0 2px 12px #140c0515;cursor:pointer;z-index:4}
.letter-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round}
.letter-footer{position:absolute;left:50%;transform:translateX(-50%);width:min(700px,calc(100% - 40px));box-sizing:border-box;padding:0 48px;bottom:max(36px,env(safe-area-inset-bottom));height:56px;display:flex;justify-content:space-between;pointer-events:none;z-index:4}
.letter-play.postcard-play,.letter-sound{display:grid;place-items:center;flex:none;box-sizing:border-box;width:56px;height:56px;padding:15px;border:1px solid #9c896b40;border-radius:48% 52% 49% 51%;background:#eee8dc80 url('../assets/oneeden/paper-grain.svg');color:#735e42;box-shadow:inset 0 1px 1px #fff8,0 1px 2px #735e4210;pointer-events:auto;cursor:pointer}
.letter-play.postcard-play:hover,.letter-sound:hover{background-color:#e8dfce90}
.letter-sound svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.letter-sound .mic-muted{display:none}.letter-sound.is-muted .mic-muted{display:block}
.letter-dialog button:focus-visible,.postcard-invitation button:focus-visible{outline:2px solid #8b714b;outline-offset:3px}
.letter-scroll:focus-visible{outline:none}
.letter-open .hero-track,.letter-open .ticker-track{animation-play-state:paused}
@media(hover:hover) and (pointer:fine){.letter-dialog,.postcard-invitation{cursor:url('../assets/oneeden/cursor-olive.svg') 4 3,auto}.letter-dialog button,.postcard-invitation button{cursor:url('../assets/oneeden/cursor-finger-v2.svg') 13 4,pointer}}
@media(max-width:809px){
 .postcard-invitation.manifesto-listen{width:calc(100vw - 48px);margin-top:10px}
 .envelope-caption{bottom:13%;gap:4px}
 .envelope-prompt{font-size:16px}
 .envelope-logo.brand-mark{width:78px}
 .letter-dialog{width:100vw}
 .letter-footer{width:calc(100% - 24px);padding:0 32px}
 .letter-sheet{width:calc(100% - 24px);margin-top:30px;padding:calc(50dvh - 52px) 35px calc(50dvh + 30px);min-height:900px}
 .letter-sheet::before{border-width:22px;border-image-width:22px}
 .letter-type{font-size:30px;line-height:1.35}
 .letter-passage{margin-bottom:94px}
 .letter-doodle{width:72px;height:72px;left:-20px;bottom:-65px}
 .letter-passage:nth-child(even) .letter-doodle{right:-20px}
 .letter-close{top:16px;right:11px}
}
@media(max-width:350px){.letter-sheet{padding-left:30px;padding-right:30px}}
@media(prefers-reduced-motion:reduce){.letter-dialog *{transition:none!important;animation:none!important}.letter-word{opacity:1!important}}
