/* ═══════════════════════════════════════════════════════════════════════
   The rose menu — "Dewy Rose"
   A top-down rose: green leaves peeking out, dark back petals, six menu petals with rolled lips,
   a cupped middle ring, tight inner petals, a swirling bud and a glass dewdrop holding the days.
   Everything about the rose lives in this file.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
  --rp-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 70'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ff5f7c'/%3E%3Cstop offset='0.3' stop-color='%23bd1339'/%3E%3Cstop offset='0.7' stop-color='%238e0c29'/%3E%3Cstop offset='1' stop-color='%234a0414'/%3E%3C/linearGradient%3E%3CradialGradient id='h' cx='32%25' cy='18%25' r='55%25'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.34'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='l' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='0.5' stop-color='%23fff' stop-opacity='0.8'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='s' x1='0' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.38'/%3E%3Cstop offset='.5' stop-color='%23000' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M30 68C23 66 12 57 6 43C0 29 3 14 15 7C20 4 25 6 29 9C31 7 34 5 38 5C50 7 60 20 55 38C51 52 40 64 30 68Z'/%3E%3Cpath fill='url(%23s)' d='M30 68C23 66 12 57 6 43C0 29 3 14 15 7C20 4 25 6 29 9C31 7 34 5 38 5C50 7 60 20 55 38C51 52 40 64 30 68Z'/%3E%3Cpath fill='url(%23h)' d='M30 68C23 66 12 57 6 43C0 29 3 14 15 7C20 4 25 6 29 9C31 7 34 5 38 5C50 7 60 20 55 38C51 52 40 64 30 68Z'/%3E%3Cpath d='M30 66C29 52 29.5 36 30 14M30 62C21 52 14 40 12 27M30 62C39 52 46 40 48 27M26 58C18 50 14 42 14 34M34 58C42 50 46 42 46 34' stroke='%23fff' stroke-opacity='.08' stroke-width='.9' fill='none'/%3E%3Cpath d='M7 27C4 17 9 10 15 7C20 4 25 6 29 9C31 7 34 5 38 5C47 6 54 12 56 23' transform='translate(0 4)' stroke='%233a0010' stroke-opacity='.42' stroke-width='4.2' stroke-linecap='round' fill='none'/%3E%3Cpath d='M7 27C4 17 9 10 15 7C20 4 25 6 29 9C31 7 34 5 38 5C47 6 54 12 56 23' stroke='url(%23l)' stroke-width='3' stroke-linecap='round' fill='none'/%3E%3Cpath d='M7 27C4 17 9 10 15 7C20 4 25 6 29 9C31 7 34 5 38 5C47 6 54 12 56 23' stroke='%23ffc4d0' stroke-opacity='.55' stroke-width='.9' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  --rp-back: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 70'%3E%3Cdefs%3E%3ClinearGradient id='b' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23a8112f'/%3E%3Cstop offset='0.3' stop-color='%23780a25'/%3E%3Cstop offset='0.7' stop-color='%234c0617'/%3E%3Cstop offset='1' stop-color='%234a0414'/%3E%3C/linearGradient%3E%3CradialGradient id='h' cx='32%25' cy='18%25' r='55%25'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.38'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='l' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='0.5' stop-color='%23fff' stop-opacity='0.25'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='s' x1='0' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.38'/%3E%3Cstop offset='.5' stop-color='%23000' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23b)' d='M30 68C23 66 12 57 6 43C0 29 3 14 15 7C20 4 25 6 29 9C31 7 34 5 38 5C50 7 60 20 55 38C51 52 40 64 30 68Z'/%3E%3Cpath fill='url(%23s)' d='M30 68C23 66 12 57 6 43C0 29 3 14 15 7C20 4 25 6 29 9C31 7 34 5 38 5C50 7 60 20 55 38C51 52 40 64 30 68Z'/%3E%3Cpath fill='url(%23h)' d='M30 68C23 66 12 57 6 43C0 29 3 14 15 7C20 4 25 6 29 9C31 7 34 5 38 5C50 7 60 20 55 38C51 52 40 64 30 68Z'/%3E%3Cpath d='M30 66C29 52 29.5 36 30 14M30 62C21 52 14 40 12 27M30 62C39 52 46 40 48 27M26 58C18 50 14 42 14 34M34 58C42 50 46 42 46 34' stroke='%23fff' stroke-opacity='.11' stroke-width='.9' fill='none'/%3E%3Cpath d='M7 27C4 17 9 10 15 7C20 4 25 6 29 9C31 7 34 5 38 5C47 6 54 12 56 23' transform='translate(0 4)' stroke='%233a0010' stroke-opacity='.42' stroke-width='4.2' stroke-linecap='round' fill='none'/%3E%3Cpath d='M7 27C4 17 9 10 15 7C20 4 25 6 29 9C31 7 34 5 38 5C47 6 54 12 56 23' stroke='url(%23l)' stroke-width='3' stroke-linecap='round' fill='none'/%3E%3Cpath d='M7 27C4 17 9 10 15 7C20 4 25 6 29 9C31 7 34 5 38 5C47 6 54 12 56 23' stroke='%23ffc4d0' stroke-opacity='.55' stroke-width='.9' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  --rp-mid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 70'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ff6f8a'/%3E%3Cstop offset='0.45' stop-color='%23d2173f'/%3E%3Cstop offset='1' stop-color='%238a0b28'/%3E%3C/linearGradient%3E%3ClinearGradient id='l' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='0.5' stop-color='%23fff' stop-opacity='0.85'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3CradialGradient id='c' cx='50%25' cy='28%25' r='50%25'%3E%3Cstop offset='0' stop-color='%233a0010' stop-opacity='.55'/%3E%3Cstop offset='1' stop-color='%233a0010' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M30 64C23 62 15 52 12 40C9 27 14 14 30 9C46 14 51 27 48 40C45 52 37 62 30 64Z'/%3E%3Cellipse cx='30' cy='24' rx='15' ry='11' fill='url(%23c)'/%3E%3Cpath d='M13 31C11 20 19 12 30 9C41 12 49 20 47 31' transform='translate(0 3.5)' stroke='%233a0010' stroke-opacity='.4' stroke-width='3.6' stroke-linecap='round' fill='none'/%3E%3Cpath d='M13 31C11 20 19 12 30 9C41 12 49 20 47 31' stroke='url(%23l)' stroke-width='3' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  --rp-inner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 70'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ff8aa0'/%3E%3Cstop offset='0.45' stop-color='%23e0204a'/%3E%3Cstop offset='1' stop-color='%23a30f31'/%3E%3C/linearGradient%3E%3ClinearGradient id='l' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='0.5' stop-color='%23fff' stop-opacity='0.95'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3CradialGradient id='c' cx='50%25' cy='28%25' r='50%25'%3E%3Cstop offset='0' stop-color='%233a0010' stop-opacity='.55'/%3E%3Cstop offset='1' stop-color='%233a0010' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M30 64C23 62 15 52 12 40C9 27 14 14 30 9C46 14 51 27 48 40C45 52 37 62 30 64Z'/%3E%3Cellipse cx='30' cy='24' rx='15' ry='11' fill='url(%23c)'/%3E%3Cpath d='M13 31C11 20 19 12 30 9C41 12 49 20 47 31' transform='translate(0 3.5)' stroke='%233a0010' stroke-opacity='.4' stroke-width='3.6' stroke-linecap='round' fill='none'/%3E%3Cpath d='M13 31C11 20 19 12 30 9C41 12 49 20 47 31' stroke='url(%23l)' stroke-width='3' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  --rp-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 70'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%2334c47a'/%3E%3Cstop offset='0.4' stop-color='%23168a4f'/%3E%3Cstop offset='1' stop-color='%2308452a'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M20 68C7 57 2 38 7 21C10 11 15 5 20 2C25 5 30 11 33 21C38 38 33 57 20 68Z'/%3E%3Cpath d='M20 66C20.5 46 19.5 24 20 6' stroke='%23fff' stroke-opacity='.3' stroke-width='1.2' fill='none'/%3E%3Cpath d='M20 52C13 47 9 40 8 33M20 52C27 47 31 40 32 33M20 38C14 34 11 29 10 24M20 38C26 34 29 29 30 24M20 24C16 21 14 17 14 14M20 24C24 21 26 17 26 14' stroke='%23fff' stroke-opacity='.16' stroke-width='.9' fill='none'/%3E%3Cpath d='M8 24C10 12 15 6 20 2' stroke='%23b6ffd6' stroke-opacity='.45' stroke-width='1.4' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
}

.rose-wrap { display: flex; flex-direction: column; align-items: center; margin: 6px calc(-1 * clamp(16px, 4vw, 56px)) 34px; padding: 0 clamp(16px, 4vw, 56px); overflow-x: clip; }
.rose { --rs: min(540px, calc((100vw - 20px) / 1.1)); position: relative; width: var(--rs); height: var(--rs); margin: 0 auto; }

/* soft red glow behind the flower (replaces the old flat plate) */
.rose-glow {
  position: absolute; inset: -2%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(255, 70, 110, 0.42) 0, rgba(255, 70, 110, 0.14) 46%, transparent 68%);
  
}

