/* Bewegliche Bühne. Nur das Panorama wird geschwenkt, nie das Dokument. */
#market-scroll{position:relative;overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;scrollbar-width:none}
#market-scroll::-webkit-scrollbar{display:none}
#market-scroll.is-dragging{cursor:grabbing}
#world{position:absolute;left:0;top:0;margin:0;min-width:0;max-width:none;transform-origin:0 0;will-change:transform;background-size:100% 100%;background-repeat:no-repeat}
#world.is-flying{transition:transform .64s cubic-bezier(.2,.8,.2,1)}
#world .door{touch-action:none}
#world .door-label{border-color:#6b4724;background:linear-gradient(0deg,#d8b88722,#fff7df66),repeating-linear-gradient(3deg,#e8cea3 0 2px,#efdbb8 2px 6px);color:#352719;border-radius:4px;box-shadow:1px 2px 0 #51341888,0 3px 8px #061a3080;text-shadow:0 1px #fff8;font-family:Nunito,system-ui,sans-serif;font-weight:850}
#world .door-label:before{background:#88643d;box-shadow:36px 0 #88643d;width:3px;height:3px;top:4px;left:4px}
#world .door.is-open .door-label{background:linear-gradient(#fff3cf,#efd8a9);border-color:#865a2b}
#world .door.is-locked .door-label:after{width:8px;height:8px;top:-4px;right:-4px;background:#203956;color:transparent;border-color:#c1cbda}
#world .door.is-pointed .door-label{animation:door-point 1.6s ease-in-out;outline-color:#fff7cf;background:#ffdf86}
#world .door.is-pointed:after{content:'';position:absolute;inset:3px;border:2px solid #ffeb9b;border-radius:12px;pointer-events:none;animation:door-ring 1.6s ease-out;z-index:2}
#star-strip{display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-width:none;scroll-snap-type:x proximity;padding:7px max(12px,env(safe-area-inset-right)) 7px max(12px,env(safe-area-inset-left));touch-action:pan-x;min-width:0;flex-shrink:0;-webkit-overflow-scrolling:touch}
#star-strip::-webkit-scrollbar{display:none}
.star-door{position:relative;flex:0 0 44px;min-width:44px;min-height:44px;display:grid;place-items:center;scroll-snap-align:center;border:1px solid #a9bad14d;border-radius:12px;background:#203a5c;color:#e6edf6;font:800 16px/1 Nunito,system-ui,sans-serif;box-shadow:inset 0 1px #ffffff0c;transition:background .2s,transform .2s,box-shadow .2s;touch-action:pan-x}
.star-door:before{content:'✦';position:absolute;inset:0;display:grid;place-items:center;font:43px/1 Georgia,serif;color:#ffe9a312;pointer-events:none}
.star-door.is-locked{color:#b3c2d7;background:#152b48}
.star-door.is-open:after{content:'';position:absolute;right:5px;bottom:5px;width:5px;height:5px;background:#a0dbbd;border-radius:50%}
.star-door.is-today{background:#f4d88b;color:#273341;border-color:#ffeab4;box-shadow:0 0 12px #ffe6a833}
.star-door.is-today:before{color:#fff3c666}
.star-door[aria-pressed=true]{outline:2px solid #ffdf83;outline-offset:-2px;background:#36516d;transform:translateY(-2px);color:#fff8df}
.star-door:active{transform:scale(.91)}
.star-door.is-back:after{content:'';position:absolute;top:3px;right:3px;bottom:auto;width:11px;height:11px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffdf83' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3H3v6M15 3h6v6M21 15v6h-6M9 21H3v-6'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes door-point{0%,100%{scale:1}30%,65%{scale:1.15}48%,82%{scale:1.03}}
@keyframes door-ring{0%{opacity:0;scale:.95}25%{opacity:1}100%{opacity:0;scale:1.15}}
/* Geöffnete Türchen: kein Blattbild auf der Szene, sondern ein Siegel am Schild; die Klappe schwingt nur beim Öffnen. */
#world .door.is-open .door-flap{transform:none;opacity:1;box-shadow:none}
#world .door.is-open .door-light{opacity:0}
#world .door.is-opening .door-flap{animation:tuer-auf 1.3s cubic-bezier(.22,.7,.16,1)}
#world .door.is-opening .door-light{animation:tuer-licht 1.3s ease}
#world .door.is-open .door-label:after{content:'✓';position:absolute;top:-9px;right:-9px;width:19px;height:19px;display:grid;place-items:center;border:1.5px solid #fff3cf;border-radius:50%;background:#2f7d55;color:#fff;font:900 11px/1 var(--body);text-shadow:none;box-shadow:0 1px 3px #0007}
@keyframes tuer-auf{0%,100%{transform:none}40%,70%{transform:perspective(650px) rotateY(-64deg);box-shadow:6px 3px 8px #0004}}
@keyframes tuer-licht{0%,100%{opacity:0}35%,75%{opacity:1}}
@media(prefers-reduced-motion:reduce){#world.is-flying,.star-door{transition:none}#world .door.is-pointed .door-label,#world .door.is-pointed:after{animation:none}}

/* Funken um das heutige Fenster: wenige kleine Sterne, nur opacity/transform (billig auch auf alten Handys). */
.door-sparkles{display:none;position:absolute;inset:-14px;z-index:4;pointer-events:none}
.door.is-today .door-sparkles{display:block}
.door-sparkles i{position:absolute;width:14px;height:14px;opacity:.6;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);background:radial-gradient(circle,#fffdf0 0 30%,#ffe08a 60%);animation:funke 2.6s ease-in-out infinite;will-change:opacity,transform}
.door-sparkles i:nth-child(1){left:4%;top:2%;animation-delay:0s}
.door-sparkles i:nth-child(2){right:4%;top:14%;width:10px;height:10px;animation-delay:.9s}
.door-sparkles i:nth-child(3){right:6%;bottom:8%;animation-delay:1.7s}
.door-sparkles i:nth-child(4){left:0;bottom:26%;width:10px;height:10px;animation-delay:.5s}
.door-sparkles i:nth-child(5){left:46%;top:-4%;width:11px;height:11px;animation-delay:2.1s}
@keyframes funke{0%,100%{opacity:0;transform:scale(.3) rotate(0)}45%{opacity:1;transform:scale(1.15) rotate(25deg)}70%{opacity:.4;transform:scale(.7) rotate(40deg)}}
/* Heutiger Stern unten: Glanz als eigene Ebene, animiert wird nur deren Deckkraft. */
.star-door.is-today{box-shadow:0 0 12px 2px #ffdc6688}
.star-door.is-today>.stern-glanz{position:absolute;inset:-4px;border-radius:14px;box-shadow:0 0 16px 5px #ffdc66;opacity:.2;pointer-events:none;animation:stern-glanz 2.8s ease-in-out infinite}
@keyframes stern-glanz{0%,100%{opacity:.15}50%{opacity:.75}}
@media(prefers-reduced-motion:reduce){.door-sparkles i,.star-door.is-today>.stern-glanz{animation:none}.door-sparkles i{opacity:.75}}
