/* Ruch jest dodatkiem do gotowego układu, nie zmienia jego wymiarów. */
canvas[data-skin="body"],canvas[data-skin="guest"] { touch-action: pan-y; }
.chest-motion-shell { position:absolute; inset:0; display:block; pointer-events:none; transform-origin:50% 75%; animation:chest-quiet-sway 7.6s ease-in-out infinite; animation-play-state:paused; }
.chest-ambient-active .chest-motion-shell { animation-play-state:running; }
.chest-reflection-frame { position:absolute; inset:10px 4px; display:grid; place-items:center; pointer-events:none; z-index:3; }
.chest-reflection-map { position:relative; display:block; width:min(calc(100cqw - 8px),calc(100cqh - 20px)); aspect-ratio:1; }
.chest-gold-reflection { position:absolute; width:16px; height:16px; opacity:0; background:radial-gradient(circle,#fff9df 0 5%,#ffe6a377 17%,#ffc94818 36%,transparent 67%); }
.chest-gold-reflection::before,.chest-gold-reflection::after { content:''; position:absolute; background:linear-gradient(transparent,#fff0bb 43%,#fffbe9 50%,#fff0bb 57%,transparent); }
.chest-gold-reflection::before { width:1px; height:100%; left:calc(50% - .5px); top:0; }
.chest-gold-reflection::after { width:1px; height:80%; left:calc(50% - .5px); top:10%; transform:rotate(90deg); }
@keyframes chest-quiet-sway { 0%,100% { transform:translate3d(0,1px,0) rotate(-.3deg); } 50% { transform:translate3d(0,-3px,0) rotate(.3deg); } }
.chest-model-stage { position:absolute; inset:10px 4px; display:block; z-index:2; pointer-events:none; }
.chest-model-canvas { display:block; width:100%; height:100%; opacity:0; filter:drop-shadow(0 7px 14px #0004) drop-shadow(0 0 10px #ffc64c1a); }
.chest-art-open .chest-model-canvas { opacity:1; }
.shop-banner .chest-art-open .treasure-image { visibility:hidden; }
.shop-banner .treasure-image,.shop-banner .treasure-glow { animation:none!important; transform:none; }
.shop-banner .treasure-glow { opacity:.55; }

.account-welcome { text-align:center; padding:4px 0; }
.welcome-portrait { position:relative; isolation:isolate; width:190px; height:190px; margin:0 auto 8px; }
.welcome-portrait .skin-welcome { position:relative; display:block; width:126px; height:174px; margin:auto; z-index:1; background:transparent; border:0; box-shadow:none; }
.welcome-portrait .skin-welcome canvas { width:100%; height:100%; }
.welcome-halo { position:absolute; inset:30% 0 0; z-index:-1; border-radius:50%; background:radial-gradient(ellipse,#efb92728,transparent 68%); }
.account-welcome h2 { margin:12px 0 16px; font-size:clamp(26px,5vw,34px); line-height:1.15; }
.account-welcome h2 em { font-style:normal; color:#f3c53f; }
.account-welcome > p { max-width:370px; margin:0 auto 24px; color:#b4c0c7; line-height:1.7; font-size:14px; }
.welcome-actions { display:grid; gap:10px; }
.welcome-actions .button { width:100%; justify-content:center; }
.welcome-stars { position:absolute; inset:0; pointer-events:none; }
.welcome-stars i { position:absolute; left:15%; top:65%; width:4px; height:4px; background:#ffdb70; border-radius:1px; opacity:0; box-shadow:0 0 10px #f1b722; animation:welcome-star 1.8s ease-out both; }
.welcome-stars i:nth-child(2) { left:83%; top:57%; animation-delay:.16s; }
.welcome-stars i:nth-child(3) { left:28%; top:32%; animation-delay:.32s; }
.welcome-stars i:nth-child(4) { left:76%; top:28%; animation-delay:.48s; }
.welcome-stars i:nth-child(5) { left:49%; top:18%; animation-delay:.64s; }
.account-welcome .welcome-portrait { animation:welcome-portrait .8s cubic-bezier(.22,1,.36,1) both; }
@keyframes welcome-star { 0% { opacity:0; transform:translateY(12px) scale(.4) rotate(0); } 30% { opacity:1; } 100% { opacity:0; transform:translateY(-28px) scale(.4) rotate(90deg); } }
@keyframes welcome-portrait { from { opacity:0; transform:translateY(10px) scale(.94); } to { opacity:1; transform:translateY(0) scale(1); } }
@media(prefers-reduced-motion:reduce) {
  .chest-motion-shell { animation:none; transform:none; }
  .chest-reflection-frame { display:none; }
  .welcome-stars { display:none; }
  .account-welcome .welcome-portrait { animation:none; }
}
