/* The owner’s drawn lettering, shared by every Piece 02 handwritten surface. */
@font-face{font-family:'Post Office Letters';src:url('PostOfficeLetters-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.app-wrap,.world{--hand:'Post Office Letters','Gochi Hand',cursive;font-synthesis:none;font-feature-settings:'calt' 1}

/* A separate, steadier cut for personal letters and readable body copy. */
@font-face{font-family:"Post Office Reading";src:url("PostOfficeReading-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* A quiet maker credit at the end of each journey. */
:root .piece-credit{font:400 16px/1.5 'Post Office Letters',cursive;color:#666570;text-align:center;margin:20px 0;font-synthesis:none}
.piece-credit a,.app-foot .piece-credit a{color:inherit;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.piece-credit a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.app-foot .piece-credit{flex-basis:100%;margin:0}
/* Localized controls grow with their labels. User content keeps its own script. */

html:is([lang=zh-CN],[lang=ja],[lang=ko]) .app-wrap{--hand:"Gochi Hand",system-ui,sans-serif;--head:system-ui,sans-serif;--body:system-ui,sans-serif}
html[lang=th] .app-wrap{--hand:"Gochi Hand","Playpen Sans Thai",sans-serif;--head:"Playpen Sans Thai",sans-serif;--body:"Playpen Sans Thai",sans-serif}
html[lang=vi] .app-wrap{--hand:"Pangolin",sans-serif;--head:"Pangolin",sans-serif;--body:"Pangolin",sans-serif}
html:not([lang=en]) :is(button,.button,.file-action,.eyebrow,label,legend){white-space:normal;overflow-wrap:anywhere;line-height:1.5;letter-spacing:normal;height:auto;min-width:0}
html:not([lang=en]) :is(h1,h2,h3,.gift-summary p){overflow-wrap:anywhere;line-height:1.35;letter-spacing:normal}
html:not([lang=en]) .editor-dock{gap:10px;align-items:stretch}
html:not([lang=en]) .editor-dock button{min-height:48px;flex:1;max-width:100%}
html:not([lang=en]) :is(.name-row>div,.photo-row>div,.voice-row,.moment-card){min-width:0}
html:not([lang=en]) .piece-credit{font-family:var(--hand,system-ui);line-height:1.6}
@media(max-width:440px){html:not([lang=en]) .m-top{gap:10px}html:not([lang=en]) .m-nav{gap:12px;flex-wrap:wrap}html:not([lang=en]) .app-foot{gap:14px}}

/* The mobile navigation and long policy headings must wrap even in English. */
@media(max-width:440px){.m-top{flex-wrap:wrap;gap:14px}.m-nav{flex-wrap:wrap;margin-left:auto}}
.m-page{min-width:0}.m-page :is(h1,h2,p,a){overflow-wrap:anywhere}

html[lang=th] :is(.app-wrap,.m-page) :is(h1,h2,h3,p,button,a,label,legend,input,textarea,span){font-family:"Playpen Sans Thai",sans-serif}
html[lang=vi] :is(.app-wrap,.m-page) :is(h1,h2,h3,p,button,a,label,legend,input,textarea,span){font-family:"Pangolin",sans-serif}
html:is([lang=zh-CN],[lang=ja],[lang=ko]) :is(.app-wrap,.m-page) :is(h1,h2,h3,p,button,a,label,legend,input,textarea,span){font-family:system-ui,sans-serif}