/* ── decorative petal & leaf layers (all rotate about the centre) ── */
.rose::before { content: ""; position: absolute; inset: 6% 4% 0 4%; border-radius: 50%; background: radial-gradient(circle at 50% 56%, rgba(20, 0, 8, 0.5), transparent 66%); pointer-events: none; }
.rpetal { position: absolute; left: 50%; top: 50%; width: 0; height: 0; transform: rotate(var(--a)); pointer-events: none; }
.rpetal::before { content: ""; position: absolute; background-position: center; background-size: 100% 100%; background-repeat: no-repeat; }
.rpetal.leaf  { z-index: 1; }
.rpetal.leaf::before  { width: calc(var(--rs) * 0.2);  height: calc(var(--rs) * 0.3);  left: calc(var(--rs) * -0.1);  top: calc(var(--rs) * -0.545); background-image: var(--rp-leaf); }
.rpetal.back  { z-index: 2; }
.rpetal.back::before  { width: calc(var(--rs) * 0.38); height: calc(var(--rs) * 0.52); left: calc(var(--rs) * -0.19);  top: calc(var(--rs) * -0.5);   background-image: var(--rp-back); }
.rpetal.mid   { z-index: 5; }
.rpetal.mid::before   { width: calc(var(--rs) * 0.22); height: calc(var(--rs) * 0.3);  left: calc(var(--rs) * -0.11); top: calc(var(--rs) * -0.315); background-image: var(--rp-mid); }
.rpetal.inner { z-index: 6; }
.rpetal.inner::before { width: calc(var(--rs) * 0.19); height: calc(var(--rs) * 0.23); left: calc(var(--rs) * -0.095); top: calc(var(--rs) * -0.215); background-image: var(--rp-inner); }
.rpetal.tight { z-index: 6; }
.rpetal.tight::before { width: calc(var(--rs) * 0.14); height: calc(var(--rs) * 0.17); left: calc(var(--rs) * -0.07);  top: calc(var(--rs) * -0.15);  background-image: var(--rp-inner); }

