/* v28: the saved goal and commitment ceremony; other record views stay unchanged. */
.goal-review-scene{display:none;position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(#f8faf6 10%,#e6f1ef 60%,#dfe9cb)}
#quietJourney.goal-review .goal-review-scene,#quietJourney.record-start .goal-review-scene{display:block}
.goal-review-scene video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;mask-image:linear-gradient(transparent 54%,#000 66%,#000 83%,transparent 91%);opacity:.9}
.goal-review-haze{position:absolute;inset:0;background:linear-gradient(180deg,#f8f7f3 0%,#f8f7f3c7 20%,#f8f7f31c 60%,#f8f7f333)}
#quietJourney.goal-review .quiet-atmosphere,#quietJourney.record-start .quiet-atmosphere,#quietJourney.goal-review .healing-meadow,#quietJourney.record-start .healing-meadow{display:none}
#quietJourney.goal-review .quiet-finish{width:min(820px,calc(100% - 48px));max-width:820px;margin:28px auto 68px;padding:45px 60px 40px;background:linear-gradient(135deg,#ffffffd9,#f8fbefd9);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid #ffffffed;box-shadow:0 24px 80px #33502c17;border-radius:30px}
#quietJourney.goal-review .quiet-finish h2{font-family:var(--sans);font-size:clamp(28px,3.1vw,42px);line-height:1.55}
#quietJourney.goal-review .finish-light{font-size:48px;margin-bottom:15px}
#quietJourney.goal-review .quiet-recap{margin:28px 0 0}
#quietJourney.goal-review .recap-entry p{white-space:pre-wrap;text-wrap:pretty;overflow-wrap:anywhere}
#quietJourney.goal-review #finishToRecord{padding:15px 30px;box-shadow:0 10px 28px #3752351a}
#quietJourney.record-start{isolation:isolate;overflow:hidden;min-height:calc(100svh - 96px)}
#quietJourney.record-start .goal-review-scene video{opacity:.34}
#quietJourney.record-start #recordExperience{position:relative;z-index:1;flex:0;padding-bottom:0}
#quietJourney.record-start .quiet-topline,#quietJourney.record-start .quiet-preview-note{position:relative;z-index:1}
.record-commitment{max-width:1000px;margin:0 auto;padding:12px 0 60px;text-align:center;position:relative}
.commitment-back{display:flex;align-items:center;gap:10px;font-size:13px;color:#6d7e63;margin:0 0 22px;padding:10px 0}
.commitment-back span{font-size:22px}
#page-mine .record-commitment h2{font:650 clamp(30px,3.2vw,43px)/1.55 var(--sans);color:#2d5038;text-wrap:balance;margin:15px auto}
.record-commitment h2 span{display:inline-block;white-space:nowrap}
.commitment-refund{font-size:16px;color:#778568;line-height:1.8;margin:10px 0 20px;text-wrap:balance}
@media(max-width:760px){
 #quietJourney.goal-review .quiet-finish{width:calc(100% - 32px);padding:30px 22px;margin-top:18px;border-radius:24px}
 #quietJourney.goal-review .quiet-finish h2{font-size:27px}
 .goal-review-scene video{width:200%;max-width:none;left:-50%;object-position:center bottom;mask-image:linear-gradient(transparent 54%,#000 67%,#000 83%,transparent 91%)}
 .record-commitment{padding-bottom:35px}.commitment-back{margin-bottom:14px}
 #page-mine .record-commitment h2{font-size:27px}.commitment-refund{font-size:13px}

}


#quietJourney.goal-review .quiet-recap{width:100%;max-width:none;margin-left:auto;margin-right:auto}
#quietJourney.goal-review .recap-entry p{font-size:16px;line-height:1.9}

#finishToRecord .start-power-icon{width:23px;height:23px;flex:0 0 23px}
#quietJourney.goal-review #finishToRecord{display:inline-flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap}

/* Stable stage: the flower dissolves into the code in the same space. */
.commitment-bloom{position:relative;width:min(100%,500px);aspect-ratio:500/460;margin:0 auto;isolation:isolate}
#commitmentCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.commitment-flower{position:absolute;inset:0;width:100%;height:100%;background:none;border:0;border-radius:40px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .25s}
.flower-touch{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;white-space:nowrap;border:1px solid #d3c9bd78;border-radius:32px;background:#fffff3a8;backdrop-filter:blur(12px);padding:11px 20px;color:#67775c;font-size:14px;box-shadow:0 9px 25px #75905c0a}
.commitment-bloom.is-open .commitment-flower{opacity:0;pointer-events:none}
.commitment-qr{position:absolute;left:18%;top:6.52%;width:64%;margin:0;padding:0;border:0;background:none;box-shadow:none;opacity:0;transition:opacity .25s ease}
.commitment-bloom.is-qr-ready .commitment-qr{opacity:1}
.commitment-qr button{display:block;width:100%;padding:0;background:#fff;border:0;border-radius:18px;overflow:hidden;box-shadow:0 12px 45px #58704512;cursor:pointer}
.commitment-qr img{display:block;width:100%;height:auto}
.commitment-flower:focus-visible,.commitment-qr button:focus-visible,.commitment-controls button:focus-visible,.commitment-controls a:focus-visible{outline:2px solid #71935f;outline-offset:6px}
.commitment-ritual{min-height:90px;margin:16px auto 14px;max-width:560px;text-align:center}
#commitmentRitual{font:500 clamp(18px,2vw,23px)/1.7 var(--sans);color:#385b40;margin:0 0 8px;text-wrap:balance;transition:opacity .16s,transform .16s}
#commitmentRitualHint{display:block;font-size:13px;color:#839078;line-height:1.8;text-wrap:balance}
.commitment-controls{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;padding:12px 20px;border:1px solid #e2e6d8;border-radius:40px;background:#fffff5a6;backdrop-filter:blur(12px);color:#718067;font-size:13px}
.commitment-colors{display:flex;gap:12px;align-items:center}
.commitment-colors button{background:var(--swatch);width:18px;height:18px;border:2px solid #fff;border-radius:50%;padding:0;box-shadow:0 0 0 1px #bdc8b64d;transition:transform .25s,box-shadow .25s;cursor:pointer}
.commitment-colors button[aria-pressed=true]{box-shadow:0 0 0 2px #809471;transform:scale(1.08)}
.commitment-control-divider{height:20px;width:1px;background:#dfe3d6}
#commitmentBreeze,#saveCommitmentQr{display:inline-flex;align-items:center;gap:7px;color:inherit;padding:4px 0}
#commitmentBreeze[aria-pressed=false]{opacity:.5}
#saveCommitmentQr[hidden]{display:none}
#saveCommitmentQr svg{width:17px;height:17px}
@media(max-width:760px){.commitment-ritual{min-height:104px;margin:18px auto 12px}.commitment-controls{gap:14px;padding:12px 17px}.flower-touch{font-size:12px;padding:9px 15px}#commitmentRitual{font-size:18px}#commitmentRitualHint{font-size:12px}}
@media(prefers-reduced-motion:reduce){.commitment-qr,.commitment-flower,#commitmentRitual{transition:none}}

@media(max-width:760px){.commitment-bloom{aspect-ratio:auto;height:410px}.commitment-qr{width:80%;left:10%}}

.qr-return-hint{display:block;padding:9px 5px 11px;font-size:11px;line-height:1.5;color:#7c8a70;background:#fffff7}

/* Cover only the scan's outer green edge; the payment code stays untouched. */
.commitment-qr img{clip-path:inset(0 3px 0 0)}
.commitment-controls[hidden]{display:none}
.commitment-ritual{margin-bottom:18px}

#commitmentSaveControls{background:transparent;border:0;backdrop-filter:none;padding:0;gap:18px}
#returnGoalAfterQr{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:32px;background:#30533c;color:#fffef5;padding:14px 22px;white-space:nowrap;font:500 14px/1.5 var(--sans)}
#returnGoalAfterQr svg{width:19px;height:19px}
#saveCommitmentQr{padding:12px 17px;border:1px solid #c9d2bf;border-radius:32px;background:#fffff6ad}
