.ydfb-library,.ydfb-library *,.ydfb-overlay,.ydfb-overlay *{box-sizing:border-box}
.ydfb-library{color:inherit}.ydfb-library header{margin-bottom:1.4rem}.ydfb-library header h2{margin:.15rem 0}.ydfb-library header p{margin:.2rem 0}.ydfb-eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--secondary-color,currentColor)}
.ydfb-cards,.ydfb-modal-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media(max-width:760px){.ydfb-cards,.ydfb-modal-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.ydfb-cards,.ydfb-modal-cards{grid-template-columns:minmax(0,1fr)}}
.ydfb-card{overflow:hidden;padding:0;margin:0;min-width:0;border-radius:var(--card-radius,var(--radius,1rem))}.ydfb-card-open{display:flex;flex-direction:column;width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.ydfb-card-image{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background-color:#263642}.ydfb-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}.ydfb-card-open:hover .ydfb-card-image img{transform:scale(1.025)}.ydfb-card-copy{display:grid;gap:.55rem;width:100%;padding:1.2rem}.ydfb-card-copy strong{font-size:1.3rem;line-height:1.2}.ydfb-card-copy>span:not(.ydfb-card-cta){line-height:1.45}.ydfb-card-copy small{opacity:.75;line-height:1.4}.ydfb-card-cta{display:inline-flex;align-items:center;gap:.55rem;margin-top:.3rem;color:var(--link-color,currentColor);font-weight:700}
.ydfb-launcher{display:inline-flex;align-items:center;gap:.5rem;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.ydfb-overlay[hidden],.ydfb-overlay [hidden]{display:none!important}.ydfb-overlay{position:fixed;inset:0;z-index:2147483000;opacity:0;pointer-events:none;transition:opacity .35s;background:#080e16;color:#fff}.ydfb-overlay.is-open{opacity:1;pointer-events:auto}.ydfb-stage{position:relative;isolation:isolate;width:100%;height:100%;min-height:100dvh;overflow:hidden;outline:none}.ydfb-backdrop,.ydfb-effects{position:absolute;inset:0}.ydfb-backdrop{z-index:-2;background-size:cover;background-position:center;background-color:#080e16;filter:brightness(.68);transform:scale(1.015)}.ydfb-stage:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,8,15,.48),transparent 27%,transparent 55%,rgba(2,8,15,.58));pointer-events:none}.ydfb-effects{z-index:-1;pointer-events:none}
.ydfb-close{position:absolute;z-index:6;right:clamp(1rem,3vw,2rem);top:clamp(1rem,3vw,2rem);display:grid;place-items:center;width:2.7rem;height:2.7rem;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(9,19,30,.48);color:#fff;font-size:1.25rem;cursor:pointer;backdrop-filter:blur(8px)}
.ydfb-initial,.ydfb-center{position:absolute;left:50%;top:45%;width:min(90vw,720px);transform:translate(-50%,-50%);text-align:center}.ydfb-initial{opacity:1;transition:opacity .7s,transform .7s}.ydfb-initial.is-gone{opacity:0;transform:translate(-50%,-47%)}.ydfb-initial h1{color:#fff;font-size:clamp(2.5rem,6vw,5rem);line-height:1.05;text-shadow:0 3px 30px rgba(0,0,0,.55)}.ydfb-initial p{font-size:1.1rem}.ydfb-center{padding:1rem}.ydfb-timer-chooser p{font-size:clamp(1.1rem,2.5vw,1.5rem);margin-bottom:1.3rem}.ydfb-timer-options{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.65rem}.ydfb-timer-options button,.ydfb-timer-options label,.ydfb-countdown button,.ydfb-tray button,.ydfb-library-modal button{border:1px solid rgba(255,255,255,.55);border-radius:var(--button-radius,.7rem);background:rgba(5,14,22,.55);color:#fff;font:inherit;cursor:pointer;backdrop-filter:blur(10px)}.ydfb-timer-options button{padding:.7rem 1rem}.ydfb-timer-options label{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .55rem}.ydfb-timer-options input{width:3.7rem;padding:.3rem;border:1px solid #aeb9c3;border-radius:.4rem;background:#fff;color:#17222d;text-align:center;font:inherit}.ydfb-timer-chooser small{display:block;margin-top:1rem;opacity:.85}.ydfb-countdown{display:grid;justify-items:center;gap:.75rem;transition:opacity 1.4s}.ydfb-countdown span{font-size:clamp(1.5rem,3vw,2.2rem);font-variant-numeric:tabular-nums;font-weight:600;text-shadow:0 3px 20px #000}.ydfb-countdown button{padding:.4rem .7rem;font-size:.85rem}.ydfb-countdown.is-finished{opacity:0;pointer-events:none}
.ydfb-tray{position:absolute;z-index:5;bottom:0;left:50%;width:min(100%,690px);transform:translateX(-50%);border:1px solid rgba(255,255,255,.3);border-bottom:0;border-radius:1rem 1rem 0 0;background:rgba(8,19,30,.82);box-shadow:0 -8px 35px rgba(0,0,0,.18);backdrop-filter:blur(16px)}.ydfb-tray-toggle{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.8rem;border:0!important;background:transparent!important;font-weight:700!important}.ydfb-tray-toggle .fa-chevron-up{transition:transform .2s}.ydfb-tray-toggle[aria-expanded=true] .fa-chevron-up{transform:rotate(180deg)}.ydfb-tray-body{max-height:min(58dvh,500px);overflow:auto;padding:.5rem 1.25rem 1rem}.ydfb-sound-row{display:grid;grid-template-columns:minmax(7rem,1fr) minmax(7rem,2fr) 3.4rem;align-items:center;gap:.75rem;padding:.5rem 0;font-size:.92rem}.ydfb-sound-row input{width:100%;accent-color:var(--ui-primary-background,#c6a368)}.ydfb-sound-row output{text-align:right;font-variant-numeric:tabular-nums}.ydfb-tray-body>[data-switch-room]{padding:.5rem .75rem;margin-top:.8rem}.ydfb-tray-body>[data-tray-timer]{padding:.5rem .75rem;margin:0 0 .5rem}.ydfb-save-status{min-height:1.2em;margin:.5rem 0 0;font-size:.8rem;opacity:.8}
.ydfb-library-modal{position:absolute;inset:0;z-index:3;overflow:auto;padding:clamp(4rem,8vw,6rem) clamp(1rem,6vw,6rem) 3rem;background:rgba(6,15,24,.88);backdrop-filter:blur(12px)}.ydfb-library-modal h2{color:#fff;margin:0 0 1.3rem}.ydfb-library-modal .ydfb-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff}.ydfb-library-modal .ydfb-card-open{border:0;background:transparent;text-align:left}.ydfb-library-modal .ydfb-card-cta{color:#fff}
.ydfb-effect{position:absolute;display:block;transform:translate(-50%,-50%);width:var(--effect-size);height:var(--effect-size);color:var(--effect-color)}.ydfb-effect--star{width:clamp(8px,calc(var(--effect-size) / 3),30px);height:clamp(8px,calc(var(--effect-size) / 3),30px);background:currentColor;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 9px currentColor);animation:ydfb-twinkle 5s ease-in-out infinite}.ydfb-effect--glow{background:radial-gradient(ellipse at center,var(--effect-color) 0%,transparent 72%);filter:blur(var(--effect-blur));opacity:.55;animation:ydfb-glow 6s ease-in-out infinite}.ydfb-shape--square.ydfb-effect--glow{background:linear-gradient(145deg,var(--effect-color),transparent 80%);width:var(--effect-size);height:var(--effect-size)}.ydfb-shape--rectangle.ydfb-effect--glow{background:linear-gradient(145deg,var(--effect-color),transparent 80%);width:calc(var(--effect-size) * 1.7);height:var(--effect-size)}.ydfb-effect--reflection{width:calc(var(--effect-size) * 1.8);height:calc(var(--effect-size) * .75);background:linear-gradient(180deg,var(--effect-color),transparent 85%);filter:blur(var(--effect-blur));opacity:.48;clip-path:polygon(12% 0,88% 0,70% 100%,30% 100%)}.ydfb-motion--wavy.ydfb-effect--reflection{animation:ydfb-wave 5s ease-in-out infinite}.ydfb-effect--fire{width:calc(var(--effect-size) * .75);height:var(--effect-size);border-radius:50% 50% 45% 45%;background:radial-gradient(ellipse at 50% 85%,#fff6cd 0%,var(--effect-color) 23%,rgba(255,94,18,.6) 52%,transparent 75%);filter:blur(calc(var(--effect-blur) / 2));animation:ydfb-flame 2.3s ease-in-out infinite}.ydfb-effect--fire i{position:absolute;left:calc(10% + var(--ember-number) * 12%);bottom:10%;width:4px;height:4px;border-radius:50%;background:var(--effect-color);box-shadow:0 0 7px currentColor;animation:ydfb-ember calc(2s + var(--ember-number) * .25s) linear infinite;animation-delay:calc(var(--ember-number) * -.32s)}
@keyframes ydfb-twinkle{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.85)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}@keyframes ydfb-flame{0%,100%{transform:translate(-50%,-50%) scale(1) rotate(-2deg)}50%{transform:translate(-50%,-50%) scale(1.07,.94) rotate(3deg)}}@keyframes ydfb-ember{0%{opacity:0;transform:translateY(0)}20%{opacity:.8}100%{opacity:0;transform:translateY(calc(var(--effect-size) * -1.8)) translateX(16px)}}@keyframes ydfb-wave{0%,100%{transform:translate(-50%,-50%) skewX(-3deg) scaleX(.95)}50%{transform:translate(-50%,-50%) skewX(3deg) scaleX(1.06)}}
.ydfb-overlay :focus-visible,.ydfb-library :focus-visible,.ydfb-launcher:focus-visible{outline:3px solid #fff;outline-offset:3px}.ydfb-library :focus-visible,.ydfb-launcher:focus-visible{outline-color:var(--link-color,currentColor)}
@media(max-width:600px){.ydfb-center{top:40%}.ydfb-tray-body{padding:.35rem .85rem 1rem}.ydfb-sound-row{grid-template-columns:1fr 2fr 2.5rem;gap:.4rem;font-size:.8rem}.ydfb-library-modal{padding-top:4.8rem}}
@media(prefers-reduced-motion:reduce){.ydfb-overlay,.ydfb-initial,.ydfb-card-image,.ydfb-countdown{transition:none}.ydfb-effect,.ydfb-effect i{animation:none!important}}
@keyframes ydfb-glow{0%,100%{opacity:.4;transform:translate(-50%,-50%) scale(.94)}50%{opacity:.62;transform:translate(-50%,-50%) scale(1.06)}}
/* The background and its effects share the same centered cover geometry. */
.ydfb-backdrop{transform:none}
.ydfb-effects{inset:auto}
.ydfb-effect--star{width:max(8px,calc(var(--effect-size) / 3));height:max(8px,calc(var(--effect-size) / 3))}
.ydfb-overlay.is-slow-closing{transition:opacity 2.5s ease-in-out}
.ydfb-center{transition:left .85s ease,top .85s ease,width .85s ease,transform .85s ease,padding .85s ease;z-index:3}
.ydfb-center.is-timing{left:clamp(1rem,3vw,2rem);top:clamp(1rem,3vw,2rem);width:auto;max-width:min(12rem,50vw);transform:none;padding:.3rem .5rem;border:1px solid rgba(255,255,255,.2);border-radius:var(--button-radius,.7rem);background:rgba(5,14,22,.38);backdrop-filter:blur(8px)}
.ydfb-center.is-timing .ydfb-countdown{display:flex;align-items:center;gap:.45rem}
.ydfb-center.is-timing .ydfb-countdown span{font-size:1rem;line-height:1.2}
.ydfb-center.is-timing .ydfb-countdown button{font-size:.68rem;padding:.2rem .35rem;border:0;background:transparent;white-space:nowrap}
.ydfb-controls-open{position:absolute;z-index:6;right:clamp(1rem,3vw,2rem);top:4.25rem;display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.48rem .8rem;border:1px solid rgba(255,255,255,.4);border-radius:var(--button-radius,.7rem);background:rgba(5,14,22,.5);color:#fff;font:inherit;font-size:.85rem;cursor:pointer;backdrop-filter:blur(9px);transition:opacity .3s,transform .3s}
.ydfb-controls-open[hidden]{display:none!important}
.ydfb-overlay.controls-open .ydfb-controls-open{opacity:0;pointer-events:none;transform:translateX(1rem)}
.ydfb-tray{position:absolute;z-index:7;inset:0 0 0 auto;left:auto;bottom:auto;width:min(370px,90vw);height:100%;transform:translateX(105%);border:0;border-left:1px solid rgba(255,255,255,.3);border-radius:0;background:rgba(8,19,30,.92);box-shadow:-10px 0 35px rgba(0,0,0,.23);opacity:0;pointer-events:none;transition:transform .45s ease,opacity .45s ease}
.ydfb-overlay.controls-open .ydfb-tray{transform:translateX(0);opacity:1;pointer-events:auto}
.ydfb-tray-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.2rem .7rem;border-bottom:1px solid rgba(255,255,255,.2)}
.ydfb-tray-head button{display:grid;place-items:center;min-width:40px;min-height:40px;padding:0}
.ydfb-tray-body{max-height:calc(100dvh - 4.4rem);overflow:auto;padding:.8rem 1.2rem 1.5rem}
.ydfb-sound-row{grid-template-columns:minmax(5rem,1fr) minmax(5rem,1.5fr) 3rem;gap:.55rem;min-height:3rem}
.ydfb-sound-row input{min-height:32px}
@media(max-width:600px){.ydfb-center.is-timing{top:1rem;left:1rem;max-width:calc(100vw - 5.5rem)}.ydfb-center.is-timing .ydfb-countdown{gap:.25rem}.ydfb-tray{width:min(360px,92vw)}.ydfb-tray-body{padding:.7rem 1rem 1.5rem}.ydfb-sound-row{grid-template-columns:minmax(5rem,1fr) minmax(6rem,1.5fr) 2.7rem;font-size:.84rem}.ydfb-controls-open{top:4rem;right:1rem}}
@media(prefers-reduced-motion:reduce){.ydfb-center,.ydfb-tray,.ydfb-controls-open{transition-duration:.01ms}}

/* Core form styles make every button full width; room controls are compact. */
.ydfb-overlay button.ydfb-controls-open{display:inline-flex;width:auto;max-width:max-content;min-width:0;min-height:40px;white-space:nowrap;padding:.38rem .62rem;font-size:.78rem;line-height:1.1;border-radius:999px}
.ydfb-overlay button.ydfb-close{width:2.7rem;min-width:2.7rem;max-width:2.7rem}
.ydfb-overlay .ydfb-countdown button,.ydfb-overlay .ydfb-timer-options button{width:auto;max-width:none}
.ydfb-overlay .ydfb-tray-head button{display:grid;place-items:center;width:40px;max-width:40px;min-width:40px;min-height:40px;flex:0 0 40px;border-radius:50%}
.ydfb-overlay .ydfb-tray-body>[data-tray-timer],.ydfb-overlay .ydfb-tray-body>[data-switch-room]{display:block;width:100%;margin:0;padding:.9rem .1rem;border:0;border-bottom:1px solid rgba(255,255,255,.22);border-radius:0;background:transparent;text-align:left;font-size:.88rem;box-shadow:none}
.ydfb-overlay .ydfb-tray-body>[data-switch-room]{margin-top:.35rem}
.ydfb-overlay .ydfb-tray-body>[data-tray-timer]:hover,.ydfb-overlay .ydfb-tray-body>[data-switch-room]:hover{background:rgba(255,255,255,.07)}

/* The script sizes this fixed room to Safari's visible viewport; the image may crop. */
.ydfb-overlay{right:auto;bottom:auto;width:100vw;height:100vh;overflow:hidden;overscroll-behavior:none;touch-action:none;font-family:var(--font-body,inherit);font-size:var(--font-body-size,16px);line-height:var(--font-body-line-height,1.5)}
.ydfb-stage{height:100%;min-height:0;overflow:clip}
.ydfb-loading-screen{position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 50% 38%,#1c5083 0%,#103861 48%,#081c35 100%);opacity:1;pointer-events:none;transition:opacity .7s ease}
.ydfb-loading-screen.is-ready{opacity:0}
.ydfb-initial{z-index:3}
.ydfb-initial [data-room-loading]{display:flex;align-items:center;justify-content:center;gap:.65rem;color:#eaf5ff;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.ydfb-initial [data-room-loading]::before{content:"";width:.9rem;height:.9rem;flex:0 0 .9rem;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:ydfb-loading-spin .9s linear infinite}
.ydfb-initial.is-ready [data-room-loading]::before{display:none}
.ydfb-initial .ydfb-retry-image{display:inline-flex;width:auto;max-width:100%;min-height:40px;margin:.5rem auto 0;padding:.5rem .9rem;border:1px solid rgba(255,255,255,.55);border-radius:var(--button-radius,.7rem);background:rgba(5,14,22,.65);color:#fff;font:inherit;cursor:pointer}
.ydfb-initial .ydfb-retry-image[hidden]{display:none!important}
@keyframes ydfb-loading-spin{to{transform:rotate(360deg)}}
.ydfb-backdrop{filter:none}
.ydfb-stage:after{background:rgba(2,8,15,var(--ydfb-scene-darkening,.1))}
.ydfb-tray{height:100%;max-height:100%;overflow:hidden}
.ydfb-tray-body{max-height:calc(100% - 4.4rem);overscroll-behavior:contain;touch-action:pan-y}
.ydfb-library-modal{overscroll-behavior:contain;touch-action:pan-y}
.ydfb-overlay button.ydfb-controls-open{top:clamp(1rem,3vw,2rem);right:calc(clamp(1rem,3vw,2rem) + 3.35rem);min-height:2.7rem}
.ydfb-overlay.controls-open button.ydfb-close{opacity:0;pointer-events:none}
@media(max-width:600px){.ydfb-overlay button.ydfb-controls-open{top:auto;bottom:calc(1rem + env(safe-area-inset-bottom));right:1rem}}

/* Glow and water reflections can be shaped independently. Ripple each water band sideways. */
.ydfb-effect--glow,.ydfb-shape--square.ydfb-effect--glow,.ydfb-shape--rectangle.ydfb-effect--glow{width:var(--effect-width,var(--effect-size));height:var(--effect-height,var(--effect-size))}
.ydfb-effect--reflection{width:var(--effect-width,calc(var(--effect-size) * 1.8));height:var(--effect-height,calc(var(--effect-size) * .75));background:transparent;opacity:.7;clip-path:none;overflow:hidden;mask-image:linear-gradient(180deg,#000 0%,#000 35%,transparent 100%)}
.ydfb-effect--reflection i{position:absolute;left:10%;top:calc(5% + var(--band-number) * 13%);width:80%;height:clamp(2px,calc(var(--effect-height) * .075),14px);border-radius:50%;background:linear-gradient(90deg,transparent 0%,currentColor 32%,currentColor 66%,transparent 100%);opacity:calc(.72 - var(--band-number) * .07);transform:translateX(0) scaleX(calc(1 - var(--band-number) * .055))}
.ydfb-motion--wavy.ydfb-effect--reflection{animation:none}
.ydfb-motion--wavy.ydfb-effect--reflection i{animation:ydfb-ripple calc(2.8s + var(--band-number) * .37s) ease-in-out infinite alternate;animation-delay:calc(var(--band-number) * -.48s)}
.ydfb-effect--fire{filter:blur(var(--effect-blur))}
.ydfb-effect--star{filter:blur(calc(var(--effect-blur) * .25)) drop-shadow(0 0 9px currentColor)}
.ydfb-effect--star{animation-duration:var(--effect-cycle,5s);animation-delay:var(--effect-delay,0s)}
.ydfb-effect--glow{animation-duration:var(--effect-cycle,6s);animation-delay:var(--effect-delay,0s)}
@keyframes ydfb-ripple{from{transform:translateX(calc(0px - var(--wave-shift,20px)))}to{transform:translateX(var(--wave-shift,20px))}}
@media(prefers-reduced-motion:reduce){.ydfb-motion--wavy.ydfb-effect--reflection i{animation:none}}

/* Snow covers the full image width and fades at both vertical edges. */
.ydfb-effect--snow{left:50%!important;width:100%;height:var(--effect-height,100%);transform:translateX(-50%);overflow:hidden;pointer-events:none;opacity:var(--effect-opacity,.7);color:var(--effect-color,#c9e8ff);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 84%,transparent 100%)}
.ydfb-effect--snow i{position:absolute;left:var(--flake-x);top:-5%;width:clamp(2px,calc(var(--effect-size) / 12),7px);height:clamp(2px,calc(var(--effect-size) / 12),7px);border-radius:50%;background:currentColor;box-shadow:0 0 5px currentColor;animation:ydfb-snowfall var(--flake-duration,9s) linear infinite;animation-delay:var(--flake-delay,0s)}
@keyframes ydfb-snowfall{0%{top:-5%;opacity:0;transform:translateX(0) scale(var(--flake-scale,1))}12%{opacity:.95}85%{opacity:.95}100%{top:105%;opacity:0;transform:translateX(28px) scale(var(--flake-scale,1))}}
@media(prefers-reduced-motion:reduce){.ydfb-effect--snow i{top:var(--flake-y,50%);opacity:.65;transform:scale(var(--flake-scale,1))}}

/* A visible square reflection with independently sized horizontal ripples. */
.ydfb-effect--reflection{width:var(--effect-width,var(--effect-size));height:var(--effect-height,var(--effect-size));overflow:visible;clip-path:none;background:none;opacity:var(--effect-opacity,.85);filter:none;-webkit-mask-image:none;mask-image:none}
.ydfb-effect--reflection:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 18%,var(--effect-color) 0%,transparent 74%);opacity:.43;filter:blur(var(--effect-blur,4px));pointer-events:none}
.ydfb-effect--reflection i{position:absolute;top:calc(13% + var(--band-number) * var(--band-step,12%));height:max(8px,9%);background:linear-gradient(90deg,transparent 0%,currentColor 19%,#fff5d6 47%,currentColor 78%,transparent 100%);opacity:.8;clip-path:polygon(0 33%,8% calc(33% - var(--wave-crest,14%)),16% 33%,24% calc(33% + var(--wave-crest,14%)),32% 33%,40% calc(33% - var(--wave-crest,14%)),48% 33%,56% calc(33% + var(--wave-crest,14%)),64% 33%,72% calc(33% - var(--wave-crest,14%)),80% 33%,88% calc(33% + var(--wave-crest,14%)),100% 33%,100% 68%,88% calc(68% + var(--wave-crest,14%)),80% 68%,72% calc(68% - var(--wave-crest,14%)),64% 68%,56% calc(68% + var(--wave-crest,14%)),48% 68%,40% calc(68% - var(--wave-crest,14%)),32% 68%,24% calc(68% + var(--wave-crest,14%)),16% 68%,8% calc(68% - var(--wave-crest,14%)),0 68%);filter:blur(var(--ripple-blur,1px));transform:none;box-shadow:0 0 7px currentColor}
.ydfb-motion--wavy.ydfb-effect--reflection i{animation:ydfb-water-ripple 2s ease-in-out infinite alternate}
@keyframes ydfb-water-ripple{from{transform:translateX(calc(0px - var(--wave-shift,20px))) scaleX(.92)}to{transform:translateX(var(--wave-shift,20px)) scaleX(1.08)}}

/* Falling leaves share snow's full-image placement but vary shape and depth. */
.ydfb-effect--leaves{left:50%!important;width:100%;height:var(--effect-height,100%);transform:translateX(-50%);overflow:hidden;pointer-events:none;opacity:var(--effect-opacity,.7);color:var(--effect-color,#c8783d);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 83%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 83%,transparent 100%)}
.ydfb-effect--leaves i{position:absolute;left:var(--flake-x);top:-8%;width:var(--leaf-size,16px);height:var(--leaf-size,16px);background:url("leaf-maple.svg") center/contain no-repeat;animation:ydfb-leaf-fall var(--flake-duration,9s) linear infinite;animation-delay:var(--flake-delay,0s)}
.ydfb-leaf--oak i{background-image:url("leaf-oak.svg")}
.ydfb-leaf--birch i{background-image:url("leaf-birch.svg")}
.ydfb-effect--leaves i[data-depth=near]{filter:blur(1.8px) hue-rotate(-12deg);width:var(--leaf-near-size,25px);height:var(--leaf-near-size,25px)}
.ydfb-effect--leaves i[data-depth=far]{filter:blur(.5px) hue-rotate(20deg);width:var(--leaf-far-size,10px);height:var(--leaf-far-size,10px);opacity:.7}
.ydfb-effect--leaves i:nth-child(3n):not([data-depth=near]):not([data-depth=far]){filter:hue-rotate(20deg)}
@keyframes ydfb-leaf-fall{0%{top:-8%;opacity:0;transform:translateX(0) rotate(0deg) scale(var(--flake-scale,1))}12%{opacity:.9}83%{opacity:.9}100%{top:108%;opacity:0;transform:translateX(75px) rotate(280deg) scale(var(--flake-scale,1))}}

/* A soft silhouette drifts across an image-anchored patch. */
.ydfb-effect--shadow{width:var(--effect-width,var(--effect-size));height:var(--effect-height,var(--effect-size));border-radius:45%;background:radial-gradient(ellipse at 36% 42%,var(--effect-color) 0%,transparent 72%),radial-gradient(ellipse at 74% 62%,var(--effect-color) 0%,transparent 67%);opacity:var(--effect-opacity,.35);filter:blur(var(--effect-blur,12px));animation:ydfb-shadow-drift 13s ease-in-out infinite alternate}
@keyframes ydfb-shadow-drift{from{transform:translate(-52%,-50%) rotate(-2deg)}to{transform:translate(-48%,-50%) rotate(2deg)}}

/* Layered flame stays near its anchor; embers rise briefly and fade. */
.ydfb-effect--fire{width:var(--effect-size);height:var(--effect-size);border-radius:0;background:radial-gradient(ellipse at 50% 85%,var(--effect-color) 0%,#f8802244 38%,transparent 68%);opacity:var(--effect-opacity,.8);filter:none;animation:none}
.ydfb-effect--fire:before,.ydfb-effect--fire:after{content:"";position:absolute;inset:0;background:url("fire-flame.svg") center bottom/contain no-repeat;transform-origin:50% 88%;filter:none;animation:ydfb-fire-layer 3.7s ease-in-out infinite alternate}
.ydfb-effect--fire:after{inset:22% 21% 2%;opacity:.7;filter:brightness(1.25) saturate(1.2);animation-duration:2.9s;animation-delay:-1.3s}
.ydfb-effect--fire i{z-index:1;position:absolute;bottom:12%;width:clamp(2px,calc(var(--effect-size) * .025),4px);height:clamp(2px,calc(var(--effect-size) * .025),4px);border-radius:50%;background:#ffe09b;box-shadow:0 0 5px #ff9d40;animation:ydfb-ember-real var(--ember-lifetime,3s) ease-out infinite}
.ydfb-effect--fire[data-no-embers=true] i{display:none}
@keyframes ydfb-fire-layer{from{transform:translateX(-1.5%) scale(.99,1)}to{transform:translateX(1.5%) scale(1.01,.99)}}
@keyframes ydfb-ember-real{0%{opacity:0;transform:translate(0,0) scale(.4)}16%{opacity:.9}55%{opacity:.55}100%{opacity:0;transform:translate(var(--ember-drift,8px),calc(0px - var(--effect-size))) scale(.2)}}
@media(prefers-reduced-motion:reduce){.ydfb-effect--reflection i,.ydfb-effect--leaves i,.ydfb-effect--shadow,.ydfb-effect--fire,.ydfb-effect--fire:before,.ydfb-effect--fire:after,.ydfb-effect--fire i{animation:none!important}.ydfb-effect--leaves i{top:var(--flake-y,50%);opacity:.65;transform:scale(var(--flake-scale,1))}}

/* Scene-sized canvas replaces the illustrated flame and CSS water bands. */
.ydfb-effect--fire,.ydfb-effect--reflection{background:none;filter:none;opacity:1;overflow:visible}
.ydfb-effect--fire:before,.ydfb-effect--fire:after,.ydfb-effect--reflection:before{content:none}
.ydfb-scene-canvas{display:block;width:100%;height:100%;pointer-events:none}

/* Six supplied crystal designs, cropped from the unchanged horizontal sheet. */
.ydfb-effect--snow i{width:clamp(5px,calc(var(--effect-size) / 4),24px);height:clamp(6px,calc(var(--effect-size) * .29),28px);border-radius:0;background:url("snow-sprites.png") var(--snow-view,0%) 50% / 600% 172.38% no-repeat;box-shadow:none;animation-name:ydfb-crystal-fall}
.ydfb-effect--snow i:after{content:"";position:absolute;inset:0;background:var(--effect-color,#c9e8ff);opacity:.28;-webkit-mask:url("snow-sprites.png") var(--snow-view,0%) 50% / 600% 172.38% no-repeat;mask:url("snow-sprites.png") var(--snow-view,0%) 50% / 600% 172.38% no-repeat}
.ydfb-effect--snow i[data-depth=near]{filter:blur(.7px)}
.ydfb-effect--snow i[data-depth=far]{filter:blur(.25px)}
@keyframes ydfb-crystal-fall{0%{top:-6%;opacity:0;transform:translateX(0) rotate(var(--snow-turn,0deg)) scale(var(--flake-scale,1))}12%{opacity:.9}85%{opacity:.9}100%{top:106%;opacity:0;transform:translateX(28px) rotate(calc(var(--snow-turn,0deg) + 110deg)) scale(var(--flake-scale,1))}}
@media(prefers-reduced-motion:reduce){.ydfb-effect--snow i{animation:none!important;top:var(--flake-y,50%);opacity:.65;transform:rotate(var(--snow-turn,0deg)) scale(var(--flake-scale,1))}}

/* The supplied maple sheet contains six photographed views, not timed frames. */
.ydfb-effect--leaves.ydfb-leaf--maple i{background-image:url("leaf-maple-sprites.png");background-size:600% 172.38%;background-position:var(--leaf-view,0%) 50%;animation-name:ydfb-maple-fall}
@keyframes ydfb-maple-fall{0%{top:-8%;opacity:0;transform:translateX(0) rotate(var(--leaf-turn,0deg)) scale(var(--flake-scale,1))}12%{opacity:.9}83%{opacity:.9}100%{top:108%;opacity:0;transform:translateX(75px) rotate(calc(var(--leaf-turn,0deg) + 280deg)) scale(var(--flake-scale,1))}}
@media(prefers-reduced-motion:reduce){.ydfb-effect--leaves.ydfb-leaf--maple i{animation:none!important;top:var(--flake-y,50%);opacity:.65;transform:rotate(var(--leaf-turn,0deg)) scale(var(--flake-scale,1))}}

.ydfb-preview-invite[hidden]{display:none!important}
.ydfb-preview-invite{box-sizing:border-box;position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(28rem,calc(100vw - 2rem));z-index:2147482999;padding:1rem 1.2rem;border-radius:1rem;box-shadow:0 .5rem 2rem #0003}
.ydfb-preview-invite p{margin:0 0 .75rem}.ydfb-preview-invite .chip{width:auto;display:inline-flex;margin:.2rem .3rem .2rem 0}
.ydfb-tray-body>[data-tray-timer]:disabled{opacity:.7;cursor:default}
