:root{color-scheme:light;--paper:#faf7ef;--ink:#3e4733;--green:#366047;--line:#dedccd;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/23px var(--font)}main{max-width:760px;margin:auto;padding:18px 20px 40px}header{padding:8px 8px 22px}h1{font:700 28px/36px var(--font);margin:8px 0 14px;letter-spacing:-.5px}h2{font:700 24px/32px var(--font);margin:0 0 10px}p{margin:8px 0}.eyebrow{font-size:11px;letter-spacing:2.4px;color:#6d7859;font-weight:700}.meadow{height:250px;position:relative;overflow:hidden;border-radius:24px;background:#d8e8cd url('art/grass.png') center 45%/380px;box-shadow:inset 0 0 0 1px #ccd7bd}.fence{position:absolute;top:-18px;left:0;right:0;height:100px;background:url('art/fence.png') center/240px 120px repeat-x}.shrub{position:absolute;width:150px;bottom:10px;image-rendering:pixelated}.left{left:-70px}.right{right:-70px;transform:scaleX(-1)}.flower{position:absolute;width:90px;height:105px;object-fit:contain;image-rendering:pixelated;animation:sway 5s ease-in-out infinite alternate;transform-origin:50% 90%}.sign{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:#f7e9cb;border:2px solid #b69d73;border-radius:5px;padding:5px 12px;white-space:nowrap;max-width:95%;font:14px var(--font);box-shadow:0 3px 0 #8c795c44}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;font-size:13px;color:#657165}button{font:700 15px/21px var(--font);border:0;border-radius:12px;background:var(--green);color:white;min-height:46px;padding:12px 20px;cursor:pointer}button:disabled{opacity:.55;cursor:default}button.quiet{background:#ececdd;color:var(--green)}article{padding:24px 0;border-top:1px solid var(--line)}.meta{font-size:12px;color:#68725f}.progress{display:flex;align-items:center;gap:12px;margin:18px 0;font-weight:700}progress{flex:1;accent-color:var(--green);height:12px;max-width:100%}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}label{display:flex;align-items:start;gap:10px;font-size:14px;margin:14px 0}input{width:20px;height:20px;accent-color:var(--green);flex-shrink:0}details{margin:14px 0;font-size:14px}summary{cursor:pointer;color:var(--green)}ol{padding-left:24px}li{padding:6px 0}.mine{font-weight:bold}#error{color:#a04439}footer{font-size:12px;text-align:center;padding-top:30px;color:#707661}.arrival .flower{animation:arrive .7s ease-out,sway 5s .7s ease-in-out infinite alternate}@keyframes sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes arrive{from{opacity:0;transform:scale(.3) translateY(-20px)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.flower,.arrival .flower{animation:none}}@media(max-width:360px){main{padding:12px}.meadow{height:220px}.flower{width:75px}}

.completed h2{color:#366047}.completed .actions{align-items:center}dialog{width:min(520px,calc(100% - 24px));max-height:90vh;overflow:auto;padding:20px;border:2px solid #b7c7a0;border-radius:24px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 18px 80px #20381d55}dialog::backdrop{background:#283a3066}dialog h2{margin:12px 0}dialog button{margin-top:14px;width:100%}.celebration-world{height:240px;position:relative;overflow:hidden;border-radius:18px;background:#d8e8cd url('art/grass.png') center/380px}.celebration-world .fence{top:-16px;height:72px;background-size:160px 80px}.celebration-world .shrub{width:110px;bottom:-12px}#celebration-flowers{position:absolute;inset:60px 5px 5px;display:flex;align-items:end;justify-content:center;flex-wrap:wrap;gap:0}#celebration-flowers img{width:24%;height:90px;object-fit:contain;image-rendering:pixelated;animation:flower-reveal 1s both}#celebration-flowers img:nth-child(even){animation-delay:.2s}#celebration-flowers img:nth-child(3n){animation-delay:.4s}.glimmer{position:absolute;top:45px;left:0;right:0;color:#fffbd4;font-size:34px;letter-spacing:16px;text-shadow:0 0 12px #eed471;animation:glimmer 2s ease-in-out 3}@keyframes flower-reveal{from{opacity:0;transform:translateY(35px) scale(.4)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glimmer{50%{transform:translateY(-8px);opacity:.4}}@media(prefers-reduced-motion:reduce){#celebration-flowers img,.glimmer{animation:none}}

.leaderboard-world{margin:22px 0;padding:22px 16px 14px;border:2px solid #b6c5a1;border-radius:22px;background:linear-gradient(#faf1dced,#eff2dcdd),url('art/grass.png') center/380px;box-shadow:0 5px 0 #68795418;text-align:center;overflow:hidden}.leaderboard-world h3{font:700 24px/32px var(--font);margin:8px 0;color:#3e5034}.podium{display:flex;align-items:flex-end;justify-content:center;gap:8px;margin:22px 0 12px}.podium-place{flex:1;min-width:0;max-width:180px;display:flex;flex-direction:column;align-items:center;position:relative}.podium-place:first-child{order:2}.podium-place:nth-child(2){order:1}.podium-place:nth-child(3){order:3}.rank-medal{border:2px solid #c4a459;border-radius:50%;background:#fbefb8;color:#6b552d;min-width:34px;line-height:30px;font-weight:800}.gardener-portrait{width:82px;height:100px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gardener-portrait img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.podium-place:first-child .gardener-portrait{width:100px;height:120px}.podium-place strong{font-size:14px;overflow-wrap:anywhere;line-height:1.25;min-height:36px}.you-label{font-size:11px;color:#486340;min-height:28px}.podium-plinth{width:100%;padding:12px 4px 22px;background:#c8d6af;border:1px solid #9aaa80;border-radius:10px 10px 3px 3px;font-weight:700;font-size:14px;box-shadow:inset 0 -6px #879a6655}.podium-place:first-child .podium-plinth{padding-bottom:42px;background:#e9d79f;border-color:#c2ac72}.podium-place.mine .rank-medal{box-shadow:0 0 0 4px #fffdf1}.leaderboard-list{list-style:none;padding:0;margin:16px 0 0}.leaderboard-list li{display:flex;align-items:center;gap:10px;text-align:left;border-top:1px solid #bdc6aa;padding:10px 2px}.leaderboard-list .gardener-portrait{width:38px;height:48px}.leaderboard-list strong{flex:1;overflow-wrap:anywhere;font-size:14px}.row-rank{width:28px;font-weight:700}.row-score{white-space:nowrap;font-size:13px}.leaderboard-list .mine,.your-standing{background:#fff9df;border-radius:8px}.board-footnote{font:italic 14px var(--font);color:#677756;padding-top:12px}.consent-portrait{width:58px;height:70px;margin-top:16px}.empty-board{padding:24px 8px;font-family:var(--font)}@media(max-width:360px){.leaderboard-world{padding:16px 9px}.podium{gap:5px}.gardener-portrait{width:66px;height:86px}.podium-place:first-child .gardener-portrait{width:80px;height:104px}.podium-place strong{font-size:12px}.row-score{font-size:11px}}

.gardener-portrait{position:relative;overflow:visible}.portrait-rig{position:absolute;width:100%;aspect-ratio:1;bottom:0}.gardener-portrait .portrait-rig img{position:absolute;object-fit:contain;max-width:none}

.join-disclosure{border-left:3px solid #9aaa80;padding:4px 16px;margin:12px 0}.join-disclosure p{white-space:pre-wrap;overflow-wrap:anywhere}.join-disclosure h3{font-family:var(--font)}

.community-gathering{position:absolute;inset:70px 18px 48px;display:flex;justify-content:center;align-items:end;gap:0}.community-gathering img{width:23%;max-width:90px;height:125px;object-fit:contain;image-rendering:pixelated}.community-gathering img:nth-child(even){margin-bottom:10px}.sign{white-space:normal;text-align:center;width:max-content;font-size:12px}.target-progress{display:flex;align-items:center;gap:18px;margin:20px 0;padding:14px 16px;background:#edf0df;border-radius:14px}.target-sprite{width:76px;height:96px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.target-counts{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.target-score{font-size:25px;line-height:32px}.target-counts progress{width:100%;flex:none}.target-counts .eyebrow{font-size:10px;letter-spacing:1.4px}

.referral-gathering{display:flex;justify-content:center;gap:8px;padding:16px 0;background:linear-gradient(transparent,#dce5c8);border-radius:16px;margin:16px 0}.referral-link{height:auto;min-height:48px;width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #9aa77e;border-radius:8px;margin-top:12px}article>progress{width:100%;margin:12px 0}

.quest-awards{border-left:3px solid var(--sage,#73876a);padding:4px 16px;margin:18px 0}.quest-awards h4{margin:18px 0 6px}.quest-awards progress{width:100%;accent-color:#758653}.quest-award-history{margin:18px 0}.quest-awards details{margin-top:14px;white-space:pre-line}

/* Approved reward preview: pixel cosmetics, illustrated physical parcel, shared app typography. */
.quest-awards{border-left:0;padding:0}.quest-reward{padding:18px 0;border-top:1px solid var(--line)}.reward-heading{display:flex;gap:14px;align-items:center}.quest-awards .reward-heading h4{font-size:18px;line-height:24px;margin:0}.reward-icon{width:58px;height:58px;object-fit:contain;flex:none}.reward-icon-mini{padding:9px}.reward-kind{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.6px;padding:3px 7px;border-radius:5px;background:#e6ecd9;color:#476340;margin-top:5px}.reward-kind.physical{background:#f3e3b7;color:#77582d}.reward-copy{margin-top:10px;font-size:14px}.reward-copy.with-icon{margin-left:72px}.reward-prize-name{font-weight:650;color:#66502f}.reward-eligibility{white-space:pre-line}.quest-awards progress{display:block;margin:8px 0;height:9px}@media(max-width:360px){.reward-copy.with-icon{margin-left:0}}

.counting-hint{color:#345a3d;font-weight:600;line-height:1.6}.lucky-progress{margin-top:12px;padding:14px;border:1px solid #93a575;border-radius:12px;background:#e7ecd9}.lucky-progress strong{display:block;color:#315537;font-size:1.05rem}.lucky-progress progress{display:block;width:100%;margin-top:10px}

.actions{margin-bottom:18px}.actions>button{flex:1}.quest-join-dialog{text-align:left}.quest-join-dialog .gardener-portrait{margin:12px auto}.join-error{color:#a04439}

/* Error feedback stays separate from progress, invitation successes and empty states. */
#error,.join-error,.error-message{color:#A33131}.error-notice{background:#F8E8E6;border-radius:10px;padding:10px 12px 4px;min-width:0}.error-message{margin:0;overflow-wrap:break-word}.error-recovery{background:transparent;color:#A33131;text-decoration:underline;padding:10px 2px;min-height:44px;text-align:left}
/* Personal autumn collection: same cream/sage utility language as the quest. */
.autumn-collection{margin:20px 0;padding:18px;background:#edf0df;border:1px solid #b8c2a5;border-radius:16px}.autumn-collection h3{margin:4px 0 8px}.autumn-items{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.autumn-items li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;color:#64715e;background:#f8f6ec;border:1px solid #d3d8c6;border-radius:10px}.autumn-items .collected{color:#2c4936;border-color:#97ae85;background:#e0e9d5}.autumn-items strong{font-variant-numeric:tabular-nums;font-size:1.2rem}@media(max-width:360px){.autumn-items{grid-template-columns:1fr}}
