.modal.campaign-modal{width:min(1160px,calc(100vw - 48px));height:min(780px,calc(100dvh - 44px));max-height:calc(100dvh - 44px);padding:24px 28px;background:#0d1511;border-color:#637351;box-shadow:0 0 0 5px #080e0b,0 0 0 6px #29392c,0 28px 100px #0009;overflow:hidden}
.campaign-modal .modal-top{position:relative}.campaign-modal .modal-top .icon-button{position:absolute;top:0;right:0;width:36px;height:36px;background:#101a14;border-color:#354936}.campaign-modal h2{color:#e6edda;font-size:21px;letter-spacing:1px;margin:10px 50px 18px 0}.campaign-modal #modal-content{display:flex;flex-direction:column;gap:0;min-height:0;overflow:hidden;padding:0;flex:1}
.campaign-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #2f4230;padding-bottom:15px;margin-bottom:20px;font-size:10px;color:#96a884;letter-spacing:1px;flex-shrink:0}.campaign-summary>div{display:flex;align-items:baseline;gap:7px;letter-spacing:0;font-size:11px;color:#879779}.campaign-summary b{font-weight:400;font-size:18px;color:#c7e5a1}.campaign-summary i{width:1px;height:13px;background:#40533a;margin:0 7px}
.campaign-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px;min-height:0;flex:1}.campaign-journey{display:flex;flex-direction:column;gap:13px;min-width:0;min-height:0;overflow:auto;scrollbar-color:#556f40 #0d1511;scrollbar-width:thin}.campaign-journey #campaign-scene{min-height:205px;flex:1}.campaign-cover{position:relative;isolation:isolate;height:100%;min-height:205px;overflow:hidden;border:1px solid #566844;background:#142117}.campaign-cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.campaign-cover:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#030a07f2,transparent 83%),linear-gradient(90deg,#07100855,transparent 80%)}.campaign-cover-top{position:absolute;top:15px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:1px}.campaign-cover-top span:first-child{padding:7px 9px;border:1px solid #76925d77;background:#09170fca;color:#daecc3}.campaign-cover-top span:last-child{color:#d5e3c7;text-shadow:1px 1px #000}.campaign-cover-copy{position:absolute;left:24px;right:65px;bottom:22px;max-width:500px}.campaign-act-number{display:block;color:var(--act-color);font-size:10px;letter-spacing:3px;margin-bottom:11px}.campaign-modal .campaign-cover h3{font-family:var(--pixel);font-size:clamp(16px,1.8vw,23px);font-weight:400;line-height:1.6;letter-spacing:0;color:#f0f1db;margin:0 0 9px;text-shadow:3px 3px #08100b}.campaign-modal .campaign-cover p{font-size:12px;line-height:1.6;margin:0;color:#a4b69a;max-width:440px}.campaign-cover-roman{position:absolute;right:21px;bottom:18px;color:#c3d99328;font-size:66px;font-weight:bold;line-height:1;z-index:-1;font-family:Georgia,serif}
.campaign-stage-heading,.campaign-act-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#aabb97;font-size:9px;letter-spacing:1px;margin-bottom:9px}.campaign-stage-heading>span:last-child,.campaign-act-heading>span:last-child{color:#698464;letter-spacing:0;font-size:10px}.campaign-stage-track{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;padding:0;margin:0;list-style:none}.campaign-stage-track li{position:relative;background:#101c13;border:1px solid #2f4731;padding:10px 8px;display:grid;grid-template-columns:15px 1fr;column-gap:6px;row-gap:5px;font-size:9px;color:#758e6f;min-height:52px;align-items:center}.stage-mark{display:grid;place-items:center;width:14px;font-size:10px}.stage-mark svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5}.campaign-stage-track b{font-weight:400;color:#a4b992;font-size:11px}.campaign-stage-track small{grid-column:2;font-size:9px;color:#5f775b;letter-spacing:0}.campaign-stage-track li.current{border-color:#91b465;background:#25371b;box-shadow:inset 0 -2px #59783c;color:#cbe6a6}.campaign-stage-track li.current b,.campaign-stage-track li.current small{color:#c8dfa7}.campaign-stage-track li.completed{border-color:#4b713b;color:#a1c47d}.campaign-stage-track li.completed small{color:#a1c47d}.campaign-act-heading{margin:1px 0 -4px;flex-shrink:0}.campaign-act-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;flex-shrink:0}.campaign-act-tabs button{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:108px;min-width:0;overflow:hidden;border:1px solid #344932;background:#10170f;padding:11px 9px;color:#a9b89b}.campaign-act-tabs button:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#071008 3%,#06110ac2 53%,#07120c22);z-index:-1}.campaign-act-tabs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.65) brightness(.7);z-index:-2}.act-tile-number{font-family:var(--pixel);font-size:12px;color:#c8d8b5;margin-bottom:10px;line-height:1.2}.act-tile-title{font-size:11px;line-height:1.3;margin-top:auto;min-height:29px;overflow-wrap:anywhere}.act-tile-count{font-size:9px;color:#768e6c;margin-top:5px}.campaign-act-tabs button:hover{border-color:#93b56a;color:#e2eed0}.campaign-act-tabs button[aria-selected=true]{border-color:#bddf80;box-shadow:inset 0 -3px #b1d079;color:#e9f3d1}.campaign-act-tabs button[aria-selected=true] img{filter:saturate(.9) brightness(.9)}.campaign-act-tabs button[aria-selected=true] .act-tile-number{color:#dcf3b7}
.campaign-saves-panel{min-height:0;min-width:0;overflow:auto;background:#101b14;border:1px solid #334c34;scrollbar-width:thin;scrollbar-color:#526e3e #0d1511}.campaign-saves-panel #campaign-save-view{display:flex;flex-direction:column;min-height:100%;padding:17px 15px}.campaign-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 17px}.campaign-modal .campaign-panel-heading h3{font-size:10px;font-weight:400;line-height:1.5;letter-spacing:1px;margin:0;color:#c9d9b2}.campaign-panel-heading>span{font-size:10px;white-space:nowrap;color:#6e8d60}.campaign-save-list{display:flex;flex-direction:column;gap:8px}.campaign-slot{display:flex;align-items:center;gap:11px;width:100%;min-width:0;min-height:80px;padding:12px 10px;text-align:left;background:#0a140d;border:1px solid #30472e;color:#c1d0b1}.slot-number{flex-shrink:0;font-size:10px;color:#6d8b5d;border-right:1px solid #304b2d;padding-right:10px;align-self:stretch;display:flex;align-items:center}.slot-copy{display:block;flex:1;min-width:0}.slot-copy strong{display:block;font-size:12px;font-weight:400;overflow-wrap:anywhere;line-height:1.4}.slot-copy small{display:block;font-size:10px;color:#76926b;line-height:1.4;margin-top:6px}.slot-copy time{display:block;font-size:9px;color:#566f52;margin-top:4px}.slot-arrow{font-size:19px;color:#769b5d;flex-shrink:0}.campaign-slot:hover{border-color:#7d9c5d;background:#192916}.campaign-slot.selected{border-color:#a0c371;background:#22331b}.campaign-slot.selected .slot-number,.campaign-slot.selected strong{color:#d1e8b2}.campaign-slot.empty{border-style:dashed}.campaign-slot.empty strong{color:#92a584}.campaign-slot.empty small{font-size:9px;color:#587550}.campaign-save-actions{margin-top:auto;display:grid;gap:8px;padding-top:17px}.campaign-modal .campaign-save-actions .pixel-button,.campaign-modal .campaign-new-form .pixel-button{font-size:10px;letter-spacing:.5px;min-height:42px;padding:11px 8px}.campaign-secondary{border:1px solid #476139;background:#172510;color:#a9c489;min-height:39px;font-size:10px;padding:10px 8px;letter-spacing:.5px}.campaign-secondary:hover{background:#293d1d;border-color:#9dbd71}.campaign-secondary:disabled{opacity:.45}.campaign-run-character{display:flex;align-items:center;gap:11px;margin:19px 0 11px;min-width:0}.campaign-run-character canvas{height:44px;width:34px;object-fit:contain;flex-shrink:0;image-rendering:pixelated;background:#0b130c;border:1px solid #415938}.campaign-run-character>div{min-width:0;flex:1}.campaign-run-character strong{display:block;font-size:12px;font-weight:400;color:#c5d7ac;line-height:1.5;overflow-wrap:anywhere}.campaign-run-character span{display:block;font-size:10px;line-height:1.5;color:#7d986b;margin-top:3px}.campaign-run-character>b{font-size:15px;font-weight:400;color:#b6d888}.campaign-run-progress{height:4px;background:#25391e}.campaign-run-progress i{display:block;height:100%;background:#a6cf70}.campaign-empty-note{padding:24px 7px 18px;text-align:center}.campaign-empty-note>span{display:block;font-size:29px;line-height:1;color:#527843;margin-bottom:12px}.campaign-empty-note strong{font-size:11px;font-weight:400;color:#a4bc8d;line-height:1.5}.campaign-modal .campaign-empty-note p{font-size:10px;line-height:1.7;color:#6e8d62;margin:7px auto 0;max-width:190px}.campaign-modal .campaign-note{font-size:12px;line-height:1.6;color:#8a9c7a;margin:15px 0}
.campaign-new-form{padding:17px 15px}.campaign-form-close{background:#172312;border:1px solid #425b35;color:#a3bd83;font-size:19px;min-width:27px;height:27px;padding:0}.campaign-modal .campaign-start-note{font-size:9px;letter-spacing:.8px;color:#b3cf8c;border-block:1px solid #30472c;padding:10px 0;line-height:1.5;margin:0}.campaign-modal .campaign-new-form label{font-size:10px;color:#aabb95;margin-top:12px}.campaign-modal .campaign-new-form input[type=text],.campaign-modal .campaign-new-form select{background:#09120b;border:1px solid #48613a;color:#d2dfbe;min-height:39px;font-size:12px;padding:9px 10px;margin:6px 0 0;width:100%}.campaign-new-form .campaign-run-character{margin:13px 0 19px}.campaign-new-form .campaign-run-character span{font-size:8px;letter-spacing:.8px;margin:0 0 3px}.campaign-modal label.campaign-overwrite{display:flex;align-items:flex-start;gap:8px;font-size:10px;color:#d2ad7b;line-height:1.5;padding:10px;background:#342719;border:1px solid #7d5936;margin-top:14px}.campaign-overwrite input{width:16px;height:16px;flex-shrink:0;margin:0;accent-color:#dab278}.campaign-new-form>button[type=submit]{margin-top:18px}.campaign-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0;border-top:1px solid #30422c;margin-top:17px;padding-top:12px}.campaign-modal .campaign-bottom p{font-size:10px;line-height:1.6;margin:0;color:#91a87d}.campaign-bottom>span{font-size:9px;color:#637e5b;white-space:nowrap}.campaign-modal .form-error:not(:empty){margin-top:8px;font-size:11px;flex-shrink:0}
@media(max-width:1000px){.campaign-layout{grid-template-columns:minmax(0,1fr) 245px;gap:16px}.campaign-cover-copy{left:18px;right:32px;bottom:18px}.campaign-modal .campaign-cover h3{font-size:17px}.campaign-modal .campaign-cover p{font-size:11px}.campaign-cover-top{left:14px;right:14px;font-size:8px}.campaign-act-tabs{gap:5px}.campaign-act-tabs button{padding:9px 7px;min-height:100px}.act-tile-title{font-size:10px}.campaign-saves-panel #campaign-save-view,.campaign-new-form{padding:14px 12px}.campaign-slot{gap:8px;padding:10px 8px}.slot-copy strong{font-size:11px}.campaign-stage-track li{padding:9px 6px;column-gap:4px;font-size:8px}.campaign-stage-track small{font-size:8px}.campaign-bottom>span{display:none}}
@media(max-height:540px) and (orientation:landscape){.modal.campaign-modal{width:calc(100vw - 24px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);padding:12px 18px}.campaign-modal .modal-top{position:absolute;right:17px;top:10px}.campaign-modal .modal-top .icon-button{position:static;width:29px;height:29px;font-size:22px}.campaign-modal h2{font-size:14px;margin:3px 40px 9px 0}.campaign-summary{font-size:8px;letter-spacing:.6px;padding-bottom:8px;margin-bottom:10px;gap:12px}.campaign-summary>div{font-size:9px}.campaign-summary b{font-size:13px}.campaign-summary i{height:9px;margin:0 3px}.campaign-layout{grid-template-columns:minmax(0,1fr) 220px;gap:13px}.campaign-journey{gap:7px}.campaign-journey #campaign-scene{min-height:88px}.campaign-cover{min-height:88px}.campaign-cover-top{top:8px;left:10px;right:10px;font-size:7px;letter-spacing:.4px}.campaign-cover-top span:first-child{padding:4px 5px}.campaign-cover-copy{left:12px;right:35px;bottom:10px}.campaign-act-number{font-size:8px;letter-spacing:2px;margin-bottom:4px}.campaign-modal .campaign-cover h3{font-size:13px;margin:0;line-height:1.5}.campaign-modal .campaign-cover p{display:none}.campaign-cover-roman{font-size:40px;right:14px;bottom:10px}.campaign-stage-heading{font-size:7px;letter-spacing:.5px;margin:1px 0 5px}.campaign-stage-heading>span:last-child{font-size:8px}.campaign-stage-track{gap:4px}.campaign-stage-track li{min-height:31px;padding:7px 4px;grid-template-columns:10px 1fr;font-size:7px;gap:3px}.campaign-stage-track b{font-size:9px}.stage-mark{width:10px;font-size:8px}.stage-mark svg{width:10px;height:10px}.campaign-stage-track small{display:none}.campaign-act-heading{display:none}.campaign-act-tabs button{min-height:58px;padding:6px 7px}.act-tile-number{font-size:9px;line-height:1;margin-bottom:5px}.act-tile-title{font-size:9px;min-height:22px;line-height:1.2}.act-tile-count{display:none}.campaign-saves-panel #campaign-save-view,.campaign-new-form{padding:11px 10px}.campaign-panel-heading{margin-bottom:10px}.campaign-modal .campaign-panel-heading h3{font-size:9px;letter-spacing:.7px}.campaign-panel-heading>span{font-size:9px}.campaign-save-list{gap:6px}.campaign-slot{min-height:57px;padding:9px 7px;gap:8px}.slot-copy strong{font-size:10px}.slot-copy small{font-size:9px;margin-top:4px}.slot-copy time{font-size:8px}.slot-number{font-size:9px;padding-right:8px}.slot-arrow{font-size:16px}.campaign-empty-note{display:none}.campaign-save-actions{padding-top:11px;gap:6px}.campaign-modal .campaign-save-actions .pixel-button,.campaign-modal .campaign-new-form .pixel-button{min-height:35px;font-size:9px;padding:9px 5px}.campaign-secondary{min-height:33px;font-size:9px;padding:8px 5px}.campaign-run-character{margin:12px 0 9px;gap:8px}.campaign-run-character canvas{height:32px;width:25px}.campaign-run-character strong{font-size:10px}.campaign-run-character span{font-size:9px}.campaign-bottom{margin-top:10px;padding-top:8px}.campaign-modal .campaign-bottom p{font-size:9px;line-height:1.4}.campaign-modal .campaign-start-note{font-size:8px;padding:8px 0}.campaign-modal .campaign-new-form label{font-size:9px;margin-top:10px}.campaign-modal .campaign-new-form input[type=text],.campaign-modal .campaign-new-form select{min-height:34px;font-size:11px;padding:8px;margin-top:5px}.campaign-new-form .campaign-run-character{margin:10px 0 12px}.campaign-new-form>button[type=submit]{margin-top:13px}}
@media(max-width:600px) and (min-height:541px){.modal.campaign-modal{padding:17px;width:calc(100vw - 24px)}.campaign-summary{font-size:8px}.campaign-layout{display:flex;flex-direction:column;overflow:auto}.campaign-journey{overflow:visible;min-height:410px;flex-shrink:0}.campaign-saves-panel{overflow:visible;flex-shrink:0}.campaign-cover-copy{right:30px}.campaign-modal .campaign-cover h3{font-size:15px}.campaign-save-list{display:grid;grid-template-columns:1fr}.campaign-bottom{margin-top:12px}.campaign-modal .campaign-bottom p{font-size:9px}}
