{"release_id":"01a1c502-4ad1-0000-ec62-adc54d3c69aa","chunk_id":"01a1c502-4c75-7ff1-81ee-7eba5df7a270","file":"112.BHBfTFD_.mjs","mappings":"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","names":["label","now","$.state","$.proxy","onMount","iv","$.set","text","$.derived","ms","$$props","s","d","pad","n","div","root","span","span_1","root_1","$$render","consequent","teamSize","$.prop","maxApplicants","fileInput","uploading","applyError","onPick","e","file","urlRes","u","res","j","ERR","invalidateAll","err","$.get","slots","cards","$.user_effect","c","a","saving","lockingNow","lineupError","lineupOk","cardRow","deckOpenedAt","openDeck","i","viewing","editing","positions","placed","usedCards","byId","posOf","userId","cardOf","k","WAR_CARDS","toggle","at","remove","free","ns","pos","nc","move","dir","to","setCard","key","already","WAR_HAND_SIZE","tilt","el","r","px","py","untilt","onKey","submit","lock","picks","bout","p","$.first_child","fragment","section","div_1","div_2","div_3","div_4","root_5","input","$.sibling","text_5","$$value","classes_1","$.set_class","$.delegated","p_1","root_6","consequent_4","div_5","root_7","$.template_effect","$.set_text","text_7","div_6","root_8","$.each","out","div_7","root_9","button","img","root_10","root_11","consequent_6","alternate_1","root_12","text_8","consequent_7","div_8","node_5","span_2","button_1","root_13","consequent_8","classes_2","div_9","root_14","div_10","root_15","getAvatarUrl","DuelAvatar","node_7","span_3","span_4","classes_3","classes_4","text_11","consequent_5","consequent_9","alternate_2","section_1","root_16","div_11","div_12","div_13","div_14","span_5","root_17","span_6","root_18","div_15","$.index","$$anchor","div_16","root_19","div_17","span_7","span_8","fragment_3","img_1","root_21","consequent_11","alternate_4","span_9","span_10","span_11","root_23","classes_6","text_16","button_2","root_24","classes_7","text_17","span_12","root_25","button_3","button_4","button_5","consequent_13","span_13","fragment_5","span_14","consequent_14","alternate_6","classes_5","div_18","root_27","button_6","button_7","text_19","WAR_MIN_TEAM","consequent_15","p_2","root_28","consequent_16","p_3","root_29","consequent_17","p_4","root_30","consequent_18","text_12","row","who","div_19","root_31","button_8","div_20","div_21","div_22","div_23","div_24","span_15","div_25","on","takenAt","taken","capped","button_9","root_32","span_16","$.child","span_17","span_18","root_33","span_19","root_34","text_28","consequent_21","span_20","span_21","span_22","span_23","$.reset","classes_8","text_27","text_30","text_31","$.event","$.append","div_26","button_10","root_35","span_24","root_36","consequent_22","alternate_7","button_11","node_20","text_24","text_25","consequent_23","div_27","root_38","button_12","div_28","div_29","img_2","root_39","consequent_24","div_30","div_31","node_24","span_25","span_26","root_40","text_34","consequent_25","div_32","button_13","root_41","consequent_26","button_14","node_26","consequent_27","consequent_28","classes","photos","stake","autoplay","CARD_NAME","Q","pick","w","l","nick","stageEl","introEl","cdEl","ringEl","vigEl","spotEl","flashEl","critwordEl","fAEl","fBEl","phAEl","phBEl","glassA","glassB","koA","koB","pAEl","pBEl","mAEl","mBEl","vsEl","dieEl","dmgEl","hpAEl","hpBEl","quipEl","endEl","xpEl","hpA","hpB","log","running","played","endQuip","nameA","nameB","recA","recB","photoA","photoB","winner","winXp","reduced","wait","count","suffix","t0","step","t","POWER","quip","shatter","photo","svg","cx","cy","ang","len","x","y","path","segs","jitter","ba","bl","a0","a1","sh","h","dust","addMod","host","cls","play","wa","wb","g","f","m","aw","wn","ln","bar","jumpToEnd","$0","$.set_style","b","root_4","text_4","consequent_1","alternate","consequent_2","b_1","text_9","text_10","consequent_3","b_2","text_13","i_1","div_33","div_34","div_35","div_36","div_37","i_2","div_38","div_39","div_40","div_41","svg_1","div_42","div_43","div_44","div_45","div_46","div_47","div_48","div_49","div_50","div_51","div_52","svg_2","div_53","div_54","div_55","div_56","div_57","div_58","div_59","$.html","div_60","div_61","div_62","div_63","div_64","div_65","div_66","div_67","div_68","div_69","text_1","text_2","text_6","text_15","$2","$4","getClanAvatarUrl","busy","disabled","error","root_2","text_3","$$args","fly","cubicOut","note","picked","bench","root_3","node_4","node_6","node_8","fighter","$.noop","won","flip","$.set_attribute","cardName","winSide","loser","loseXp","tied","xpFor","side","h2","ClanEmblem","node_9","col","node_10","text_20","text_18","v","mySide","otherSide","activeMode","list","fmtAt","iso","hero","att","def","myApps","myLocked","mine","eyebrow","ff","other","steps","actionError","post","body","copied","share","url","title","terminalCopy","a_1","header","h1","a_2","node","a_3","node_1","node_2","WarCountdown","ol","st","li","WarLineupBuilder","node_11","$1","WarDock","node_13","consequent_10","WarRoster","node_14","_","root_22","node_17","node_18","WarBattlePlayer","node_19","WarResult","section_2","a_4","section_3","consequent_20","text_14"],"sources":["../../../../../../src/lib/components/clan/war/WarCountdown.svelte","../../../../../../src/lib/components/clan/war/WarLineupBuilder.svelte","../../../../../../src/lib/components/clan/war/WarBattlePlayer.svelte","../../../../../../src/lib/components/clan/war/WarDock.svelte","../../../../../../src/lib/components/clan/war/WarRoster.svelte","../../../../../../src/lib/components/clan/war/WarResult.svelte","../../../../../../src/routes/k/war/[code]/+page.svelte"],"sourcesContent":["<script lang=\"ts\">\n\t/** Ticking hh:mm:ss (or \"d h\" past a day) to an ISO instant. Renders\n\t *  \"now\" once it has passed so the page never shows a negative timer. */\n\timport { onMount } from 'svelte';\n\n\tlet { to, label = '' }: { to: string | null; label?: string } = $props();\n\n\tlet now = $state(Date.now());\n\tonMount(() => {\n\t\tconst iv = setInterval(() => (now = Date.now()), 1000);\n\t\treturn () => clearInterval(iv);\n\t});\n\n\tconst text = $derived.by(() => {\n\t\tif (!to) return '—';\n\t\tconst ms = new Date(to).getTime() - now;\n\t\tif (ms <= 0) return 'now';\n\t\tconst s = Math.floor(ms / 1000);\n\t\tconst d = Math.floor(s / 86400);\n\t\tif (d >= 1) return `${d}d ${Math.floor((s % 86400) / 3600)}h`;\n\t\tconst pad = (n: number) => String(n).padStart(2, '0');\n\t\treturn `${pad(Math.floor(s / 3600))}:${pad(Math.floor((s % 3600) / 60))}:${pad(s % 60)}`;\n\t});\n</script>\n\n<div class=\"cd\">\n\t<span class=\"num\">{text}</span>\n\t{#if label}<span class=\"lbl\">{label}</span>{/if}\n</div>\n\n<style>\n\t.cd {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: flex-end;\n\t\tgap: 4px;\n\t}\n\t.num {\n\t\tfont-family: var(--font-display);\n\t\tfont-weight: 700;\n\t\tfont-size: 15px;\n\t\tletter-spacing: 0.02em;\n\t\tfont-variant-numeric: tabular-nums;\n\t\tbackground: #000;\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: 10px;\n\t\tpadding: 8px 12px;\n\t}\n\t.lbl {\n\t\tfont-size: 11px;\n\t\tfont-weight: 600;\n\t\tletter-spacing: 0.16em;\n\t\ttext-transform: uppercase;\n\t\tcolor: var(--color-muted);\n\t}\n</style>\n","<script lang=\"ts\">\n\t/** One side's muster: the applicant photos, the \"apply with a photo\" flow and,\n\t *  for a captain, the lineup. Tap a photo to add it to the next open bout, tap\n\t *  again to take it out. The lineup is a plain list: order, card, remove. Works\n\t *  for the attacker during `mustering` and the defender during `preparing`. */\n\timport { invalidateAll } from '$app/navigation';\n\timport { getAvatarUrl } from '$lib/avatar';\n\timport DuelAvatar from '$lib/components/duel/DuelAvatar.svelte';\n\timport {\n\t\tWAR_CARDS,\n\t\tWAR_HAND_SIZE,\n\t\tWAR_MIN_TEAM,\n\t\ttype ClanWarView,\n\t\ttype WarCard\n\t} from '$lib/types/clan-war';\n\n\ttype Applicant = ClanWarView['applicants']['a'][number];\n\n\tlet {\n\t\tcode,\n\t\tapplicants,\n\t\tcanApply,\n\t\tcanLock,\n\t\tlocked,\n\t\tmine,\n\t\ttag,\n\t\tteamSize = 4\n\t}: {\n\t\tcode: string;\n\t\tapplicants: Applicant[];\n\t\tcanApply: boolean;\n\t\tcanLock: boolean;\n\t\tlocked: boolean;\n\t\t/** the viewer belongs to this side (thumbnails visible) */\n\t\tmine: boolean;\n\t\t/** fighters per side for this war (2..4); applicant cap is double */\n\t\tteamSize?: number;\n\t\ttag: string;\n\t} = $props();\n\tconst maxApplicants = $derived(teamSize * 2);\n\n\t// ── apply ──\n\tlet fileInput = $state<HTMLInputElement | null>(null);\n\tlet uploading = $state(false);\n\tlet applyError = $state('');\n\n\tasync function onPick(e: Event) {\n\t\tconst file = (e.currentTarget as HTMLInputElement).files?.[0];\n\t\tif (!file) return;\n\t\tapplyError = '';\n\t\tuploading = true;\n\t\ttry {\n\t\t\tconst urlRes = await fetch('/api/clan-war/upload-url', {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\tbody: JSON.stringify({ mimeType: file.type, size: file.size })\n\t\t\t});\n\t\t\tconst u = await urlRes.json().catch(() => ({}));\n\t\t\tif (!urlRes.ok) throw new Error(u.error ?? 'upload init failed');\n\t\t\tconst put = await fetch(u.signedUrl, {\n\t\t\t\tmethod: 'PUT',\n\t\t\t\theaders: { 'content-type': file.type },\n\t\t\t\tbody: await file.arrayBuffer()\n\t\t\t});\n\t\t\tif (!put.ok) throw new Error('upload failed');\n\t\t\tconst res = await fetch(`/api/clan-war/${code}/apply`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\tbody: JSON.stringify({ path: u.path, mimeType: file.type })\n\t\t\t});\n\t\t\tconst j = await res.json().catch(() => ({}));\n\t\t\tif (!res.ok) throw new Error(ERR[j.error as string] ?? j.error ?? 'could not apply');\n\t\t\tawait invalidateAll();\n\t\t} catch (err) {\n\t\t\tapplyError = err instanceof Error ? err.message : 'something went wrong';\n\t\t} finally {\n\t\t\tuploading = false;\n\t\t\tif (fileInput) fileInput.value = '';\n\t\t}\n\t}\n\n\tconst ERR: Record<string, string> = {\n\t\tmoderation_blocked: \"that photo didn't pass moderation.\",\n\t\troster_full: 'the roster is full, 8 already applied.',\n\t\talready_applied: \"you're already in.\",\n\t\tlocked: 'the captain already locked the lineup.',\n\t\twrong_status: 'applications are closed.',\n\t\ttoo_few_fighters: 'you need at least two fighters to lock.',\n\t\tbad_card: 'one card per fighter, three per war, no doubles.',\n\t\tbad_lineup: 'a fighter can only be in one bout.',\n\t\tnot_captain: 'only the owner or an officer can set the lineup.'\n\t};\n\n\t// ── lineup (captain) ──\n\t// seed from the server's picks, resync on invalidateAll (RAT-117 pattern)\n\tlet slots = $state<(string | null)[]>([null, null, null, null]);\n\tlet cards = $state<(WarCard | null)[]>([null, null, null, null]);\n\t$effect(() => {\n\t\tconst s: (string | null)[] = [null, null, null, null];\n\t\tconst c: (WarCard | null)[] = [null, null, null, null];\n\t\tfor (const a of applicants) {\n\t\t\tif (a.status === 'picked' && a.boutIndex !== null && a.boutIndex < teamSize) {\n\t\t\t\ts[a.boutIndex] = a.userId;\n\t\t\t\tc[a.boutIndex] = a.card;\n\t\t\t}\n\t\t}\n\t\tslots = s;\n\t\tcards = c;\n\t});\n\tlet saving = $state(false);\n\tlet lockingNow = $state(false);\n\tlet lineupError = $state('');\n\tlet lineupOk = $state('');\n\t/** which lineup row has its card picker open */\n\tlet cardRow = $state<number | null>(null);\n\tlet deckOpenedAt = 0;\n\tfunction openDeck(i: number) {\n\t\tcardRow = cardRow === i ? null : i;\n\t\tdeckOpenedAt = Date.now();\n\t}\n\t/** applicant open in the viewer */\n\tlet viewing = $state<string | null>(null);\n\n\tconst editing = $derived(canLock && !locked);\n\tconst positions = $derived(slots.slice(0, teamSize));\n\tconst placed = $derived(positions.filter(Boolean).length);\n\tconst usedCards = $derived(cards.filter((c): c is WarCard => !!c));\n\tconst byId = $derived(new Map(applicants.map((a) => [a.userId, a])));\n\tconst posOf = (userId: string) => slots.indexOf(userId);\n\tconst cardOf = (k: WarCard | null) => (k ? WAR_CARDS.find((c) => c.key === k) : undefined);\n\n\tfunction toggle(userId: string) {\n\t\tif (!editing) return;\n\t\tconst at = slots.indexOf(userId);\n\t\tif (at >= 0) return remove(at);\n\t\tconst free = positions.indexOf(null);\n\t\tif (free < 0) return;\n\t\tconst ns = [...slots];\n\t\tns[free] = userId;\n\t\tslots = ns;\n\t}\n\tfunction remove(pos: number) {\n\t\tif (!editing) return;\n\t\tconst ns = [...slots];\n\t\tconst nc = [...cards];\n\t\tns[pos] = null;\n\t\tnc[pos] = null;\n\t\tslots = ns;\n\t\tcards = nc;\n\t\tif (cardRow === pos) cardRow = null;\n\t}\n\tfunction move(pos: number, dir: -1 | 1) {\n\t\tconst to = pos + dir;\n\t\tif (!editing || to < 0 || to >= teamSize || !slots[pos]) return;\n\t\tconst ns = [...slots];\n\t\tconst nc = [...cards];\n\t\t[ns[pos], ns[to]] = [ns[to], ns[pos]];\n\t\t[nc[pos], nc[to]] = [nc[to], nc[pos]];\n\t\tslots = ns;\n\t\tcards = nc;\n\t\tif (cardRow === pos) cardRow = to;\n\t}\n\tfunction setCard(pos: number, key: WarCard | null) {\n\t\tif (!editing || !slots[pos]) return;\n\t\t// the deck renders under the pointer that opened it; swallow that same press\n\t\tif (Date.now() - deckOpenedAt < 250) return;\n\t\tconst nc = [...cards];\n\t\tif (key) {\n\t\t\tconst already = nc.indexOf(key);\n\t\t\tif (already >= 0 && already !== pos) nc[already] = null;\n\t\t\tif (!nc[pos] && nc.filter(Boolean).length >= WAR_HAND_SIZE) return;\n\t\t}\n\t\tnc[pos] = key;\n\t\tcards = nc;\n\t\tcardRow = null;\n\t}\n\n\t/** subtle 3d tilt + sheen that follows the pointer (desktop only, cheap: css vars) */\n\tfunction tilt(e: PointerEvent) {\n\t\tif (e.pointerType !== 'mouse') return;\n\t\tconst el = e.currentTarget as HTMLElement;\n\t\tconst r = el.getBoundingClientRect();\n\t\tconst px = (e.clientX - r.left) / r.width;\n\t\tconst py = (e.clientY - r.top) / r.height;\n\t\tel.style.setProperty('--ry', `${(px - 0.5) * 14}deg`);\n\t\tel.style.setProperty('--rx', `${(0.5 - py) * 14}deg`);\n\t\tel.style.setProperty('--mx', `${px * 100}%`);\n\t\tel.style.setProperty('--my', `${py * 100}%`);\n\t}\n\tfunction untilt(e: PointerEvent) {\n\t\tconst el = e.currentTarget as HTMLElement;\n\t\tel.style.setProperty('--ry', '0deg');\n\t\tel.style.setProperty('--rx', '0deg');\n\t\tel.style.setProperty('--mx', '50%');\n\t\tel.style.setProperty('--my', '50%');\n\t}\n\n\tfunction onKey(e: KeyboardEvent) {\n\t\tif (e.key === 'Escape') {\n\t\t\tviewing = null;\n\t\t\tcardRow = null;\n\t\t}\n\t}\n\n\tasync function submit(lock: boolean) {\n\t\tlineupError = '';\n\t\tlineupOk = '';\n\t\tsaving = true;\n\t\tlockingNow = lock;\n\t\ttry {\n\t\t\tconst picks = slots\n\t\t\t\t.map((userId, bout) => (userId ? { userId, bout, card: cards[bout] } : null))\n\t\t\t\t.filter((p): p is { userId: string; bout: number; card: WarCard | null } => !!p);\n\t\t\tconst res = await fetch(`/api/clan-war/${code}/lineup`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\tbody: JSON.stringify({ picks, lock })\n\t\t\t});\n\t\t\tconst j = await res.json().catch(() => ({}));\n\t\t\tif (!res.ok) throw new Error(ERR[j.error as string] ?? j.error ?? 'could not save');\n\t\t\tlineupOk = lock ? 'locked.' : 'saved.';\n\t\t\tawait invalidateAll();\n\t\t} catch (err) {\n\t\t\tlineupError = err instanceof Error ? err.message : 'something went wrong';\n\t\t} finally {\n\t\t\tsaving = false;\n\t\t\tlockingNow = false;\n\t\t}\n\t}\n</script>\n\n<svelte:window onkeydown={onKey} />\n\n<div class=\"muster\" class:captain={canLock || locked}>\n\t<!-- photos -->\n\t<section class=\"panel photos\">\n\t\t<div class=\"head\">\n\t\t\t<div>\n\t\t\t\t<div class=\"lbl\">#{tag} · {applicants.length} of {maxApplicants} applied</div>\n\t\t\t\t<div class=\"sub\">\n\t\t\t\t\t{#if locked}the lineup is locked.\n\t\t\t\t\t{:else if canLock}tap a photo to put it in the next open bout. tap again to take it out.\n\t\t\t\t\t{:else if canApply}one photo that answers the brief. the captain picks {teamSize}.\n\t\t\t\t\t{:else}the captain picks {teamSize} of these.{/if}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{#if canApply}\n\t\t\t\t<label class=\"btn btn-v\" class:busy={uploading}>\n\t\t\t\t\t{uploading ? 'uploading…' : 'apply with a photo'}\n\t\t\t\t\t<input bind:this={fileInput} type=\"file\" accept=\"image/jpeg,image/png,image/webp\" onchange={onPick} disabled={uploading} hidden />\n\t\t\t\t</label>\n\t\t\t{/if}\n\t\t</div>\n\t\t{#if applyError}<p class=\"err\">{applyError}</p>{/if}\n\n\t\t{#if applicants.length === 0}\n\t\t\t<div class=\"empty\">nobody yet. {canApply ? 'be the first.' : ''}</div>\n\t\t{:else if mine}\n\t\t\t<div class=\"grid\">\n\t\t\t\t{#each applicants as a (a.userId)}\n\t\t\t\t\t{@const at = posOf(a.userId)}\n\t\t\t\t\t{@const out = a.status === 'rejected'}\n\t\t\t\t\t<div class=\"tile\" class:in={at >= 0} class:out class:full={editing && at < 0 && placed >= teamSize}>\n\t\t\t\t\t\t<button type=\"button\" class=\"pick\" disabled={!editing || out} onclick={() => toggle(a.userId)} aria-label={at >= 0 ? `remove @${a.nickname ?? 'user'} from the lineup` : `add @${a.nickname ?? 'user'} to the lineup`}>\n\t\t\t\t\t\t\t{#if a.mediaUrl}<img src={a.mediaUrl} alt=\"\" loading=\"lazy\" draggable=\"false\" />{:else}<span class=\"ph\"></span>{/if}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t{#if at >= 0}<span class=\"num\">{at + 1}</span>{/if}\n\t\t\t\t\t\t<div class=\"foot\">\n\t\t\t\t\t\t\t<span class=\"nm\">@{a.nickname ?? 'user'}</span>\n\t\t\t\t\t\t\t{#if a.mediaUrl}<button type=\"button\" class=\"view\" onclick={() => (viewing = a.userId)}>view</button>{/if}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{:else}\n\t\t\t<div class=\"list\">\n\t\t\t\t{#each applicants as a (a.userId)}\n\t\t\t\t\t<div class=\"row\" class:out={a.status === 'rejected'}>\n\t\t\t\t\t\t<DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={36} link={false} />\n\t\t\t\t\t\t<span class=\"row-nm\">@{a.nickname ?? 'user'}</span>\n\t\t\t\t\t\t<span class=\"row-st\" class:on={a.status === 'picked'}>{a.status === 'picked' && a.boutIndex !== null ? `bout ${a.boutIndex + 1}` : a.status}</span>\n\t\t\t\t\t</div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{/if}\n\t</section>\n\n\t<!-- the lineup -->\n\t{#if canLock || locked}\n\t\t<section class=\"panel lineup\">\n\t\t\t<div class=\"head\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"lbl\">lineup · {placed} of {teamSize}</div>\n\t\t\t\t\t<div class=\"sub\">{locked ? 'final. bout 1 fights first.' : `bout 1 fights first. ${WAR_HAND_SIZE} cards per war, one per fighter.`}</div>\n\t\t\t\t</div>\n\t\t\t\t{#if locked}<span class=\"chip-k\">locked</span>{:else}<span class=\"count\">cards {usedCards.length}/{WAR_HAND_SIZE}</span>{/if}\n\t\t\t</div>\n\n\t\t\t<div class=\"rows\">\n\t\t\t\t{#each positions as userId, i (i)}\n\t\t\t\t\t{@const a = userId ? byId.get(userId) : null}\n\t\t\t\t\t{@const c = cardOf(cards[i])}\n\t\t\t\t\t<div class=\"slot\" class:filled={!!a} class:open={cardRow === i}>\n\t\t\t\t\t\t<div class=\"slot-main\">\n\t\t\t\t\t\t\t<span class=\"n\">{i + 1}</span>\n\t\t\t\t\t\t\t{#if a}\n\t\t\t\t\t\t\t\t<span class=\"thumb\">{#if a.mediaUrl}<img src={a.mediaUrl} alt=\"\" />{:else}<DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={44} link={false} />{/if}</span>\n\t\t\t\t\t\t\t\t<span class=\"who\">\n\t\t\t\t\t\t\t\t\t<span class=\"who-nm\">@{a.nickname ?? 'user'}</span>\n\t\t\t\t\t\t\t\t\t{#if locked}<span class=\"who-c\" class:none={!c}>{c ? c.name : 'no card'}</span>\n\t\t\t\t\t\t\t\t\t{:else}<button type=\"button\" class=\"cardbtn\" class:set={!!c} class:leg={c?.rarity === 'legendary'} onclick={() => openDeck(i)}>{c ? c.name : 'no card'}</button>{/if}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t{#if editing}\n\t\t\t\t\t\t\t\t\t<span class=\"tools\">\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"tool\" disabled={i === 0} onclick={() => move(i, -1)} aria-label=\"move up\">↑</button>\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"tool\" disabled={i >= teamSize - 1 || !positions[i + 1]} onclick={() => move(i, 1)} aria-label=\"move down\">↓</button>\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"tool\" onclick={() => remove(i)} aria-label=\"remove\">×</button>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t<span class=\"thumb ghost\"></span>\n\t\t\t\t\t\t\t\t<span class=\"who\"><span class=\"who-nm dim\">{editing ? 'open' : 'empty'}</span></span>\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\n\t\t\t{#if editing}\n\t\t\t\t<div class=\"actions\">\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-ghost\" disabled={saving} onclick={() => submit(false)}>{saving && !lockingNow ? 'saving…' : 'save'}</button>\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-v\" disabled={saving || placed < WAR_MIN_TEAM} onclick={() => submit(true)}>{lockingNow ? 'locking…' : 'lock in'}</button>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t\t{#if lineupOk}<p class=\"ok\">{lineupOk}</p>{/if}\n\t\t\t{#if lineupError}<p class=\"err\">{lineupError}</p>{/if}\n\t\t\t{#if editing}<p class=\"note\">locking is final. miss the deadline and the system fields the first {teamSize} applicants with no cards, and the clan wears a no-show mark.</p>{/if}\n\t\t</section>\n\t{/if}\n</div>\n\n{#if cardRow !== null && editing && slots[cardRow]}\n\t{@const row = cardRow}\n\t{@const who = byId.get(slots[row] ?? '')}\n\t<div class=\"viewer\" role=\"dialog\" aria-modal=\"true\" aria-label=\"pick a card\">\n\t\t<button type=\"button\" class=\"backdrop\" aria-label=\"close\" onclick={() => (cardRow = null)}></button>\n\t\t<div class=\"deck\">\n\t\t\t<div class=\"deck-head\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"lbl\">bout {row + 1} · @{who?.nickname ?? 'user'}</div>\n\t\t\t\t\t<div class=\"deck-t\">{cards[row] ? 'swap the card.' : 'arm this fighter.'}</div>\n\t\t\t\t</div>\n\t\t\t\t<span class=\"count\">cards {usedCards.length}/{WAR_HAND_SIZE}</span>\n\t\t\t</div>\n\t\t\t<div class=\"cards\">\n\t\t\t\t{#each WAR_CARDS as k (k.key)}\n\t\t\t\t\t{@const on = cards[row] === k.key}\n\t\t\t\t\t{@const takenAt = cards.indexOf(k.key)}\n\t\t\t\t\t{@const taken = takenAt >= 0 && takenAt !== row}\n\t\t\t\t\t{@const capped = !cards[row] && usedCards.length >= WAR_HAND_SIZE}\n\t\t\t\t\t{@const holder = taken ? byId.get(slots[takenAt] ?? '') : null}\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"foil r-{k.rarity}\"\n\t\t\t\t\t\tclass:on\n\t\t\t\t\t\tclass:off={taken || capped}\n\t\t\t\t\t\tdisabled={taken || capped}\n\t\t\t\t\t\tstyle=\"--rx:0deg; --ry:0deg; --mx:50%; --my:50%;\"\n\t\t\t\t\t\tonpointermove={tilt}\n\t\t\t\t\t\tonpointerleave={untilt}\n\t\t\t\t\t\tonclick={() => setCard(row, k.key)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"foil-sheen\"></span>\n\t\t\t\t\t\t<span class=\"foil-frame\"></span>\n\t\t\t\t\t\t<span class=\"foil-top\"><span class=\"foil-r\">{k.rarity}</span>{#if on}<span class=\"foil-on\">armed</span>{:else if taken}<span class=\"foil-on dim\">bout {takenAt + 1}</span>{/if}</span>\n\t\t\t\t\t\t<span class=\"foil-mark\">{k.name.charAt(0)}</span>\n\t\t\t\t\t\t<span class=\"foil-body\">\n\t\t\t\t\t\t\t<span class=\"foil-n\">{k.name}</span>\n\t\t\t\t\t\t\t<span class=\"foil-fx\">{k.fx}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</button>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t\t<div class=\"deck-foot\">\n\t\t\t\t{#if cards[row]}<button type=\"button\" class=\"btn btn-ghost\" onclick={() => setCard(row, null)}>no card</button>{:else}<span class=\"note\">{WAR_HAND_SIZE} per war, one per fighter. tap one to arm.</span>{/if}\n\t\t\t\t<button type=\"button\" class=\"btn btn-ghost\" onclick={() => (cardRow = null)}>close</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n{/if}\n\n{#if viewing}\n\t{@const a = byId.get(viewing)}\n\t{#if a}\n\t\t{@const at = posOf(a.userId)}\n\t\t<div class=\"viewer\" role=\"dialog\" aria-modal=\"true\" aria-label=\"photo\">\n\t\t\t<button type=\"button\" class=\"backdrop\" aria-label=\"close\" onclick={() => (viewing = null)}></button>\n\t\t\t<div class=\"sheet\">\n\t\t\t\t<div class=\"pic\">{#if a.mediaUrl}<img src={a.mediaUrl} alt=\"\" />{/if}</div>\n\t\t\t\t<div class=\"bar\">\n\t\t\t\t\t<div class=\"bar-l\">\n\t\t\t\t\t\t<DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={32} link={false} />\n\t\t\t\t\t\t<span class=\"bar-nm\">@{a.nickname ?? 'user'}</span>\n\t\t\t\t\t\t{#if at >= 0}<span class=\"chip-v\">bout {at + 1}</span>{/if}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bar-r\">\n\t\t\t\t\t\t{#if editing && a.status !== 'rejected'}\n\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-v\" disabled={at < 0 && placed >= teamSize} onclick={() => { toggle(a.userId); viewing = null; }}>{at >= 0 ? 'take out' : placed >= teamSize ? 'lineup full' : `add to bout ${positions.indexOf(null) + 1}`}</button>\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-ghost\" onclick={() => (viewing = null)}>close</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t{/if}\n{/if}\n\n<style>\n\t.muster { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; }\n\t@media (min-width: 900px) {\n\t\t.muster.captain { grid-template-columns: minmax(0, 1fr) 340px; }\n\t\t.muster.captain .lineup { position: sticky; top: 84px; }\n\t}\n\t@media (max-width: 899px) { .muster.captain .lineup { order: -1; } }\n\t.panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }\n\t.head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }\n\t.lineup .head { flex-wrap: nowrap; }\n\t.lineup .head > span { flex-shrink: 0; }\n\t.lbl { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }\n\t.sub { font-size: 13px; color: var(--color-muted); margin-top: 3px; max-width: 60ch; line-height: 1.45; }\n\t.btn { display: inline-flex; align-items: center; justify-content: center; padding: 11px 20px; border-radius: 12px; border: none; font-family: var(--font-display); font-size: 14px; font-weight: 700; cursor: pointer; text-decoration: none; white-space: nowrap; }\n\t.btn-v { background: var(--color-violet); color: #fff; }\n\t.btn-v:hover { background: var(--color-violet-dark); }\n\t.btn-ghost { background: var(--color-surface-2); color: var(--color-text); border: 1px solid var(--color-border); }\n\t.btn:disabled, .btn.busy { opacity: 0.5; cursor: default; }\n\t.actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }\n\t.empty { border: 1px solid var(--color-border); border-radius: 12px; padding: 18px; text-align: center; font-size: 13px; color: var(--color-muted); }\n\t.ph { display: block; width: 100%; height: 100%; background: #1c1c1c; }\n\t.chip-v { background: var(--color-violet); color: #fff; font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; }\n\t.chip-k { background: #000; color: #fff; border: 1px solid var(--color-border); font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; }\n\t.count { flex-shrink: 0; white-space: nowrap; font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-muted); background: var(--color-surface-2); border: 1px solid var(--color-border); padding: 4px 8px; border-radius: 6px; }\n\n\t/* photo grid */\n\t.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }\n\t.captain .grid { grid-template-columns: repeat(3, 1fr); }\n\t@media (max-width: 1100px) { .grid { grid-template-columns: repeat(3, 1fr); } }\n\t@media (max-width: 560px) { .grid, .captain .grid { grid-template-columns: repeat(2, 1fr); } }\n\t.tile { position: relative; border-radius: 14px; overflow: hidden; background: #151515; border: 1px solid var(--color-border); }\n\t.pick { display: block; width: 100%; aspect-ratio: 3 / 4; padding: 0; border: none; background: none; cursor: pointer; }\n\t.pick:disabled { cursor: default; }\n\t.pick img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s cubic-bezier(.2,.8,.2,1), opacity .2s; }\n\t@media (hover: hover) { .tile:not(.out) .pick:not(:disabled):hover img { transform: scale(1.03); } }\n\t.tile.in { border-color: var(--color-violet); }\n\t.tile.full .pick img { opacity: 0.45; }\n\t.tile.out { opacity: 0.35; }\n\t.num { position: absolute; top: 10px; left: 10px; width: 28px; height: 28px; border-radius: 9px; background: var(--color-violet); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 13px; display: grid; place-items: center; pointer-events: none; }\n\t.foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; border-top: 1px solid var(--color-border); background: var(--color-surface); }\n\t.nm { font-family: var(--font-display); font-weight: 700; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }\n\t.view { flex-shrink: 0; font-family: var(--font-display); font-size: 11px; font-weight: 700; color: var(--color-muted); background: none; border: none; padding: 0; cursor: pointer; }\n\t.view:hover { color: var(--color-text); }\n\n\t/* members' plain list */\n\t.list { display: flex; flex-direction: column; border: 1px solid var(--color-border); border-radius: 12px; overflow: hidden; }\n\t.row { display: flex; align-items: center; gap: 10px; padding: 9px 12px; background: var(--color-surface-2); }\n\t.row + .row { border-top: 1px solid var(--color-border); }\n\t.row.out { opacity: 0.4; }\n\t.row-nm { flex: 1; font-family: var(--font-display); font-weight: 700; font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n\t.row-st { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-muted); }\n\t.row-st.on { color: var(--color-violet); }\n\n\t/* lineup rows */\n\t.rows { display: flex; flex-direction: column; border: 1px solid var(--color-border); border-radius: 12px; overflow: hidden; background: var(--color-surface-2); }\n\t.slot + .slot { border-top: 1px solid var(--color-border); }\n\t.slot-main { display: flex; align-items: center; gap: 10px; padding: 9px 8px 9px 12px; min-height: 64px; }\n\t.n { font-family: var(--font-display); font-weight: 800; font-size: 13px; color: var(--color-muted); width: 14px; flex-shrink: 0; }\n\t.slot.filled .n { color: var(--color-text); }\n\t.thumb { width: 44px; height: 44px; border-radius: 10px; overflow: hidden; flex-shrink: 0; background: #1c1c1c; display: block; }\n\t.thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\t.thumb.ghost { background: #1a1a1a; }\n\t.who { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }\n\t.who-nm { font-family: var(--font-display); font-weight: 700; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n\t.who-nm.dim { color: #4a4a4a; font-weight: 500; }\n\t.who-c { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-violet); }\n\t.who-c.none { color: var(--color-muted); }\n\t.cardbtn { flex-shrink: 0; font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-muted); cursor: pointer; white-space: nowrap; }\n\t.cardbtn.set { background: var(--color-violet); border-color: var(--color-violet); color: #fff; }\n\t.cardbtn.set.leg { background: var(--color-yellow); border-color: var(--color-yellow); color: #000; }\n\t.slot.open .cardbtn:not(.set) { color: var(--color-text); border-color: #3a3a3a; }\n\t.tools { display: flex; gap: 2px; flex-shrink: 0; }\n\t.tool { width: 26px; height: 26px; border-radius: 8px; border: none; background: none; color: var(--color-muted); font-family: var(--font-display); font-size: 13px; font-weight: 700; cursor: pointer; display: grid; place-items: center; }\n\t.tool:hover:not(:disabled) { background: var(--color-surface); color: var(--color-text); }\n\t.tool:disabled { opacity: 0.25; cursor: default; }\n\t@media (hover: hover) and (min-width: 900px) { .tools { opacity: 0; transition: opacity .12s; } .slot:hover .tools, .slot:focus-within .tools { opacity: 1; } }\n\n\t/* the deck: card picker modal */\n\t.deck { position: relative; width: min(94vw, 760px); max-height: 92vh; overflow: auto; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.6); display: flex; flex-direction: column; gap: 16px; padding: 18px; }\n\t.deck-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }\n\t.deck-t { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; margin-top: 4px; line-height: 1.1; }\n\t.deck-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }\n\t.deck-foot .btn { padding: 9px 14px; font-size: 13px; }\n\t.deck-foot .btn:last-child { margin-left: auto; }\n\t.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; perspective: 900px; }\n\t@media (max-width: 640px) { .cards { grid-template-columns: repeat(2, 1fr); gap: 10px; } .foil { aspect-ratio: 4 / 5; } }\n\n\t.foil {\n\t\t--edge: #303030; --ink: var(--color-muted); --tint: rgba(255,255,255,0.05);\n\t\tposition: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 5 / 7; padding: 12px; border-radius: 14px; overflow: hidden; text-align: left;\n\t\tbackground: #121212; border: 1px solid var(--edge); color: var(--color-text); cursor: pointer;\n\t\ttransform: rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; transition: transform .12s ease-out, border-color .15s, opacity .2s; will-change: transform;\n\t}\n\t.foil::before { content: ''; position: absolute; inset: 0; background: radial-gradient(120% 80% at 50% 0%, var(--tint), transparent 60%); pointer-events: none; }\n\t.foil-sheen { position: absolute; inset: 0; pointer-events: none; background:\n\t\tradial-gradient(circle at var(--mx) var(--my), rgba(255,255,255,0.12), rgba(255,255,255,0.03) 30%, transparent 60%),\n\t\tlinear-gradient(115deg, transparent calc(var(--mx) - 28%), rgba(255,255,255,0.07) calc(var(--mx) - 6%), rgba(255,255,255,0.10) var(--mx), rgba(255,255,255,0.07) calc(var(--mx) + 6%), transparent calc(var(--mx) + 28%)); }\n\t.foil.r-legendary .foil-sheen { background:\n\t\tradial-gradient(circle at var(--mx) var(--my), rgba(255,225,140,0.16), rgba(255,225,140,0.04) 30%, transparent 60%),\n\t\tlinear-gradient(115deg, transparent calc(var(--mx) - 28%), rgba(255,225,140,0.08) calc(var(--mx) - 6%), rgba(255,225,140,0.12) var(--mx), rgba(255,225,140,0.08) calc(var(--mx) + 6%), transparent calc(var(--mx) + 28%)); }\n\t.foil.r-rare .foil-sheen { background:\n\t\tradial-gradient(circle at var(--mx) var(--my), rgba(200,215,235,0.15), rgba(200,215,235,0.04) 30%, transparent 60%),\n\t\tlinear-gradient(115deg, transparent calc(var(--mx) - 28%), rgba(200,215,235,0.08) calc(var(--mx) - 6%), rgba(200,215,235,0.12) var(--mx), rgba(200,215,235,0.08) calc(var(--mx) + 6%), transparent calc(var(--mx) + 28%)); }\n\t.foil-frame { position: absolute; inset: 6px; border: 1px solid rgba(255,255,255,0.07); border-radius: 10px; pointer-events: none; }\n\t.foil-top { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 6px; }\n\t.foil-r { font-family: var(--font-display); font-size: 9px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink); }\n\t.foil-on { font-family: var(--font-display); font-size: 9px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; background: var(--color-violet); padding: 3px 6px; border-radius: 5px; }\n\t.foil-on.dim { background: var(--color-surface-2); color: var(--color-muted); border: 1px solid var(--color-border); }\n\t.foil-mark { position: absolute; left: 50%; top: 44%; transform: translate(-50%, -50%); font-family: var(--font-display); font-weight: 800; font-size: clamp(72px, 13vw, 124px); line-height: 1; letter-spacing: -0.06em; color: var(--ink); opacity: 0.14; pointer-events: none; text-transform: uppercase; }\n\t.foil-body { position: relative; display: flex; flex-direction: column; gap: 4px; }\n\t.foil-n { font-family: var(--font-display); font-weight: 800; font-size: 17px; letter-spacing: -0.02em; line-height: 1.05; }\n\t.foil-fx { font-size: 11px; color: var(--color-muted); line-height: 1.35; }\n\t.foil.r-rare { --edge: #4a5058; --ink: #c9d1d9; --tint: rgba(190, 205, 220, 0.09); }\n\t.foil.r-legendary { --edge: #6a5a2a; --ink: var(--color-yellow); --tint: rgba(255, 200, 80, 0.10); }\n\t.foil.on { border-color: var(--color-violet); border-width: 2px; padding: 11px; }\n\t.foil.off { opacity: 0.35; cursor: default; }\n\t@media (hover: hover) { .foil:not(.off):hover { border-color: #4a4a4a; } .foil.on:hover { border-color: var(--color-violet); } }\n\t@media (prefers-reduced-motion: reduce) { .foil { transition: none; transform: none; } }\n\n\t/* the viewer */\n\t.viewer { position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; padding: 16px; }\n\t.backdrop { position: absolute; inset: 0; border: none; background: rgba(0, 0, 0, 0.88); cursor: default; }\n\t.sheet { position: relative; width: min(92vw, 560px); max-height: 92vh; display: flex; flex-direction: column; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.6); }\n\t.pic { flex: 1; min-height: 0; background: #000; display: grid; place-items: center; }\n\t.pic img { max-width: 100%; max-height: calc(92vh - 72px); width: 100%; height: auto; object-fit: contain; display: block; }\n\t.bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--color-border); flex-wrap: wrap; }\n\t.bar-l { display: flex; align-items: center; gap: 8px; min-width: 0; }\n\t.bar-nm { font-family: var(--font-display); font-weight: 700; font-size: 13px; }\n\t.bar-r { display: flex; gap: 6px; }\n\t.bar-r .btn { padding: 9px 14px; font-size: 13px; }\n\n\t.ok { color: var(--color-green); font-size: 12px; margin: 0; }\n\t.err { color: var(--color-coral); font-size: 13px; margin: 0; }\n\t.note { font-size: 12px; color: var(--color-muted); margin: 0; line-height: 1.45; }\n</style>\n","<script lang=\"ts\">\n\t/** The fight, played back from the stored script. A 1:1 port of the\n\t *  approved mock (scratchpad clan-war-battle.html): split splash with both\n\t *  rosters + 3·2·1·FIGHT, per bout: enter → judging scan → power count-up →\n\t *  tactic chips → crit roll → damage off the HP bar → glass-shatter KO,\n\t *  quips throughout, finale with MVP + clan XP. Imperative sequencing on\n\t *  element refs, because it is a timeline, not reactive state. Never\n\t *  recomputes anything: every number comes from `script`. */\n\timport { onMount } from 'svelte';\n\timport { getAvatarUrl } from '$lib/avatar';\n\timport { getClanAvatarUrl } from '$lib/clan-avatar';\n\timport type { WarScript } from '$lib/types/clan-war';\n\n\tlet {\n\t\tscript,\n\t\tphotos = {},\n\t\tstake = 0,\n\t\tautoplay = true\n\t}: {\n\t\tscript: WarScript;\n\t\t/** userId → signed photo url (falls back to a neutral panel) */\n\t\tphotos?: Record<string, string | null>;\n\t\tstake?: number;\n\t\tautoplay?: boolean;\n\t} = $props();\n\n\tconst CARD_NAME: Record<string, string> = { flex: 'flex +15%', shield: 'shield', 'all-in': 'all-in', 'second-wind': 'second wind' };\n\tconst Q = {\n\t\tjudge: ['the ai has seen things. it is not impressed yet.', 'one brief. one judge. no mercy.', 'scanning for effort.', 'the ai does not care about your feelings. only pixels.'],\n\t\tlead: ['{w} pulls ahead. {l} pulls a face.', '{w} is winning this one on the brief alone.', 'the ai prefers {w}. the ai is rarely wrong. rarely.', '{l} did everything right except win.'],\n\t\tcrit: ['critical. somebody call an adult.', 'the die is a menace.', 'double damage. no refunds.', 'that one is going in the group chat.'],\n\t\tblocked: ['crit rolled. shield said no.', 'the shield earned its rent tonight.', 'a crit walked in. a shield walked it out.'],\n\t\tnocrit: ['no crit. an honest, boring result.', 'the die rolled high. everyone keeps their dignity.', 'no crit. the margin is the margin.'],\n\t\tko: ['{l} has been asked to leave the frame.', '{l} will be fine. eventually.', \"somebody screenshot this for {l}'s ex.\", '{l}: brave, defeated.'],\n\t\tend: ['results are permanent. yes, even if you cry.', 'rematch in three days. bring a better photo.']\n\t};\n\tconst pick = (k: keyof typeof Q, w = '', l = '') => Q[k][Math.floor(Math.random() * Q[k].length)].replace('{w}', w).replace('{l}', l);\n\tconst nick = (n: string | null) => `@${n ?? 'user'}`;\n\n\t// element refs\n\tlet stageEl = $state<HTMLDivElement>();\n\tlet introEl = $state<HTMLDivElement>();\n\tlet cdEl = $state<HTMLDivElement>();\n\tlet ringEl = $state<HTMLDivElement>();\n\tlet vigEl = $state<HTMLDivElement>();\n\tlet spotEl = $state<HTMLDivElement>();\n\tlet flashEl = $state<HTMLDivElement>();\n\tlet critwordEl = $state<HTMLDivElement>();\n\tlet fAEl = $state<HTMLDivElement>();\n\tlet fBEl = $state<HTMLDivElement>();\n\tlet phAEl = $state<HTMLDivElement>();\n\tlet phBEl = $state<HTMLDivElement>();\n\tlet glassA = $state<SVGSVGElement>();\n\tlet glassB = $state<SVGSVGElement>();\n\tlet koA = $state<HTMLDivElement>();\n\tlet koB = $state<HTMLDivElement>();\n\tlet pAEl = $state<HTMLDivElement>();\n\tlet pBEl = $state<HTMLDivElement>();\n\tlet mAEl = $state<HTMLDivElement>();\n\tlet mBEl = $state<HTMLDivElement>();\n\tlet vsEl = $state<HTMLDivElement>();\n\tlet dieEl = $state<HTMLDivElement>();\n\tlet dmgEl = $state<HTMLDivElement>();\n\tlet hpAEl = $state<HTMLElement>();\n\tlet hpBEl = $state<HTMLElement>();\n\tlet quipEl = $state<HTMLDivElement>();\n\tlet endEl = $state<HTMLDivElement>();\n\tlet xpEl = $state<HTMLDivElement>();\n\n\t// reactive text\n\tlet bout = $state(0);\n\tlet hpA = $state(100);\n\tlet hpB = $state(100);\n\tlet log = $state('');\n\tlet running = $state(false);\n\tlet played = $state(false);\n\tlet endQuip = $state('');\n\tlet nameA = $state('');\n\tlet nameB = $state('');\n\tlet recA = $state('');\n\tlet recB = $state('');\n\tlet photoA = $state<string | null>(null);\n\tlet photoB = $state<string | null>(null);\n\n\tconst winner = $derived(script.result.winner === 'a' ? script.attacker : script.defender);\n\tconst winXp = $derived(script.result.winner === 'a' ? script.result.xp.clanA : script.result.xp.clanB);\n\tconst reduced = () => typeof matchMedia !== 'undefined' && matchMedia('(prefers-reduced-motion: reduce)').matches;\n\tconst wait = (ms: number) => new Promise((r) => setTimeout(r, reduced() ? 10 : ms));\n\tconst count = (el: HTMLElement | undefined, to: number, ms: number, suffix: string) =>\n\t\tnew Promise<void>((res) => {\n\t\t\tif (!el) return res();\n\t\t\tconst t0 = performance.now();\n\t\t\tconst step = (t: number) => {\n\t\t\t\tconst k = Math.min(1, (t - t0) / ms);\n\t\t\t\tel.innerHTML = Math.round(to * (1 - Math.pow(1 - k, 3))) + suffix;\n\t\t\t\tif (k < 1) requestAnimationFrame(step);\n\t\t\t\telse res();\n\t\t\t};\n\t\t\trequestAnimationFrame(step);\n\t\t});\n\tconst POWER = '<small>POWER</small>';\n\n\tasync function quip(t: string) {\n\t\tif (!quipEl) return;\n\t\tquipEl.classList.remove('show');\n\t\tawait wait(120);\n\t\tquipEl.textContent = t;\n\t\tquipEl.classList.add('show');\n\t}\n\tfunction shatter(photo: HTMLDivElement | undefined, svg: SVGSVGElement | undefined) {\n\t\tif (!photo || !svg) return;\n\t\tconst cx = 60 + Math.random() * 30, cy = 70 + Math.random() * 50;\n\t\tlet d = `<circle class=\"hit\" cx=\"${cx}\" cy=\"${cy}\" r=\"3\" style=\"transform-origin:${cx}px ${cy}px\"></circle>`;\n\t\tfor (let i = 0; i < 7; i++) {\n\t\t\tconst ang = (i / 7) * Math.PI * 2 + Math.random() * 0.6, len = 70 + Math.random() * 110;\n\t\t\tlet x = cx, y = cy, path = `M${cx} ${cy}`;\n\t\t\tconst segs = 4 + Math.floor(Math.random() * 3);\n\t\t\tfor (let k = 1; k <= segs; k++) {\n\t\t\t\tconst t = k / segs, jitter = (Math.random() - 0.5) * 14;\n\t\t\t\tx = cx + Math.cos(ang) * len * t + Math.cos(ang + Math.PI / 2) * jitter;\n\t\t\t\ty = cy + Math.sin(ang) * len * t + Math.sin(ang + Math.PI / 2) * jitter;\n\t\t\t\tpath += ` L${x.toFixed(1)} ${y.toFixed(1)}`;\n\t\t\t\tif (k === 2 || k === 3) {\n\t\t\t\t\tconst ba = ang + (Math.random() < 0.5 ? 0.7 : -0.7), bl = 14 + Math.random() * 26;\n\t\t\t\t\td += `<path class=\"f\" d=\"M${x.toFixed(1)} ${y.toFixed(1)} l${(Math.cos(ba) * bl).toFixed(1)} ${(Math.sin(ba) * bl).toFixed(1)}\"></path>`;\n\t\t\t\t}\n\t\t\t}\n\t\t\td += `<path d=\"${path}\"></path>`;\n\t\t}\n\t\tfor (let r = 14; r <= 42; r += 14) {\n\t\t\tconst a0 = Math.random() * Math.PI * 2, a1 = a0 + 1.2 + Math.random();\n\t\t\td += `<path class=\"f\" d=\"M${(cx + Math.cos(a0) * r).toFixed(1)} ${(cy + Math.sin(a0) * r).toFixed(1)} A${r} ${r} 0 0 1 ${(cx + Math.cos(a1) * r).toFixed(1)} ${(cy + Math.sin(a1) * r).toFixed(1)}\"></path>`;\n\t\t}\n\t\tsvg.innerHTML = d;\n\t\tsvg.classList.add('show');\n\t\tfor (let i = 0; i < 7; i++) {\n\t\t\tconst sh = document.createElement('span');\n\t\t\tsh.className = 'shard';\n\t\t\tconst w = 6 + Math.random() * 10, h = 10 + Math.random() * 18;\n\t\t\tsh.style.left = (cx / 150) * 100 + (Math.random() - 0.5) * 30 + '%';\n\t\t\tsh.style.top = (cy / 200) * 100 + (Math.random() - 0.5) * 20 + '%';\n\t\t\tsh.style.borderWidth = `0 ${w / 2}px ${h}px ${w / 2}px`;\n\t\t\tsh.style.borderColor = `transparent transparent rgba(255,255,255,${0.25 + Math.random() * 0.35}) transparent`;\n\t\t\tsh.style.setProperty('--sx', (Math.random() - 0.5) * 60 + 'px');\n\t\t\tsh.style.setProperty('--sr', (Math.random() - 0.5) * 240 + 'deg');\n\t\t\tsh.style.animationDelay = 0.15 + Math.random() * 0.25 + 's';\n\t\t\tphoto.appendChild(sh);\n\t\t\trequestAnimationFrame(() => sh.classList.add('go'));\n\t\t\tsetTimeout(() => sh.remove(), 1600);\n\t\t}\n\t}\n\tfunction dust(n: number) {\n\t\tif (!stageEl) return;\n\t\tfor (let i = 0; i < n; i++) {\n\t\t\tconst d = document.createElement('span');\n\t\t\td.className = 'dust';\n\t\t\td.style.left = 50 + (Math.random() - 0.5) * 30 + '%';\n\t\t\td.style.top = 48 + (Math.random() - 0.5) * 20 + '%';\n\t\t\td.style.setProperty('--dx', (Math.random() - 0.5) * 320 + 'px');\n\t\t\td.style.setProperty('--dy', (Math.random() - 0.8) * 260 + 'px');\n\t\t\td.style.background = Math.random() < 0.7 ? 'var(--color-violet)' : '#fff';\n\t\t\tstageEl.appendChild(d);\n\t\t\trequestAnimationFrame(() => d.classList.add('go'));\n\t\t\tsetTimeout(() => d.remove(), 1700);\n\t\t}\n\t}\n\tfunction addMod(host: HTMLDivElement | undefined, text: string, cls: string) {\n\t\tif (!host) return null;\n\t\tconst el = document.createElement('span');\n\t\tel.className = 'mod ' + cls;\n\t\tel.textContent = text;\n\t\thost.appendChild(el);\n\t\treturn el;\n\t}\n\n\tasync function play() {\n\t\tif (running || !stageEl) return;\n\t\trunning = true;\n\t\tendEl?.classList.remove('show');\n\t\tvigEl?.classList.remove('on');\n\t\tif (spotEl) spotEl.className = 'spot';\n\t\t// intro\n\t\tif (introEl && cdEl && ringEl) {\n\t\t\tintroEl.className = 'intro';\n\t\t\tcdEl.className = 'cdn';\n\t\t\tcdEl.textContent = '';\n\t\t\tawait wait(80);\n\t\t\tintroEl.classList.add('go');\n\t\t\tawait wait(2600);\n\t\t\tintroEl.classList.add('dim');\n\t\t\tfor (const t of ['3', '2', '1']) {\n\t\t\t\tcdEl.textContent = t;\n\t\t\t\tcdEl.className = 'cdn';\n\t\t\t\tringEl.className = 'ring';\n\t\t\t\tvoid cdEl.offsetWidth;\n\t\t\t\tcdEl.classList.add('pop');\n\t\t\t\tringEl.classList.add('pop');\n\t\t\t\tawait wait(700);\n\t\t\t}\n\t\t\tcdEl.textContent = 'FIGHT';\n\t\t\tcdEl.className = 'cdn fight';\n\t\t\tvoid cdEl.offsetWidth;\n\t\t\tcdEl.classList.add('pop');\n\t\t\tawait wait(750);\n\t\t\tintroEl.classList.add('hide');\n\t\t\tvigEl?.classList.add('on');\n\t\t}\n\t\thpA = 100;\n\t\thpB = 100;\n\t\tlet wa = 0, wb = 0;\n\t\tfor (let i = 0; i < script.bouts.length; i++) {\n\t\t\tconst x = script.bouts[i];\n\t\t\tbout = i;\n\t\t\t// reset\n\t\t\tif (fAEl) fAEl.className = 'fighter off-l';\n\t\t\tif (fBEl) fBEl.className = 'fighter off-r';\n\t\t\tif (mAEl) mAEl.innerHTML = '';\n\t\t\tif (mBEl) mBEl.innerHTML = '';\n\t\t\tif (dieEl) { dieEl.className = 'die'; dieEl.textContent = '?'; }\n\t\t\tif (dmgEl) dmgEl.className = 'dmg';\n\t\t\tif (spotEl) spotEl.className = 'spot';\n\t\t\tstageEl.classList.remove('zoom');\n\t\t\tfor (const [p, g, k] of [[phAEl, glassA, koA], [phBEl, glassB, koB]] as const) {\n\t\t\t\tp?.classList.remove('judging');\n\t\t\t\tk?.classList.remove('show');\n\t\t\t\tif (g) { g.classList.remove('show'); g.innerHTML = ''; }\n\t\t\t}\n\t\t\tquipEl?.classList.remove('show');\n\t\t\tnameA = nick(x.a.nickname); nameB = nick(x.b.nickname);\n\t\t\trecA = x.a.verdict ?? ''; recB = x.b.verdict ?? '';\n\t\t\tphotoA = photos[x.a.userId] ?? null; photoB = photos[x.b.userId] ?? null;\n\t\t\tif (pAEl) pAEl.innerHTML = '–' + POWER;\n\t\t\tif (pBEl) pBEl.innerHTML = '–' + POWER;\n\t\t\tlog = `the ai is judging bout ${i + 1} on: ${script.challenge}`;\n\t\t\tawait wait(500);\n\t\t\tfAEl?.classList.remove('off-l'); fBEl?.classList.remove('off-r');\n\t\t\tawait wait(700);\n\t\t\tvsEl?.classList.add('hit'); await wait(250); vsEl?.classList.remove('hit');\n\t\t\tphAEl?.classList.add('judging'); phBEl?.classList.add('judging');\n\t\t\tlog = 'judging both photos on the brief.';\n\t\t\tquip(pick('judge'));\n\t\t\tawait wait(1300);\n\t\t\tawait Promise.all([count(pAEl, x.a.base, 1400, POWER), count(pBEl, x.b.base, 1400, POWER)]);\n\t\t\t// tactics (the script already applied them: base → power)\n\t\t\tfor (const [f, host, el] of [[x.a, mAEl, pAEl], [x.b, mBEl, pBEl]] as const) {\n\t\t\t\tif (f.card) {\n\t\t\t\t\tconst m = addMod(host, CARD_NAME[f.card] ?? f.card, f.card === 'all-in' ? 'y' : 'v');\n\t\t\t\t\tawait wait(50); m?.classList.add('show');\n\t\t\t\t}\n\t\t\t\tif (f.power !== f.base) await count(el, f.power, 500, POWER);\n\t\t\t\tif (f.card) await wait(300);\n\t\t\t}\n\t\t\tconst aw = x.winner === 'a';\n\t\t\tconst wn = aw ? nameA : nameB, ln = aw ? nameB : nameA;\n\t\t\tlog = `<b>${wn}</b> ahead by ${x.margin}. rolling for a crit.`;\n\t\t\tquip(pick('lead', wn, ln));\n\t\t\tfor (let k = 0; k < 12; k++) { if (dieEl) dieEl.textContent = String(Math.floor(Math.random() * 100)); await wait(50 + k * 12); }\n\t\t\tif (dieEl) dieEl.textContent = String(x.roll);\n\t\t\tif (x.crit) {\n\t\t\t\tstageEl.classList.add('zoom'); dieEl?.classList.add('crit');\n\t\t\t\tif (flashEl) { flashEl.classList.remove('on'); void flashEl.offsetWidth; flashEl.classList.add('on'); }\n\t\t\t\tcritwordEl?.classList.add('show');\n\t\t\t\tlog = '<b>critical.</b> the margin counts double.'; quip(pick('crit'));\n\t\t\t\tawait wait(1100); critwordEl?.classList.remove('show'); stageEl.classList.remove('zoom');\n\t\t\t} else if (x.blocked) { log = 'a crit, blocked by <b>shield</b>.'; quip(pick('blocked')); }\n\t\t\telse { log = 'no crit.'; quip(pick('nocrit')); }\n\t\t\tawait wait(700);\n\t\t\tif (dmgEl) { dmgEl.textContent = '−' + x.damage; dmgEl.classList.add('show'); }\n\t\t\tspotEl?.classList.add(aw ? 'l' : 'r'); spotEl?.classList.add('on');\n\t\t\tconst bar = aw ? hpBEl : hpAEl;\n\t\t\tif (bar) { bar.classList.remove('hit'); void bar.offsetWidth; bar.classList.add('hit'); }\n\t\t\thpA = x.hpA; hpB = x.hpB;\n\t\t\tif (aw) { wa++; fBEl?.classList.add('lost'); fAEl?.classList.add('won'); shatter(phBEl, glassB); setTimeout(() => koB?.classList.add('show'), 380); }\n\t\t\telse { wb++; fAEl?.classList.add('lost'); fBEl?.classList.add('won'); shatter(phAEl, glassA); setTimeout(() => koA?.classList.add('show'), 380); }\n\t\t\tlog = `<b>${wn}</b> takes bout ${i + 1}. ${wa}–${wb}.`;\n\t\t\tawait wait(600); quip(pick('ko', wn, ln));\n\t\t\tawait wait(1700);\n\t\t}\n\t\tendQuip = pick('end');\n\t\tendEl?.classList.add('show');\n\t\tdust(26); setTimeout(() => dust(18), 500);\n\t\tawait wait(600);\n\t\tawait count(xpEl, winXp, 1600, '<small>CLAN XP</small>');\n\t\trunning = false;\n\t\tplayed = true;\n\t}\n\n\tfunction jumpToEnd() {\n\t\t// reduced motion / no-js-timeline fallback: land on the finale\n\t\tintroEl?.classList.add('hide');\n\t\thpA = script.result.hpA; hpB = script.result.hpB;\n\t\tendQuip = pick('end');\n\t\tif (xpEl) xpEl.innerHTML = winXp + '<small>CLAN XP</small>';\n\t\tendEl?.classList.add('show');\n\t\tplayed = true;\n\t}\n\n\tonMount(() => {\n\t\tif (!autoplay) return;\n\t\tif (reduced()) { jumpToEnd(); return; }\n\t\tconst t = setTimeout(play, 900);\n\t\treturn () => clearTimeout(t);\n\t});\n</script>\n\n<div class=\"wbp\">\n<div class=\"stage\" bind:this={stageEl}>\n\t<div class=\"vig\" bind:this={vigEl}></div>\n\t<div class=\"spot\" bind:this={spotEl}></div>\n\t<div class=\"flash\" bind:this={flashEl}></div>\n\t<div class=\"critword\" bind:this={critwordEl}>CRITICAL</div>\n\n\t<!-- splash -->\n\t<div class=\"intro\" bind:this={introEl}>\n\t\t<div class=\"half l\"></div><div class=\"half r\"></div><div class=\"divider\"></div>\n\t\t<div class=\"team l\">\n\t\t\t<div class=\"tag\">#{script.attacker.tag}</div>\n\t\t\t<div class=\"rec\">lvl {script.attacker.roster.length ? '' : ''}{script.attacker.name}</div>\n\t\t\t<div class=\"stack\">\n\t\t\t\t{#each script.attacker.roster as r, i (r.userId)}\n\t\t\t\t\t<div class=\"av\" style=\"transition-delay:{0.35 + i * 0.15}s;{getAvatarUrl(r.avatarPath) ? `background-image:url(${getAvatarUrl(r.avatarPath)});background-size:cover;` : ''}\"></div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t\t<div class=\"names\">{#each script.attacker.roster as r, i (r.userId)}{#if i > 0} · {/if}{#if i === 0}<b>{r.nickname}</b>{:else}{r.nickname}{/if}{/each}</div>\n\t\t</div>\n\t\t<div class=\"team r\">\n\t\t\t<div class=\"tag\">#{script.defender.tag}</div>\n\t\t\t<div class=\"rec\">{script.defender.name}</div>\n\t\t\t<div class=\"stack\">\n\t\t\t\t{#each script.defender.roster as r, i (r.userId)}\n\t\t\t\t\t<div class=\"av\" style=\"transition-delay:{0.35 + i * 0.15}s;{getAvatarUrl(r.avatarPath) ? `background-image:url(${getAvatarUrl(r.avatarPath)});background-size:cover;` : ''}\"></div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t\t<div class=\"names\">{#each script.defender.roster as r, i (r.userId)}{#if i > 0} · {/if}{#if i === 0}<b>{r.nickname}</b>{:else}{r.nickname}{/if}{/each}</div>\n\t\t</div>\n\t\t<div class=\"center\"><div class=\"vsline\"></div><div class=\"word\">WAR</div><div class=\"vsline\"></div></div>\n\t\t<div class=\"cdwrap\"><div class=\"ring\" bind:this={ringEl}></div><div class=\"cdn\" bind:this={cdEl}></div></div>\n\t\t<div class=\"band\">\n\t\t\t<div class=\"brief\">the brief · <b>{script.challenge}</b></div>\n\t\t\t<div class=\"pills\"><span class=\"pill\">{script.bouts.length} bouts</span><span class=\"pill\">ai-judged</span>{#if stake > 0}<span class=\"pill y\">⛁ {stake * 2} on the line</span>{/if}</div>\n\t\t</div>\n\t</div>\n\n\t<!-- top: clans + hp -->\n\t<div class=\"top\">\n\t\t<div class=\"clan\">\n\t\t\t<div class=\"em\" style={getClanAvatarUrl(script.attacker.avatarPath) ? `background-image:url(${getClanAvatarUrl(script.attacker.avatarPath)});background-size:cover;color:transparent` : ''}>{script.attacker.tag.slice(0, 2).toUpperCase()}</div>\n\t\t\t<div><div class=\"cn\">#{script.attacker.tag}</div><div class=\"hp\" bind:this={hpAEl}><i style=\"width:{hpA}%\"></i></div><div class=\"hpn\">{hpA}</div></div>\n\t\t</div>\n\t\t<div class=\"round\">bout {bout + 1} of {script.bouts.length}</div>\n\t\t<div class=\"clan r\">\n\t\t\t<div class=\"em b\" style={getClanAvatarUrl(script.defender.avatarPath) ? `background-image:url(${getClanAvatarUrl(script.defender.avatarPath)});background-size:cover;color:transparent` : ''}>{script.defender.tag.slice(0, 2).toUpperCase()}</div>\n\t\t\t<div><div class=\"cn\">#{script.defender.tag}</div><div class=\"hp\" bind:this={hpBEl}><i style=\"width:{hpB}%\"></i></div><div class=\"hpn\">{hpB}</div></div>\n\t\t</div>\n\t</div>\n\n\t<!-- arena -->\n\t<div class=\"arena\">\n\t\t<div class=\"fighter off-l\" bind:this={fAEl}>\n\t\t\t<div class=\"photo\" bind:this={phAEl} style={photoA ? `background-image:url(${photoA});background-size:cover;background-position:center` : ''}>\n\t\t\t\t<div class=\"scan\"></div>\n\t\t\t\t<svg class=\"glass\" viewBox=\"0 0 150 200\" bind:this={glassA}></svg>\n\t\t\t\t<div class=\"ko\" bind:this={koA}>KO</div>\n\t\t\t</div>\n\t\t\t<div class=\"fn\">{nameA}</div><div class=\"fr\">{recA}</div>\n\t\t\t<div class=\"power\" bind:this={pAEl}>–<small>POWER</small></div>\n\t\t\t<div class=\"mods\" bind:this={mAEl}></div>\n\t\t</div>\n\t\t<div class=\"center\">\n\t\t\t<div class=\"vs\" bind:this={vsEl}>VS</div>\n\t\t\t<div class=\"die\" bind:this={dieEl}>?</div><div class=\"dl\">crit roll</div>\n\t\t\t<div class=\"dmg\" bind:this={dmgEl}></div>\n\t\t</div>\n\t\t<div class=\"fighter off-r\" bind:this={fBEl}>\n\t\t\t<div class=\"photo b\" bind:this={phBEl} style={photoB ? `background-image:url(${photoB});background-size:cover;background-position:center` : ''}>\n\t\t\t\t<div class=\"scan\"></div>\n\t\t\t\t<svg class=\"glass\" viewBox=\"0 0 150 200\" bind:this={glassB}></svg>\n\t\t\t\t<div class=\"ko\" bind:this={koB}>KO</div>\n\t\t\t</div>\n\t\t\t<div class=\"fn\">{nameB}</div><div class=\"fr\">{recB}</div>\n\t\t\t<div class=\"power\" bind:this={pBEl}>–<small>POWER</small></div>\n\t\t\t<div class=\"mods\" bind:this={mBEl}></div>\n\t\t</div>\n\t</div>\n\n\t<div class=\"quip\" bind:this={quipEl}></div>\n\t<div class=\"log\">{@html log}</div>\n\n\t<!-- finale -->\n\t<div class=\"end\" bind:this={endEl}>\n\t\t<div class=\"em\" class:b={script.result.winner === 'b'} style={getClanAvatarUrl(winner.avatarPath) ? `background-image:url(${getClanAvatarUrl(winner.avatarPath)});background-size:cover;color:transparent` : ''}>{winner.tag.slice(0, 2).toUpperCase()}</div>\n\t\t<div class=\"big\">#{winner.tag.toLowerCase()} <span>took it.</span></div>\n\t\t<div class=\"sub\">{script.result.boutsA}–{script.result.boutsB}{#if stake > 0} · ⛁ {stake * 2} to the treasury{/if}{#if endQuip} · {endQuip}{/if}</div>\n\t\t{#if script.result.mvp}\n\t\t\t<div class=\"mvp\">\n\t\t\t\t<div class=\"photo\" style={photos[script.result.mvp.userId] ? `background-image:url(${photos[script.result.mvp.userId]});background-size:cover;background-position:center` : ''}></div>\n\t\t\t\t<div><div class=\"t\">most valuable fighter</div><div class=\"nm\">{nick(script.result.mvp.nickname)}</div><div class=\"sub\">biggest margin of the war</div></div>\n\t\t\t\t<div class=\"xp\" bind:this={xpEl} style=\"margin-left:auto\">0<small>CLAN XP</small></div>\n\t\t\t</div>\n\t\t{/if}\n\t\t<button type=\"button\" class=\"btn g\" style=\"margin-top:8px\" onclick={play} disabled={running}>watch again</button>\n\t</div>\n</div>\n\n{#if !autoplay && !played}\n\t<div class=\"ctrl\"><button type=\"button\" class=\"btn\" onclick={play} disabled={running}>play the fight</button></div>\n{/if}\n</div>\n\n<style>\n\t/* ported 1:1 from the approved mock; tokens mapped to the site's */\n\t.wbp :global(.stage){--surface:var(--color-surface);--surface-2:var(--color-surface-2);--line:#232323;--text:var(--color-text);--muted:#8a8a8a;--dim:#4a4a4a;--violet:var(--color-violet);--yellow:var(--color-yellow);--coral:var(--color-coral);--display:var(--font-display);\n\t\tbackground:var(--surface);border:1px solid var(--line);border-radius:26px;padding:28px;display:flex;flex-direction:column;gap:22px;position:relative;overflow:hidden;transition:transform .6s cubic-bezier(.2,.8,.2,1);-webkit-font-smoothing:antialiased}\n\t.wbp :global(.stage.zoom){transform:scale(1.02)}\n\t.wbp :global(.top){display:flex;align-items:center;justify-content:space-between;gap:10px}\n\t.wbp :global(.clan){display:flex;align-items:center;gap:12px;min-width:0}\n\t.wbp :global(.clan.r){flex-direction:row-reverse;text-align:right}\n\t.wbp :global(.em){width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:13px;background:#221c3c;color:#d6ccff;flex-shrink:0}\n\t.wbp :global(.em.b){background:#2e1c1c;color:#ffd6d6}\n\t.wbp :global(.cn){font-family:var(--display);font-weight:700;font-size:16px}\n\t.wbp :global(.hp){width:200px;max-width:32vw;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:6px;position:relative}\n\t.wbp :global(.hp i){display:block;height:100%;width:100%;background:var(--violet);transition:width .9s cubic-bezier(.2,.8,.2,1)}\n\t.wbp :global(.clan.r .hp i){background:var(--coral)}\n\t.wbp :global(.clan.r .hp){margin-left:auto}\n\t.wbp :global(.hp.hit){animation:hpshake .35s}\n\t@keyframes -global-hpshake{0%,100%{transform:translateX(0)}30%{transform:translateX(-3px)}60%{transform:translateX(3px)}}\n\t.wbp :global(.hpn){font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}\n\t.wbp :global(.round){font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center;min-height:16px;white-space:nowrap}\n\t.wbp :global(.arena){display:grid;grid-template-columns:1fr 120px 1fr;gap:16px;align-items:center;min-height:300px}\n\t.wbp :global(.fighter){display:flex;flex-direction:column;align-items:center;gap:12px;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .5s,filter .6s;min-width:0}\n\t.wbp :global(.fighter.off-l){transform:translateX(-60px);opacity:0}\n\t.wbp :global(.fighter.off-r){transform:translateX(60px);opacity:0}\n\t.wbp :global(.fighter.lost){filter:grayscale(1) brightness(.45);transform:scale(.96)}\n\t.wbp :global(.fighter.won){transform:scale(1.03)}\n\t.wbp :global(.photo){width:150px;height:200px;border-radius:18px;background:linear-gradient(180deg,#232323,#151515);position:relative;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.45)}\n\t.wbp :global(.fn){font-family:var(--display);font-weight:600;font-size:15px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\t.wbp :global(.fr){font-size:11px;color:var(--muted);margin-top:-8px;text-align:center;max-width:170px;line-height:1.3}\n\t.wbp :global(.power){font-family:var(--display);font-weight:700;font-size:44px;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums;min-height:44px;text-align:center}\n\t.wbp :global(.power small){display:block;font-size:10px;letter-spacing:.14em;color:var(--muted);font-weight:600;margin-top:4px}\n\t.wbp :global(.mods){display:flex;flex-direction:column;align-items:center;gap:6px;min-height:52px}\n\t.wbp :global(.mods .mod){font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}\n\t.wbp :global(.mods .mod.show){opacity:1;transform:none}\n\t.wbp :global(.mods .mod.v){color:var(--violet)}\n\t.wbp :global(.mods .mod.y){color:var(--yellow)}\n\t.wbp :global(.center){display:flex;flex-direction:column;align-items:center;gap:10px}\n\t.wbp :global(.vs){font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.24em;color:var(--dim);transition:color .3s,transform .3s}\n\t.wbp :global(.vs.hit){color:var(--text);transform:scale(1.15)}\n\t.wbp :global(.die){width:64px;height:64px;border-radius:18px;background:var(--surface-2);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:22px;font-variant-numeric:tabular-nums;color:var(--muted);transition:background .3s,color .3s}\n\t.wbp :global(.die.crit){background:var(--yellow);color:#000}\n\t.wbp :global(.dl){font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-weight:600}\n\t.wbp :global(.dmg){font-family:var(--display);font-weight:700;font-size:22px;color:var(--coral);opacity:0;transform:translateY(0);transition:opacity .4s,transform .9s;letter-spacing:-.02em;min-height:26px}\n\t.wbp :global(.dmg.show){opacity:1;transform:translateY(-16px)}\n\t.wbp :global(.log){text-align:center;color:var(--muted);font-size:14px;min-height:20px}\n\t.wbp :global(.log b){color:var(--text);font-weight:600}\n\t.wbp :global(.quip){text-align:center;font-family:var(--display);font-weight:600;font-size:15px;color:var(--text);min-height:20px;opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s}\n\t.wbp :global(.quip.show){opacity:1;transform:none}\n\t.wbp :global(.vig){position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 45%,rgba(0,0,0,.55) 100%);opacity:0;transition:opacity .8s}\n\t.wbp :global(.vig.on){opacity:1}\n\t.wbp :global(.spot){position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s,background .6s}\n\t.wbp :global(.spot.l){background:radial-gradient(ellipse at 22% 50%,rgba(255,255,255,.06),transparent 45%)}\n\t.wbp :global(.spot.r){background:radial-gradient(ellipse at 78% 50%,rgba(255,255,255,.06),transparent 45%)}\n\t.wbp :global(.spot.on){opacity:1}\n\t.wbp :global(.photo .scan){position:absolute;left:0;right:0;top:-12%;height:12%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.28),transparent);opacity:0}\n\t.wbp :global(.photo.judging .scan){opacity:1;animation:scan 1.3s ease-in-out 1}\n\t@keyframes -global-scan{0%{top:-12%}100%{top:100%}}\n\t.wbp :global(.photo .ko){position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:44px;letter-spacing:.06em;color:#fff;transform:rotate(-12deg) scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1);text-shadow:0 8px 24px rgba(0,0,0,.8);z-index:2}\n\t.wbp :global(.photo .ko.show){transform:rotate(-12deg) scale(1)}\n\t.wbp :global(.photo .glass){position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:0}\n\t.wbp :global(.photo .glass.show){opacity:1}\n\t.wbp :global(.photo .glass path){fill:none;stroke:rgba(255,255,255,.85);stroke-width:1.2;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400}\n\t.wbp :global(.photo .glass path.f){stroke:rgba(255,255,255,.35);stroke-width:.7}\n\t.wbp :global(.photo .glass.show path){animation:crack .35s ease-out forwards}\n\t.wbp :global(.wbp .photo .glass.show path:nth-child(2)){animation-delay:.03s}\n\t.wbp :global(.photo .glass.show path:nth-child(3)){animation-delay:.06s}\n\t.wbp :global(.photo .glass.show path:nth-child(4)){animation-delay:.09s}\n\t.wbp :global(.photo .glass.show path:nth-child(5)){animation-delay:.12s}\n\t.wbp :global(.photo .glass.show path:nth-child(6)){animation-delay:.15s}\n\t.wbp :global(.photo .glass.show path:nth-child(7)){animation-delay:.18s}\n\t.wbp :global(.photo .glass.show path:nth-child(8)){animation-delay:.2s}\n\t.wbp :global(.photo .glass.show path:nth-child(9)){animation-delay:.22s}\n\t.wbp :global(.photo .glass.show path:nth-child(10)){animation-delay:.24s}\n\t.wbp :global(.photo .glass.show path:nth-child(11)){animation-delay:.26s}\n\t.wbp :global(.photo .glass.show path:nth-child(12)){animation-delay:.28s}\n\t@keyframes -global-crack{to{stroke-dashoffset:0}}\n\t.wbp :global(.photo .glass .hit){fill:rgba(255,255,255,.9);stroke:none;opacity:0}\n\t.wbp :global(.photo .glass.show .hit){animation:hitpop .4s ease-out forwards}\n\t@keyframes -global-hitpop{0%{opacity:0;transform:scale(.2)}30%{opacity:1}100%{opacity:.5;transform:scale(1)}}\n\t.wbp :global(.photo .shard){position:absolute;width:0;height:0;border-style:solid;opacity:0;z-index:3;pointer-events:none}\n\t.wbp :global(.photo .shard.go){animation:shard 1.1s cubic-bezier(.3,0,.8,.4) forwards}\n\t@keyframes -global-shard{0%{opacity:.9;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--sx),140px) rotate(var(--sr))}}\n\t.wbp :global(.critword){position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);font-family:var(--display);font-weight:700;font-size:64px;letter-spacing:-.04em;color:var(--yellow);opacity:0;transition:opacity .25s,transform .5s cubic-bezier(.2,.8,.2,1);pointer-events:none;z-index:5;text-shadow:0 10px 40px rgba(0,0,0,.8)}\n\t.wbp :global(.critword.show){opacity:1;transform:translate(-50%,-50%) scale(1)}\n\t.wbp :global(.flash){position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:4}\n\t.wbp :global(.flash.on){animation:flash .45s ease-out}\n\t@keyframes -global-flash{0%{opacity:.18}100%{opacity:0}}\n\t/* intro */\n\t.wbp :global(.intro){position:absolute;inset:0;z-index:6;overflow:hidden;background:#0c0c0c;transition:opacity .8s}\n\t.wbp :global(.intro.hide){opacity:0;pointer-events:none}\n\t.wbp :global(.intro .half){position:absolute;top:0;bottom:0;width:58%;transition:transform 1s cubic-bezier(.2,.8,.2,1),opacity .8s}\n\t.wbp :global(.intro .half.l){left:0;background:#0c0c0c;transform:translateX(-30px);opacity:0}\n\t.wbp :global(.intro .half.r){right:0;background:#0c0c0c;transform:translateX(30px);opacity:0}\n\t.wbp :global(.intro .divider){position:absolute;left:50%;top:12%;bottom:22%;width:1px;background:#262626}\n\t.wbp :global(.intro.go .half){transform:none;opacity:1}\n\t.wbp :global(.intro .team){position:absolute;top:50%;transform:translateY(-58%);display:flex;flex-direction:column;gap:14px;width:34%}\n\t.wbp :global(.intro .team.l){left:6%;align-items:flex-start}\n\t.wbp :global(.intro .team.r){right:6%;align-items:flex-end;text-align:right}\n\t.wbp :global(.intro .tag){font-family:var(--display);font-weight:700;font-size:40px;letter-spacing:-.04em;line-height:1;opacity:0;transform:translateY(10px);transition:opacity .5s .3s,transform .6s .3s;max-width:100%;overflow:hidden;text-overflow:ellipsis}\n\t.wbp :global(.intro .team.l .tag){color:var(--violet)}.intro .team.r .tag{color:var(--coral)}\n\t.wbp :global(.intro.go .tag){opacity:1;transform:none}\n\t.wbp :global(.intro .rec){font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-family:var(--display);font-weight:600;opacity:0;transition:opacity .5s .5s}\n\t.wbp :global(.intro.go .rec){opacity:1}\n\t.wbp :global(.intro .stack){display:flex}\n\t.wbp :global(.intro .team.r .stack){flex-direction:row-reverse}\n\t.wbp :global(.intro .av){width:76px;height:76px;border-radius:50%;border:3px solid #0c0c0c;box-shadow:0 0 0 1px #262626;background:#2a2a2a;opacity:0;transform:translateY(16px) scale(.9);transition:opacity .45s,transform .6s cubic-bezier(.2,.8,.2,1);flex-shrink:0}\n\t.wbp :global(.intro .av + .av){margin-left:-22px}\n\t.wbp :global(.intro .team.r .av + .av){margin-left:0;margin-right:-22px}\n\t.wbp :global(.intro.go .av){opacity:1;transform:none}\n\t.wbp :global(.intro .names){font-size:12px;color:var(--muted);opacity:0;transition:opacity .5s 1s;max-width:100%}\n\t.wbp :global(.intro.go .names){opacity:1}\n\t.wbp :global(.intro .names b){color:var(--text);font-weight:600}\n\t.wbp :global(.intro .center){position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2}\n\t.wbp :global(.intro .word){font-family:var(--display);font-weight:700;font-size:96px;letter-spacing:-.07em;line-height:1;opacity:0;transform:scale(.85);transition:opacity .4s .7s,transform .7s .7s cubic-bezier(.2,.8,.2,1);text-shadow:0 20px 60px rgba(0,0,0,.7)}\n\t.wbp :global(.intro.go .word){opacity:1;transform:none}\n\t.wbp :global(.intro .vsline){width:1px;height:70px;background:#262626;opacity:0;transition:opacity .6s 1s}\n\t.wbp :global(.intro.go .vsline){opacity:1}\n\t.wbp :global(.intro .cdwrap){position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);z-index:3;display:grid;place-items:center;pointer-events:none}\n\t.wbp :global(.intro .cdn){font-family:var(--display);font-weight:700;font-size:150px;letter-spacing:-.08em;line-height:1;color:#fff;opacity:0;transform:scale(1.6);text-shadow:0 30px 80px rgba(0,0,0,.8)}\n\t.wbp :global(.intro .cdn.pop){animation:cdpop .62s cubic-bezier(.2,.8,.2,1) forwards}\n\t@keyframes -global-cdpop{0%{opacity:0;transform:scale(1.6)}25%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(.96)}100%{opacity:0;transform:scale(.9)}}\n\t.wbp :global(.intro .ring){position:absolute;width:190px;height:190px;border-radius:50%;border:2px solid rgba(255,255,255,.5);opacity:0}\n\t.wbp :global(.intro .ring.pop){animation:ringpop .62s ease-out forwards}\n\t@keyframes -global-ringpop{0%{opacity:.7;transform:scale(.5)}100%{opacity:0;transform:scale(1.5)}}\n\t.wbp :global(.intro .cdn.fight){font-size:120px;letter-spacing:-.06em;color:var(--yellow)}\n\t.wbp :global(.intro .band){position:absolute;left:0;right:0;bottom:0;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #262626;background:#0c0c0c;opacity:0;transform:translateY(10px);transition:opacity .6s 1.3s,transform .6s 1.3s;z-index:2;flex-wrap:wrap}\n\t.wbp :global(.intro.go .band){opacity:1;transform:none}\n\t.wbp :global(.intro .brief){font-size:15px;color:var(--muted)}\n\t.wbp :global(.intro .brief b){color:var(--text);font-weight:600;font-family:var(--display);font-size:17px}\n\t.wbp :global(.intro .pills){display:flex;gap:8px;flex-wrap:wrap}\n\t.wbp :global(.intro .pill){font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:#1a1a1a;border:1px solid #262626;color:var(--muted)}\n\t.wbp :global(.intro .pill.y){background:var(--yellow);color:#000;border-color:transparent}\n\t.wbp :global(.intro.dim .team), .wbp :global(.intro.dim .center), .wbp :global(.intro.dim .band){opacity:.25;transition:opacity .4s}\n\t/* finale */\n\t.wbp :global(.end){position:absolute;inset:0;background:rgba(12,12,12,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;opacity:0;pointer-events:none;transition:opacity .6s;z-index:7;padding:20px;text-align:center}\n\t.wbp :global(.end.show){opacity:1;pointer-events:auto}\n\t.wbp :global(.end .big){font-family:var(--display);font-weight:700;font-size:48px;letter-spacing:-.04em;line-height:1;transform:scale(.9);transition:transform .7s cubic-bezier(.2,.8,.2,1)}\n\t.wbp :global(.end.show .big){transform:none}\n\t.wbp :global(.end .big span){color:var(--violet)}\n\t.wbp :global(.end .sub){color:var(--muted);font-size:13px}\n\t.wbp :global(.end .em){position:absolute;top:26px;transform:scale(.6);opacity:0;transition:transform .8s .2s,opacity .6s .2s}\n\t.wbp :global(.end.show .em){transform:scale(1);opacity:1}\n\t.wbp :global(.end .mvp){display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 18px;margin-top:10px;transform:translateY(16px);opacity:0;transition:transform .6s .4s,opacity .6s .4s;text-align:left;max-width:100%}\n\t.wbp :global(.end.show .mvp){transform:none;opacity:1}\n\t.wbp :global(.end .mvp .photo){width:56px;height:74px;border-radius:12px;box-shadow:none;flex-shrink:0}\n\t.wbp :global(.end .mvp .t){font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}\n\t.wbp :global(.end .mvp .nm){font-family:var(--display);font-weight:700;font-size:18px}\n\t.wbp :global(.end .xp){font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}\n\t.wbp :global(.end .xp small){font-size:11px;color:var(--muted);letter-spacing:.12em;margin-left:6px}\n\t.wbp :global(.stage .dust){position:absolute;width:4px;height:4px;border-radius:50%;background:var(--violet);opacity:0;pointer-events:none;z-index:8}\n\t.wbp :global(.stage .dust.go){animation:dust 1.6s ease-out forwards}\n\t@keyframes -global-dust{0%{opacity:.9;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}\n\t.wbp :global(.btn){padding:12px 20px;border-radius:12px;border:none;font-family:var(--display);font-weight:600;font-size:14px;background:var(--violet);color:#fff;cursor:pointer}\n\t.wbp :global(.btn.g){background:var(--surface-2);color:var(--text)}\n\t.wbp :global(.btn:disabled){opacity:.5;cursor:default}\n\t.wbp :global(.ctrl){display:flex;justify-content:center;margin-top:12px}\n\t@media (prefers-reduced-motion:reduce){.wbp :global(.stage *){transition:none!important;animation:none!important}}\n\t@media (max-width:640px){\n\t\t.wbp :global(.stage){padding:18px;border-radius:20px}\n\t\t.wbp :global(.arena){grid-template-columns:1fr 72px 1fr;gap:8px;min-height:240px}\n\t\t.wbp :global(.photo){width:110px;height:146px}\n\t\t.wbp :global(.power){font-size:34px}\n\t\t.wbp :global(.hp){width:120px}\n\t\t.wbp :global(.cn){font-size:13px}\n\t\t.wbp :global(.intro .tag){font-size:24px}\n\t\t.wbp :global(.intro .av){width:48px;height:48px}\n\t\t.wbp :global(.intro .av + .av){margin-left:-16px}\n\t\t.wbp :global(.intro .team.r .av + .av){margin-right:-16px}\n\t\t.wbp :global(.intro .word){font-size:56px}\n\t\t.wbp :global(.intro .cdn){font-size:100px}\n\t\t.wbp :global(.intro .cdn.fight){font-size:72px}\n\t\t.wbp :global(.intro .names){display:none}\n\t\t.wbp :global(.intro .band){padding:12px 16px}\n\t\t.wbp :global(.end .big){font-size:32px}\n\t}\n</style>\n","<script lang=\"ts\">\n\t/** Floating bottom action bar for the war page: a glass strip with a title,\n\t *  a line of context and one hot button. Same placement rules as the duel\n\t *  dock: lifted above the mobile bottom nav, floored on desktop. */\n\timport { fly } from 'svelte/transition';\n\timport { cubicOut } from 'svelte/easing';\n\n\tlet {\n\t\ttitle,\n\t\tsub,\n\t\tcta,\n\t\tbusy = false,\n\t\tdisabled = false,\n\t\terror = '',\n\t\tonclick\n\t}: {\n\t\ttitle: string;\n\t\tsub?: string;\n\t\tcta: string;\n\t\tbusy?: boolean;\n\t\tdisabled?: boolean;\n\t\terror?: string;\n\t\tonclick: () => void;\n\t} = $props();\n</script>\n\n<div class=\"dock\" transition:fly={{ y: 24, duration: 320, easing: cubicOut }}>\n\t<div class=\"bar\">\n\t\t<div class=\"txt\">\n\t\t\t<div class=\"t\">{title}</div>\n\t\t\t{#if error}<div class=\"s err\">{error}</div>{:else if sub}<div class=\"s\">{sub}</div>{/if}\n\t\t</div>\n\t\t<button type=\"button\" class=\"fire\" class:busy disabled={busy || disabled} {onclick}>\n\t\t\t<span class=\"flames\" aria-hidden=\"true\"><i></i><i></i><i></i><i></i></span>\n\t\t\t<span class=\"heat\" aria-hidden=\"true\"></span>\n\t\t\t<span class=\"label\">{busy ? 'sending…' : cta}</span>\n\t\t</button>\n\t</div>\n</div>\n\n<style>\n\t.dock {\n\t\tposition: fixed; left: 50%; transform: translateX(-50%); z-index: 55;\n\t\twidth: min(560px, calc(100vw - 32px));\n\t\tbottom: calc(env(safe-area-inset-bottom, 0px) + 84px);\n\t}\n\t@media (min-width: 768px) { .dock { bottom: 18px; } }\n\n\t.bar {\n\t\tdisplay: flex; align-items: center; justify-content: space-between; gap: 14px;\n\t\tpadding: 10px 10px 10px 16px;\n\t\tbackground: rgba(15, 15, 15, 0.82);\n\t\tbackdrop-filter: blur(24px) saturate(1.5); -webkit-backdrop-filter: blur(24px) saturate(1.5);\n\t\tborder: 1px solid var(--color-border); border-radius: 18px;\n\t\tbox-shadow: 0 30px 60px -10px rgba(0, 0, 0, 0.7);\n\t}\n\t.txt { min-width: 0; }\n\t.t { font-family: var(--font-display); font-weight: 700; font-size: 15px; letter-spacing: -0.01em; line-height: 1.15; }\n\t.s { font-size: 12px; color: var(--color-muted); margin-top: 2px; line-height: 1.35; }\n\t.s.err { color: var(--color-coral); }\n\n\t/* ── the hot button: a liquid fire that lives inside the fill ── */\n\t.fire {\n\t\tposition: relative; flex-shrink: 0; overflow: hidden; isolation: isolate;\n\t\theight: 46px; padding: 0 20px; border: none; border-radius: 13px;\n\t\tbackground: var(--color-violet-dark); color: #fff; cursor: pointer;\n\t\tfont-family: var(--font-display); font-weight: 800; font-size: 14px; letter-spacing: 0.01em; white-space: nowrap;\n\t\tbox-shadow: 0 10px 24px -8px rgba(0, 0, 0, 0.7);\n\t\ttransition: transform .18s cubic-bezier(.2,.8,.2,1);\n\t\tanimation: breathe 2.6s ease-in-out infinite;\n\t}\n\t.fire:hover:not(:disabled) { transform: translateY(-1px); }\n\t.fire:active:not(:disabled) { transform: scale(0.98); }\n\t.fire:disabled { cursor: default; animation: none; }\n\t.fire.busy .flames { opacity: 0.4; }\n\t.label { position: relative; z-index: 3; }\n\t/* four blurred tongues drifting upward, each on its own clock */\n\t.flames { position: absolute; inset: -40% -10% -10%; z-index: 1; pointer-events: none; filter: blur(7px); }\n\t.flames i {\n\t\tposition: absolute; bottom: -20%; width: 46%; height: 120%; border-radius: 50% 50% 40% 40%;\n\t\tbackground: radial-gradient(ellipse at 50% 85%, #fff4b0 0%, var(--color-yellow) 14%, var(--color-coral) 42%, var(--color-violet) 68%, transparent 78%);\n\t\topacity: 0.95; mix-blend-mode: screen; transform-origin: 50% 100%;\n\t\tanimation: lick 2.2s ease-in-out infinite;\n\t}\n\t.flames i:nth-child(1) { left: -6%; animation-duration: 2.4s; }\n\t.flames i:nth-child(2) { left: 22%; animation-duration: 1.9s; animation-delay: -0.7s; }\n\t.flames i:nth-child(3) { left: 48%; animation-duration: 2.7s; animation-delay: -1.3s; }\n\t.flames i:nth-child(4) { left: 70%; animation-duration: 2.1s; animation-delay: -0.4s; }\n\t@keyframes lick {\n\t\t0%   { transform: translateY(22%) scale(0.9, 0.9) rotate(-4deg); }\n\t\t35%  { transform: translateY(-10%) scale(1.1, 1.15) rotate(3deg); }\n\t\t70%  { transform: translateY(6%) scale(0.95, 1) rotate(-2deg); }\n\t\t100% { transform: translateY(22%) scale(0.9, 0.9) rotate(-4deg); }\n\t}\n\t/* a soft top-light so the text stays legible over the fire */\n\t.heat { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.18) 100%); }\n\t@keyframes breathe { 0%, 100% { box-shadow: 0 10px 24px -8px rgba(0,0,0,.7); } 50% { box-shadow: 0 14px 30px -8px rgba(0,0,0,.8); } }\n\t@media (prefers-reduced-motion: reduce) { .fire, .flames i { animation: none; } }\n</style>\n","<script lang=\"ts\">\n\t/** Read-only view of one side's fighters. Locked: the lineup in bout order as\n\t *  photo tiles (own side) or avatars (the other side), the bench underneath.\n\t *  Not locked yet: everyone who applied, as an avatar row. */\n\timport { getAvatarUrl } from '$lib/avatar';\n\timport DuelAvatar from '$lib/components/duel/DuelAvatar.svelte';\n\timport { WAR_CARDS, type ClanWarView } from '$lib/types/clan-war';\n\n\ttype Applicant = ClanWarView['applicants']['a'][number];\n\n\tlet {\n\t\tapplicants,\n\t\tlocked,\n\t\ttag,\n\t\tteamSize = 4,\n\t\tnote = ''\n\t}: {\n\t\tapplicants: Applicant[];\n\t\tlocked: boolean;\n\t\ttag: string;\n\t\tteamSize?: number;\n\t\t/** one muted line under the label */\n\t\tnote?: string;\n\t} = $props();\n\n\tconst picked = $derived(\n\t\tapplicants\n\t\t\t.filter((a) => a.status === 'picked' && a.boutIndex !== null)\n\t\t\t.sort((a, b) => (a.boutIndex ?? 0) - (b.boutIndex ?? 0))\n\t\t\t.slice(0, teamSize)\n\t);\n\tconst bench = $derived(applicants.filter((a) => a.status !== 'picked' && a.status !== 'rejected'));\n\tconst cardOf = (k: string | null) => (k ? WAR_CARDS.find((c) => c.key === k) : undefined);\n</script>\n\n<section class=\"panel\">\n\t<div class=\"head\">\n\t\t<div>\n\t\t\t<div class=\"lbl\">#{tag} · {locked ? `lineup locked · ${picked.length} fighters` : `${applicants.length} applied`}</div>\n\t\t\t{#if note}<div class=\"sub\">{note}</div>{/if}\n\t\t</div>\n\t\t{#if locked}<span class=\"chip-k\">locked</span>{/if}\n\t</div>\n\n\t{#if applicants.length === 0}\n\t\t<div class=\"empty\">nobody has applied yet.</div>\n\t{:else if locked && picked.length}\n\t\t<div class=\"lineup\" style=\"--n: {teamSize}\">\n\t\t\t{#each picked as a (a.userId)}\n\t\t\t\t{@const c = cardOf(a.card)}\n\t\t\t\t<div class=\"fighter\">\n\t\t\t\t\t<div class=\"shot\">\n\t\t\t\t\t\t{#if a.mediaUrl}<img src={a.mediaUrl} alt=\"\" loading=\"lazy\" />{:else}<span class=\"av\"><DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={64} link={false} /></span>{/if}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"meta\">\n\t\t\t\t\t\t<span class=\"num\">{(a.boutIndex ?? 0) + 1}</span>\n\t\t\t\t\t\t<span class=\"meta-t\">\n\t\t\t\t\t\t\t<span class=\"nm\">@{a.nickname ?? 'user'}</span>\n\t\t\t\t\t\t\t<span class=\"card\" class:none={!c} class:leg={c?.rarity === 'legendary'}>{c ? c.name : 'no card'}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/each}\n\t\t</div>\n\t\t{#if bench.length}\n\t\t\t<div class=\"bench\">\n\t\t\t\t<span class=\"bench-l\">bench</span>\n\t\t\t\t{#each bench as a (a.userId)}\n\t\t\t\t\t<span class=\"who\"><DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={22} link={false} /><span>@{a.nickname ?? 'user'}</span></span>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{/if}\n\t{:else}\n\t\t<div class=\"applied\">\n\t\t\t{#each applicants as a (a.userId)}\n\t\t\t\t<span class=\"who big\" class:out={a.status === 'rejected'}><DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={28} link={false} /><span>@{a.nickname ?? 'user'}</span></span>\n\t\t\t{/each}\n\t\t</div>\n\t{/if}\n</section>\n\n<style>\n\t.panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }\n\t.head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }\n\t.lbl { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }\n\t.sub { font-size: 13px; color: var(--color-muted); margin-top: 3px; line-height: 1.45; }\n\t.chip-k { flex-shrink: 0; background: #000; color: #fff; border: 1px solid var(--color-border); font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; }\n\t.empty { border: 1px solid var(--color-border); border-radius: 12px; padding: 18px; text-align: center; font-size: 13px; color: var(--color-muted); }\n\n\t.lineup { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 10px; }\n\t@media (max-width: 560px) { .lineup { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n\t.fighter { border: 1px solid var(--color-border); border-radius: 14px; overflow: hidden; background: #151515; }\n\t.shot { position: relative; aspect-ratio: 3 / 4; background: #1a1a1a; display: grid; place-items: center; }\n\t.shot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }\n\t.av { display: block; }\n\t.meta { display: flex; align-items: center; gap: 10px; padding: 10px 12px 11px; border-top: 1px solid var(--color-border); background: var(--color-surface); min-width: 0; }\n\t.num { font-family: var(--font-display); font-weight: 800; font-size: 24px; line-height: 1; letter-spacing: -0.04em; color: var(--color-text); flex-shrink: 0; width: 18px; }\n\t.meta-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }\n\t.nm { font-family: var(--font-display); font-weight: 700; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n\t.card { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-violet); }\n\t.card.leg { color: var(--color-yellow); }\n\t.card.none { color: #4a4a4a; }\n\n\t.bench, .applied { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }\n\t.bench-l { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); margin-right: 2px; }\n\t.who { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 3px; border-radius: 999px; background: var(--color-surface-2); border: 1px solid var(--color-border); font-family: var(--font-display); font-weight: 600; font-size: 12px; }\n\t.who.big { padding: 4px 12px 4px 4px; font-size: 13px; }\n\t.who.out { opacity: 0.4; }\n</style>\n","<script lang=\"ts\">\n\t/** The scoreboard under the replay: who took it, the tale of the tape, the\n\t *  four bouts with both photos and the judge's line, and the xp split. */\n\timport { getAvatarUrl } from '$lib/avatar';\n\timport ClanEmblem from '$lib/components/clan/ClanEmblem.svelte';\n\timport DuelAvatar from '$lib/components/duel/DuelAvatar.svelte';\n\timport { WAR_CARDS, type WarScript, type WarScriptFighter } from '$lib/types/clan-war';\n\n\tlet {\n\t\tscript,\n\t\tphotos = {},\n\t\tstake = 0\n\t}: {\n\t\tscript: WarScript;\n\t\t/** userId → signed photo url (own side + the other side once fought) */\n\t\tphotos?: Record<string, string | null>;\n\t\tstake?: number;\n\t} = $props();\n\n\tconst r = $derived(script.result);\n\tconst winSide = $derived(r.winner);\n\tconst winner = $derived(winSide === 'a' ? script.attacker : script.defender);\n\tconst loser = $derived(winSide === 'a' ? script.defender : script.attacker);\n\tconst winXp = $derived(winSide === 'a' ? r.xp.clanA : r.xp.clanB);\n\tconst loseXp = $derived(winSide === 'a' ? r.xp.clanB : r.xp.clanA);\n\tconst tied = $derived(r.boutsA === r.boutsB);\n\tconst cardName = (k: string | null) => (k ? (WAR_CARDS.find((c) => c.key === k)?.name ?? k) : null);\n\tconst xpFor = (side: 'a' | 'b') => r.xp.fighters.filter((f) => f.side === side);\n</script>\n\n{#snippet fighter(f: WarScriptFighter, won: boolean, flip: boolean)}\n\t<div class=\"f\" class:won class:flip>\n\t\t<span class=\"shot\">{#if photos[f.userId]}<img src={photos[f.userId]} alt=\"\" loading=\"lazy\" />{:else}<DuelAvatar nickname={f.nickname} avatarUrl={getAvatarUrl(f.avatarPath)} size={48} link={false} />{/if}</span>\n\t\t<span class=\"ft\">\n\t\t\t<span class=\"fn\">@{f.nickname ?? 'user'}{#if f.card}<span class=\"fc\">· {cardName(f.card)}</span>{/if}</span>\n\t\t\t{#if f.verdict}<span class=\"fv\">{f.verdict}</span>{/if}\n\t\t</span>\n\t\t<span class=\"pw\">{f.power}</span>\n\t</div>\n{/snippet}\n\n<section class=\"panel\">\n\t<div class=\"top\">\n\t\t<div class=\"say\">\n\t\t\t<div class=\"lbl\">final</div>\n\t\t\t<h2>#{winner.tag.toLowerCase()} took it{stake ? ` and ⛁ ${stake * 2}` : ''}.</h2>\n\t\t\t<p class=\"sub\">\n\t\t\t\t{#if tied}bouts {r.boutsA}–{r.boutsB}, decided on hp. {/if}\n\t\t\t\t{#if r.mvp}mvp @{r.mvp.nickname ?? 'user'}. {/if}\n\t\t\t\t+{winXp} clan xp to #{winner.tag}, +{loseXp} to #{loser.tag}.\n\t\t\t</p>\n\t\t</div>\n\t\t<div class=\"tape\">\n\t\t\t<div class=\"side\" class:won={winSide === 'a'}>\n\t\t\t\t<ClanEmblem tag={script.attacker.tag} avatarPath={script.attacker.avatarPath} size={40} link={false} />\n\t\t\t\t<span class=\"tag\">#{script.attacker.tag}</span>\n\t\t\t\t<span class=\"n\">{r.boutsA}</span>\n\t\t\t\t<span class=\"hp\">hp {r.hpA}</span>\n\t\t\t</div>\n\t\t\t<span class=\"vs\">vs</span>\n\t\t\t<div class=\"side r\" class:won={winSide === 'b'}>\n\t\t\t\t<ClanEmblem tag={script.defender.tag} avatarPath={script.defender.avatarPath} size={40} link={false} />\n\t\t\t\t<span class=\"tag\">#{script.defender.tag}</span>\n\t\t\t\t<span class=\"n\">{r.boutsB}</span>\n\t\t\t\t<span class=\"hp\">hp {r.hpB}</span>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=\"lbl\">bouts</div>\n\t<div class=\"rows\">\n\t\t{#each script.bouts as b (b.index)}\n\t\t\t<div class=\"bout\">\n\t\t\t\t<div class=\"bh\">\n\t\t\t\t\t<span>bout {b.index + 1}</span>\n\t\t\t\t\t<span class=\"dot\">·</span>\n\t\t\t\t\t<span>roll {b.roll}</span>\n\t\t\t\t\t{#if b.crit}<span class=\"dot\">·</span><span class=\"crit\">crit, margin doubled</span>{:else if b.blocked}<span class=\"dot\">·</span><span>crit blocked by shield</span>{/if}\n\t\t\t\t\t<span class=\"dot\">·</span>\n\t\t\t\t\t<span class=\"dmg\">−{b.damage} hp to #{(b.winner === 'a' ? script.defender : script.attacker).tag}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"pair\">\n\t\t\t\t\t{@render fighter(b.a, b.winner === 'a', false)}\n\t\t\t\t\t{@render fighter(b.b, b.winner === 'b', true)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t{/each}\n\t</div>\n\n\t<div class=\"lbl\">xp</div>\n\t<div class=\"xp\">\n\t\t{#each [{ side: 'a' as const, clan: script.attacker, clanXp: r.xp.clanA }, { side: 'b' as const, clan: script.defender, clanXp: r.xp.clanB }] as col (col.side)}\n\t\t\t<div class=\"xcol\">\n\t\t\t\t<div class=\"xhead\">\n\t\t\t\t\t<ClanEmblem tag={col.clan.tag} avatarPath={col.clan.avatarPath} size={24} link={false} />\n\t\t\t\t\t<span class=\"xtag\">#{col.clan.tag}</span>\n\t\t\t\t\t<span class=\"xn\">+{col.clanXp} clan</span>\n\t\t\t\t</div>\n\t\t\t\t{#each xpFor(col.side) as f (f.userId)}\n\t\t\t\t\t<div class=\"xrow\"><span class=\"xname\">@{f.nickname ?? 'user'}</span><span class=\"xn\">+{f.xp}</span></div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{/each}\n\t</div>\n</section>\n\n<style>\n\t.panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }\n\t.lbl { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }\n\t.sub { font-size: 13px; color: var(--color-muted); margin: 6px 0 0; line-height: 1.45; max-width: 44ch; }\n\n\t/* top: the sentence + the tale of the tape */\n\t.top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding-bottom: 16px; border-bottom: 1px solid var(--color-border); }\n\th2 { font-family: var(--font-display); font-weight: 700; font-size: clamp(22px, 3vw, 30px); letter-spacing: -0.03em; line-height: 1.05; margin: 6px 0 0; }\n\t.tape { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 14px; background: var(--color-surface-2); border: 1px solid var(--color-border); border-radius: 14px; padding: 12px 16px; }\n\t.side { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto auto; column-gap: 12px; align-items: center; }\n\t.side :global(.emblem) { grid-row: 1 / 4; grid-column: 1; }\n\t.side.r :global(.emblem) { grid-column: 2; }\n\t.side.r .tag, .side.r .n, .side.r .hp { grid-column: 1; text-align: right; }\n\t.tag { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-muted); grid-column: 2; }\n\t.n { font-family: var(--font-display); font-weight: 800; font-size: 34px; line-height: 1; letter-spacing: -0.05em; color: #4a4a4a; grid-column: 2; }\n\t.hp { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-muted); grid-column: 2; }\n\t.side.won .n { color: var(--color-text); }\n\t.side.won .tag { color: var(--color-violet); }\n\t.vs { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #3a3a3a; }\n\n\t/* bouts */\n\t.rows { display: flex; flex-direction: column; border: 1px solid var(--color-border); border-radius: 14px; overflow: hidden; background: var(--color-surface-2); }\n\t.bout { padding: 10px 12px 12px; }\n\t.bout + .bout { border-top: 1px solid var(--color-border); }\n\t.bh { display: flex; flex-wrap: wrap; gap: 6px; font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); margin-bottom: 8px; }\n\t.dot { color: #3a3a3a; }\n\t.crit { color: var(--color-yellow); }\n\t.dmg { color: var(--color-coral); }\n\t.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n\t.f { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; align-items: center; opacity: 0.55; }\n\t.f.won { opacity: 1; }\n\t.f.flip { grid-template-columns: auto minmax(0, 1fr) 48px; text-align: right; }\n\t.f.flip .pw { grid-column: 1; grid-row: 1; }\n\t.f.flip .ft { grid-column: 2; grid-row: 1; align-items: flex-end; }\n\t.f.flip .shot { grid-column: 3; grid-row: 1; }\n\t.shot { width: 48px; height: 48px; border-radius: 10px; overflow: hidden; background: #1c1c1c; display: block; }\n\t.shot img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\t.ft { display: flex; flex-direction: column; gap: 2px; min-width: 0; }\n\t.fn { font-family: var(--font-display); font-weight: 700; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n\t.fc { font-weight: 600; color: var(--color-violet); margin-left: 4px; }\n\t.fv { font-size: 11.5px; color: var(--color-muted); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }\n\t.pw { font-family: var(--font-display); font-weight: 800; font-size: 26px; letter-spacing: -0.04em; line-height: 1; color: var(--color-muted); }\n\t.f.won .pw { color: var(--color-text); }\n\n\t/* xp */\n\t.xp { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n\t.xcol { border: 1px solid var(--color-border); border-radius: 14px; overflow: hidden; background: var(--color-surface-2); }\n\t.xhead { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--color-border); }\n\t.xtag { flex: 1; font-family: var(--font-display); font-weight: 700; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }\n\t.xrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; }\n\t.xrow + .xrow { border-top: 1px solid var(--color-border); }\n\t.xname { font-family: var(--font-display); font-weight: 600; font-size: 13px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n\t.xn { font-family: var(--font-display); font-weight: 800; font-size: 13px; color: var(--color-green); white-space: nowrap; }\n\n\t@media (max-width: 720px) {\n\t\t.top { grid-template-columns: 1fr; }\n\t\t.tape { justify-content: space-between; }\n\t\t.pair { grid-template-columns: 1fr; gap: 8px; }\n\t\t.f.flip { grid-template-columns: 48px minmax(0, 1fr) auto; text-align: left; }\n\t\t.f.flip .shot { grid-column: 1; }\n\t\t.f.flip .ft { grid-column: 2; align-items: flex-start; }\n\t\t.f.flip .pw { grid-column: 3; }\n\t\t.xp { grid-template-columns: 1fr; }\n\t}\n</style>\n","<script lang=\"ts\">\n\timport { onMount } from 'svelte';\n\timport { invalidateAll } from '$app/navigation';\n\timport { activeMode } from '$lib/stores/activeMode';\n\timport ClanEmblem from '$lib/components/clan/ClanEmblem.svelte';\n\timport DuelAvatar from '$lib/components/duel/DuelAvatar.svelte';\n\timport { getAvatarUrl } from '$lib/avatar';\n\timport WarCountdown from '$lib/components/clan/war/WarCountdown.svelte';\n\timport WarLineupBuilder from '$lib/components/clan/war/WarLineupBuilder.svelte';\n\timport WarBattlePlayer from '$lib/components/clan/war/WarBattlePlayer.svelte';\n\timport WarDock from '$lib/components/clan/war/WarDock.svelte';\n\timport WarRoster from '$lib/components/clan/war/WarRoster.svelte';\n\timport WarResult from '$lib/components/clan/war/WarResult.svelte';\n\timport { WAR_CARDS, WAR_HAND_SIZE } from '$lib/types/clan-war';\n\n\tlet { data } = $props();\n\tconst v = $derived(data.view);\n\tconst side = $derived(v.viewer.side);\n\tconst mySide = $derived(side === 'a' ? v.attacker : side === 'b' ? v.defender : null);\n\tconst otherSide = $derived(side === 'a' ? v.defender : side === 'b' ? v.attacker : null);\n\n\tonMount(() => {\n\t\tactiveMode.set('clan');\n\t\treturn () => activeMode.set(null);\n\t});\n\n\t// photos for the player: every applicant with a signed url (own side +\n\t// both once revealed; getWarView already redacts what the viewer can't see)\n\tconst photos = $derived.by(() => {\n\t\tconst m: Record<string, string | null> = {};\n\t\tfor (const a of [...v.applicants.a, ...v.applicants.b]) m[a.userId] = a.mediaUrl;\n\t\treturn m;\n\t});\n\tconst cardName = (k: string | null) => (k ? (WAR_CARDS.find((c) => c.key === k)?.name ?? k) : null);\n\tconst picked = (list: typeof v.applicants.a) => list.filter((a) => a.status === 'picked' && a.boutIndex !== null).sort((x, y) => (x.boutIndex ?? 0) - (y.boutIndex ?? 0));\n\tconst fmtAt = (iso: string | null) => (iso ? new Date(iso).toLocaleString('en-GB', { weekday: 'short', hour: '2-digit', minute: '2-digit' }).toLowerCase() : '');\n\n\t// who has to do what, right now — the page leads with this\n\tconst hero = $derived.by(() => {\n\t\tconst me = mySide?.tag ?? '', them = otherSide?.tag ?? '';\n\t\tconst att = v.attacker.tag, def = v.defender.tag;\n\t\tconst myApps = side === 'a' ? v.applicants.a : side === 'b' ? v.applicants.b : [];\n\t\tconst myLocked = side === 'a' ? v.attackerLocked : v.defenderLocked;\n\t\tif (v.status === 'mustering' || v.status === 'preparing') {\n\t\t\tconst mine = (v.status === 'mustering' && side === 'a') || (v.status === 'preparing' && side === 'b');\n\t\t\tconst eyebrow = v.status === 'mustering' ? `raid on #${def} · mustering` : `war vs #${att} · preparing`;\n\t\t\tif (!mine) return { eyebrow, l1: v.status === 'mustering' ? `#${att} is` : `#${def} is`, l2: 'mustering.', lede: v.status === 'mustering' ? `they are picking ${v.teamSize} fighters for a raid on #${def}. the request goes out once their captain locks.` : `they accepted. their captain has 12 hours to field ${v.teamSize}. the fight is ${fmtAt(v.fightAt)}.` };\n\t\t\tif (myLocked) return v.viewer.canRequest ? { eyebrow, l1: 'send the', l2: 'request.', lede: `your lineup is locked. #${def} gets 24 hours to answer${v.stake ? `, and ⛁ ${v.stake} leaves the treasury until they do` : ''}.` } : { eyebrow, l1: 'lineup', l2: 'locked.', lede: v.status === 'mustering' ? 'the captain sends the request from here.' : `the fight is ${fmtAt(v.fightAt)}. the reveal comes with it.` };\n\t\t\tif (v.viewer.isCaptain) return myApps.length < 2 ? { eyebrow, l1: 'wait for', l2: 'applicants.', lede: `you need at least 2 to lock, up to ${v.teamSize}. members apply with one photo on the brief. you can apply too.` } : { eyebrow, l1: 'pick your', l2: 'fighters.', lede: `tap an applicant, then a bout. one card per bout, ${WAR_HAND_SIZE} cards per war. lock when you're done.` };\n\t\t\tif (v.viewer.applied) return { eyebrow, l1: \"you're in.\", l2: 'the captain picks.', lede: `${myApps.length} of ${v.teamSize * 2} applied. the owner or an officer picks ${v.teamSize}, sets the order and the cards, then locks.` };\n\t\t\treturn { eyebrow, l1: 'apply with', l2: 'a photo.', lede: `one photo that answers the brief. the ai judges it. your captain picks ${v.teamSize} of up to ${v.teamSize * 2}.` };\n\t\t}\n\t\tif (v.status === 'requested') {\n\t\t\tif (v.viewer.canAnswer) return { eyebrow: `war declared by #${att}`, l1: 'answer', l2: 'the call.', lede: `${v.applicants.a.length} fighters on their side${v.stake ? `, ⛁ ${v.stake} on the line, your treasury matches it` : ''}. accept and your clan gets 12 hours to field ${v.teamSize}. the fight is 24 hours after. no answer is a dodge.` };\n\t\t\tif (side === 'b') return { eyebrow: `war declared by #${att}`, l1: 'your captains', l2: 'decide.', lede: 'the owner or an officer accepts or declines. if they accept, you get 12 hours to apply with a photo.' };\n\t\t\treturn { eyebrow: `request sent to #${def}`, l1: 'waiting on', l2: `#${def.toLowerCase()}.`, lede: 'they have 24 hours. no answer is a dodge and it goes on their record.' };\n\t\t}\n\t\tif (v.status === 'scheduled') return { eyebrow: `#${att} vs #${def} · scheduled`, l1: 'the fight is', l2: 'set.', lede: `both lineups are locked and public below. everyone watches at ${fmtAt(v.fightAt)}.` };\n\t\tif (v.status === 'fought') { const w = v.winnerClanId === v.attacker.id ? att : def; return { eyebrow: `#${att} vs #${def} · fought`, l1: `#${w.toLowerCase()}`, l2: 'took it.', lede: 'the replay plays on open. results are permanent. yes, even if you cry.' }; }\n\t\tif (v.status === 'declined') return { eyebrow: `#${att} vs #${def}`, l1: 'declined.', l2: '', lede: `#${def} said no. stake refunded, 3 days before a rematch.` };\n\t\tif (v.status === 'dissolved') return { eyebrow: `#${att} vs #${def}`, l1: 'the raid', l2: 'dissolved.', lede: `#${att} never locked a lineup. nothing happened, nothing on the record.` };\n\t\tconst ff = v.forfeitClanId === v.attacker.id ? att : def; const other = ff === att ? def : att;\n\t\treturn { eyebrow: `#${att} vs #${def}`, l1: `#${ff.toLowerCase()}`, l2: v.status === 'dodged' ? 'dodged.' : \"didn't show.\", lede: `#${other} wins by default. #${ff} wears the no-show mark until it wins a war.` };\n\t});\n\tconst steps = $derived.by(() => {\n\t\tconst att = v.attacker.tag, def = v.defender.tag;\n\t\tif (v.status === 'mustering') return { cur: v.attackerLocked ? 2 : 0, items: [{ t: 'members apply', w: `#${att}`, d: 'one photo each, 12h' }, { t: 'captain locks', w: 'owner / officer', d: `${v.teamSize} fighters, order, cards` }, { t: 'request sent', w: 'captain', d: `#${def} gets 24h` }] };\n\t\tif (v.status === 'requested') return { cur: 1, items: [{ t: 'request sent', w: `#${att}`, d: 'lineup locked' }, { t: `#${def} answers`, w: 'owner / officer', d: '24h, or it\\'s a dodge' }, { t: 'fight', w: 'everyone', d: 'accept + 24h' }] };\n\t\tif (v.status === 'preparing') return { cur: v.defenderLocked ? 2 : 1, items: [{ t: 'accepted', w: `#${def}`, d: 'stake locked' }, { t: `#${def} musters`, w: 'members + captain', d: '12h to lock' }, { t: 'fight', w: 'everyone', d: fmtAt(v.fightAt) }] };\n\t\tif (v.status === 'scheduled') return { cur: 2, items: [{ t: 'both locked', w: '', d: 'lineups public' }, { t: 'judged', w: 'the ai', d: 'power per photo' }, { t: 'fight', w: 'everyone', d: fmtAt(v.fightAt) }] };\n\t\treturn null;\n\t});\n\n\t// actions\n\tlet busy = $state(false);\n\tlet actionError = $state('');\n\tconst ERR: Record<string, string> = {\n\t\ttreasury: \"the treasury can't cover the stake.\",\n\t\ttoo_few_members: 'a clan needs 4 active members for a war.',\n\t\twrong_status: 'that moment has passed.',\n\t\tnot_captain: 'only the owner or an officer can do that.',\n\t\tbad_lineup: 'lock the lineup first.'\n\t};\n\tasync function post(path: string, body?: unknown) {\n\t\tbusy = true;\n\t\tactionError = '';\n\t\ttry {\n\t\t\tconst res = await fetch(path, { method: 'POST', headers: { 'content-type': 'application/json' }, body: body ? JSON.stringify(body) : undefined });\n\t\t\tconst j = await res.json().catch(() => ({}));\n\t\t\tif (!res.ok) throw new Error(ERR[j.error as string] ?? j.error ?? 'something went wrong');\n\t\t\tawait invalidateAll();\n\t\t} catch (err) {\n\t\t\tactionError = err instanceof Error ? err.message : 'something went wrong';\n\t\t} finally {\n\t\t\tbusy = false;\n\t\t}\n\t}\n\n\t// share: must run synchronously in the click handler on iOS\n\tlet copied = $state(false);\n\tfunction share() {\n\t\tconst url = typeof location !== 'undefined' ? location.href : '';\n\t\tconst title = `#${v.attacker.tag} vs #${v.defender.tag} · clan war`;\n\t\tif (typeof navigator !== 'undefined' && navigator.share) {\n\t\t\tnavigator.share({ title, url }).catch(() => {});\n\t\t\treturn;\n\t\t}\n\t\tnavigator.clipboard?.writeText(url).then(() => { copied = true; setTimeout(() => (copied = false), 1800); });\n\t}\n\n\tconst terminalCopy = $derived.by(() => {\n\t\tswitch (v.status) {\n\t\t\tcase 'declined': return { t: 'declined.', d: `#${v.defender.tag} said no. stake refunded, three days before these two can meet again.` };\n\t\t\tcase 'dodged': return { t: 'dodged.', d: `#${v.defender.tag} never answered. #${v.attacker.tag} wins by default and #${v.defender.tag} wears the no-show mark until they win a war.` };\n\t\t\tcase 'dissolved': return { t: 'the raid dissolved.', d: `#${v.attacker.tag} never locked a lineup in time. no request was sent, nothing on the record.` };\n\t\t\tcase 'forfeited': return { t: 'no-show.', d: `#${v.forfeitClanId === v.defender.id ? v.defender.tag : v.attacker.tag} couldn't field a team. ${v.forfeitClanId === v.defender.id ? `#${v.attacker.tag}` : `#${v.defender.tag}`} wins by default${v.stake ? `, ⛁ ${v.stake * 2} to their treasury` : ''}.` };\n\t\t\tdefault: return null;\n\t\t}\n\t});\n</script>\n\n<div class=\"war-page\">\n\t<a class=\"back-link\" href=\"/k/{encodeURIComponent(mySide?.tag ?? v.attacker.tag)}\">← #{mySide?.tag ?? v.attacker.tag}</a>\n\n\t<!-- hero: the viewer's one job, right now -->\n\t<header class=\"hero\">\n\t\t<div class=\"hero-main\">\n\t\t\t<div class=\"eyebrow\">{hero.eyebrow}</div>\n\t\t\t<h1 class=\"h1\">{hero.l1}<br><span>{hero.l2}</span></h1>\n\t\t\t<p class=\"lede\">{hero.lede}</p>\n\t\t</div>\n\t\t<div class=\"hero-side\">\n\t\t\t<div class=\"clans\">\n\t\t\t\t<a class=\"clan\" href=\"/k/{encodeURIComponent(v.attacker.tag)}\"><ClanEmblem tag={v.attacker.tag} avatarPath={v.attacker.avatarPath} size={40} link={false} /><div><div class=\"cname\">#{v.attacker.tag}</div><div class=\"ctag\">lvl {v.attacker.level} · {v.attacker.record}</div></div></a>\n\t\t\t\t<span class=\"vs\">vs</span>\n\t\t\t\t<a class=\"clan r\" href=\"/k/{encodeURIComponent(v.defender.tag)}\"><div><div class=\"cname\">#{v.defender.tag}</div><div class=\"ctag\">lvl {v.defender.level} · {v.defender.record}</div></div><ClanEmblem tag={v.defender.tag} avatarPath={v.defender.avatarPath} size={40} link={false} /></a>\n\t\t\t</div>\n\t\t\t<div class=\"status-row\">\n\t\t\t\t{#if v.stake > 0}<span class=\"chip-k\">⛁ {v.stake} a side</span>{/if}\n\t\t\t\t<span class=\"chip-k\">{v.teamSize}v{v.teamSize}</span>\n\t\t\t\t{#if v.status === 'mustering'}<WarCountdown to={v.musterDueAt} label=\"to lock the raid\" />\n\t\t\t\t{:else if v.status === 'requested'}<WarCountdown to={v.answerDueAt} label=\"for #{v.defender.tag} to answer\" />\n\t\t\t\t{:else if v.status === 'preparing'}<WarCountdown to={side === 'b' && !v.defenderLocked ? v.defenderDueAt : v.fightAt} label={side === 'b' && !v.defenderLocked ? 'to lock your lineup' : 'until the fight'} />\n\t\t\t\t{:else if v.status === 'scheduled'}<WarCountdown to={v.fightAt} label=\"until the fight\" />{/if}\n\t\t\t\t{#if data.isAdmin && (v.status === 'preparing' || v.status === 'scheduled')}\n\t\t\t\t\t<button type=\"button\" class=\"chip-k dev\" disabled={busy} onclick={() => post(`/api/clan-war/${v.code}/dev`, { action: 'fight-now' })}>admin · fight now</button>\n\t\t\t\t{/if}\n\t\t\t</div>\n\t\t</div>\n\t</header>\n\n\t{#if steps}\n\t\t<ol class=\"steps\">\n\t\t\t{#each steps.items as st, i (i)}\n\t\t\t\t<li class:done={i < steps.cur} class:cur={i === steps.cur}>\n\t\t\t\t\t<span class=\"sn\">{i + 1}</span>\n\t\t\t\t\t<div><div class=\"st\">{st.t}</div><div class=\"sw\">{st.w}{st.w && st.d ? ' · ' : ''}{st.d}</div></div>\n\t\t\t\t</li>\n\t\t\t{/each}\n\t\t</ol>\n\t{/if}\n\n\t<!-- the brief -->\n\t<div class=\"brief\">\n\t\t<div class=\"brief-main\">\n\t\t\t<div class=\"brief-top\">\n\t\t\t\t<div class=\"lbl\">the challenge</div>\n\t\t\t\t{#if v.status === 'fought' || v.status === 'scheduled'}<button type=\"button\" class=\"btn btn-ghost btn-sm\" onclick={share}>{copied ? 'copied' : 'share'}</button>{/if}\n\t\t\t</div>\n\t\t\t<div class=\"brief-text\">{v.challenge}</div>\n\t\t\t{#if v.challengeDesc}<p class=\"brief-desc\">{v.challengeDesc}</p>{/if}\n\t\t</div>\n\t\t<aside class=\"brief-how\">\n\t\t\t<div class=\"lbl\">how it's judged</div>\n\t\t\t<div class=\"how-row\"><b>0–100</b><span>one <em>power</em> score per photo, from the ai that scores duels.</span></div>\n\t\t\t<div class=\"how-row\"><b>½</b><span>for answering the brief. the rest: light, framing, effort, looks.</span></div>\n\t\t\t<div class=\"how-row\"><b>+</b><span>cards move the number. a crit doubles the winning margin.</span></div>\n\t\t</aside>\n\t</div>\n\n\t{#if actionError}<p class=\"err\">{actionError}</p>{/if}\n\n\t<!-- ═══ mustering: attacker raid ═══ -->\n\t{#if v.status === 'mustering'}\n\t\t{#if side === 'a'}\n\t\t\t<WarLineupBuilder code={v.code} applicants={v.applicants.a} canApply={v.viewer.canApply} canLock={v.viewer.canLock} locked={v.attackerLocked} mine={true} tag={v.attacker.tag} teamSize={v.teamSize} />\n\t\t\t{#if v.viewer.canRequest}\n\t\t\t\t<div class=\"dock-space\"></div>\n\t\t\t\t<WarDock\n\t\t\t\t\ttitle=\"lineup locked. send it.\"\n\t\t\t\t\tsub={`#${v.defender.tag} gets 24 hours. ${v.stake ? `⛁ ${v.stake} leaves your treasury now, back if they decline.` : 'no stake, just xp and the record.'}`}\n\t\t\t\t\tcta={`send the war request${v.stake ? ` · ⛁ ${v.stake}` : ''}`}\n\t\t\t\t\t{busy}\n\t\t\t\t\terror={actionError}\n\t\t\t\t\tonclick={() => post(`/api/clan-war/${v.code}/request`)}\n\t\t\t\t/>\n\t\t\t{/if}\n\t\t{:else}\n\t\t\t<WarRoster applicants={v.applicants.a} locked={v.attackerLocked} tag={v.attacker.tag} teamSize={v.teamSize} note={v.attackerLocked ? 'the raid is set. waiting on the captain to send it.' : `the captain picks ${v.teamSize} of these.`} />\n\t\t{/if}\n\n\t<!-- ═══ requested ═══ -->\n\t{:else if v.status === 'requested'}\n\t\t<WarRoster applicants={v.applicants.a} locked={true} tag={v.attacker.tag} teamSize={v.teamSize} note={side === 'a' ? `sent. #${v.defender.tag} sees the names, not the photos.` : `#${v.attacker.tag}'s team, in bout order. photos stay hidden until the fight.`} />\n\t\t{#if v.viewer.canAnswer}\n\t\t\t<section class=\"panel\">\n\t\t\t\t<div class=\"cta\">\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-v\" disabled={busy} onclick={() => post(`/api/clan-war/${v.code}/answer`, { accept: true })}>accept{v.stake ? ` · ⛁ ${v.stake}` : ''}</button>\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-ghost\" disabled={busy} onclick={() => post(`/api/clan-war/${v.code}/answer`, { accept: false })}>decline</button>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t{/if}\n\n\t<!-- ═══ preparing: defender muster ═══ -->\n\t{:else if v.status === 'preparing'}\n\t\t{#if side === 'b'}\n\t\t\t<WarLineupBuilder code={v.code} applicants={v.applicants.b} canApply={v.viewer.canApply} canLock={v.viewer.canLock} locked={v.defenderLocked} mine={true} tag={v.defender.tag} teamSize={v.teamSize} />\n\t\t{:else if side === 'a'}\n\t\t\t<WarRoster applicants={v.applicants.a} locked={true} tag={v.attacker.tag} teamSize={v.teamSize} note={`#${v.defender.tag}: ${v.applicants.b.length} applied${v.defenderLocked ? ', lineup locked.' : ', captain still picking.'}`} />\n\t\t{/if}\n\n\t<!-- ═══ scheduled: the reveal ═══ -->\n\t{:else if v.status === 'scheduled'}\n\t\t<section class=\"panel\">\n\t\t\t<h2>the reveal.</h2>\n\t\t\t<p class=\"sub\">both lineups, all cards. the fight starts {fmtAt(v.fightAt)}, for everyone at once. this page turns into the fight then.</p>\n\t\t\t<div class=\"reveal\">\n\t\t\t\t{#each Array(Math.min(picked(v.applicants.a).length, picked(v.applicants.b).length, v.teamSize)) as _, i (i)}\n\t\t\t\t\t{@const a = picked(v.applicants.a)[i]}\n\t\t\t\t\t{@const b = picked(v.applicants.b)[i]}\n\t\t\t\t\t<div class=\"bout\">\n\t\t\t\t\t\t<div class=\"f\"><DuelAvatar nickname={a.nickname} avatarUrl={getAvatarUrl(a.avatarPath)} size={40} link={false} /><div><div class=\"lu-n\">@{a.nickname ?? 'user'}</div><div class=\"lu-c\">{cardName(a.card) ?? 'no card'}</div></div></div>\n\t\t\t\t\t\t<div class=\"mid\"><span class=\"lh\">bout {i + 1}</span><span class=\"vs\">VS</span></div>\n\t\t\t\t\t\t<div class=\"f r\"><div><div class=\"lu-n\">@{b.nickname ?? 'user'}</div><div class=\"lu-c\">{cardName(b.card) ?? 'no card'}</div></div><DuelAvatar nickname={b.nickname} avatarUrl={getAvatarUrl(b.avatarPath)} size={40} link={false} /></div>\n\t\t\t\t\t</div>\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t</section>\n\n\t<!-- ═══ fought: the fight ═══ -->\n\t{:else if v.status === 'fought' && v.script}\n\t\t<WarBattlePlayer script={v.script} {photos} stake={v.stake} />\n\t\t<WarResult script={v.script} {photos} stake={v.stake} />\n\t\t<section class=\"panel\">\n\t\t\t<div class=\"cta\"><button type=\"button\" class=\"btn btn-v\" onclick={share}>{copied ? 'link copied' : 'share the replay'}</button><a class=\"btn btn-ghost\" href=\"/k/{encodeURIComponent(v.attacker.tag)}/wars\">war history</a></div>\n\t\t</section>\n\n\t<!-- ═══ terminal ═══ -->\n\t{:else if terminalCopy}\n\t\t<section class=\"panel\">\n\t\t\t<h2>{terminalCopy.t}</h2>\n\t\t\t<p class=\"sub\">{terminalCopy.d}</p>\n\t\t</section>\n\t{/if}\n</div>\n\n<style>\n\t.war-page { max-width: 980px; margin: 0 auto; padding: 76px 18px 120px; display: flex; flex-direction: column; gap: 18px; }\n\t.back-link { font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-muted); text-decoration: none; }\n\t/* hero: giant two-line headline like the rest of the site, clans + timer on the right */\n\t.hero { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: end; }\n\t.hero-main { min-width: 0; }\n\t.eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-violet); }\n\t.h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(2.4rem, 7vw, 4.6rem); line-height: 0.92; letter-spacing: -0.045em; margin: 10px 0 14px; }\n\t.h1 span { color: var(--color-violet); }\n\t.lede { font-size: 15px; line-height: 1.55; color: var(--color-muted); max-width: 54ch; margin: 0; }\n\t.hero-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }\n\t.clans { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 14px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; padding: 10px 14px; }\n\t.clan { display: flex; align-items: center; gap: 10px; min-width: 0; text-decoration: none; color: inherit; }\n\t.clan.r { flex-direction: row; text-align: right; }\n\t.cname { font-family: var(--font-display); font-weight: 700; font-size: 14px; letter-spacing: -0.01em; color: var(--color-violet); white-space: nowrap; }\n\t.ctag { font-size: 11px; color: var(--color-muted); white-space: nowrap; }\n\t.vs { font-family: var(--font-display); font-weight: 700; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: #3a3a3a; }\n\t@media (max-width: 760px) { .hero { grid-template-columns: 1fr; } .hero-side { align-items: flex-start; } }\n\t/* the three steps of this phase; the current one lit */\n\t.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }\n\t.steps li { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--color-surface); border: 1px solid var(--color-border); opacity: 0.55; }\n\t.steps li.cur { opacity: 1; border-color: var(--color-violet); }\n\t.steps li.done { opacity: 0.8; }\n\t.sn { font-family: var(--font-display); font-weight: 700; font-size: 12px; width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; background: var(--color-surface-2); color: var(--color-muted); flex-shrink: 0; }\n\t.steps li.cur .sn { background: var(--color-violet); color: #fff; }\n\t.steps li.done .sn { background: var(--color-violet-light); color: var(--color-violet); }\n\t.st { font-family: var(--font-display); font-weight: 700; font-size: 13px; }\n\t.sw { font-size: 11.5px; color: var(--color-muted); margin-top: 2px; }\n\t@media (max-width: 640px) { .steps { grid-template-columns: 1fr; } }\n\t.dock-space { height: 72px; }\n\t@media (max-width: 767px) { .dock-space { height: 84px; } }\n\t.status-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }\n\t.status-row :global(.cd) { margin-left: 0; }\n\t.chip-k { background: #000; color: #fff; border: 1px solid var(--color-border); font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; }\n\t.chip-k.dev { cursor: pointer; border-color: var(--color-coral); color: var(--color-coral); background: transparent; }\n\t/* hero chips sit on the countdown's top line, same height as its number */\n\t.hero .status-row { align-items: flex-start; gap: 8px; }\n\t.hero .chip-k { font-size: 12px; font-weight: 700; letter-spacing: 0.02em; text-transform: none; padding: 8px 12px; border-radius: 10px; line-height: 1.2; }\n\t/* the challenge: text runs the full width, judging rules as a side panel */\n\t.brief { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, 1fr); border-radius: 16px; background: var(--color-surface); border: 1px solid var(--color-border); overflow: hidden; }\n\t.brief-main { padding: 18px 20px; min-width: 0; }\n\t.brief-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n\t.btn-sm { padding: 7px 12px; font-size: 12px; border-radius: 9px; }\n\t.brief-desc { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: var(--color-muted); }\n\t.brief-how { padding: 18px 20px; border-left: 1px solid var(--color-border); background: var(--color-surface-2); display: flex; flex-direction: column; gap: 10px; }\n\t.how-row { display: grid; grid-template-columns: 52px 1fr; gap: 10px; align-items: start; font-size: 12.5px; line-height: 1.45; color: var(--color-muted); }\n\t.how-row b { font-family: var(--font-display); font-size: 15px; font-weight: 800; letter-spacing: -0.02em; color: var(--color-violet); line-height: 1.2; }\n\t.how-row em { font-style: normal; color: var(--color-text); font-weight: 600; }\n\t@media (max-width: 720px) { .brief { grid-template-columns: 1fr; } .brief-how { border-left: none; border-top: 1px solid var(--color-border); } }\n\t.lbl { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }\n\t.brief-text { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.02em; margin-top: 8px; line-height: 1.15; }\n\t.panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 12px; }\n\t.panel h2 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; margin: 0; }\n\t.sub { font-size: 13.5px; color: var(--color-muted); margin: 0; max-width: 70ch; line-height: 1.5; }\n\t.btn { display: inline-flex; align-items: center; justify-content: center; padding: 11px 20px; border-radius: 12px; border: none; font-family: var(--font-display); font-size: 14px; font-weight: 700; cursor: pointer; text-decoration: none; white-space: nowrap; }\n\t.btn-v { background: var(--color-violet); color: #fff; }\n\t.btn-ghost { background: var(--color-surface); color: var(--color-text); border: 1px solid var(--color-border); }\n\t.btn:disabled { opacity: 0.5; cursor: default; }\n\t.cta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n\t.err { color: var(--color-coral); font-size: 13px; margin: 0; }\n\t.lu-n { font-family: var(--font-display); font-weight: 700; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n\t.lu-c { font-size: 11px; color: var(--color-muted); }\n\t.reveal { display: flex; flex-direction: column; gap: 8px; }\n\t.bout { display: grid; grid-template-columns: 1fr 84px 1fr; gap: 10px; align-items: center; background: var(--color-surface-2); border: 1px solid var(--color-border); border-radius: 12px; padding: 10px 12px; }\n\t.f { display: flex; align-items: center; gap: 10px; min-width: 0; }\n\t.f.r { flex-direction: row-reverse; text-align: right; }\n\t.f > div { min-width: 0; }\n\t.mid { display: flex; flex-direction: column; align-items: center; gap: 3px; }\n\t.lh { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }\n\t@media (max-width: 640px) {\n\t\t.war-page { padding: 70px 14px 100px; }\n\t\t.clans { grid-template-columns: 1fr; }\n\t\t.clan.r { justify-content: flex-start; flex-direction: row-reverse; text-align: left; }\n\t\t.vs { display: none; }\n\t\t.bout { grid-template-columns: 1fr 64px 1fr; padding: 8px; }\n\t}\n</style>\n"],"version":3}