/* Reusable Shadow Chronicle frames: hammered trim, carved corners, restrained crystals. */
.landscapeHUD .actions button{min-height:36px!important;height:100%!important}.landscapeHUD .selectionTools button{font-size:0!important}.landscapeHUD #undoMove{font-size:10px!important}.landscapeHUD .actions{min-height:36px!important}.landscapeHUD .heroInfo h3{font-size:18px}.landscapeHUD .heroInfo .meterLabel{font-size:9px;line-height:12px}.landscapeHUD .heroInfo .statusText{font-size:9px;line-height:12px;max-height:24px;white-space:normal}
@media(orientation:portrait){.battleDock .actionHint{display:none}.battleDock .heroCard{min-height:86px;max-height:104px;overflow:hidden}.battleDock .selectionTools button{min-height:30px;font-size:11px}.battleDock .commandArea{padding:5px}.battleDock .heroInfo .level,.battleDock .heroInfo .className{font-size:9px}.battleDock .heroInfo .statusText{font-size:8px}}
#game,#game *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#game input,#game select{font-size:16px}#chronicle,#chronicle .entryList,#chronicle .abilityList,#chronicle .tabContent,#chronicle .chronicleBody{overscroll-behavior:contain;touch-action:pan-y}#chronicle .tabs,.actions{touch-action:pan-x}#game [inert]{pointer-events:none!important}
@media(orientation:portrait){.battleDock{grid-template-columns:minmax(0,1fr)!important}}
.commandArea,.actions{min-width:0;max-width:100%}.enemyRail{border-width:2px!important}.battleDock .actions{display:flex!important;overflow-x:auto!important;width:100%;min-width:0}.battleDock .heroCard{min-width:0}.battleDock .endButton{min-width:92px!important}
@media(orientation:portrait){.battleDock{left:10px!important;right:10px!important;width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important;min-width:0!important;align-items:stretch!important}.battleDock .commandArea{width:100%!important;min-width:0!important;max-width:100%!important}.battleDock .heroCard{max-width:calc(100% - 54px)!important;width:230px!important;margin-left:45px}.battleDock .actions{flex-wrap:nowrap!important}.battleDock .heroCard>img{width:50px;max-height:74px}.battleDock .heroCard h3{font-size:20px}}
#chronicle .chronicleBody{position:static!important;inset:auto!important;transform:none!important;width:auto!important;height:auto!important;max-height:none!important;flex-direction:row!important;justify-content:normal!important;align-items:stretch!important}#chronicle .chronicleBody button{position:relative!important;width:auto;height:auto;max-width:none;flex:none}#chronicle .chronicleBody img{position:static;inset:auto}
.chronicleFrame,.tabContent,.characterSummary,.dialogueBox{border:14px solid transparent!important;border-image:url('assets/chronicle-frame.svg') 30 stretch!important}.heroCard,.commandArea,.enemyRail,.panel,.targetCard{border:8px solid transparent!important;border-image:url('assets/chronicle-frame.svg') 30 stretch!important}.titlePage{text-align:center;padding-top:8%!important}.titlePage h1{font-size:50px;letter-spacing:6px;color:#d3b8df}.titlePage button{display:block;margin:12px auto;width:240px}.chronicleFrame>header{border-image:none}
:root{--pewter:#78757f;--parchment:#e8dfd1;--ink:#0c0b10;--amethyst:#8555ad}button{touch-action:manipulation}button:focus-visible{outline:3px solid #e6c875;outline-offset:2px}button,.heroCard,.commandArea,.round,.turnOrder,.enemyRail,.cameraTools,.panel,.targetCard,.modalContent{border-radius:2px!important;background-color:var(--ink);border-color:var(--pewter);box-shadow:inset 0 0 0 2px #25232d,inset 0 0 0 3px #08080b,0 2px 4px #0009;color:var(--parchment)}button{background-image:linear-gradient(125deg,#fff1,transparent 32%,#fff04b00 55%,#ffffff08);font-family:Georgia,serif}button.active,button.selected,.tabs .selected{border-color:#bf88df!important;background-color:#372047!important;box-shadow:inset 0 0 7px #a26ec555,0 0 0 1px #4d2b68}.primary{border-color:#a18752!important}.party .current{outline:2px solid #61e4ff}.party .active{border-color:#e8c56f!important}.enemyPortrait.inspected{border-color:#e8c56f!important}.turnCard.current{border-color:#6deaff!important}.turnCard.current .nowFlag{color:#a8efff}.battleDock:before,.chronicleFrame:before{content:'◆';position:absolute;top:-8px;left:3px;color:#bb79dc;font-size:17px;text-shadow:1px 1px #e8c9ff,-1px -1px #160c20}.actions{overflow-x:auto;scrollbar-width:thin;touch-action:pan-x}.actions button{flex:0 0 82px!important;font-size:12px!important;min-width:82px!important}.actions .endButton{position:sticky;right:0;z-index:2;background-color:#30291a}.actions:after{content:'›';align-self:center;color:#c696df;font-size:25px}.actionHint{font-size:11px}.selectionTools{overflow:visible}.landscapeHUD .actions button{flex-basis:85px!important}.landscapeHUD .actions .actionIcon{font-size:18px}.landscapeHUD #helpButton{display:block!important}.landscapeHUD .tools{gap:2px}.landscapeHUD .tools button{width:24px;min-width:24px}.landscapeHUD .selectionTools button{font-size:10px;width:auto;min-width:28px}.landscapeHUD #undoMove{max-width:50px;white-space:normal}.targetCard{max-width:calc(100vw - 120px);box-sizing:border-box}.enemyList{scroll-snap-type:y mandatory}.enemyPortrait{scroll-snap-align:start}.enemyScrollArrow{pointer-events:none}.cameraControls{flex-direction:column!important}.hidden{display:none!important}
#chronicle{position:fixed;inset:0;z-index:30;background:#030306df;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));color:var(--parchment);font:14px/1.5 Georgia,serif;touch-action:pan-y;box-sizing:border-box;overflow:hidden}#chronicle *{box-sizing:border-box}.chronicleFrame{height:100%;position:relative;border:4px ridge #66616e;background:repeating-linear-gradient(35deg,#ffffff02 0 1px,transparent 1px 6px),#0c0b10;box-shadow:inset 0 0 0 2px #33203e;display:flex;flex-direction:column;min-height:0}.chronicleFrame>header{display:flex;gap:12px;align-items:center;padding:5px 12px;border-bottom:3px ridge #665a70;background:linear-gradient(#211b29,#08070c);flex-shrink:0}.chronicleFrame>header h1{font-size:20px;margin:0;flex:1}.crystal{color:#b67edb;font-size:27px;text-shadow:1px 2px #452654}.chronicleFrame button{min-height:40px;padding:7px 10px;text-align:left;color:var(--parchment)}.chronicleBody{display:flex;flex:1;min-height:0;overflow:auto;gap:10px;padding:10px}.chronicleBody article{flex:1;min-width:0;overflow:auto;padding:10px}.chronicleBody h2{font-size:21px;margin:5px 0 10px}.chronicleBody h3{color:#be98d3;font-size:16px}.chronicleBody p{margin:8px 0;color:#cac2bd}.mainMenu,.entryList{width:190px;flex-shrink:0;overflow:auto;display:flex;flex-direction:column;gap:5px}.mainMenu button{border-left:3px solid #664575}.entryList button small{display:block}.partySelector{width:54px;flex-shrink:0;overflow:auto;display:flex;flex-direction:column;gap:6px}.partySelector button{padding:1px;min-height:51px}.partySelector img{width:100%;image-rendering:pixelated}.characterSummary{width:175px;flex-shrink:0;overflow:auto;padding:7px;border:2px ridge #6e6574}.characterSummary>img{width:100%;max-height:210px;object-fit:contain;image-rendering:pixelated;background:radial-gradient(#39283b,#08070d)}.characterSummary h2{font-size:24px}.characterSummary p{font-size:12px}.characterSummary meter{display:block;width:100%;height:12px}.characterContent{min-width:0;flex:1;display:flex;flex-direction:column;min-height:0}.tabs{display:flex;gap:3px;overflow-x:auto;flex-shrink:0;touch-action:pan-x}.tabs button{white-space:nowrap;min-height:38px!important;padding:5px 10px!important}.tabContent{overflow:auto;flex:1;padding:10px;border:2px ridge #554c60}.statRows{margin:10px 0}.statRows>div{display:flex;gap:15px;border-bottom:1px solid #352b3d;padding:6px 0;justify-content:space-between}.statRows dt{color:#b8a5c4}.statRows dd{margin:0;text-align:right;max-width:65%}.abilityColumns{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(200px,1.4fr);gap:10px;height:100%;min-height:0}.abilityColumns>div{display:flex;flex-direction:column;min-height:0}.abilityList{display:flex;flex-direction:column;gap:5px;overflow:auto}.abilityList button{display:flex;align-items:center;gap:9px}.abilityList small{display:block;color:#b6a5c4;font:11px sans-serif}.filters{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}.filters button{font-size:11px;min-height:30px!important}.abilitySigil{display:inline-grid;place-items:center;width:38px;height:38px;border:2px ridge #9d708a;color:#e8c4ff;background:radial-gradient(#6c265f,#140c15);flex-shrink:0;font-size:25px}.abilitySigil.physical{color:#ffa292;background:radial-gradient(#652e32,#190a0d)}.abilitySigil.holy{color:#f1d483;background:radial-gradient(#655b2e,#19170a)}.abilityTitle{display:flex;gap:10px;align-items:center}.abilityTitle p{font-size:12px}.positive{color:#99c69c!important}.negative{color:#dc958c!important}.saveSlots{width:100%;overflow:auto}.saveSlot{border:2px ridge #6c6073;padding:8px;margin-bottom:8px}.event{display:block;position:relative}.eventBackdrop{position:absolute;inset:0;background:linear-gradient(transparent,#050408),url('assets/environment.png') center/cover;opacity:.3}.dialogueBox{position:relative;margin-top:10%;background:#08060def;border:3px ridge #866695;max-width:850px!important;margin-left:auto;margin-right:auto}.dialogueBox img{float:left;width:110px;margin-right:15px;image-rendering:pixelated}.dialogueBox button{display:block;width:100%;margin-top:7px}#chronicleNotice{padding:0 12px;color:#e0c382;flex-shrink:0}#undoMove:disabled{display:none}
@media(orientation:portrait){.chronicleBody.company{display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px;padding:6px}.partySelector{grid-row:1/3;width:44px}.characterSummary{width:auto;max-height:150px;padding:6px;overflow:auto}.characterSummary>img{width:90px;height:95px;float:left;margin-right:10px}.characterSummary h2{font-size:20px}.characterSummary p{margin:2px}.characterContent{min-height:0;overflow:hidden}.abilityColumns{display:block;height:auto}.abilityList{max-height:190px}.abilityColumns article{padding:4px}.chronicleFrame>header{padding:4px;gap:4px}.chronicleFrame>header h1{font-size:16px}.chronicleFrame button{font-size:12px}.entryList{width:110px}.chronicleBody{padding:5px;gap:5px}.mainMenu{width:125px}.chronicleBody article{padding:5px}.statRows>div{gap:5px;font-size:12px}.battleDock .actions button{min-height:42px}.actions{padding-bottom:3px}}
