/* Approved moon-boat scene; native dialog lifecycle remains in breath.js. */
.breath-dialog{position:fixed;inset:0;width:min(420px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #d7bcc22b;border-radius:30px;background:#705b69;color:#fff1e1;overflow:hidden;box-shadow:0 24px 70px #241b2c3b;color-scheme:dark}
.breath-dialog:not([open]){display:none}
.breath-dialog::backdrop{background:#282130a8;backdrop-filter:blur(4px);animation:breath-backdrop-in .38s ease both}
.breath-dialog.is-closing::backdrop{animation:breath-backdrop-out .22s ease both}
.breath-dialog .breath-panel{position:relative;width:100%;max-height:calc(100dvh - 42px);padding:50px 24px 26px;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;text-align:center;border:0;border-radius:0;background:none;box-shadow:none;scrollbar-width:thin;scrollbar-color:#bda1ad transparent}
.breath-dialog .breath-close{position:absolute;z-index:2;top:10px;right:10px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#f0d9d7;background:transparent;transition:background .2s ease}
.breath-dialog .breath-close:hover{background:#ffffff0d}
.breath-close svg{width:20px;height:20px;stroke-width:1.5}
.breath-dialog h2{font-family:'LXGW WenKai','Kaiti SC',STKaiti,serif;font-size:32px;line-height:1.3;font-weight:400;letter-spacing:.02em;margin:0 0 23px;color:#fff0dc;outline:none}
.breath-dialog #breathDesc{font-size:16px;line-height:1.85;margin:0;color:#f0dcd8}
.breath-dialog .breath-stage{--boat-size:320px;position:relative;isolation:isolate;height:286px;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;margin:19px -8px 7px}
.breath-dialog .breath-boat{position:relative;z-index:1;display:block;width:var(--boat-size);height:var(--boat-size);max-width:100%;object-fit:contain;filter:none;transform-origin:50% 65%;animation:breath-float-rest 8s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
.breath-dialog .breath-water{position:absolute;z-index:0;left:50%;top:calc(50% + var(--boat-size)*.4);width:calc(var(--boat-size)*.9);aspect-ratio:2/1;transform:translate(-50%,-50%);pointer-events:none}
.breath-dialog .breath-ripple{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:breath-water-ring 8s linear infinite;will-change:transform,opacity}
.breath-dialog .breath-ripple-second{animation-delay:1.4s}
.breath-dialog .breath-under{font-size:14px;line-height:1.8;letter-spacing:.02em;margin:0 0 21px;color:#f0dcd8}
.breath-dialog .breath-end{display:block;width:100%;min-height:52px;margin:0;padding:12px 18px;border:1px solid #f7e7d0;border-radius:18px;background:#f8ecdd;color:#715365;font-size:16px;line-height:1.6;transition:background .2s ease,transform .2s ease}
.breath-dialog .breath-end:hover{background:#fff5e9}
.breath-dialog .breath-end:active{transform:scale(.985)}
.breath-dialog :is(.breath-close,.breath-end):focus-visible{outline:2px solid #fff0db;outline-offset:3px}
.breath-invite{border-radius:16px;padding:12px 16px;font-size:15px}
body.dimmed .breath-dialog{background:#4f4054}
body.dimmed .breath-dialog .breath-end{background:#dac8cd;border-color:#dac8cd;color:#514154}
body.dimmed .breath-dialog .breath-boat{filter:brightness(.87)}
body.dimmed .breath-dialog .breath-ripple{filter:brightness(.87)}
@keyframes breath-float-rest{0%,100%{transform:translateY(5px) rotate(1deg)}37.5%{transform:translateY(-5px) rotate(-2deg)}}
@keyframes breath-water-ring{0%{transform:scale(.72);opacity:0}16%{opacity:.34}65%{opacity:.18}100%{transform:scale(1.24);opacity:0}}
@keyframes breath-backdrop-in{from{background:#28213000;backdrop-filter:blur(0)}to{background:#282130a8;backdrop-filter:blur(4px)}}
@keyframes breath-backdrop-out{from{background:#282130a8;backdrop-filter:blur(4px)}to{background:#28213000;backdrop-filter:blur(0)}}
@media(max-width:365px){
  .breath-dialog{width:calc(100% - 24px);border-radius:26px}
  .breath-dialog .breath-panel{padding:45px 20px 22px}
  .breath-dialog h2{font-size:28px}
  .breath-dialog .breath-stage{--boat-size:280px;height:250px}
}
@media(max-height:720px){
  .breath-dialog .breath-panel{padding-top:40px}
  .breath-dialog h2{margin-bottom:16px}
  .breath-dialog .breath-stage{--boat-size:250px;height:220px;margin-block:12px}
  .breath-dialog .breath-under{margin-bottom:16px}
}
@media(max-height:650px){
  .breath-dialog .breath-panel{padding-top:36px;padding-bottom:20px}
  .breath-dialog h2{font-size:28px;margin-bottom:12px}
  .breath-dialog .breath-stage{--boat-size:200px;height:170px}
  .breath-dialog .breath-under{margin-bottom:14px}
}
@media(prefers-reduced-motion:reduce){
  .breath-dialog .breath-boat,.breath-dialog .breath-ripple,.breath-dialog::backdrop{animation:none}
  .breath-dialog .breath-boat{transform:none}
  .breath-dialog .breath-ripple{transform:scale(1);opacity:.24}
  .breath-dialog .breath-ripple-second{transform:scale(1.17);opacity:.14}
  .breath-dialog :is(.breath-close,.breath-end){transition:none}
}
