:root{color-scheme:dark;--bg:#0c211e;--panel:#122d27;--line:#2e4c3e;--mint:#b5e6b6;--gold:#e8c578;--text:#eeefe0;--muted:#a5b8a9;--jade:#79d7bf;--amber:#ffb76c}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 25% 0,#214739,transparent 60%),var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}main{max-width:1440px;margin:auto;padding:0 42px}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#183a30;color:var(--text);border-radius:7px;padding:10px 13px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#2a5140;border-color:#6b8b62}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #f1db92;outline-offset:3px}a{color:var(--mint);text-underline-offset:3px}header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:15px;letter-spacing:3px;text-decoration:none;color:var(--text);font-weight:700;white-space:nowrap}.sigil{font-size:31px;color:var(--gold);vertical-align:-3px;margin-right:10px}nav{display:flex;align-items:center;gap:10px}nav button{background:transparent;border-color:transparent;color:#c4cfbd;font-size:12px}nav button span{border:1px solid #607a5c;border-radius:50%;padding:0 4px;margin-left:6px}.offline{font:italic 14px Georgia,serif;color:#b9c4a6;margin-right:22px}.intro{display:flex;justify-content:space-between;align-items:center;padding:30px 0 27px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--gold);margin:0 0 10px}h1{font:400 clamp(32px,3vw,47px)/1.15 Georgia,serif;margin:0 0 9px;letter-spacing:-1.5px}h1 em{color:#cae5ab}h2{font:400 24px/1.2 Georgia,serif;margin:0 0 6px}.intro p:not(.eyebrow){color:#b2c0aa;margin:0;font-size:13px}.chapter{display:flex;flex-direction:column;gap:7px;min-width:245px}.chapter label{font-size:9px;color:#b6c6ad;letter-spacing:1.5px}.chapter select{background:#173b30;border:1px solid #55705b;border-radius:6px;padding:11px 12px;color:var(--text)}.chapter>span{font-size:10px;color:#a3b695;text-align:right}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:20px}.arena-panel{border:1px solid #46604a;border-radius:12px;overflow:hidden;background:#102820;align-self:start;box-shadow:0 18px 80px #0003}.battlebar{padding:14px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #4a6245;background:#143426}.battlebar>div{display:flex;align-items:center;gap:11px}.turn-dot{width:7px;height:7px;background:#a9e4a0;border-radius:50%;box-shadow:0 0 12px #b8f4aa66}.battlebar strong{font-weight:600;font-size:13px}#round{color:#9caf8c;font-size:11px;border-left:1px solid #4c6447;padding-left:12px}.essence{color:#f1d389;font-size:20px}.essence strong{font-size:22px}.essence>span{font-size:11px;color:#c8c29e}.arena{position:relative;background:linear-gradient(#112b2830,#112b2830),url('sanctuary.webp') center/cover;aspect-ratio:1.43;display:flex;align-items:center;justify-content:center;isolation:isolate}.board{position:relative;width:89%;aspect-ratio:1.41;filter:drop-shadow(0 8px 10px #0006)}.cell{position:absolute;width:10.15%;height:16.6%;padding:0;border:0;border-radius:0;background:#193c329e;clip-path:polygon(50% 1%,98% 25%,98% 75%,50% 99%,2% 75%,2% 25%);transition:background .15s;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.cell:hover:not(:disabled){background:#6e9a6aab;border:0}.cell:focus-visible{outline:0;background:#fff3a8!important;filter:brightness(1.3)}.cell:after{content:"";position:absolute;inset:2px;clip-path:inherit;pointer-events:none;box-shadow:inset 0 0 20px #0003}.cell.rock{background:#2d3834d1;color:#a0a898;font-size:clamp(16px,2.5vw,38px)}.cell.glade{background:#9aba607d}.glade-mark{font-size:28px;color:#e7ed99;text-shadow:0 0 10px #cff779}.cell.reach{background:#4bbbc69e}.cell.reach:before{content:"";width:12%;aspect-ratio:1;background:#d5fbf3;border-radius:50%;box-shadow:0 0 9px #c0e8ca}.cell.summon{background:#b8cf68a8}.cell.summon:before{content:"+";font-size:30px;color:#f4fbd8}.cell.selected{background:#f4e2a4}.cell.hinted{background:#f4ec70;animation:hint-glow 1.3s ease-in-out 3}.cell.target{background:#f1936dcc}.cell.healable{background:#b8a5ec}.token{width:77%;height:78%;border:3px solid var(--jade);border-radius:50%;position:relative;overflow:visible;background:#113e31;z-index:1;box-shadow:0 3px 6px #0009}.token.enemy{border-color:var(--amber)}.token img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.token.exhausted img{filter:saturate(.5) brightness(.65)}.health{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);background:#092b26;border:1px solid var(--jade);border-radius:5px;min-width:23px;padding:0 4px;color:#eafff5;font:700 clamp(10px,1vw,14px)/1.4 system-ui;z-index:2}.enemy .health{background:#4a291c;border-color:var(--amber)}.ready{position:absolute;width:7px;height:7px;background:#f5ffe7;border:1px solid #1d4533;border-radius:50%;top:0;right:0}.keeper-mark{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:13px;color:#fff3a9;text-shadow:0 1px 3px #000;z-index:3}.coord{position:absolute;font-size:8px;color:#e6f2ca75;bottom:8px;pointer-events:none}.legend{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap;display:flex;gap:18px;font-size:8px;letter-spacing:1px;background:#142d23d9;border:1px solid #768a4d5e;padding:7px 13px;border-radius:20px;color:#e9e9cd}.legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.jade{background:var(--jade)}.amber{background:var(--amber)}.instruction{padding:13px 20px;font-size:12px;color:#d5dec3;min-height:45px;background:#173628;border-top:1px solid #54724b66}.toolbar{display:flex;justify-content:space-between;gap:8px;padding:13px 16px;background:#112b23;border-top:1px solid #476047}.toolbar>div{display:flex;gap:7px}.toolbar button{font-size:12px;padding:10px 12px}.primary{background:#c4df9f;color:#183521;border-color:#cee7a8;font-weight:700}.primary:hover:not(:disabled){background:#e0efbd;color:#11291b;border-color:#e0efbd}.primary span{margin-left:22px}aside{display:flex;flex-direction:column;gap:13px}.card{border:1px solid #39533e;border-radius:10px;padding:17px;background:linear-gradient(135deg,#1d3b2f,#112b24)}.unit-heading{display:flex;align-items:center;gap:13px;margin:15px 0}.unit-heading img{border-radius:50%;border:1px solid #88ac6c}.unit-heading h2{font-size:23px}.unit-heading p{font-size:10px;color:#b2c1a4;margin:3px 0}.stats{display:flex;justify-content:space-between;border-top:1px solid #47603e;border-bottom:1px solid #47603e;padding:12px 0;margin:0 0 12px}.stats div{display:flex;flex-direction:column;gap:3px}.stats strong{font-size:19px;font-weight:500;color:#e8e8cb}.stats span{font-size:8px;color:#a7b596;letter-spacing:1.2px}#unit-role{font-size:12px;line-height:1.6;color:#b7c7a7;margin:0 0 9px}.readiness{font-size:10px;color:#cde6b1;margin:0}.section-heading{display:flex;justify-content:space-between;gap:10px}.section-heading span{font-size:8px;color:#a6b996}.small{font-size:11px;line-height:1.55;color:#aebe9d;margin:0 0 12px}.summon-option{width:100%;display:flex;align-items:center;gap:10px;padding:8px;margin-top:6px;background:#1c3d2e;border-color:#3b5940;text-align:left}.summon-option img{width:39px;height:39px;border-radius:7px;object-fit:cover}.summon-option>div{flex:1}.summon-option strong{font-size:12px;font-weight:500;display:block}.summon-option small{font-size:9px;color:#b0c1a1;display:block;margin-top:3px}.summon-option>span{color:#e7ce8c;font-size:13px}.summon-option.active{border-color:#e8d681;background:#3e5733}#cancel{width:100%;margin-top:7px;font-size:11px;padding:6px}.chronicle{flex:1;min-height:145px}#log{padding:0;list-style:none;margin:0;font-size:10px;line-height:1.55;color:#9cb18f}#log li{padding:4px 0;border-bottom:1px solid #3d553833}#log li:first-child{color:#dbe5c5}footer{display:flex;justify-content:space-between;padding:20px 0 30px;color:#8fa38e;font-size:10px;gap:10px;line-height:1.6}footer button{border:0;padding:0;background:none;color:#b6c8a5;text-decoration:underline;font-size:10px}dialog{background:#17382c;color:#e7ebd7;border:1px solid #6e8955;box-shadow:0 20px 100px #0009;border-radius:15px;max-width:620px;width:calc(100% - 30px);padding:32px;line-height:1.65;font-size:13px}dialog::backdrop{background:#031710c9;backdrop-filter:blur(5px)}dialog h2{font-size:33px;margin-bottom:18px}dialog li{padding:5px 0}dialog ol{padding-left:20px}.close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;padding:0 8px}.keys{font-size:11px;border:1px solid #55704b;padding:12px;border-radius:7px}code{font-size:11px;color:#c1d59c;overflow-wrap:anywhere}.hidden{display:none!important}.result{position:absolute;z-index:5;inset:15% 11%;background:#112e24f2;border:1px solid #bccb7c;border-radius:16px;box-shadow:0 20px 70px #0008;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:22px;text-align:center}.result h2{font-size:36px;color:#e7e8be}.result p:not(.eyebrow){max-width:330px;line-height:1.6;font-size:13px;color:#c3d2ad}.result button{margin:5px;max-width:100%;font-size:12px}@keyframes hint-glow{50%{background:#8bbb88}}@media(min-width:1250px){.arena{aspect-ratio:1.48}.game-layout{grid-template-columns:minmax(0,1fr) 300px}.card{padding:19px}.intro{padding-top:35px}}@media(max-width:1000px){main{padding:0 22px}.offline{display:none}.game-layout{grid-template-columns:minmax(0,1fr) 250px;gap:13px}.card{padding:13px}.unit-heading h2{font-size:20px}.arena{aspect-ratio:1.2}.board{width:95%;}.legend{font-size:7px;gap:10px}.toolbar{padding:10px;gap:5px}.toolbar button{padding:9px 8px;font-size:11px}.primary span{margin-left:6px}.intro{padding:25px 0}.intro p:not(.eyebrow){max-width:280px;line-height:1.5}}@media(max-width:760px){main{padding:0 14px}header{height:64px}.brand{font-size:12px;letter-spacing:2px}.sigil{font-size:24px;margin-right:5px}nav{gap:0}nav button{padding:6px;font-size:11px}.intro{align-items:start;padding:23px 0 18px;gap:12px}h1{font-size:31px;max-width:220px;letter-spacing:-.8px}.intro .eyebrow{font-size:8px;letter-spacing:1.4px}.intro p:not(.eyebrow){font-size:11px}.chapter{min-width:0;width:43%;max-width:215px;padding-top:2px}.chapter label{font-size:7px;letter-spacing:1px}.chapter select{font-size:10px;padding:9px 4px;width:100%}.chapter>span{font-size:8px}.game-layout{grid-template-columns:1fr;gap:13px}.arena{aspect-ratio:1.22;min-height:300px}.board{width:96%;max-width:670px}.cell{min-height:0}.health{font-size:11px;min-width:20px}.token{border-width:2px}.ready{width:6px;height:6px}.coord{font-size:7px;bottom:6px}.legend{bottom:9px;font-size:7px}.battlebar{padding:12px 15px}.instruction{font-size:11px;padding:11px 14px;min-height:49px}.toolbar{padding:10px}.toolbar button{padding:10px 9px}.toolbar .primary{min-width:104px}aside{display:grid;grid-template-columns:1fr 1fr;gap:10px}.selected-card{min-width:0}.card .eyebrow{font-size:8px;letter-spacing:1px}.unit-heading{gap:8px;margin:12px 0}.unit-heading img{width:42px;height:42px}.unit-heading h2{font-size:20px}.stats strong{font-size:16px}.stats span{font-size:7px}.section-heading span{display:none}.summon-option{padding:6px;gap:7px}.summon-option img{width:30px;height:30px}.summon-option strong{font-size:10px}.summon-option small{font-size:8px}.summon-option>span{font-size:11px}.small{font-size:10px;margin-bottom:9px}.chronicle{grid-column:1/-1;min-height:0}#log{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}#unit-role{font-size:10px}.readiness{font-size:9px}footer{flex-direction:column;gap:3px;font-size:9px;padding-top:15px}.result{inset:8% 6%}.result h2{font-size:28px}.result p:not(.eyebrow){font-size:11px}dialog{padding:24px}dialog h2{font-size:28px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(min-width:1001px){.arena{height:min(48vw,560px);aspect-ratio:auto}.board{width:min(89%,740px)}}
