.farm-keepsakes{margin:22px 0;padding:24px;border:2px solid #fffdf4;border-radius:29px;background:#fffbed;box-shadow:0 6px 0 #a6c79b29;color:#456e59}.keepsakes-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.keepsakes-heading span{font-size:14px;color:#79916e}.keepsakes-heading h2{font-size:25px;margin:5px 0 0}.keepsakes-heading>b{white-space:nowrap;font-size:15px;padding:9px 13px;background:#eef3d6;border-radius:16px;color:#719454}.farm-display{display:grid;grid-template-columns:minmax(210px,.8fr) 1fr;gap:25px;align-items:center}.farm-mini-scene{position:relative;isolation:isolate;overflow:hidden;height:182px;border-radius:23px;background:#d8eff1;border:2px solid #cae0cc}.farm-mini-sun{position:absolute;left:22px;top:20px;width:31px;height:31px;border-radius:50%;background:#ffdd89;box-shadow:0 0 0 8px #ffebae66}.farm-mini-cloud{position:absolute;right:20px;top:28px;width:67px;height:18px;border-radius:30px;background:#fffdf3}.farm-mini-cloud:before,.farm-mini-cloud:after{content:"";position:absolute;width:27px;height:27px;border-radius:50%;background:inherit;bottom:4px;left:10px}.farm-mini-cloud:after{width:33px;height:33px;left:25px}.farm-mini-hill{position:absolute;width:130%;height:90px;border-radius:50% 50% 0 0;bottom:-15px;left:-20%;background:#b8d993}.farm-mini-hill.hill-back{bottom:5px;left:5%;background:#d6e5ae}.farm-mini-fence{position:absolute;left:15px;right:15px;bottom:47px;height:19px;background:repeating-linear-gradient(90deg,transparent 0 16px,#fffae4 16px 21px,transparent 21px 31px);border-top:4px solid #fffae4;border-bottom:4px solid #fffae4;opacity:.9}.farm-mini-keepsake{position:absolute;left:50%;bottom:7px;width:148px;transform:translateX(-50%)}.keepsake-art{display:block;width:100%;height:auto}.farm-mini-flower{position:absolute;bottom:19px;font-size:23px;color:#efafae}.farm-mini-flower.flower-left{left:21px}.farm-mini-flower.flower-right{right:26px;bottom:10px;color:#fff6c1}.farm-display-copy small{font-size:14px;color:#929772}.farm-display-copy h3{font-size:23px;margin:6px 0 8px}.farm-display-copy p{font-size:17px;line-height:1.65;margin:0 0 10px;word-break:keep-all}.farm-display-copy>span{font-size:14px;color:#829175}.keepsakes-picker{margin-top:18px;border-top:1px dashed #d9d9b6}.keepsakes-picker summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;font-size:18px;font-weight:700;min-height:56px}.keepsakes-picker summary::-webkit-details-marker{display:none}.keepsakes-picker summary>span{font-size:23px}.keepsakes-picker[open] summary>span{transform:rotate(45deg)}.keepsakes-intro{font-size:15px;line-height:1.65;margin:4px 0 16px;color:#7c8e6f}.keepsakes-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.keepsake-option{display:flex;flex-direction:column;align-items:center;min-width:0;padding:10px 6px 12px;gap:5px;border:2px solid #e1dfbd;border-radius:18px;background:#fffdf3;color:#526f53;cursor:pointer;box-shadow:0 3px 0 #dedbb866;font-family:inherit}.keepsake-option .keepsake-art{width:66px;max-width:100%}.keepsake-option strong{font-size:15px;line-height:1.4;word-break:keep-all}.keepsake-option>span{font-size:14px;line-height:1.5;word-break:keep-all;min-height:42px}.keepsake-option.is-chosen{background:#eaf3cf;border-color:#94b966;box-shadow:0 3px 0 #a2bb76}.keepsake-option:disabled{cursor:default;background:#f5f3e8;color:#8d9587;opacity:1;border-color:#e5e4d5;box-shadow:none}.keepsake-option:disabled .keepsake-art{opacity:.45;filter:saturate(.35)}.keepsake-option:focus-visible,.keepsakes-picker summary:focus-visible{outline:3px solid #dea252;outline-offset:4px}.keepsake-option.is-earned:hover{transform:translateY(-2px)}
@media(max-width:650px){.farm-keepsakes{padding:17px}.farm-display{gap:16px;grid-template-columns:1fr 1fr}.farm-mini-scene{height:160px}.farm-mini-keepsake{width:128px}.farm-display-copy h3{font-size:20px}.farm-display-copy p{font-size:15px}.farm-display-copy>span{font-size:12px}.keepsakes-heading h2{font-size:22px}.keepsakes-heading>b{font-size:13px;padding:8px 10px}.keepsakes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.keepsake-option>span{font-size:13px;min-height:37px}}
@media(max-width:420px){.farm-display{grid-template-columns:1fr}.farm-mini-scene{height:155px}.farm-display-copy{text-align:center}.keepsakes-heading{gap:8px}.keepsakes-heading span{font-size:12px}.keepsakes-heading h2{font-size:21px}.keepsakes-heading>b{font-size:12px}.keepsakes-grid{gap:8px}.keepsake-option strong{font-size:14px}}

/* Put the complete guide above the decoration choices. */
.farm-keepsakes .keepsakes-intro{display:grid;gap:6px;margin:0 0 18px;font-size:15px;color:#617957;text-align:left}
.farm-keepsakes .keepsakes-intro>p{margin:0;font-size:inherit;color:inherit;line-height:1.75;white-space:normal;word-break:keep-all;overflow-wrap:break-word;text-wrap:pretty}

/* Earned illustrations sit in the same little keepsake frame as the SVG set. */
.keepsake-art-frame{display:grid;place-items:center;flex:none;width:92px;max-width:100%;aspect-ratio:1;border:1px solid #e2dfc5;border-radius:22px;background:#fffdf3;box-shadow:inset 0 0 0 4px #f1f1dc;overflow:hidden}
.keepsake-option .keepsake-art-frame>.keepsake-art{width:82%;height:82%;max-width:none;object-fit:contain}
.keepsake-option .keepsake-art-frame>.keepsake-earned-art{width:100%;height:100%}
.keepsake-earned-art{aspect-ratio:1;object-fit:contain;border-radius:20%;background:#fffdf3}
.keepsake-option.is-earned{border-color:#c7d5a7;transition:transform .18s ease,box-shadow .18s ease}
.keepsake-option.is-chosen{border-color:#83aa5b;box-shadow:0 3px 0 #99b66d}
.keepsake-option.is-chosen .keepsake-art-frame{border-color:#abc281;box-shadow:0 0 0 2px #d8e7b3}
.keepsake-option.is-locked{color:#69795e;background:#f4f3e9}
.keepsake-option.is-locked strong{color:#647658}
.keepsake-option.is-locked>span{color:#75816b}
.keepsake-option.is-locked .keepsake-art-frame{background:#efefe2;border-color:#e3e4d4;box-shadow:none}
.keepsake-option.is-locked .keepsake-art{opacity:.56;filter:saturate(.45)}

/* The opaque cream artwork is shown as a complete framed diorama, never as a cutout. */
.farm-mini-scene.is-illustrated{background:#fffdf3;border-color:#d6dfbb;box-shadow:inset 0 0 0 5px #f0f2dc}
.farm-mini-scene.is-illustrated>.farm-mini-sun,
.farm-mini-scene.is-illustrated>.farm-mini-cloud,
.farm-mini-scene.is-illustrated>.farm-mini-hill,
.farm-mini-scene.is-illustrated>.farm-mini-fence,
.farm-mini-scene.is-illustrated>.farm-mini-flower{display:none}
.farm-mini-scene.is-illustrated .farm-mini-keepsake{top:7px;bottom:7px;width:auto;height:calc(100% - 14px);aspect-ratio:1}
.farm-mini-scene.is-illustrated .keepsake-earned-art{width:100%;height:100%;border-radius:18%}
.farm-mini-keepsake.is-arriving .keepsake-art{animation:keepsake-settle .65s cubic-bezier(.2,.65,.25,1) both}
.farm-mini-keepsake.is-arriving::after{content:"";position:absolute;inset:12% 7% 18%;border:2px solid #e4ce78;border-radius:50%;pointer-events:none;opacity:0;animation:keepsake-greeting .75s ease-out both}
@keyframes keepsake-settle{0%{opacity:.25;transform:translateY(10px) scale(.92)}65%{opacity:1;transform:translateY(-2px) scale(1.025)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes keepsake-greeting{0%{opacity:0;transform:scale(.8)}20%{opacity:.55}100%{opacity:0;transform:scale(1.12)}}
@media(max-width:650px){.keepsake-art-frame{width:98px}.keepsake-option{padding:10px 7px 12px}}
@media(max-width:420px){.keepsake-art-frame{width:84px;border-radius:19px}}
@media(prefers-reduced-motion:reduce){.keepsake-option.is-earned{transition:none}.farm-mini-keepsake.is-arriving .keepsake-art,.farm-mini-keepsake.is-arriving::after{animation:none}.keepsake-option.is-earned:hover{transform:none}}
