/* Visit tickets are separate from earned milestone badges. */
.visit-ticket{--ticket-color:#bb420d;--ticket-light:#ffbd46;position:relative;overflow:hidden;background:#fff9ea;border:2px solid var(--ticket-color);border-radius:18px;padding:16px;color:#132b4d;width:100%;min-height:330px;text-align:center;box-shadow:0 8px 0 #132b4d0d}.ticket-blue{--ticket-color:#1754d4;--ticket-light:#62caff;background:#f0f8ff}.ticket-green{--ticket-color:#007363;--ticket-light:#76e4a8;background:#effbf3}.ticket-purple{--ticket-color:#7532a4;--ticket-light:#d9a3ff;background:#fbf2ff}.ticket-top{display:flex;justify-content:space-between;font-size:.62rem;font-weight:850;letter-spacing:.1em;color:var(--ticket-color)}.ticket-scene{height:85px;margin:12px -16px 8px;position:relative;overflow:hidden;background:linear-gradient(120deg,var(--ticket-color),var(--ticket-light));color:white;display:grid;place-items:center}.ticket-scene>b{font-size:3rem;line-height:1;transform:rotate(var(--ticket-angle));z-index:1}.ticket-scene>i{position:absolute;right:20%;top:8px;font-size:1.1rem;color:#fff2b6}.ticket-orbit{position:absolute;width:220px;height:120px;border:2px dashed #ffffff80;border-radius:50%;transform:rotate(-18deg)}.ticket-airport{display:inline-block;font-size:1.8rem;font-weight:900;letter-spacing:.06em;color:#ffdb4a;background:#142c47;padding:2px 16px;border:2px solid #ffe384;border-radius:6px;margin:4px 0}.ticket-category{display:block;margin-top:8px;font-size:.65rem;letter-spacing:.12em;color:var(--ticket-color);font-weight:850}.visit-ticket h3{font-size:1.05rem;line-height:1.4;margin:10px 0}.ticket-bottom{display:flex;justify-content:space-between;border-top:2px dashed #94a8ba;padding-top:12px;font-size:.8rem}.visit-ticket>small{display:block;font-size:.53rem;letter-spacing:.08em;margin-top:12px;color:#536579}.stamp-card{background:white;padding:12px;border-radius:20px;border:1px solid #ccd8e5;transition:transform .15s}.stamp-card:hover{transform:translateY(-3px)}.stamp-card>span{display:block;margin:12px 0 2px;font-size:.8rem}.stamp-card .visit-ticket{height:100%}#stampBody>.visit-ticket{max-width:390px;margin:20px auto}.curated-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.curated-card{border:1px solid #c5d6e5;background:white;border-radius:18px;overflow:hidden;--collection-color:#b74411}.theme-blue{--collection-color:#1754d4}.theme-green{--collection-color:#007363}.theme-purple{--collection-color:#7532a4}.collection-cover{padding:24px;background:linear-gradient(130deg,var(--collection-color),#122f4e);color:white;position:relative;overflow:hidden}.collection-cover:after{content:'';position:absolute;width:200px;height:200px;border:2px dashed #ffffff44;border-radius:50%;right:-60px;top:-80px;pointer-events:none}.collection-cover>span{display:block;font-size:2.4rem;line-height:1.2;color:#ffe28b}.collection-cover>small{font-size:.58rem;letter-spacing:.12em}.collection-cover h3{font-size:1.6rem;margin:10px 0 0}.collection-body{padding:22px}.collection-body p{font-size:.9rem}.collection-body progress{width:100%;accent-color:var(--collection-color);height:14px}.collection-progress{display:block;margin:6px 0 16px;font-size:.9rem}.collection-body ul{padding:0;list-style:none}.collection-body li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #e0e8f0}.collection-mark{font-size:1.1rem;color:var(--collection-color);font-weight:900}.collection-body li a{font-weight:700;font-size:.9rem}.collection-body li small{display:block;color:#5a697a;font-size:.75rem}.collection-body .actions{display:flex;gap:12px;flex-wrap:wrap}.collection-body .primary{background:var(--collection-color);color:white;padding:10px 15px;border-radius:7px}.memory-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.memory-tile{padding:0;background:white;border:1px solid #ccd9e6;border-radius:14px;overflow:hidden;text-align:left}.memory-tile img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.memory-tile>span{display:block;padding:14px}.memory-tile b{display:block;font-size:.9rem}.memory-tile small{display:block;font-size:.7rem;color:#52647a;margin-top:5px}.photo-lightbox{max-width:1000px;width:94vw}.photo-lightbox h2{font-size:1.5rem;margin-right:70px}.lightbox-image{display:block;width:100%;max-height:62vh;object-fit:contain;background:#112c45;border-radius:10px}.gallery-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.gallery-controls>span{font-size:.85rem}.achievement-share{max-width:850px;width:94vw}.achievement-share canvas{width:100%;height:auto;border-radius:12px}.achievement-share .actions{display:flex;gap:12px;flex-wrap:wrap}.gallery-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;flex-wrap:wrap}.gallery-tools label{font-size:.85rem}.gallery-tools select{max-width:260px}.photo-edit{border-top:1px solid #ccd9e6;margin-top:20px;padding-top:16px}.photo-edit label{font-size:.9rem}.photo-edit p{font-size:.8rem}.passport-tabs{flex-wrap:wrap}.stamp-grid{align-items:stretch}#communityPhotos:empty{display:none}
@media(max-width:850px){.memory-gallery{grid-template-columns:1fr 1fr}.curated-grid{grid-template-columns:1fr}.stamp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.memory-gallery,.stamp-grid{grid-template-columns:1fr}.passport-tabs button{flex:1 1 30%;font-size:.8rem}.collection-body{padding:18px}.achievement-share .actions>*{width:100%}}
@media(prefers-reduced-motion:reduce){.stamp-card{transition:none}.stamp-card:hover{transform:none}}
.stamp-card{display:flex;flex-direction:column}.stamp-card .visit-ticket{height:auto;flex:1}.stamp-card>span{align-self:center}
