/* Live text on constructed plaster steps and woven linen. No scene-image backgrounds. */
.celebration-section,.table-section{max-width:860px;margin:0 auto;padding:40px 36px 38px;scroll-margin-top:24px}
.celebration-section .section-intro,.table-section .section-intro{margin-bottom:32px}
.celebration-section .eyebrow{max-width:38em;margin:auto}
.day-jumps{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:0 auto 40px}
.day-jumps a{padding:10px 18px;min-height:44px;border:1px solid #b1c0c8;border-radius:30px;text-decoration:none;font:12px/1.8 Georgia,serif;transition:background .2s,color .2s}
.day-jumps a:hover,.day-jumps a:focus-visible{background:#e5ebed}
.day-jumps a span{display:inline-block;font:10px/1.6 Arial,sans-serif;letter-spacing:.08em;margin-right:7px}
.celebration-day{scroll-margin-top:24px;position:relative}
.celebration-day+.celebration-day{margin-top:55px}
.day-heading{display:flex;align-items:center;justify-content:center;gap:17px;margin:0 0 25px}
.day-tile{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 0 auto;min-width:94px;width:max-content;min-height:94px;padding:12px;border:1px solid #d9d6c9;border-radius:3px;color:var(--blue);background:linear-gradient(135deg,#fffdf4,#e7e9e2);box-shadow:inset 0 0 0 4px #fffdf6,inset 0 0 0 5px #b6bec9,1px 3px 0 #d4d2c5,2px 5px 8px #5c5c4620}
.day-tile b{font:400 32px/1.1 Georgia,serif}.day-tile small{font:10px/1.6 Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin-top:5px;white-space:nowrap}
.day-heading>div{min-width:0;max-width:100%;overflow-wrap:anywhere}
.day-heading h3{font:400 31px/1.3 Pinyon,Georgia,serif}.day-heading p{font:11px/1.7 Arial,sans-serif;color:var(--muted);letter-spacing:.04em;margin-top:2px}
.terrace-route{list-style:none;padding:0;margin:0 auto;max-width:700px}
.schedule-stop{position:relative;display:grid;grid-template-columns:85px minmax(0,1fr);column-gap:22px;padding:0 0 29px;min-width:0;isolation:isolate}
.schedule-stop:last-child{padding-bottom:0}
.schedule-stop:not(:last-child)::before{content:"";position:absolute;left:41px;top:49px;bottom:-1px;width:2px;background:#d8dfdd;z-index:-1}
.schedule-stop:not(:last-child)::after{content:"";position:absolute;left:41px;top:49px;bottom:-1px;width:2px;background:linear-gradient(var(--blue),#799aac);transform:scaleY(0);transform-origin:top;z-index:-1;transition:transform 1.2s ease}
.schedule-stop.is-seen:not(:last-child)::after{transform:scaleY(1)}
.stop-marker{display:flex;flex-direction:column;align-items:center;padding-top:17px;gap:16px}
.stop-time{position:relative;display:grid;place-items:center;width:73px;min-height:42px;padding:8px 4px;border-radius:5px;color:var(--ink);font:700 16px/1.3 Georgia,serif;letter-spacing:.015em;font-variant-numeric:tabular-nums;background:linear-gradient(145deg,#fffefa,#e5ebec);border:1px solid #becdd4;box-shadow:inset 0 0 0 3px #faf9f0,0 2px 0 #b7c1c5,0 3px 7px #43607816;transition:background .35s,color .35s,box-shadow .35s}
.schedule-stop.is-current .stop-time{color:#fffdf5;background:linear-gradient(125deg,#457cac,#164678);border-color:#235185;box-shadow:inset 0 0 0 3px #5185b6,0 2px 0 #183f68,0 0 0 4px #a8c6d933,0 6px 15px #16467833}
.stop-icon{display:block;width:43px;height:43px;color:#3b6385;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25;background:var(--ivory);padding:3px}
.stone-landing{position:relative;min-width:0;margin-left:var(--step,0px);padding:23px 29px 22px;background:linear-gradient(150deg,#fffdf8 0%,#f7f5ee 60%,#f0eee5);border-radius:26px 7px 3px 3px;box-shadow:inset 1px 1px 0 #ffffff,inset -1px 0 0 #c8c0ae40,0 4px 6px #6b604407;overflow-wrap:anywhere}
.stone-landing::before{content:"";position:absolute;left:0;right:0;bottom:-10px;height:11px;border-radius:0 0 3px 3px;background:linear-gradient(#e6e1d6,#f0ece1 65%,#dfd9c9);box-shadow:0 4px 5px #776c5314}
.stone-landing::after{content:"";position:absolute;left:27px;right:25px;top:10px;height:3px;border-top:1px solid #87a1b0;border-bottom:1px solid #c0cbd0;opacity:.65}
.stop-category{font:9px/1.6 Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#687c85;margin-bottom:3px}
.stop-title{font:400 25px/1.2 Georgia,serif;color:var(--ink);margin:0 0 9px}
.stop-description{font:15px/1.75 Georgia,serif;color:var(--muted);white-space:pre-line}
.stop-location{font:11px/1.7 Arial,sans-serif;color:#557286;letter-spacing:.015em;margin-top:12px;display:flex;align-items:flex-start;gap:5px}
.stop-location svg{flex:0 0 12px;margin-top:2px;width:12px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4}
.celebration-signoff{font:400 31px/1.3 Pinyon,Georgia,serif;text-align:center;margin:44px 0 0}
@keyframes landing-settle{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes bubbles-rise{0%{opacity:0;transform:translateY(4px)}25%,70%{opacity:.8}100%{opacity:0;transform:translateY(-5px)}}
@media(prefers-reduced-motion:no-preference){
  .schedule-stop.just-seen .stone-landing{animation:landing-settle .8s ease both}
  .schedule-stop.is-current .bubbles{animation:bubbles-rise 2.4s ease-in-out infinite}
}
@media(max-width:730px){
  .celebration-section,.table-section{padding:33px 24px 30px}
  .celebration-section .section-intro,.table-section .section-intro{padding-top:0;margin-bottom:26px}
  .celebration-section .section-intro h2{font-size:clamp(43px,8vw,60px)}
  .day-jumps{gap:8px;margin-bottom:31px}.day-jumps a{padding:10px 14px;font-size:11px}.day-jumps a span{font-size:9px;margin-right:5px}
  .day-heading{gap:14px;margin-bottom:26px}.day-heading h3{font-size:30px}
  .schedule-stop{grid-template-columns:65px minmax(0,1fr);column-gap:13px;padding-bottom:28px}
  .schedule-stop:not(:last-child)::before,.schedule-stop:not(:last-child)::after{left:31px;top:48px}
  .stop-time{width:61px;min-height:39px;font-size:14px;padding:7px 3px}.stop-icon{width:37px;height:37px}.stop-marker{padding-top:18px;gap:17px}
  .stone-landing{margin-left:calc(var(--step,0px)*.38);padding:24px 18px 20px;border-top-left-radius:22px}
  .stone-landing::after{left:19px;right:18px}.stop-title{font-size:21px}.stop-description{font-size:15px;line-height:1.75}.stop-category{font-size:8px;letter-spacing:.13em}.stop-location{font-size:10px}
  .celebration-signoff{font-size:29px;max-width:12em;margin:36px auto 0}
}
@media(max-width:360px){
  .celebration-section{padding-left:16px;padding-right:16px}.celebration-section .eyebrow{font-size:8px;letter-spacing:.12em;max-width:26em}.celebration-section .section-intro p:last-child br{display:none}
  .schedule-stop{grid-template-columns:58px minmax(0,1fr);column-gap:10px}.schedule-stop:not(:last-child)::before,.schedule-stop:not(:last-child)::after{left:28px}.stop-time{width:55px;font-size:13px}.stone-landing{padding-left:15px;padding-right:14px;margin-left:0}.stone-landing::after{left:15px;right:14px}.stop-title{font-size:20px}.stop-description{font-size:14px;line-height:1.8}.stop-icon{width:34px;height:34px}
}
@media(prefers-reduced-motion:reduce){.schedule-stop::after,.stop-time{transition:none}.schedule-stop::after{transform:scaleY(1)!important}}
