/* P4 private signed battles; integrated into existing HAHUMI Friends, off by default */
.battle70{margin:26px 0 40px;border-radius:28px;padding:clamp(16px,3.2vw,32px);border:1px solid var(--line);background:radial-gradient(circle at 93% 0,var(--surface-2),transparent 38%),linear-gradient(145deg,var(--surface),var(--surface));color:var(--ink);box-shadow:0 25px 64px color-mix(in oklab,var(--ink) 8%,transparent)}
.battle70[hidden]{display:none!important}.battle70 *{box-sizing:border-box}
.battle70-head,.battle70-stage,.battle70-arena-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.battle70-head{align-items:start;margin-bottom:18px}.battle70-head h2{font-size:clamp(25px,3.6vw,42px);line-height:1.04;letter-spacing:-.05em;margin:7px 0 9px}.battle70-head em{font-style:normal;color:var(--c-deep)}
.battle70-head p{max-width:630px;line-height:1.65;font-size:12px;color:var(--ink-2);margin:0}
.battle70-eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:var(--ink-2)}.battle70-badge{font-size:12px;padding:9px 12px;border-radius:99px;white-space:nowrap;background:var(--act);color:var(--ink-3);font-weight:800}
.battle70-stage{border-radius:20px;padding:18px 20px;margin-bottom:17px;background:var(--act);color:var(--ink-3);justify-content:start}.battle70-stage-mark{border-radius:14px;background:var(--surface-2);color:var(--ink);min-width:88px;padding:15px 12px;font-size:20px;text-align:center;font-weight:800}.battle70-stage-mark span{color:var(--c-deep);font-weight:800}
.battle70-stage-copy{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.battle70-stage-copy strong{font-size:15px}.battle70-stage-copy span{color:var(--ink-3);font-size:12px;line-height:1.5}
.battle70-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.battle70-step,.battle70-withdraw{min-width:0;border-radius:20px;padding:16px;background:var(--surface);border:1px solid var(--line)}
.battle70-step summary,.battle70-withdraw summary{cursor:pointer;list-style:none;font-weight:800;font-size:15px;display:flex;align-items:center;gap:10px}
.battle70-step summary::-webkit-details-marker,.battle70-withdraw summary::-webkit-details-marker{display:none}
.battle70-step summary span{font-size:12px;color:var(--surface);background:var(--act);min-width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}
.battle70-step[open] summary{margin-bottom:10px}.battle70-step p,.battle70-withdraw p,.battle70-transport p{font-size:12px;line-height:1.6;color:var(--ink-2)}
.battle70 label{font-size:12px;line-height:1.5;font-weight:700;display:block;margin-top:11px}.battle70 input[type=checkbox]{accent-color:var(--ink-2)}
.battle70 textarea,.battle70 select{display:block;width:100%;margin-top:5px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:12px/1.5 system-ui,sans-serif;color:var(--ink);max-width:100%}.battle70 textarea{font:12px/1.5 ui-monospace,Menlo,monospace;resize:vertical}
.battle70 textarea:focus-visible,.battle70 select:focus-visible,.battle70 button:focus-visible{outline:3px solid var(--ink-2);outline-offset:2px}
.battle70 .battle70-check{display:flex;gap:8px;align-items:start;font-weight:500;line-height:1.55}.battle70-check input{margin:2px 0 0;flex-shrink:0}
.battle70 button{border:1px solid var(--line-2);color:var(--ink);background:var(--surface);border-radius:10px;padding:10px 13px;min-height:38px;cursor:pointer;font-weight:800;font-size:12px}.battle70 button:hover{background:var(--surface-2)}.battle70 .battle70-primary{background:var(--act);border-color:var(--ink);color:var(--surface);margin-top:10px}.battle70 .battle70-primary:hover{background:var(--act)}
.battle70-review{margin-top:8px;padding:11px;background:var(--surface);border-radius:10px;border-left:3px solid var(--ink-2);overflow-wrap:anywhere;font-size:12px;line-height:1.6}
.battle70-arena{margin:17px 0;border:1px solid var(--line-2);background:var(--surface);border-radius:28px;padding:19px}.battle70-arena-head h3{font-size:24px;margin:5px 0 0;letter-spacing:-.035em}.battle70-arena-tag{font-size:12px;font-weight:800;color:var(--ink-2);background:var(--surface);border-radius:99px;padding:9px 10px}
.battle70-seal{border-radius:14px;padding:14px;background:var(--surface);margin:14px 0}.battle70-seal label:first-child{margin:0}.battle70-seal small{font-size:12px;color:var(--ink-2);display:block;font-weight:500}
.battle70-sequence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.battle70-sequence>div{padding:14px;background:var(--surface);border-radius:14px;min-width:0}.battle70-sequence strong{font-size:12px}.battle70-sequence p{font-size:12px;color:var(--ink-2);line-height:1.55}
.battle70-result{margin-top:15px;border-radius:14px;background:var(--act);color:var(--surface);padding:18px;font-size:12px;line-height:1.65;overflow-wrap:anywhere;min-height:65px}
.battle70-result .battle70-jokes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.battle70-jokes article{background:color-mix(in oklab,var(--surface) 6%,transparent);padding:11px;border-radius:14px}.battle70-jokes strong{font-size:12px;color:var(--ink-3)}.battle70-jokes p{font-size:12px;line-height:1.5;white-space:pre-wrap}
.battle70-result .battle70-outcome{font-size:20px;font-weight:800;letter-spacing:-.035em;margin-bottom:12px}.battle70-result.battle70-animate{animation:battle70-pop .45s ease-out}@keyframes battle70-pop{0%{transform:translateY(8px);opacity:.65}100%{transform:none;opacity:1}}
.battle70-transport{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:19px;margin:18px 0}.battle70-transport h3{font-size:20px;letter-spacing:-.035em;margin:6px 0}.battle70-transport input[type=file]{width:100%;max-width:100%;font-size:12px;margin-top:7px}
.battle70-withdraw{background:var(--surface);margin:15px 0}.battle70-withdraw summary{color:var(--c-deep)}.battle70-card{padding:16px;border-radius:14px;background:var(--surface-2);margin-top:10px;font-weight:700;line-height:1.6}.battle70-status{margin:13px 0 5px;padding:11px;border-radius:14px;background:var(--surface);color:var(--ink);font-size:12px;line-height:1.5}.battle70-status[data-error=true]{background:var(--surface);color:var(--ink)}
.battle70-foot{font-size:12px;line-height:1.7;color:var(--ink-2);margin-top:12px}
@media(max-width:900px){.battle70-cols,.battle70-sequence{grid-template-columns:1fr}.battle70-head{flex-direction:column}.battle70-stage{flex-wrap:wrap}.battle70-result .battle70-jokes{grid-template-columns:1fr}}
@media(max-width:520px){.battle70{padding:15px;border-radius:20px}.battle70-head h2{font-size:30px}.battle70-stage{padding:13px}.battle70-stage-mark{min-width:65px;padding:12px 8px}.battle70-badge{align-self:start}.battle70-arena{padding:13px}.battle70-arena-head{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.battle70 *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.battle70-avatars{display:flex;align-items:center;justify-content:center;gap:4px}
.battle70-avatars .battle70-actor{width:78px;max-width:38vw;position:relative}.battle70-avatars svg{display:block;width:100%;height:auto;filter:drop-shadow(0 7px 9px color-mix(in oklab,var(--ink) 27%,transparent))}
.battle70-avatars .battle70-actor:nth-child(2){transform:scaleX(-1)}
.battle70-avatars[data-vibe=win] .battle70-actor:first-child{animation:battle70-wave 1.1s ease-in-out 2}
.battle70-avatars[data-vibe=draw] .battle70-actor{animation:battle70-wave .9s ease-in-out 2}
.battle70-avatars[data-vibe=retry] .battle70-actor:nth-child(2){animation:battle70-tilt 1s ease-in-out 1}
@keyframes battle70-wave{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-5px) rotate(-4deg)}65%{transform:translateY(1px) rotate(3deg)}}
@keyframes battle70-tilt{0%,100%{transform:rotate(0)}50%{transform:rotate(8deg)}}
@media(max-width:700px){.battle70-avatars .battle70-actor{width:58px}.battle70-stage-mark{display:none}}
@media(prefers-reduced-motion:reduce){.battle70-avatars .battle70-actor,.battle70-avatars[data-vibe] .battle70-actor{animation:none!important;transform:none!important}}

.battle70-head-actions{display:flex;flex-wrap:wrap;justify-content:end;align-items:center;gap:9px}.battle70 .battle70-lang{display:flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--surface);gap:2px}.battle70 .battle70-lang button{padding:5px 9px;min-height:26px;border:0;background:transparent;color:var(--ink-2);font-size:12px}.battle70 .battle70-lang button[aria-pressed=true]{background:var(--act);color:white}.battle70:lang(en) .battle70-head em{color:var(--c-deep)}
