/* Life Forge v40: ten collectible photoreal Serenity Garden locations.
 * Fixed header follows viewport on scroll as requested. No additional bitmap mockups.
 */
/* Fixed top bar follows screen, like bottom navigation. */
body[data-lf38-theme] .lf-header{
 position:fixed!important;
 top:env(safe-area-inset-top,0px)!important;
 left:50%!important;
 transform:translateX(-50%)!important;
 width:min(calc(100% - 16px),700px)!important;
 margin:0!important;
 z-index:135!important;
 box-sizing:border-box!important;
 isolation:isolate;
}
body[data-lf38-theme] #app{
 padding-top:calc(89px + env(safe-area-inset-top,0px))!important;
 box-sizing:border-box!important;
}
body[data-lf38-theme="compact"] #app{padding-top:calc(75px + env(safe-area-inset-top,0px))!important}
body[data-lf38-theme] .lf-header::before{content:"";position:absolute;inset:-4px -4px 0;z-index:-1;background:var(--lf38-glass);filter:blur(7px);border-radius:22px}
body[data-lf38-theme] #lf39-livebar{position:relative;z-index:1}
body[data-lf38-theme] .lf40-world{color:var(--lf38-ink);padding-bottom:20px}
#lf36-garden .lf40-world *{box-sizing:border-box}
.lf40-world h1,.lf40-world h2,.lf40-world h3,.lf40-world h4{font-family:'Outfit',system-ui,sans-serif}
.lf40-world button{cursor:pointer;font-family:'Outfit',system-ui,sans-serif}
.lf40-world button:focus-visible{outline:3px solid var(--lf38-second);outline-offset:3px}
.lf40-world p{font-size:12px;line-height:1.6}
.lf40-hero{border:1px solid var(--lf38-outline);border-radius:25px;padding:20px 18px 18px;margin:5px 0 18px;background:linear-gradient(132deg,var(--lf38-card),var(--lf38-card2));display:flex;gap:16px;align-items:center;justify-content:space-between;box-shadow:0 9px 30px color-mix(in srgb,var(--lf38-main),transparent 85%)}
.lf40-hero small,.lf40-scene-head small,.lf40-store>.lf40-section-head small{font-size:9px;letter-spacing:1.6px;color:var(--lf38-main)!important;font-weight:900}
.lf40-hero h1{font-size:clamp(24px,6.8vw,37px);letter-spacing:-1px;line-height:1.1;margin:7px 0;color:var(--lf38-ink)!important}
.lf40-hero p{max-width:350px;color:var(--lf38-muted)!important;margin:5px 0 0}
.lf40-balance{min-width:106px;display:flex;flex-direction:column;gap:7px;align-items:stretch}
.lf40-balance span{border:1px solid var(--lf38-outline);border-radius:13px;background:var(--lf38-card);color:var(--lf38-main);padding:8px 9px;white-space:nowrap;font:900 10px 'Outfit';text-align:center}
.lf40-locations{margin:15px 0 18px}
.lf40-section-head{display:flex;align-items:center;justify-content:space-between;gap:13px;margin:8px 0 12px}
.lf40-section-head h2{color:var(--lf38-ink)!important;font:900 20px 'Outfit';margin:0}
.lf40-section-head>span{font:900 11px 'Outfit';color:var(--lf38-main);white-space:nowrap}
.lf40-locations-track{display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity;padding:5px 3px 14px;overscroll-behavior-x:contain}
.lf40-world-card{flex:0 0 134px;height:133px;position:relative;overflow:hidden;border:2px solid var(--lf38-outline);border-radius:18px;padding:0;background:var(--lf38-card2);scroll-snap-align:start;color:#fff;box-shadow:0 6px 17px #08132235;transition:transform .2s,border-color .2s;text-align:left}
.lf40-world-card.selected{border:3px solid var(--lf38-main);box-shadow:0 0 0 2px color-mix(in srgb,var(--lf38-main),transparent 52%),0 10px 22px #07152955}
.lf40-world-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lf40-cardshade{position:absolute;inset:0;background:linear-gradient(transparent 28%,#091423da 100%)}
.lf40-card-state{position:absolute;top:8px;right:8px;border-radius:9px;background:#081522cc;padding:5px 7px;color:#fff!important;font:900 9px 'Outfit'}
.lf40-world-card strong{position:absolute;bottom:11px;left:10px;right:7px;font:900 13px/1.2 'Outfit';color:white;text-shadow:0 2px 4px #091521}
.lf40-scene-section{padding:13px;border-radius:25px;background:var(--lf38-card);border:1px solid var(--lf38-outline);box-shadow:0 13px 35px color-mix(in srgb,var(--lf38-main),transparent 89%)}
.lf40-scene-head{display:flex;justify-content:space-between;align-items:center;gap:7px;padding:6px 3px 14px}
.lf40-scene-head h2{margin:3px 0 5px;color:var(--lf38-ink)!important;font-size:clamp(21px,5vw,27px)}
.lf40-scene-head p{margin:0;color:var(--lf38-muted)!important}
.lf40-scene-count{align-self:flex-start;white-space:nowrap;background:var(--lf38-card2);border:1px solid var(--lf38-outline);padding:7px 10px;border-radius:11px;font:800 10px 'Outfit';color:var(--lf38-main)}
.lf40-scene{position:relative;isolation:isolate;overflow:hidden;border-radius:20px;border:1px solid var(--lf38-outline);width:100%;aspect-ratio:850/605;background:#486d64;box-shadow:inset 0 0 16px #081c3e59}
.lf40-backdrop{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}
.lf40-scene-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#1b2f2710 20%,transparent 42%,#0c26371a 85%,#09142635)}
.lf40-placement-layer{position:absolute;inset:0;z-index:2;pointer-events:none}
.lf40-hotspot{position:absolute;left:var(--px);top:var(--py);transform:translate(-50%,-50%);border:0;background:none;display:grid;place-items:center;border-radius:50%;width:17%;height:14%;aspect-ratio:1;pointer-events:auto;padding:0;filter:drop-shadow(1px 7px 6px #07172383)}
.lf40-scene:not(.editing) .lf40-hotspot.empty{display:none}
.lf40-scene:not(.editing) .lf40-hotspot.decorated{pointer-events:none}
.lf40-hotspot.empty{background:#dbfced16;outline:1px dashed #fff9;outline-offset:0}
.lf40-hotspot.empty .lf40-add{display:grid;place-items:center;font:900 clamp(13px,5vw,24px) 'Outfit';color:white;text-shadow:0 2px 5px #172432;width:33px;height:33px;background:#183c4c6b;border:1px solid #ffffffe0;border-radius:50%;animation:lf40-breath 3s ease-in-out infinite}
.lf40-hotspot.decorated.selected{outline:2px solid #e9fcf1;outline-offset:3px;background:#ffffff14}
.lf40-prop{position:absolute;left:50%;top:50%;width:100%;height:125%;display:grid;place-items:center;transform-origin:center center;will-change:transform}
.lf40-prop img{width:100%;height:100%;object-fit:contain;border-radius:20%;filter:drop-shadow(0 7px 4px #08232176);mix-blend-mode:normal;mask-image:radial-gradient(ellipse,#000 44%,#000a 61%,transparent 79%)}
.lf40-locked-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;text-align:center;background:linear-gradient(#091a2e8c,#152237d0);padding:12px;color:white!important}
.lf40-lock-icon{font-size:45px;color:#faefd2;filter:drop-shadow(0 0 12px #ffe8be)}
.lf40-locked-overlay h3{font-size:clamp(20px,5vw,26px);margin:0;color:white!important}
.lf40-locked-overlay p{color:#f5ebdf!important;margin:0 0 5px}
.lf40-locked-overlay button{background:linear-gradient(115deg,#a3e2ba,#d6c3a3);border:0;border-radius:14px;padding:12px 17px;font:900 13px 'Outfit';color:#203a36;box-shadow:0 7px 18px #0005}
.lf40-scene-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:13px}
.lf40-edit-description{color:var(--lf38-muted);font:700 11px/1.5 'DM Sans';flex:1}
.lf40-scene-toolbar button,.lf40-boutique-invite button{border:none;border-radius:14px;padding:11px 14px;white-space:nowrap;font:900 11px 'Outfit';background:linear-gradient(115deg,var(--lf38-main),var(--lf38-second));color:var(--lf38-cta-text)}
.lf40-scene-toolbar button.active{background:var(--lf38-card2);color:var(--lf38-main);border:1px solid var(--lf38-outline)}
.lf40-editbox{border:1px solid var(--lf38-outline);margin-top:13px;padding:12px;background:var(--lf38-card2);border-radius:16px}
.lf40-selected-info{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.lf40-selected-info img{width:65px;height:55px;object-fit:cover;border-radius:11px}
.lf40-selected-info strong{display:block;color:var(--lf38-ink);font:900 14px 'Outfit'}
.lf40-selected-info small,.lf40-edit-hint{color:var(--lf38-muted)!important;font:700 11px 'DM Sans'}
.lf40-transform{display:flex;gap:7px;flex-wrap:wrap}
.lf40-transform button{border:1px solid var(--lf38-outline);background:var(--lf38-card);color:var(--lf38-ink);border-radius:11px;padding:10px;font-size:11px;font-weight:800}
.lf40-note{margin:10px 2px;color:var(--lf38-muted)}
.lf40-collection{margin:19px 0}
.lf40-textbutton{background:var(--lf38-card2);border:1px solid var(--lf38-outline);padding:9px 10px;border-radius:12px;color:var(--lf38-main);font:900 11px 'Outfit'}
.lf40-owned-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.lf40-owned-item{padding:7px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:var(--lf38-card);border:1px solid var(--lf38-outline);border-radius:15px;min-width:0}
.lf40-owned-item.selected{outline:2px solid var(--lf38-main)}
.lf40-owned-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:7px;background:#f4f3e7}
.lf40-owned-item strong{font:900 11px/1.3 'Outfit';color:var(--lf38-ink);margin:0 3px 3px}
.lf40-owned-item small{font:700 10px 'DM Sans';color:var(--lf38-muted);margin:0 3px 4px}
.lf40-empty-collection{grid-column:1/-1;text-align:center;padding:26px 15px;border:1px dashed var(--lf38-outline);background:var(--lf38-card);border-radius:17px;color:var(--lf38-muted);font:700 12px/1.6 'DM Sans'}
.lf40-boutique-invite{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:17px;background:linear-gradient(130deg,var(--lf38-card2),var(--lf38-card));border:1px solid var(--lf38-outline);border-radius:20px;margin:18px 0}
.lf40-boutique-invite h2{font:900 20px 'Outfit';margin:0 0 5px;color:var(--lf38-ink)!important}
.lf40-boutique-invite p{margin:0;color:var(--lf38-muted)!important}
.lf40-store{border:1px solid var(--lf38-outline);border-radius:20px;padding:15px;background:var(--lf38-card);margin:16px 0;scroll-margin-top:100px}
.lf40-store .lf40-section-head h2{font-size:25px}
.lf40-store>p{color:var(--lf38-muted)!important;margin:5px 0 12px}
.lf40-filter-row{display:flex;gap:7px;overflow-x:auto;padding:5px 1px 13px}
.lf40-filter-row button{border:1px solid var(--lf38-outline);color:var(--lf38-ink);background:var(--lf38-card2);border-radius:16px;padding:9px 12px;white-space:nowrap;font:850 11px 'Outfit'}
.lf40-filter-row button.active{background:var(--lf38-main);color:var(--lf38-cta-text)}
.lf40-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lf40-product{overflow:hidden;border:1px solid var(--lf38-outline);border-radius:16px;background:var(--lf38-card2);min-width:0}
.lf40-product-img{margin:7px 7px 0;background:#f9faf4;border-radius:12px;overflow:hidden}
.lf40-product-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.lf40-product-text{padding:10px}
.lf40-product-text small{font:900 9px 'DM Sans';letter-spacing:.7px;color:var(--lf38-main)!important}
.lf40-product-text h3{font:900 14px/1.25 'Outfit';margin:5px 0 4px;color:var(--lf38-ink)!important}
.lf40-product-text p{font-size:10px;min-height:27px;margin:0 0 5px;color:var(--lf38-muted)!important}
.lf40-product-text span{display:block;font:800 10px 'DM Sans';color:var(--lf38-muted)}
.lf40-product-text button{width:100%;margin-top:9px;border:0;border-radius:10px;padding:10px 6px;background:var(--lf38-main);color:var(--lf38-cta-text);font:900 12px 'Outfit'}
.lf40-bottom-note{font:700 10px/1.5 'DM Sans';color:var(--lf38-muted);padding:5px 0 18px;text-align:center}
#lf40-toast{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;z-index:999996;transform:translate(-50%,12px);background:#212c3deb;color:white;max-width:94vw;text-align:center;padding:13px 17px;border-radius:15px;font:800 12px/1.5 'DM Sans';box-shadow:0 12px 28px #040e2255;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
#lf40-toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes lf40-breath{50%{box-shadow:0 0 15px #fff;transform:scale(1.08)}}
@media(max-width:375px){.lf40-hero{padding:14px;flex-direction:column;align-items:flex-start}.lf40-balance{width:100%;flex-direction:row}.lf40-balance span{flex:1}.lf40-world-card{flex-basis:118px;height:112px}.lf40-scene-head h2{font-size:19px}.lf40-scene-section{padding:9px}.lf40-hotspot{width:18%}.lf40-owned-items{gap:6px}.lf40-owned-item{padding:5px}.lf40-boutique-invite{align-items:flex-start;flex-direction:column}.lf40-product-grid{gap:7px}.lf40-product-text{padding:7px}.lf40-product-text h3{font-size:12px}.lf40-product-img{margin:5px}}
@media(min-width:680px){.lf40-owned-items{grid-template-columns:repeat(5,minmax(0,1fr))}.lf40-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lf40-world-card{flex-basis:160px;height:147px}.lf40-hotspot{width:13%}}
@media(prefers-reduced-motion:reduce){.lf40-world *,#lf40-toast{animation:none!important;transition:none!important}}

.lf40-scene-section{scroll-margin-top:105px}.lf40-locations{scroll-margin-top:105px}

/* V41 undeveloped scenery: true blank slate until token-owned props are placed. */
.lf40-scene.lf41-undeveloped{background:#17382e}
.lf41-undeveloped .lf40-backdrop{filter:saturate(1.06) contrast(1.035)}
.lf41-empty-scene-tag{position:absolute;bottom:11px;left:11px;max-width:70%;padding:8px 12px;border:1px solid #ffffff64;border-radius:13px;z-index:3;color:white;background:#122437b3;font:850 10px/1.3 'Outfit',sans-serif;pointer-events:none;box-shadow:0 3px 10px #08172335}
.lf41-empty-rule{display:flex;align-items:center;gap:8px;padding:11px 5px 3px;color:var(--lf38-muted);font:700 11px/1.5 'DM Sans',sans-serif}
.lf41-empty-rule span{color:var(--lf38-main);font-size:20px}
.lf40-scene.editing .lf40-hotspot.empty{border:1px dashed #fff7!important;box-shadow:0 0 9px #fffc}
@media(max-width:360px){.lf41-empty-rule{font-size:10px}.lf41-empty-scene-tag{font-size:9px}}


/* V43: Original-photo matched natural-ground decoration editor, NO synthetic courtyard. */
.lf40-scene.lf42-buildable{isolation:isolate;overflow:hidden;touch-action:pan-y}
.lf42-buildable .lf40-backdrop{width:100%;height:100%;object-fit:fill;pointer-events:none}
.lf42-buildable .lf42-distance-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#081c2110 0%,transparent 45%,#14201d13 95%);z-index:1}
.lf42-buildable .lf42-placement-layer{position:absolute;inset:0;z-index:3;pointer-events:none}
.lf42-buildable.editing .lf42-placement-layer{pointer-events:auto;cursor:crosshair}
.lf43-ground-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.95;filter:drop-shadow(0 0 5px #e3ffe9c6)}
.lf43-ground-outline polygon{fill:rgba(109,222,169,.15);stroke:#ddffda;stroke-width:.75;stroke-dasharray:1.6 1.4;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.lf42-placed{position:absolute;width:clamp(48px,19%,136px);height:clamp(45px,17%,125px);padding:0;margin:0;background:transparent;border:0;border-radius:12px;color:white;box-shadow:none;transform:translate(-50%,-78%) rotate(var(--lf42-rotation)) scale(calc(var(--lf42-depth) * var(--lf42-scale)));transform-origin:center 78%;pointer-events:none;filter:drop-shadow(0 4px 4px #0c180e8a)}
.lf42-buildable.editing .lf42-placed{pointer-events:auto;touch-action:none;cursor:grab;z-index:4}
.lf42-buildable.editing .lf42-placed:active{cursor:grabbing}
.lf42-placed.selected{outline:2px solid #fff8;outline-offset:1px;background:#92ffc522}
.lf42-placed-image{display:block;position:relative;width:100%;height:100%;overflow:visible}
.lf42-placed-image img{width:100%;height:100%;object-fit:contain;pointer-events:none;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at 50% 51%,#000 39%,#000a 58%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse at 50% 51%,#000 39%,#000a 58%,transparent 76%);filter:contrast(1.03) saturate(.94)}
.lf42-item-shadow{display:block;position:absolute;left:19%;right:19%;bottom:4%;height:13%;border-radius:50%;background:#071c187a;filter:blur(5px);z-index:-1}
.lf42-placed>small{font:900 10px/1.2 'Outfit',system-ui;position:absolute;top:-17px;left:50%;white-space:nowrap;transform:translateX(-50%);max-width:180px;background:#0a2431ce;padding:4px 7px;border-radius:10px;text-shadow:0 1px 2px #000;color:white!important}
.lf42-placement-banner{position:absolute;left:50%;top:9px;transform:translateX(-50%);padding:7px 10px;border-radius:12px;color:white;background:#16342ac9;z-index:7;font:850 10px/1.2 'Outfit',sans-serif;text-align:center;width:max-content;max-width:94%;pointer-events:none;box-shadow:0 2px 11px #0c272266}
.lf42-tap-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);pointer-events:none;background:#102a29de;color:#f5fff7;font:850 10px/1.4 'Outfit';padding:6px 9px;border-radius:12px;max-width:92%;text-align:center}
.lf42-buildable.editing .lf41-empty-scene-tag{display:none}
.lf42-buildable .lf40-placement-layer button:focus-visible{outline:2px solid #daffdb;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.lf43-ground-outline,.lf42-placed{transition:none!important;animation:none!important}}

/* V43.2: independently transparent object art for placed garden props, no photo rectangle. */
.lf42-placed-image img{mix-blend-mode:normal!important;mask-image:none!important;-webkit-mask-image:none!important;filter:drop-shadow(0 4px 5px #00160d71)!important;object-fit:contain!important}
.lf42-placed{filter:none!important}
.lf42-placed-image{overflow:visible!important}
.lf42-item-shadow{z-index:-1}
