.quiet{min-height:100dvh;background:radial-gradient(ellipse at 50% 50%,#faf7ee,#f3f0e7);display:flex;flex-direction:column}.quiet header{width:100%;max-width:1100px;border:0;padding:25px 30px}.quiet nav{gap:24px;font-size:13px}.quiet nav a{text-decoration:none}.quiet main{text-align:center;width:100%;max-width:1000px;padding:32px 18px 18px;flex:1}.quiet h1{font-size:clamp(46px,7vw,76px);margin:14px 0 22px}.invitation{font:clamp(16px,2vw,21px) Georgia;color:#7b826e;margin:0}.quiet .eyebrow{margin:0}#bowl-scene{aspect-ratio:400 / 270;max-width:760px;margin:0 auto}#bowl-scene>svg{display:block;width:100%;overflow:visible;height:auto;touch-action:manipulation}#bowl-scene .soil{cursor:crosshair}#bowl-scene .ping{cursor:pointer}#bowl-scene .ping:focus-visible{outline:none;filter:drop-shadow(0 0 2px #6c7f5c)}.quiet-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:2px}.quiet-actions button{font-size:13px;padding:11px 21px}#garden-message{font-size:13px;min-height:24px;margin:18px auto 8px;color:#7b826e}#plant-label{font:italic 16px Georgia;color:#68775b}#plant-label a{font:12px system-ui;margin-left:14px}#options{display:flex;flex-wrap:wrap;justify-content:center;gap:15px;align-items:end;margin:24px auto;max-width:650px;padding:20px;border-top:1px solid #d6dacb}#options label{display:grid;text-align:left;font-size:12px;gap:5px}#options a,#options button,#options select{font-size:12px}.quiet [hidden]{display:none!important}.quiet footer{width:calc(100% - 48px);max-width:1040px;margin:20px auto 0;padding:22px 0;display:flex;justify-content:space-between;gap:16px;border-top:1px solid #d6dacb;font-size:11px;color:#7b826e}.quiet footer div{display:flex;gap:20px}.quiet footer a{text-decoration:none}@media(max-width:600px){.quiet header{padding:22px}.quiet main{padding-top:35px}.quiet h1{letter-spacing:-2px}.quiet nav{gap:18px}#bowl-scene{margin:22px -8px 0}.quiet footer{margin-top:20px;font-size:10px}.quiet footer div{gap:12px}}
/* The cabinet is a quiet overview; collection tools live at My pings. */
body.shelves .intro,body.shelves #reset-info,body.shelves #notice,body.shelves .partner-invite,body.shelves #playground,body.shelves aside,body.shelves .collection-rules,body.shelves .arrange,body.shelves .collection-section,body.shelves footer{display:none}body.shelves .workspace{display:block;max-width:850px;margin:20px auto}body.shelves .workspace h2{font-size:36px}body.shelves .workspace .customize{margin-top:25px}body.shelves .workspace .hint{text-align:center}.open-bowl-label{font-size:11px;display:block;text-decoration:underline;margin-top:4px}

#bowl-scene .ping{outline:none}body.shelves header{border:0}

.quiet main{padding-top:22px}body.shelves .bowl{touch-action:manipulation}

/* Mobile taps use one geometry-based handler, never a nested SVG's rectangular bounds. */
#bowl-scene,#bowl-scene svg{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
#bowl-scene>svg *{pointer-events:none}
#bowl-scene>svg{pointer-events:auto;cursor:pointer}
#bowl-scene .soil:focus,#bowl-scene .ping:focus{outline:none}
#bowl-scene .soil:focus-visible{stroke:#93a080;stroke-width:4}
#bowl-scene .ping:focus-visible{filter:drop-shadow(0 0 3px #83966e)}

#residents{max-width:650px;margin:24px auto;padding:20px 0;border-top:1px solid #d6dacb;text-align:left}#residents h2{font:26px Georgia;margin:0 0 8px}#residents-count{font-size:13px;color:#7b826e;margin:0 0 16px}#residents-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#residents-list a{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #d6dacb;border-radius:16px;text-decoration:none;height:100%}#residents-list svg{width:80px;height:100px;flex-shrink:0}#residents-list strong{font:italic 16px Georgia;display:block;overflow-wrap:anywhere}#residents-list span span{display:block;font-size:12px;margin-top:6px;color:#7b826e}#residents-list .resident-link{text-decoration:underline;color:#53654b}.quiet-actions button[aria-expanded="true"]{background:#e6eadb}@media(max-width:600px){.quiet-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:370px;margin:2px auto 0;gap:10px}.quiet-actions button{padding:12px 8px}#residents-list{grid-template-columns:1fr}}

body.collection-page .workspace,body.collection-page .arrange{display:none}body.collection-page main{display:flex;flex-direction:column}body.collection-page .collection-section{order:1}body.collection-page .collection-rules{order:2}body.collection-page footer{order:3}

/* Keep the drawing pace gentle, then let the flower settle into view. */
#bowl-scene .growing .paint{animation-timing-function:cubic-bezier(.22,1,.36,1)}
#bowl-scene .flower-animation .flower-stalk{animation-duration:1.8s;animation-timing-function:cubic-bezier(.37,0,.63,1)}
#bowl-scene .flower-animation .flower-head{animation-duration:1.3s;animation-timing-function:cubic-bezier(.22,1,.36,1);filter:none}
@media(prefers-reduced-motion:reduce){#bowl-scene .flower-animation .flower-head{opacity:1;filter:none}}

/* A small disturbance in the soil marks the exact root position. */
.planting-mark{pointer-events:none}
.soil-dimple{animation:soil-settle 950ms ease-out both;transform-origin:0 0}
.soil-ripple{animation:soil-spread 900ms cubic-bezier(.22,1,.36,1) both;transform-origin:0 0}
.soil-grain{opacity:0;animation:soil-scatter 650ms ease-out both}
@keyframes soil-settle{0%{opacity:.8;transform:scale(.55)}30%{opacity:.65;transform:scale(1)}100%{opacity:0;transform:scale(.85)}}
@keyframes soil-spread{0%{opacity:.8;transform:scale(.45)}65%{opacity:.4}100%{opacity:0;transform:scale(1.85)}}
@keyframes soil-scatter{0%{opacity:0;transform:translate(0,0)}15%{opacity:.9}45%{opacity:.7;transform:translate(var(--grain-x),var(--grain-lift))}100%{opacity:0;transform:translate(var(--grain-x),var(--grain-y))}}
.planting-mark--still .soil-ripple,.planting-mark--still .soil-dimple{animation:none;opacity:.6}
@media(prefers-reduced-motion:reduce){.soil-ripple,.soil-dimple{animation:none;opacity:.6}.soil-grain{display:none}}
