@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#30473c;background:#f7f5ed;--green:#385a47;--line:#d8ddcf}*{box-sizing:border-box}body{margin:0}header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid var(--line)}header a{color:inherit;text-decoration:none;font-family:'Libre Caslon Display',Georgia,serif;font-size:29px}header span,.eyebrow{font-size:10px;letter-spacing:2.5px}button,select{font:inherit;color:inherit;background:#fffdf6;border:1px solid var(--line);border-radius:9px;padding:11px 17px;cursor:pointer}button:hover{background:#e8eddf}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);color:white;border:0;padding:17px 23px}.hero{min-height:390px;padding:54px 7%;display:flex;align-items:end;justify-content:space-between;background:linear-gradient(90deg,#f6f4eaf2,#f6f4ea55),url('garden.png') center 58%/cover}.hero h1{font:76px/.95 'Libre Caslon Display',Georgia,serif;margin:12px 0 20px;letter-spacing:-2px}.hero em{font-weight:400;color:#6c8863}.hero p{line-height:1.7}.heroNote{background:#ffffffe0;border-radius:12px;padding:20px;font:22px Georgia;line-height:1.5}nav{display:flex;justify-content:center;gap:22px;margin:25px}nav button{background:none;border:0;border-radius:0}.active{box-shadow:inset 0 -2px #6d895f}.tab{max-width:1100px;margin:35px auto 60px;padding:0 24px}.hidden{display:none!important}.playLayout{display:grid;grid-template-columns:1fr 1.5fr;gap:65px;align-items:start}h2{font:40px 'Libre Caslon Display',Georgia,serif;margin:10px 0 20px}p{line-height:1.7}aside label{display:block;margin:24px 0 12px}aside button{display:block}.small{font-size:12px;color:#718071}.rewardPreview{padding:18px;background:#e9eddf;border-radius:12px}.puzzle{background:#fffdf7;border:1px solid var(--line);padding:22px;border-radius:18px;box-shadow:0 12px 40px #30473c09}#board{display:grid;grid-template-columns:repeat(9,1fr);border:2px solid #52634d;aspect-ratio:1}#board button{padding:0;min-width:0;border:0;border-right:1px solid #d0d6c6;border-bottom:1px solid #d0d6c6;border-radius:0;font-size:clamp(18px,2.6vw,30px);background:#fffdf4}#board button:nth-child(3n){border-right:2px solid #52634d}#board button:nth-child(n+19):nth-child(-n+27),#board button:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #52634d}#board .given{color:#354634;font-weight:600}#board .entered{color:#6f6fa1}#board .selected{background:#d6e5c6}#board .peer{background:#f0f3e7}#board .conflict{color:#a94848;background:#fae8e0}#board .pencil{font-size:10px;line-height:1.4;letter-spacing:2px}.tools{display:flex;gap:5px;margin:16px 0}.tools button{flex:1;padding:10px 2px;font-size:12px}#keypad{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}#keypad button{padding:10px 0;font-size:20px}#status{font-size:12px;min-height:38px;margin-bottom:0}.sectionHeading{display:flex;justify-content:space-between;align-items:center}#stages{display:grid;grid-template-columns:repeat(10,1fr);gap:9px}#stages button{padding:14px 3px}#stages small{display:block;font-size:8px;margin-top:5px}.gardenScene{height:480px;background:url('garden.png') center/cover;border-radius:20px;position:relative}#placements{position:absolute;inset:35% 7% 8%;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}#placements button{background:#ffffff25;border:1px dashed #ffffff85;display:grid;place-content:center;align-content:center;color:#294c37;text-shadow:0 1px white}#placements .ornament{font-size:56px;filter:drop-shadow(0 5px 5px #1b321c66)}#inventory{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.item{border:1px solid var(--line);border-radius:12px;padding:18px}.item .icon{font-size:45px}.item button{font-size:11px;padding:8px}.tier1{background:#edf1f7}.tier2{background:#f8efd9}.sectionHeading p{font-size:13px}footer{text-align:center;font-size:11px;padding:25px;color:#7b8576}dialog{border:1px solid var(--line);border-radius:22px;max-width:440px;padding:35px;text-align:center}dialog::backdrop{background:#1e352b88}#prize{font-size:23px}#prize .icon{display:block;font-size:80px}dialog button{margin:5px}@media(max-width:700px){header{height:64px}header span{display:none}header a{font-size:24px}.hero{padding:35px 24px;min-height:360px}.hero h1{font-size:62px}.heroNote{display:none}.playLayout{grid-template-columns:1fr;gap:16px}aside .small{display:none}aside h2{font-size:30px;margin-bottom:6px}aside label{display:inline-block;margin:8px}aside button{display:inline-block}aside .rewardPreview{display:none}.tab{padding:0 14px;margin-top:20px}.puzzle{padding:12px}#board button{font-size:25px}nav{gap:5px;margin:16px 0}#stages{grid-template-columns:repeat(5,1fr)}#inventory{grid-template-columns:repeat(2,1fr)}.gardenScene{height:370px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.treasure{display:block;width:110px;height:110px;border-radius:18px;background-image:url(treasures.png);background-size:300% 200%;margin:auto}.rarity1{box-shadow:0 0 0 3px #bccbdc,0 0 18px #99b5dc77}.rarity2{box-shadow:0 0 0 3px #d8b762,0 0 25px #edcc6999;filter:saturate(1.2)}#placements .treasure{width:100px;height:100px}#placements small{background:#ffffffe0;border-radius:5px;padding:4px}
.soundControls{display:flex;align-items:center;gap:12px}.soundControls label{display:flex;align-items:center;gap:5px;font-size:11px}.soundControls input{width:75px;accent-color:#385a47}@media(max-width:700px){.soundControls{gap:5px}.soundControls label{font-size:0}.soundControls input{width:48px}.soundControls button{padding:10px;font-size:12px}}

#entryMode{font-size:11px;padding:8px 10px;margin-bottom:12px;border-radius:6px;background:#e7eddf;color:#385a47}#entryMode.pencilMode{background:#fff0cc;color:#73521a}#completionProgress{font-size:13px;font-weight:600;margin-bottom:8px}.tools #notes.active{background:#fff0cc;outline:2px solid #b58d44;box-shadow:none}.completionActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.completionActions button{font-size:12px}#confirmNotes{background:#385a47;color:white}#confirmNotes[hidden]{display:none}#board .pencil{font-size:12px;background:#f7f0e8}#board .entered:not(.pencil){font-weight:500} @media(min-width:701px) and (max-height:1000px){.playLayout{grid-template-columns:minmax(200px,1fr) minmax(320px,560px);gap:30px}.puzzle{max-width:560px;width:100%;justify-self:center}}

/* Garden Edition 0.2: grounded compositing, no slot grid */
.gardenScene{height:auto!important;aspect-ratio:3/2;background-size:100% 100%;background-position:center;overflow:hidden;border-radius:20px}.gardenScene #placements{display:block;position:absolute;inset:0;cursor:default}.gardenScene.arranging #placements{cursor:crosshair}.gardenScene #placements .placedDecor{display:block;position:absolute;transform:translate(-50%,-90%);padding:0!important;border:0!important;background:transparent!important;box-shadow:none;border-radius:0;aspect-ratio:1;min-height:0;text-shadow:none;filter:drop-shadow(1px 3px 2px #22341a44)}.gardenSprite{display:block;width:150px;height:150px;background-image:url('garden-cutouts.png');background-size:300% 200%;background-position:calc(var(--col)*50%) calc(var(--row)*100%);background-repeat:no-repeat;margin:auto}.placedDecor .gardenSprite{width:100%;height:100%}.grade1{filter:saturate(1.1)}.grade2{filter:saturate(1.2) brightness(1.05)}.placedDecor .grade1,.placedDecor .grade2{box-shadow:none}.decorAccessory{position:absolute;right:22%;top:25%;font-size:clamp(10px,2vw,23px)}#gardenChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0}.gardenChoice{padding:0;overflow:hidden;text-align:left;background:#fffdf6}.gardenChoice img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.gardenChoice span,.gardenChoice small{display:block;padding:8px 12px}.gardenChoice small{padding-top:0;font-size:11px}.selectedGarden{outline:2px solid #59714d}.gardenChoice:disabled img{filter:grayscale(.7)}.itemLocation{font-size:12px;color:#4f6c43}.itemActions{display:flex;gap:7px;flex-wrap:wrap}.item .gardenSprite{width:150px;height:150px}.item h3{margin-bottom:5px}.stageTile button{width:100%}.stageTile .cleared{opacity:1;background:#e3ebd9}.stageTile .replayLevel{font-size:9px;padding:6px;border:0;background:none}.nextLevel{outline:2px solid #749260}.lockedLevel{background:#eeeee6}.noteConversion button{width:100%;margin:4px 0 10px;background:#385a47;color:white}.gardenScene{margin-top:14px}#cancelPlacement[hidden]{display:none}@media(max-width:700px){#gardenChoices{gap:7px}.gardenChoice span{font-size:11px;padding:7px}.gardenChoice small{padding:0 7px 7px;font-size:9px}.gardenScene{border-radius:12px}.item .gardenSprite{width:110px;height:110px}.gardenSprite{width:110px;height:110px}}

svg.gardenSprite{background:none!important;overflow:hidden}.gardenScene #placements .placedDecor{aspect-ratio:var(--ratio);transform:translate(-50%,-100%)}.gardenScene #placements .placedDecor svg{height:100%;width:100%;background:none}.grade1{filter:saturate(1.15)}.grade2{filter:saturate(1.2) brightness(1.08)}

/* Complete painted scenes; no object overlays. */
.gardenScene{background:none!important;aspect-ratio:3/2;height:auto!important}.gardenScene #placements{position:relative!important;inset:auto!important;display:block!important;line-height:0;cursor:default!important;width:100%;height:100%}.wholeGarden{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.rewardLandscape{display:block;width:100%;height:auto;border-radius:14px;margin:15px 0}.gardenScene #placements img{border:0;border-radius:0}.item{padding:20px}.item h3{margin-top:5px}

#progressNotice:empty{display:none}#progressNotice{max-width:1050px;margin:20px auto;padding:16px 20px;background:#e5eddc;border:1px solid #c7d7b9;border-radius:10px;font-size:14px}

/* Independent alpha assets, grounded editor */
.gardenScene #placements{position:relative!important;aspect-ratio:3/2;line-height:normal;overflow:hidden;isolation:isolate}.gardenBase{display:block;width:100%;height:100%;pointer-events:none}.gardenScene #placements .independentDecor{position:absolute!important;display:block!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important;transform:translate(-50%,-92%);touch-action:none;cursor:grab;line-height:0;filter:drop-shadow(1px 3px 2px #24391c38)}.independentDecor>img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}.independentDecor.decorSelected{filter:drop-shadow(0 0 3px #fff2aa) drop-shadow(1px 3px 2px #24391c38)!important}.independentDecor:active{cursor:grabbing}.itemPhoto{display:block;width:140px;height:140px;object-fit:contain;margin:0 auto 15px}.prizeItem{width:180px;height:180px;object-fit:contain}.gardenScene #placements .liveKoi{position:absolute;width:12%;left:48%;top:55%;height:auto;animation:koiDrift 12s ease-in-out infinite}.pondRipple{position:absolute;width:30%;height:8%;border:1px solid #ffffff60;border-radius:50%;left:40%;top:58%;animation:pondRipple 5s ease-out infinite;pointer-events:none}.butterfly{position:absolute;right:18%;top:20%;font-size:20px;pointer-events:none}#decorControls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:16px 0;padding:16px;background:#e9efdf;border-radius:12px}#decorControls[hidden]{display:none}#decorControls label{display:flex;align-items:center;gap:7px}#decorSize{width:140px;accent-color:#385a47}#decorControls button{font-size:12px}#gardenChoices{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.gardenChoice span{letter-spacing:0}@keyframes koiDrift{0%,100%{transform:translate(-60%,0) rotate(-8deg)}50%{transform:translate(80%,12%) rotate(18deg)}}@keyframes pondRipple{0%{transform:scale(.2);opacity:.7}100%{transform:scale(1.5);opacity:0}}@media(prefers-reduced-motion:reduce){.liveKoi,.pondRipple{animation:none!important}}

.playMode{font-size:13px;line-height:1.5;background:#e9efdf;padding:10px 12px;border-radius:9px;margin:0 0 12px}.freePlayOptions{margin:18px 0}.freePlayOptions summary{cursor:pointer;font-size:13px}.freePlayOptions[open]{padding:12px;border:1px solid var(--line);border-radius:9px}#recoverCompletion{margin-bottom:20px}

/* Keep each reward on its own centered row, including narrow screens. */
#win{width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;padding:clamp(20px,5vw,35px)}
#prize{display:flex;flex-direction:column;align-items:center;gap:10px;margin:18px 0;line-height:1.35;text-align:center}
#win .prizeItem{display:block;flex:none;width:160px;max-width:100%;height:160px;object-fit:contain;margin:0 auto}
#prize .prizeName{margin:0;max-width:100%;font:500 clamp(18px,4.8vw,22px)/1.35 'DM Sans',sans-serif;overflow-wrap:anywhere}
#prize .small{margin:0}
#win .winActions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px;margin:18px auto 0}
#win .winActions button{display:block;min-height:44px;width:100%;margin:0}

.decorArtwork{display:block;position:relative;pointer-events:none}.decorArtwork>img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}#decorFlip[aria-pressed="true"]{background:#dce8cf}#resetPuzzle{margin-left:8px}
