.story-carousel{position:relative;isolation:isolate;margin:0 -20px;padding:0 0 18px;overflow:hidden}
.story-carousel-stage{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;height:clamp(360px,96vw,460px);padding:0 var(--carousel-edge,18%);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;user-select:none;cursor:grab}
.story-carousel-stage::-webkit-scrollbar{display:none}
.story-carousel-stage.is-dragging{cursor:grabbing;scroll-snap-type:none}
.story-slide{position:relative;flex:0 0 var(--carousel-card,64%);width:var(--carousel-card,64%);min-width:0;margin:0 calc(var(--carousel-card,250px)*-.24) 0 0;padding:7px;border:1px solid var(--invite-line);border-radius:8px;background:var(--invite-surface);box-shadow:0 9px 22px #40545a22;transform:scale(var(--slide-scale,.8));opacity:var(--slide-opacity,.7);scroll-snap-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.story-slide:last-child{margin-right:0}
.story-slide-mat{display:block;padding:3px;border:1px dashed var(--invite-line)}
.story-slide img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center;border-radius:2px;pointer-events:none;background:var(--invite-paper)}
.story-slide.is-active{cursor:zoom-in}
.story-slide.is-far{pointer-events:none}
.is-dragging .story-slide{cursor:grabbing}
.story-carousel-arrow{position:absolute;top:calc(clamp(360px,96vw,460px)/2 - 24px);z-index:5;display:grid;place-items:center;width:48px;height:48px;padding:11px;border:2px solid var(--invite-accent);border-radius:50%;background:var(--invite-surface);color:var(--invite-ink);box-shadow:0 4px 16px #40545a40;cursor:pointer;touch-action:manipulation}
.story-carousel-arrow[data-carousel-action=prev]{left:8px}.story-carousel-arrow[data-carousel-action=next]{right:8px}
.story-carousel-arrow svg{width:23px;height:23px;stroke-width:2.2}
.story-carousel-arrow:active{background:var(--invite-accent-soft)}
.story-carousel-controls{display:flex;justify-content:center;align-items:center;padding:10px 22px 0}
.story-carousel-dots{position:relative;display:flex;max-width:100%;width:max-content;overflow-x:auto;scrollbar-width:none;margin:0;padding:0 2px}
.story-carousel-dots::-webkit-scrollbar{display:none}
.story-carousel-dots button{flex:0 0 28px;display:grid;place-items:center;width:28px;height:42px;padding:0;border:0;background:transparent;cursor:pointer}
.story-carousel-dots button:before{content:'';width:7px;height:7px;border-radius:50%;background:#aab5b7;transition:width .2s,background .2s}
.story-carousel-dots button[aria-current=true]:before{width:20px;border-radius:10px;background:var(--invite-accent)}
.story-carousel [hidden]{display:none!important}
.story-carousel button:focus-visible{outline:3px solid var(--invite-accent);outline-offset:3px}
.story-carousel-dots button:focus-visible{outline-offset:-4px;border-radius:10px}
.story-carousel-status{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.inv-dragon-companion{position:fixed;left:0;bottom:max(12px,env(safe-area-inset-bottom));z-index:45;width:76px;height:76px;pointer-events:none;user-select:none;opacity:0;transition:opacity .25s;will-change:transform}
.inv-dragon-companion.is-visible{opacity:1}
.inv-dragon-companion[hidden],.letter-locked .inv-dragon-companion{display:none}
.inv-dragon-facing{display:block;width:100%;height:100%;transform:scaleX(var(--dragon-facing,1))}
.inv-dragon-companion img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px #33484a25);transform-origin:55% 90%}
.inv-dragon-companion.is-moving img{animation:dragon-trot .42s ease-in-out infinite}
@keyframes dragon-trot{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@media(max-width:440px){.inv-dragon-companion{width:66px;height:66px}}
@media(prefers-reduced-motion:reduce){.story-slide,.story-carousel-dots button:before{transition:none}.inv-dragon-companion{display:none!important}}
