@import url('./native-ui-frames.css');
.arena-page{height:100%;position:relative;isolation:isolate;display:flex;flex-direction:column;overflow:hidden}
.arena-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;image-rendering:pixelated}
.arena-page>.page-head{flex:none;background:#f4e3d0e8;padding:4px 14px;height:62px;border-bottom:3px solid #bc9f83;gap:12px}
.arena-page>.page-head h1{text-align:center;font-size:38px;color:#fffdf8;font-weight:700}
.arena-main{flex:1;min-height:0;position:relative;width:100%;max-width:1120px;margin:auto;padding:8px 14px max(12px,env(safe-area-inset-bottom));gap:8px}
.arena-panel,.arena-button,.arena-team-card{border:8px solid transparent;border-image:url('/assets/interface-v2/creation-ui/choice-normal.png') 4 fill stretch;border-image-width:var(--native-frame-corner,8px);background:none;color:#252030;image-rendering:pixelated}
.arena-panel{padding:8px 10px}.arena-button{cursor:pointer;min-height:46px;padding:4px 10px;font-size:24px;text-align:center;line-height:1.15}
.arena-button:active:not(:disabled){transform:translateY(2px)}.arena-button:disabled{cursor:default;opacity:.64}
.arena-button[aria-busy=true]{cursor:wait}
.arena-start-spinner{display:inline-block;width:24px;height:24px;vertical-align:middle;animation:arena-start-spin .7s steps(8,end) infinite}
@keyframes arena-start-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.arena-start-spinner{animation:none}}
.arena-lobby{overflow:auto;display:flex;flex-direction:column;align-items:center;gap:14px;scrollbar-width:thin}
.arena-welcome{width:min(100%,580px);display:grid;gap:12px;text-align:center;justify-items:stretch;padding:20px}.arena-welcome h2{font-size:36px}
.arena-lobby-icon{width:64px;height:64px;justify-self:center;image-rendering:pixelated}.arena-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.arena-modes [aria-pressed=false]{opacity:.6}.arena-mode-description,.arena-count{font-size:18px}.arena-help{text-align:left;font-size:18px;line-height:1.3}.arena-help summary{cursor:pointer}.arena-help p{margin-top:10px}
.arena-collection{width:min(100%,580px)}.arena-collection h3{font-size:24px;margin-bottom:8px}.arena-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.arena-roster-item{text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px}.arena-roster-item>img{width:80px;height:80px;object-fit:contain;image-rendering:pixelated}.arena-roster-item>span{font-size:14px;overflow-wrap:anywhere}.arena-roster-item small{font-size:14px}
.arena-dev{font-size:16px;padding:8px;width:min(100%,580px);background:#fff9eeed}.arena-dev p{margin:8px 0}.arena-dev summary{cursor:pointer}
.arena-battle{display:grid;grid-template-rows:minmax(200px,1fr) auto auto}.arena-stage{position:relative;min-height:0;isolation:isolate}
.arena-round{position:absolute;left:50%;top:0;transform:translateX(-50%);background:#fffaf0cf;border-radius:3px;padding:2px 8px;white-space:nowrap;font-size:16px}.arena-round span{color:#6c5c79}
.arena-fighter{position:absolute;width:55%;max-width:300px;display:flex;flex-direction:column;align-items:center}
.arena-fighter.you{left:0;bottom:2px;z-index:2}.arena-fighter.opponent{right:0;top:18px;z-index:1}
.arena-nameplate{width:100%;padding:3px 5px;min-height:57px;display:flex;flex-wrap:wrap;gap:2px;align-items:center;justify-content:space-between}.arena-nameplate strong{font-size:18px;line-height:1.15;color:#27222e;font-weight:700;max-width:100%;overflow-wrap:anywhere}.arena-hearts{display:inline-flex;gap:3px;flex:none}.arena-hearts>img{width:22px;height:22px;image-rendering:pixelated}
.arena-fighter.you .arena-nameplate{order:2}.arena-actor{position:relative;display:grid;place-items:center;width:170px;height:174px}.arena-fighter.opponent .arena-actor{width:145px;height:145px}
.arena-creature{position:relative;width:100%;height:100%;object-fit:contain;z-index:1;image-rendering:pixelated;animation:arena-idle 2.8s steps(2,end) infinite}.opponent .arena-creature{animation-delay:-1.2s}
.arena-pad{position:absolute;bottom:-3px;width:125%;height:33%;image-rendering:pixelated}.arena-unknown{font-family:Arial,sans-serif;font-size:80px;font-weight:700;color:#675475;z-index:1}
.arena-projectile{position:absolute;width:24px;height:24px;opacity:0;top:25%;left:65%;z-index:3;image-rendering:pixelated}
.attack-locked .arena-projectile{opacity:1;animation:arena-launch .65s ease-out forwards}.attack-hit .arena-creature{animation:arena-attack .3s steps(3,end) 2}.knocked-out .arena-creature{opacity:.35;animation:none}
.arena-challenge{position:relative;min-height:155px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px 10px;text-align:center}
.arena-challenge h2{font-size:23px;line-height:1.05;font-weight:600}.arena-challenge p{font-size:19px;line-height:1.2}.arena-question-head{display:flex;gap:8px;align-items:center}.arena-question-head h2{flex:1}
.arena-timer{font-size:21px;min-width:32px;white-space:nowrap;color:#674b83}.arena-timer.urgent{color:#b3475e}.selection-timer{position:absolute;right:10px;bottom:6px;font-size:17px}
.arena-timebar{height:4px;background:#e7dced;overflow:hidden;margin:2px 0}.arena-timebar span{display:block;width:100%;height:100%;background:#9676b0;transform-origin:left;transition:transform .1s linear}
.arena-answers{display:grid;grid-template-columns:1fr 1fr;gap:6px}.arena-answers .arena-button{font-family:Arial,'Noto Sans',sans-serif;font-size:clamp(15px,4vw,21px);font-weight:700;min-height:48px;overflow-wrap:anywhere}
.arena-wait{height:17px;color:#76657f;font-size:15px!important;line-height:17px!important}
.arena-answer-form{display:flex;gap:8px}.arena-answer-form input{min-width:0;flex:1;padding:10px;font-size:18px;border:2px solid #baa5c9;background:#fffcf6;border-radius:0}.arena-answer-form .arena-button{font-size:20px}
.arena-feedback{display:grid;gap:5px}.arena-feedback .study-text{font-size:19px;font-weight:600}.arena-feedback small{font-size:15px;line-height:1.15}
.arena-end-actions{display:flex;gap:6px;justify-content:center}.arena-end-actions .arena-button{font-size:19px;flex:1}
.arena-team{padding:5px 8px;min-width:0}.arena-team h3{font-size:21px;line-height:1;margin-bottom:4px}.arena-team-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(70px,1.3fr);gap:6px;align-items:stretch}
.arena-team-card{cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:75px;padding:1px;border-image-width:var(--native-frame-corner,8px)}
.arena-team-card>img{width:60px;height:60px;image-rendering:pixelated;max-width:100%;object-fit:contain}.arena-team-card .arena-hearts{gap:1px}.arena-team-card .arena-hearts>img{width:12px;height:12px}
.arena-team-card:disabled{cursor:default;opacity:.75}.arena-team-card.selected:disabled{opacity:1}.arena-team-row>.arena-button{font-size:20px;padding:2px}
.arena-exit-dialog{max-width:400px;padding:0;background:none;border:0}.arena-exit-dialog::backdrop{background:#29203688}.arena-exit-dialog .arena-panel{display:grid;gap:12px;padding:18px}.arena-exit-dialog p{font-size:21px}
.arena-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.arena-dock-icon img{width:40px;height:40px;image-rendering:pixelated}.arena-dock-icon{display:grid;place-items:center;background:transparent!important;border:8px solid transparent!important;border-image:url('/assets/interface-v2/creation-ui/channel-selected.png') 4 fill stretch!important;border-image-width:var(--native-frame-corner,8px)!important}
#app .room-page .page-nav{gap:clamp(5px,2vw,12px)}
@keyframes arena-idle{50%{transform:translateY(-2px)}}@keyframes arena-launch{from{transform:translateY(0) scale(.7)}to{transform:translateY(-70px) scale(1)}}@keyframes arena-attack{50%{transform:translateX(6px)}}
@media(min-width:650px) and (min-height:650px){.arena-main{max-width:880px;padding-left:32px;padding-right:32px;gap:12px}.arena-actor{width:224px;height:224px}.arena-fighter.opponent .arena-actor{width:192px;height:192px}.arena-nameplate{min-height:64px;padding:7px 10px}.arena-nameplate strong{font-size:22px}.arena-hearts>img{width:26px;height:26px}.arena-challenge{min-height:176px}.arena-challenge h2{font-size:29px}.arena-answers .arena-button{min-height:53px;font-size:22px}.arena-team-row{grid-template-columns:repeat(3,96px) minmax(90px,1fr)}.arena-team-card>img{width:72px;height:72px}.arena-team-row>.arena-button{font-size:25px}}
@media(max-height:700px) and (orientation:portrait){.arena-page>.page-head{height:50px;padding-block:0}.arena-page>.page-head h1{font-size:30px}.arena-main{padding:4px 8px 8px;gap:5px}.arena-battle{grid-template-rows:minmax(170px,1fr) auto auto}.arena-actor{width:120px;height:120px}.arena-fighter.opponent .arena-actor{width:105px;height:105px}.arena-nameplate{min-height:42px;padding:1px 3px}.arena-nameplate strong{font-size:15px}.arena-hearts>img{width:18px;height:18px}.arena-challenge{min-height:133px;padding:5px}.arena-challenge h2{font-size:20px}.arena-answers .arena-button{min-height:42px;font-size:15px}.arena-wait{font-size:13px!important;height:15px}.arena-team{padding:3px 5px}.arena-team-card{min-height:63px}.arena-team-card>img{width:48px;height:48px}.arena-team h3{font-size:18px}.arena-team-row>.arena-button{font-size:18px}.arena-fighter.opponent{top:16px}}
@media(orientation:landscape) and (max-height:600px){.arena-page>.page-head{height:46px;padding:0 10px}.arena-page>.page-head h1{font-size:30px}.arena-page>.page-head .sprite-button{width:44px;height:44px}.arena-main{max-width:none;padding:5px max(10px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:7px}.arena-battle{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);grid-template-rows:minmax(0,1fr) 94px}.arena-stage{grid-column:1;grid-row:1/3}.arena-challenge{grid-column:2;grid-row:1;min-height:0;padding:7px}.arena-team{grid-column:2;grid-row:2;padding:3px}.arena-actor{width:142px;height:142px}.arena-fighter.opponent .arena-actor{width:118px;height:118px}.arena-nameplate{min-height:46px;padding:2px 4px}.arena-nameplate strong{font-size:16px}.arena-hearts>img{width:19px;height:19px}.arena-team h3{font-size:18px}.arena-team-card{min-height:58px}.arena-team-card>img{width:46px;height:46px}.arena-team-row{gap:4px}.arena-team-row>.arena-button{font-size:17px}.arena-challenge h2{font-size:23px}.arena-answers .arena-button{min-height:43px;font-size:17px}.arena-wait{font-size:14px!important}.arena-lobby{display:grid;grid-template-columns:1fr 1fr;align-items:start}.arena-welcome{padding:10px;gap:7px}.arena-lobby-icon{display:none}.arena-welcome h2{font-size:29px}.arena-welcome>p{font-size:18px}.arena-roster{grid-template-columns:repeat(3,1fr)}.arena-roster-item>img{width:62px;height:62px}.arena-dev{grid-column:1/3}}
@media(prefers-reduced-motion:reduce){.arena-creature,.attack-locked .arena-projectile,.attack-hit .arena-creature{animation:none!important}.arena-timebar span{transition:none}.attack-locked .arena-projectile{transform:translateY(-30px)}}
@media(orientation:landscape) and (max-height:600px){.arena-battle{grid-template-rows:minmax(0,1fr) 108px}.arena-team-row{height:68px}.arena-team-row>.arena-button{min-height:0}.arena-end-actions .arena-button{font-size:17px}}
.arena-stage{container-type:size}.arena-fighter.you .arena-actor{max-width:42cqh;max-height:42cqh}.arena-fighter.opponent .arena-actor{max-width:36cqh;max-height:36cqh}
.arena-element,.arena-miss{position:absolute;z-index:3;width:64px;height:64px;right:0;top:10%;image-rendering:pixelated;pointer-events:none}
.arena-element{animation:arena-element-hit 1s ease-out both}.opponent .arena-element{left:0;right:auto;--attack-direction:-1}
.arena-miss{width:24px;height:24px;filter:grayscale(1);animation:arena-dissipate .8s ease-out both}
@keyframes arena-element-hit{0%{opacity:0;transform:translate(0,30px) scale(.6)}20%{opacity:1}75%{opacity:1;transform:translate(calc(var(--attack-direction,1)*65px),-55px) scale(1.1)}100%{opacity:0;transform:translate(calc(var(--attack-direction,1)*100px),-20px) scale(1.2)}}
@keyframes arena-dissipate{to{opacity:0;transform:translateY(-40px) scale(.2)}}
@media(prefers-reduced-motion:reduce){.arena-element,.arena-miss{animation:none}.arena-miss{display:none}}
/* Current saved pastel frames, also used throughout the gallery. */
.arena-panel,.arena-button,.arena-team-card{--arena-frame:url('/assets/interface-v2/pastel-ui/paper-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/paper-hover.png');border-image:var(--arena-frame) var(--native-frame-slice,4) fill / var(--native-frame-corner,8px) / 0 repeat;border-image-width:var(--native-frame-corner,8px);image-rendering:pixelated;image-rendering:crisp-edges;}
.arena-button.mint{--arena-frame:url('/assets/interface-v2/pastel-ui/mint-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/mint-hover.png')}
.arena-button.lavender{--arena-frame:url('/assets/interface-v2/pastel-ui/lavender-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/lavender-hover.png')}
.arena-button.peach{--arena-frame:url('/assets/interface-v2/pastel-ui/peach-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/peach-hover.png')}
.arena-button.blue{--arena-frame:url('/assets/interface-v2/pastel-ui/blue-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/blue-hover.png')}
.arena-button.cream{--arena-frame:url('/assets/interface-v2/pastel-ui/gold-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/gold-hover.png')}
@media(hover:hover){.arena-button:hover:not(:disabled),.arena-team-card:hover:not(:disabled){border-image-source:var(--arena-hover)}}
.arena-button:active:not(:disabled),.arena-team-card:active:not(:disabled){border-image-source:var(--arena-hover)}
/* Stable pastel colors belong to team slots, not to the selected creature. */
.arena-team-card{position:relative}
.arena-team-card:nth-child(3n+1){--arena-frame:url('/assets/interface-v2/pastel-ui/pink-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/pink-hover.png')}
.arena-team-card:nth-child(3n+2){--arena-frame:url('/assets/interface-v2/pastel-ui/mint-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/mint-hover.png')}
.arena-team-card:nth-child(3n+3){--arena-frame:url('/assets/interface-v2/pastel-ui/lavender-normal.png');--arena-hover:url('/assets/interface-v2/pastel-ui/lavender-hover.png')}
.arena-team-card:disabled{opacity:1}
.arena-team-card.selected:not(.unavailable)::after{content:'';position:absolute;top:-6px;right:-4px;width:24px;height:24px;background:#fffaf4 url('/assets/interface-v2/ui/action-check-normal-contenu.png') center/40px 40px no-repeat;image-rendering:pixelated;pointer-events:none}
/* Gray the whole unavailable card; empty hearts alone explain a knockout. */
.arena-team-card.unavailable:disabled{opacity:1;cursor:not-allowed;filter:grayscale(1) brightness(.93)}
.arena-team-card.unavailable>img{opacity:.3}
.arena-team-card.unavailable .arena-hearts{opacity:.7}

/* Shared saved Aseprite parts, including word initials. */
.arena-native-creature{image-rendering:pixelated;object-fit:contain}
.arena-page .arena-actor .arena-native-creature{animation:none!important;opacity:1!important}
.arena-roster-item>canvas{width:80px;height:80px}
.arena-team-card>canvas{width:64px;height:64px}
@media(max-height:700px){.arena-team-card>canvas{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.arena-native-creature{animation:none}}
