#visit-garden{position:relative;min-height:340px;height:340px;flex:none;margin:4px -12px 10px;border-radius:40% 40% 22px 22px;background:radial-gradient(ellipse at 50% 20%,#d7e8f5 0%,#e6ecd8 45%,#f4f1e800 75%)}
#visit-garden>.art{height:310px;max-width:100%;margin:auto}
.floating-garden-host{position:absolute;inset:0 0 36px;pointer-events:none}
.garden-canvas{display:block;width:100%;height:100%;touch-action:pan-y;pointer-events:auto;cursor:pointer}
.garden-overview{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-size:12px;min-height:44px}
#visit-garden .tile.occupied{cursor:pointer}#visit-garden .tile:focus-visible{stroke:#b65f42;stroke-width:4;outline:none}
.plant-dialog{width:min(430px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #d3d7be;border-radius:28px;background:#f4f1e8;color:#345a40;box-shadow:0 25px 90px #122c354d;overflow:auto;overscroll-behavior:contain}
.plant-dialog::backdrop{background:#243d39a8;backdrop-filter:blur(4px)}
.plant-dialog[open]{animation:specimen-in .24s ease-out}
.plant-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 0 24px;font-size:11px;letter-spacing:.14em}
.plant-close{border:1px solid #cbd5c1;background:#f4f1e8;border-radius:50%;width:44px;height:44px;font-size:27px;font-weight:300;color:#436a58}
.specimen-stage{height:clamp(220px,39dvh,350px);position:relative;isolation:isolate;margin:0 14px;background:radial-gradient(ellipse at 50% 38%,#dceafa 0%,#eef0dc 46%,#dde7d000 72%)}
.specimen-halo{position:absolute;z-index:-1;width:90%;height:90%;top:5%;left:5%;border-radius:50%;background:radial-gradient(circle,#ffe9c4cc 0%,#ffd3deaa 35%,transparent 70%);filter:blur(18px);pointer-events:none;animation:halo-pulse 4.5s ease-in-out infinite}
.specimen-host,.specimen-fallback{position:absolute;inset:0}.specimen-fallback{display:grid;place-items:center}.specimen-fallback .art{width:100%;height:100%}
.specimen-canvas{touch-action:none;cursor:grab}.specimen-canvas:active{cursor:grabbing}
.specimen-rotation{display:flex;justify-content:center;align-items:center;gap:15px;padding:0 16px;color:#6a7b69;font-size:11px;letter-spacing:.04em}
.specimen-rotation button{height:44px;width:44px;border:1px solid #ced6bd;border-radius:50%;background:transparent;color:#456a57;font-size:24px}
.plant-dialog-copy{text-align:center;padding:4px 25px max(24px,env(safe-area-inset-bottom))}.plant-stage-label{font-size:11px;letter-spacing:.22em;color:#9b6f43;margin:9px 0 5px}
.plant-dialog-copy h2{font:600 25px/1.4 "Songti TC",serif;letter-spacing:.02em;margin:0 0 5px;overflow-wrap:anywhere}.plant-singer{font-size:13px;margin:0 0 16px}.plant-listen{min-height:50px;font-size:15px;border-radius:18px;margin-top:16px}
[hidden]{display:none!important}
@keyframes specimen-in{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:none}}
@keyframes halo-pulse{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.plant-dialog[open]{animation:none}.plant-dialog::backdrop{backdrop-filter:none}.specimen-halo{animation:none}}

/* Same full-screen object presentation as the existing gardener role selector. */
.plant-dialog{inset:0;margin:0 auto;width:100%;max-width:600px;height:100dvh;max-height:100dvh;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 22%,#cfe3f5 0%,#e6ecd8 46%,#f5f3ea 100%);overflow:hidden}
.plant-dialog[open]{display:flex;flex-direction:column}
.plant-dialog-head{padding-top:max(14px,env(safe-area-inset-top));flex:none}
.plant-dialog-title{text-align:center;padding:8px 26px 0;position:relative;z-index:1;flex:none}
.plant-dialog-title h2{font:600 clamp(25px,7vw,34px)/1.35 "Songti TC",serif;margin:5px 0 6px;overflow-wrap:anywhere}
.plant-dialog-title .plant-singer{margin:0;font-size:14px}
.specimen-stage{flex:1;min-height:180px;height:auto;margin:0;background:none}
.specimen-halo{border:0;box-shadow:none;background:radial-gradient(circle,#ffeecdcc 0%,#ffd9e299 38%,transparent 72%);filter:blur(22px)}
.specimen-rotation{flex:none;padding:0 20px 4px}
.plant-dialog-copy{flex:none;background:linear-gradient(180deg,transparent,var(--paper) 70%);padding:0 26px max(28px,env(safe-area-inset-bottom))}
.plant-listen{margin-top:12px;min-height:56px;font-size:17px}
@media(max-height:560px){.plant-dialog{overflow:auto}.specimen-stage{min-height:260px}.plant-dialog-title h2{font-size:23px}}
