/* A reserved visual footprint: state changes never move the practice controls. */
.practice-screen .affirmation-area{grid-template-rows:50px 16px minmax(0,1fr) 32px}
.practice-screen .affirmation-text{font-size:clamp(21px,14.8cqh,36px);line-height:1.25}
.practice-screen .affirmation-text:lang(yue),.practice-screen .affirmation-text:lang(zh-Hant){font-size:clamp(20px,13cqh,28px)}
.practice-presence{
  --presence-speed:5.8s;--presence-scale:1.06;
  width:46px;height:46px;position:relative;justify-self:center;align-self:center;
  isolation:isolate;pointer-events:none;
}
.presence-halo,.presence-core,.presence-ring,.presence-core i{position:absolute;display:block}
.presence-halo{inset:-6px;border-radius:50%;background:radial-gradient(ellipse,#bba4d94d,transparent 70%);opacity:.6;transition:opacity .6s}
.presence-core{
  inset:3px;border-radius:46% 54% 52% 48%/52% 46% 54% 48%;
  background:radial-gradient(circle at 36% 30%,#fff0cc 5%,#e8bdcb 32%,#b2a1d1 65%,#d7e4ea 100%);
  box-shadow:inset -3px -3px 8px #806ca12b,0 0 9px #b8a0cb40;
  animation:presence-breathe var(--presence-speed) ease-in-out infinite;
  transition:background .6s,box-shadow .6s;will-change:transform;
}
.presence-core i{inset:3px;border:1px solid #fff8e880;border-radius:48% 52% 44% 56%;transform:rotate(-25deg)}
.presence-core i:nth-child(2){inset:8px;border-color:#fff1d98c;transform:rotate(32deg)}
.presence-core i:nth-child(3){inset:13px;background:#fff0d6;border:0;border-radius:50%}
.presence-ring{inset:1px;border:1px solid #9c80b84d;border-radius:50%;transform:rotate(-30deg) scaleY(.8);transition:opacity .6s;opacity:.5}
.practice-presence[data-state=listening]{--presence-speed:3.8s;--presence-scale:1.13}
.practice-presence[data-state=listening] .presence-halo{opacity:1}
.practice-presence[data-state=listening] .presence-ring{animation:presence-orbit 14s linear infinite;opacity:.8}
.practice-presence[data-state=hearing]{--presence-speed:1.7s;--presence-scale:1.19}
.practice-presence[data-state=hearing] .presence-halo{opacity:1;background:radial-gradient(ellipse,#d5b0db80,transparent 70%)}
.practice-presence[data-state=hearing] .presence-ring{animation:presence-orbit 8s linear infinite;opacity:1}
.practice-presence[data-state=guiding]{--presence-speed:2.7s;--presence-scale:1.12}
.practice-presence[data-state=guiding] .presence-core{background:radial-gradient(circle at 36% 30%,#fff0cd,#e7bc95 38%,#b7a4d3 80%)}
.practice-presence[data-state=preparing] .presence-ring,.practice-presence[data-state=checking] .presence-ring{animation:presence-orbit 5s linear infinite;opacity:1}
.practice-presence[data-state=checking]{--presence-speed:4s;--presence-scale:1.03}
.practice-presence[data-state=error] .presence-core{animation:none;opacity:.65}
.practice-presence[data-state=error] .presence-halo{opacity:.25}
/* Inner cosmos uses ink-like contours and jade / copper instead of a blurred glow. */
[data-theme=dark] .presence-core{
  background:conic-gradient(from 20deg,#eec78e,#bc795b,#83b5a4,#294f51,#d5a564,#eec78e);
  box-shadow:inset 0 0 0 1px #ead5a86b,0 0 10px #77b5a219;
}
[data-theme=dark] .presence-core i{border-color:#142b30b3;border-width:2px}
[data-theme=dark] .presence-core i:nth-child(2){border-color:#f1dbb5b3;border-width:1px}
[data-theme=dark] .presence-core i:nth-child(3){background:#e8be83;box-shadow:0 0 0 2px #254a49}
[data-theme=dark] .presence-halo{background:radial-gradient(ellipse,#78baa330,transparent 70%)}
[data-theme=dark] .presence-ring{border-color:#e8ae686b}
[data-theme=dark] .practice-presence[data-state=hearing] .presence-halo{background:radial-gradient(ellipse,#8fceb25c,transparent 70%)}
[data-theme=dark] .practice-presence[data-state=guiding] .presence-core{background:conic-gradient(from 20deg,#f2d49e,#bd7d58,#e6bc7d,#668f7b,#f2d49e)}
@keyframes presence-breathe{
  0%,100%{transform:scale(.94) rotate(-5deg);border-radius:46% 54% 52% 48%/52% 46% 54% 48%}
  50%{transform:scale(var(--presence-scale)) rotate(5deg);border-radius:54% 46% 48% 52%/46% 54% 48% 52%}
}
@keyframes presence-orbit{from{transform:rotate(-30deg) scaleY(.8)}to{transform:rotate(330deg) scaleY(.8)}}
/* Compact screens keep a visible presence beside the theme label. */
@media(max-height:650px){
  .practice-screen .affirmation-area{grid-template-columns:40px minmax(0,1fr);grid-template-rows:36px minmax(0,1fr) 32px;column-gap:8px}
  .practice-presence{width:34px;height:34px;grid-column:1;grid-row:1}
  .practice-screen .affirmation-area>.eyebrow{grid-column:2;grid-row:1;text-align:left}
  .practice-screen .affirmation-text{grid-column:1/-1;grid-row:2}
  .practice-screen .line-tools{grid-column:1/-1;grid-row:3}
  .presence-core i:nth-child(3){inset:9px}
}
@media(max-height:580px){
  .practice-screen .affirmation-area{grid-template-rows:30px minmax(0,1fr) 28px}
  .practice-presence{width:30px;height:30px}
  .presence-core{inset:4px}
}
[data-motion=off] .practice-presence *,[data-motion=off] .practice-presence{animation-play-state:paused!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.practice-presence,.practice-presence *{animation:none!important;transition:none!important}}
