.postcard-shelf{position:relative;z-index:22;margin:40px 0 12px;padding:0 20px;isolation:isolate}
.postcard-deck{position:relative;display:flex;gap:20px;height:clamp(290px,24vw,340px);padding:35px 24px 28px;margin:0 -4px 18px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b2bba5 transparent;cursor:grab;user-select:none;--card-width:clamp(156px,17vw,186px)}
.postcard-deck::-webkit-scrollbar{height:5px}
.postcard-deck::-webkit-scrollbar-thumb{background:#b2bba5;border-radius:4px}
.postcard-deck::-webkit-scrollbar-track{background:transparent}
.postcard-deck .postcard-card{position:relative;left:auto;top:auto;flex:0 0 var(--card-width);cursor:grab}
.postcard-deck.is-dragging,.postcard-deck.is-dragging .postcard-card{cursor:grabbing}
.postcard-deck.is-dragging .postcard-card .postcard-card__surface,.postcard-deck.is-scrolling .postcard-card .postcard-card__surface{transform:translateY(var(--drop,0px)) rotate(var(--angle,0deg));transition:none}
/* The button is a stationary hit target; only its paper surface moves. */
.postcard-card{position:absolute;left:calc((100% - var(--card-width))*var(--slot)/var(--spread,5));top:35px;width:var(--card-width);height:clamp(210px,20vw,260px);padding:0;border:0;background:transparent;color:#343e36;text-align:left;cursor:pointer;z-index:calc(var(--slot,0) + 1)}
.postcard-card[hidden]{display:none}
.postcard-card__surface{display:flex;flex-direction:column;width:100%;height:100%;padding:10px 10px 14px;border:1px solid #dedccf;border-radius:3px;background:#faf7ef;box-shadow:0 3px 6px #253c2910,0 14px 24px -14px #253c2970;transform:translateY(var(--drop,0px)) rotate(var(--angle,0deg));transform-origin:50% 90%;transition:transform .2s ease-out,box-shadow .2s ease-out;pointer-events:none}
.postcard-card:hover,.postcard-card:focus-visible,.postcard-card.is-drawn{z-index:100}
.postcard-card:hover .postcard-card__surface,.postcard-card:focus-visible .postcard-card__surface,.postcard-card.is-drawn .postcard-card__surface{transform:translateY(-18px) rotate(0deg);box-shadow:0 20px 30px -12px #253c2945}
.postcard-card__photo{display:grid;place-items:center;flex:1;min-height:0;overflow:hidden}
.postcard-card .postcard-card__photo img{display:block;width:100%;height:100%;object-fit:cover;min-height:0}
.postcard-card__copy{display:flex;flex-direction:column;gap:4px;padding:12px 3px 0}
.postcard-card strong{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(16px,1.5vw,22px);letter-spacing:-.5px;line-height:1.15}
.postcard-card__date{font-size:clamp(8px,.7vw,10px);color:#75816e;white-space:nowrap}
.postcard-actions{display:flex;justify-content:center;gap:12px;margin:4px 0 0}
.postcard-actions button{padding:12px 24px;border-radius:999px;font-size:13px;line-height:1.4;transition:background .2s,transform .2s}
.postcard-actions button:hover{transform:translateY(-2px)}
.postcard-draw{background:#526d53;color:#fffdf5;display:flex;align-items:center;gap:25px;border:1px solid #526d53}.postcard-draw:hover{background:#435e46}.postcard-draw:disabled{opacity:.75;cursor:wait}
.postcard-view-all{background:#f8f7ee;border:1px solid #c7cebd;color:#52644c}
.postcard-shelf button:focus-visible{outline:2px solid #526d53;outline-offset:5px}
.postcard-kicker{display:block;font-size:10px;letter-spacing:1.8px;line-height:1.6;color:#697767;font-weight:550}

.postcard-map-link{position:absolute;left:0;bottom:0;max-width:calc(100% - 180px);height:32px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block;background:transparent;border-bottom:1px solid #73887050;padding:8px 0;margin:0;color:#41644b;font-size:12px;text-align:left}.postcard-map-link[hidden]{display:none}
dialog.postcard-dialog{--paper:#faf7ef;--blue:#59735e;width:min(960px,calc(100% - 40px));max-width:960px;max-height:calc(100dvh - 40px);padding:0;border:1px solid #e7e3d6;border-radius:8px;background:#faf7ef;overflow:auto;overscroll-behavior:contain;box-shadow:0 28px 120px #19271d50;color:#343e36}
.postcard-dialog::backdrop{background:#28352f80;backdrop-filter:blur(8px)}
.postcard-top{position:sticky;top:0;height:0;z-index:3}
.postcard-close{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;font-size:29px;color:#5c695a;border-radius:50%}.postcard-close:hover{background:#e7eadd}
.postcard-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:44px;padding:44px 42px 32px}
.postcard-gallery{min-width:0}.postcard-frame{position:relative;margin:0;width:100%;height:min(58dvh,520px);min-height:230px;background:transparent;display:grid;place-items:center;overflow:hidden;touch-action:pan-y pinch-zoom}
.postcard-main-image{display:block;width:100%;height:100%;min-height:0;object-fit:contain;user-select:none;-webkit-user-drag:none}.postcard-main-image[hidden]{display:none}
.postcard-dialog .postcard-image-status{position:absolute;inset:0;display:grid;place-content:center;padding:30px 25px 75px;font-size:14px;line-height:1.6;color:#626b5e;text-align:center}.postcard-image-status[hidden]{display:none}
.postcard-retry{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);padding:11px 16px;white-space:nowrap;background:#fffdf7;border:1px solid #8c987d;border-radius:4px;font-size:12px}.postcard-retry[hidden]{display:none}
.postcard-photo-line{display:grid;grid-template-columns:40px 1fr 40px;gap:6px;align-items:center;min-height:58px}
.postcard-photo-line>button{width:40px;height:44px;background:transparent;font-size:21px;border-radius:4px}.postcard-photo-line>button:hover{background:#e8ebdf}
.postcard-dialog .postcard-caption{font-size:11px;line-height:1.5;text-align:center;color:#697365;margin:8px 0}
.postcard-thumbnails{display:grid;grid-template-columns:repeat(var(--photo-count,6),minmax(0,1fr));gap:8px}
.postcard-thumbnails>button{position:relative;padding:3px;background:transparent;border:1px solid transparent;border-radius:2px;min-width:0}
.postcard-thumbnails>button[aria-pressed=true]{border-color:#566f58;background:#e9ecde}.postcard-thumbnails img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.postcard-thumbnails span{position:absolute;bottom:5px;right:5px;font-size:9px;line-height:1.5;background:#faf7efe0;padding:0 3px;color:#344134}
.postcard-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:0 4px 70px 0}.postcard-copy>.postcard-kicker{font-size:10px;letter-spacing:1px;margin:0 0 20px}
.postcard-dialog h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(32px,4vw,49px);font-weight:400;letter-spacing:-1.8px;line-height:1.06;margin:0 0 24px}
.postcard-dialog p.postcard-text{font-size:15px;line-height:1.85;color:#606b5e;margin:0;max-width:330px}
.postcard-dialog p.postcard-signature{font-family:Caveat,cursive;font-size:25px;line-height:1.2;color:#7c866e;transform:rotate(-3deg);margin:35px 0 0}
.postcard-dialog button:focus-visible{outline:2px solid #526d53;outline-offset:2px}
@media(max-width:760px){.postcard-card{gap:17px;padding:12px;grid-template-columns:34% 1fr;margin-top:26px}.postcard-card__copy{gap:10px;padding:15px 3px 10px 0}.postcard-card strong{font-size:26px}.postcard-card__date{font-size:11px}.postcard-card__copy .postcard-kicker{font-size:8px;letter-spacing:1.2px}.postcard-stamp{right:10px;top:9px;width:28px;height:34px;font-size:11px}.postcard-stamp span{font-size:7px}.postcard-card__open{font-size:11px;gap:10px;padding-top:0}
 dialog.postcard-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.postcard-top{padding:calc(8px + env(safe-area-inset-top)) 14px 8px 20px}.postcard-layout{display:flex;flex-direction:column;gap:26px;padding:20px 20px calc(28px + env(safe-area-inset-bottom))}.postcard-copy{display:contents}.postcard-copy>.postcard-kicker{order:-3;margin:0;font-size:10px}.postcard-dialog h2{order:-2;margin:-14px 0 -7px;font-size:39px}.postcard-dialog h2 br{display:none}.postcard-frame{height:min(54dvh,510px);min-height:230px}.postcard-gallery{order:-1}.postcard-dialog p.postcard-text{font-size:15px;margin:0}.postcard-stops{margin:-6px 0 0}.postcard-dialog p.postcard-signature{margin:0}.postcard-thumbnails{gap:5px}.postcard-thumbnails>button{padding:2px}}
@media(max-width:360px){.postcard-card{gap:13px}.postcard-card strong{font-size:23px}.postcard-stamp{display:none}.postcard-layout{padding-left:14px;padding-right:14px}.postcard-dialog h2{font-size:34px}.postcard-thumbnails{gap:3px}}
@media(prefers-reduced-motion:reduce){.postcard-card{transition:none;transform:none}}

.motion-paused .postcard-card,.motion-paused .postcard-actions button{transition:none}

.postcard-card[data-trip="huangshan"] .postcard-card__photo img{object-position:70% 50%}

html{scrollbar-gutter:stable}
.travel .map-card{position:relative}
.postcard-browser{width:min(1040px,calc(100% - 64px));max-width:1040px;max-height:calc(100dvh - 64px);padding:0 30px 30px;border:1px solid #e7e3d6;border-radius:8px;background:#faf7ef;color:#343e36;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;box-shadow:0 28px 120px #19271d50}
.postcard-browser::backdrop{background:#28352f80;backdrop-filter:blur(6px)}
.postcard-browser-top{position:sticky;top:0;z-index:110;display:flex;justify-content:space-between;align-items:center;background:#faf7ef;padding:16px 0}
.postcard-browser-top h2{font-family:Georgia,serif;font-weight:400;font-size:26px;margin:0}
.postcard-browser-close{width:44px;height:44px;background:transparent;font-size:29px;border-radius:50%}
.postcard-browser-close:hover{background:#e7eadd}
.postcard-browser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.postcard-browser-grid .postcard-card{position:relative;left:auto;top:auto;width:100%;height:270px}
.postcard-browser-grid .postcard-card__surface{transform:none}
.postcard-browser-grid .postcard-card:hover .postcard-card__surface,.postcard-browser-grid .postcard-card:focus-visible .postcard-card__surface{transform:translateY(-4px)}
.postcard-browser button:focus-visible{outline:2px solid #526d53;outline-offset:3px}
.motion-paused .postcard-card__surface{transition:none}
@media(prefers-reduced-motion:reduce){.postcard-card__surface,.postcard-actions button{transition:none}}

@media(min-width:761px){
 .postcard-shelf{margin:6px 0 0;padding:0 8px;--travel-card-height:clamp(180px,25dvh,220px)}
 .postcard-deck{height:calc(var(--travel-card-height) + 48px);padding-top:24px;padding-bottom:24px;margin-bottom:8px}
 .postcard-deck .postcard-card{height:var(--travel-card-height)}
 .postcard-actions{margin-top:0}
 .postcard-actions button{padding:10px 22px}
}
