:where(.battle-control){position:relative;--control-ink: var(--purple-light-100);--control-surface: var(--surface-control);--control-edge: color-mix(in srgb, var(--control-ink) 38%, transparent);--control-period: 16s}:root :is(button,summary)[appBattleControl].battle-control{isolation:isolate;overflow:hidden;min-width:var(--tap-target);min-height:var(--tap-target);border-color:var(--control-edge);background:linear-gradient(145deg,color-mix(in srgb,var(--control-ink) var(--control-top, 12%),var(--control-surface)),color-mix(in srgb,var(--control-ink) var(--control-middle, 2%),var(--control-surface)) 62%,color-mix(in srgb,var(--control-ink) var(--control-bottom, 6%),var(--control-surface)));color:var(--control-ink);box-shadow:inset 0 1px color-mix(in srgb,var(--control-ink) 16%,transparent);opacity:1;transition:color .18s ease,border-color .18s ease,box-shadow .14s ease}:root [appBattleControl]:is(.primary-action,.claim-victory-action,.end-turn,.purchase-control,.play-button){--control-ink: var(--hud-300);--control-period: 8s}:root [appBattleControl]:is(.danger-action,.concede-action,.flush-button){--control-ink: var(--warning-100)}:root [appBattleControl].commander-action{--control-ink: var(--info-100)}:root [appBattleControl]:is(.selected,.active,[aria-pressed=true],[aria-selected=true]){--control-ink: var(--hud-100);--control-edge: var(--hud-300);--control-surface: color-mix(in srgb, var(--hud-500) 16%, var(--surface-raised))}:root :is(button,summary)[appBattleControl].battle-control:is(:disabled,.unavailable,[aria-disabled=true]){--control-ink: var(--control-muted-ink);--control-surface: var(--control-muted-surface);--control-edge: color-mix(in srgb, var(--control-muted-ink) 36%, transparent);opacity:1;box-shadow:none}:root button[appBattleControl]:disabled{cursor:default}:root [appBattleControl].battle-control:focus-visible{outline:2px solid var(--control-ink);outline-offset:-3px;--control-edge: var(--control-ink)}:root [appBattleControl].battle-control:active:not(:disabled){box-shadow:inset 0 0 1rem color-mix(in srgb,var(--control-ink) 25%,transparent)}:root [appBattleControl].battle-control:is(.close-button,.object-close-button,.object-details-button,.game-menu-toggle,.log-toggle){border-radius:50%}:root [appBattleControl].battle-control:is(.bottom-hex,.hex-action):before{background:var(--control-edge)}:root :is(button,summary)[appBattleControl].battle-control>.battle-control-reflection{position:absolute;z-index:-1;inset:0;width:auto;height:auto;margin:0;padding:0;border:0;border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,transparent 25%,color-mix(in srgb,var(--control-ink) 5%,transparent) 40%,color-mix(in srgb,var(--control-ink) 18%,transparent) 50%,transparent 72%);transform:translate(-120%)}@media(prefers-reduced-motion:no-preference){:root [appBattleControl]:not(:disabled):not(.unavailable):not([aria-disabled=true])>.battle-control-reflection{animation:battle-control-reflection var(--control-period) ease-in-out infinite;animation-play-state:var(--battle-motion-play-state, running)}:root [appBattleControl]:nth-child(2n)>.battle-control-reflection{animation-delay:-2.4s}:root [appBattleControl]:nth-child(3n)>.battle-control-reflection{animation-delay:-4.8s}}@media(hover:hover)and (pointer:fine){:root [appBattleControl].battle-control:hover:not(:disabled){--control-edge: var(--control-ink);box-shadow:inset 0 0 .8rem color-mix(in srgb,var(--control-ink) var(--control-top, 12%),transparent)}}@keyframes battle-control-reflection{0%,65%{transform:translate(-120%)}90%,to{transform:translate(120%)}}@media(prefers-reduced-motion:reduce){:root [appBattleControl].battle-control{transition:none}:root :is(button,summary)[appBattleControl].battle-control>.battle-control-reflection{display:none}}:root [appBattleControl]:is(.error,.war){--control-ink: var(--warning-100)}:root [appBattleControl].battle-control:is(.object-research-button,.accept,.tutorial-action,.bug-report-done){--control-ink: var(--hud-300);--control-period: 8s}:root [appBattleControl].battle-control:is(.close,.dialog-header>button,.advice-heading>button,.bug-report-heading>button){border-radius:50%;min-width:var(--tap-target)}:root [appBattleControl].battle-control.hud-hex{border:0;border-radius:0;clip-path:var(--rounded-hex-clip)}:root [appBattleControl].battle-control.hud-hex:before{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:var(--control-edge);-webkit-mask:var(--rounded-hex-outline) center / 100% 100% no-repeat;mask:var(--rounded-hex-outline) center / 100% 100% no-repeat}:root [appBattleControl].battle-control.hud-hex:focus-visible:before{background:var(--control-ink)}:root details[open]>summary[appBattleControl].battle-control{--control-edge: var(--hud-300)}:root button[appBattleControl]:is([aria-busy=true],.pending){cursor:progress}:root summary[appBattleControl]{list-style-position:inside}:root app-hud [appBattleControl].battle-control:not(.spotlight-control) .battle-control-reflection{animation:none}:root dialog.battle-dialog{position:fixed;transform:none;inset:0;margin:auto;max-width:calc(100vw - 1.3rem);max-height:calc(100dvh - 1.3rem);box-sizing:border-box;color:var(--ink);background:var(--surface-raised);border:1px solid var(--line);border-radius:.85rem;padding:1rem;box-shadow:0 1rem 3rem color-mix(in srgb,var(--bg) 70%,transparent);pointer-events:auto;overscroll-behavior:contain}:root dialog.battle-dialog:not([open]){display:none}:root dialog.battle-dialog::backdrop{background:var(--scrim)}:root dialog.battle-dialog.reading-dialog{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}:root dialog.battle-dialog.reading-dialog:not([open]){display:none}:root .battle-dialog>:is(.dialog-header,.dialog-footer){flex:0 0 auto;padding:.65rem .85rem;background:var(--surface-raised)}:root .battle-dialog>.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border-bottom:1px solid var(--line)}:root .battle-dialog>.dialog-header h1,:root .battle-dialog>.dialog-header h2{margin:0;font-size:1rem;overflow-wrap:anywhere}:root .battle-dialog>.dialog-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:.85rem}:root .battle-dialog>.dialog-footer{border-top:1px solid var(--line)}:root dialog.battle-dialog.reading-dialog[data-device=mobile]{inset:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}:root .battle-dialog :is(p,small,label){overflow-wrap:anywhere}:root .battle-dialog :is(.error,.bug-report-error,.flush-error){color:var(--warning-100)}:root .battle-dialog :is(.confirm-actions,.bug-report-actions){flex-shrink:0}:root .battle-dialog[data-device=mobile] .confirm-actions{display:flex;flex-direction:column;align-items:stretch}:root .battle-dialog[data-device=mobile] .confirm-actions button{min-height:var(--tap-target);padding:.65rem;white-space:normal}:root dialog.battle-dialog.seat-handoff{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;background:var(--bg)}:root dialog.battle-dialog.seat-handoff::backdrop{background:var(--bg)}:root .battle-dialog.choice-menu>.dialog-header{display:block;text-align:center}:root .battle-dialog.choice-menu>.cards{flex:0 1 auto}:root .battle-dialog.choice-menu>.rivals{padding:.65rem}:root .battle-dialog>.dialog-header{order:0}:root .battle-dialog>.dialog-body{order:1}:root .battle-dialog>.dialog-footer{order:2}:root .battle-dialog .bug-report-actions{position:sticky;bottom:-.85rem;padding-block:.65rem;background:var(--surface-raised)}:root .battle-dialog .advice-actions{position:static;width:auto;margin:0;padding:0;transform:none}:root .battle-dialog.log ul{display:grid;gap:.6rem;padding:0;list-style:none;font-size:.85rem;line-height:1.5}:root{--battle-glass-light: color-mix(in srgb, var(--purple-light-100) 48%, var(--hud-100));--battle-glass-line: color-mix(in srgb, var(--battle-glass-light) 24%, transparent);--battle-glass-reflection: linear-gradient(152deg, color-mix(in srgb, var(--battle-glass-light) 14%, transparent), transparent 38%), linear-gradient(116deg, transparent 34%, color-mix(in srgb, var(--battle-glass-light) 5%, transparent) 34.2%, color-mix(in srgb, var(--battle-glass-light) 1%, transparent) 51%, transparent 51.2%);--battle-glass-card: linear-gradient(145deg, color-mix(in srgb, var(--battle-glass-light) 6%, transparent), transparent 65%), color-mix(in srgb, var(--surface-control) 55%, transparent);--battle-glass-inset: color-mix(in srgb, var(--bg) 32%, transparent);--battle-glass-rim: inset 0 1px color-mix(in srgb, var(--battle-glass-light) 19%, transparent)}:root .battle-glass,:root dialog.battle-dialog.battle-glass{--ink: var(--battle-glass-light);--ink-dim: color-mix(in srgb, var(--battle-glass-light) 74%, var(--bg));--line: var(--battle-glass-line);color:var(--ink);border-color:var(--line);background:var(--battle-glass-reflection),var(--surface-raised);box-shadow:var(--battle-glass-rim),inset 0 -1px color-mix(in srgb,var(--battle-glass-light) 5%,transparent),0 1rem 2.5rem color-mix(in srgb,var(--bg) 55%,transparent)}:root .battle-glass>:is(.dialog-header,.dialog-footer),:root .battle-glass .objective-tabs{background:var(--battle-glass-card)}:root dialog.battle-dialog.battle-glass::backdrop{background:color-mix(in srgb,var(--bg) 48%,transparent)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root .battle-glass,:root dialog.battle-dialog.battle-glass{background:var(--battle-glass-reflection),color-mix(in srgb,var(--panel) 90%,transparent);-webkit-backdrop-filter:blur(12px) saturate(.7);backdrop-filter:blur(12px) saturate(.7)}}@media(prefers-reduced-transparency:reduce){:root .battle-glass,:root dialog.battle-dialog.battle-glass{background:var(--surface-raised);-webkit-backdrop-filter:none;backdrop-filter:none}:root dialog.battle-dialog.battle-glass::backdrop{background:var(--scrim)}}.rounded-hex-control{--rounded-hex-height: calc(var(--tap-target) / .8660254038);--rounded-hex-edge: color-mix(in srgb, var(--purple-light-300) 46%, transparent);position:relative;isolation:isolate;display:grid;width:var(--tap-target);min-width:var(--tap-target);height:var(--rounded-hex-height);min-height:var(--rounded-hex-height);flex:0 0 var(--tap-target);place-items:center;overflow:hidden;padding:0;border:0;border-radius:0;clip-path:var(--rounded-hex-clip)}.rounded-hex-control:after{position:absolute;z-index:2;inset:0;background:var(--rounded-hex-edge);content:"";pointer-events:none;-webkit-mask:var(--rounded-hex-outline) center / 100% 100% no-repeat;mask:var(--rounded-hex-outline) center / 100% 100% no-repeat}.rounded-hex-control>*{position:relative;z-index:1}[data-ladder-division]{--division-a: var(--warning-100);--division-b: var(--warning-500);--division-c: var(--info-300)}[data-ladder-division=silver]{--division-a: var(--purple-light-100);--division-b: var(--purple-light-500);--division-c: var(--purple-dark-100)}[data-ladder-division=gold]{--division-a: var(--info-100);--division-b: var(--info-500);--division-c: var(--warning-100)}[data-ladder-division=titanium]{--division-a: var(--hud-100);--division-b: var(--hud-500);--division-c: var(--purple-light-300)}:root{--purple-light-100: #e9dfff;--purple-light-300: #d5c5f4;--purple-light-500: #cbb8ed;--purple-dark-100: #6856b9;--purple-dark-300: #442e8e;--purple-dark-500: #321c68;--info-100: #ffeed4;--info-300: #ffcf87;--info-500: #ffb322;--warning-100: #f08862;--warning-300: #d35221;--warning-500: #b73d00;--hud-100: #ddfcf0;--hud-300: #b1f8de;--hud-500: #7ef2c8;--bg: #070a14;--panel: rgba(14, 19, 34, .86);--surface-raised: rgba(14, 19, 34, .96);--surface-control: rgba(14, 19, 34, .72);--scrim: rgba(4, 6, 12, .82);--scrim-strong: rgba(4, 6, 12, .9);--research-100: hsl(from var(--purple-light-300) calc(h + 14) 100 90);--research-300: hsl(from var(--purple-light-300) calc(h + 14) 100 80);--research-500: hsl(from var(--purple-light-300) calc(h + 14) 100 70);--research-dark-100: color-mix(in srgb, var(--purple-dark-100) 92%, var(--warning-500));--research-dark-300: color-mix(in srgb, var(--purple-dark-300) 92%, var(--warning-500));--research-dark-500: color-mix(in srgb, var(--purple-dark-500) 92%, var(--warning-500));--line: color-mix(in srgb, var(--purple-light-500) 22%, transparent);--ink: var(--purple-light-100);--ink-dim: color-mix(in srgb, var(--purple-light-500) 68%, transparent);--ink-accent: var(--purple-light-500);--menu-button-ink: #fff;--accent: var(--hud-500);--accent-soft: color-mix(in srgb, var(--hud-500) 8%, transparent);--accent-line: color-mix(in srgb, var(--hud-500) 28%, transparent);--control-muted-ink: oklch(from var(--purple-light-300) l 0 h);--control-muted-surface: oklch(from var(--surface-raised) l 0 h);--tier-frontier: var(--hud-500);--tier-contested: var(--info-500);--tier-stronghold: var(--warning-500);--danger: var(--warning-500);--font-display: "Panchang", ui-sans-serif, system-ui, sans-serif;--font-chrome: "OCR A Std", ui-monospace, SFMono-Regular, monospace;--font-prose: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tap-target: 2.75rem;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--control-block-edge: max(.45rem, var(--safe-top));--control-inline-edge: max(.65rem, var(--safe-right));color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--font-prose);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}button,input,select,textarea{font-family:inherit}button,[role=button]{-webkit-user-select:none;user-select:none}app-game-shell{-webkit-user-select:none;user-select:none}app-game-shell :is(input,textarea,[contenteditable=true]){-webkit-user-select:text;user-select:text}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:var(--accent-line);border-radius:99px}::-webkit-scrollbar-track{background:transparent}.calendar-page .reward-puzzle{position:relative;width:clamp(8rem,42vw,11.5rem);aspect-ratio:1;margin:14px auto 0;overflow:hidden;border:1px dashed var(--ink);border-radius:12px;background:color-mix(in srgb,var(--warning-500) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--purple-light-500) 12%,transparent)}.calendar-page .puzzle-piece{position:absolute;display:grid;place-items:center;overflow:hidden;border:1px solid var(--ink);background:color-mix(in srgb,var(--purple-dark-500) 72%,var(--panel));color:var(--ink);font:600 clamp(.42rem,2.4vw,.64rem) var(--font-display)}.calendar-page .puzzle-piece.revealed{border-color:color-mix(in srgb,var(--hud-500) 44%,var(--panel))}.calendar-page .puzzle-piece img{position:absolute;max-width:none;max-height:none;pointer-events:none;filter:saturate(.8)}.calendar-page .reward-puzzle.unlocked{border-style:solid;border-color:var(--hud-500);background:var(--accent-soft)}.calendar-page .puzzle-piece.revealed.just-revealed,.portrait-piece.revealed.just-revealed{animation:calendar-piece-unlock .65s cubic-bezier(.18,.8,.3,1) both}.calendar-page .puzzle-piece.revealed.just-revealed:after,.portrait-piece.revealed.just-revealed:after,.calendar-page .reward-puzzle.unlocked.just-unlocked:after,.portrait.unlocked.just-unlocked:after,.portrait.complete.just-unlocked:after{content:"";position:absolute;inset:-35%;pointer-events:none;background:radial-gradient(circle at 22% 30%,var(--ink) 0 2%,transparent 3%),radial-gradient(circle at 72% 22%,var(--info-100) 0 2%,transparent 3%),radial-gradient(circle at 55% 62%,var(--hud-100) 0 2.5%,transparent 3.5%),radial-gradient(circle at 18% 75%,var(--info-300) 0 1.8%,transparent 3%),radial-gradient(circle at 82% 76%,var(--ink) 0 2%,transparent 3%);animation:calendar-glitter .8s ease-out both}.calendar-page .reward-puzzle.unlocked.just-unlocked,.portrait.unlocked.just-unlocked,.portrait.complete.just-unlocked{animation:calendar-reward-unlock .9s cubic-bezier(.18,.8,.3,1) both}@keyframes calendar-piece-unlock{0%{transform:scale(.58);filter:brightness(2.4)}55%{transform:scale(1.1);filter:brightness(1.45)}to{transform:scale(1);filter:brightness(1)}}@keyframes calendar-glitter{0%{opacity:0;transform:scale(.36) rotate(-12deg)}35%{opacity:1}to{opacity:0;transform:scale(1.15) rotate(12deg)}}@keyframes calendar-reward-unlock{0%{transform:scale(.82);box-shadow:0 0 0 transparent}48%{transform:scale(1.1);box-shadow:0 0 28px color-mix(in srgb,var(--info-500) 70%,transparent),0 0 54px color-mix(in srgb,var(--hud-500) 58%,transparent)}to{transform:scale(1);box-shadow:0 0 16px color-mix(in srgb,var(--hud-500) 38%,transparent)}}.calendar-page .progress-copy{display:flex;justify-content:space-between;gap:8px;margin-top:14px;color:var(--ink-dim);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.calendar-page .progress-copy strong{color:var(--hud-100);font-family:var(--font-display)}.calendar-page .progress-track{height:8px;margin-top:6px;overflow:hidden;border:1px solid var(--accent-line);border-radius:99px;background:var(--surface-control)}.calendar-page .progress-track span{display:block;height:100%;border-radius:inherit;background:var(--hud-500);box-shadow:0 0 10px color-mix(in srgb,var(--hud-500) 55%,transparent);transition:width .18s ease}.calendar-page .reward-hint{margin:7px 0 0;color:var(--ink-dim);font-size:.7rem}.calendar-page .day.pending{box-shadow:inset 0 0 0 1px var(--warning-300)}.calendar-page .day.completed{border-color:var(--hud-500);color:var(--hud-100)}.calendar-page .day.past-open{border-color:var(--hud-300);background:color-mix(in srgb,var(--hud-500) 8%,var(--surface-control));color:var(--hud-100)}.calendar-page .day.past-open:hover:not(:disabled),.calendar-page .day.past-open:focus-visible{border-color:var(--hud-500);background:color-mix(in srgb,var(--hud-500) 16%,var(--surface-control))}.calendar-page .today-pip{width:8px;height:8px;border-radius:50%;background:var(--warning-500);box-shadow:0 0 0 2px color-mix(in srgb,var(--warning-500) 18%,transparent)}@media(prefers-reduced-motion:reduce){.calendar-page .progress-track span{transition:none}.calendar-page .puzzle-piece.revealed.just-revealed,.portrait-piece.revealed.just-revealed,.calendar-page .reward-puzzle.unlocked.just-unlocked,.portrait.unlocked.just-unlocked,.portrait.complete.just-unlocked{animation:none}.calendar-page .puzzle-piece.revealed.just-revealed:after,.portrait-piece.revealed.just-revealed:after,.calendar-page .reward-puzzle.unlocked.just-unlocked:after,.portrait.unlocked.just-unlocked:after,.portrait.complete.just-unlocked:after{display:none}}
