/* The recipient sees one personal gift, never the original builder. */
#om-bday-root section.om-bday-step:not([data-step="8"]),
#om-bday-preview-badge, #om-bday-back-btn, #om-bday-generate-btn,
#om-bday-gate, #om-bday-gate-sub, #om-bday-finale-by {
  display: none !important;
}

#om-bday-root.is-exp {
  padding: 0 !important;
  overflow: clip;
}
#om-bday-root #om-bday-wizard,
#om-bday-root section.om-bday-step[data-step="8"],
#om-bday-root #om-bday-stage {
  padding: 0;
  overflow: clip;
}
#om-bday-root #om-bday-scene-dad,
#om-bday-root #om-bday-scene-dad-sky {
  display: block;
  padding: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
#om-bday-scene-dad .om-dad-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-height: 100%;
  max-height: none;
  overflow: visible;
  margin: auto;
  padding: 62px 24px 36px;
}
#om-bday-scene-dad #om-bday-dad-next { min-height: 54px; }


/* A quiet night, a light rising from the horizon, then a remembrance. */
#om-bday-root #om-bday-scene-dad-sky {
  background: radial-gradient(ellipse at 51% 20%, #22335170, transparent 43%),
    radial-gradient(ellipse at 50% 100%, #59456550, transparent 55%),
    linear-gradient(#030815, #0b162c 60%, #182238);
  isolation: isolate;
}
#om-bday-scene-dad-sky::before { display: none; }
.om-dad-constellation { position: absolute; inset: 0; pointer-events: none; z-index: -1; }
.om-dad-constellation i {
  position: absolute; left: var(--x); top: var(--y);
  width: var(--size); height: var(--size);
  border-radius: 50%; background: #e5eeff; opacity: .25;
  box-shadow: 0 0 7px #cfdeff70;
}
#om-bday-scene-dad-sky.is-on .om-dad-constellation i {
  animation: dhruviDistantStar 4.7s ease-in-out var(--delay) infinite;
}
.om-dad-moon {
  position: absolute; top: 9%; right: 14%; width: 29px; height: 29px;
  border-radius: 50%; box-shadow: 7px 4px 0 0 #e0e9f0a0;
  transform: rotate(-24deg); opacity: .6; pointer-events: none;
}
.om-dad-landscape {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 28%;
  min-height: 150px; pointer-events: none; z-index: -1;
}
.om-dad-memory-lights { position: absolute; inset: 0; overflow: clip; pointer-events: none; }
.om-dad-memory-lights i {
  position: absolute; left: 50%; top: 85%;
  width: 3px; height: 3px; border-radius: 50%;
  background: #ffe3a1; box-shadow: 0 0 12px #ffdc8c; opacity: 0;
}
#om-bday-scene-dad-sky.is-on .om-dad-memory-lights i {
  animation: dhruviMemoryLight 5s ease-out var(--wait) both;
}
#om-bday-scene-dad-sky .om-dad-sky-invitation {
  position: absolute; top: 8%; left: 24px; right: 24px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(18px, 4.8vw, 25px); line-height: 1.6;
  font-style: italic; color: #e1deeb; opacity: 0; margin: 0;
  text-align: center;
}
#om-bday-scene-dad-sky.is-on .om-dad-sky-invitation {
  animation: dhruviSkyInvitation 5s ease both;
}
#om-bday-scene-dad-sky .om-dad-sky-symbol {
  position: absolute; top: clamp(70px, 15svh, 150px); left: 50%;
  display: flex; align-items: center; justify-content: center;
  width: 112px; height: 112px; margin: 0; padding: 0;
  border: 0; border-radius: 50%; box-shadow: none;
  background: radial-gradient(circle, #ffdf9720, transparent 65%);
  opacity: 0; animation: none; isolation: isolate;
  transform: translateX(-50%);
}
#om-bday-scene-dad-sky.is-on .om-dad-sky-symbol {
  animation: dhruviStarAscend 7s cubic-bezier(.32,.05,.3,1) both;
}
#om-bday-scene-dad-sky .om-dad-sky-symbol::before {
  content: ''; position: absolute; top: 50%; left: calc(50% - 1px);
  width: 2px; height: 190px; opacity: 0; z-index: -1;
  background: linear-gradient(#ffecc0, #f9cd7545 35%, transparent);
  transform-origin: top; filter: blur(1px);
}
#om-bday-scene-dad-sky.is-on .om-dad-sky-symbol::before {
  animation: dhruviStarTrail 7s ease-out both;
}
#om-bday-scene-dad-sky .om-dad-sky-symbol::after {
  content: ''; position: absolute; inset: -12px;
  border: 1px solid #ffe1a538; border-radius: 50%; opacity: 0;
}
#om-bday-scene-dad-sky.is-on .om-dad-sky-symbol::after {
  animation: dhruviStarHalo 4.2s ease-out 6.4s infinite;
}
#om-bday-scene-dad-sky .om-dad-sky-mark {
  display: block; font-size: 70px; line-height: 1;
  color: #fff0be; animation: none;
  text-shadow: 0 0 10px #fff3ca, 0 0 35px #ffd27d, 0 0 85px #ffd27da0;
}
#om-bday-scene-dad-sky.is-on .om-dad-sky-mark {
  animation: dhruviPapaTwinkle 3.2s ease-in-out 6.6s infinite;
}
#om-bday-scene-dad-sky .om-dad-star-label {
  position: absolute; top: 112px; left: -65px; right: -65px;
  font-family: Georgia, 'Times New Roman', serif;
  color: #ffe5ae; font-size: 23px; letter-spacing: .09em; opacity: 0;
}
.om-dad-star-label span {
  display: block; margin-top: 9px; font-family: 'Outfit', sans-serif;
  font-size: 10px; letter-spacing: .16em; color: #c4bfcc;
}
#om-bday-scene-dad-sky.is-on .om-dad-star-label { animation: dhruviMemoryReveal 1.6s ease 6.4s both; }
#om-bday-scene-dad-sky .om-dad-sky-copy {
  position: relative; display: flex; flex-direction: column;
  align-items: center; justify-content: flex-start;
  width: 100%; max-width: 590px; min-height: 100%; max-height: none;
  overflow: visible; margin: auto;
  padding: clamp(300px, 43svh, 410px) 26px 54px;
  box-sizing: border-box; animation: none;
}
#om-bday-scene-dad-sky .om-dad-sky-words { width: 100%; opacity: 0; }
#om-bday-scene-dad-sky.is-on .om-dad-sky-words { animation: dhruviMemoryReveal 2s ease 7.5s both; }
#om-bday-scene-dad-sky .om-dad-sky-kicker {
  font-family: 'Outfit', sans-serif; color: #b5bfce;
  font-size: 9px; letter-spacing: .19em; line-height: 1.7;
  margin: 0 0 15px; text-transform: uppercase;
}
#om-bday-scene-dad-sky .om-dad-sky-title {
  font-family: Georgia, 'Times New Roman', serif; font-weight: 400;
  font-size: clamp(27px, 6.2vw, 39px); line-height: 1.2;
  margin: 0 0 22px; color: #fff2d9;
}
#om-bday-scene-dad-sky .om-dad-sky-message,
#om-bday-scene-dad-sky .om-dad-sky-wish {
  max-width: 485px; margin: 0 auto 17px;
  font-family: 'Outfit', sans-serif; font-size: clamp(14px, 3.25vw, 16px);
  font-weight: 400; line-height: 1.85; color: #d3d9e5;
}
#om-bday-scene-dad-sky .om-dad-sky-wish { color: #e8d6b3; }
#om-bday-scene-dad-sky .om-dad-sky-sign {
  font-family: Georgia, 'Times New Roman', serif; font-style: italic;
  font-size: 16px; line-height: 1.7; margin: 8px auto 24px; color: #ffe2aa;
}
#om-bday-scene-dad-sky #om-bday-dad-sky-next {
  min-height: 50px; max-width: 340px; width: 100%; margin: 0 auto;
  padding: 12px 16px; font-size: 13px; line-height: 1.4;
  border: 1px solid #f4d89f50; color: #fff1ce;
  background: #0b142bc9; box-shadow: none;
}
#om-bday-scene-dad-sky #om-bday-dad-sky-next:disabled { cursor: default; opacity: .5; }
@keyframes dhruviStarAscend {
  0%, 8% { opacity: 0; transform: translate(-50%, 68svh) scale(.12); }
  14% { opacity: 1; }
  42% { transform: translate(calc(-50% - 27px), 40svh) scale(.3) rotate(-12deg); }
  70% { transform: translate(calc(-50% + 12px), 12svh) scale(.55) rotate(8deg); }
  88% { transform: translate(-50%, 0) scale(.75); opacity: 1; }
  96% { transform: translate(-50%, 0) scale(1.15); }
  100% { transform: translate(-50%, 0) scale(1); opacity: 1; }
}
@keyframes dhruviStarTrail {
  0%, 8% { opacity: 0; transform: scaleY(.1); }
  25%, 70% { opacity: .8; transform: scaleY(1); }
  100% { opacity: 0; transform: scaleY(.05); }
}
@keyframes dhruviMemoryLight {
  0% { opacity: 0; transform: translate(0, 0) scale(.5); }
  20% { opacity: .8; }
  85% { opacity: .4; }
  100% { opacity: 0; transform: translate(var(--drift), -61svh) scale(.2); }
}
@keyframes dhruviSkyInvitation {
  0% { opacity: 0; transform: translateY(12px); }
  25%, 65% { opacity: .85; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(-8px); }
}
@keyframes dhruviMemoryReveal {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes dhruviPapaTwinkle {
  0%, 100% { opacity: .6; transform: scale(.86); filter: brightness(.85); }
  50% { opacity: 1; transform: scale(1.09); filter: brightness(1.4); }
}
@keyframes dhruviStarHalo {
  0% { opacity: .4; transform: scale(.5); }
  100% { opacity: 0; transform: scale(1.8); }
}
@keyframes dhruviDistantStar { 0%,100% { opacity: .18; } 50% { opacity: .75; } }

/* Quiet sky trails and a soft paper shimmer, with motion preferences respected. */
.om-dhruvi-shooting-stars { position: absolute; inset: 0; overflow: clip; pointer-events: none; }
.om-dhruvi-shooting-stars i {
  position: absolute; left: 12%; top: 10%; width: 85px; height: 1px;
  background: linear-gradient(90deg, transparent, #fff1c9);
  box-shadow: 1px 0 7px #fff1c970;
  opacity: 0; transform: rotate(28deg);
}
.om-dhruvi-shooting-stars i:nth-child(2) { left: 63%; top: 16%; width: 56px; }
#om-bday-scene-dad-sky.is-on .om-dhruvi-shooting-stars i { animation: dhruviShootingStar 12s ease-out 9s infinite; }
#om-bday-scene-dad-sky.is-on .om-dhruvi-shooting-stars i:nth-child(2) { animation-delay: 16s; }
#om-bday-scene-envelope .om-bday-letter-paper { overflow: hidden; }
#om-bday-scene-envelope.is-on .om-bday-letter-paper::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(110deg, transparent 25%, #fff8dc70 45%, transparent 65%);
  animation: dhruviPaperShimmer 2.8s ease-out .5s both;
}
#om-bday-scene-finale.is-on .om-dhruvi-finale-note { animation: dhruviMemoryReveal 1.5s ease .5s both; }
.om-dhruvi-video-caption {
  margin: 0 auto 16px; max-width: 320px; padding: 0 10px;
  font-family: 'Outfit', sans-serif; color: #f6e5c8;
  font-size: 12px; line-height: 1.5; letter-spacing: .02em;
}
@keyframes dhruviShootingStar {
  0%, 82%, 100% { opacity: 0; transform: translate(0, 0) rotate(28deg); }
  84% { opacity: .8; }
  94% { opacity: 0; transform: translate(160px, 85px) rotate(28deg); }
}
@keyframes dhruviPaperShimmer {
  from { opacity: 0; transform: translateX(-100%); }
  30% { opacity: .7; }
  to { opacity: 0; transform: translateX(100%); }
}

/* Readable letters and comfortable touch targets on narrow screens. */
#om-bday-root #om-bday-scene-envelope {
  display: block;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: max(64px, env(safe-area-inset-top, 0px)) 18px max(30px, env(safe-area-inset-bottom, 0px));
}
#om-bday-scene-envelope > .om-bday-scene-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: calc(100svh - 100px);
  max-height: none;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
}
#om-bday-scene-envelope .om-bday-letter-paper {
  max-width: 480px;
  padding: 26px 24px 50px;
  background: linear-gradient(135deg, #fffaf0, #f7eddc);
}
#om-bday-letter-body {
  font-family: 'Outfit', sans-serif;
  font-size: 16px;
  line-height: 1.8;
  overflow-wrap: break-word;
}
#om-bday-letter-body .om-bday-magic-char { display: inline; }
#om-bday-letter-greeting { font-size: 21px; line-height: 1.4; }
#om-bday-letter-sign { white-space: pre-line; font-size: 16px; line-height: 1.7; }
#om-bday-envelope-next { min-height: 50px; padding: 13px 18px; line-height: 1.4; }
.om-dhruvi-finale-note {
  max-width: 360px; margin: 24px auto 0;
  font-size: 16px; line-height: 1.8; color: #ffe8c4;
}
#om-bday-root .om-bday-gen-hint { display: none; }
@media(max-width: 600px) {
  #om-bday-root.is-exp { height: 100dvh; min-height: 100svh; }
  #om-bday-root #om-bday-dad-next,
  #om-bday-root #om-bday-envelope-next,
  #om-bday-root #om-bday-dad-sky-next { touch-action: manipulation; }
  #om-bday-scene-dad .om-dad-copy {
    padding: max(64px, env(safe-area-inset-top, 0px)) 24px max(32px, env(safe-area-inset-bottom, 0px));
  }
  #om-bday-scene-dad .om-dad-title { font-size: clamp(25px, 6.5vw, 31px); line-height: 1.25; }
  #om-bday-scene-dad .om-dad-message { font-size: 16px; line-height: 1.8; }
  #om-bday-scene-dad-sky .om-dad-sky-symbol { top: clamp(60px, 12svh, 106px); }
  #om-bday-scene-dad-sky .om-dad-sky-copy {
    padding: clamp(270px, 39svh, 340px) 23px max(30px, env(safe-area-inset-bottom, 0px));
  }
  #om-bday-scene-dad-sky .om-dad-sky-title { font-size: clamp(28px, 7vw, 35px); margin-bottom: 18px; }
  #om-bday-scene-dad-sky .om-dad-sky-message,
  #om-bday-scene-dad-sky .om-dad-sky-wish { font-size: 15px; line-height: 1.75; margin-bottom: 15px; }
  #om-bday-scene-dad-sky .om-dad-sky-sign { margin-bottom: 20px; }
  #om-bday-scene-envelope .om-bday-envelope-wrap { max-width: 100%; }
  #om-bday-scene-envelope .om-bday-letter-paper { padding: 23px 20px 48px; }
  #om-bday-env-title { font-size: 22px; line-height: 1.35; }
  #om-bday-env-sub { font-size: 14px; line-height: 1.6; }
}
@media(max-height: 700px) {
  #om-bday-scene-dad-sky .om-dad-sky-copy { padding-top: 280px; padding-bottom: 36px; }
  #om-bday-scene-dad-sky .om-dad-sky-symbol { top: 70px; }
}
@media(prefers-reduced-motion: reduce) {
  #om-bday-scene-dad-sky.is-on .om-dhruvi-shooting-stars i,
  #om-bday-scene-envelope.is-on .om-bday-letter-paper::after { animation: none; opacity: 0; }
  #om-bday-scene-finale.is-on .om-dhruvi-finale-note { animation: none; }
  #om-bday-scene-dad-sky.is-on .om-dad-sky-symbol,
  #om-bday-scene-dad-sky.is-on .om-dad-sky-mark,
  #om-bday-scene-dad-sky.is-on .om-dad-star-label,
  #om-bday-scene-dad-sky.is-on .om-dad-sky-words,
  #om-bday-scene-dad-sky.is-on .om-dad-constellation i { animation: none; opacity: 1; transform: none; }
  #om-bday-scene-dad-sky.is-on .om-dad-sky-symbol { transform: translateX(-50%); }
  #om-bday-scene-dad-sky.is-on .om-dad-sky-symbol::before,
  #om-bday-scene-dad-sky.is-on .om-dad-sky-symbol::after,
  #om-bday-scene-dad-sky.is-on .om-dad-memory-lights i,
  #om-bday-scene-dad-sky.is-on .om-dad-sky-invitation { animation: none; opacity: 0; }
}
