@font-face{font-family:Fraunces;src:url(/fraunces.woff2)format("woff2");font-weight:500 600;font-display:swap}:root{--bg:#f2f5ec;--surface:#fff;--ink:#22301f;--ink-2:#5a6b54;--primary:#2f6b3a;--primary-ink:#fff;--accent:#6f5fa8;--warn-ink:#7a5008;--warn-bg:#f6e7c6;--error-ink:#8c3226;--error-bg:#f7dcd5;--map-grass:#e4ebd6;--map-soil:#eae0cc;--map-edge:#c9bfa6;--shadow:0 2px 8px #22301f14;--serif:"Fraunces", Georgia, serif;--sans:-apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#141a12;--surface:#1d2419;--ink:#edf1e4;--ink-2:#a7b39b;--primary:#8cc084;--primary-ink:#14200f;--accent:#b3a4e6;--warn-ink:#e8c36a;--warn-bg:#33290f;--error-ink:#e88c7d;--error-bg:#33201b;--map-grass:#1c241a;--map-soil:#2a241c;--map-edge:#4a4234;--shadow:0 2px 8px #0000004d}}*{box-sizing:border-box;margin:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}#root{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2}.view{padding:16px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.topbar{align-items:center;gap:10px;min-height:40px;margin-bottom:16px;display:flex}.topbar h1{font-size:24px}.topbar .title-wrap{flex:1;min-width:0}.topbar h2{white-space:nowrap;text-overflow:ellipsis;font-size:20px;overflow:hidden}.topbar .sub{color:var(--ink-2);font-size:13px}.icon-btn{border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.icon-btn:active{background:var(--map-grass)}.btn{border-radius:12px;width:100%;min-height:56px;font-size:16px;font-weight:600;transition:transform .15s ease-out,opacity .2s;display:block}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:var(--primary-ink)}.btn-text{color:var(--ink-2);min-height:44px;font-weight:500}.btn-secondary{background:var(--surface);box-shadow:var(--shadow)}.btn:disabled{opacity:.5}.sticky-cta{bottom:calc(8px + env(safe-area-inset-bottom));margin-top:auto;padding-top:12px;position:sticky}.card{background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:16px}.garden-card{text-align:left;background:var(--surface);width:100%;box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:14px;min-height:72px;margin-bottom:12px;padding:12px;display:flex}.garden-card img{object-fit:cover;background:var(--map-soil);border-radius:10px;flex-shrink:0;width:96px;height:72px}.garden-card .g-name{font-family:var(--serif);font-size:20px;font-weight:600}.garden-card .g-meta{color:var(--ink-2);align-items:center;gap:6px;font-size:14px;display:flex}.garden-card .chev{color:var(--ink-2);margin-left:auto;font-size:20px}.dot-warn{background:var(--warn-ink);border-radius:50%;width:8px;height:8px;display:inline-block}.empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 8px;display:flex}.empty h2{font-size:32px}.empty p{color:var(--ink-2);max-width:28ch}.capture-frame{aspect-ratio:4/3;background:var(--map-soil);border:2px dashed var(--map-edge);border-radius:16px;place-items:center;margin-bottom:16px;font-size:44px;display:grid;overflow:hidden}.capture-frame img{object-fit:cover;width:100%;height:100%}.capture-frame.filled{border-style:solid}.tips{color:var(--ink-2);margin-bottom:16px;font-size:14px}.tips li{margin-bottom:4px;margin-left:18px}.analyzing{text-align:center}.scan-wrap{border-radius:16px;margin-bottom:24px;position:relative;overflow:hidden}.scan-wrap img{filter:brightness(.6);width:100%;display:block}.scan-wrap img.undimmed{filter:none}.scan-band{background:linear-gradient(#0000,#ffffff47,#0000);height:18%;animation:2.5s ease-in-out infinite sweep;position:absolute;left:0;right:0}@keyframes sweep{0%{top:-20%}to{top:105%}}.stage-emoji{margin-bottom:8px;font-size:40px}.stage-line{font-family:var(--serif);font-size:20px;font-weight:600;animation:.5s ease-out fadein}.stage-sub{color:var(--ink-2);margin-top:4px;font-size:14px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.error-card{background:var(--error-bg);color:var(--error-ink);border-radius:16px;margin:16px 0;padding:16px;font-size:15px}.map-wrap{background:var(--map-grass);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.map-wrap svg{touch-action:manipulation;width:100%;height:auto;display:block}.token{cursor:pointer}.token .halo{opacity:0}.token.selected .halo{opacity:1}@keyframes plantpop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.token.planted{transform-box:fill-box;transform-origin:50%;animation:.45s ease-out backwards plantpop}@keyframes drawbed{0%{stroke-dashoffset:2400px;fill-opacity:0}to{stroke-dashoffset:0;fill-opacity:1}}.bed-animate{stroke-dasharray:2400;animation:.8s ease-out forwards drawbed}@media (prefers-reduced-motion:reduce){.token.planted,.bed-animate,.scan-band,.stage-line{animation:none!important}}.roster{scrollbar-width:none;gap:8px;padding:12px 2px;display:flex;overflow-x:auto}.roster::-webkit-scrollbar{display:none}.roster-chip{background:var(--surface);min-height:44px;box-shadow:var(--shadow);white-space:nowrap;border:2px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px 8px 8px;font-size:14px;font-weight:500;display:flex}.roster-chip.selected{border-color:var(--accent)}.roster-chip .mini-token{background:var(--bg);border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;display:grid}.scrim{z-index:10;background:#00000059;animation:.2s ease-out fadein;position:fixed;inset:0}.sheet{background:var(--surface);z-index:11;max-width:560px;height:62dvh;padding:8px 20px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;margin:0 auto;transition:height .25s ease-out;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -4px 24px #00000026}.sheet.tall{height:92dvh}.sheet .handle{background:var(--map-edge);cursor:grab;border-radius:3px;width:44px;height:5px;margin:6px auto 14px}.sheet-head{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.sheet-head .big-token{background:var(--bg);border-radius:50%;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:28px;display:grid}.sheet-head h2{font-size:24px}.latin{color:var(--ink-2);font-size:16px;font-style:italic}.conf-chip{border-radius:999px;margin-top:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.conf-high{background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary)}.conf-medium,.conf-low{background:var(--warn-bg);color:var(--warn-ink)}.care-strip{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:20px;display:grid}.care-tile{background:var(--bg);text-align:center;border-radius:12px;padding:10px 8px;font-size:13px}.care-tile .care-icon{font-size:18px;display:block}.care-tile .care-label{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.section{margin-bottom:20px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px;font-size:12px;font-weight:700}.disclaimer{background:var(--warn-bg);color:var(--warn-ink);border-radius:10px;margin-top:10px;padding:10px 12px;font-size:13px}.alt-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.alt-chip{background:var(--bg);border:1.5px solid var(--map-edge);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500}.decision-card{background:var(--warn-bg);color:var(--warn-ink);border-radius:12px;margin-bottom:16px;padding:14px;font-size:15px}.decision-card .row{gap:8px;margin-top:10px;display:flex}.decision-card .btn{min-height:44px;font-size:14px}.menu{background:var(--surface);z-index:20;border-radius:12px;min-width:180px;position:absolute;top:52px;right:16px;overflow:hidden;box-shadow:0 4px 20px #0000002e}.menu button{text-align:left;width:100%;padding:13px 16px;font-size:15px;display:block}.menu button:active{background:var(--bg)}.menu .danger{color:var(--error-ink)}.lock{text-align:center;flex-direction:column;flex:1;justify-content:center;gap:14px;padding:24px;display:flex}.lock input{font:inherit;border:1.5px solid var(--map-edge);background:var(--surface);color:var(--ink);text-align:center;border-radius:12px;padding:14px;font-size:18px}.lock input:focus{outline:2px solid var(--accent);border-color:#0000}.spin{animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
