/* arena-cast v1 — one cast for the sign-in window and the opening page. Six characters, one per step.
   Geometry is in stage units; arena-cast.js places and scales each character and drives every transform. */
.ac-stage{position:relative;--ac-ink:#1b1b20;--ac-grey:#b9bac6;--ac-line:#d5d5dc;--ac-muted:#8a8a92;--ac-bubble:#15151a;--ac-bubble-ink:#fff;--ac-black:#2b2b30;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.ac-stage[data-ac-theme=dark],html[data-bigbit-theme=dark] .ac-stage{--ac-grey:#565764;--ac-line:#3a3a44;--ac-black:#55566a;--ac-bubble:#f2f2f5;--ac-bubble-ink:#15151a}
.ac-boot .ac-shape,.ac-boot .ac-ant{transition:none}
.ac-floor{position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--ac-line)}
.ac-ch{position:absolute;left:0;bottom:0;transform-origin:0 100%;will-change:transform;cursor:pointer}
.ac-b{position:absolute;inset:0;transform-origin:50% 100%;will-change:transform}
.ac-shape{position:absolute;inset:0;overflow:hidden;background:var(--ac-c);transition:background .6s}
.ac-asleep .ac-shape{background:var(--ac-grey);background:color-mix(in srgb,var(--ac-c) 26%,var(--ac-grey));box-shadow:inset 0 0 0 1.5px rgba(17,17,19,.1)}
.ac-band{position:absolute;left:-12px;right:-12px;height:24px;background:#fff;display:grid;place-items:center;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.ac-band svg{height:13px;width:auto;display:block}
.ac-asleep .ac-band,.ac-asleep .ac-tail{opacity:.8}
.ac-tail{position:absolute;width:17px;height:10px;margin-top:6px;background:#fff;border-radius:2px 8px 8px 2px;transform-origin:0 50%;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.ac-face{position:absolute;left:50%;width:0;height:0;will-change:transform}
.ac-eyes{position:absolute;left:0;top:0;display:flex;transform:translate(-50%,-50%)}
.ac-eye{width:var(--eye,18px);height:var(--eye,18px);border-radius:50%;background:#fff;display:grid;place-items:center;flex:none}
.ac-pupil{width:42%;height:42%;border-radius:50%;background:var(--ac-ink);position:relative}
.ac-dots .ac-eye{background:var(--ac-ink)}.ac-dots .ac-pupil{display:none}
.ac-lens .ac-pupil{width:50%;height:50%}
.ac-lens .ac-pupil::after{content:"";position:absolute;left:16%;top:14%;width:30%;height:30%;border-radius:50%;background:#fff}
.ac-closed .ac-eye{height:3px!important;border-radius:2px;background:var(--ac-ink)!important;transform:none!important}
.ac-closed .ac-pupil{display:none}
.ac-profile.ac-closed .ac-eye{background:#fff!important}
.ac-mouth{position:absolute;left:-24px;width:48px;height:28px;overflow:visible;pointer-events:none}
.ac-mouth path{fill:none;stroke:var(--ac-ink);stroke-width:3;stroke-linecap:round}
.ac-mouth ellipse{fill:var(--ac-ink)}
.ac-profile .ac-mouth path{stroke:#fff}.ac-profile .ac-mouth ellipse{fill:#fff}
.ac-ant{position:absolute;top:-15px;width:6px;height:22px;border-radius:3px;background:var(--ac-c);transform-origin:50% 100%;transition:background .6s}
.ac-asleep .ac-ant{background:var(--ac-grey);background:color-mix(in srgb,var(--ac-c) 26%,var(--ac-grey))}
.ac-tick{position:absolute;left:50%;top:-34px;width:28px;height:28px;margin-left:-14px;border-radius:50%;background:#15151a;color:#b8ff3d;display:grid;place-items:center;font:700 16px/1 system-ui,sans-serif;opacity:0;transform:scale(.3);transition:opacity .25s,transform .45s cubic-bezier(.3,1.6,.5,1)}
.ac-won .ac-tick{opacity:1;transform:none}
.ac-talk .ac-tick,.ac-speaking .ac-tick{opacity:0}
.ac-say{position:absolute;left:0;top:0;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;background:var(--ac-bubble);color:var(--ac-bubble-ink);font:600 13px/1.3 system-ui,-apple-system,"PingFang SC",sans-serif;padding:6px 12px;border-radius:14px;opacity:0;transform:scale(.4);transform-origin:50% 100%;pointer-events:none;transition:opacity .18s,transform .3s cubic-bezier(.3,1.5,.5,1);z-index:30}
.ac-say.ac-on{opacity:1;transform:none}
/* a whole sentence (the page's line of encouragement): wraps instead of being cut */
.ac-say.ac-wide{white-space:normal;max-width:min(300px,calc(100% - 4px));text-align:center;text-wrap:balance}
.ac-zzz{position:absolute;left:62%;top:-8px;font:700 15px/1 system-ui,sans-serif;color:var(--ac-muted);pointer-events:none;opacity:0}
.ac-zzz b{position:absolute;opacity:0;font-weight:700}
.ac-zzz b:nth-child(1){left:11px;top:-15px;font-size:19px}.ac-zzz b:nth-child(2){left:25px;top:-34px;font-size:24px}
.ac-asleep:not(.ac-stir) .ac-zzz{animation:ac-zzz 3.2s ease-in-out infinite}
.ac-asleep:not(.ac-stir) .ac-zzz b:nth-child(1){animation:ac-zzz 3.2s ease-in-out .55s infinite}
.ac-asleep:not(.ac-stir) .ac-zzz b:nth-child(2){animation:ac-zzz 3.2s ease-in-out 1.1s infinite}
@keyframes ac-zzz{0%{opacity:0;translate:0 6px}30%,60%{opacity:.9}100%{opacity:0;translate:4px -8px}}
/* props grow from where they sit and shrink back */
.ac-prop{position:absolute;opacity:0;transform:scale(.2);pointer-events:none;transition:opacity .16s,transform .32s cubic-bezier(.3,1.5,.5,1)}
.ac-prop.ac-on{opacity:1;transform:none}
.ac-arm{right:18px;top:-20px;width:16px;height:42px;border-radius:9px;background:var(--ac-c);box-shadow:inset 0 0 0 2px rgba(0,0,0,.08);transform-origin:50% 100%}
.ac-arm.ac-on{animation:ac-wave 1.5s ease-in-out .15s}
@keyframes ac-wave{0%,100%{rotate:0deg}14%,44%,74%{rotate:26deg}29%,59%,88%{rotate:-16deg}}
.ac-specs{left:0;top:0;width:0;height:0;transform-origin:0 0}
.ac-specs::before,.ac-specs::after{content:"";position:absolute;top:-14px;width:28px;height:28px;border-radius:50%;border:3px solid #15151a;box-sizing:border-box;background:rgba(255,255,255,.18)}
.ac-specs::before{left:-33px;box-shadow:19px 0 0 -11px #15151a}.ac-specs::after{left:5px}
.ac-card{left:-22px;top:86px;width:44px;height:32px;border-radius:5px;background:#fff;box-shadow:0 2px 0 rgba(0,0,0,.16);transform-origin:80% 100%}
.ac-card::before{content:"";position:absolute;left:6px;top:7px;width:12px;height:12px;border-radius:50%;background:#b8ff3d;box-shadow:0 0 0 1.5px #15151a inset}
.ac-card::after{content:"";position:absolute;left:23px;top:9px;width:15px;height:3px;border-radius:2px;background:#15151a;box-shadow:0 7px 0 #c9c9d2,-17px 14px 0 #c9c9d2}
.ac-card.ac-on{transform:rotate(-8deg)}
.ac-frame{left:50%;width:74px;height:74px;margin-left:-37px;--f:#15151a;background:linear-gradient(var(--f),var(--f)) 0 0/16px 3px,linear-gradient(var(--f),var(--f)) 0 0/3px 16px,linear-gradient(var(--f),var(--f)) 100% 0/16px 3px,linear-gradient(var(--f),var(--f)) 100% 0/3px 16px,linear-gradient(var(--f),var(--f)) 0 100%/16px 3px,linear-gradient(var(--f),var(--f)) 0 100%/3px 16px,linear-gradient(var(--f),var(--f)) 100% 100%/16px 3px,linear-gradient(var(--f),var(--f)) 100% 100%/3px 16px;background-repeat:no-repeat;transform:scale(1.5)}
.ac-frame i{position:absolute;left:6px;right:6px;top:6px;height:3px;border-radius:2px;background:#b8ff3d;opacity:0}
.ac-frame.ac-scan i{animation:ac-scan 1s ease-in-out}
@keyframes ac-scan{0%{opacity:0;translate:0 0}12%{opacity:1}50%{translate:0 59px}88%{opacity:1}100%{opacity:0;translate:0 0}}
.ac-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
.ac-flash.ac-on{animation:ac-flash .5s ease-out}
@keyframes ac-flash{0%{opacity:.95}100%{opacity:0}}
.ac-laptop{left:50%;bottom:6px;width:54px;height:34px;margin-left:-27px;border-radius:6px 6px 2px 2px;background:#dff7a6;box-shadow:inset 0 0 0 3px #15151a;transform-origin:50% 100%}
.ac-laptop::after{content:"";position:absolute;left:-8px;right:-8px;bottom:-5px;height:5px;border-radius:0 0 6px 6px;background:#3a3a44}
.ac-laptop.ac-key{background:#b8ff3d}
.ac-coin{left:50%;top:0;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:#f5c542;box-shadow:inset 0 0 0 3px #d9a514;transition:opacity .12s}
.ac-coin.ac-on{transform:none}
.ac-confetti{position:absolute;width:8px;height:8px;border-radius:2px;pointer-events:none;z-index:40}
