:root{--papyrus:#E7DCC4;--papyrus-deep:#D8C9A9;--panel:#F3ECD8;--panel-2:#EAE0C6;--ink:#2B2419;--ink-soft:#5A4E3A;--ink-faint:#8A7C63;--line:#C3B491;--gold:#A9791F;--gold-hi:#E8C56A;--sea:#2E5B57;--blood:#8A3A2C;--step:#3A4A5C;--help:#A9791F;--wisdom:#2E5B57;--sym-beginning:#5C6E86;--sym-covenant:#8E5B3A;--sym-journey:#2E5B57;--sym-deliverance:#A9791F}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0}body{background:radial-gradient(130% 100% at 50% -8%,#F3ECD8 0%,var(--papyrus) 46%,var(--papyrus-deep) 100%);color:var(--ink);font-family:Gowun Dodum,system-ui,sans-serif;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}html,body{height:100%}#app{height:100dvh;overflow-y:auto;overflow-x:hidden;display:flex;justify-content:center;align-items:flex-start;padding:6px}.device{width:100%;max-width:420px;height:calc(100dvh - 12px);max-height:860px;border-radius:18px;padding:12px 12px 14px;background:linear-gradient(168deg,#f5eedb,#e6d8b7);box-shadow:0 1px #fff9 inset,0 22px 50px -22px #2b24198c,0 0 0 1px var(--line);display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.device.shake{animation:shake .28s ease}@keyframes shake{10%,90%{transform:translate(-1px)}30%,70%{transform:translate(2px)}50%{transform:translate(-3px)}}.device.flash:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gold-hi);opacity:0;animation:flash .5s ease;pointer-events:none}@keyframes flash{0%{opacity:0}25%{opacity:.5}to{opacity:0}}.hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hd .stage{font-family:Gowun Batang,serif;font-weight:700;font-size:18px;line-height:1.15}.hd .stage small{display:block;font-family:Gowun Dodum,sans-serif;font-weight:400;font-size:11.5px;color:var(--ink-soft);margin-top:2px}.res{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:11.5px;color:var(--ink-soft);white-space:nowrap}.res .hearts{color:var(--blood);font-size:12px}.res .dots{letter-spacing:2px;color:var(--gold)}.rules-btn{border:0;border-bottom:1px solid var(--line);padding:0 1px;background:transparent;color:var(--ink-soft);font:inherit;font-size:11px;line-height:1.2;cursor:pointer}.rules-btn:hover{color:var(--gold);border-color:var(--gold)}.rules-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.gauge-wrap{display:flex;flex-direction:column;gap:5px}.gauge{position:relative;height:18px;border-radius:9px;background:#2b24191a;box-shadow:0 0 0 1px var(--line) inset;overflow:hidden}.gauge .ghost{position:absolute;inset:2px auto 2px 2px;height:calc(100% - 4px);width:0;border-radius:7px;background:var(--gold-hi);opacity:.55;transition:width .18s ease}.gauge .fill{position:absolute;inset:2px auto 2px 2px;height:calc(100% - 4px);width:0;border-radius:7px;background:linear-gradient(180deg,#c79a3b,#a9791f);transition:width .45s cubic-bezier(.2,.8,.2,1)}.gauge-label{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.gauge-label b{color:var(--gold);font-weight:400}.coach{background:linear-gradient(180deg,#2b2419,#3a3020);color:#f0e7cf;font-size:11.5px;text-align:center;padding:6px 10px;border-radius:9px;line-height:1.35;box-shadow:0 0 0 1px var(--gold) inset}.allies{display:flex;gap:7px}.ally{flex:1;min-width:0;border-radius:10px;padding:5px 5px 6px;text-align:center;background:var(--panel-2);border:1px solid var(--line);transition:all .2s ease;position:relative}.ally .an{font-family:Gowun Batang,serif;font-size:12.5px;color:var(--ink);display:block;line-height:1.1}.ally .af{font-size:8.5px;color:var(--ink-faint);display:block;margin-top:2px;line-height:1.2;min-height:2em}.ally .ah{position:absolute;top:-8px;right:-4px;font-family:Gowun Batang,serif;font-size:12px;font-weight:700;color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),#dcb455);border-radius:20px;padding:1px 7px;box-shadow:0 2px 5px -1px #2b241966;opacity:0;transform:scale(.6);transition:all .2s ease}.ally.on{background:linear-gradient(180deg,#fbf3da,#f1e4be);border-color:var(--gold-hi);box-shadow:0 3px 12px -4px #a9791f99}.ally.on .an{color:var(--gold)}.ally.on .af{color:var(--ink-soft)}.ally.on .ah{opacity:1;transform:scale(1)}.preview{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:7px 13px}.prow{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;padding:1px 0;color:var(--ink-soft)}.prow .pv{font-family:Gowun Batang,serif;font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}.prow.zero .pv{color:var(--ink-faint)}.pfinal{display:flex;justify-content:space-between;align-items:baseline;margin-top:3px;padding-top:6px;border-top:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none}.pfinal:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}.pfinal .pl{font-family:Gowun Batang,serif;font-size:15px;color:var(--ink)}.pfinal-r{display:flex;align-items:baseline;gap:9px}.pcaret{font-family:Gowun Dodum,sans-serif;font-size:10.5px;color:var(--ink-faint);letter-spacing:.02em}.pfinal .pv{font-family:Gowun Batang,serif;font-weight:700;font-size:25px;color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}.paux{font-size:11px;color:var(--ink-soft);margin-top:4px;display:flex;gap:12px;flex-wrap:wrap}.paux .dmg{color:var(--blood)}.paux .heal{color:var(--sea)}.paux .evt{color:var(--gold);font-weight:400}.paux .dim{color:#9a6a4a}.paux .flow{color:#2e5b57;font-weight:400}.hand-head{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-faint);padding:0 2px}.hand{flex:1 1 auto;min-height:0;display:flex;flex-wrap:nowrap;align-items:flex-end;justify-content:flex-start;gap:7px;overflow-x:auto;overflow-y:hidden;padding:16px 2px 4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hand::-webkit-scrollbar{display:none}.card{position:relative;flex:0 0 auto;scroll-snap-align:center;width:76px;height:106px;border-radius:11px;padding:0;cursor:pointer;background:linear-gradient(165deg,#f6efdc,#e7dab9);border:2.5px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;color:var(--ink);transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease,border-color .16s ease;box-shadow:0 4px 10px -6px #2b241980}.card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.card.step{border-color:var(--step)}.card.help{border-color:var(--help)}.card.wisdom{border-color:var(--wisdom)}.card.fatigue{border-color:#b3a588;opacity:.62}.card.fatigue.sel{opacity:.9}.card.tutorial-target{border-color:var(--gold-hi);box-shadow:0 0 0 3px #e8c56a6b,0 8px 18px -8px #a9791fcc;animation:tutorialPulse 1.25s ease-in-out infinite}@keyframes tutorialPulse{0%,to{transform:translateY(0);box-shadow:0 0 0 2px #e8c56a52,0 6px 14px -8px #a9791fa6}50%{transform:translateY(-4px);box-shadow:0 0 0 4px #e8c56a85,0 11px 20px -8px #a9791fd9}}.card.tutorial-target.sel{animation:none;transform:translateY(-9px)}.card .val{font-family:Gowun Batang,serif;font-weight:700;font-size:30px;line-height:1}.card.help .val{font-size:24px}.card .tp{font-size:10.5px;color:var(--ink-soft)}.card .sub{font-size:9.5px;color:var(--ink-faint)}.card .pip{position:absolute;top:7px;left:7px;width:17px;height:17px;border-radius:50%;background:var(--c);color:#f6efdc;font-size:8.5px;display:flex;align-items:center;justify-content:center}.card.sel{transform:translateY(-9px);border-color:var(--gold-hi);box-shadow:0 10px 18px -8px #a9791fb3,0 0 0 2px var(--gold-hi)}.card .mode{position:absolute;top:-15px;left:50%;transform:translate(-50%)}.card .mode button{font-family:Gowun Dodum,sans-serif;font-size:10.5px;color:#f6efdc;background:var(--ink);border:none;border-radius:11px;padding:2px 10px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 5px -1px #0006}.card .mode[hidden]{display:none}.actions{display:flex;gap:9px;margin-top:2px}.btn{flex:1;font-family:Gowun Batang,serif;font-size:13.5px;padding:10px 6px;border-radius:12px;border:1.5px solid var(--line);background:transparent;color:var(--ink-soft);cursor:pointer;transition:all .15s ease}.btn:disabled{opacity:.45;cursor:default}.btn.primary{flex:1.7;font-weight:700;color:var(--ink);border-color:transparent;background:linear-gradient(180deg,var(--gold-hi),#d3ab48);box-shadow:0 4px 12px -4px #a9791f99}.btn.primary:disabled{background:#ddceac;box-shadow:none}.btn:not(:disabled):active{transform:translateY(1px)}.scorepop{position:absolute;left:50%;top:96px;transform:translate(-50%);font-family:Gowun Batang,serif;font-weight:700;font-size:30px;color:var(--gold);pointer-events:none;text-shadow:0 2px 4px rgba(43,36,25,.25);animation:pop .82s cubic-bezier(.2,.8,.2,1) forwards}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px) scale(.7)}22%{opacity:1;transform:translate(-50%,-6px) scale(1.1)}to{opacity:0;transform:translate(-50%,-52px) scale(1)}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#2b24195c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:5;opacity:0;animation:fadein .3s ease forwards;padding:20px;text-align:center}@keyframes fadein{to{opacity:1}}.overlay h3{font-family:Gowun Batang,serif;font-weight:700;font-size:27px;color:#f6efdc;margin:0;animation:rise .45s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.overlay p{color:var(--gold-hi);font-size:14px;margin:0}.overlay button{margin-top:10px;font-family:Gowun Dodum,sans-serif;font-size:14px;color:var(--ink);background:var(--gold-hi);border:none;border-radius:11px;padding:10px 20px;cursor:pointer}.ally.is-guest{border-color:var(--gold);border-style:dashed}.ally .guest-tag{position:absolute;top:-8px;left:-4px;font-family:Gowun Dodum,sans-serif;font-size:9px;color:#f6efdc;background:var(--sea);border-radius:20px;padding:1px 7px}.event{width:100%;max-width:430px;display:flex;flex-direction:column;gap:12px}.event-eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0}.event-title{font-family:Gowun Batang,serif;font-weight:700;font-size:24px;margin:0;letter-spacing:-.01em}.event-sub{margin:0 0 6px;font-size:13px;color:var(--ink-soft)}.event-sub b{color:var(--ink);font-weight:400}.choices{display:flex;flex-direction:column;gap:11px}.choice{text-align:left;cursor:pointer;font-family:inherit;color:var(--ink);background:linear-gradient(165deg,#f6efdc,#eadfc0);border:1.5px solid var(--line);border-radius:15px;padding:16px 16px 13px;display:flex;flex-direction:column;gap:9px;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;box-shadow:0 5px 14px -8px #2b241980}.choice:hover,.choice:focus-visible{transform:translateY(-2px);border-color:var(--gold-hi);box-shadow:0 12px 24px -10px #a9791f8c;outline:none}.choice:active{transform:translateY(0)}.choice-line{font-family:Gowun Batang,serif;font-size:18px;line-height:1.35;color:var(--ink)}.choice-foot{display:flex;align-items:baseline;gap:10px}.choice-name{font-family:Gowun Batang,serif;font-weight:700;font-size:15px;color:var(--gold)}.choice-join{font-size:11.5px;color:var(--ink-soft)}.choice-scripture{font-size:11px;color:var(--ink-faint);border-top:1px solid var(--line);padding-top:8px}.reward-title{font-family:Gowun Batang,serif;font-weight:700;font-size:15px;color:var(--gold)}.reward-choice .choice-line{font-size:16px}.reward-choice .choice-foot{border-top:1px solid var(--line);padding-top:8px}.outcome{width:100%;max-width:430px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px}.outcome-eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0}.outcome h2{font-family:Gowun Batang,serif;font-weight:700;font-size:28px;margin:0}.outcome-party{font-family:Gowun Batang,serif;font-size:16px;color:var(--gold);margin:4px 0}.outcome-note{font-size:13px;color:var(--ink-soft);margin:0;max-width:32ch}.outcome-btn{margin-top:16px;font-family:Gowun Dodum,sans-serif;font-size:15px;color:var(--ink);background:var(--gold-hi);border:none;border-radius:12px;padding:12px 26px;cursor:pointer}.discovery{position:absolute;left:12px;right:12px;bottom:12px;z-index:6;cursor:pointer;background:linear-gradient(180deg,#2b2419,#3a3020);color:#f3ecd8;border-radius:14px;padding:13px 15px;box-shadow:0 -6px 24px -8px #2b2419b3,0 0 0 1px var(--gold) inset;animation:discIn .28s cubic-bezier(.2,.8,.2,1)}.discovery.out{animation:discOut .2s ease forwards}@keyframes discIn{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes discOut{to{transform:translateY(24px);opacity:0}}.disc-tag{display:inline-block;font-size:10.5px;letter-spacing:.03em}.disc-tag.fact{color:var(--gold-hi)}.disc-tag.effect{color:#9ec7b6}.disc-text{margin:6px 0 5px;font-size:13.5px;line-height:1.5;color:#f3ecd8}.disc-ref{font-size:11px;color:#c9bda0}.disc-effect{margin-top:9px;padding-top:8px;border-top:1px dashed rgba(243,236,216,.25)}.toast{position:absolute;left:50%;bottom:20px;transform:translate(-50%);z-index:6;background:#2b2419eb;color:#f3ecd8;font-size:12px;padding:8px 14px;border-radius:20px;animation:discIn .2s ease;white-space:nowrap}.toast.out{animation:discOut .2s ease forwards}.rules-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:flex-end;padding:10px;background:#2b24196b;animation:fadein .18s ease forwards}.rules-sheet{width:100%;border-radius:16px 16px 12px 12px;padding:16px;background:linear-gradient(180deg,#f8f1df,#e9ddbc);color:var(--ink);box-shadow:0 -12px 34px -14px #2b2419b8,0 0 0 1px var(--line);animation:rulesUp .22s cubic-bezier(.2,.8,.2,1)}@keyframes rulesUp{0%{transform:translateY(24px);opacity:.55}to{transform:translateY(0);opacity:1}}.rules-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.rules-head h2{margin:0;font-family:Gowun Batang,serif;font-size:21px}.rules-head button{border:1px solid var(--line);border-radius:8px;padding:5px 10px;background:transparent;color:var(--ink-soft);font:inherit;font-size:12px;cursor:pointer}.rules-head button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.rules-sheet ol{margin:13px 0 0;padding:0;list-style:none;display:grid;gap:10px;counter-reset:rule}.rules-sheet li{display:grid;grid-template-columns:22px 1fr;column-gap:8px;counter-increment:rule}.rules-sheet li:before{content:counter(rule);display:grid;place-items:center;align-self:start;width:20px;height:20px;border-radius:6px;background:var(--ink);color:var(--panel);font-size:11px;line-height:1}.rules-sheet li b{font-size:13px;line-height:1.35}.rules-sheet li span{grid-column:2;color:var(--ink-soft);font-size:11.5px;line-height:1.45}.flycard{position:fixed;z-index:60;border-radius:11px;pointer-events:none;will-change:transform,opacity;background:linear-gradient(165deg,#f6efdc,#e7dab9);border:2.5px solid var(--gold-hi);box-shadow:0 8px 20px -8px #a9791fb3}.scorepop{font-size:34px}@media(prefers-reduced-motion:reduce){.flycard{display:none}.card.tutorial-target{animation:none}}.dex-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;padding:10px;background:#2b24196b;animation:fadein .18s ease forwards}.dex-sheet{width:100%;max-width:460px;max-height:86dvh;overflow-y:auto;border-radius:16px 16px 12px 12px;padding:16px;background:linear-gradient(180deg,#f8f1df,#e9ddbc);color:var(--ink);box-shadow:0 -12px 34px -14px #2b2419b8,0 0 0 1px var(--line);animation:rulesUp .22s cubic-bezier(.2,.8,.2,1)}.dex-head{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:-16px;padding-top:2px;background:#f6eedb}.dex-head h2{margin:0;font-family:Gowun Batang,serif;font-size:20px}.dex-head button{border:1px solid var(--line);border-radius:8px;padding:5px 10px;background:transparent;color:var(--ink-soft);font:inherit;font-size:12px;cursor:pointer}.dex-head button:focus-visible,.dex-person summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.dex-note{margin:8px 0 4px;font-size:11.5px;color:var(--ink-soft);line-height:1.5}.dex-era{margin:14px 0 4px;font-family:Gowun Batang,serif;font-size:14px;color:var(--ink-soft);border-bottom:1px solid var(--line)}.dex-person{border-bottom:1px dashed var(--line)}.dex-person summary{display:flex;gap:8px;align-items:baseline;padding:7px 2px;cursor:pointer;list-style:none}.dex-person summary::-webkit-details-marker{display:none}.dex-pname{font-family:Gowun Batang,serif;font-size:14px;white-space:nowrap}.dex-pevent{font-size:11.5px;color:var(--ink-faint)}.dex-cards{list-style:none;margin:0 0 8px;padding:0 0 0 8px;display:grid;gap:6px}.dex-card{display:grid;gap:1px}.dex-cname{font-family:Gowun Batang,serif;font-size:13.5px}.dex-cmeta{font-size:11px;color:var(--ink-faint)}.dex-gloss{font-size:12px;color:var(--ink-soft);line-height:1.45}.dex-gloss.big{font-size:14px;margin:8px 0}.dex-open{border:1px solid var(--line);border-radius:8px;padding:5px 10px;background:transparent;color:var(--ink-soft);font:inherit;font-size:12px;cursor:pointer}.dex-open:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
