.calendar-reveal {
  padding:clamp(16px,5vw,30px);
  border-radius:10px;
  color:#293c36;
  background:#f2e4c4 url('modal-paper-material-v1.webp') center/cover;
  text-align:center;
}
.calendar-reveal [hidden] { display:none; }
.calendar-reveal h2,.calendar-reveal h3 {
  margin:0;
  color:#613a45;
  font:400 clamp(28px,7vw,40px)/1.08 Lilita,'Lilita One',Georgia,serif;
}
.calendar-reveal h3 { font-size:clamp(22px,6vw,28px); }
.calendar-reveal p { margin:10px auto;max-width:33ch; }
.reveal-action {
  position:relative;min-height:48px;padding:10px 20px;
  border:0;border-radius:6px;background:#244d49;color:#fff5da;
  font-weight:750;cursor:pointer;
}
.reveal-action:focus-visible,.bag-item-photo:focus-visible { outline:3px solid #733d53;outline-offset:3px; }
.gift-bag { position:relative;width:min(60%,180px);height:162px;margin:22px auto 12px; }
.gift-bag-handle {
  position:absolute;top:0;left:27%;width:46%;height:50px;border:5px solid #80562f;border-radius:28px 28px 5px 5px;
}
.gift-bag-tissue {
  position:absolute;top:43px;left:10%;width:80%;height:60px;
  background:linear-gradient(115deg,#f3c963 55%,#f9e199 55%);
  clip-path:polygon(0 30%,24% 15%,43% 31%,69% 0,100% 30%,100% 100%,0 100%);
  transition:translate .25s ease-out;
}
.swedish-bag[data-open] .gift-bag-tissue { translate:0 -26px; }
.gift-bag-front {
  position:absolute;inset:54px 0 0;display:grid;place-content:center;gap:7px;
  color:#fff6d7;background:linear-gradient(100deg,#1c4360 11%,#285879 12% 88%,#1e4664 89%);
  border-radius:3px 3px 8px 8px;box-shadow:0 7px 0 -3px #603a3c55;
  font:800 13px/1.2 system-ui,sans-serif;letter-spacing:.13em;
}
.gift-bag-front i { width:36px;height:22px;margin:auto;background:linear-gradient(transparent 40%,#edc55f 40% 60%,transparent 60%),linear-gradient(90deg,transparent 29%,#edc55f 29% 43%,transparent 43%),#1d466a;border:1px solid #a8a881; }
.swedish-bag[data-open] .reveal-action { touch-action:none; }
.gift-bag-item { margin:16px 0 0;padding:15px;border-top:1px dashed #ae9473; }
.bag-item-photo { display:block;width:min(100%,320px);margin:12px auto 0;padding:0;border:0;background:none;cursor:pointer; }
.bag-item-photo img { display:block;width:100%;max-height:40svh;object-fit:contain;border-radius:5px; }
.xel-ha-reveal { background:#124642;color:#fff3d5; }
.xel-ha-reveal h2 { color:#fff3d5; }
.outing-envelope,.outing-ticket { border:1px dashed #e7cc8c80;border-radius:8px;padding:20px 14px; }
.outing-ticket { background:#f8edca;color:#244741;border-color:#558075; }
.outing-ticket h2 { color:#14564d; }
.outing-envelope p:first-of-type,.outing-ticket p:first-of-type { font-size:13px;font-weight:750;letter-spacing:.075em; }
.outing-wave {
  height:88px;margin:8px auto 16px;border-radius:50% 45% 40% 40%;
  background:radial-gradient(ellipse at 58% 0,#f3d687 0 12%,transparent 13%),
    repeating-radial-gradient(ellipse at 38% -45%,#4cb3a5 0 16px,#3a968d 17px 29px,#267b74 30px 49px);
}
.outing-envelope .reveal-action { margin-top:18px;background:#f2d88a;color:#21413b; }
.outing-envelope .reveal-action:focus-visible { outline-color:#fff5da; }
.outing-date { font-weight:750; }
.jake-return img {
  display:block;width:auto;max-width:100%;height:auto;max-height:44svh;
  margin:16px auto;border:4px solid #fff1d4;border-radius:4px;box-shadow:0 3px 12px #533a4733;
}
.jake-return img:focus-visible { outline:3px solid #733d53;outline-offset:3px; }
.jake-letter { text-align:left;max-width:34ch;margin:auto;color:#433332; }
.jake-letter p { margin:0 0 11px;font:16px/1.5 Georgia,serif; }
.jake-letter .jake-signature { margin-bottom:0;color:#793452;font:700 30px/1 Caveat,Georgia,serif; }
@media(prefers-reduced-motion:reduce) { .gift-bag-tissue { transition:none; } }
