/* Paper, photos and live Vietnamese type. No lettering is baked into artwork. */
@font-face{font-family:'GT Postcard Serif';src:url('/assets/october-postcards/fonts/serif.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'GT Postcard Serif';src:url('/assets/october-postcards/fonts/serif-italic.woff') format('woff');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'GT Postcard Hand';src:url('/assets/october-postcards/fonts/hand.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'GT Postcard Sans';src:url('/assets/october-postcards/fonts/sans.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'GT Postcard Sans';src:url('/assets/october-postcards/fonts/sans-medium.woff') format('woff');font-style:normal;font-weight:500;font-display:swap}
.op-cover,body.op-page{font-synthesis:none;font-kerning:normal;letter-spacing:normal;word-spacing:normal}
#opening.gt-opening.gt-opening-paper{--op-body:'GT Postcard Sans',sans-serif;font-synthesis:none}
#opening.gt-opening-paper h2{font-weight:400;line-height:1.4;letter-spacing:normal;word-spacing:normal;text-wrap:pretty}
#opening.gt-opening-paper :is(.gt-opening-eyebrow,#opening-description,.gt-opening-cta,.gt-opening-music,.gt-letter-label,.gt-letter-date){font-family:var(--op-body)}
#opening.gt-opening-paper .gt-opening-eyebrow{letter-spacing:.12em}
#opening.gt-opening-paper .gt-opening-cta{color:var(--op-on-accent);font-weight:500}
#opening.gt-opening-paper .gt-opening-signature{font:400 13px/1.8 var(--op-body);letter-spacing:normal;word-spacing:normal;opacity:1}
#opening.gt-opening-paper .gt-opening-music{opacity:1}
.collection-page .c-cover.op-cover{container-type:inline-size;display:block;position:relative;isolation:isolate;width:100%;max-width:760px;min-height:0;height:auto;margin:auto;padding:0;border:0;overflow:hidden;background:var(--c-bg);color:var(--c-ink);text-align:left;--op-hand:var(--op-script,'GT Postcard Hand','GT Postcard Serif',Georgia,serif)}
.op-cover::before,.op-cover::after{display:none}
.op-cover *{box-sizing:border-box}
.op-scene{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:133.333cqw;overflow:hidden;background:var(--c-bg)}
.op-cover .op-title{display:block;position:relative;font:400 calc(6.4cqw * var(--c-scale,1))/1.35 var(--c-heading);white-space:pre-line;letter-spacing:normal;word-spacing:normal;overflow-wrap:break-word;text-wrap:pretty;color:inherit;margin:0}
.op-day{display:block;font:italic 400 24cqw/1.15 'GT Postcard Serif',Georgia,serif;letter-spacing:-.07em;white-space:nowrap;margin:2cqw 0 0;color:var(--c-accent)}
.op-cover .op-wish{position:relative;font:400 3.5cqw/1.55 var(--c-heading);letter-spacing:normal;word-spacing:normal;white-space:pre-line;overflow-wrap:break-word;text-wrap:pretty;margin:0}
.op-cover .op-note{position:relative;font:400 5cqw/1.4 var(--op-hand);letter-spacing:normal;white-space:pre-line;overflow-wrap:break-word;margin:0}
.op-art{display:block;max-width:none;pointer-events:none;object-fit:contain}
.op-heart{display:inline-flex;width:6cqw;height:6cqw;align-items:center;justify-content:center;color:var(--c-accent)}
.op-heart .ui-icon{width:100%!important;height:100%!important;stroke-width:1.1}
.op-line-flower{display:block;width:100%;height:auto;overflow:visible}
.op-watercolor{position:absolute;inset:0;z-index:-1;background:var(--c-secondary);opacity:.9;border-radius:40% 14% 30% 5% / 5% 8% 15% 8%;transform:rotate(8deg);clip-path:polygon(4% 2%,91% 0,98% 6%,96% 23%,100% 48%,96% 76%,98% 97%,9% 100%,1% 88%,5% 66%,0 44%,3% 18%)}
.op-wash-top{inset:-4cqw -5cqw auto auto;width:30cqw;height:20cqw;rotate:-35deg}
.op-tape{position:absolute;top:-3cqw;left:42%;width:18cqw;height:6cqw;background:#d5b18c8c;transform:rotate(-5deg);z-index:2}
.op-dedication{padding:9cqw 8cqw;text-align:center;background:var(--c-secondary)}
.op-dedication .op-label{font:400 2cqw/1.7 var(--c-body);letter-spacing:.08em;margin:0 0 3cqw}
.op-dedication .op-recipient{font:400 5cqw/1.5 var(--c-heading);white-space:pre-line;overflow-wrap:break-word;margin:0}
.op-link{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:44px;padding:8px 0;margin-top:24px;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font:400 12px/1.7 var(--c-body)}
.op-link:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.op-muse-heading{padding:7cqw 10cqw 0}
.op-muse-heading .op-day{font-family:'GT Great Vibes',Georgia,serif;font-style:normal;font-size:28cqw;letter-spacing:0;margin-top:2cqw;color:#cd8580}
.op-muse-scene{position:relative;flex:1;min-height:74cqw}
.op-muse-copy{position:relative;z-index:1;width:34%;padding:7cqw 0 5cqw;margin-left:10cqw}
.op-muse-copy .op-note{margin-top:9cqw;color:#aa605c;font-size:4.7cqw}
.op-woman{position:absolute;bottom:-1cqw;right:-6cqw;width:72%;height:auto}
.op-sage .op-scene{padding:11cqw 9cqw 3cqw;background:var(--c-bg)}
.op-sage-paper{position:relative;padding:6cqw 5cqw 5cqw;background:var(--c-secondary);box-shadow:0 1.3cqw 3cqw #28301b24;rotate:-6deg;text-align:center;z-index:2}
.op-sage-paper .op-tape{background:#dfc4a69c;top:-4cqw;width:14cqw;height:10cqw}
.op-sage-paper .op-title{font-family:var(--op-hand);font-size:6.2cqw;line-height:1.2}
.op-sage-paper .op-day{font-family:'GT Great Vibes',Georgia,serif;font-style:normal;letter-spacing:0;font-size:24cqw;margin:1cqw 0 2cqw;color:var(--c-accent)}
.op-sage-paper .op-wish{font-size:2.9cqw;line-height:1.5;max-width:56cqw;margin:auto}
.op-sage-paper>.op-heart{position:absolute;right:10cqw;top:34cqw}
.op-paper-flower{position:absolute;right:-3cqw;bottom:4cqw;width:14cqw;rotate:10deg;color:var(--c-accent)}
.op-sage-polaroid{position:relative;margin-top:6cqw;padding:2.5cqw 2.5cqw 3cqw;background:#fffaf0;rotate:7deg;box-shadow:0 1cqw 2cqw #28301b17}
.op-sage-polaroid .op-photo{height:31cqw}
.op-sage-polaroid .op-note{text-align:center;font-size:3.3cqw;margin-top:2.5cqw}
.collection-page .op-photo{position:relative;overflow:hidden}
.collection-page .op-photo :is(.c-photo,.photo-zoom){position:relative;inset:auto;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;transform:none;rotate:none;background:none;aspect-ratio:auto}
.collection-page .op-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0}
.op-photo figcaption{display:none}
.op-petal .op-scene{padding:10cqw 9cqw 7cqw}
.op-petal-top{position:relative;width:59%;rotate:-5deg;z-index:1}
.op-petal-top .op-wish{font:400 6cqw/1.35 var(--op-hand)}
.op-petal-top>.op-heart{margin:3cqw 0 0 12cqw}
.op-petal-flower{position:absolute;right:6cqw;top:24cqw;width:40cqw;color:var(--c-ink)}
.op-petal-flower .op-watercolor{inset:-3cqw 0 25cqw -2cqw;background:#edb7ad75}
.op-petal-flower .op-line-flower{width:33cqw;margin:auto}
.op-petal-bottom{margin-top:auto;padding-top:20cqw}
.op-petal-bottom .op-day{font-size:20cqw;color:var(--c-ink);margin-bottom:3cqw}
.op-petal-bottom .op-title{font-size:6.1cqw}
.op-petal-bottom .op-note{font:400 2.5cqw/1.8 var(--c-body);text-align:center;letter-spacing:.09em;margin-top:9cqw}
.op-sky .op-scene{color:#fffdf9;background:#4c7b99;padding:11cqw 9cqw}
.op-sky-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.op-sky .op-scene::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#183a5335,transparent 78%)}
.op-sky-heading{rotate:-7deg;width:89%}
.op-sky-heading .op-title{font-family:var(--op-hand);font-size:6.5cqw;line-height:1.35}
.op-sky-heading .op-day{color:inherit;font-family:'GT Great Vibes',Georgia,serif;letter-spacing:0;font-style:normal;font-size:28cqw;margin-top:3cqw}
.op-sky-heading>.op-heart{position:absolute;right:0;bottom:7cqw;color:inherit}
.op-sky-wish{width:58%;margin-top:10cqw;rotate:-7deg;text-shadow:0 1px 2px #31526930}
.op-sky-wish .op-wish{font:400 4.6cqw/1.45 var(--op-hand)}
.op-sky-wish .op-heart{margin-top:2cqw;color:inherit;width:5cqw;height:5cqw}
.op-sky-wish .op-note{font-size:3.2cqw;margin-top:2cqw}
.op-postal .op-scene{padding:7cqw 10cqw 7cqw;background:radial-gradient(ellipse at top right,#f7dad180,transparent),var(--c-bg)}
.op-postal-top{display:flex;justify-content:space-between;gap:5cqw;align-items:start}
.op-postal-top .op-day{font-size:15cqw;color:var(--c-ink);margin:0}
.op-postal-top .op-title{font-size:4.5cqw;margin-top:1cqw}
.op-postmark{position:relative;width:13cqw;min-height:18cqw;border:1px dashed currentColor;rotate:8deg;padding:1cqw;text-align:center;opacity:.8}
.op-postmark .op-line-flower{height:12cqw}.op-postmark>span{font:400 1.4cqw/1 var(--c-body)}
.op-postmark::before{content:'';position:absolute;right:4cqw;top:6cqw;width:24cqw;height:9cqw;border-block:1px solid currentColor;border-radius:50%;opacity:.6}
.op-postal-photo{position:relative;background:#fffaee;padding:3cqw 3cqw 5cqw;margin-top:6cqw;rotate:-7deg;box-shadow:0 1cqw 2cqw #60302a20}
.op-postal-photo .op-photo{height:52cqw}
.op-sticky-note{position:absolute;right:-3cqw;top:13cqw;width:38cqw;padding:7cqw 4cqw 4cqw;background:#fff3e6;rotate:9deg;box-shadow:0 .7cqw 1.3cqw #633a3019;z-index:2}
.op-sticky-note .op-note{font-size:4.5cqw;line-height:1.4}.op-sticky-note>.op-heart{margin-top:2cqw}
.op-sticky-note .op-tape{width:20cqw;left:20%;top:-1cqw;height:4cqw}
.op-postal-wish{display:flex;align-items:end;gap:5cqw;margin-top:7cqw}
.op-postal-wish .op-wish{font-size:3.25cqw;flex:1}.op-postal-wish>.op-heart{flex-shrink:0;width:8cqw;height:8cqw}
.op-bouquet .op-scene{padding-top:7cqw}
.op-bouquet-heading{padding:0 8cqw;text-align:center;z-index:1}
.op-bouquet-heading .op-title{font-family:var(--op-hand);font-size:7cqw;line-height:1.35;rotate:-3deg}
.op-date-wash{position:relative;display:table;margin:2cqw auto 0;padding:1cqw 6cqw;background:#f7cdb08c;border-radius:40% 5% 30% 4%;rotate:-4deg}
.op-date-wash .op-day{font:400 21cqw/1.2 var(--op-hand);letter-spacing:.02em;color:#d57c73;margin:0}
.op-bouquet-scene{position:relative;min-height:75cqw;flex:1}
.op-bouquet-art{position:absolute;left:-7cqw;top:1cqw;width:72%;height:80cqw;object-fit:contain}
.op-bouquet-wish{position:relative;width:29%;margin:9cqw 7cqw 0 auto;rotate:8deg}
.op-bouquet-wish .op-wish{font:400 4.6cqw/1.45 var(--op-hand)}
.op-bouquet-wish>.op-heart{margin:5cqw 0 0 3cqw;color:#ce8346}
.op-gift-tag{position:absolute;left:32cqw;bottom:9cqw;width:30cqw;padding:4cqw 3cqw;background:#fae6ca;rotate:-16deg;box-shadow:0 .8cqw 1.2cqw #5038271a}
.op-gift-tag .op-note{font-size:4.3cqw}.op-gift-tag>.op-heart{position:absolute;right:2cqw;bottom:-2cqw;color:#cb7a35}
.op-gratitude .op-scene{padding:8cqw 10cqw 10cqw;background:radial-gradient(ellipse at bottom left,#e6bdb460,transparent),var(--c-bg)}
.op-gratitude-meta{display:flex;justify-content:space-between;align-items:center;gap:10cqw;font:400 2.7cqw/1.45 var(--c-body);letter-spacing:.06em}
.op-gratitude-meta .op-day{margin:0;padding:1cqw 4cqw;border:1px solid currentColor;border-radius:50%;font:italic 4cqw/1.4 var(--c-heading);letter-spacing:0;color:inherit}
.op-gratitude-title{position:relative;margin-top:11cqw}
.op-gratitude-title .op-title{font-size:11cqw;line-height:1.25;letter-spacing:normal;color:#fff4e5;max-width:90%}
.op-gratitude-flower{position:absolute;right:-1cqw;top:0;width:20cqw;color:#694639}
.op-gratitude-title .op-note{text-align:center;font-size:7.2cqw;margin:3cqw 3cqw 0 0;rotate:-5deg;color:#633b32}
.op-gratitude-title>.op-heart{position:absolute;right:0;bottom:2cqw;color:#57644c}
.op-gratitude-wish{margin-top:auto;padding-top:9cqw}
.op-gratitude-wish .op-wish{font-size:4cqw;line-height:1.55}
.op-hairline{display:block;width:55%;margin-top:8cqw;border-top:1px solid currentColor;opacity:.65}
.op-sunlight .op-scene{padding:8cqw 7cqw}
.op-sun-meta{display:flex;align-items:center;gap:4cqw;font:400 2cqw/1.4 var(--c-body)}
.op-sun-meta>.op-day{font:400 2.6cqw/1.4 var(--c-body);letter-spacing:0;margin:0;color:inherit}
.op-sun-meta>span:first-of-type{flex:1;border-top:1px solid currentColor;opacity:.65}
.op-sun-collage{position:relative;margin-top:6cqw;min-height:63cqw}
.op-sun-collage>.op-photo{width:63%;height:61cqw;rotate:-4deg}
.op-sun-letter{position:absolute;top:8cqw;right:-1cqw;width:48cqw;padding:8cqw 5cqw 4cqw;background:#fcebdd;rotate:7deg;box-shadow:0 1cqw 2cqw #5e4a3420;color:#77443a}
.op-sun-letter .op-wish{font:400 4.2cqw/1.4 var(--op-hand)}
.op-sun-letter>.op-heart{display:flex;margin:2cqw auto 0;width:5cqw;height:5cqw}.op-sun-letter .op-tape{left:35%;top:-1cqw;height:5cqw;rotate:3deg}
.op-sun-bottom{display:grid;grid-template-columns:minmax(0,1fr) 17cqw 20cqw;align-items:end;gap:3cqw;margin-top:6cqw}
.op-sun-bottom .op-title{font-size:4.4cqw;line-height:1.5}
.op-sun-bottom .op-day{font-size:18cqw;letter-spacing:-.075em;color:var(--c-ink);margin-top:2cqw}
.op-sun-bottom .op-line-flower{align-self:center}
.op-sun-bottom .op-note{font:400 2.6cqw/2.1 var(--c-body);text-transform:uppercase;letter-spacing:.02em;text-align:center;max-width:12ch;align-self:center}
.collection-thumb .c-miniature .c-cover.op-cover{width:800px;max-width:none;height:1067px;min-height:1067px;padding:0}
.collection-thumb:has(.op-cover) .c-miniature{height:1067px}
.library .collection-thumb:has(.op-cover){--catalog-cover-height:1067px}
/* A readable letter follows the postcard; uploaded photos have their own album. */
body.op-page{--op-gutter:clamp(24px,7vw,64px);--op-space:clamp(50px,8vw,78px);background:var(--c-secondary)}
body.op-page .c-invitation{width:100%;max-width:760px;margin:auto;background:var(--c-bg);box-shadow:0 0 60px #493e3010}
body.op-page .c-nav{padding:20px var(--op-gutter);display:block;border:0;text-align:center;background:#fffbf3;color:var(--c-ink)}
body.op-page .c-nav>a{display:none}body.op-page .c-nav>div{justify-content:center;gap:24px}
body.op-page:has(#memories[hidden]) .c-nav a[href='#memories']{display:none}
body.op-page .op-section{display:block;position:relative;width:100%;max-width:none;min-height:0;margin:0;padding:var(--op-space) var(--op-gutter);border:0;background:#fffbf3;color:var(--c-ink);overflow:clip}
body.op-page .op-label{font:400 9px/1.8 var(--c-body);letter-spacing:.06em;margin:0 0 18px;white-space:pre-line;overflow-wrap:break-word}
body.op-page .op-heading h2{font:400 clamp(28px,5vw,43px)/1.5 var(--c-heading);letter-spacing:normal;word-spacing:normal;white-space:pre-line;text-wrap:pretty;overflow-wrap:break-word;margin:0}
body.op-page .op-intro{font:400 14px/1.9 var(--c-body);max-width:48ch;white-space:pre-line;overflow-wrap:break-word;margin:24px 0 0}
body.op-page .op-message{font:400 15px/2 var(--c-body);letter-spacing:normal;word-spacing:normal;white-space:pre-line;text-align:left;overflow-wrap:break-word;margin:28px 0 0}
body.op-page .op-signature{font:italic 18px/1.8 var(--c-heading);letter-spacing:normal;white-space:pre-line;overflow-wrap:break-word;margin-top:30px}
body.op-page .op-letter{background:var(--c-secondary)}
body.op-page .op-letter-sheet{padding:clamp(24px,5vw,45px);background:#fffbf3;box-shadow:0 2px 12px #493e3008;border-top:1px solid color-mix(in srgb,var(--c-accent) 25%,transparent)}
body.op-page .op-wishes{margin-top:38px}
body.op-page .op-memory{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:baseline;gap:18px;padding:26px 0;border-top:1px solid color-mix(in srgb,var(--c-ink) 18%,transparent);text-align:left}
body.op-page .op-memory-mark{font:italic 22px/1.4 var(--c-heading);color:var(--c-accent)}
body.op-page .op-memory .op-label{margin:0 0 9px}
body.op-page .op-memory h3{font:400 24px/1.5 var(--c-heading);white-space:pre-line;letter-spacing:normal;overflow-wrap:break-word;margin:0 0 12px}
body.op-page .op-memory p:not(.op-label){font:400 13px/1.9 var(--c-body);white-space:pre-line;overflow-wrap:break-word;margin:0}
body.op-page .op-album{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px;margin-top:36px}
body.op-page .op-album>.c-photo{display:block;position:relative;margin:0;padding:8px 8px 14px;border:1px solid #e9e1d4;background:#fff;box-shadow:0 3px 12px #3c38260a;rotate:none;transform:none;border-radius:0}
body.op-page .op-album>.c-photo:only-child{grid-column:1/-1;max-width:440px;width:100%;margin:auto}
body.op-page .op-album .photo-zoom{display:block;width:100%;height:auto;aspect-ratio:4/5;padding:0;border:0;border-radius:0;overflow:hidden;background:#ece7df}
body.op-page .op-album img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0}
body.op-page .op-album figcaption{position:static;display:block;font:400 11px/1.7 var(--c-body);color:inherit;letter-spacing:normal;margin-top:12px;white-space:pre-line;overflow-wrap:break-word}
body.op-page .op-closing{text-align:center;background:var(--c-secondary)}
body.op-page .op-closing>.op-heart{width:32px;height:32px;margin-bottom:25px}
body.op-page .op-closing .op-intro{margin-inline:auto}
body.op-page .op-section[hidden]{display:none}
@media(max-width:480px){body.op-page .op-message{font-size:14px}body.op-page .op-letter-sheet{padding:25px 20px}body.op-page .op-album{gap:20px 12px}body.op-page .op-album>.c-photo{padding:6px 6px 10px}body.op-page .op-album figcaption{font-size:10px}}
