.island{width:min(100cqw,150cqh,1150px);aspect-ratio:3/2}.island img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill}.main-art{clip-path:polygon(0 0,77% 0,77% 33%,74.1% 33%,74.1% 43.5%,81.8% 47.5%,83% 100%,0 100%)}.sprite-layer{position:absolute;inset:0;pointer-events:none}.satellite{clip-path:polygon(90% 25%,100% 25%,100% 72%,88.2% 72%,88.2% 45%,90% 43%);animation:satellite-float 9s ease-in-out infinite;transform-origin:92% 45%}.bridge-piece{animation:bridge-flex 9s ease-in-out infinite;transform-origin:var(--joint) 41%}.paint-effects{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.seal-light{opacity:0;transition:opacity .35s}.advanced .seal-light{opacity:.9;animation:seal-pulse 2.4s steps(8,end) infinite}.camp-effect{visibility:hidden}.searching .camp-effect{visibility:visible}.flame-shape{transform-box:fill-box;transform-origin:50% 100%;animation:flame-frames .64s steps(1,end) infinite;animation-delay:var(--phase,0s)}.flame-shape:nth-child(2){--phase:-.24s}.flame-shape:nth-child(3){--phase:-.4s}.ember{animation:ember-rise 1.65s steps(12,end) infinite;animation-delay:var(--phase);transform-box:fill-box}.camp-light{animation:camp-pulse .72s steps(3,end) infinite}.smoke-wisp{opacity:.16;animation:smoke-rise 2.8s steps(18,end) infinite;transform-box:fill-box;transform-origin:50% 100%}@keyframes satellite-float{0%,100%{transform:translate(0,0) rotate(0)}35%{transform:translateY(-.55%) rotate(.06deg)}70%{transform:translateY(.3%) rotate(-.04deg)}}@keyframes bridge-flex{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(var(--lift)) rotate(var(--angle))}70%{transform:translateY(var(--drop)) rotate(var(--counter))}}@keyframes flame-frames{0%,100%{transform:scale(1,1) skewX(-3deg);opacity:.94}20%{transform:scale(.82,1.17) skewX(5deg);opacity:1}40%{transform:scale(1.12,.88) skewX(-6deg);opacity:.83}60%{transform:scale(.91,1.08) skewX(3deg);opacity:.98}80%{transform:scale(1.08,.96) skewX(-1deg);opacity:.89}}@keyframes ember-rise{0%{transform:translate(0,0);opacity:0}12%{opacity:.9}70%{opacity:.65}100%{transform:translate(var(--dx),-74px);opacity:0}}@keyframes smoke-rise{to{transform:translate(-10px,-45px) scale(1.4);opacity:0}}@keyframes camp-pulse{0%,100%{opacity:.45}30%{opacity:.75}65%{opacity:.55}}@keyframes seal-pulse{50%{opacity:.58}}@media(max-width:650px){.island{width:min(100cqw,150cqh)}}@media(prefers-reduced-motion:reduce){.sprite-layer,.paint-effects *{animation:none!important}.ember{display:none}}
#island .progress-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;object-fit:fill}#island .progress-art[hidden]{display:none}.progress-pillars{clip-path:polygon(32% 21%,38% 21%,38% 38%,32% 38%,32% 21%,55% 21%,62% 21%,62% 38%,55% 38%,55% 21%,32% 21%)}.progress-lamps{clip-path:polygon(36% 27%,57% 27%,57% 39%,36% 39%)}.progress-gateway{clip-path:polygon(35% 1%,47% 1%,47% 23%,35% 23%)}#island .progress-highlight{filter:drop-shadow(0 0 9px #e4cf8f);animation:progress-highlight 1.3s ease-in-out 2}@keyframes progress-highlight{50%{filter:drop-shadow(0 0 18px #e4cf8f)}}@media(prefers-reduced-motion:reduce){#island .progress-highlight{animation:none}}
.progress-pillars{clip-path:url(#progress-clip-pillars)}.progress-lamps{clip-path:url(#progress-clip-lamps)}.progress-gateway{clip-path:url(#progress-clip-gateway)}

/* Gentle approach to the camp only while matchmaking lights the fire. */
.island{scale:1;transform-origin:61.8% 53.1%;transition:scale 1.6s cubic-bezier(.22,.61,.36,1)}.island.searching{scale:1.06}@media(max-width:650px){.island.searching{scale:1.045}}@media(prefers-reduced-motion:reduce){.island{transition:none}.island.searching{scale:1}}

/* Start bridge and satellite together; relative travel scales with the artwork. */
.island:not(.island-motion-ready) .satellite,.island:not(.island-motion-ready) .bridge-piece{animation:none}

/* Painted flame silhouette, varied short steps, and softer embers. */
.flame-shape{animation:camp-natural-flame .95s steps(5,end) infinite}.flame-shape:nth-child(2){animation-duration:.77s}.flame-shape:nth-child(3){animation-duration:1.13s}.camp-light{opacity:.68}.ember{opacity:.72}.smoke-wisp{opacity:.12}@keyframes camp-natural-flame{0%,100%{transform:scale(.94,.92) skewX(-2deg)}24%{transform:scale(1.02,.8) skewX(4deg)}51%{transform:scale(.89,1.08) skewX(-5deg)}77%{transform:scale(.98,.96) skewX(2deg)}}@media(prefers-reduced-motion:reduce){.flame-shape{animation:none}}
