/* Responsive typography refinements. */
.keep-together{white-space:nowrap}
.invite-line{display:block;text-wrap:balance}
.venue-city{display:block;font-size:14px;opacity:.8;line-height:1.6}
h2,h3,.intro,.full-story p{word-break:normal;overflow-wrap:break-word;text-wrap:pretty}
.hero-copy,.hero-photo,.section-heading>div,.day-layout>*,.travel-layout>*,.stay>*,.timeline article>div,.stay-notes article>div,.album-text{min-width:0}
.hero,.invitation,.travel,.explore{position:relative}
.hero{padding-bottom:88px}
.invitation{padding-bottom:76px}
.travel,.explore{padding-bottom:96px}
.lost-item{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:8px;border:0;border-radius:50%;background:transparent;color:var(--red);z-index:1;transition:background .2s,transform .2s;touch-action:manipulation}
.lost-item svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.lost-phone{left:25px;bottom:10px;transform:rotate(-13deg)}
.lost-key{right:30px;bottom:12px;transform:rotate(13deg)}
.lost-id-card{right:32px;bottom:20px;transform:rotate(-10deg)}
.lost-umbrella{left:25px;bottom:20px;transform:rotate(14deg)}
.lost-item:hover{background:#641e2b0a;transform:rotate(0)}
.lost-item.is-found{background:#641e2b0d;transform:rotate(0)}
.found-mark{display:none;position:absolute;right:0;bottom:0;font-size:12px;font-weight:700;line-height:18px;width:18px;height:18px;border-radius:50%;background:var(--red);color:var(--paper)}
.is-found .found-mark{display:block}
.hunt-note{margin:36px auto 4px;max-width:590px;padding-top:24px;border-top:1px dashed var(--line)}
.hunt-kicker{font-family:var(--serif);color:var(--red);font-size:18px}
.hunt-note p{font-size:14px;color:var(--muted);margin:10px 0}
#hunt-progress{display:inline-block;font-size:14px;color:var(--red);letter-spacing:1px}
.hunt-finish{text-align:center;padding-block:45px}
.hunt-finish[hidden]{display:none}
.hunt-finish p{font-family:var(--serif);font-size:22px;color:var(--red);margin:12px 0}
.hunt-finish button{margin:18px auto 0;border:0;background:none;padding:8px 16px;font-size:14px}
.date-ticket{display:block}
.ticket-when>span,.ticket-where>span{font-size:12px;letter-spacing:1.5px}
.ticket-when>strong{font:normal 65px/1.4 Georgia;display:block;white-space:nowrap}
.ticket-where{border-top:1px dashed #e0bcb875;padding-top:22px;margin-top:22px}
.date-ticket .ticket-where h3{margin:8px 0;font-size:24px;line-height:1.5}
.station-names{flex-wrap:wrap;gap:10px}
.station-names strong{white-space:nowrap}
summary{gap:12px}summary>span{flex-shrink:0}
.section-nav a,.explore-tabs button{white-space:nowrap}
.hero .intro{font-size:16px}
.hero .eyebrow{font-size:14px}
.hero-photo figcaption>span{font-size:10px}
.hero-photo figcaption{max-width:calc(100% + 16px)}
.section-nav a{font-size:14px}
.timeline p,.stay-notes p,.place-card p,.reminder-grid p,details>p{font-size:16px}
.timeline h3{line-height:1.55}
.places{grid-template-columns:repeat(3,minmax(0,1fr))}
.place-card h3{line-height:1.6}
#toast{width:max-content;max-width:min(90vw,420px);text-align:center;bottom:24px;line-height:1.7}
@media(min-width:761px) and (max-width:1000px){
  .hero{gap:35px}.hero h1>span{font-size:76px}.hero-photo>img{height:520px}
  .day-layout{grid-template-columns:285px minmax(0,1fr);gap:35px}
  .travel-layout{gap:30px;grid-template-columns:1fr 1fr}.stay{gap:35px;padding:40px}
  .places{gap:16px}.place-card{padding:20px}
}
@media(max-width:760px){
  .hero{padding-bottom:76px}.hero .eyebrow{grid-row:1}.hero h1{grid-row:2;gap:12px;font-size:clamp(20px,5.7vw,25px);letter-spacing:3px;white-space:nowrap}
  .hero h1>span{font-size:clamp(42px,11.8vw,58px);letter-spacing:-1.5px;flex-shrink:0}
  .hero .intro{max-width:34em;margin-inline:auto;text-wrap:pretty}
  .hero .intro br:last-of-type{display:none}
  .hero-photo{grid-row:3}.hero-note{display:none}
  .invitation{padding-bottom:75px}.full-story{font-size:18px;line-height:2}
  .full-story p{margin-bottom:22px}.invitation>p.invitation-signoff{font-size:16px}
  .invitation-signoff br,.hunt-note br{display:none}
  .hunt-note{text-align:left;margin-top:28px}.hunt-note p{line-height:1.9}
  .lost-phone{left:24px;bottom:8px}.lost-key{right:22px;bottom:8px}
  .travel,.explore{padding-bottom:88px}.lost-id-card{right:24px;bottom:16px}.lost-umbrella{left:24px;bottom:16px}
  .date-ticket{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;padding:24px;align-items:start}
  .ticket-when>strong{font-size:50px;line-height:1.4;letter-spacing:-1.5px}
  .ticket-when>span{font-size:11px;letter-spacing:.5px}
  .ticket-when p{font-size:13px;white-space:nowrap}
  .ticket-where{border-top:0;border-left:1px dashed #e0bcb875;padding:0 0 0 16px;margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
  .date-ticket .ticket-where h3{font-size:20px;margin:8px 0;line-height:1.6;text-wrap:balance}
  .ticket-where p{font-size:13px}.date-ticket a{grid-column:1/-1;margin:0;font-size:14px}
  .timeline article{grid-template-columns:76px minmax(0,1fr);gap:24px}.timeline article:before{left:81px}.timeline article:after{left:77px}
  .timeline time{font-size:13px;white-space:nowrap}.timeline h3{font-size:20px;text-wrap:balance}
  .album-button{gap:12px}.album-arrow{flex-shrink:0}.album-text>span{font-size:14px}
  .stay h2{max-width:15em;text-wrap:balance}.stay-notes article{gap:16px}.stay-notes article>span{flex-shrink:0}
  .places{grid-template-columns:minmax(0,1fr)}.explore-tabs button{font-size:14px;padding:7px 12px}
}
@media(max-width:360px){
  .masthead{padding-inline:16px}.brand{gap:7px;letter-spacing:.4px}.edition{letter-spacing:0}
  .hero,.section{padding-left:20px;padding-right:20px}.hero h1{font-size:20px;letter-spacing:1px}.hero h1>span{font-size:41px}
  .hero-photo{margin-inline:4px}.hero-photo>img{height:340px}
  .date-ticket{grid-template-columns:1fr;gap:18px}.ticket-when>strong{font-size:56px}.ticket-where{border-left:0;border-top:1px dashed #e0bcb875;padding:16px 0 0}.date-ticket .ticket-where h3{font-size:22px}
  .timeline article{grid-template-columns:70px minmax(0,1fr);gap:20px}.timeline article:before{left:73px}.timeline article:after{left:69px}
  .station-names{gap:7px}.station-names strong{font-size:20px;padding:7px 10px}
  .album-button{padding:17px 12px;gap:10px}.album-text small{font-size:9px;letter-spacing:0}.photo-stack{flex-basis:60px}
  .stay{padding:30px 22px}.reminders{padding-inline:0}.section-nav{padding-inline:4px}.section-nav a{font-size:13px}
}
