:root{--green:#244e39;--gold:#ffc52e;--muted:#73856f;--glass:rgba(255,255,244,.83)}*{box-sizing:border-box}body{margin:0;color:var(--green);font-family:Nunito,sans-serif;overflow:hidden;background:#dceccb}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #e99718;outline-offset:4px}#world{position:fixed;inset:0}#world canvas{display:block;width:100%;height:100%;touch-action:none}header{position:fixed;top:24px;left:30px;right:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}header>*{pointer-events:auto}.brand{font-family:'Lilita One',sans-serif;font-size:28px;text-decoration:none;color:var(--green);display:flex;gap:10px;align-items:center}.brand:first-letter{font-size:34px}.season{display:flex;align-items:center;gap:12px;font-size:26px}.season span{font-size:14px;font-weight:900}.season small{display:block;font-size:8px;letter-spacing:2px;margin-top:4px;color:#74876a}.wallet{display:flex;align-items:center;gap:12px;background:#ffffeddf;border:1px solid #fff;border-radius:18px;padding:10px 20px;box-shadow:0 8px 25px #45602a0b}.wallet strong{font-size:25px}.wallet>span:last-child{font-size:11px;font-weight:900}.wallet small{display:block;font-size:8px;letter-spacing:2px;color:#9b9663}.coin{background:#ffcd44;border:2px solid #eeb63c;border-radius:50%;color:#ae761b;width:32px;height:32px;text-align:center;line-height:28px}.glass{background:var(--glass);border:1px solid #fffffff0;box-shadow:0 12px 35px #33552b10,inset 0 1px 0 white;backdrop-filter:blur(18px)}.intro{position:fixed;left:30px;top:128px;width:255px;padding:25px;border-radius:24px}.eyebrow{font-family:'Press Start 2P',monospace;font-size:11px;letter-spacing:1px;color:#929d72}h1,h2,h3{font-family:'Lilita One',sans-serif;font-weight:400}h1{font-size:37px;line-height:1.05;margin:18px 0 14px}p{font-size:13px;line-height:1.7;color:var(--muted)}.level{display:flex;justify-content:space-between;font-size:10px;font-weight:900;margin-top:24px}.track{height:6px;background:#e2e9d4;border-radius:10px;margin:8px 0 20px;overflow:hidden}.track i{display:block;background:#7eaf5b;height:100%;transition:width .4s}.tip{font-size:12px;line-height:1.6;background:#eaf0dc;border-radius:12px;padding:12px}.scene-label{position:fixed;top:105px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:2px;font-weight:900;white-space:nowrap}.dot{width:6px;height:6px;background:#6d9951;border-radius:50%}.scene-label span:last-child{font-size:10px;letter-spacing:0;font-weight:700}.plant-panel{position:fixed;right:30px;top:128px;width:235px;border-radius:24px;padding:20px}.plant-panel h3{font-size:24px;margin:6px 0}.plant-panel .subtitle{color:var(--muted);font-size:11px;margin-bottom:16px}.plant-panel .meter{display:flex;justify-content:space-between;font-size:11px;font-weight:800;margin-top:12px}.plant-panel .track{margin:6px 0 12px}.plant-panel button,.primary{background:var(--green);color:#fff;border-radius:12px;padding:12px 18px;font-weight:900;width:100%;margin-top:10px}.plant-panel .seed-option{background:#f4f6e9;color:var(--green);display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border:1px solid #dfe8cf;font-size:12px}.plant-panel small{display:block;color:var(--muted);line-height:1.5;margin-top:10px;font-size:10px}.toolbar{position:fixed;bottom:115px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:7px;border-radius:19px}.toolbar button{width:79px;background:transparent;border-radius:13px;padding:8px 4px;font-size:23px;position:relative}.toolbar span{display:block;font-size:9px;font-weight:900;margin-top:4px}.toolbar .active{background:#ffda6c;box-shadow:inset 0 1px #fff4aa}.toolbar kbd{position:absolute;right:6px;top:3px;font-size:8px;color:#7d8055}nav{position:fixed;bottom:29px;left:50%;transform:translateX(-50%);display:flex;padding:7px;border-radius:23px;gap:5px}nav button{background:transparent;width:87px;border-radius:16px;padding:9px 5px;font-size:23px;position:relative}nav span{display:block;font-size:10px;font-weight:900;margin-top:4px}nav .active{background:#e0ebcc;color:#416c38}nav b{position:absolute;top:4px;right:14px;font-size:9px;background:#ffc52e;border-radius:10px;padding:0 4px}.settings{position:fixed;right:30px;bottom:36px;display:flex;gap:8px}.settings button{background:#ffffedc9;width:34px;height:34px;border-radius:50%;font-weight:900}.mode{position:fixed;bottom:8px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.7px;white-space:nowrap;color:#657957}#toast{position:fixed;bottom:220px;left:50%;transform:translate(-50%,15px);padding:13px 23px;border-radius:14px;color:#fff;background:#244e39ec;font-size:13px;font-weight:800;opacity:0;transition:.2s;pointer-events:none;max-width:90%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #fff;background:#fafbf0f5;border-radius:30px;color:var(--green);padding:28px;max-width:760px;width:calc(100% - 32px);max-height:85vh;box-shadow:0 30px 100px #1b3e3730}dialog::backdrop{background:#25483938;backdrop-filter:blur(7px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head h2{font-size:34px;margin:8px 0}.modal-head button{border-radius:50%;width:36px;height:36px;background:#eaf0df}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.card{border:1px solid #e1e8d2;background:white;border-radius:20px;padding:20px}.card h3{font-size:23px;margin:10px 0}.card .icon{font-size:38px}.card p{font-size:12px;margin:5px 0}.card button{background:#f5ce5c;border-radius:10px;padding:10px 16px;font-weight:900;margin-top:12px}.duck-card{padding-top:120px;background-image:url('../duck-characters-1.png');background-size:400% auto;background-repeat:no-repeat;background-position-y:43%;position:relative;overflow:hidden}.duck-card>div{background:#fffff4eb;margin:-5px -20px -20px;padding:12px 20px;backdrop-filter:blur(15px)}.journal-row{padding:12px;border-bottom:1px solid #e0e7d3;font-size:13px}.journal-row time{font-size:10px;color:var(--muted);margin-right:14px}.rescue-health{height:14px;background:#e8e7d5;border-radius:8px;overflow:hidden}.rescue-health i{display:block;height:100%;background:#89b761;transition:width .3s}.empty{padding:20px;background:white;border-radius:15px;line-height:1.8;font-size:13px}@media(max-width:1000px){.intro{width:210px;left:18px;padding:19px}.intro h1{font-size:30px}.plant-panel{width:205px;right:18px;padding:15px}.season{display:none}}@media(max-width:700px){header{top:14px;left:16px;right:16px}.brand{font-size:23px}.wallet{padding:6px 12px;gap:7px}.wallet strong{font-size:20px}.intro{top:78px;left:14px;width:174px;padding:14px;border-radius:18px}.intro h1{font-size:25px;margin:10px 0}.intro p,.intro .level,.intro>.track{display:none}.intro .tip{font-size:10px;padding:8px;margin-top:12px}.eyebrow{font-size:11px}.plant-panel{top:auto;bottom:195px;right:12px;width:175px;max-height:260px;overflow:auto;border-radius:18px;padding:12px}.plant-panel h3{font-size:20px}.plant-panel .subtitle{margin-bottom:8px}.plant-panel .seed-option{padding:8px;font-size:10px}.plant-panel button{padding:8px;margin-top:6px}.scene-label{top:80px;left:auto;right:15px;transform:none;font-size:7px;gap:5px;letter-spacing:.5px}.scene-label span:last-child{font-size:8px}.toolbar{bottom:100px;padding:5px}.toolbar button{width:65px;font-size:20px}nav{bottom:24px;gap:0;padding:5px;border-radius:19px;width:calc(100% - 24px);justify-content:space-around}nav button{width:16%;font-size:20px;padding:8px 1px}nav span{font-size:8px}.settings{right:14px;bottom:170px;flex-direction:column}.settings button{width:28px;height:28px}.mode{font-size:6px;bottom:7px}.cards{gap:10px}.card{padding:14px}.duck-card{padding-top:100px}.duck-card>div{margin:-5px -14px -14px;padding:12px 14px}dialog{padding:20px}#toast{bottom:180px;font-size:11px}.toolbar kbd{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
form{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}input{border:1px solid #dce4ce;background:white;border-radius:10px;padding:12px;font:inherit;color:var(--green);min-width:0;flex:1}form button,[data-clan-join]{background:#f5ce5c;border-radius:10px;padding:10px 14px;font-weight:900}.chat{max-height:260px;overflow:auto}.chat p{background:white;border-radius:10px;padding:10px}
.brand .duck-footprint{width:30px;height:30px;filter:drop-shadow(0 2px 0 #e9a22422);flex-shrink:0}.intro .track{border-radius:1px}.intro .track i{background:repeating-linear-gradient(90deg,#79a850 0 12px,#92ba63 12px 14px)}
@media(max-width:700px){.settings{bottom:auto;top:108px;right:14px;flex-direction:row;gap:5px}.plant-panel{max-height:275px}.brand .duck-footprint{width:26px;height:26px}}
select{border:1px solid #dce4ce;border-radius:10px;padding:12px;font:inherit;color:var(--green);background:white;min-width:0;max-width:100%}.chip,.secondary{background:#e7edd9!important;color:#31543c!important;border-radius:10px;padding:10px 14px;margin:5px 5px 0 0;font-weight:800}.plant-panel .secondary{font-size:10px}nav button{width:77px}@media(max-width:700px){nav button{width:14.2%;font-size:18px}nav span{font-size:7px}}
#overlay{position:fixed;inset:0;pointer-events:none;z-index:2}
.bubble{position:absolute;left:0;top:0;pointer-events:auto;display:flex;align-items:center;gap:6px;padding:6px 11px 6px 8px;border-radius:16px;background:#fffdf3;border:2px solid #fff;box-shadow:0 6px 0 #00000014,0 10px 22px #2d4a2420;font-weight:900;font-size:12px;color:var(--green);translate:-50% -100%;animation:bob 1.6s ease-in-out infinite;white-space:nowrap}
.bubble::after{content:'';position:absolute;left:50%;bottom:-7px;translate:-50% 0;border:7px solid transparent;border-bottom:0;border-top-color:#fffdf3}
.bubble span{font-size:18px;line-height:1}
.bubble.thirsty{background:#e4f5fb;color:#1f6680}.bubble.thirsty::after{border-top-color:#e4f5fb}
.bubble.sick{background:#fde9e4;color:#a1412b}.bubble.sick::after{border-top-color:#fde9e4}
.bubble.ready{background:#ffd34c;color:#6b4a07;box-shadow:0 6px 0 #c9971f,0 0 0 6px #ffd34c55}.bubble.ready::after{border-top-color:#ffd34c}
.bubble.dead{background:#efe6d4;color:#7a6345}.bubble.dead::after{border-top-color:#efe6d4}
.bubble.lock{background:#ffffffc9;padding:5px 8px;animation:none;opacity:.8}.bubble.lock span{font-size:14px}
.bubble.lock.next{opacity:1;background:#fff}
.bubble.empty{background:#eef6e2}.bubble.empty::after{border-top-color:#eef6e2}
@keyframes bob{50%{margin-top:-6px}}
#you{position:absolute;left:0;top:0;translate:-50% -100%;font-family:'Press Start 2P',monospace;font-size:11px;color:#fff;background:var(--green);padding:5px 7px;border-radius:6px;box-shadow:0 3px 0 #163426}
#you::after{content:'';position:absolute;left:50%;bottom:-5px;translate:-50% 0;border:5px solid transparent;border-bottom:0;border-top-color:var(--green)}
.float{position:absolute;translate:-50% -100%;font-family:'Lilita One',sans-serif;font-size:26px;color:#fff;-webkit-text-stroke:1.5px #00000040;text-shadow:0 3px 0 #0000002a;animation:floatUp 1.5s ease-out forwards;pointer-events:none}
.float.gold{color:#ffd34c;-webkit-text-stroke:1.5px #8a5d07}.float.green{color:#8fd45c;-webkit-text-stroke:1.5px #2f5f1d}.float.blue{color:#8fd8f2;-webkit-text-stroke:1.5px #1f6680}
@keyframes floatUp{0%{opacity:0;margin-top:10px;scale:.6}15%{opacity:1;scale:1.15}100%{opacity:0;margin-top:-70px;scale:1}}
#coach{position:fixed;left:50%;bottom:118px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:14px;max-width:min(560px,calc(100% - 32px));padding:14px 18px;border-radius:20px}
#coach p{margin:0;font-size:15px;line-height:1.45;color:var(--green);font-weight:700}#coach b{color:#c47d0e}
#coach .skip{background:transparent;color:var(--muted);font-size:10px;font-weight:800;text-decoration:underline;white-space:nowrap;padding:4px}
#hand{position:fixed;left:0;top:0;z-index:4;font-size:38px;pointer-events:none;translate:-20% 0;animation:tap 1s ease-in-out infinite;filter:drop-shadow(0 4px 4px #0003)}
@keyframes tap{50%{margin-top:12px;scale:.9}}
.plant-panel .primary-action{background:#ffc52e;color:#5b3d05;font-size:15px;padding:14px;box-shadow:0 4px 0 #d39a14;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 4px 0 #d39a14,0 0 0 7px #ffc52e66}}
.plant-panel .subtitle.alert{color:#b4562f;font-weight:800}
.plant-panel .all-good{margin-top:12px;padding:12px;border-radius:12px;background:#eaf3dd;color:#3f6a35;font-weight:900;font-size:12px;text-align:center}
.plant-panel .extras{display:flex;gap:6px}.plant-panel .extras button{margin:8px 0 0!important;width:auto;flex:1;padding:9px 6px;font-size:11px}
nav button.is-new::after{content:'NEW';position:absolute;top:-6px;right:6px;font-family:'Press Start 2P',monospace;font-size:6px;background:#e9572f;color:#fff;padding:3px 4px;border-radius:5px}
body.first-steps nav,body.first-steps #social,body.first-steps #network{display:none}
body.first-steps #coach{bottom:40px}
@media(max-width:700px){
 .intro{display:none}
 .plant-panel{left:12px;right:12px;width:auto;top:auto;bottom:92px;max-height:42vh;padding:14px 16px}
 body.first-steps .plant-panel{bottom:16px}
 #coach{top:64px;bottom:auto;padding:10px 12px;gap:8px}#coach p{font-size:12px}
 body.first-steps #coach{bottom:auto}
 .bubble{font-size:10px;padding:4px 8px 4px 6px}.bubble span{font-size:15px}
 #hand{font-size:30px}
}
[hidden]{display:none!important}
@media(max-width:700px){#coach{left:12px;right:12px;transform:none;max-width:none;flex-direction:column;align-items:flex-start;gap:4px}#coach .skip{align-self:flex-end;padding:0}.scene-label{display:none}}
#village-toggle{position:fixed;top:126px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:14px;font-size:16px;font-weight:900;color:var(--green)}#village-toggle span{font-size:12px}
body.first-steps #village-toggle{display:none}
.neighbor-tag{position:absolute;left:0;top:0;translate:-50% -100%;pointer-events:auto;display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:#fffdf3;border:2px solid #fff;box-shadow:0 5px 0 #00000014;font-weight:900;font-size:12px;color:var(--green);white-space:nowrap}
.neighbor-tag small{font-size:9px;color:var(--muted)}.neighbor-tag i{width:8px;height:8px;border-radius:50%;background:#b9b49b}.neighbor-tag i.on{background:#5cbf4a;box-shadow:0 0 0 3px #5cbf4a33}
.neighbor-tag.free{background:#ffffffb0;color:#8b8f78;font-size:10px;padding:4px 8px}
body:not(.village-view) .neighbor-tag{display:none}
#village-note{position:fixed;left:50%;bottom:118px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:14px;max-width:min(520px,calc(100% - 32px));padding:14px 18px;border-radius:20px}
#village-note p{margin:0;font-size:14px;color:var(--green);font-weight:700}#village-note b{color:#c47d0e}
#village-note button{background:var(--green);color:#fff;border-radius:12px;padding:10px 14px;font-weight:900;white-space:nowrap}
body.village-view .intro{display:none}
.neighbor-plots{display:flex;gap:6px;margin:12px 0 4px}.neighbor-plots .mini{position:relative;flex:1;text-align:center;padding:8px 0;background:#f4f6e9;border-radius:10px;font-size:16px}.neighbor-plots .mini.locked{opacity:.5;font-size:12px}
.neighbor-plots .mini i{position:absolute;top:-5px;right:-3px;background:#e9572f;color:#fff;font-style:normal;font-size:9px;font-weight:900;border-radius:8px;padding:1px 5px}
.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5cbf4a;margin-right:4px}
@media(max-width:700px){#village-toggle{top:auto;bottom:calc(92px + 42vh + 10px);left:auto;right:14px;transform:none;padding:7px 11px}#village-note{top:64px;bottom:auto;left:12px;right:12px;transform:none;max-width:none;flex-direction:column;align-items:flex-start;gap:8px}.neighbor-tag{font-size:9px;padding:4px 7px}}
#village-toggle{top:96px}.scene-label{display:none}
header,.plant-panel,nav,.settings,#coach,#village-note,#village-toggle,.intro{z-index:3}
body.village-view:not(.visiting) .plant-panel{display:none}
@media(max-width:700px){#village-toggle{top:64px;bottom:auto;left:14px;right:auto;transform:none;padding:7px 11px}body.first-steps #village-toggle,body:has(#coach:not([hidden])) #village-toggle{display:none}#village-note{top:auto;bottom:96px}}
/* === Menus: a village character runs each screen === */
dialog{max-width:900px;padding:0;overflow:hidden auto;background:linear-gradient(180deg,#fff9e6 0%,#fbf6e4 40%,#f6f3e2 100%)}
dialog .modal-head{position:sticky;top:0;z-index:2;margin:0;padding:18px 26px 12px;background:linear-gradient(180deg,#fff7df,#fff7dff2 70%,#fff7df00)}
dialog .modal-head h2{font-size:36px;margin:4px 0 0;color:#2d5232;text-shadow:0 2px 0 #fff}
dialog .modal-head .eyebrow{color:#b5873b}
#modal-body{padding:0 26px 26px}
.npc-stage{position:relative;display:flex;align-items:flex-end;gap:18px;min-height:210px;margin:0 -26px 18px;padding:0 26px;background:radial-gradient(ellipse at 22% 100%,#ffe6a6 0%,#ffe6a600 60%),linear-gradient(180deg,#bfe6f7 0%,#e2f3d6 70%,#9fd067 70.5%,#83bd4f 100%);border-bottom:6px solid #6ea23f}
.npc-portrait{background:none;padding:0;flex:0 0 auto;width:230px;align-self:flex-end;margin-bottom:-6px;cursor:pointer}
.npc-portrait img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 12px #3a5a2a40);transform-origin:50% 100%;animation:npcBreath 3.2s ease-in-out infinite}
.npc-stage.talking .npc-portrait img{animation:npcTalk .32s ease-in-out infinite,npcBreath 3.2s ease-in-out infinite}
@keyframes npcBreath{50%{transform:scale(1.015,1.03) translateY(-2px)}}
@keyframes npcTalk{50%{rotate:-1.5deg}}
.npc-stage.no-art .npc-portrait{width:0}
.npc-bubble{position:relative;align-self:center;flex:1;max-width:460px;background:#fff;border-radius:22px;padding:16px 20px 12px;box-shadow:0 6px 0 #00000012,0 16px 30px #2f4b2a1f;margin-bottom:24px}
.npc-bubble::before{content:'';position:absolute;left:-14px;bottom:28px;border:12px solid transparent;border-right-color:#fff;border-left:0}
.npc-bubble b{font-family:'Lilita One',sans-serif;font-size:18px;color:#c47d0e;letter-spacing:.3px}
.npc-bubble p{margin:4px 0 6px;font-size:16px;line-height:1.5;color:#2d4a31;font-weight:700;min-height:48px}
.npc-bubble small{font-size:10px;color:#9aa18a;font-weight:800}
.section-title{font-family:'Lilita One',sans-serif;font-weight:400;font-size:20px;color:#2d5232;margin:20px 0 10px}.section-title small{font-family:Nunito,sans-serif;font-size:11px;color:var(--muted);margin-left:8px}
.lede{font-size:14px;color:#56704f;font-weight:700}
.price{display:inline-flex;align-items:center;gap:5px;font-weight:900}.coin-ico{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#ffcd44 45%,#e3a224);box-shadow:inset 0 -2px 0 #c58614;display:inline-block}
.cards.items,.cards.seeds{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.card.item,.card.seed{padding:12px 12px 14px;border:0;background:#fff;box-shadow:0 5px 0 #e4dcc0,0 10px 20px #3a4d2a14;border-radius:20px;text-align:center}
.item-art{position:relative;display:grid;place-items:center;height:132px;border-radius:14px;background:radial-gradient(circle at 50% 60%,#ffffff 0%,#f1f7e4 70%);overflow:hidden}
.item-art img{max-width:86%;max-height:120px;object-fit:contain;filter:drop-shadow(0 8px 8px #0002);transition:transform .2s}
.card:hover .item-art img{transform:scale(1.06) rotate(-2deg)}
.item-art.medicine{background:radial-gradient(circle at 50% 60%,#fff 0%,#fdeae4 70%)}
.art-fallback{font-size:56px}
.owned{position:absolute;right:8px;top:8px;background:#2d5232;color:#fff;font-weight:900;font-size:12px;padding:3px 8px;border-radius:10px}
.lock{position:absolute;inset:auto 8px 8px auto;background:#00000088;color:#fff;font-size:11px;font-weight:900;padding:4px 8px;border-radius:10px}
.card.item h3,.card.seed h3{font-size:20px;margin:10px 0 4px}.card.item p{font-size:12px;min-height:40px}
.card .buy{width:100%;background:linear-gradient(180deg,#8fd45c,#5aa83a);color:#fff;font-size:16px;box-shadow:0 4px 0 #3f7d27;border-radius:12px;padding:10px;text-shadow:0 1px 0 #2f6a1f}
.card .buy:disabled{filter:grayscale(.8)}
.card.seed dl{display:grid;grid-template-columns:auto auto;gap:4px 10px;margin:6px 4px 0;font-size:12px;text-align:left}.card.seed dt{color:var(--muted);font-weight:800}.card.seed dd{margin:0;text-align:right;font-weight:900}
.card.seed.locked .item-art img{filter:grayscale(1) opacity(.55)}
.cards.ducks .duck-card{min-height:330px;padding-top:200px;background-size:400% auto;background-position-y:40%;box-shadow:0 5px 0 #e4dcc0;border:0;border-radius:22px}
.duck-card.current{outline:4px solid #ffc52e}.duck-card .badge{position:absolute;top:12px;left:12px;background:#ffc52e;color:#5b3d05;font-weight:900;font-size:11px;padding:4px 10px;border-radius:10px}
.quest-board{display:grid;gap:12px}
.quest{display:flex;align-items:center;gap:16px;background:#fff;border-radius:20px;padding:14px 16px;box-shadow:0 5px 0 #e4dcc0}
.quest.ready{background:linear-gradient(90deg,#fff8d6,#fff);box-shadow:0 5px 0 #f0c54a}.quest.done{opacity:.6}
.quest-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:#eef6e2;font-size:30px;flex:0 0 auto}
.quest-text{flex:1}.quest-text h3{margin:0;font-size:19px}.quest-text p{margin:2px 0 8px}
.quest-track{position:relative;height:16px;border-radius:8px;background:#ece7d2;overflow:hidden}.quest-track i{display:block;height:100%;background:repeating-linear-gradient(90deg,#79a850 0 12px,#92ba63 12px 14px)}.quest-track span{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;font-weight:900;color:#2d4a31}
.quest button{background:linear-gradient(180deg,#ffd75e,#f2b229);color:#5b3d05;font-weight:900;border-radius:12px;padding:10px 14px;box-shadow:0 4px 0 #c88f16;white-space:nowrap}
.quest button:disabled{opacity:1;background:#efe9d2;box-shadow:0 4px 0 #ddd5b8;color:#8a8a70}
.patient{display:flex;align-items:center;gap:18px;background:#fff;border-radius:22px;padding:16px 18px;box-shadow:0 5px 0 #e4dcc0}.patient.saved{background:#f0f8e3}
.patient-plant{font-size:58px;width:84px;height:84px;display:grid;place-items:center;border-radius:20px;background:#fdeee4}.patient h3{margin:0;font-size:21px}.patient p{margin:4px 0 8px}
.primary.big{font-size:17px;padding:15px;margin-top:16px;background:linear-gradient(180deg,#3f7a4b,#244e39);box-shadow:0 4px 0 #173426}
.cards.treatments{grid-template-columns:repeat(4,1fr)}
.treatment{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border-radius:18px;padding:10px 8px 14px;box-shadow:0 5px 0 #e4dcc0;transition:transform .1s}.treatment:active{transform:translateY(3px);box-shadow:0 2px 0 #e4dcc0}
.treatment .item-art{width:100%;height:90px}.treatment .item-art img{max-height:80px}.treatment .art-fallback{font-size:44px}.treatment b{font-family:'Lilita One',sans-serif;font-weight:400;font-size:16px}.treatment small{font-size:10px;color:var(--muted);text-align:center}
.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:4px dotted #d6cfae}
.timeline li{position:relative;background:#fff;border-radius:14px;padding:10px 14px;margin:0 0 10px 10px;box-shadow:0 3px 0 #e8e1c6}.timeline li::before{content:'';position:absolute;left:-23px;top:14px;width:12px;height:12px;border-radius:50%;background:#ffc52e;border:3px solid #fff8e0}
.timeline time{font-size:10px;color:var(--muted);font-weight:900}.timeline p{margin:2px 0 0;font-size:13px;color:#2d4a31;font-weight:700}
.guide-steps{display:grid;gap:10px}.guide-steps article{display:flex;gap:14px;align-items:center;background:#fff;border-radius:18px;padding:12px 16px;box-shadow:0 4px 0 #e4dcc0}.guide-steps span{font-size:30px;width:52px;text-align:center}.guide-steps h3{margin:0;font-size:18px}.guide-steps p{margin:2px 0 0}
.note{font-size:11px;text-align:center}
@media(max-width:700px){
 dialog .modal-head{padding:14px 16px 8px}dialog .modal-head h2{font-size:26px}#modal-body{padding:0 14px 18px}
 .npc-stage{min-height:150px;margin:0 -14px 14px;padding:0 12px;gap:8px}.npc-portrait{width:130px}
 .npc-bubble{padding:10px 12px 8px;margin-bottom:14px}.npc-bubble b{font-size:15px}.npc-bubble p{font-size:13px;min-height:40px}
 .cards.items,.cards.seeds{grid-template-columns:1fr 1fr}.item-art{height:100px}.item-art img{max-height:90px}
 .cards.treatments{grid-template-columns:1fr 1fr}.cards.ducks{grid-template-columns:1fr 1fr}.cards.ducks .duck-card{min-height:250px;padding-top:140px}
 .quest{gap:10px;padding:12px}.quest-icon{width:44px;height:44px;font-size:24px}.quest button{padding:8px 10px;font-size:12px}
}
.card.item,.card.seed{display:flex;flex-direction:column}.card.item .buy{margin-top:auto}.card.item p{flex:1}
.trade{display:flex;gap:6px;margin-top:auto}.trade button{flex:1;padding:9px 4px;font-size:14px}.card .sell{background:#fff;color:#2d5232;border:2px solid #cfe2b8;border-radius:12px;font-weight:900;box-shadow:0 4px 0 #dfe9cf}
.cards.ducks{grid-template-columns:repeat(4,1fr)}.cards.ducks .duck-card{min-height:300px;padding-top:170px;background-position-y:42%}
@media(max-width:700px){.cards.ducks{grid-template-columns:1fr 1fr}}
.plant-panel .extras{flex-wrap:wrap}.plant-panel .extras .boost{flex-basis:100%;background:linear-gradient(180deg,#ffe27a,#f6b72c)!important;color:#5b3d05!important;box-shadow:0 3px 0 #c8901a;border:0}
.plant-panel .guide-link{font-size:10px;padding:3px 8px;margin:0 0 5px!important;width:auto;background:transparent!important;text-decoration:underline}
@media(max-width:700px){.camera-reset{left:14px;right:auto!important;top:110px!important;font-size:11px}}
/* Compact, floating game HUD. The canvas always owns the full viewport. */
.ui-icon,.hud-icon{width:20px;height:20px;object-fit:contain;display:inline-block;vertical-align:middle;flex-shrink:0}.nav-icon{width:32px;height:32px;object-fit:contain;display:block;margin:auto}.wallet .coin{background:none;border:0;width:32px;height:32px}.coin-ico{background:none;box-shadow:none}.price{flex-wrap:wrap}.price .ui-icon{width:18px;height:18px}.need-more{display:block!important;color:#c65f54!important;font-size:10px!important;margin:2px 0!important;font-weight:800}.too-costly{color:#c65f54}.seed-row{display:flex;align-items:center;gap:7px}.seed-row .seed-option{flex:1;min-width:0}.seed-option>span{display:flex;align-items:center;gap:5px}.seed-thumb{width:27px;height:27px;object-fit:contain}.plant-panel .seed-info{width:23px;height:23px;border-radius:50%;padding:0;margin:8px 0 0;background:#edf1df;color:#56714f;border:1px solid #cbd7b8;font:900 12px Nunito;flex-shrink:0}.plant-panel .guide-link{width:auto;display:block;background:transparent;color:#58734f;font-size:10px;padding:3px 0;text-decoration:underline}.plant-panel .panel-close{position:absolute;top:8px;right:8px;width:26px;height:26px;margin:0;padding:0;border-radius:50%;background:#eaf0df;color:#31543c;font-size:18px}.plant-panel{max-height:calc(100vh - 180px);overflow:auto;padding-top:24px}.plant-panel .meter .ui-icon{width:15px;height:15px}.plant-panel .seed-option{font-size:11px;padding:8px}.plant-panel .seed-option strong{text-align:right;font-size:11px}.plant-panel .primary-action,.plant-panel .secondary{display:inline-flex;align-items:center;justify-content:center;gap:5px}#progress-hud{position:fixed;left:18px;top:78px;z-index:3;width:170px;padding:8px 12px;border-radius:13px}#progress-hud .level{margin:0;font-size:9px;align-items:center;gap:6px}#progress-hud .level:before{content:'';width:22px;height:22px;background:url('art/ui/star.png') center/contain no-repeat;flex-shrink:0}#progress-hud .track{height:4px;margin:4px 0 0}.playing .intro,.playing .season,.playing .scene-label,.playing #you{display:none!important}.playing header .brand{font-size:19px}.playing header{top:14px;left:18px;right:18px}.playing .wallet{padding:6px 11px;gap:7px}.playing .wallet strong{font-size:20px}.playing .mode{opacity:.6}.playing nav{bottom:16px;padding:4px;border-radius:18px;gap:1px}.playing nav button{width:64px;padding:5px 4px}.playing nav span{font-size:8px;margin:1px 0 0}.playing nav button.is-new:after{display:none}.playing .plant-panel{width:235px;right:18px;top:88px;bottom:auto}.playing .settings{right:18px;bottom:20px;top:auto;flex-direction:row;gap:5px}.settings{align-items:center}.camera-reset{position:static!important;padding:0!important;width:34px;height:34px;border-radius:50%!important;background:#ffffedc9!important;font-size:22px;box-shadow:none!important}.playing #village-toggle{left:18px;top:135px;bottom:auto;transform:none;padding:6px 9px;font-size:10px}.playing #village-toggle span{font-size:10px}nav,.settings,header,#progress-hud,#village-toggle,.mode,.ambient-faded,.intro,.season{transition:opacity .6s,transform .6s}.ambient-faded{opacity:0!important;pointer-events:none!important}.hud-idle nav,.hud-idle .settings,.hud-idle #progress-hud,.hud-idle #village-toggle,.hud-idle .mode,.hud-idle header .brand{opacity:0;pointer-events:none;visibility:hidden}.hud-idle .wallet{padding:4px 8px;border:0;background:#ffffedb0;gap:4px}.hud-idle .wallet strong{font-size:15px}.hud-idle .wallet .coin{width:22px;height:22px}.hud-idle .wallet>span:last-child{font-size:8px}.hud-idle .wallet small{display:none}#hud-handle{position:fixed;bottom:8px;left:50%;transform:translateX(-50%);z-index:3;width:44px;height:20px;border-radius:12px;background:#fff9ddc0;color:#597244;font-size:14px;line-height:10px}#toast{z-index:8;bottom:100px;transition:opacity .6s,transform .6s}#toast[data-critical="true"]{pointer-events:auto;background:#8b4937}#toast button{margin-left:12px;border-radius:50%;background:#fff2;color:#fff}#seed-sheet{z-index:12;max-width:380px;padding:24px;border-radius:24px}#seed-sheet h2{font-size:28px;margin:0 20px 12px 0}#seed-sheet .shortage{color:#bd5b4b;font-size:18px;font-weight:900}#seed-sheet dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:12px}#seed-sheet dd{text-align:right;margin:0;font-weight:900}.sheet-close{position:absolute;right:12px;top:12px;border-radius:50%;width:28px;height:28px}.earn-options{display:grid;gap:6px}.earn-options button{display:flex;align-items:center;gap:9px;padding:10px;background:#eff4e2;border-radius:12px;text-align:left;font-size:12px;font-weight:900}.earn-options button span{margin-left:auto}.get-seed{display:block;text-align:center;text-decoration:none}.npc-bubble{transition:opacity .6s}#progress-hud:not(.playing *){pointer-events:none}body:not(.playing) #progress-hud{top:auto;bottom:24px;left:24px}#seed-sheet .primary{display:block}.plant-panel .all-good{animation:none}
@media(max-width:700px){.playing .brand{display:none}.playing #progress-hud{top:14px;left:12px;width:145px;padding:6px 8px}.playing #progress-hud .level{font-size:8px}.playing header{right:12px;left:auto}.playing .wallet strong{font-size:18px}.playing .settings{bottom:86px;top:auto;right:12px;gap:4px}.settings .camera-reset{left:auto!important;top:auto!important;font-size:20px}.playing .settings button{width:28px;height:28px}.playing #village-toggle{left:12px;top:66px}.playing nav{bottom:14px;width:calc(100% - 24px)}.playing nav button{width:14.2%;padding:4px 1px}.nav-icon{width:28px;height:28px}.playing .plant-panel{top:auto;bottom:124px;left:auto;right:12px;width:220px;max-height:48vh;padding:20px 12px 12px}.plant-panel .seed-option{font-size:10px;padding:6px}.seed-thumb{width:22px;height:22px}.plant-panel .seed-info{width:20px;height:20px}.intro{display:block;top:75px;width:160px;padding:12px}.intro h1{font-size:21px}.intro p{display:block;font-size:10px}.first-steps .plant-panel{left:auto;right:12px;width:205px;max-height:43vh}.first-steps .settings{top:auto;bottom:14px;right:auto;left:12px}body:not(.playing) #progress-hud{bottom:60px;left:12px;width:130px}#toast{bottom:122px;font-size:11px}.hud-idle .wallet{padding:3px 7px}.hud-idle .wallet strong{font-size:14px}#village-note{font-size:10px;padding:7px 11px}#village-note p{font-size:10px}.scene-label{display:none}}
.hud-idle .neighbor-tag{opacity:0;pointer-events:none}.guide-steps .ui-icon{width:32px;height:32px}.patient-plant .ui-icon{width:56px;height:56px}
@media(max-width:700px){body:not(.playing) .season{position:fixed;display:block;top:70px;left:18px;right:18px;text-align:center}body:not(.playing) .season span{font-size:11px}body:not(.playing) .season small{font-size:6px;margin-top:1px}.first-steps #coach{top:104px}.first-steps .intro{top:176px;width:148px;padding:12px}.first-steps .intro h1{font-size:20px}.first-steps .intro p{font-size:9px}}
#progress-hud .level:before{display:none}#progress-hud .level>.hud-icon{width:22px;height:22px}
@media(max-width:700px){body:not(.playing) .season{font-size:11px;line-height:1.2}body:not(.playing) .season>span{display:block}}
@media(min-width:701px) and (max-width:1050px){.playing .settings{bottom:90px}}
#camera-help{position:fixed;left:50%;bottom:100px;translate:-50% 0;z-index:3;border-radius:14px;padding:8px 13px;font-size:11px;pointer-events:none;transition:opacity .6s}.hud-idle #camera-help{opacity:0}.earn-options .ui-icon{min-width:24px;width:24px;height:24px;display:block}
.machine-art{width:100%;height:120px}.machine-card{text-align:center;background:linear-gradient(#fffefa,#fff6de)}.machine-card.locked{background:#f1ebd9;color:#85866d}.machine-card.locked .machine-art{filter:grayscale(.65);opacity:.65}.machine-lock{color:#9a783e;font-weight:900}.machine-card .track{margin:8px 0}.machine-card small{font-size:10px}.machine-card select{width:100%;margin-top:10px}#toast button{pointer-events:auto;background:#ffe7a1;color:#52632f;padding:5px 8px;border-radius:8px;font-size:11px}
.strike-pot{padding:18px;background:#fff2bb;border-radius:18px;text-align:center}.strike-pot .price{font-size:30px}.strike-pot small{display:block;font-size:11px;margin-top:5px}.strike-pot .need-more{display:none!important}body:not(.village-view) #strike-open{display:none}
/* Bright, tactile shop categories and readable vote thresholds. */
.shop-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 22px}.shop-tabs button{border-radius:24px;padding:10px 18px;border:2px solid #fff6d0;background:linear-gradient(#fffdf0,#e9ddae);box-shadow:inset 0 3px 0 #fff9,0 4px 0 #b7a06c,0 5px 9px #92673425;color:#6c603a;font-weight:900;font-size:13px}.shop-tabs button[aria-pressed=true]{background:linear-gradient(#ffdf65,#ffb728);border-color:#fff2a0;color:#67441d;box-shadow:inset 0 3px 0 #fff8,0 4px 0 #ca7d22,0 6px 12px #bc792533;transform:translateY(-1px)}.shop-tabs button:active{transform:translateY(2px);box-shadow:inset 0 2px 0 #fff8,0 1px 0 #b7a06c}.machine-card .machine-art{height:145px;width:100%;object-fit:contain;filter:drop-shadow(0 5px 2px #86602a25)}.machine-card.locked .machine-art{filter:grayscale(.55) drop-shadow(0 4px 2px #86602a15);opacity:.8}
.track.strike-meter{height:24px;position:relative;overflow:visible;background:linear-gradient(#c2b7a2,#e2d8c4);border:2px solid #fff8df;border-radius:14px;box-shadow:inset 0 2px 3px #71654555,0 2px 0 #baab87;margin:12px 0 22px}.strike-meter i{display:block;height:100%;border-radius:12px;background:linear-gradient(#e2d9c4,#a99c80);box-shadow:inset 0 3px 0 #fff5}.strike-meter[data-reached=true] i{background:linear-gradient(#b5ed68,#56ad35);box-shadow:inset 0 3px 0 #eaffacaa}.strike-meter:after{content:'';position:absolute;top:-4px;bottom:-4px;left:var(--threshold);width:3px;background:#806731;box-shadow:1px 0 #fff9;border-radius:3px}.strike-meter b{position:absolute;left:var(--threshold);transform:translateX(-50%);top:25px;font-size:10px;color:#736341}.strike-badge{position:absolute;top:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;background:linear-gradient(#ffe881,#ffc12f);border:2px solid #fff6be;border-radius:8px;padding:3px 7px;box-shadow:0 3px 0 #ab7628;font:900 10px Nunito,sans-serif;color:#6e421d}
#graphics{width:auto;min-width:120px;padding:8px;font-size:12px}.settings{position:fixed}#settings-menu{position:absolute;bottom:44px;right:0;min-width:180px;padding:10px;display:grid;gap:6px;background:#fff8e9f5;border:2px solid #fff;border-radius:18px;box-shadow:0 8px 24px #355c3533;backdrop-filter:blur(12px)}#settings-menu[hidden]{display:none}#settings-menu button{position:static!important;width:100%!important;height:auto!important;min-height:34px;border-radius:10px;padding:8px;background:#f2e9c8;font-size:13px;line-height:1.2}#settings-menu #network:after{content:' Play online'}#settings-menu #sound:after{content:' Sound'}#settings-menu #help:after{content:' Help'}#settings-menu #replay:after{content:' Replay welcome'}#settings-menu #strike-open:after{content:' Farmers’ Strike'}#settings-open{font-size:23px}.hud-idle #settings-menu{display:none}
@media(max-width:700px){.shop-tabs{gap:6px;margin-bottom:18px}.shop-tabs button{padding:9px 11px;font-size:11px}.playing .settings button,#settings-open{width:34px;height:34px}.settings{gap:7px!important}.machine-card .machine-art{height:125px}.strike-badge{font-size:10px;top:-27px;padding:4px 7px}#settings-menu{bottom:44px;max-height:65vh;overflow-y:auto}}
/* Lab: a real first-person room, with compact floating recipe controls. */
body:after{content:'';position:fixed;inset:0;background:#f5d894;opacity:0;pointer-events:none;z-index:90;transition:opacity .16s}.lab-fade:after{opacity:1}.in-lab header,.in-lab nav,.in-lab .settings,.in-lab #overlay,.in-lab #village-toggle,.in-lab #village-note,.in-lab #progress-hud,.in-lab .intro,.in-lab #coach,.in-lab #hand,.in-lab .season,.in-lab #camera-help,.in-lab .mode{display:none!important}#lab-ui{position:fixed;inset:0;pointer-events:none;z-index:10}#lab-ui[hidden]{display:none}#lab-ui button,#lab-panel{pointer-events:auto}#lab-back,#lab-recipes-open,#lab-panel-close{position:absolute;top:18px;border-radius:18px;background:linear-gradient(#fff9dc,#e8c47b);padding:11px 16px;box-shadow:0 3px #af7938;font-weight:900}#lab-back{left:18px}#lab-recipes-open{right:66px}#lab-panel-close{right:18px}#lab-panel{position:absolute;right:18px;top:76px;bottom:20px;width:330px;border-radius:24px;overflow-y:auto;background:#fff7e9ee;box-shadow:0 8px 30px #76482433;padding:12px}.lab-collapsed #lab-panel,.hud-idle:not(.lab-ready) #lab-panel{opacity:0;pointer-events:none}.lab-collapsed #lab-panel button,.hud-idle:not(.lab-ready) #lab-panel button{pointer-events:none}#lab-panel .npc-stage{height:100px;min-height:100px;margin:-12px -12px 10px;background:linear-gradient(130deg,#d89c54,#b8c979,#ab77bb)}#lab-panel .npc-portrait{width:100px;height:110px;left:0;bottom:0}#lab-panel .npc-bubble{left:95px;right:8px;top:7px;bottom:auto;padding:10px;min-height:70px;font-size:10px}#lab-panel .npc-bubble p{font-size:10px;line-height:1.4}#lab-panel .npc-bubble small{display:none}.lab-recipes{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lab-recipes>button{display:flex;align-items:center;gap:5px;border:2px solid #f1deae;border-radius:14px;padding:6px;background:#faf0d5;text-align:left;font-size:10px;font-weight:900}.lab-recipes>button[aria-pressed=true]{background:linear-gradient(#ffe183,#ffc34c);border-color:#fff2b2;box-shadow:0 2px #b4813b}.lab-recipes small{display:block;font-size:8px;color:#a06b42}.product-icon{width:35px;height:35px;object-fit:contain;vertical-align:middle;flex-shrink:0}.lab-recipe,.lab-batch,.lab-result{padding:10px;margin:10px 0;border-radius:16px;background:#fffdf0}.lab-recipe h3,.lab-batch h3,.lab-result h3{font-size:19px;margin:3px 0 8px}.lab-recipe p,.lab-batch p,.lab-result p{font-size:11px}.ingredients{list-style:none;padding:0}.ingredients li{font-size:11px;padding:5px 0;display:flex;gap:5px;flex-wrap:wrap;justify-content:space-between}.ingredients .missing{color:#b85848}.ingredients button{background:transparent;text-decoration:underline;font-weight:900;font-size:10px;padding:0}.lab-batch.ready{background:#eef6c6;border:2px solid #a7c66d}.lab-batch>button,.product-actions button{padding:8px;border-radius:12px;background:#f9d16a;font-size:11px;font-weight:900}.product-actions{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}.lab-inventory{font-size:12px;padding:10px;border-radius:16px;background:#eee9c8}.inventory-row{padding:8px 0;border-bottom:1px solid #d9d4ad}.lab-nav-lock{display:none}.lab-locked .lab-nav-lock{display:inline;font-size:8px;color:#a6763d}.playing nav button{width:12.5%}.first-steps nav button[data-view=lab]{display:flex!important;flex-direction:column}#lab-product-collect{position:absolute;transform:translate(-50%,-50%);padding:10px 18px;box-shadow:0 3px #bd8a38;border-radius:16px}#action-sheet{border:2px solid white;border-radius:24px;max-width:360px;width:calc(100% - 32px);background:#fff8e9;padding:26px;color:#315a3b;box-shadow:0 15px 60px #264f3433}#action-sheet::backdrop{background:#355d3550;backdrop-filter:blur(3px)}#action-sheet h2{font:26px 'Lilita One',sans-serif}#action-sheet p{font-size:13px;line-height:1.6}.issue-exit{display:block;width:100%;margin:8px 0;border-radius:14px;padding:11px;background:linear-gradient(#ffe487,#f9c64e);font-weight:900}.in-lab #toast{z-index:20}.product-art-fallback{display:inline-grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#ecc98a}
@media(max-width:700px){#lab-back{left:12px;top:12px;padding:9px 12px;font-size:11px}#lab-recipes-open{right:50px;top:12px;padding:9px;font-size:10px}#lab-panel-close{right:12px;top:12px;padding:8px 10px}#lab-panel{left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:37vh;padding:10px}#lab-panel .npc-stage{height:75px;min-height:75px;margin:-10px -10px 8px}#lab-panel .npc-portrait{width:80px;height:90px}#lab-panel .npc-bubble{left:75px;min-height:52px;top:4px;padding:7px}.lab-recipes{grid-template-columns:1fr 1fr}.playing nav button{width:12.5%;font-size:8px}.nav-icon{width:27px;height:27px}.lab-recipe h3{font-size:18px}}
#lab-panel .npc-stage{position:relative;padding:0;overflow:hidden}#lab-panel .npc-portrait{position:absolute;bottom:0;left:0;margin:0}#lab-panel .npc-bubble{position:absolute;max-width:none;margin:0;left:95px;right:8px;top:7px;bottom:auto;transform:none}#lab-panel .npc-bubble p{min-height:0}#lab-panel .npc-bubble b{font-size:14px}@media(max-width:700px){#lab-panel .npc-bubble{left:75px;top:4px}}
@media(prefers-reduced-motion:reduce){body:after{transition:opacity .12s ease!important}}
@media(max-width:700px){.lab-recipes{display:flex;overflow-x:auto;gap:6px;padding-bottom:5px;scroll-snap-type:x proximity}.lab-recipes>button{flex:0 0 145px;scroll-snap-align:start;min-height:52px}.nav-icon{width:28px;height:28px}}
#lab-product-collect{width:auto;min-width:0;max-width:130px;right:auto;white-space:nowrap}
/* UI02: the tutorial settings cluster is left-aligned on narrow screens. */
@media(max-width:700px){.first-steps #settings-menu{left:0;right:auto;bottom:104px;max-width:calc(100vw - 24px)}}
/* UI03/04: feedback uses a measured free row, never the plot actions or level card. */
#toast{top:var(--toast-top,90px);bottom:auto;max-width:calc(100vw - 24px)}
#camera-help{top:76px;bottom:auto;max-width:calc(100vw - 24px);text-align:center}
body:not(.playing) #camera-help{display:none}
@media(max-width:700px){#camera-help{top:108px}}
/* UI05: intrinsic art dimensions must not enlarge mobile market grid tracks. */
@media(max-width:700px){#market-content .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#market-content .cards .card{min-width:0;padding:10px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}#market-content .cards .card>img{display:block;width:100%;max-width:120px;height:110px;object-fit:contain}#market-content .cards .card h3{font-size:18px;line-height:1.2;margin:0}#market-content .cards .card button{width:100%;font-size:12px;padding:8px;margin-top:auto}}
/* UI06: keep the mobile welcome inside the tutorial banner, away from the garden. */
.mobile-welcome{display:none}
@media(max-width:700px){body:not(.playing) .intro{display:none}#coach .mobile-welcome{display:block;font-size:11px;line-height:1.2;font-weight:900;color:#628053}}

/* Coco's creator: authorised shared front work, light studio + compact choices. */
.creator-open{overflow:hidden}.creator-open>header,.creator-open>nav,.creator-open>.settings,.creator-open #overlay,.creator-open #plant-panel,.creator-open #coach,.creator-open #progress-hud,.creator-open #toast,.creator-open #camera-help,.creator-open .intro{visibility:hidden!important}
#duck-creator{position:fixed;inset:0;z-index:180;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(400px,.9fr);background:radial-gradient(ellipse at 30% 40%,#fff4cb,#f6d9a5 60%,#eac18d);color:#39523e}
.creator-stage{position:relative;min-height:0;overflow:hidden;background:radial-gradient(ellipse at 50% 75%,#d3dca1 0,transparent 65%)}.creator-preview{position:absolute;inset:65px 0 75px;touch-action:none}.creator-preview canvas{display:block;width:100%;height:100%}.studio-label{position:absolute;top:35px;left:0;right:0;text-align:center;font-size:13px;font-weight:900;letter-spacing:3px;color:#926333}.creator-hint{position:absolute;bottom:75px;left:0;right:0;text-align:center;font-size:13px;color:#7c6a48}.creator-global{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);white-space:nowrap}
.creator-controls{display:flex;flex-direction:column;min-height:0;margin:24px 28px 24px 0;padding:25px;background:linear-gradient(150deg,#fffdf1f2,#fff4dce8);border:3px solid #fff9e4;border-radius:30px;box-shadow:0 9px 0 #bb874632,0 15px 50px #98682d20}.creator-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:900;letter-spacing:2px;color:#947442}.creator-top button{font-size:24px}.creator-controls h1{font-size:40px;margin:7px 0 13px}.creator-progress{display:flex;gap:9px}.creator-progress button{border-radius:50%;min-width:38px;min-height:38px;padding:0;box-shadow:none;background:#eadbbb;color:#836d45}.creator-progress [aria-current=step]{background:#ffc44d;border-color:#fff1ac;box-shadow:0 3px 0 #d58c2f;color:#4f572b}.creator-step{font-size:13px;font-weight:800;margin:12px 0}.creator-scroll{overflow:auto;flex:1;min-height:0;padding:0 4px 8px 0;scrollbar-width:thin}.creator-controls fieldset{border:0;margin:0 0 16px;padding:0}.creator-controls legend{font-weight:900;font-size:14px;margin-bottom:9px}.creator-options{display:flex;flex-wrap:wrap;gap:8px}.creator-options button{font-size:12px;min-height:44px;min-width:58px;padding:8px 11px;border:2px solid #e2d8b7;background:#fffbed;box-shadow:0 3px 0 #d5c596;color:#4e6348;border-radius:13px}.creator-options button[aria-pressed=true]{border-color:#4c9f79;background:#d8efb5;box-shadow:0 3px 0 #5e9a64}.creator-options.swatches button{width:44px;min-width:44px;height:44px;padding:5px;border-radius:50%}.creator-options.swatches button span{display:block;width:100%;height:100%;border-radius:50%;background:var(--swatch);box-shadow:inset 0 3px 2px #ffffff60,inset 0 -2px 1px #00000013}.creator-options.swatches button[aria-pressed=true]{outline:2px solid #3d8f67;outline-offset:2px}.creator-note{font-size:12px;margin:12px 0}.creator-name{font-size:15px;font-weight:900;display:grid;gap:8px}.creator-name input{font-family:inherit;font-size:18px;min-height:48px;padding:10px 14px;width:100%;box-sizing:border-box;border-radius:14px;border:2px solid #d1c59f;background:#fffefa;color:#39523e}.creator-tools{display:flex;gap:10px;margin:5px 0 15px}.creator-tools button{font-size:13px;min-height:44px}.creator-controls footer{display:flex;gap:12px}.creator-controls footer button{min-height:50px;flex:1;font-size:17px}.creator-controls footer .primary{flex:2}#creator-error{color:#ad4a41;font-size:13px;min-height:19px;margin:7px 0;font-weight:800}.premium-looks{margin-top:18px}.premium-looks summary{cursor:pointer;font-weight:900}.premium-looks p{font-size:12px}.premium-looks button{margin:5px;font-size:12px;min-height:44px}.wardrobe-steps{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
@media(max-width:700px){#duck-creator{grid-template-columns:1fr;grid-template-rows:36% 64%}.creator-stage{min-height:0}.studio-label{top:14px;font-size:10px}.creator-preview{inset:20px 0 23px}.creator-hint{bottom:7px;font-size:10px}.creator-global{top:35px;bottom:auto;right:9px;left:auto;transform:none;font-size:10px;padding:7px;min-height:44px;max-width:100px;white-space:normal}.creator-controls{margin:0 8px 8px;padding:12px 16px;border-radius:25px;overflow:hidden}.creator-controls h1{font-size:27px;margin:2px 0 8px}.creator-top{font-size:9px}.creator-progress{gap:10px}.creator-progress button{min-width:38px;min-height:38px}.creator-step{margin:8px 0;font-size:11px}.creator-controls legend{font-size:12px;margin-bottom:6px}.creator-controls fieldset{margin-bottom:12px}.creator-options{gap:7px}.creator-options button{font-size:11px;padding:6px 9px}.creator-controls footer button{min-height:46px;font-size:15px}.creator-tools{margin:2px 0 8px}.creator-tools button{min-height:44px;font-size:11px}#creator-error{margin:4px 0;font-size:11px;min-height:14px}.creator-progress button{min-width:44px;min-height:44px}.creator-scroll{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){#duck-creator *{animation:none!important;transition:none!important}}
#duck-creator button{font-family:Nunito,sans-serif;font-weight:900;cursor:pointer}#duck-creator .creator-global,#duck-creator .creator-tools button,#duck-creator footer button:not(.primary),#duck-creator .premium-looks button{border:2px solid #fff6d8;border-radius:15px;background:linear-gradient(#fff5c8,#edcb86);box-shadow:0 3px 0 #bf985c;color:#5c653d;padding:9px 14px}#duck-creator button:disabled{opacity:.5;cursor:default}#duck-creator button:focus-visible{outline:3px solid #328fca;outline-offset:3px}
.creator-options button:has(.option-icon){display:flex;align-items:center;gap:6px}.creator-options .option-icon{width:26px;height:26px;flex-shrink:0}@media(max-width:700px){.creator-options button:has(.option-icon){flex-direction:column;min-width:72px;flex:1;padding:6px;font-size:10px;line-height:1.2}.creator-options .option-icon{width:25px;height:25px}}
/* Cached 3D option renders replace symbolic glyphs. */
.creator-options .option-thumb{width:56px;height:56px;object-fit:contain;border-radius:9px;display:block}.creator-options button:has(.option-thumb){display:flex;flex-direction:column;gap:3px;padding:5px;min-width:72px}.creator-name{margin:0 0 16px}.creator-options button:has(.option-thumb)[aria-pressed=true] .option-thumb{outline:2px solid #599a67}.creator-preview{inset:45px 0 65px}
@media(max-width:700px){.creator-preview{inset:20px 0 23px}.creator-options .option-thumb{width:48px;height:48px}.creator-options button:has(.option-thumb){font-size:10px;min-width:65px;flex:1;max-width:95px;line-height:1.2}.creator-name{margin-bottom:12px}.creator-name input{min-height:44px;font-size:16px}}
.creator-top>[data-skip-creator]{font-size:12px;letter-spacing:0;white-space:nowrap;min-height:44px;border-radius:14px;border:2px solid #d8bd7e;background:#fff2cf;color:#5d6a43;padding:6px 12px}.creator-skip-inline{display:block;margin:0 0 14px auto;min-height:44px;border-radius:12px;border:2px solid #e1cc98;background:#fff8e5;color:#5d6a43;padding:6px 14px}
/* Economy overlays share the compact HUD and disappear with it. */
#pool-hud{position:fixed;right:18px;top:78px;z-index:12;display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #fff;border-radius:24px;background:linear-gradient(145deg,#fffff4ef,#f5f9dfdd);box-shadow:0 8px 25px #45602a14,inset 0 2px 0 #fff;backdrop-filter:blur(18px);color:#244e39;text-align:left;max-width:310px}#pool-hud[hidden],.hud-idle #pool-hud,.creator-open #pool-hud,.lab-mode #pool-hud{display:none}#pool-hud img{object-fit:contain;flex:none}.pool-hud-copy{display:grid;gap:2px}.pool-hud-label{font-size:10px;font-weight:900}.pool-hud-copy b{font-size:20px;line-height:1.1}.pool-hud-copy b span{font-size:10px}.pool-hud-copy small{font-size:10px;font-weight:800;color:#52714a}.pool-hud-clock{align-self:stretch;display:grid;align-items:center;white-space:nowrap;margin-left:3px;padding-left:10px;border-left:1px solid #cbd9b5;font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}.usd-price{display:block;font-size:11px;font-weight:700;color:#78896a}
.bank-banner{padding:18px;border-radius:22px;background:linear-gradient(130deg,#fff0a3,#d7edac);color:#36583d}.bank-banner .bank-eyebrow{font-size:10px;font-weight:900;letter-spacing:1px;color:#58713a;margin:0 0 6px}.bank-banner>strong{font-size:26px;display:block;line-height:1.2}.bank-banner>p{margin:8px 0;color:#4c6941}.bank-payout{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-top:15px}.bank-payout>span{font-size:12px;font-weight:800}.bank-payout button{width:auto;min-height:44px;flex:none}.bank-payout button:disabled{opacity:1;background:#e5e9c5;color:#687a50;box-shadow:inset 0 1px 0 #fff8;cursor:default}
.bank-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.bank-tiles article{display:grid;align-content:start;gap:6px;padding:13px;border-radius:17px;background:#fffff2;border:1px solid #e5e7ca;box-shadow:0 3px 0 #e9e6ce}.bank-tiles article>span{font-size:11px;font-weight:900;color:#697c55}.bank-tiles strong{font-size:18px;overflow-wrap:anywhere}.bank-tiles small{font-size:10px;color:#697c55}.bank-charts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bank-chart{margin:0;padding:12px;border-radius:17px;background:#f0f5df;border:1px solid #dae5c4}.bank-chart figcaption{font-size:12px;font-weight:900}.bank-chart small{display:block;font-size:10px;color:#73856f;font-weight:700}.bank-chart svg{display:block;width:100%;height:78px;margin-top:5px}.bank-details{margin:14px 0;padding:12px;border-radius:14px;background:#fff8de}.bank-details summary{cursor:pointer;font-weight:800;font-size:12px}.bank-indicators{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px}.bank-indicators dd{text-align:right;margin:0;font-weight:800}.bank-prices p{display:flex;justify-content:space-between;border-bottom:1px solid #e2dcbf;padding:8px}.bank-prices small{display:block;text-align:right;color:#7e876b}
@media(max-width:600px){#pool-hud{right:10px;top:74px;gap:7px;padding:8px 10px;border-radius:21px;max-width:255px}#pool-hud img{width:28px;height:28px}.pool-hud-copy b{font-size:17px}.pool-hud-copy small{font-size:9px}.pool-hud-clock{font-size:11px;padding-left:8px}.bank-banner{padding:14px}.bank-banner>strong{font-size:22px}.bank-banner>p{font-size:12px;line-height:1.5}.bank-payout{display:grid;gap:9px}.bank-payout button{width:100%;padding:10px}.bank-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.bank-tiles article{padding:10px}.bank-tiles strong{font-size:15px}.bank-chart{padding:9px}.bank-chart svg{height:62px}.bank-chart figcaption{font-size:11px}}

/* Seed rows keep the two-line price together, separate from the seed label. */
.plant-panel .seed-option{gap:8px}
.seed-option>span{min-width:0}
.plant-panel .seed-option strong{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;margin-left:auto}
.seed-option .price{flex-wrap:nowrap;white-space:nowrap;gap:3px}
.seed-option .usd-price{white-space:nowrap}

/* Panels take priority over the pool HUD immediately, including during Lab entry. */
body:has(#plant-panel:not([hidden])) #pool-hud,
body:has(#lab-ui:not([hidden])) #pool-hud,
body:has(#modal[open]) #pool-hud{display:none}

.seed-duration{display:block;font-size:11px;color:#637343}.phase-bar{display:flex;gap:3px;margin:10px 0}.phase-bar span{flex:1;border-radius:6px;background:#e5dfca;padding:7px 1px;font-size:10px;text-align:center}.phase-bar .active{background:#b9da72;color:#355925}

/* Hydrated duration occupies its own full row, never the name/price row. */
.plant-panel .seed-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 4px;text-align:left}
.seed-option>span{min-width:0;text-align:left}
.plant-panel .seed-option>.seed-duration{grid-column:1/-1;margin:0;font-size:10px;line-height:1.4;text-align:left}
#clock-hud{position:fixed;top:86px;left:24px;z-index:4;display:flex;align-items:center;gap:6px;border:1px solid #fff9;border-radius:22px;padding:5px 10px;color:#315842;font:800 12px Nunito,sans-serif;transition:opacity .4s}#clock-hud svg{width:22px;height:22px}.hud-idle #clock-hud,.in-lab #clock-hud{opacity:0;pointer-events:none}@media(max-width:700px){#clock-hud{top:70px;left:auto;right:16px;padding:3px 8px;font-size:11px}#clock-hud svg{width:18px;height:18px}}
.playing #clock-hud{top:135px;left:114px;right:auto}.creator-open #clock-hud{visibility:hidden!important}@media(max-width:700px){.playing #clock-hud{top:66px;left:110px;right:auto}body:not(.playing) #clock-hud{left:14px;right:auto;top:70px}#camera-help{top:154px}}

/* Help uses the same FIFO as nightfall and gameplay feedback. */
#toast[data-kind=camera]{font-size:11px;width:max-content;max-width:calc(100vw - 24px);border-radius:16px;padding:9px 13px}
@media(max-width:380px){.playing #clock-hud{left:14px;top:108px}}

/* Welcome precedes the seed chooser; it never stacks over the tutorial. */
.welcome-only #plant-panel,.welcome-only #coach,.welcome-only #hand{visibility:hidden!important;pointer-events:none!important}
.welcome-only .intro{display:block!important;visibility:visible!important;opacity:1!important}
.welcome-finished .intro,.welcome-finished #coach .mobile-welcome{display:none!important}
@media(max-width:700px){.welcome-only .intro{top:130px;left:16px;right:16px;bottom:auto;width:auto;max-width:none;padding:16px}.welcome-only .intro h1{font-size:25px;margin:4px 0}.welcome-only .intro p{display:none}.village-view #village-note{bottom:144px}}

/* Local-to-wallet choice: same warm cream, green and gold as the garden menus. */
dialog.local-import{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;border:1px solid #fffdf3;border-radius:26px;background:#fffdf1;color:var(--green);box-shadow:0 24px 80px #244e3940}dialog.local-import::backdrop{background:#244e3959;backdrop-filter:blur(5px)}.local-import h2{font-size:30px;line-height:1.08;margin:12px 0}.local-import p{font-size:13px;line-height:1.55}.import-summary{background:#edf3df;border:1px solid #dce7cd;padding:4px 16px;border-radius:16px}.import-summary h3{font-size:19px;margin:12px 0 4px}.import-summary p{margin:4px 0 12px}.local-import .import-kept{color:#526d51}.local-import .import-fresh{display:block;width:100%;padding:12px;margin-top:8px;border-radius:12px;background:#f0ebda;font-weight:900}.local-import .import-error{color:#a13d31}@media(max-width:430px){dialog.local-import{padding:20px}.local-import h2{font-size:27px}}
.bank-lock{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 0;padding:12px 14px;border-radius:16px;background:#fff8de;border:1px solid #ecd9a2}.bank-lock p{margin:0;font-size:12px;line-height:1.5}.bank-lock button{white-space:nowrap}@media(max-width:600px){.bank-lock{display:grid}.bank-lock button{width:100%}}
/* Plant Rescue: one real case, six remedies (27/10) */.rescue-case{font-size:15px;line-height:1.45;margin:8px 0 4px}.rescue-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:8px}.rescue-options button{text-align:left;white-space:normal;line-height:1.25;min-height:44px;padding:10px 12px}
/* Duck Dash (28/10) */#dash{position:fixed;inset:0;z-index:200;touch-action:none;user-select:none;-webkit-user-select:none}#dash canvas{display:block;width:100%;height:100%}.dash-hud{position:absolute;top:max(14px,env(safe-area-inset-top));left:16px;display:flex;gap:12px;align-items:baseline;background:var(--glass);border-radius:999px;padding:6px 14px;font-weight:900;color:var(--green)}.dash-hud b{font-size:22px}.dash-hud span{font-size:13px;color:var(--muted)}.dash-close{position:absolute;top:max(14px,env(safe-area-inset-top));right:16px;width:44px;height:44px;border-radius:50%;background:var(--glass);font-size:24px;line-height:1}.dash-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,calc(100% - 32px));background:var(--glass);backdrop-filter:blur(10px);border-radius:20px;padding:20px 22px;text-align:center;box-shadow:0 12px 40px rgba(36,78,57,.18)}.dash-card[hidden]{display:none}.dash-card h2{margin:0 0 6px;color:var(--green)}.dash-card p{margin:6px 0}.dash-actions{display:grid;gap:4px}.dash-actions button:not(.primary){padding:10px;font-weight:800;color:var(--green)}.dash-entry{display:flex;gap:12px;align-items:center;background:var(--glass);border-radius:16px;padding:12px 14px;margin-bottom:12px}.dash-entry div{flex:1}.dash-entry h3{margin:0}.dash-entry p{margin:2px 0 0;font-size:13px;color:var(--muted)}.dash-entry .primary{width:auto;margin:0}

/* Distance celebrations stay clear of both the track and the close button. */
.dash-milestone{position:absolute;left:50%;top:max(76px,calc(env(safe-area-inset-top) + 68px));transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 20px;border:2px solid #ffe49a;border-radius:16px;background:#fff5d9;color:#315a36;box-shadow:0 6px 20px #65481324;font-family:'Lilita One',sans-serif;font-size:22px;text-align:center;pointer-events:none;animation:dash-pop .3s ease-out}
.dash-milestone[hidden]{display:none}
@keyframes dash-pop{from{opacity:0;transform:translate(-50%,-8px) scale(.94)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media(prefers-reduced-motion:reduce){.dash-milestone{animation:none}}
/* Duck Dash v2: side-view band on portrait phones, touch pads */#dash{background:linear-gradient(#bfe6f2 0 50%,#92be47 50%)}.dash-pads{position:absolute;left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;padding:0 16px;pointer-events:none}.dash-pads[hidden]{display:none}.dash-pads span{background:var(--glass);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:800;color:var(--green)}
.dash-controls{font-size:13px;font-weight:800;color:var(--green)}
/* Duck Dash fights (28/10) */.dash-fight{position:absolute;left:0;right:0;top:max(64px,calc(env(safe-area-inset-top) + 56px));pointer-events:none}.dash-fight[hidden]{display:none}.dash-bars{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;width:min(720px,calc(100% - 32px));margin:0 auto}.dash-bars>div{min-width:0}.dash-bars div:last-child{text-align:right}.dash-bars b{font-size:13px;color:var(--green)}.dash-bars i{display:block;width:100%;height:14px;background:rgba(36,78,57,.18);border-radius:999px;overflow:hidden;margin-top:3px}.dash-bars div:last-child i{transform:scaleX(-1)}.dash-bars span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#e8483a,#ffc52e);transition:width .15s}#dash-timer{min-width:44px;text-align:center;font-weight:900;font-size:20px;color:var(--green);background:var(--glass);border-radius:12px;padding:2px 6px}.dash-fightpads{position:fixed;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom));display:grid;grid-template-columns:88px 1fr 88px 88px;gap:10px;padding:0 16px;pointer-events:none}.dash-fightpads[hidden]{display:none}.dash-fightpads button{pointer-events:auto;width:88px;height:88px;border-radius:50%;background:rgba(255,255,244,.72);font-weight:900;font-size:14px;color:var(--green);touch-action:none;box-shadow:0 4px 14px rgba(36,78,57,.18)}.dash-fightpads [data-fight=punch]{grid-column:3}.dash-fightpads [data-fight=kick]{grid-column:4}.dash-fightpads [data-fight=punch],.dash-fightpads [data-fight=kick]{background:rgba(255,197,46,.85)}.dash-banner{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:clamp(22px,5vw,40px);font-weight:900;color:#fff;text-shadow:0 3px 0 #244e39,0 0 18px rgba(36,78,57,.5);white-space:nowrap;pointer-events:none}.dash-banner[hidden]{display:none}
/* Duck Dash controls help (28/10): key legend bottom-left on a computer, one-time tap tutorial on a phone */.dash-legend{position:absolute;left:16px;bottom:max(16px,env(safe-area-inset-bottom));display:grid;gap:6px;padding:12px 14px;border-radius:16px;background:var(--glass);box-shadow:0 6px 20px #2a4b2a22;color:var(--green);font-size:13px;font-weight:800;pointer-events:none;transition:opacity .5s,transform .5s;animation:dash-legend-in .35s ease-out}.dash-legend[hidden]{display:none}.dash-legend.out{opacity:0;transform:translateY(8px)}.dash-legend b{font-family:'Lilita One',sans-serif;font-size:15px;font-weight:400;letter-spacing:.02em}.dash-legend span{display:flex;align-items:center;gap:6px}.dash-legend kbd{min-width:26px;padding:3px 7px;border:1px solid #c9d8b9;border-bottom-width:3px;border-radius:7px;background:#fff;font:800 12px Nunito,sans-serif;text-align:center;color:var(--green)}
@keyframes dash-legend-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dash-tuto{position:absolute;inset:0;z-index:3;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto;background:#1d3a2766;color:#fff;text-align:center;padding-bottom:max(24px,env(safe-area-inset-bottom))}.dash-tuto[hidden]{display:none}.dash-tutoring .dash-pads{display:none}
.dash-tuto-half{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;font-weight:800;font-size:14px;text-shadow:0 1px 3px #0006}.dash-tuto-half+.dash-tuto-half{border-left:2px dashed #ffffff99}.dash-tuto-half b{font-family:'Lilita One',sans-serif;font-weight:400;font-size:26px;color:#ffe49a}
.dash-finger{position:relative;width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px #ffffff55;animation:dash-tap 1.1s ease-in-out infinite}.dash-finger.hold{animation:dash-hold 1.8s ease-in-out infinite}
@keyframes dash-tap{0%,100%{transform:scale(1);box-shadow:0 0 0 6px #ffffff55}40%{transform:scale(.82);box-shadow:0 0 0 18px #ffffff00}}
@keyframes dash-hold{0%,100%{transform:scale(1)}20%,75%{transform:scale(.82);box-shadow:0 0 0 12px #ffe49a88}}
.dash-tuto [data-dash-tuto]{grid-column:1/-1;justify-self:center;width:auto;min-width:180px;padding:12px 28px}
.dash-tuto[data-kind=fight]{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:14px;padding-bottom:calc(max(18px,env(safe-area-inset-bottom)) + 96px)}.dash-tutoring .dash-fightpads{z-index:4}.dash-tutoring .dash-fightpads button{animation:dash-tap 1.1s ease-in-out infinite}
.dash-tuto-fight{display:grid;gap:6px;max-width:320px;padding:14px 18px;border-radius:16px;background:var(--glass);color:var(--green);font-weight:800;font-size:14px;text-shadow:none}.dash-tuto-fight b{font-family:'Lilita One',sans-serif;font-weight:400;font-size:22px}.dash-tuto-fight em{font-style:normal;color:#c2452c;margin-right:4px}
@media(prefers-reduced-motion:reduce){.dash-legend,.dash-finger,.dash-finger.hold,.dash-tutoring .dash-fightpads button{animation:none}}
/* Duck Dash preview screen (28/10): left side of the farm, a looping clip of a real run */#dash-promo{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:3;width:250px;padding:10px;border-radius:20px;display:none;flex-direction:column;gap:8px}.playing #dash-promo{display:flex}body:has(#coach:not([hidden])) #dash-promo,body:has(#dash) #dash-promo{display:none!important}
.dash-promo-screen{position:relative;display:block;padding:0;border:3px solid #315a36;border-radius:14px;overflow:hidden;background:#bfe6f2;aspect-ratio:16/10;cursor:pointer}.dash-promo-screen video{display:block;width:100%;height:100%;object-fit:cover}
.dash-promo-tag{position:absolute;top:6px;left:6px;font-family:'Press Start 2P',monospace;font-size:7px;background:#e9572f;color:#fff;padding:4px 5px;border-radius:5px}
.dash-promo-hide{position:absolute;top:-8px;right:-8px;z-index:1;width:26px;height:26px;border-radius:50%;border:0;background:#fff;box-shadow:0 2px 6px #0002;font-weight:900;line-height:1}
.dash-promo-text{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:0 4px 2px}.dash-promo-text b{font-family:'Lilita One',sans-serif;font-weight:400;font-size:20px}.dash-promo-text span{grid-column:1;font-size:12px;font-weight:700;color:var(--muted)}.dash-promo-text .primary{grid-column:2;grid-row:1/3;padding:10px 16px}
/* Billboard: slides out from the left and tucks away, leaving a tab on the edge */#dash-promo{--y:-50%;transform:translate(0,var(--y));transition:transform .7s cubic-bezier(.2,1.2,.4,1)}#dash-promo.tucked{transform:translate(calc(-100% - 24px),var(--y))}
.dash-promo-tab{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:6px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;border:0;border-radius:0 12px 12px 0;background:var(--glass);box-shadow:0 4px 12px #2a4b2a22;font-weight:900;font-size:10px;color:var(--green);opacity:0;pointer-events:none;transition:opacity .3s}#dash-promo.tucked .dash-promo-tab{opacity:1;pointer-events:auto}#dash-promo.tucked .dash-promo-hide{display:none}
@media(prefers-reduced-motion:reduce){#dash-promo{transition:none}}
@media(max-width:700px){#dash-promo{width:168px;padding:7px;border-radius:16px;top:auto;bottom:calc(96px + env(safe-area-inset-bottom));--y:0px;left:12px}.dash-promo-text{grid-template-columns:1fr auto}.dash-promo-text b{font-size:16px}.dash-promo-text span{display:none}.dash-promo-text .primary{grid-row:auto;padding:7px 12px;font-size:13px}.dash-promo-screen{border-width:2px;border-radius:10px}}
@media(max-width:700px){#dash-promo.moment .dash-promo-text span{display:block;grid-column:1/-1;font-size:11px;color:var(--green)}}
/* Duck Dash is the star of the menu bar (player feedback 29/10: "it has to catch the eye"): a raised orange button,
   bigger than the others, with the duck kicking out of it and a slow glow. The body prefix outranks .playing nav button. */
body nav button.dash-nav{width:122px;margin:0 6px;transform:translateY(-20px);padding:4px 5px 10px;border-radius:20px;color:#fff;background:linear-gradient(180deg,#ff9a3c,#e9572f 70%,#c9431f);box-shadow:0 0 0 3px #ffd45c,0 10px 22px #c9431f66,inset 0 2px 0 #ffffff55;animation:dash-glow 2.4s ease-in-out infinite}
body nav button.dash-nav .nav-icon{width:88px;height:88px;margin:-46px auto -4px;filter:drop-shadow(0 4px 5px #0005);animation:dash-bob 1.2s ease-in-out infinite;transform-origin:50% 90%}
body nav button.dash-nav span{color:#fff;font-size:1.15em;font-weight:900;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 0 #9e3216}
body nav button.dash-nav:hover,body nav button.dash-nav:focus-visible{background:linear-gradient(180deg,#ffab52,#f0643a 70%,#d24b25)}body nav button.dash-nav:hover .nav-icon{animation-duration:.5s}
body nav button.dash-nav.is-new::after{top:-12px;right:-8px;font-size:7px;background:#244e39;color:#ffd45c;box-shadow:0 0 0 2px #ffd45c}
@keyframes dash-glow{0%,100%{box-shadow:0 0 0 3px #ffd45c,0 10px 22px #c9431f66,inset 0 2px 0 #ffffff55}50%{box-shadow:0 0 0 3px #ffd45c,0 0 0 9px #ffc52e44,0 10px 26px #e9572f99,inset 0 2px 0 #ffffff55}}
@keyframes dash-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-5deg)}}
@media(min-width:701px){nav{width:max-content}body nav button.dash-nav{flex-shrink:0}}
@media(max-width:700px){body nav button.dash-nav{width:19%;transform:translateY(-12px);padding:3px 1px 6px;border-radius:16px}body nav button.dash-nav .nav-icon{width:46px;height:46px;margin-top:-22px}body nav button.dash-nav.is-new::after{right:-2px}}
@media(prefers-reduced-motion:reduce){body nav button.dash-nav,body nav button.dash-nav .nav-icon{animation:none}}
/* Grouped menus (29/10): Shop + Market, Quests + Rescue */.view-tabs{display:flex;gap:6px;margin:0 0 14px;padding:4px;border-radius:14px;background:#eef4e2}.view-tabs button{flex:1;border:0;border-radius:10px;padding:9px 10px;background:transparent;font-weight:900;font-size:14px;color:var(--muted)}.view-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 6px #2a4b2a1f}

/* Client audit: keep the Dash billboard away from active garden controls. */
body.in-lab #dash-promo,body.hud-idle #dash-promo,body.creator-open #dash-promo{display:none}
@media(max-width:700px){body:has(#plant-panel:not([hidden])) #dash-promo{display:none}}
@media(prefers-reduced-motion:reduce){.bubble,#hand,.plant-panel .primary-action,.float{animation:none!important}}
