/* Interaction first, within the existing garden. */
.piece-dialog.reflect-dialog{width:min(1020px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:18px 22px 16px;background:#f7f4e9;border:1px solid #d4ccb6;border-radius:16px;color:#353b30;overflow:auto;box-shadow:0 20px 100px #18251e5c}
.piece-dialog.reflect-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;gap:12px}
.reflect-dialog::backdrop{background:#14251c77;backdrop-filter:blur(4px)}
.reflect-heading{grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px}
.reflect-heading h2{font:500 clamp(23px,3vw,32px)/1.15 var(--serif,Georgia,serif);margin:0;color:#353b30}
.reflect-dialog .dialog-close{position:static;flex:0 0 44px;width:44px;height:44px;border:1px solid #cfc7af;background:#fcf9f0;color:#414936}
.reflect-dialog .practice-body{display:contents;margin:0;min-height:0}
.piece-dialog.reflect-dialog .reflect-workspace{grid-row:2;width:100%;aspect-ratio:1000/590;max-height:calc(100dvh - 200px);border:1px solid #c9cdb9;border-radius:10px;background:#ecebdb}
.reflect-dialog .reflect-cue{grid-row:3;text-align:center;margin:0 auto;max-width:65ch;font-size:14px;line-height:1.55;color:#424a3c}
.piece-dialog.reflect-dialog .tactile-toolbar{grid-row:4;flex-wrap:wrap;margin:0;gap:10px}
.piece-dialog.reflect-dialog .tactile-toolbar button{background:#fcf9ee;border-color:#c6c9b5;color:#43523c;min-width:44px;min-height:44px}
.piece-dialog.reflect-dialog .tactile-toolbar button:hover,.piece-dialog.reflect-dialog .tactile-toolbar button[aria-pressed=true]{border-color:#8b9677;background:#e9eddc}
.reflect-dialog button:focus-visible,.reflect-dialog canvas:focus-visible{outline:2px solid #91713c;outline-offset:3px}
.reflect-pending,.reflect-error{grid-row:2;min-height:350px;display:grid;place-content:center;text-align:center;color:#45523c}
.piece-dialog.reflect-dialog .reflect-workspace>canvas{cursor:crosshair}
.reflect-dialog .object-reflect.reflect-pour>canvas,.reflect-dialog .object-reflect.reflect-turn>canvas,.reflect-dialog .object-reflect.reflect-perspective>canvas{cursor:grab}
.reflect-dialog .object-reflect.reflect-pour>canvas:active,.reflect-dialog .object-reflect.reflect-turn>canvas:active{cursor:grabbing}
.reflect-dialog .reflect-feedback,.reflect-dialog .stone-feedback{position:absolute}
.breathing-reflect{display:grid;place-content:center;text-align:center;position:relative;background:radial-gradient(ellipse at center,#eee9d1,#e3e8d7)}
.breathing-light{width:clamp(140px,24vw,260px);height:clamp(140px,24vw,260px);border-radius:50%;display:grid;place-content:center;transform:scale(calc(.72 + var(--breath,.5)*.28));background:radial-gradient(circle,#fffbdd 0%,#e6d29b 42%,#c8cead44 65%,#b7c39b00 72%)}
.breathing-light span{width:90px;height:90px;border-radius:50%;box-shadow:0 0 calc(12px + var(--breath,.5)*40px) #cfba7d55;background:radial-gradient(circle at 40% 36%,#fffbdf,#ccbc84)}
.breathing-phase{position:absolute;bottom:12%;width:100%;text-align:center;font:500 21px Georgia,serif;color:#46523d}
.is-reflecting .piece-transform{display:none!important}
@media(max-width:700px){
 .piece-dialog.reflect-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:12px 10px;border-radius:14px}
 .piece-dialog.reflect-dialog[open]{gap:10px}
 .reflect-heading h2{font-size:25px}
 .piece-dialog.reflect-dialog .reflect-workspace{aspect-ratio:1000/1000;max-height:calc(100dvh - 190px);min-height:200px}
 .reflect-dialog .reflect-cue{font-size:13px;padding:0 5px}
 .piece-dialog.reflect-dialog .tactile-toolbar{gap:8px}
}
@media(max-height:530px) and (orientation:landscape){
 .piece-dialog.reflect-dialog{width:calc(100vw - 12px);padding:9px 12px;max-height:calc(100dvh - 12px)}
 .piece-dialog.reflect-dialog[open]{grid-template-columns:minmax(155px,24%) minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:15px;row-gap:8px}
 .reflect-heading{grid-column:1;grid-row:1;align-items:flex-start;gap:5px}
 .reflect-heading h2{font-size:23px;padding-top:7px}
 .piece-dialog.reflect-dialog .reflect-workspace{grid-column:2;grid-row:1/4;max-height:calc(100dvh - 34px);height:calc(100dvh - 34px);aspect-ratio:auto;min-height:0}
 .reflect-dialog .reflect-cue{grid-column:1;grid-row:2;text-align:left;align-self:center;font-size:12px;padding:0}
 .piece-dialog.reflect-dialog .tactile-toolbar{grid-column:1;grid-row:3;gap:6px;justify-content:flex-start}
 .piece-dialog.reflect-dialog .tactile-toolbar button{width:44px}
}
@media(prefers-reduced-motion:reduce){.reflect-dialog,.reflect-dialog *{animation:none!important;transition:none!important}}

.is-reflecting .reflection-row small,.is-reflecting .panel-description,.is-reflecting #collection-description{color:#525f46}

/* Quiet observation uses the visitor's garden, with no simulated object bending. */
.calm-reflect{background:#aebba0;isolation:isolate}
.reflect-dialog .calm-reflect>canvas{cursor:default}
.calm-garden-view{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.67) saturate(.76)}
.calm-touch-hint{position:absolute;bottom:20px;left:16px;right:16px;width:max-content;max-width:calc(100% - 32px);margin:auto;padding:8px 15px;border:1px solid #f6efd659;border-radius:20px;background:#263d2cd4;color:#fff7e3;font-size:12px;line-height:1.4;pointer-events:none;transition:opacity 1.4s}
.calm-reflect.has-touched .calm-touch-hint,.calm-reflect.without-guidance .calm-touch-hint{opacity:0}
.calm-toolbar .calm-pace-control{width:auto;padding:0 12px;gap:9px;font-size:12px;color:#3f503a}
.breathing-garden{display:grid;place-items:center}
.breathing-shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,#102c1d12 0%,#102c1d33 55%,#102c1d80 100%);pointer-events:none}
.breathing-heart{position:relative;width:clamp(132px,22vw,220px);aspect-ratio:1;border:0;background:transparent;color:inherit;display:grid;place-items:center;touch-action:none;cursor:pointer;isolation:isolate;transform:scale(calc(.88 + var(--breath,0)*.12));-webkit-tap-highlight-color:transparent}
.breathing-heart svg{position:relative;width:78%;height:78%;filter:drop-shadow(0 4px 8px #14251d40);opacity:calc(.76 + var(--breath-light,0)*.24)}
.breathing-heart .breathing-halo{position:absolute;inset:-32%;border-radius:50%;opacity:calc(.22 + var(--breath-light,0)*.35);background:radial-gradient(circle,#f4dfa8b0 0%,#e3c27e30 40%,#cfa65700 69%);transform:scale(calc(.8 + var(--breath,0)*.32));pointer-events:none}
.breathing-heart:focus-visible{outline:2px solid #f3d394;outline-offset:7px;border-radius:50%}
.breathing-words{position:absolute;bottom:12%;left:12px;right:12px;text-align:center;font:500 23px/1.3 var(--serif,Georgia,serif);letter-spacing:.02em;color:#fff7df;text-shadow:0 1px 8px #183326}
.breathing-garden.without-guidance .breathing-words{visibility:hidden}
@media(max-width:700px){.calm-touch-hint{bottom:14px;font-size:11px}.breathing-heart{width:164px}.breathing-words{font-size:21px;bottom:11%}.calm-toolbar .calm-pace-control{padding:0 10px;gap:6px}}
@media(max-height:530px) and (orientation:landscape){.piece-dialog.reflect-dialog .tactile-toolbar .calm-pace-control{width:100%;justify-content:flex-start;white-space:nowrap}.breathing-heart{width:150px}.breathing-words{bottom:7%;font-size:18px}.calm-touch-hint{bottom:10px}}
