:root{--fw-color-bg: #100b07;--fw-color-sky: #6f8fa3;--fw-color-ground: #4d7a45;--fw-color-bg-elevated: #24180e;--fw-color-bg-panel: rgba(28, 18, 10, .88);--fw-color-border: #d4b15a;--fw-color-border-dim: #6a4e22;--fw-color-text: #f6edd4;--fw-color-text-muted: #c4b189;--fw-color-accent: #d4b15a;--fw-color-accent-strong: #f3d98a;--fw-color-resources: #d08a3e;--fw-color-player: #6fbf73;--fw-color-enemy: #d15b5b;--fw-color-neutral: #8a8f7a;--fw-color-selection: #e8f2a0;--fw-color-danger: #e08a62;--fw-color-success: #8fe08a;--fw-color-warning: #f2b64f;--fw-color-shadow: rgba(0, 0, 0, .62);--fw-hud-bg: linear-gradient(180deg, rgba(40, 28, 16, .94), rgba(12, 8, 4, .96));--fw-hud-border: rgba(212, 177, 90, .52);--fw-hud-border-strong: rgba(243, 217, 138, .85);--fw-hud-inset: rgba(0, 0, 0, .32);--fw-hud-shadow: 0 .7rem 1.6rem rgba(0, 0, 0, .48);--fw-font-display: "Cinzel", "Palatino Linotype", serif;--fw-font-family: "Source Sans 3", "Segoe UI", sans-serif;--fw-font-size-xs: .75rem;--fw-font-size-sm: .85rem;--fw-font-size-md: 1rem;--fw-font-size-lg: 1.25rem;--fw-font-size-xl: 1.75rem;--fw-space-1: .25rem;--fw-space-2: .5rem;--fw-space-3: .75rem;--fw-space-4: 1rem;--fw-space-5: 1.5rem;--fw-space-6: 2rem;--fw-radius-sm: .2rem;--fw-radius-md: .4rem;--fw-radius-lg: .75rem;--fw-shadow-md: 0 .7rem 1.8rem var(--fw-color-shadow);--fw-z-hud: 20;--fw-z-modal: 40;--fw-motion-fast: .14s;--fw-breakpoint-md: 960px}*,*:before,*:after{box-sizing:border-box}html{font-size:max(16px,min(.8334vw,1.4815vh))}html,body{margin:0;min-height:100%;background:var(--fw-color-bg);color:var(--fw-color-text);font-family:var(--fw-font-family);letter-spacing:.01em}body{font-size:var(--fw-font-size-md)}h1,h2,h3,h4{font-family:var(--fw-font-display);letter-spacing:.08em}button,input,select{font:inherit}button{cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--fw-color-border-dim);background:linear-gradient(180deg,rgba(255,220,150,.12),transparent 40%),linear-gradient(#4e3518,#22160c);color:var(--fw-color-text);border-radius:var(--fw-radius-sm);padding:var(--fw-space-2) var(--fw-space-3);box-shadow:inset 0 1px #ffe6aa29,0 1px #0a0603;transition:filter var(--fw-motion-fast),transform var(--fw-motion-fast),border-color var(--fw-motion-fast)}button:hover:not(:disabled){filter:brightness(1.12);border-color:var(--fw-color-border)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.5}button.primary{background:linear-gradient(180deg,#f3dd8c,#c9a03a);color:#2a1c0a;border-color:#f6e4a4;font-family:var(--fw-font-display);font-weight:700;letter-spacing:.06em;text-shadow:0 1px 0 rgba(255,245,200,.35)}button.danger{border-color:var(--fw-color-danger)}input{background:var(--fw-color-bg);color:var(--fw-color-text);border:1px solid var(--fw-color-border);border-radius:var(--fw-radius-sm);padding:var(--fw-space-2)}input:focus,select:focus{outline:2px solid rgba(240,212,138,.5);outline-offset:1px}.panel{position:relative;background:linear-gradient(180deg,rgba(255,220,150,.1),transparent 32%),linear-gradient(180deg,rgba(48,30,16,.92),rgba(16,10,6,.94));border:1px solid var(--fw-color-border);border-radius:.2rem;box-shadow:0 0 0 1px #2a1a0c,0 0 0 3px #7a5a28,0 0 0 4px #1c1208,inset 0 1px #ffe6aa33,var(--fw-shadow-md);padding:var(--fw-space-4);backdrop-filter:blur(8px)}.panel:before,.panel:after{content:"";position:absolute;width:.7rem;height:.7rem;border:2px solid var(--fw-color-accent-strong);pointer-events:none;opacity:.7}.panel:before{top:.2rem;left:.2rem;border-right:0;border-bottom:0}.panel:after{bottom:.2rem;right:.2rem;border-left:0;border-top:0}.fw-label{pointer-events:none;white-space:nowrap;font-family:var(--fw-font-family);text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.6);transform:translate(-50%,-100%)}.fw-label-village{position:relative;display:flex;align-items:center;gap:.3rem;font-family:var(--fw-font-display);font-size:.78rem;letter-spacing:.04em;color:#f3e6c4;background:linear-gradient(180deg,rgba(40,26,12,.78),rgba(14,9,5,.82));border:1px solid rgba(212,177,90,.55);border-radius:.35rem;padding:.12rem .5rem;box-shadow:0 2px 8px #00000073}.fw-label-village.mine{border-color:var(--fw-color-accent-strong);background:rgba(40,30,12,.7)}.fw-label-village.neutral{opacity:.8}.fw-label-village.siege{border-color:#ff6a3a;animation:fw-blink 1.1s infinite}.fw-label-village .dot{width:.55rem;height:.55rem;border-radius:50%;border:1px solid rgba(0,0,0,.6)}.fw-label-village .count{color:var(--fw-color-accent-strong);font-variant-numeric:tabular-nums}.fw-label-village .militia{margin-left:-.1rem;font-size:.7rem;color:var(--fw-color-text-muted);font-variant-numeric:tabular-nums}.fw-label-village .militia:empty{display:none}.fw-label-village .peek{display:none;position:absolute;left:50%;bottom:calc(100% + .4rem);transform:translate(-50%);flex-direction:column;gap:.28rem;min-width:7.5rem;padding:.35rem .5rem;background:linear-gradient(180deg,rgba(36,24,12,.94),rgba(12,8,4,.94));border:1px solid rgba(212,177,90,.7);border-radius:.25rem;box-shadow:0 6px 16px #0000008c;white-space:nowrap}.fw-label-village.hovered .peek{display:flex}.fw-label-village .peek-troops,.fw-label-village .peek-res span{display:flex;align-items:center;gap:.28rem;font-variant-numeric:tabular-nums;font-size:.72rem;color:#f3e6c4}.fw-label-village .peek img{width:.85rem;height:.85rem;object-fit:cover;border-radius:.12rem}.fw-label-village .peek-res{display:flex;gap:.45rem}.fw-label-village .peek:not(.owned) .peek-res span{color:#ffe08a}.fw-label-army{display:flex;flex-direction:column;align-items:center;font-size:.78rem;color:#fff6d8}.fw-label-army .name{font-size:.66rem;letter-spacing:.04em;opacity:.95}.fw-label-army .count{background:rgba(20,14,8,.72);border:1px solid rgba(255,246,216,.45);border-radius:.9rem;padding:0 .5rem;font-weight:700;font-variant-numeric:tabular-nums}.fw-label-army.mine .count{border-color:var(--fw-color-accent-strong)}.fw-label-army.combat .count{border-color:#ff6a3a}.fw-label-army .hp{width:3.2rem;height:.28rem;margin-top:.15rem;background:rgba(0,0,0,.6);border-radius:.2rem;overflow:hidden;display:none}.fw-label-army .hp i{display:block;height:100%;background:linear-gradient(90deg,#ff5a3c,#ffd25a 60%,#8fd67a);transition:width .25s}.fw-selection-box{position:absolute;border:1px solid rgba(240,212,138,.95);background:rgba(240,212,138,.14);pointer-events:none;z-index:5}@keyframes fw-blink{50%{opacity:.55}}
