:root{color-scheme:dark;--gold:#e6c785;--edge:#977344;--ink:#f5ecd7;--green:#102e24;--paper:#e4d2aa}*{box-sizing:border-box}body{margin:0;background:#12241b url('assets/table.png') center/cover fixed;color:var(--ink);font:14px/1.5 Georgia,serif;min-height:100vh}button,input{font:inherit}button{cursor:pointer;color:var(--ink);background:linear-gradient(#322b20,#171811);border:1px solid #a18452;border-radius:5px;padding:8px 12px;box-shadow:0 2px 4px #0007}button:hover:not(:disabled){filter:brightness(1.2)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ffda76;outline-offset:3px}button[aria-pressed=true]{outline:2px solid #efd29a}a{color:inherit}h1,h2,h3,p{margin:0}h2{font-weight:normal}.app{max-width:1640px;margin:auto;padding:16px 30px}header{display:grid;grid-template-columns:230px 1fr 295px;align-items:center;gap:16px;margin-bottom:18px}h1{text-align:center;font-size:clamp(27px,3.6vw,57px);line-height:1.1;color:#f2d88f;font-weight:normal;text-shadow:0 3px 2px #000,0 0 16px #000;letter-spacing:-1.5px;white-space:nowrap}.cross{display:inline-block;padding:0 10px;border:2px solid #b48a43;border-radius:4px 4px 20px 20px}.modeplate{text-align:left;letter-spacing:1px;font-size:15px;padding:9px 16px}.modeplate small{display:block;color:#eee1c0;letter-spacing:0;font-size:12px}.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:5px}.toolbar button{padding:8px;font-size:12px}input[type=range]{width:66px;accent-color:#d6b475}.upper{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;padding-right:178px;margin-bottom:20px}.parchment{background:radial-gradient(ellipse at center,#f0dfba,#d8bd8f);color:#292b1c;box-shadow:0 5px 15px #0008,inset 0 0 20px #82633c55;border:2px solid #8d6738;border-radius:6px;padding:20px 23px}.eyebrow{font:10px/1.5 Arial,sans-serif;letter-spacing:2px;color:#725027;margin-bottom:5px}.encounter h2{font-size:28px;font-weight:bold;margin-bottom:7px}.encounter p{font-size:13px;line-height:1.5}.encounter button{font-size:11px;background:transparent;color:#3a3728;border-color:#88723f;padding:5px 9px;margin-top:6px}.tactic{border-top:1px solid #87774755;padding-top:8px}.goal{font-weight:bold;margin-top:6px}#route{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}#route span{width:25px;height:25px;display:grid;place-items:center;border:1px solid #8a6c37;border-radius:50%;background:#57462d;color:#d9c396;font-size:12px}#route span.current{background:#201c13;color:#ffe599;border:2px solid #e6b750;box-shadow:0 0 6px #a96a19}#route span.done{background:#2f613e;color:#fff}.goldframe{border:4px double #ae8750;box-shadow:0 4px 12px #000a,inset 0 0 0 3px #181911,inset 0 0 30px #0008;border-radius:14px;background:#11291e}.boss{position:relative;min-height:265px;overflow:hidden;background:linear-gradient(110deg,#ddc596,#e8d4ae);isolation:isolate}.bossface{position:absolute;right:0;top:0;height:100%;aspect-ratio:1;background-size:400% 400%;transition:filter .3s;z-index:-1;mask-image:linear-gradient(to right,transparent,#000 27%);-webkit-mask-image:linear-gradient(to right,transparent,#000 27%)}.bossface.change{animation:portraitChange .65s ease-out}.bossname{padding:16px 18px;width:54%;color:#201c14;text-shadow:0 1px 5px #e5d2a6}.bossname h2{font-size:clamp(23px,2.3vw,35px);font-weight:bold;line-height:1.1}.bossname p{font-size:15px;margin:6px 0}.bossname small{font-size:12px}#bossrank{display:block;color:#754329;font-weight:bold;font-size:16px;margin-bottom:4px}.bosshealth{position:absolute;bottom:0;left:0;right:0;display:flex;gap:8px;align-items:center;background:#1d1a13f2;padding:10px;font-size:11px}.bosshealth .track{flex:1}.bosshealth b{white-space:nowrap}#stage{font-size:9px;background:#613327;border:1px solid #a77f46;padding:3px 5px;color:#f3d397}.track{height:15px;border:1px solid #87704a;border-radius:20px;background:#111912;overflow:hidden;min-width:35px}.track>div{height:100%;background:linear-gradient(#e4564b,#941c18);transition:width .4s}#bossbar{width:100%}.middle{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:22px;align-items:start}.tray{position:relative;min-height:420px;padding:27px 26px 18px;text-align:center;background:radial-gradient(ellipse at center,#184532d9,#051d16e8);border-width:7px;border-color:#a7783f;border-radius:27px}.plate{position:absolute;top:-17px;left:50%;transform:translateX(-50%);background:linear-gradient(#584224,#171b12);border:3px double #d1aa5d;border-radius:8px;padding:2px 25px;font:bold 18px Georgia;color:#f5d58a;white-space:nowrap}#instruction{font-size:13px;color:#e5d8b9;margin-bottom:12px}.faterow{display:flex;justify-content:center;gap:28px;min-height:89px;padding:5px 0 14px}.fatecube{width:78px;height:78px;display:grid;place-items:center;font:bold 58px/1 Arial,sans-serif;color:#24211a;background:linear-gradient(130deg,#fff7e9,#decaaa 70%,#b49c79);border:1px solid #fff6dc;border-bottom:9px solid #b69f7e;border-right:6px solid #c4ad88;border-radius:16px;box-shadow:7px 9px 10px #0008;transform:rotate(-7deg);user-select:none}.fatecube:nth-child(2){transform:rotate(9deg)}#fateLabel{font-size:20px;letter-spacing:1px;color:#eaca80;margin:12px 0 7px}#rollSummary{min-height:23px;font-size:12px;color:#e6e6ce}.dice{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:14px 0 18px}.diebtn{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;background:linear-gradient(#0a1810,#13291e);border:2px solid #5e6548;padding:7px 3px 5px;border-radius:9px;box-shadow:inset 0 0 6px #000}.diebtn.selected{border-color:#f7d68a;box-shadow:0 0 9px #e8b34d88,inset 0 0 5px #000;opacity:1}.diebtn svg{display:block;width:min(100%,76px);height:70px;filter:drop-shadow(3px 4px 3px #0009)}.diebtn strong{font-size:15px;color:#edcf85}.diebtn small{font:10px/1.4 Arial,sans-serif;color:#c5cbb6}.diebtn .number{font:bold 22px Georgia;color:white}.rollcontrols{display:flex;gap:10px;justify-content:center}.goldbutton{background:linear-gradient(#f4d48f,#b2863e 50%,#e7c578);color:#261c10;border:4px double #714a21;font:bold 17px Georgia;padding:9px 28px;border-radius:7px;text-shadow:0 1px #ffdf9a;box-shadow:0 3px 7px #0008}.pending{font-size:12px;color:#cbd9b5;margin-top:10px;min-height:18px}#hint{font-size:13px;margin-top:12px;padding:10px;border:1px solid #a4864d;background:#101e16}aside{display:flex;flex-direction:column;gap:18px;margin-top:-220px;position:relative}.deck{min-height:176px;background:repeating-linear-gradient(130deg,#172a20 0 2px,#1f3327 3px 4px);border:4px double #a18453;outline:2px solid #40351e;outline-offset:3px;box-shadow:3px 9px 0 #b7a07b,5px 12px 3px #0009;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px}.deckicon{font:60px/1 Georgia;color:#d7b772;text-shadow:0 2px 3px #000}.deck strong{font-size:14px;color:#ead49c}.deck small{font-size:10px;color:#c9c5a9}.scripturedeck{background:repeating-linear-gradient(120deg,#462c1c 0 2px,#50321f 3px 4px);min-height:165px}.joker{background:linear-gradient(#eee0b9,#ceba8f);color:#302a1b;border:4px double #a48550;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;transform:rotate(2deg);min-height:115px}.joker span{font-size:28px}.joker strong{font-size:12px}.joker small{font-size:11px}#trialBadge{background:#552a20;padding:9px;border:1px solid #be924e;text-align:center;font-size:11px}.lower{display:grid;grid-template-columns:330px minmax(0,1fr);gap:24px;margin-top:24px;align-items:start;padding-right:178px}.stats{background:#161b12e8;padding:17px 15px;font-size:12px}.stat{display:flex;align-items:center;gap:9px;margin-bottom:12px}.stat label{min-width:83px;color:#e7d093}.stat .track{flex:1}.stat b{margin-left:auto;white-space:nowrap}.blue>div{background:linear-gradient(#47a5c3,#215c88)}.stats small{font:10px/1.5 Arial,sans-serif;color:#c6c9b4}.hand{display:flex;gap:12px;overflow-x:auto;padding:3px 2px 14px;align-items:stretch}.scripturecard{flex:1 0 180px;max-width:265px;min-height:218px;padding:0;overflow:hidden;color:#2a2b1c;border:3px double #9e7842;background:#e9d9b3;position:relative;transition:transform .15s;animation:deal .35s ease-out}.scripturecard:hover:not(:disabled){transform:translateY(-3px)}.scripturecard h3{font-size:17px;margin:9px 7px 2px;line-height:1.1}.scripturecard .ref{font:10px Arial,sans-serif}.scriptureart{height:95px;margin:7px 0;background-image:url('assets/scripture.png');background-size:300% 100%;background-repeat:no-repeat}.scripturecard .effect{display:block;font:11px/1.4 Arial,sans-serif;padding:0 10px 9px}.scripturecard .read{font-size:10px;color:#624f2a;display:block;padding-bottom:8px}.logpanel{padding-right:178px;margin:10px 0;background:#102118b8;padding-top:8px;padding-bottom:8px}.logpanel summary{cursor:pointer;color:#ddc98e;font-size:13px;padding-left:12px}.logpanel summary span{font:11px Arial,sans-serif;color:#c5ccb6;margin-left:12px}.logpanel ol{max-height:170px;overflow:auto;color:#d4d8c1;font-size:12px}footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;color:#e2d6b8;text-shadow:0 1px #000;padding:8px 0}footer a{text-decoration:none}#saveStatus{color:#bdd1ba}#campPanel,#endPanel{border-top:1px solid #8b7847;margin-top:18px;padding-top:18px}#campPanel h2,#endPanel h2{color:#f1d796;font-size:28px}#campPanel p,#endPanel p{font-size:13px;margin:8px}.campbuttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.campbuttons button{font-size:13px}.campbuttons small{font:10px Arial,sans-serif}.rolling .fatecube{animation:tumble .15s infinite alternate}.rolling .diebtn.selected svg{animation:tumble .18s infinite alternate}.shake{animation:hurt .4s ease-out}.dealing{animation:deal .35s ease-out}dialog{width:min(830px,calc(100% - 28px));max-height:88vh;overflow:auto;border:4px double #ae8750;background:linear-gradient(130deg,#f2e5c8,#d7c097);color:#252c1e;padding:28px;border-radius:12px;box-shadow:0 10px 80px #000b}dialog::backdrop{background:#05130ed6;backdrop-filter:blur(5px)}dialog h2{font-size:32px;color:#244130;margin:0 35px 16px 0}dialog h3{font-size:20px;margin:18px 0 8px}dialog p,dialog li{font:14px/1.7 Arial,sans-serif;margin-bottom:12px}dialog .close{position:absolute;right:12px;top:10px;font:22px Arial;padding:3px 9px}dialog button{background:#243d2d;color:#f8eac8;margin:4px}dialog a{color:#2e553e}.modecards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.modecards button{padding:22px 8px;font-size:20px}.modecards small{font:12px/1.7 Arial;display:block;margin-top:8px}.quotebox{border-left:4px solid #8b6b35;background:#fff5d666;padding:16px;margin:12px 0;font:italic 19px/1.6 Georgia}.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.roster button{padding:5px;font-size:13px}.rosterface{aspect-ratio:1;background-size:400% 400%;border:1px solid #c4a463}.roster small{display:block;font-size:10px}.dialogactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.rulesTable{width:100%;border-collapse:collapse;font:13px/1.5 Arial}.rulesTable td,.rulesTable th{border-bottom:1px solid #a5936c;padding:9px;text-align:left}.notice{background:#e4c991;padding:12px;border-left:3px solid #8e6535}.bibliography{font-size:12px!important}#modalContent .small{font-size:12px;color:#536044}[hidden]{display:none!important}@keyframes tumble{from{transform:translateY(-5px) rotate(-14deg)}to{transform:translateY(4px) rotate(18deg)}}@keyframes deal{from{opacity:0;transform:translate(15px,-12px) rotate(4deg)}to{opacity:1;transform:none}}@keyframes hurt{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes portraitChange{from{filter:brightness(1.7)}to{filter:brightness(1)}}
@media(min-width:1450px){.boss{min-height:300px}.tray{min-height:430px}.scriptureart{height:112px}.hand{max-width:100%}}@media(max-width:1150px){.app{padding:15px}header{grid-template-columns:190px 1fr}header h1{font-size:36px}.toolbar{grid-column:1/-1;justify-content:flex-end;margin-top:-5px}.upper{padding-right:150px;gap:14px;grid-template-columns:1fr 1fr}.middle{grid-template-columns:minmax(0,1fr) 130px;gap:16px}.lower{grid-template-columns:250px minmax(0,1fr);gap:15px;padding-right:150px}.bossname{width:70%}.bossname h2{font-size:25px}.bossface{opacity:.75}.bosshealth{flex-wrap:wrap;gap:5px}.bosshealth .track{min-width:70px}.encounter{padding:15px}.encounter h2{font-size:23px}.tray{padding:24px 13px 16px}.deck{min-height:160px}.deck strong{font-size:12px}.logpanel{padding-right:0}}
@media(max-width:800px){header{grid-template-columns:1fr}.modeplate{order:2}header h1{font-size:clamp(28px,6vw,43px);order:1}.toolbar{order:3}.upper{padding:0;grid-template-columns:1fr}.boss{min-height:270px;order:-1}.bossname{width:55%}.bossface{opacity:1}.bosshealth{flex-wrap:nowrap}.middle{grid-template-columns:1fr}.middle aside{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.deck,.scripturedeck{min-height:105px}.deckicon{font-size:35px}.joker{min-height:105px}.lower{grid-template-columns:1fr;padding:0}.hand{padding-bottom:12px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:5px 15px}.stats small{grid-column:1/-1}.dice{gap:5px}.diebtn small{display:none}.diebtn svg{height:52px}.diebtn strong{font-size:12px}.diebtn{padding:4px 1px}.fatecube{width:66px;height:66px;font-size:48px}.campbuttons{grid-template-columns:1fr 1fr}.roster{grid-template-columns:repeat(2,1fr)}.modecards{grid-template-columns:1fr}.modecards button{padding:12px}.app{padding:12px}.logpanel summary span{display:block;margin-left:0}.stat{gap:5px}.stat label{min-width:auto;font-size:11px}.stat b{font-size:11px}.goldbutton{font-size:15px;padding:9px 17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
