/* One shared botanical illustration, from the live preview to the full reveal. */
.dm-m-flower{display:block;width:300px;height:auto;max-width:100%;overflow:visible}
.dm-m-stem{fill:none;stroke:#819780;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s ease}
.dm-m-leaf{fill:#dce4d6;stroke:#8b9b80;stroke-width:.9;stroke-linejoin:round;transform-box:view-box;transform:scale(.02);transition:transform 1.2s cubic-bezier(.22,.7,.3,1)}
.dm-m-leaf-l{transform-origin:151px 288px}.dm-m-leaf-r{fill:#e3e9db;transform-origin:152px 253px;transition-delay:.15s}
.dm-m-vein{fill:none;stroke:#98a58d;stroke-width:.65}
.dm-m-calyx{fill:#a5b49a;opacity:0;transition:opacity .6s}
.dm-m-petal{fill:var(--petal);stroke:#c493a1;stroke-width:.75;stroke-linejoin:round;transform-origin:151px 181px;transform:translateY(8px) scale(.12,.2);opacity:0;transition:transform 1.3s cubic-bezier(.22,.7,.3,1),opacity .7s;transition-delay:calc(var(--i) * 55ms)}
.dm-m-detail{fill:none;stroke:#c99da7;stroke-width:.65;stroke-linecap:round;opacity:0;transition:opacity 1s .7s}
.dm-m-ring,.dm-m-note{opacity:0;transform:translateY(7px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.3,1)}
.dm-m-band{fill:none;stroke:#ab8550;stroke-width:2.8}
.dm-m-band-light{fill:none;stroke:#f5e0ad;stroke-width:.8;stroke-linecap:round}
.dm-m-gem{fill:#fffdfa;stroke:#ac926c;stroke-width:.8;stroke-linejoin:round}
.dm-m-gem-facet{fill:none;stroke:#c8bda6;stroke-width:.55}
.dm-m-card{fill:#fffcf5;stroke:#b99a87;stroke-width:.8;stroke-linejoin:round}
.dm-m-fold{fill:none;stroke:#cbb2a2;stroke-width:.6}
.dm-m-seal{fill:#bd8391;stroke:#a56c7a;stroke-width:.5}
:is(.dm-flower-open,.dm-moment:is([data-stage="stem"],[data-stage="bloom"],[data-stage="gift"],[data-stage="done"])) .dm-m-stem{stroke-dashoffset:0}
:is(.dm-flower-open,.dm-moment:is([data-stage="stem"],[data-stage="bloom"],[data-stage="gift"],[data-stage="done"])) .dm-m-leaf{transform:none}
:is(.dm-flower-open,.dm-moment:is([data-stage="bloom"],[data-stage="gift"],[data-stage="done"])) :is(.dm-m-petal,.dm-m-calyx,.dm-m-detail){transform:none;opacity:1}
:is(.dm-flower-open,.dm-moment:is([data-stage="gift"],[data-stage="done"])) :is(.dm-m-ring,.dm-m-note){transform:none;opacity:1}
.dm-flower-open *{transition:none}

/* The moment is its own quiet sheet, independent of the game's colour theme. */
body.dm-moment-open{overflow:hidden}
.dm-moment{position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;align-items:center;padding:72px 24px 28px;overflow:auto;overscroll-behavior:contain;background:#faf7f2;color:#373833;font-family:Inter,"Segoe UI",sans-serif;opacity:0;transition:opacity .5s ease;isolation:isolate}
.dm-moment::before{content:"";position:fixed;inset:16px;z-index:-1;border:1px solid #e8e1d8;pointer-events:none}
.dm-moment[data-stage]{opacity:1}.dm-moment.dm-m-leaving{opacity:0;transition:opacity .35s ease}
.dm-m-top{position:absolute;top:max(32px,env(safe-area-inset-top));left:40px;right:88px;display:flex;align-items:center;gap:18px}
.dm-m-brand{font-size:16px;font-weight:600;letter-spacing:-.6px;color:#56644e}
.dm-m-badge{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#787267;border-left:1px solid #d9d2c7;padding-left:18px}
.dm-m-close{position:absolute;top:max(22px,env(safe-area-inset-top));right:28px;z-index:4;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ded7ce;border-radius:50%;background:transparent;color:#736d64;font:300 25px/1 Inter,sans-serif;cursor:pointer;transition:background .2s}
.dm-m-close:hover{background:#eee8df}
.dm-m-composition{position:relative;width:min(100%,600px);margin:auto;display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 0}
.dm-m-message{max-width:42ch;margin:0 auto 4px;font:400 clamp(.95rem,1.6vw,1.1rem)/1.65 Inter,sans-serif;letter-spacing:-.015em;color:#756760;overflow-wrap:anywhere;opacity:0;transform:translateY(8px);transition:opacity .8s .1s,transform .8s .1s}
.dm-moment[data-stage] .dm-m-message{opacity:1;transform:none}
.dm-m-stage{position:relative;display:grid;place-items:center;width:100%;padding:0 12px}
.dm-m-stage .dm-m-flower{width:auto;height:clamp(200px,37vh,340px);max-width:75vw}
.dm-m-ask,.dm-m-after{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:560px;text-align:center;z-index:2}
.dm-m-ask{opacity:0;transform:translateY(10px);transition:opacity .8s,transform .8s;pointer-events:none}
.dm-moment[data-stage="done"] .dm-m-ask{opacity:1;transform:none;pointer-events:auto}
.dm-moment [hidden]{display:none!important}
.dm-m-question,.dm-m-after-title{margin:0;font:450 clamp(1.7rem,3.6vw,2.5rem)/1.2 Inter,sans-serif;letter-spacing:-.045em;color:#3f423b;overflow-wrap:anywhere;text-wrap:balance}
.dm-m-after-title:focus{outline:none}
.dm-m-from,.dm-m-after-copy,.dm-m-waiting{margin:0;color:#756f65;font:400 .87rem/1.6 Inter,sans-serif;overflow-wrap:anywhere}
.dm-m-actions,.dm-m-after-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;width:100%}
.dm-m-yes,.dm-m-think,.dm-m-back,.dm-m-shop{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:130px;max-width:100%;padding:12px 24px;border-radius:7px;font:500 .87rem/1.4 Inter,sans-serif;text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s}
.dm-m-yes,.dm-m-back{border:1px solid #56644e;background:#56644e;color:#fffdf8}
.dm-m-yes:hover,.dm-m-back:hover{background:#43523d;border-color:#43523d}
.dm-m-think,.dm-m-shop{border:1px solid #d8d0c5;background:transparent;color:#625d54}
.dm-m-think:hover,.dm-m-shop:hover{background:#eee8df;border-color:#c9bfb1}
.dm-moment :focus-visible{outline:2px solid #896b7b;outline-offset:5px}
.dm-m-after{animation:dm-m-arrive .7s both}
@keyframes dm-m-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dm-m-footer{flex:none;margin:16px 0 0;font:400 10px/1.5 Inter,sans-serif;letter-spacing:.08em;color:#8a8073}
.dm-m-burst{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.dm-m-firework{position:absolute}
.dm-m-firework i{position:absolute;width:1.5px;height:7px;border-radius:2px;background:var(--colour);opacity:0;animation:dm-m-firework 1.9s cubic-bezier(.12,.65,.25,1) var(--delay) both}
@keyframes dm-m-firework{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scaleY(.3)}12%{opacity:.85}55%{opacity:.7}100%{opacity:0;transform:rotate(var(--angle)) translateY(var(--distance)) scaleY(.35)}}
@media(max-width:599px){
 .dm-moment{padding:74px 28px 24px}.dm-moment::before{inset:10px}
 .dm-m-top{left:28px;gap:12px}.dm-m-badge{padding-left:12px;font-size:9px}.dm-m-close{right:20px}
 .dm-m-composition{padding:12px 0}.dm-m-stage .dm-m-flower{height:clamp(180px,32vh,290px)}
 .dm-m-question,.dm-m-after-title{font-size:clamp(1.55rem,7.3vw,2rem)}
 .dm-m-actions,.dm-m-after-actions{gap:8px}.dm-m-yes,.dm-m-think,.dm-m-back,.dm-m-shop{min-width:0;flex:1 1 108px;padding:12px}
}
@media(max-height:620px) and (min-width:600px){.dm-moment{padding:65px 36px 18px}.dm-m-stage .dm-m-flower{height:190px}.dm-m-composition{padding:0}.dm-m-question,.dm-m-after-title{font-size:1.8rem}.dm-m-ask,.dm-m-after{gap:8px}.dm-m-footer{margin:10px 0 0}}
@media(prefers-reduced-motion:reduce){
 .dm-moment,.dm-moment *,.dm-moment *::before{transition:none!important;animation:none!important}
 .dm-m-burst{display:none}
}
