.dwfr-showcase{
  --dwfr-ink:#183747;
  --dwfr-blue:#167e9e;
  --dwfr-pale:#e8f4fa;
  --dwfr-accent:#b8dce9;
  color:var(--dwfr-ink);
  max-width:100%;
  box-sizing:border-box;
  font:inherit;
  position:relative;
  padding:clamp(1.15rem,3vw,2.1rem) clamp(.75rem,2vw,1.4rem);
  border:1px solid #b8dce9;
  border-radius:28px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(1100px 360px at 50% -5%, rgba(255,255,255,.68), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, #f4fcff 0%, #e9f9fb 44%, #def3f5 100%);
  box-shadow:0 20px 44px rgba(24,55,71,.08);
}
.dwfr-showcase *{box-sizing:border-box}
.dwfr-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.36;
  background:
    linear-gradient(115deg, rgba(255,255,255,.48) 0 5%, rgba(255,255,255,0) 8% 18%, rgba(255,255,255,.3) 21% 24%, rgba(255,255,255,0) 28% 100%);
  z-index:0;
}
.dwfr-shell{max-width:1100px;margin:0 auto;position:relative;z-index:1;container-type:inline-size}
.dwfr-shell::before,.dwfr-shell::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  pointer-events:none;
  z-index:0;
}
.dwfr-shell::before{
  top:-.6rem;
  height:180px;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.65) 0 20px, rgba(255,255,255,0) 21px),
    radial-gradient(circle at 88% 14%, rgba(255,255,255,.45) 0 16px, rgba(255,255,255,0) 17px),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.5) 0 90px, rgba(255,255,255,0) 91px);
  opacity:.48;
}
.dwfr-shell::after{
  bottom:-1.35rem;
  height:120px;
  background:
    radial-gradient(120px 42px at 7% 100%, rgba(22,126,158,.11) 0 100%, rgba(22,126,158,0) 101%),
    radial-gradient(160px 54px at 26% 100%, rgba(22,126,158,.12) 0 100%, rgba(22,126,158,0) 101%),
    radial-gradient(170px 50px at 53% 100%, rgba(22,126,158,.1) 0 100%, rgba(22,126,158,0) 101%),
    radial-gradient(140px 46px at 79% 100%, rgba(22,126,158,.12) 0 100%, rgba(22,126,158,0) 101%),
    radial-gradient(130px 42px at 95% 100%, rgba(22,126,158,.09) 0 100%, rgba(22,126,158,0) 101%);
  opacity:.8;
}
.dwfr-title{font-size:clamp(1.5rem,3.5vw,2.3rem);line-height:1.2;margin:0 0 .5rem;color:inherit}
.dwfr-intro{margin:0 0 1.4rem;line-height:1.55}
.dwfr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;position:relative;z-index:1}
.dwfr-card{display:flex;flex-direction:column;gap:.45rem;background:rgba(255,255,255,.97);color:#183747;border:1px solid #b8dce9;border-left:4px solid #167e9e;border-radius:14px;padding:1.1rem;min-width:0;overflow-wrap:anywhere;box-shadow:0 10px 24px rgba(24,55,71,.06);backdrop-filter:blur(2px)}
.dwfr-card-head{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;align-items:baseline}
.dwfr-source{font-size:.77rem;background:#e8f4fa;border-radius:20px;padding:.18rem .55rem;white-space:nowrap}
.dwfr-stars{color:#a66900;letter-spacing:.09em;font-size:1.15rem;margin:0}
.dwfr-date,.dwfr-activities,.dwfr-note{color:#52717f;font-size:.83rem;margin:0}
.dwfr-body{line-height:1.55;flex:1}
.dwfr-body p{margin:.35rem 0 .8rem}
.dwfr-link{font-weight:650;color:#086c8d;text-decoration:underline}
.dwfr-link:focus-visible,.dwfr-source-links a:focus-visible{outline:3px solid #134f7b;outline-offset:3px}
.dwfr-featured{font-size:.78rem;font-weight:650;color:#225d76}
.dwfr-source-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem;position:relative;z-index:1}
.dwfr-source-links a{display:inline-block;border:1px solid #167e9e;border-radius:8px;padding:.55rem .8rem;color:#0b6281;text-decoration:none;font-weight:650;background:rgba(255,255,255,.82)}
.dwfr-empty{background:rgba(255,255,255,.76);border-radius:10px;padding:1rem;position:relative;z-index:1}
.dwfr-showcase a:hover{text-decoration:underline}
@media(prefers-color-scheme:dark){.dwfr-card{background:#fff}}
@media(max-width:480px){.dwfr-card{padding:.9rem}.dwfr-grid{grid-template-columns:1fr}.dwfr-showcase{border-radius:20px}}

/* Never exceed three review cards per row, even on full-width WordPress pages. */
@container (max-width: 770px){.dwfr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width: 520px){.dwfr-grid{grid-template-columns:minmax(0,1fr)}}

/* Expandable excerpts: text remains fully available when JavaScript is disabled. */
.dwfr-review-text{min-width:0;overflow-wrap:anywhere}
.dwfr-review-text p:last-child{margin-bottom:0}
.dwfr-review-text.dwfr-is-collapsed{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;max-height:calc(1.55em * 4)}
.dwfr-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.dwfr-toggle{font:inherit;font-size:.9rem;font-weight:650;line-height:1.35;background:none;border:0;border-radius:4px;padding:.3rem .15rem;margin-top:auto;color:#086c8d;cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-align:left}
.dwfr-toggle:hover{color:#064d69}
.dwfr-toggle:focus-visible{outline:3px solid #134f7b;outline-offset:3px}
.dwfr-toggle[hidden]{display:none!important}
.dwfr-card{height:100%}


/* v0.2.6: Calm tropical frame. Decorative life is sparse and separate from reviews. */
.dwfr-showcase{background:radial-gradient(ellipse at 50% -10%,rgba(255,255,255,.96),transparent 67%),linear-gradient(180deg,#ecfbff 0%,#e2f7f8 60%,#d2edef 100%);border-color:#b5dfe5}
.dwfr-showcase::before{opacity:.25;animation:none!important}
.dwfr-shell::after{display:none}
.dwfr-card{background:#fff;position:relative;z-index:2}
.dwfr-grid,.dwfr-source-links,.dwfr-title,.dwfr-intro,.dwfr-empty{position:relative;z-index:2}
.dwfr-reef-scene{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.dwfr-reef-scene::after{content:"";position:absolute;inset:auto 0 0;height:106px;background:url("reef-floor.svg") center bottom / 100% 100% no-repeat;opacity:.24}
.dwfr-visitor{display:block;position:absolute;z-index:0;left:calc(100% + 15px);width:100px;height:75px;background-position:center;background-repeat:no-repeat;background-size:contain;opacity:0;pointer-events:none}
.dwfr-visitor-fish{top:10%;width:86px;height:55px;background-image:url("reef-fish.svg")}
.dwfr-visitor-turtle{top:32%;width:124px;height:80px;background-image:url("reef-turtle.svg");transform:scaleX(-1)}
.dwfr-visitor-shark{top:58%;width:128px;height:69px;background-image:url("reef-shark.svg")}
.dwfr-visitor-jelly{top:78%;width:66px;height:90px;background-image:url("reef-jelly.svg")}
/* Fixed-position streams within the full review section, not below its bottom.
   Ring outlines remain visible on pale blue without overwhelming the cards. */
.dwfr-reef-bubbles{
 position:absolute;top:0;bottom:0;width:58px;opacity:.65;pointer-events:none;
 background-image:
  radial-gradient(circle at 20px 30px,transparent 5px,rgba(17,113,154,.53) 6px,rgba(17,113,154,.53) 7px,transparent 8px),
  radial-gradient(circle at 42px 115px,transparent 8px,rgba(17,113,154,.34) 9px,rgba(17,113,154,.34) 10px,transparent 11px),
  radial-gradient(circle at 13px 195px,transparent 3px,rgba(17,113,154,.5) 4px,rgba(17,113,154,.5) 5px,transparent 6px);
 background-repeat:repeat-y;
 background-size:58px 270px;
 background-position:0 0;
}
.dwfr-reef-bubbles-one{left:6px}
.dwfr-reef-bubbles-two{right:6px;background-position:0 -108px}
/* Only one visiting animal is visible in any 18-second interval. Each crosses right to left. */
@media(prefers-reduced-motion:no-preference){
 .dwfr-visitor{animation:dwfr-visit 72s linear infinite both}
 .dwfr-visitor-fish{animation-delay:0s}
 .dwfr-visitor-turtle{animation-delay:-18s}
 .dwfr-visitor-shark{animation-delay:-36s}
 .dwfr-visitor-jelly{animation-delay:-54s}
 .dwfr-reef-bubbles-one{animation:dwfr-soft-rise 14s linear infinite}
 .dwfr-reef-bubbles-two{animation:dwfr-soft-rise 18s linear infinite -9s}
}
@keyframes dwfr-visit{
 0%{left:calc(100% + 15px);opacity:0}
 1.5%{opacity:.48}
 16%{opacity:.48}
 23%{left:-170px;opacity:0}
 23.01%,100%{left:-170px;opacity:0}
}
@keyframes dwfr-soft-rise{from{background-position-y:0px}to{background-position-y:-270px}}
@media(max-width:799px){.dwfr-visitor{display:none}.dwfr-reef-scene::after{height:68px;opacity:.16}.dwfr-reef-bubbles{opacity:.44}}
@media(prefers-reduced-motion:reduce){.dwfr-visitor,.dwfr-reef-bubbles{animation:none!important}.dwfr-visitor{display:none}}
@media print{.dwfr-reef-scene{display:none!important}.dwfr-showcase{background:#fff!important;box-shadow:none}.dwfr-review-text.dwfr-is-collapsed{display:block;overflow:visible;max-height:none}.dwfr-toggle{display:none!important}}

/* v0.2.8: Slightly deeper ocean blues, preserving readable white cards. */
.dwfr-showcase{
  background:
    radial-gradient(ellipse at 50% -8%,rgba(235,250,255,.93),rgba(235,250,255,0) 65%),
    linear-gradient(180deg,#d7eef8 0%,#b4dce9 36%,#8dbdd1 70%,#5d98b3 100%);
  border-color:#78adc2;
  box-shadow:0 20px 44px rgba(13,68,99,.16);
}
.dwfr-showcase::before{opacity:.19}
.dwfr-reef-scene::after{opacity:.32}
.dwfr-reef-bubbles{
  opacity:.83;
  background-image:
    radial-gradient(circle at 20px 30px,transparent 5px,rgba(245,253,255,.83) 6px,rgba(245,253,255,.83) 7px,transparent 8px),
    radial-gradient(circle at 42px 115px,transparent 8px,rgba(224,248,255,.72) 9px,rgba(224,248,255,.72) 10px,transparent 11px),
    radial-gradient(circle at 13px 195px,transparent 3px,rgba(241,253,255,.84) 4px,rgba(241,253,255,.84) 5px,transparent 6px);
}
.dwfr-visitor{filter:drop-shadow(0 2px 2px rgba(8,52,78,.08))}
@media(max-width:799px){.dwfr-reef-bubbles{opacity:.56}}
@media print{.dwfr-showcase{background:#fff!important}}

/* v0.2.9: Scoped visitor display preferences. */
.dwfr-controls{display:flex;justify-content:flex-end;position:relative;z-index:4;margin:-.2rem 0 .9rem}
.dwfr-settings-open{font:inherit;font-size:.88rem;font-weight:650;color:#0a4765;background:rgba(255,255,255,.92);border:1px solid #6b9db3;border-radius:30px;padding:.4rem .8rem;cursor:pointer}
.dwfr-settings-open:hover{background:#fff}
.dwfr-showcase button:focus-visible,.dwfr-showcase input:focus-visible{outline:3px solid #ffbd59;outline-offset:3px}
.dwfr-settings-panel[hidden]{display:none!important}
.dwfr-settings-panel{position:fixed;inset:0;background:rgba(4,27,43,.72);z-index:999999;display:flex;align-items:center;justify-content:center;padding:1rem;overflow-y:auto}
.dwfr-settings-card{width:min(100%,430px);max-height:calc(100vh - 2rem);overflow-y:auto;background:#fff;color:#183747;border-radius:16px;padding:1.25rem;box-shadow:0 15px 60px rgba(0,0,0,.3)}
.dwfr-settings-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dwfr-settings-top h3{margin:0;font-size:1.25rem;color:#183747}
.dwfr-settings-close{background:#e8f4fa;color:#183747;border:1px solid #9dbaca;border-radius:8px;padding:.32rem .6rem;cursor:pointer}
.dwfr-settings-card fieldset{border:0;padding:0;margin:1.1rem 0 0;display:grid;gap:.5rem}
.dwfr-settings-card legend{font-weight:700;margin-bottom:.45rem}
.dwfr-settings-card label{display:flex;align-items:center;gap:.6rem;font-size:.97rem;cursor:pointer}
.dwfr-settings-card input{accent-color:#167e9e}
.dwfr-motion-label{margin-top:1.2rem}
.dwfr-settings-note{font-size:.83rem;color:#4e6573;line-height:1.4;margin:1rem 0 0}
.dwfr-rating-numeric{font-size:.78rem;color:#526775;margin-left:.65rem;letter-spacing:0;white-space:nowrap;font-weight:600}
.dwfr-rating-symbols{letter-spacing:.04em;white-space:nowrap;display:inline-block}
.dwfr-showcase[data-dwfr-rating="mixed"] .dwfr-rating-symbols,.dwfr-showcase[data-dwfr-rating="starfish"] .dwfr-rating-symbols{font-size:1.05rem}
.dwfr-showcase[data-dwfr-theme="deep"]{background:radial-gradient(ellipse at 50% -10%,rgba(102,181,211,.45),transparent 63%),linear-gradient(180deg,#175478 0%,#0b3a60 55%,#072941 100%);border-color:#397d9a}
.dwfr-showcase[data-dwfr-theme="deep"] .dwfr-settings-open{background:#ecfaff;color:#0a4765}
.dwfr-showcase[data-dwfr-theme="deep"] .dwfr-reef-bubbles{opacity:.9}
.dwfr-showcase[data-dwfr-theme="contrast"]{background:#0a1521!important;border:3px solid #fff;box-shadow:none;color:#fff}
.dwfr-showcase[data-dwfr-theme="contrast"] .dwfr-card{border:2px solid #101820;border-left:5px solid #000;box-shadow:none;background:#fff}
.dwfr-showcase[data-dwfr-theme="contrast"] .dwfr-settings-open{background:#fff;color:#000;border:2px solid #000}
.dwfr-showcase[data-dwfr-theme="contrast"] .dwfr-reef-scene{display:none!important}
.dwfr-showcase[data-dwfr-theme="contrast"] .dwfr-rating-numeric{color:#111}
.dwfr-showcase[data-dwfr-motion="off"] .dwfr-reef-scene{display:none!important}
@media(prefers-reduced-motion:reduce){.dwfr-reef-scene{display:none!important}}
@media print{.dwfr-controls,.dwfr-settings-panel{display:none!important}}
