:root{--somatic-bg: #0e1c19;--somatic-ring: #9fbdb2;--somatic-ring-glow: rgba(159, 189, 178, .28);--somatic-text: #eaf1ed;--somatic-dim: #80938b;--somatic-accent: #d9a24b;--somatic-ring-size: 168px;--somatic-ease: cubic-bezier(.4, 0, .2, 1)}.somatic{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:var(--somatic-text);text-align:center;-webkit-user-select:none;user-select:none}.somatic-breath{min-height:260px}.somatic-ring{position:relative;width:var(--somatic-ring-size);height:var(--somatic-ring-size);border-radius:50%;background:radial-gradient(circle,var(--somatic-ring-glow),transparent 70%);border:1.5px solid var(--somatic-ring);box-shadow:0 0 0 1px var(--somatic-ring-glow) inset,0 0 42px -6px var(--somatic-ring-glow);transform:scale(.42);transition:transform .9s var(--somatic-ease),box-shadow .9s var(--somatic-ease);will-change:transform}.somatic-ring:before{content:"";position:absolute;inset:-16px;border-radius:50%;border:1px solid var(--somatic-ring-glow);transform:inherit;transition:transform 1.7s var(--somatic-ease),opacity 1.7s var(--somatic-ease);opacity:.6;pointer-events:none}.somatic-ring:after{content:"";position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,var(--somatic-accent, var(--somatic-ring-glow)),transparent 72%);opacity:.22;animation:somaticShimmer 7s ease-in-out infinite;pointer-events:none}@keyframes somaticShimmer{0%,to{opacity:.14;transform:scale(.92)}50%{opacity:.32;transform:scale(1.05)}}.somatic-label{font-size:1.15rem;letter-spacing:.02em;color:var(--somatic-text);min-height:1.5em}.somatic-ground{min-height:260px;gap:18px}.somatic-count{font-size:3.4rem;font-weight:300;line-height:1;color:var(--somatic-accent)}.somatic-prompt{font-size:1.3rem;line-height:1.4;max-width:22ch;color:var(--somatic-text)}.somatic-next{margin-top:8px;padding:14px 34px;min-height:48px;border-radius:100px;border:1px solid var(--somatic-ring);background:transparent;color:var(--somatic-text);font:inherit;font-size:1rem;cursor:pointer}.somatic-next:active{transform:scale(.98)}.somatic-body{min-height:280px;gap:18px}.somatic-body-field{position:relative;width:min(240px,70vw);height:min(240px,70vw);display:flex;align-items:center;justify-content:center}.somatic-body-orb{position:relative;width:58%;height:58%;border-radius:50%;transform:scale(.7);transition:transform .35s var(--somatic-ease),opacity .35s var(--somatic-ease)}.somatic-body-orb:before{content:"";position:absolute;inset:-20%;border-radius:50%;background:inherit;filter:blur(6px);opacity:.5;transform:inherit;transition:transform 1.1s var(--somatic-ease),opacity 1.1s var(--somatic-ease)}.somatic-body--cold .somatic-body-orb{background:radial-gradient(circle at 40% 35%,rgba(210,235,240,.95),rgba(90,150,170,.35) 55%,transparent 70%);box-shadow:0 0 40px #8cc8dc59}.somatic-body--bilateral .somatic-body-orb{background:radial-gradient(circle at 50% 50%,rgba(217,162,75,.35),transparent 70%);width:28%;height:28%}.somatic-body--warmth .somatic-body-orb{background:radial-gradient(circle at 45% 40%,rgba(255,200,140,.9),rgba(192,106,92,.35) 55%,transparent 72%);box-shadow:0 0 48px #d98c5a66}.somatic-tap{position:absolute;top:50%;width:42px;height:42px;margin-top:-21px;border-radius:50%;border:1.5px solid rgba(234,241,237,.35);opacity:.35;transition:opacity .2s,transform .2s,background .2s}.somatic-tap-l{left:8%}.somatic-tap-r{right:8%}.somatic-tap.on{opacity:1;background:#d9a24b73;transform:scale(1.15);box-shadow:0 0 18px #d9a24b8c}.somatic-tap.on:after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(217,162,75,.55);animation:somaticTapPing .7s ease-out}@keyframes somaticTapPing{0%{transform:scale(1);opacity:.9}to{transform:scale(2.1);opacity:0}}.somatic-cue{font-size:.95rem;line-height:1.45;max-width:28ch;color:var(--somatic-dim)}.somatic-body.is-done .somatic-body-orb{opacity:.55}@media(prefers-reduced-motion:reduce){.somatic-ring{transition:none}.somatic-ring:before{transition:none;opacity:.4}.somatic-ring:after{animation:none;opacity:.2}.somatic-body-orb{transition:none}.somatic-body-orb:before{transition:none}.somatic-tap.on:after{animation:none;display:none}}