/* ── the six menu petals ── */
.petal-link { position: absolute; left: 50%; top: 50%; width: 0; height: 0; transform: rotate(var(--a)); z-index: 4; text-decoration: none; color: #fff; -webkit-tap-highlight-color: transparent; }
.petal-link:focus-visible { outline: none; }
.petal-body {
  position: absolute; width: calc(var(--rs) * 0.3); height: calc(var(--rs) * 0.44);
  left: calc(var(--rs) * -0.15); top: calc(var(--rs) * -0.48); rotate: var(--j, 0deg);
  transition: transform 0.35s var(--ease), filter 0.35s;
  animation: sway 7s ease-in-out calc(var(--i) * -1.3s) infinite;
}
.rose.first .petal-body { animation: bloom 0.9s var(--ease) calc(var(--i) * 0.12s) both, sway 7s ease-in-out calc(var(--i) * -1.3s) infinite; }
.petal-body::before { content: ""; position: absolute; inset: 0; background: var(--rp-menu) center / 100% 100% no-repeat; filter: drop-shadow(0 12px 14px rgba(0, 0, 0, 0.5)); transition: filter 0.35s; }
.petal-hit { position: absolute; inset: 0; clip-path: ellipse(46% 47% at 50% 50%); cursor: pointer; }
.petal-in {
  position: absolute; inset: 0; z-index: 1; pointer-events: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  transform: translateY(-4%) rotate(calc(var(--a) * -1)); text-align: center; text-shadow: 0 1px 4px rgba(60, 0, 20, 0.65);
}
.petal-in::before { content: ""; position: absolute; inset: 22% 6% 20% 6%; z-index: -1; border-radius: 50%; background: radial-gradient(ellipse, rgba(28, 0, 11, 0.58), rgba(28, 0, 11, 0) 72%); }
.petal-in .icon { width: calc(var(--rs) * 0.06); height: calc(var(--rs) * 0.06); min-width: 20px; min-height: 20px; }
.petal-in b { font-size: clamp(0.8rem, calc(var(--rs) * 0.032), 1rem); font-weight: 700; letter-spacing: 0.01em; }
.petal-in .badge { position: absolute; top: 14%; right: 22%; }
.petal-link:hover .petal-body, .petal-link:focus-visible .petal-body { transform: translateY(calc(var(--rs) * -0.03)) scale(1.07); filter: brightness(1.08); }
.petal-link:hover .petal-body::before { filter: drop-shadow(0 16px 20px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 14px rgba(255, 120, 150, 0.85)); }
.petal-link:focus-visible .petal-body::before { filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 10px #fff); }
.petal-link:active .petal-body { transform: translateY(calc(var(--rs) * -0.01)) scale(1.02); }
@keyframes bloom { from { opacity: 0; transform: translateY(calc(var(--rs) * 0.3)) scale(0.2); } to { opacity: 1; transform: none; } }
@keyframes sway { 0%, 100% { translate: 0 0; } 50% { translate: 0 -2.6%; } }

/* ── heart: spiral bud + a glass dewdrop that holds the days ── */
.rose-bud { position: absolute; left: 50%; top: 50%; z-index: 7; width: calc(var(--rs) * 0.27); height: calc(var(--rs) * 0.27); margin: calc(var(--rs) * -0.135) 0 0 calc(var(--rs) * -0.135);
  pointer-events: none; }
.rose-core {
  position: absolute; left: 50%; top: 50%; z-index: 9; width: calc(var(--rs) * 0.2); height: calc(var(--rs) * 0.2); margin: calc(var(--rs) * -0.1) 0 0 calc(var(--rs) * -0.1);
  border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.6); cursor: pointer; color: #fff; padding: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  background: radial-gradient(circle at 25% 14%, rgba(255, 255, 255, 0.7) 0 3%, rgba(255, 255, 255, 0.05) 8%, rgba(40, 0, 14, 0.8) 18%, rgba(18, 0, 8, 0.92) 100%);
  -webkit-backdrop-filter: blur(7px) saturate(150%); backdrop-filter: blur(7px) saturate(150%);
  box-shadow: 0 14px 26px -8px rgba(0, 0, 0, 0.65), 0 0 28px rgba(255, 90, 125, 0.45), inset 0 -6px 10px rgba(255, 255, 255, 0.18), inset 0 2px 0 rgba(255, 255, 255, 0.45);
  text-shadow: 0 1px 3px rgba(20, 0, 8, 0.8); animation: beat 3s ease-in-out infinite;
}
.core-num { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.35rem, calc(var(--rs) * 0.066), 2.3rem); line-height: 1; }
.core-lbl { font-family: var(--font-body); font-size: clamp(0.54rem, calc(var(--rs) * 0.019), 0.72rem); font-weight: 700; letter-spacing: 0.04em; line-height: 1.15; text-transform: uppercase; color: #ffe9ed; }

/* little glass dewdrops resting on the petals */
.dew {
  position: absolute; z-index: 8; width: calc(var(--rs) * var(--s)); height: calc(var(--rs) * var(--s)); margin: calc(var(--rs) * var(--s) / -2) 0 0 calc(var(--rs) * var(--s) / -2);
  border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle at 30% 26%, rgba(255, 255, 255, 0.95) 0 9%, rgba(255, 255, 255, 0.32) 18%, rgba(255, 255, 255, 0.06) 52%, rgba(40, 0, 14, 0.3) 100%);
  border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 5px 9px rgba(0, 0, 0, 0.5), inset 0 -3px 5px rgba(255, 255, 255, 0.2);
}

.rose-notes { z-index: 10; }
.rose-hint { margin: 10px 0 0; font-family: var(--font-script); font-size: 1.7rem; color: var(--rose); text-shadow: 0 0 18px rgba(255, 90, 120, 0.45); }

@media (max-width: 560px) {
  .petal-in { gap: 2px; }
}
@media (prefers-reduced-motion: reduce) { .petal-body, .rose-core { animation: none !important; } }
