:root{color-scheme:dark;--bg:#0d1311;--panel:#161f1b;--line:#2c3830;--text:#e5e9dc;--muted:#91a194;--gold:#d5bd80;--green:#91c7a3;--red:#d88973;--cell:clamp(32px,4.65vh,52px)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 48% 35%,#24342a66,transparent 55%),var(--bg);color:var(--text);font:14px/1.5 'Segoe UI',sans-serif}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:none;border:1px solid var(--line);border-radius:5px;padding:8px 13px;transition:background .15s,border .15s,transform .15s}button:hover:not(:disabled){background:#ffffff0c;border-color:var(--gold)}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button.primary{background:var(--gold);border-color:var(--gold);color:#172019;font-weight:700}button.primary:hover{background:#ead4a0}header{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:20px;background:#101713d9}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font:26px/1 Georgia,serif;letter-spacing:7px}.brand-mark{color:var(--gold);font:48px Georgia;letter-spacing:0}.brand small{display:block;font:9px 'Segoe UI',sans-serif;letter-spacing:5px;margin-top:7px;color:var(--gold)}nav{display:flex;align-items:center;gap:28px;font-size:12px}nav button{border:0;padding:8px 0;color:var(--muted)}.nav-active{color:var(--gold);position:relative}.nav-active:after{content:'';position:absolute;height:2px;background:var(--gold);left:0;right:0;bottom:-32px}.build{font-size:9px;letter-spacing:1.7px;color:var(--muted)}.build i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:8px}kbd{font:10px monospace;border:1px solid var(--line);border-radius:3px;padding:1px 4px;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2.5px;color:var(--gold);text-transform:uppercase}.muted{color:var(--muted)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h1{font-size:54px;line-height:1.13}h2{font-size:28px}h3{font-size:20px}.loading{padding:100px;text-align:center;color:var(--muted)}.intro{max-width:1140px;margin:65px auto;padding:0 30px}.intro-top{display:grid;grid-template-columns:1fr 400px;gap:60px;align-items:center}.intro p{margin:20px 0;max-width:500px;color:var(--muted);font-size:15px}.intro .eyebrow{margin-bottom:16px}.hero-sigil{height:290px;position:relative;display:grid;place-items:center;background:radial-gradient(circle,#849b6933,transparent 64%)}.hero-sigil:before,.hero-sigil:after{content:'';position:absolute;width:210px;height:210px;border:1px solid #d5bd8050;transform:rotate(45deg)}.hero-sigil:after{width:165px;height:165px;transform:rotate(15deg)}.hero-sigil svg{width:170px;height:170px;filter:drop-shadow(0 0 30px #aec87850)}.factions{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:38px}.faction{background:linear-gradient(125deg,#31473555,#17221d);border:1px solid var(--line);border-radius:8px;padding:28px;display:grid;grid-template-columns:1fr 100px;gap:15px;position:relative;overflow:hidden}.faction.red{background:linear-gradient(125deg,#4c322b66,#201b17)}.faction p{font-size:13px;margin:8px 0 22px}.faction svg{width:110px;height:140px;align-self:center}.faction button{width:100%}.intro-foot{font-size:11px!important;text-align:center;max-width:none!important;letter-spacing:.3px}.game-top{max-width:1420px;margin:auto;padding:20px 30px 15px;display:flex;justify-content:space-between;align-items:center}.game-top h2{font-size:25px}.game-top .eyebrow{font-size:9px;margin-bottom:3px}.round-pill{display:flex;align-items:center;gap:15px}.round-pill b{color:var(--gold);font-weight:500}.table{max-width:1420px;margin:auto;padding:0 30px;display:grid;grid-template-columns:minmax(215px,1fr) auto minmax(235px,1fr);gap:25px;align-items:start}.side{min-width:0}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#1b261f,#151e19);border-radius:7px;margin-bottom:16px;padding:18px}.panel-label{font-size:9px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}.opponent,.player{display:flex;gap:12px;align-items:center}.avatar{display:grid;place-items:center;width:43px;height:47px;flex-shrink:0;color:var(--gold);background:#3a423044;border:1px solid #657051;border-radius:4px}.avatar svg{height:35px;width:35px}.enemy .avatar{color:var(--red);border-color:#6b463b;background:#64382933}.player-name{font-size:13px;font-weight:600}.small{font-size:11px}.health{display:flex;align-items:center;gap:10px;margin-top:16px}.hp-track{height:4px;background:#32382f;flex:1;overflow:hidden}.hp-track i{display:block;height:100%;background:var(--green)}.enemy .hp-track i{background:var(--red)}.health b{font-size:12px;color:var(--green)}.enemy .health b{color:var(--red)}.stats{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:13px}.stats b{color:var(--text);font-weight:500}.objective-row{display:flex;gap:9px;align-items:center;margin-bottom:14px}.obel-diamond{font-size:27px;color:#6a7666;line-height:1}.obel-diamond.own{color:var(--green)}.obel-diamond.enemy{color:var(--red)}.objective-row span:last-child{margin-left:auto;color:var(--muted);font-size:10px}.progress-pips{display:flex;gap:5px;margin-top:7px}.progress-pips i{height:4px;flex:1;background:#303b31}.progress-pips i.on{background:var(--gold)}.weather{display:flex;gap:12px;align-items:center;margin:8px 0 10px}.weather .weather-icon{color:var(--gold);font-size:30px}.weather p{font-size:12px}.legend{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:10px;color:var(--muted)}.legend span{display:flex;gap:7px;align-items:center}.legend i{width:15px;height:15px;border-radius:3px;border:1px solid #ffffff15}.forest{background-color:#344b34}.hill{background-color:#514e35}.ruin{background-color:#454d48}.lava{background-color:#613c2c}.mountain{background-color:#303936}.plain{background-color:#293c30}.battlefield{display:flex;flex-direction:column;align-items:center}.board-wrap{padding:12px 18px 10px;border:1px solid #556047;background:#1a241cee;border-radius:4px;box-shadow:0 15px 55px #0005;position:relative}.board{display:grid;grid-template-columns:repeat(9,var(--cell));gap:3px;padding:4px}.tile{padding:0;border-radius:2px;width:var(--cell);height:var(--cell);border:1px solid #acb79412;position:relative;display:grid;place-items:center;isolation:isolate}.tile:before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#ffffff08,transparent);z-index:-1}.tile.home{border-bottom-color:#a5c7a540}.tile.enemyhome{border-top-color:#c9957440}.tile .terrain-glyph{position:absolute;color:#acc49a26;font:21px Georgia;bottom:2px;right:3px;pointer-events:none}.tile.fog{background-color:#1c2923;filter:saturate(.4)}.tile.fog .terrain-glyph{opacity:.3}.tile.obel:after{content:'◇';font:40px Georgia;color:#d9c17b;position:absolute;z-index:-1;text-shadow:0 0 12px #eac87244}.tile.obel.claim0:after{color:var(--green)}.tile.obel.claim1:after{color:var(--red)}.tile.legal{border:1px solid #b3cea3;background-image:radial-gradient(circle,#b5d39830,transparent);cursor:pointer}.tile.legal:not(:has(.piece)):after{content:'·';color:var(--green);font-size:35px;position:absolute}.tile.target{border:1px solid var(--red);background-image:radial-gradient(circle,#ba634044,transparent)}.tile.selected{border:2px solid var(--gold);box-shadow:0 0 13px #d5bd8033}.tile:hover{z-index:2}.tile:hover:not(:disabled){border-color:#e5d2a7;background-color:#617454}.piece{width:83%;height:83%;border:1px solid #819c71;border-radius:5px;background:linear-gradient(150deg,#50684a,#243c2d);box-shadow:0 3px 5px #0006;position:relative;display:grid;place-items:center}.piece.foe{border-color:#ae7760;background:linear-gradient(150deg,#755747,#392c25)}.piece.general{border-color:var(--gold);box-shadow:0 0 7px #d5bd8040}.piece svg{width:73%;height:73%;color:#e1e7cd}.piece.foe svg{color:#edd1b5}.piece.building{border-radius:2px;background:#29362c}.piece.foe.building{background:#44372d}.piece .pv{position:absolute;bottom:-3px;right:-4px;font-size:9px;min-width:15px;height:14px;border-radius:3px;background:#16291c;border:1px solid #759266;color:#e2eed1;line-height:12px}.piece.foe .pv{background:#37261d;border-color:#9c6b53}.piece .at{position:absolute;bottom:-3px;left:-4px;font-size:9px;color:#d8bc80;background:#24271a;border:1px solid #64623c;border-radius:3px;min-width:14px;height:14px;line-height:12px}.piece .facing{position:absolute;top:-9px;font-size:9px;color:#d8cf9f}.piece .spent{position:absolute;left:-3px;top:-4px;width:8px;height:8px;border:1px solid #09140b;border-radius:50%;background:#68866d}.piece .spent.ready{background:#d5bd80}.coords{display:flex;justify-content:space-around;font:9px monospace;letter-spacing:0;color:#83937d;margin:0 4px 5px}.board-caption{font-size:9px;letter-spacing:1.5px;color:var(--muted);display:flex;width:100%;justify-content:space-between;margin-top:9px}.board-status{width:100%;min-height:43px;padding:12px 0 5px;color:var(--gold);font-size:11px;text-align:center;max-width:520px}.inspect-art{height:112px;display:grid;place-items:center;background:radial-gradient(ellipse,#5d76583b,transparent 70%);margin:0 0 10px}.inspect-art svg{height:105px;width:105px;color:#d6d6b0;filter:drop-shadow(0 6px 4px #0004)}.inspect-title{font-size:20px;line-height:1.15;margin-bottom:8px}.inspect-type{font-size:9px;letter-spacing:1.4px;color:var(--gold);text-transform:uppercase}.inspect-text{font-size:12px;color:#b3bfb0;margin-top:12px;line-height:1.6}.unit-stats{display:flex;gap:20px;padding:12px 0;margin-top:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px}.unit-stats span:first-child{color:var(--gold)}.unit-stats span:nth-child(2){color:var(--green)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.actions button{padding:8px 4px;font-size:11px}.journal{max-height:176px;overflow:auto;scrollbar-width:thin}.journal p{font-size:10px;color:#9eac9a;padding:6px 0;border-bottom:1px solid #2c383080}.journal p:first-child{color:var(--text)}.resource-strip{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1d2a20;border:1px solid var(--line);border-radius:5px}.resource{font-size:17px;color:var(--green)}.resource.W{color:#e9d597}.resource.R{color:#e6a47d}.resource small{font-size:9px;display:block;color:var(--muted)}.commands{display:flex;gap:5px;margin-top:12px;align-items:center}.commands i{width:18px;height:18px;transform:rotate(45deg);border:1px solid #6a724e;background:#bfa76a}.commands i.empty{background:transparent;border-color:#3d483c}.commands span{margin-left:auto;font-size:10px;color:var(--muted)}.source-buttons{display:flex;gap:7px;margin-top:12px}.source-buttons button{flex:1;font-size:11px;padding:8px 4px}.source-buttons button.on{color:var(--gold);border-color:var(--gold)}.end-turn{width:100%;margin-top:12px;padding:12px!important}.hand-area{max-width:1420px;padding:5px 30px 24px;margin:auto}.hand-title{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px;font-size:9px;color:var(--muted);letter-spacing:1.6px}.hand{display:flex;gap:10px;overflow-x:auto;padding:4px 3px 13px;scrollbar-width:thin}.card{min-width:144px;width:calc((100% - 70px)/8);max-width:200px;height:176px;padding:11px;position:relative;border:1px solid #4e6349;border-radius:7px;background:linear-gradient(150deg,#293c2b,#17251c);text-align:left;display:flex;flex-direction:column;flex-shrink:0}.card.R{border-color:#695040;background:linear-gradient(150deg,#48372a,#261e18)}.card.W{border-color:#656246;background:linear-gradient(150deg,#3b3d2b,#24261c)}.card.unaffordable{filter:saturate(.4);opacity:.58}.card:hover{transform:translateY(-3px);background-color:#29382b}.card.chosen{border:2px solid var(--gold);box-shadow:0 0 15px #d5bd8020}.card-cost{position:absolute;top:8px;right:8px;display:flex;gap:2px}.pip{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:10px;background:#43563e;color:#e0edd3;border:1px solid #79916c}.pip.W{background:#756c42;border-color:#bfb47a}.pip.R{background:#70452e;border-color:#bb8661}.pip.generic{background:#32382d;border-color:#67725d}.card-art{height:85px;display:grid;place-items:center;margin-top:8px;background:radial-gradient(ellipse,#91ac6622,transparent 70%)}.card-art svg{width:67px;height:67px;color:#d1d7af;filter:drop-shadow(0 5px 2px #0005)}.card-name{font-family:Georgia,serif;font-size:14px;line-height:1.15;min-height:32px;margin-top:1px}.card-bottom{display:flex;justify-content:space-between;font-size:10px;margin-top:auto;color:#aabb9f}.card-bottom b{color:var(--gold);font-weight:400}.hint-panel p{font-size:12px;color:var(--muted);margin:8px 0}.hint-step{display:flex;gap:10px;align-items:start;margin:13px 0}.hint-step b{font-size:12px;color:var(--gold);border:1px solid var(--line);border-radius:50%;height:23px;min-width:23px;text-align:center}.hint-step span{font-size:11px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#263728;border:1px solid #798363;border-radius:6px;padding:12px 20px;opacity:0;pointer-events:none;z-index:10;font-size:13px;transition:.2s;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{color:var(--text);background:#162119;border:1px solid #647052;border-radius:10px;max-width:820px;width:calc(100% - 32px);padding:32px;max-height:88vh;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#060b08c9;backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.modal-head button{border:0;font-size:21px;padding:0 8px}.rules{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rules p{font-size:12px;color:#aabb9f;margin:8px 0}.rules h3{font-size:18px;color:var(--gold)}.rule-note{font-size:11px;color:var(--muted);padding-top:18px;border-top:1px solid var(--line);margin-top:18px}.deck-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.deck-row{padding:9px 12px;border:1px solid var(--line);border-radius:4px;display:flex;justify-content:space-between;font-size:12px}.result{text-align:center;padding:24px 0}.result h2{font-size:46px;margin:12px 0}.result p{color:var(--muted);margin:15px auto;max-width:500px}.result-actions{display:flex;justify-content:center;gap:10px;margin-top:28px}.busy{opacity:.7;pointer-events:none}.empty-hand{padding:20px;color:var(--muted);font-size:12px}.mobile-turn{display:none}footer{font-size:9px;color:#6e806f;text-align:center;padding:0 20px 20px;letter-spacing:.8px}
@media(min-width:1500px){:root{--cell:52px}.table{gap:35px}.panel{padding:21px}.hand-area{padding-top:10px}}
@media(max-width:1100px){header{padding:0 20px}nav{gap:18px}.build{display:none}.table{gap:14px;padding:0 18px;grid-template-columns:185px auto minmax(185px,1fr)}:root{--cell:clamp(29px,4.25vw,43px)}.panel{padding:12px}.game-top{padding:16px 20px}.hand-area{padding:5px 20px 20px}.board-wrap{padding:10px}.inspect-art{height:80px}.inspect-art svg{height:80px}}
@media(max-width:850px){:root{--cell:clamp(28px,7vw,48px)}header{height:70px}.brand{font-size:20px}nav{gap:13px}nav .nav-active{display:none}nav button{font-size:11px}.table{grid-template-columns:auto minmax(180px,1fr);max-width:740px}.side.left{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.side.left .panel{margin:0}.side.left .terrain-panel,.side.left .tide-panel{display:none}.side.left .objective-panel{display:none}.battlefield{grid-column:1}.side.right{grid-column:2}.game-top{max-width:740px}.hand-area{max-width:740px}.intro-top{grid-template-columns:1fr}.hero-sigil{display:none}.intro{margin-top:40px}h1{font-size:45px}.factions{gap:14px}.faction{grid-template-columns:1fr;padding:20px}.faction>svg{display:none}.round-pill{font-size:11px}.journal{max-height:125px}}
@media(max-width:560px){:root{--cell:calc((100vw - 62px)/9 - 3px)}header{padding:0 14px}.brand{letter-spacing:4px;gap:5px}.brand-mark{font-size:36px}.brand small{font-size:7px}.table{padding:0 12px;display:flex;flex-direction:column;gap:12px}.side.left{display:grid;width:100%;grid-template-columns:1fr 1fr}.side.left .panel{padding:10px}.health{margin-top:9px}.stats{font-size:9px}.avatar{width:32px;height:36px}.avatar svg{width:28px;height:28px}.player-name{font-size:11px}.small{font-size:10px}.side.right{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px}.side.right .panel{margin:0}.side.right .inspect-panel{grid-column:1/-1}.side.right .journal-panel{display:none}.side.right .control-panel{grid-column:1/-1}.inspect-art{display:none}.inspect-title{font-size:18px}.inspect-text{margin-top:6px}.unit-stats{padding:7px 0}.hint-panel{display:none}.battlefield{width:100%}.board-wrap{padding:9px 11px}.board-status{min-height:34px;padding-top:7px}.game-top{padding:15px 14px}.game-top h2{font-size:21px}.round-pill{gap:8px}.round-pill button{padding:5px 8px;font-size:10px}.hand-area{padding:0 12px 20px}.card{min-width:136px;height:164px}.factions{grid-template-columns:1fr}.intro{padding:0 20px;margin-top:30px}h1{font-size:39px}.intro p{font-size:13px}.faction{padding:20px}.rules,.deck-list{grid-template-columns:1fr}dialog{padding:21px}.result h2{font-size:34px}.result-actions{flex-direction:column}.commands{margin-top:10px}.source-buttons{margin-top:9px}.resource-strip{padding:8px 12px}.end-turn{margin-top:9px;padding:10px!important}.board-caption{font-size:8px}.mobile-turn{display:inline}nav kbd{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(min-width:851px) and (max-height:1000px){:root{--cell:clamp(30px,4.3vh,44px)}header{height:70px}.nav-active:after{bottom:-25px}.game-top{padding-top:14px;padding-bottom:12px}.panel{padding:14px;margin-bottom:12px}.terrain-panel,.journal-panel{display:none}.health{margin-top:10px}.stats{margin-top:9px}.inspect-art{height:60px;margin-bottom:7px}.inspect-art svg{height:62px}.inspect-text{font-size:11px}.inspect-title{font-size:19px}.unit-stats{padding:9px 0}.board-status{min-height:33px;padding-top:8px}.hand-title{margin:2px 0 7px}.card{height:164px}.card-art{height:72px}.hand-area{padding-top:0}.tide-panel .panel-label{margin-bottom:5px}.weather{margin:2px 0 5px}.tide-panel{padding:12px 14px}.source-buttons{margin-top:10px}.end-turn{padding:10px!important}}

.download-link{display:inline-block;background:var(--gold);color:#172019;padding:10px 16px;border-radius:5px;text-decoration:none;font-weight:600}
@media(min-width:851px) and (max-height:900px){.tide-panel{display:none}:root{--cell:clamp(30px,4.15vh,42px)}.card{height:150px}.card-art{height:60px}.card-art svg{height:55px}.hint-step{margin:10px 0}.hint-step span{font-size:10px}.inspect-text{font-size:10px}.inspect-art{height:48px}.inspect-art svg{height:49px}.inspect-title{font-size:17px}}
