:root{--ink:#4d4051;--rose:#eb8eae;--pink:#ffd8e6;--cream:#fffaf5;--line:#efdae0;--mint:#a2d7be;--purple:#bd9edb}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font:600 14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}body{background:radial-gradient(circle at 6% 20%,#fff1b1a9,transparent 24%),radial-gradient(circle at 90% 8%,#f3cce7a0,transparent 27%),linear-gradient(135deg,#f7eef7,#e9f6f3 65%,#fff0e0)}button{font:800 13px system-ui;cursor:pointer;color:inherit;touch-action:manipulation;transition:transform .1s,filter .1s}button:active{transform:translateY(2px);filter:brightness(.97)}button:focus-visible,canvas:focus-visible{outline:3px solid #a879c9;outline-offset:2px}.app{max-width:1350px;margin:auto;padding:22px}.top{display:flex;align-items:center;gap:14px;background:#fff9;border:2px solid white;border-radius:24px;padding:13px 20px;margin-bottom:19px;box-shadow:0 10px 25px #a770961b}.logo{border-radius:18px;background:#ffdce8;height:65px;width:65px;display:grid;place-items:center;box-shadow:0 5px 0 #e9b5c8}.cake-mark{position:relative;background:#f2a2b8;width:37px;height:27px;border-radius:7px 7px 5px 5px;box-shadow:inset 0 9px #fff6d9,0 5px #c67c98;color:transparent}.cake-mark:before{content:'';position:absolute;left:14px;top:-11px;background:#e84c70;border-radius:50%;width:12px;height:12px}.title small{color:#d18da3;font-weight:900;letter-spacing:2px;font-size:10px}.title h1{margin:-5px 0 -8px;font-size:40px;line-height:1.35;letter-spacing:-1.5px;color:#725773}.title h1 span{color:#e787a8}.title .sub{font-size:11px;color:#aa9e9f;letter-spacing:3px;font-weight:900}.top-actions{margin-left:auto;display:flex;gap:10px}.outline{border:1px solid #eacbd8;border-radius:11px;padding:10px 13px;background:white;color:#9e708a}.layout{display:grid;grid-template-columns:minmax(205px,1fr) minmax(340px,1.42fr) minmax(210px,1fr);align-items:start;gap:18px}.panel{background:#fffcf8;border:3px solid #fff;border-radius:24px;box-shadow:0 16px 30px #9e83921d;padding:20px}.overline{font-size:11px;letter-spacing:1.7px;font-weight:900;color:#bc91a1}.order{margin-top:12px;background:linear-gradient(#fff0f4,#fff6e7);border-radius:18px;padding:17px;text-align:center}.order strong{display:block;color:#9b6883;font-size:15px;margin-top:12px}.order span{display:block;font-size:12px;color:#b3919a;margin-top:5px}.cake-art{width:102px;height:105px;margin:auto;position:relative}.cake-art .layer{position:absolute;width:83px;height:39px;left:9px;bottom:16px;border-radius:7px 7px 14px 14px;background:linear-gradient(#dc8da8 0 18%,#f4c184 19% 56%,#d99c70 57% 78%,#facd91 79%);box-shadow:inset 0 -4px #c68978}.cake-art .frost{position:absolute;z-index:2;bottom:45px;left:7px;width:87px;height:22px;background:#ffe2ed;border-radius:45% 45% 30% 30%;box-shadow:0 7px #f7bbd0}.cake-art .cherry{position:absolute;z-index:3;bottom:66px;left:44px;width:15px;height:17px;background:#e45475;border-radius:50%;box-shadow:inset 3px 2px #fb9fa9}.cake-art .cherry:before{content:'';position:absolute;height:13px;width:9px;border-left:2px solid #679e66;transform:rotate(36deg);left:7px;top:-10px}.cake-art .plate{position:absolute;bottom:7px;left:0;width:103px;height:13px;background:#d1c4e8;border-radius:50%;box-shadow:0 4px #9e98c1}.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.stat{background:#f9f3f6;border-radius:12px;text-align:center;padding:12px 6px}.stat span{font-size:10px;color:#b497a5;display:block;font-weight:900}.stat strong{display:block;font-size:24px;color:#976b8e}.divider{height:1px;background:#f0e3e8;margin:19px 0}.label-row{display:flex;justify-content:space-between;font-size:12px;color:#b0879d;font-weight:850}.meter{height:11px;background:#f5e6e9;border-radius:20px;overflow:hidden;margin-top:9px}.meter div{width:0;height:100%;background:linear-gradient(90deg,#f3b0a8,#a7d8b7);transition:width .2s}.tip{background:#fff3da;border-radius:13px;color:#ab845e;font-size:12px;padding:12px;margin:17px 0}.starline{text-align:center;font-size:26px;letter-spacing:7px;color:#e6b65d}.little{text-align:center;color:#ac99a0;font-size:11px}.center{background:linear-gradient(180deg,#fdf3e3 0,#f6e4e2 47%,#e8d5c3 48%,#fff4e9 100%);position:relative;overflow:hidden;padding:13px 16px}.boardhead,.tray-outer,.feedback,.touch,.gesture{position:relative;z-index:2}.boardhead{display:flex;justify-content:space-between;align-items:center;background:#fffcf9df;padding:9px 11px;border-radius:12px;color:#9e8291;font-size:11px;font-weight:900;letter-spacing:.7px}.live{width:8px;height:8px;background:#8bccad;border-radius:50%;display:inline-block;margin-right:5px}.bakery-scene{position:relative;margin-top:14px;min-height:680px}.bakery-scene:before{content:'';position:absolute;top:50%;height:16px;background:#c99faa;left:-20px;right:-20px;box-shadow:0 10px #f7e3d5}.shelf{position:absolute;top:50px;left:0;background:#d8a5a8;width:98px;height:10px;border-radius:5px}.jar{position:absolute;bottom:11px;width:22px;height:35px;border-radius:5px 5px 8px 8px;border:3px solid #fff;background:#ffc9dc;box-shadow:0 3px #c08c99}.jar.pink{left:8px}.jar.lemon{left:38px;background:#ffe59a;height:46px}.jar.cocoa{left:69px;background:#bd8c79;height:30px}.oven{position:absolute;bottom:25px;right:0;width:100px;height:125px;border-radius:14px;background:#b6a1a7;border:5px solid #e9b9bd;text-align:center;font-weight:900;color:#fff;font-size:11px;padding-top:12px}.oven div{margin:14px auto 0;width:73px;height:53px;border-radius:11px;background:#776879;border:6px solid #e8d0cd}.tray-outer{max-width:355px;margin:0 auto;filter:drop-shadow(0 15px 14px #885c6957)}.tray-header{background:#ec9db6;padding:10px 12px;display:flex;justify-content:space-between;border:7px solid #cf8ca8;border-radius:15px 15px 0 0;color:white;font-size:10px;letter-spacing:1px;font-weight:900}.tray{border:12px solid #a77f99;border-top:0;border-bottom:10px solid #a77f99;border-radius:0 0 22px 22px;background:#fff7f5;overflow:hidden}.tray canvas{display:block;width:100%;height:auto;touch-action:none;aspect-ratio:4/7}.tray-footer{width:90%;height:14px;border-radius:0 0 30px 30px;margin:auto;background:#e9c3c6}.feedback{background:#fff9f2c9;padding:9px 12px;border-radius:12px;color:#a67892;text-align:center;font-size:12px;font-weight:800;min-height:38px}.touch{display:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:12px}.touch button{border:none;border-radius:12px;min-height:54px;background:#ffe4ea;color:#a56e8a;box-shadow:0 4px #e9bdcf;font-size:20px;user-select:none;touch-action:none}.touch button.drop{background:#b9dbc8;color:#496a5c;font-size:12px;box-shadow:0 4px #89b6a1}.gesture{display:none;font-size:11px;text-align:center;color:#ab8b93;margin-top:11px}.preview{background:linear-gradient(#fff4f5,#fcf7ec);border:2px dashed #f0d2da;border-radius:17px;text-align:center;margin:15px 0;padding:5px}.preview canvas{width:128px;height:118px;max-width:100%}.recipe{background:#fdf1f5;padding:14px;border-radius:16px}.recipe strong{font-size:11px;letter-spacing:1.4px;color:#bd829c}.swatches{display:grid;gap:7px;margin-top:11px;font-size:12px;color:#977f91}.swatches div{display:flex;align-items:center;gap:9px}.sw{display:inline-block;width:18px;height:18px;border-radius:7px;border:2px solid white;box-shadow:0 2px #ddbbc6}.strawberry{background:#ed8caa}.lemon{background:#f1cb6a}.cocoa{background:#a57d69}.blueberry{background:#9b91d9}.keyrow{display:flex;justify-content:space-between;border-bottom:1px solid #f1e5e7;padding:7px 0;color:#a8949d;font-size:12px}.keyrow b{background:#f7f0f4;padding:3px 8px;border-radius:6px;color:#8f7894}.buttons{display:grid;gap:9px;margin:20px 0}.buttons button{border:0;background:#f5e9f0;padding:12px;border-radius:12px;color:#956d8d}.buttons .mainbutton{background:#e99eba;color:white;box-shadow:0 4px #d27b9e}.bonus{background:#f0f7ed;padding:13px;border-radius:13px;color:#7e9b88;font-size:12px}footer{display:flex;justify-content:space-between;font-size:10px;color:#ac93a1;letter-spacing:1px;margin-top:20px;font-weight:900}.overlay{position:fixed;inset:0;background:#5f4c61a9;display:flex;align-items:center;justify-content:center;z-index:10;padding:18px;backdrop-filter:blur(4px)}.overlay.hidden{display:none}.modal{width:min(470px,100%);max-height:94vh;overflow:auto;border-radius:27px;border:7px solid white;background:linear-gradient(#fff8fb,#fff8ea);padding:26px;text-align:center;box-shadow:0 25px 70px #5140535e}.modal-cake{margin:auto;display:grid;place-items:center;width:130px;height:115px;border-radius:50%;background:#ffeaf0}.modal-cake .cake-art{transform:scale(.89)}.modal small{display:block;margin-top:18px;letter-spacing:2px;font-size:10px;color:#cc90a4;font-weight:900}.modal h2{font-size:27px;color:#8d6688;margin:8px 0 5px}.modal p{font-size:14px;color:#ab8d97;line-height:1.65}.modal-extra{background:#fff1f0;border-radius:13px;padding:13px;color:#b0838e;font-size:12px;margin:18px 0}.modal-buttons{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.modal-buttons button{background:#e990b1;color:white;border:0;border-radius:11px;padding:12px 18px;box-shadow:0 4px #d67d9f}.modal-buttons .quiet{background:#f4e6ed;color:#96748c;box-shadow:0 4px #e8d6dc}.modal-buttons button[hidden]{display:none}.level-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.level-picker button{border:0;border-radius:10px;padding:9px 3px;background:#eba3ba;color:white}.level-picker button:disabled{opacity:.35;cursor:not-allowed}.level-picker button span{display:block;font-size:9px}.mode-picker{display:grid;gap:8px}.mode-picker button{display:block;background:white;border:2px solid #f2cdda;border-radius:11px;color:#946980;padding:12px;text-align:left}.mode-picker button small{margin:4px 0 0;letter-spacing:0;text-transform:none;font-size:10px}.modal-extra:has(.mode-picker),.modal-extra:has(.level-picker){padding:8px}@media(max-width:1060px){.layout{grid-template-columns:minmax(195px,1fr) minmax(315px,1.4fr)}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}.right>.overline:first-child{grid-column:1/-1}.right .preview{grid-row:2/4}.right .divider{display:none}.right .buttons{margin:4px 0}.right .bonus{grid-column:1/-1}}@media(max-width:700px){.app{padding:10px}.top{gap:9px;padding:10px}.logo{width:45px;height:45px;border-radius:12px}.title small{font-size:7px;letter-spacing:1px}.title h1{font-size:28px}.title .sub{font-size:9px;letter-spacing:1px}.top-actions{gap:5px;flex-direction:column}.top-actions button{font-size:10px;padding:6px 8px}.layout{display:flex;flex-direction:column;gap:12px}.center{order:0;width:100%;padding:12px}.left{order:1;width:100%}.right{order:2;width:100%;display:block}.bakery-scene{min-height:0}.tray-outer{max-width:340px}.touch{display:grid}.gesture{display:block}.shelf{transform:scale(.7);transform-origin:top left}.oven{transform:scale(.7);transform-origin:bottom right}footer span{display:none}.modal{padding:17px}.modal h2{font-size:24px}}

/* Fruit Basket Drop: orchard visual system; clip art is locally packaged from Google Drive. */
:root{--pink:#7eae59;--rose:#589a58;--brown:#7b5439}
body{background:radial-gradient(circle at 8% 18%,#fef4c0 0 100px,transparent 200px),linear-gradient(135deg,#e4f4db,#fbf2d7 57%,#e2f8ed);color:#3c5634}
.top,.panel{background:#fffdf6;border-color:#fff9eb;box-shadow:0 12px 35px #58774520}
.logo{background:linear-gradient(135deg,#bce3aa,#f6d6a4);border-radius:20px;display:flex;align-items:center;justify-content:center}
.logo img{height:90%;width:90%;object-fit:contain}
.title h1,.title h1 span{color:#5d873b}.title h1 span{color:#da8556}.title small,.title .sub{color:#70995e}
.overline{color:#8aab5b}.order{background:linear-gradient(145deg,#f6f9db,#fff3d7)!important;border-color:#e6e3bd!important}
.fruit-art{width:125px;height:104px;margin:auto;display:flex;justify-content:center}.fruit-art img{max-height:100%;max-width:100%;object-fit:contain}
.modal-fruit{display:flex;justify-content:center;align-items:center;height:118px}.modal-fruit .fruit-art{height:116px;width:160px}
.bakery-scene.orchard-scene{background:linear-gradient(180deg,#c4eeef 0%,#e5f7ed 55%,#b9df99 57%,#f1d6a1 100%)!important;position:relative;overflow:hidden}
.orchard-decoration{position:absolute;inset:0;pointer-events:none}
.sunshine{position:absolute;right:10%;top:24px;width:68px;height:68px;background:#ffdf7f;border:9px solid #fff3b8;border-radius:50%;box-shadow:0 0 0 18px #ffefae44}
.tree{position:absolute;top:120px;width:82px;height:170px;background:linear-gradient(#a8c987,#6cad6d);border-radius:60% 50% 45% 45%;box-shadow:0 0 0 12px #81b67b70}.tree:after{content:'';position:absolute;left:38px;bottom:-72px;width:17px;height:76px;background:#a4754c}.tree-left{left:-28px}.tree-right{right:-25px;top:85px}
.grassline{position:absolute;bottom:48px;left:0;right:0;height:18px;background:#9fcd7e;border-radius:50% 50% 0 0}
.basket-outer{filter:drop-shadow(0 14px 11px #724c3270)}.basket-outer .tray-header{background:#9c713f;color:#fff8e5;border-color:#b98d50}.basket-board{border:12px solid #c28d53!important;border-radius:14px 14px 28px 28px!important;background:#f8efcf!important;box-shadow:inset 0 0 0 5px #e9bd7e,0 7px 0 #885a36!important}.basket-footer{background:repeating-linear-gradient(90deg,#b67841 0 11px,#dba365 11px 22px)!important;height:22px!important;border:4px solid #875a35;border-radius:0 0 40px 40px}
.recipe .swatches{display:grid;grid-template-columns:1fr 1fr;gap:6px}.recipe .swatches>div{display:flex;align-items:center;gap:5px;padding:6px 2px!important;font-size:12px}.recipe .swatches img{width:32px;height:32px;object-fit:contain}
#feedback{color:#58834f}.bonus,.tip{background:#f1f5d9!important;color:#6a8545!important}.mainbutton,.modal-buttons button:first-child{background:#70b873!important;box-shadow:0 4px 0 #518c55!important}.starline{color:#eab94a!important}
@media(max-width:700px){.fruit-art{height:85px}.tree{opacity:.6}.sunshine{transform:scale(.8)}}

/* Updated Google Drive clipart and extended-level interface */
.orchard-decoration .tree-art{position:absolute;top:80px;width:125px;height:220px;object-fit:contain;filter:drop-shadow(0 8px 4px #6c8d5960);opacity:.95}
.orchard-decoration .tree-left{left:-58px}.orchard-decoration .tree-right{right:-59px;top:120px;transform:scaleX(-1)}
.modal-basket-art{max-height:120px;max-width:170px;object-fit:contain;filter:drop-shadow(0 8px 5px #927f5670)}
.recipe .swatches{max-height:310px;overflow-y:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.recipe .swatches>div{min-width:0;gap:5px;white-space:normal}
.recipe .swatches img{width:33px;height:33px;flex-shrink:0}
.recipe .swatches span{font-size:11px;line-height:1.15}
.level-picker{grid-template-columns:repeat(4,1fr);max-height:320px;overflow-y:auto;padding:3px}
.level-picker button{font-size:11px}
@media(max-width:700px){.orchard-decoration .tree-art{width:90px;height:160px;opacity:.65}.orchard-decoration .tree-left{left:-48px}.orchard-decoration .tree-right{right:-48px}}

/* Harvest targets: green is reserved exclusively for fruit that still needs collecting. */
.legend-explanation{display:flex;align-items:center;gap:7px;margin:8px 0 10px;font-size:11px;line-height:1.35;font-weight:750;color:#437f48}
.legend-green{width:18px;height:18px;flex:none;border:2px solid #379a4a;background:#d2f3c8;border-radius:5px}
.recipe .swatches>div.fruit-goal-row{border-radius:10px;padding:7px 5px!important;border:2px solid #e9dfd2;background:#fffdfa;gap:6px!important}
.recipe .swatches>div.needs-harvest{border-color:#75c781;background:#e3f7de}
.recipe .swatches>div.harvest-complete{opacity:.53;background:#f5f2e9}
.recipe .swatches .goal-count{min-width:23px;padding:4px;border-radius:8px;background:#379a4a;color:white;font-size:12px;text-align:center;margin-left:auto}
.recipe .swatches .harvest-complete .goal-count{background:#819a84}
.recipe .swatches>div span{flex:1;min-width:0}
@media(max-width:700px){.recipe .swatches{grid-template-columns:repeat(2,minmax(0,1fr))}}

.cluster-caption{display:block;text-align:center;color:#6e9378;font-size:11px;font-weight:800;padding:0 4px 12px}.preview{overflow:hidden}

/* NEW ORIGINAL ORCHARD SCENERY — uses shipped desktop and mobile images. */
body{
  background-image:linear-gradient(90deg,rgba(246,251,236,.13),rgba(246,251,236,.05)),url("assets/orchard-desktop.jpg");
  background-color:#ceeeb1;background-size:cover;background-position:center center;
  background-attachment:fixed;
}
.top,.panel{background-color:rgba(255,253,242,.94);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:2px solid rgba(255,255,255,.92);box-shadow:0 12px 34px #486e423b}
.bakery-scene.orchard-scene{
 background:linear-gradient(to bottom,rgba(250,255,237,.13),rgba(224,246,189,.24)),url("assets/orchard-desktop.jpg") center center /cover no-repeat!important;
}
/* The illustrated background already contains trees, clouds and sunshine. */
.orchard-decoration{display:none!important}
.tray-outer{position:relative;z-index:2}
.basket-board{background:rgba(255,249,223,.95)!important}
.boardhead{position:relative;z-index:2}
@media(max-width:700px){
 body{background-image:linear-gradient(rgba(245,252,230,.08),rgba(245,252,230,.10)),url("assets/orchard-mobile.jpg");background-attachment:scroll;background-position:center top;background-size:100% auto;background-repeat:repeat-y}
 .bakery-scene.orchard-scene{background:linear-gradient(rgba(255,255,250,.12),rgba(247,255,230,.18)),url("assets/orchard-mobile.jpg") center center / cover no-repeat!important}
 .top,.panel{background-color:rgba(255,253,242,.95)}
}
@media(prefers-reduced-transparency:reduce){.top,.panel{background-color:#fffdf2;backdrop-filter:none}}

/* Forty-level expansion */
.challenge-description{margin-top:12px;border:1px solid #cbe6b9;background:#f0fae7;padding:10px 12px;border-radius:12px;font-size:12px;line-height:1.55;font-weight:750;color:#457141}.special-goals{margin:14px 0;background:#f4faed;border:1px solid #d5e8c2;padding:12px;border-radius:14px;color:#57744c;font-size:12px}.special-goals strong{font-size:11px;letter-spacing:1px}.special-goals p{line-height:1.45;margin:8px 0}.helper-button{background:linear-gradient(130deg,#e4b94c,#f2d67e);border:2px solid #b68b34;color:#594922;border-radius:10px;padding:10px 12px;width:100%;font-weight:900;cursor:pointer}.helper-button:disabled{opacity:.55;cursor:default}.level-picker{max-height:min(48vh,350px);overflow-y:auto}.top .title h1{font-size:clamp(23px,3.5vw,40px)}

/* 60-stage preview enhancements; new world backgrounds are still planned */
.world-badge{margin:12px 0 0;padding:10px 12px;background:#e3f3e1;color:#3d7551;border-radius:12px;font-weight:900;text-transform:uppercase;letter-spacing:1px;font-size:11px}
.toolbelt{background:#fff8e3;padding:12px;border:1px solid #e9d6a0;border-radius:14px;margin:12px 0}.toolbelt>strong{font-size:11px;color:#856634;letter-spacing:.8px}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.tool-grid button{border:1px solid #b8d5b2;border-radius:10px;background:#f5fdf0;padding:6px 3px;font-size:10px;font-weight:800;color:#547252;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:67px;cursor:pointer}.tool-grid button img{width:29px;height:29px;object-fit:contain}.tool-grid button:disabled{opacity:.46;cursor:default}
@media (max-width:700px){.tool-grid button{font-size:11px;min-height:70px}.level-picker{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Transitional world identification until the final illustrated market and festival backgrounds are available. */
body[data-world="market"] .world-badge{background:#fff0d2;color:#986326}
body[data-world="festival"] .world-badge{background:#f0e6ff;color:#74559b}
body[data-world="market"] .tray-header{background:#c39255;color:#fff}
body[data-world="festival"] .tray-header{background:#9571a0;color:#fff}

/* THREE COMPLETE HARVEST WORLDS — background switches with level (1–20 / 21–40 / 41–60). */
body[data-world="market"]{
  background-image:linear-gradient(90deg,rgba(255,246,231,.1),rgba(255,246,231,.05)),url("assets/market-desktop.jpg");
  background-color:#f3d9a4;
}
body[data-world="festival"]{
  background-image:linear-gradient(90deg,rgba(247,236,255,.09),rgba(247,236,255,.05)),url("assets/festival-desktop.jpg");
  background-color:#6d639a;
}
body[data-world="market"] .bakery-scene.orchard-scene{
  background:linear-gradient(rgba(255,250,235,.08),rgba(255,241,216,.10)),url("assets/market-desktop.jpg") center center /cover no-repeat!important;
}
body[data-world="festival"] .bakery-scene.orchard-scene{
  background:linear-gradient(rgba(255,245,255,.08),rgba(255,244,227,.10)),url("assets/festival-desktop.jpg") center center /cover no-repeat!important;
}
body[data-world="festival"] .top,body[data-world="festival"] .panel{background-color:rgba(255,250,244,.95)}
body[data-world="market"] .top,body[data-world="market"] .panel{background-color:rgba(255,252,240,.95)}
body[data-world="market"] .boardhead,body[data-world="festival"] .boardhead{background-color:rgba(255,255,246,.94)}
@media(max-width:700px){
 body[data-world="market"]{background-image:linear-gradient(rgba(255,250,238,.10),rgba(255,250,238,.08)),url("assets/market-mobile.jpg");background-position:center top;background-size:100% auto;background-attachment:scroll;background-repeat:repeat-y}
 body[data-world="festival"]{background-image:linear-gradient(rgba(255,250,252,.09),rgba(255,250,252,.08)),url("assets/festival-mobile.jpg");background-position:center top;background-size:100% auto;background-attachment:scroll;background-repeat:repeat-y}
 body[data-world="market"] .bakery-scene.orchard-scene{background:linear-gradient(rgba(255,250,238,.10),rgba(255,250,238,.12)),url("assets/market-mobile.jpg") center center / cover no-repeat!important}
 body[data-world="festival"] .bakery-scene.orchard-scene{background:linear-gradient(rgba(255,250,252,.08),rgba(255,250,252,.10)),url("assets/festival-mobile.jpg") center center / cover no-repeat!important}
}

/* Integrated special fruit and reward illustrations */
.helper-button{display:flex;align-items:center;justify-content:center;gap:7px}
.helper-button img{width:30px;height:30px;object-fit:contain;flex:0 0 30px}
.victory-art{display:block;max-width:100%;width:320px;max-height:120px;object-fit:contain;margin:0 auto 8px}
.victory-art[hidden]{display:none}
.modal-fruit .modal-basket-art{width:150px;height:112px;object-fit:contain}
@media(max-width:700px){.helper-button img{width:25px;height:25px;flex-basis:25px}.victory-art{max-height:85px}}

/* WOVEN BASKET PLAYFIELD FRAME — replaces plain brown rectangles */
.tray-outer.basket-outer{
 max-width:379px;
 position:relative;
 padding:10px 9px 0;
 border-radius:28px 28px 39px 39px;
 background:linear-gradient(92deg,#714019 0%,#ba7439 4%,#ecb46e 10%,#9f5c29 50%,#f7c77e 92%,#85481e 100%);
 box-shadow:0 19px 25px #59310f62,0 5px 0 #5b3619, inset 0 4px 3px #ffe0a4, inset 0 -7px 4px #63391e;
 filter:none;
}
.basket-outer .tray-header{
 position:relative;
 z-index:3;
 border:4px solid #79441f!important;
 border-bottom:5px solid #78441f!important;
 border-radius:22px 22px 9px 9px!important;
 padding:12px 15px!important;
 color:#fff9e9!important;
 text-shadow:0 2px 2px #5e3418;
 background:
  linear-gradient(180deg,#ffe2a2bb 0%,transparent 20%,transparent 72%,#64360d77 100%),
  repeating-linear-gradient(0deg,#ab6c36 0 8px,#cb894c 9px 15px,#e7ab63 16px 23px,#a7632e 24px 27px)!important;
 box-shadow:0 3px 0 #f6c982,0 7px 2px #6d3b19;
}
.basket-outer .basket-board{
 position:relative;
 border:0!important;
 border-radius:5px 5px 19px 19px!important;
 padding:6px 14px 17px;
 background:
  repeating-linear-gradient(0deg,#654019 0 3px,transparent 3px 19px,#ffe4a3ad 20px 23px,transparent 23px 36px),
  repeating-linear-gradient(90deg,#c08345 0 13px,#efa95b 13px 25px,#975727 25px 33px,#db9b53 33px 47px)!important;
 box-shadow:inset 0 5px 6px #572e16ad,inset 0 0 0 3px #663817,0 3px 0 #ffe0a1!important;
 overflow:hidden;
}
.basket-outer .basket-board:before,.basket-outer .basket-board:after{
 content:'';position:absolute;top:0;bottom:0;width:12px;z-index:2;pointer-events:none;
 background:repeating-linear-gradient(180deg,#f6c77f 0 13px,#a5632e 13px 18px,#d89448 18px 31px,#82491d 31px 36px);
 box-shadow:inset 2px 0 2px #fff0bd, inset -2px 0 2px #72401e;
}
.basket-outer .basket-board:before{left:1px;border-radius:3px 0 0 12px}
.basket-outer .basket-board:after{right:1px;border-radius:0 3px 12px 0}
.basket-outer .basket-board canvas{
 border-radius:5px 5px 11px 11px;
 box-shadow:0 0 0 3px #6e421d,0 2px 10px #65422288;
 background:#fff9e2;
}
.basket-outer .basket-footer{
 position:relative;
 z-index:3;
 height:27px!important;
 width:94%;margin:-3px auto 0;
 border:4px solid #784119!important;
 border-top:2px solid #f8cf8c!important;
 border-radius:4px 4px 29px 29px!important;
 background:repeating-linear-gradient(90deg,#a75e25 0 8px,#e6ac65 9px 21px,#8e511f 22px 27px)!important;
 box-shadow:inset 0 4px #ffe0a57a,0 5px 0 #6f401e;
}
/* Final refined basket frame: clean sides, seamless curved wicker base, no handles. */
.basket-outer:before,.basket-outer:after{content:none!important;display:none!important}
.tray-outer.basket-outer{
 padding-bottom:0!important;
 border-radius:27px 27px 40px 40px;
 background:linear-gradient(90deg,#84481e,#d99951 5%,#edbc77 10%,#b87938 50%,#efbd78 90%,#82451c);
 box-shadow:0 13px 23px #4c31175c,0 5px 0 #72411c,inset 0 3px 3px #ffe5a8;
 overflow:hidden;
}
.basket-outer .basket-board{
 padding-bottom:8px!important;
 border-radius:5px 5px 8px 8px!important;
 box-shadow:inset 0 4px 6px #572e16ad,inset 0 0 0 3px #663817!important;
}
.basket-outer .basket-footer{
 width:100%!important;
 height:26px!important;
 margin:0!important;
 border:0!important;
 border-top:4px solid #70401f!important;
 border-radius:0 0 35px 35px!important;
 background:
  linear-gradient(180deg,#f9d291 0 3px,transparent 3px 9px,#8d4a1d88 10px 13px,transparent 14px),
  repeating-linear-gradient(90deg,#a45e29 0 10px,#d69248 10px 21px,#f3ba6b 21px 26px,#9a5425 26px 32px)!important;
 box-shadow:inset 0 -7px 5px #79421e66,inset 0 3px 2px #f9d599a8!important;
 position:relative;
}
.basket-outer .basket-footer:after{
 content:'';position:absolute;bottom:1px;left:4%;right:4%;height:5px;
 border-radius:50%;background:linear-gradient(90deg,transparent,#ffdf98a1,transparent);
}
@media(max-width:700px){
 .tray-outer.basket-outer{max-width:354px;padding:8px 7px 0}
 .basket-outer .basket-board{padding:4px 11px 6px!important}
 .basket-outer .basket-board:before,.basket-outer .basket-board:after{width:9px}
 .basket-outer .basket-footer{height:22px!important}
}


/* Layout tweak: move tools higher and controls to the bottom of the right panel */
.right .tools-top{margin:14px 0 12px;box-shadow:0 6px 14px #d1b9701a}
.right .helper-panel{margin-top:0}
.right .controls-panel{margin-top:16px;padding-top:2px}
.right .controls-divider{margin:18px 0 10px}
@media(max-width:1060px){.right .controls-panel{grid-column:1/-1}.right .controls-divider{display:block;grid-column:1/-1}.right .tools-top{grid-column:2}.right .helper-panel{grid-column:2}.right .buttons{grid-column:2}.right .bonus{grid-column:1/-1}.right .preview{grid-row:auto}}

.tool-grid .tool-caption{display:block;line-height:1.15;text-align:center}

/* Fair-play rescue only appears after five consecutive drops without collecting a target. */
.rescue-button{display:block;width:100%;margin-top:9px;border:2px solid #6bb69b;border-radius:10px;background:#d9f8e9;color:#276450;font-weight:900;padding:11px;font-size:12px}.rescue-button[hidden]{display:none!important}.rescue-button:disabled{opacity:.55}
