.campaign{--story-paper:#dfdbef;--story-muted:#a29aaa;--story-edge:#444055;--story-ink:#10101c;width:100%;min-width:0;max-width:760px;color:var(--story-paper);margin-inline:auto}.campaign .panel-title{align-items:center;gap:12px}.campaign .panel-title>span{color:var(--story-muted);text-align:end;font-size:12px}.campaign button{border:1px solid var(--story-edge);min-height:44px;color:var(--story-paper);font:inherit;cursor:pointer;touch-action:manipulation;background:#202033;border-radius:0;padding:10px 16px;font-size:14px}.campaign button:hover:not(:disabled){background:#2d293e;border-color:#9782ad}.campaign button:disabled{opacity:.45;cursor:default}.campaign button:focus-visible,.campaign select:focus-visible{outline-offset:3px;outline:3px solid #a7c5d5}.campaign .campaign-primary{color:#fff;background:#75628e;border-color:#ab96bd;box-shadow:inset 0 -3px #483959}.campaign button:active:not(:disabled){transform:translateY(1px)}.campaign-chapters{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:18px 0 12px;padding:0;list-style:none;display:grid}.campaign-chapters li{color:#8f859c;border-top:2px solid #302d3b;align-items:center;gap:7px;min-width:0;padding:8px 0;font-size:12px;line-height:1.5;display:flex}.campaign-chapters li>span:first-child{font-family:monospace;font-size:12px}.campaign-chapters li[data-reached=true]{color:#b5a3c5;border-color:#75628e}.campaign .story-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.story-toolbar label{color:var(--story-muted);font-size:14px}.campaign select{background:var(--story-ink);min-width:0;max-width:100%;min-height:44px;color:var(--story-paper);border:1px solid var(--story-edge);font:inherit;border-radius:0;flex:1;padding:9px;font-size:14px}.campaign .story-scene{background:var(--story-ink);border:1px solid #5b516d;display:block;overflow:hidden;box-shadow:4px 4px #080811}.campaign .campaign-scene-title{border-bottom:1px solid var(--story-edge);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:10px 16px;font-size:16px;font-weight:500;line-height:1.5;display:flex}.campaign-scene-title>span:last-child{color:var(--story-muted);flex-shrink:0;font:12px monospace}.campaign-art{aspect-ratio:16/9;background:var(--story-ink);position:relative;overflow:hidden}.campaign-art img,.campaign-crt img{width:100%;height:100%;image-rendering:pixelated;object-fit:contain;display:block}.campaign-art[data-cleansed=true]{animation:.6s steps(6,end) campaign-cleanse}.campaign .story-copy{background:#14141f;border-top:2px solid #5b516d;min-width:0;padding:18px 20px 20px}.campaign-dialogue{min-height:112px}.campaign-dialogue b{color:#c2b2d2;font-size:14px;font-weight:600;line-height:1.5;display:inline-block}.campaign-dialogue b:before{content:"";vertical-align:middle;background:currentColor;width:6px;height:6px;margin-inline-end:9px;display:inline-block}.campaign-dialogue[data-speaker=Player] b{color:#a8c1cc}.campaign-dialogue[data-speaker=Joker] b{color:#d68a98}.campaign-dialogue[data-speaker=Twilight\ Kingdom] b{color:#a29aaa}.campaign-dialogue p{overflow-wrap:anywhere;margin:10px 0 0;font-size:clamp(16px,2.3vw,19px);line-height:1.85;animation:.14s ease-out story-line-in}.campaign .story-controls{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px;margin:14px 0;display:grid}.story-controls small{opacity:.8;margin-inline-start:8px;font:12px monospace}.campaign-tools{flex-wrap:wrap;gap:6px;padding-bottom:4px;display:flex}.campaign-tools button{color:#b2a4c1;background:0 0;border-color:#0000;padding:6px 10px;font-size:14px}.campaign-tools button:last-child{margin-inline-start:auto}.campaign-task{background:#242130;border-inline-start:3px solid #c2ac7f;margin-top:16px;padding:12px 16px}.campaign-task p{margin:0 0 12px;font-size:16px;line-height:1.75}.campaign-task button{color:#edd7ad;background:#39313b;border-color:#ac9976}.campaign-start{text-align:center}.campaign-crt{aspect-ratio:16/9;background:var(--story-ink);border:1px solid #5b516d;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:4px 4px #080811}.campaign-start>.campaign-primary{letter-spacing:.16em;min-width:180px;font-family:monospace}.crt-message{color:#c7bfd9;text-align:center;place-items:center;font-family:monospace;font-size:clamp(10px,2.5vw,18px);line-height:1.5;display:grid;position:absolute;inset:23% 11% 43% 62%}.crt-message span{grid-area:1/1}.crt-no-signal{animation:2s step-end forwards signal-off}.crt-voice{opacity:0;animation:2s step-end forwards signal-on}.campaign-start:has(button:disabled){animation:.35s steps(3,end) 2 crt-glitch}.campaign-resume{justify-content:center;margin:8px 0;display:flex}.campaign-resume button{color:#dfdbef;min-height:44px;font:inherit;background:#202033;border:1px solid #75628e;padding:8px 14px}.campaign-resume:empty{display:none}@keyframes signal-off{0%,75%{opacity:1}76%,to{opacity:0}}@keyframes signal-on{0%,75%{opacity:0}76%,to{opacity:1}}@keyframes crt-glitch{0%,to{transform:none}30%{transform:translate(2px)}70%{transform:translate(-2px)}}@keyframes campaign-cleanse{0%{filter:brightness(1.3)saturate(.5)}to{filter:none}}@keyframes story-line-in{0%{opacity:.4}to{opacity:1}}@media (width<=540px){.campaign-chapters{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.campaign-chapters li{align-items:center;gap:5px}.campaign-chapters li>span:last-child{font-size:12px}.campaign .story-copy{padding:14px}.campaign-dialogue{min-height:120px}.campaign .campaign-scene-title{padding:10px 12px}.campaign .panel-title>span{max-width:95px}.campaign .story-controls button{padding:10px 8px}}@media (prefers-reduced-motion:reduce){.campaign *{transition:none!important;animation:none!important}.campaign .crt-no-signal{display:none}.campaign .crt-voice{opacity:1}.campaign button:active:not(:disabled){transform:none}}.campaign-tree{color:#eee6ff;width:100%;min-width:0}.campaign-tree h3{font-size:20px}.engraving-tree{aspect-ratio:16/9;background:#0b0813;position:relative}.engraving-tree img{width:100%;height:100%;image-rendering:pixelated;object-fit:contain}.tree-engraved{inset-inline:30%;text-align:center;color:#e1c9f8;overflow-wrap:anywhere;background:#251b36;max-width:40%;padding:3px 6px;font-size:clamp(11px,1.8vw,16px);position:absolute;bottom:32%}.tree-engraved.fresh{animation:engrave-pixels 1.8s steps(var(--name-steps)) both}.campaign-tree form{flex-wrap:wrap;align-items:end;gap:8px;margin:14px 0;display:flex}.campaign-tree label{flex:1;min-width:140px;font-size:12px}.campaign-tree input{box-sizing:border-box;color:#eee6ff;width:100%;max-width:100%;font:inherit;background:#120c1e;border:2px solid #694a87;min-height:44px;margin-top:6px;padding:8px;font-size:16px;display:block}.campaign-tree button,.campaign-tree-dialog>button{color:#eee6ff;min-height:44px;font:inherit;background:#302044;border:2px solid #8863af;padding:8px 12px}.tree-caption{color:#ad9bbd;font-size:12px}.tree-names{grid-template-columns:1fr 1fr;gap:7px;padding-inline-start:22px;display:grid}.tree-names li{overflow-wrap:anywhere;border-bottom:1px solid #413052;min-width:0;padding:6px}.campaign-tree-dialog{color:#eee6ff;background:#130d20;border:2px solid #83679e;width:min(90vw,600px);max-height:85dvh;padding:14px;overflow-y:auto}.campaign-tree-dialog::backdrop{background:#090611db}.campaign-resume{flex-wrap:wrap;gap:8px}.story-moderation .admin-actions{overflow-wrap:anywhere;justify-content:space-between}.story-moderation p{overflow-wrap:anywhere}@keyframes engrave-pixels{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.tree-engraved.fresh{animation:none!important}}.campaign{--story-paper:#f0e9ff;--story-muted:#b2a5c8;--story-edge:#4a385f;--story-ink:#0d0a18}.campaign .panel-title h2{letter-spacing:0;font-size:clamp(20px,4vw,28px)}.campaign .story-scene{border-color:#6b4b90;box-shadow:5px 5px #05030d}.campaign .campaign-scene-title{background:#171025;border-bottom-color:#765193}.campaign-chapters li[aria-current=step]{color:#e5d5ff;border-color:#b185ed}.campaign .campaign-primary{background:#553281;border-color:#a47ae0;box-shadow:inset 0 -3px #29183f}.campaign .story-copy{background:linear-gradient(110deg,#181027,#100d1d);border-top:2px solid #725096}.campaign-start-copy{color:#c1b5d1;max-width:36rem;margin:18px auto;font-size:16px;line-height:1.8}.story-stage{isolation:isolate}.story-stage .story-backdrop{object-fit:cover;transition:filter .6s;position:absolute;inset:0}.story-stage-light{z-index:1;pointer-events:none;background:linear-gradient(#0000 52%,#080514b8);transition:background .6s;position:absolute;inset:0}.story-stage[data-cleansed=true] .story-backdrop{filter:brightness(1.16)saturate(1.12)}.story-stage[data-cleansed=true] .story-stage-light{background:linear-gradient(#0000 32%,#3a25705c)}.campaign .story-portrait{aspect-ratio:3/5;flex-shrink:0;display:inline-block;position:relative;overflow:hidden}.campaign .story-portrait>img{object-fit:fill;width:400%;max-width:none;height:100%;transform:translateX(calc(var(--expression,0) * -25%));image-rendering:pixelated;display:block;position:absolute;top:0;left:0}.campaign .stage-actor{z-index:2;pointer-events:none;filter:brightness(.78);width:27%;transition:filter .18s,translate .18s;position:absolute;bottom:-5%}.campaign .actor-hero{left:3%}.campaign .actor-companion{width:30%;right:4%}.campaign .stage-actor.is-speaking{filter:brightness(1.08);translate:0 -2%}.campaign .dialogue-portrait{float:inline-start;border-bottom:2px solid #8a63b6;width:60px;margin-block-start:-3px;margin-inline-end:15px}.campaign-dialogue{display:flow-root}.campaign-dialogue[data-speaker=You] b{color:#a5cef6}.campaign-dialogue b{color:#c4a2ff}.campaign-dialogue p{margin-top:8px}.campaign .story-inspect{z-index:4;color:#eee4ff;background:#211238d9;border:1px solid #cfb5ff;width:44px;height:44px;min-height:44px;padding:0;font:24px monospace;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #170b2499}.campaign .story-inspect[aria-pressed=true]{color:#a9e6ec;background:#122b35dc;border-color:#8dcfdb}.campaign .story-inspect:active{transform:translate(-50%,-50%)}.stage-caption{inset-inline:0;text-align:center;z-index:3;color:#e2d5ff;text-shadow:1px 1px #10061e;font-size:12px;position:absolute;bottom:6px}.story-cinema-frame{z-index:3;pointer-events:none;border-block:12px solid #05020abf;animation:.8s ease-out both cinema-open;position:absolute;inset:0}.story-stage[data-cinematic=signal] .story-backdrop{animation:.9s steps(3,end) both story-signal}.story-stage[data-cinematic=crossing] .story-backdrop{animation:.9s ease-out both story-crossing}.story-stage[data-cinematic=crown] .story-stage-light{animation:1s ease-out both story-crown}.story-stage[data-cinematic=joker] .actor-companion{animation:.65s steps(5,end) both story-entrance}.story-stage[data-cinematic=home] .story-backdrop{animation:1.2s ease-out both story-home}.story-inspect-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.campaign .story-inspect-row button{background:#1e152e;padding:6px 12px;font-size:14px}.story-inspect-row>span{color:var(--story-muted);font-size:12px}.story-memory,.story-choice,.story-journal,.story-echo{background:#161020;border:1px solid #4f3a6b;margin:12px 0;padding:14px 16px}.story-memory b{color:#d2b6fb}.story-memory p,.story-choice p,.story-journal p,.story-echo{overflow-wrap:anywhere;font-size:16px;line-height:1.85}.story-memory small{color:#a1cbd1;font-size:12px}.story-choice>p{color:#e1d1f5;margin:0 0 12px}.story-choice>div:first-of-type{flex-wrap:wrap;gap:8px;display:flex}.story-choice button{text-align:start;flex:180px}.story-choice button[aria-pressed=true]{background:#38204f;border-color:#bfa0f5}.story-choice-reply{border-inline-start:2px solid #ac83db;margin-top:14px;padding-inline-start:14px}.story-choice-reply p{margin:0}.story-echo{color:#d0dcea;border-inline-start:3px solid #a2cad5}.campaign .story-hint{background:0 0;margin-inline-end:8px}.story-journal{margin-top:20px}.story-journal summary{cursor:pointer;color:#d7c2f1;align-content:center;min-height:44px;font-size:14px}.story-journal summary>span{float:inline-end;color:#afa1c4;font-family:monospace}.story-journal ul{padding-inline-start:20px}.story-journal li{border-top:1px solid #3c2a54;padding-block:10px}.story-journal li p{margin:4px 0 0}.story-return{text-align:center;margin:20px 0}.story-homecoming{background:#100c1c;border:1px solid #5a417a;margin-top:12px;padding-bottom:20px}.story-homecoming img{width:100%;height:auto;image-rendering:pixelated;display:block}.story-homecoming p{margin:16px;font-size:16px;line-height:1.9}.story-homecoming b{color:#baa0df}.campaign-tools button[aria-pressed=true]{color:#c9e8ec;border-color:#527881}.campaign .crt-message{color:#dfcafa;background:#0a0816cf;border-inline:2px solid #916bc2;padding:8px;font-size:clamp(14px,3vw,21px);inset:60% 15% 14%}@keyframes cinema-open{0%{border-block-width:24px}to{border-block-width:8px}}@keyframes story-signal{0%{filter:brightness(.65)}to{filter:brightness()}}@keyframes story-crossing{0%{filter:brightness(1.35);transform:scale(1.12)}to{filter:none;transform:scale(1)}}@keyframes story-crown{0%{background:#b593f155}to{background:0 0}}@keyframes story-entrance{0%{opacity:0;translate:8%}to{opacity:1;translate:0}}@keyframes story-home{0%{filter:brightness(.65)saturate(.5)}to{filter:none}}@media (width<=540px){.campaign .dialogue-portrait{width:44px;margin-inline-end:10px}.campaign-dialogue{min-height:136px}.campaign .stage-actor{width:30%}.campaign .actor-companion{width:33%}.story-memory,.story-choice,.story-journal,.story-echo{padding:12px}.story-choice>div:first-of-type{grid-template-columns:1fr;display:grid}.story-choice button{width:100%;font-size:14px}.story-cinema-frame{border-block-width:6px}.campaign-chapters li>span:last-child{font-size:13px}}@media (prefers-reduced-motion:reduce){.campaign *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
