/* The Couture Bloom: an original interactive botanical sculpture. */
.bloom-section{position:relative;isolation:isolate;overflow:hidden;background:#261a23;color:#f6ede3;padding:112px 0 30px}
.bloom-atmosphere{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 76% 36%,#8b4b593f,transparent 51%),radial-gradient(ellipse at 22% 90%,#bd886914,transparent 54%),linear-gradient(120deg,#20181f,#30202b)}
.bloom-section:before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#d0ab7955,transparent)}
.bloom-layout{display:grid;grid-template-columns:minmax(270px,.7fr) minmax(0,1.3fr);align-items:center;gap:46px}
.bloom-copy{max-width:380px;padding-bottom:48px;position:relative;z-index:2}
.bloom-copy .overline{color:#c6a483;font-size:9px;letter-spacing:.2em;line-height:1.8}
.bloom-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(62px,5.5vw,85px);line-height:1.03;letter-spacing:-.045em;margin:24px 0 30px}
.bloom-copy h2 em{font-family:'Playfair Display',Georgia,serif;font-size:.79em;color:#dfb5ad;font-weight:400;letter-spacing:-.045em}
.bloom-copy p{font-size:14px;line-height:1.95;color:#c8b4b7;max-width:310px;margin:0 0 16px}
.bloom-copy .bloom-intro{font-family:var(--serif);font-size:26px;line-height:1.4;color:#ead8ca;margin:0 0 27px}
.bloom-copy .text-link{margin-top:19px;min-height:44px;font-size:10px;letter-spacing:.12em;color:#e7c8a9;border-bottom-color:#ad846d}
.bloom-copy .text-link:hover{color:#fff2dc}
.bloom-signature{display:flex;gap:15px;align-items:center;color:#a98a81;font-size:8px;letter-spacing:.19em;margin-top:47px;line-height:1.7}
.bloom-signature>span{width:28px;height:1px;background:#a38067}
.bloom-panel{position:relative;min-width:0;border:1px solid #d1a67b33;background:radial-gradient(ellipse at 50% 37%,#65424b44,transparent 69%);box-shadow:0 30px 70px -50px #0c0810;overflow:hidden}
.bloom-panel:before,.bloom-panel:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s ease}
.bloom-panel:before{background:radial-gradient(ellipse at 50% 38%,#b2a5a52b,transparent 67%)}
.bloom-panel:after{background:radial-gradient(ellipse at 50% 38%,#ac67382f,transparent 67%)}
.bloom-panel:has(.bloom-mood[data-mood="pearl"][aria-pressed="true"]):before,.bloom-panel:has(.bloom-mood[data-mood="amber"][aria-pressed="true"]):after{opacity:1}
.bloom-panel-heading{position:absolute;top:25px;left:27px;right:27px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#b99c88;font-size:8px;letter-spacing:.16em;z-index:3;pointer-events:none}
.bloom-panel-heading>span:nth-child(2){font-size:20px;color:#e2bc8c}
.bloom-stage{position:relative;width:100%;height:620px;isolation:isolate;margin:0;outline-offset:-7px;touch-action:pan-y}
.bloom-stage.webgl-ready{cursor:grab}
.bloom-stage.webgl-ready:active{cursor:grabbing}
.bloom-stage:focus-visible{outline:1px solid #d1ac83}
.bloom-webgl{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1}
.bloom-poster{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;pointer-events:none;transition:opacity .6s ease}
.bloom-poster img{width:100%;height:100%;object-fit:cover}
.bloom-stage.webgl-ready .bloom-poster{opacity:0}
.bloom-controls{position:relative;z-index:2;padding:22px 30px 27px;border-top:1px solid #d1a67b2e;background:#24192366;backdrop-filter:blur(8px)}
.bloom-controls[hidden]{display:none}
.bloom-controls-top{display:flex;align-items:center;justify-content:space-between;gap:18px}
.bloom-control-kicker{display:block;font-size:7px;letter-spacing:.19em;color:#b19383;margin-bottom:6px}
.bloom-status{display:block;font-family:var(--serif);font-size:25px;line-height:1.2;color:#f0d7c4}
.bloom-play{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#d4b3910d;border:1px solid #c39b774a;color:#e6c9b0;min-height:44px;padding:9px 13px;font-size:9px;letter-spacing:.03em;transition:background .25s,border-color .25s}
.bloom-play:hover{background:#d4b39122;border-color:#c39b77}
.bloom-play-icon{position:relative;width:10px;height:12px;border-left:2px solid currentColor;border-right:2px solid currentColor}
.bloom-play[aria-pressed="false"] .bloom-play-icon{border:0;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid currentColor;margin-right:2px}
.bloom-moods{display:flex;align-items:center;gap:20px;margin:12px 0 18px}
.bloom-mood{display:flex;align-items:center;gap:9px;min-height:44px;padding:4px 0;border:0;background:none;color:#bca6a3;font-size:10px;transition:color .25s}
.bloom-mood i{display:block;width:17px;height:17px;background:var(--mood);border-radius:50%;border:3px solid #2b1d27;box-shadow:0 0 0 1px transparent;transition:box-shadow .25s}
.bloom-mood[aria-pressed="true"]{color:#f8e2cb}
.bloom-mood[aria-pressed="true"] i{box-shadow:0 0 0 1px #dcba90}
.bloom-mood:hover{color:#fff0de}
.bloom-range-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#dec3b1;line-height:1.6}
.bloom-hint{font-size:9px;color:#b3968c}.bloom-hint>span{font-size:17px;margin-left:5px}
.bloom-range{display:block;width:100%;height:44px;margin:7px 0 0;background:transparent;accent-color:#d5ae86;cursor:ew-resize;-webkit-appearance:none;appearance:none;scroll-margin-block:100px}
.bloom-range::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#8b5864,#d7b084)}
.bloom-range::-moz-range-track{height:2px;background:linear-gradient(90deg,#8b5864,#d7b084)}
.bloom-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;background:#d9b58f;border:3px solid #38252e;border-radius:50%;box-shadow:0 0 0 1px #d9b58f;margin-top:-6px}
.bloom-range::-moz-range-thumb{width:10px;height:10px;background:#d9b58f;border:3px solid #38252e;border-radius:50%;box-shadow:0 0 0 1px #d9b58f}
.bloom-range-ends{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.04em;color:#9f817c;margin-top:2px}
.bloom-controls :focus-visible{outline:2px solid #e2bc8c;outline-offset:5px}
.bloom-bottom-note{width:min(1280px,calc(100% - 100px));margin:58px auto 0;display:flex;align-items:center;gap:20px;color:#9b7e76;font-size:7px;letter-spacing:.2em}
.bloom-bottom-note i{flex:1;height:1px;background:#d1a67b22}
@media(min-width:1600px){.bloom-stage{height:680px}}
@media(max-width:1100px){.bloom-layout{grid-template-columns:.72fr 1.28fr;gap:30px}.bloom-stage{height:520px}.bloom-copy h2{font-size:65px}.bloom-controls{padding:20px}.bloom-moods{gap:14px}.bloom-hint{font-size:8px}}
@media(max-width:850px){.bloom-section{padding:70px 0 27px}.bloom-layout{grid-template-columns:1fr;gap:38px}.bloom-copy{padding:0;max-width:550px}.bloom-copy h2{font-size:66px}.bloom-copy h2 br:nth-child(2){display:none}.bloom-copy h2 em{margin-left:9px}.bloom-copy p{max-width:450px}.bloom-signature{margin-top:25px}.bloom-stage{height:610px}.bloom-controls{padding:22px 28px}.bloom-moods{gap:25px}.bloom-hint{font-size:9px}.bloom-bottom-note{width:calc(100% - 48px);margin-top:38px}}
@media(max-width:560px){.bloom-section{padding:64px 0 25px}.bloom-layout{gap:30px}.bloom-copy h2{font-size:58px;margin:21px 0 25px}.bloom-copy h2 br:nth-child(2){display:block}.bloom-copy h2 em{margin-left:0}.bloom-copy .bloom-intro{font-size:25px;margin-bottom:20px}.bloom-copy p{font-size:13px;line-height:1.9}.bloom-stage{height:420px}.bloom-panel-heading{top:19px;left:17px;right:17px;font-size:6px;letter-spacing:.12em;gap:7px}.bloom-panel-heading>span:nth-child(2){font-size:15px}.bloom-controls{padding:19px 18px 23px}.bloom-status{font-size:23px}.bloom-play{font-size:8px;padding:8px 10px;gap:8px}.bloom-moods{gap:12px;justify-content:space-between;margin:11px 0 15px}.bloom-mood{font-size:9px;gap:6px}.bloom-hint{font-size:7px}.bloom-range-header{font-size:9px}.bloom-range-ends{font-size:7px}.bloom-bottom-note{width:calc(100% - 40px);gap:11px;font-size:6px;letter-spacing:.12em}.bloom-signature{font-size:7px}}
@media(prefers-reduced-motion:reduce){.bloom-poster,.bloom-play,.bloom-mood{transition:none}}
@media print{.bloom-controls,.bloom-webgl{display:none}.bloom-stage.webgl-ready .bloom-poster{opacity:1}}
