/* Botanical artwork stays separate from editable card text. */
.letter-choice{min-height:470px}
.letter-choice strong{margin-bottom:10px}
.card-botanical,.card-botanical-space{display:block;width:100%;height:112px;object-fit:contain;object-position:right center;margin:0 0 14px}
.theme-unsaid .card-botanical{object-position:left center}
.letter-choose{display:flex;align-items:center;gap:10px}
.card-arrow{width:20px;height:20px;flex-shrink:0}
.letter-botanical{width:100%;height:110px;object-fit:contain;object-position:right center;margin:0 0 14px}
.letter-botanical[hidden]{display:none}
.letter-front h3{margin-bottom:12px}
.letter-front>p{margin-bottom:22px}
.letter-face{min-height:31rem}

/* One composition model for the main preview, mobile preview, modal and bag. */
.bouquet-scene{position:relative;width:100%;height:100%;overflow:hidden;background:#eee6d9;transition:transform .4s;isolation:isolate}
.bouquet-scene>.bouquet-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:none!important;filter:none!important;background:transparent}
.bouquet-scene>.bouquet-wrap-layer{position:absolute;z-index:2;left:17%;bottom:1%;width:66%;height:55%;object-fit:contain;background:none;transform:none!important;filter:none;transition:filter .3s;pointer-events:none}
.bouquet-scene>.bouquet-ribbon-layer{position:absolute;z-index:3;left:35%;bottom:5%;width:30%;height:24%;object-fit:contain;background:none;transform:none!important;filter:none;transition:filter .3s;pointer-events:none}
.bouquet-scene>.bouquet-wrap-layer[hidden],.bouquet-scene>.bouquet-ribbon-layer[hidden]{display:none!important}
.bouquet-scene[data-wrap=kraft]>.bouquet-wrap-layer{filter:sepia(1) saturate(1.4) brightness(.7)}
.bouquet-scene[data-wrap=botanical]>.bouquet-wrap-layer{filter:sepia(1) saturate(1.2) hue-rotate(30deg) brightness(.36)}
.bouquet-scene[data-ribbon=blush]>.bouquet-ribbon-layer{filter:grayscale(1) brightness(2) sepia(.6) saturate(1.8) hue-rotate(315deg)}
.bouquet-scene[data-ribbon=wine]>.bouquet-ribbon-layer{filter:sepia(1) saturate(3.7) hue-rotate(290deg) brightness(.65)}
.bouquet-scene[data-size=petite]{transform:scale(.9)}
.bouquet-scene[data-size=abundant]{transform:scale(1.06)}
.builder-preview{display:grid;align-content:center;padding:0;min-height:0;aspect-ratio:1/1;background:#eee6d9;align-self:start;position:sticky;top:0}
.builder-preview>.bouquet-scene{position:absolute;inset:0}
.builder-preview .preview-note{z-index:4;max-width:calc(100% - 32px);left:16px;bottom:16px;font-size:.75rem;line-height:1.5}
.builder-live-preview{display:grid;grid-template-columns:108px minmax(0,1fr);gap:16px;align-items:center;padding:12px;margin:0 0 32px;background:#ebe3d6;border:1px solid #c8beac;position:sticky;top:8px;z-index:8}
.mini-bouquet{width:108px;height:108px;overflow:hidden;background:#eee6d9}
.builder-live-preview strong,.builder-live-preview span{display:block;font-size:.875rem;line-height:1.5}
.builder-live-preview strong{font-weight:500;margin-bottom:4px}
.builder-live-preview small{display:block;font-size:.75rem;line-height:1.4;margin-top:6px;color:#555d4a}
.builder-panel .material-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.builder-panel .material-options button{width:auto;height:auto;min-height:74px;padding:7px 2px;background:none;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:10px}
.builder-panel .material-options button i{display:block;width:34px;height:34px;border-radius:50%;border:1px solid #0003}
.builder-panel .material-options button.active i{box-shadow:0 0 0 3px var(--ivory),0 0 0 4px var(--green)}
.builder-panel .material-options button span{font-size:.875rem;line-height:1.3}
.builder-panel .material-row{grid-template-columns:1fr;gap:0}
.builder-panel .palette-options button,.builder-panel .size-options button{font-size:.875rem;letter-spacing:0}
.modal-photo>.bouquet-scene{position:absolute;inset:0}
.modal-photo>button{z-index:5}
.modal-back{position:sticky;bottom:0;width:100%;margin-top:20px;padding:18px 2px 14px;border:0;border-top:1px solid var(--line);background:rgba(243,238,227,.96);display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:500;z-index:6}
.modal-back span{font-size:1.2rem;transition:transform .25s var(--ease)}
.modal-back:hover span{transform:translateX(-5px)}
.modal-back:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.modal-photo.unwrapped .bouquet-photo{animation:none}
.modal-photo.unwrapped .bouquet-wrap-layer{animation:wrap-reveal 1.2s ease}
.modal-photo.unwrapped .bouquet-ribbon-layer{animation:ribbon-reveal 1.2s ease}
@keyframes wrap-reveal{50%{opacity:.12}}
@keyframes ribbon-reveal{50%{opacity:0}}
.bag-bouquet{height:100px;width:82px;overflow:hidden}
.bag-bouquet .bouquet-scene img{height:100%}
.bag-bouquet .bouquet-scene .bouquet-wrap-layer{height:55%}
.bag-bouquet .bouquet-scene .bouquet-ribbon-layer{height:24%}
@media(max-width:980px){.builder-preview{position:relative;width:100%;height:auto;min-height:0;aspect-ratio:1/1}.builder-panel{overflow:visible}.builder-live-preview{top:12px;box-shadow:0 6px 18px #30231813}}
@media(max-width:580px){.letter-choice{min-height:440px}.card-botanical,.card-botanical-space{height:95px}.letter-choice strong{font-size:clamp(2.25rem,9.3vw,2.8rem)}.letter-choice{padding:18px}.letter-face{min-height:29rem}.builder-live-preview{grid-template-columns:96px minmax(0,1fr);gap:12px}.mini-bouquet{width:96px;height:96px}.builder-preview .preview-note{font-size:.75rem}.builder-panel .palette-options button,.builder-panel .size-options button{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.bouquet-scene,.bouquet-scene img{transition:none!important;animation:none!important}}
