@font-face{font-family:ZG Brush;src:url(../fonts/MaShanZheng.woff2)format("woff2");font-display:swap}@font-face{font-family:ZG Serif;src:url(../fonts/NotoSerifSC-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:ZG Serif;src:url(../fonts/NotoSerifSC-Bold.woff2)format("woff2");font-weight:700 900;font-display:swap}:root{--paper:#efe6d2;--paper-2:#e4d8bf;--paper-3:#d3c3a3;--ink:#1a1714;--ink-2:#3a342e;--ink-soft:#8a8378;--cinnabar:#b7282e;--cinnabar-soft:#d98a86;--ochre:#9c6b3c;--azurite:#3f6b73;--azurite-soft:#8fb0b3;--gold:#b8964f;--card-w:200px;--card-h:280px;--font-serif:"ZG Serif", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--font-brush:"ZG Brush", "Ma Shan Zheng", "STXingkai", "STKaiti", "KaiTi", "Kaiti SC", var(--font-serif);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;color:var(--ink);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#0e0c0a;margin:0;overflow:hidden}#app{position:fixed;inset:0}.viewport{inset:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);position:absolute;overflow:hidden}.stage{transform-origin:50%;background:radial-gradient(ellipse at 50% 35%, #ffffff59, transparent 70%), var(--paper);font-size:28px;position:absolute;top:50%;left:50%;overflow:hidden}.stage:after{content:"";background:var(--paper-texture,none) center / 512px;mix-blend-mode:multiply;opacity:.18;pointer-events:none;z-index:2000;position:absolute;inset:0}button{font:inherit;color:inherit;cursor:pointer}.btn{border:3px solid var(--ink);background:var(--paper);letter-spacing:.1em;border-radius:10px;justify-content:center;align-items:center;gap:.4em;min-height:72px;padding:0 1.2em;font-size:30px;transition:transform .12s,background .2s,color .2s;display:inline-flex}.btn:hover{background:var(--paper-2)}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn--primary{background:var(--ink);color:var(--paper)}.btn--primary:hover{background:var(--ink-2)}.btn--small{min-height:52px;padding:0 .8em;font-size:22px}.panel{background:var(--paper-texture,none) center / 512px, var(--paper);background-blend-mode:multiply;max-width:min(92%,1560px);max-height:90%;color:var(--ink);cursor:default;border:2px solid #1a17148c;border-radius:6px;flex-direction:column;gap:20px;padding:48px 60px 42px;display:flex;position:relative;box-shadow:0 30px 80px #00000073,inset 0 0 0 8px #efe6d299,inset 0 0 0 10px #1a171438}.overlay-panel{animation:.3s cubic-bezier(.2,.8,.2,1) panel-in}.panel__corner{object-fit:contain;pointer-events:none;width:150px;height:150px;position:absolute}.panel__corner--tl{top:-24px;left:-24px}.panel__corner--tr{top:-24px;right:-24px}.panel__corner--bl{bottom:-24px;left:-24px}.panel__corner--br{bottom:-24px;right:-24px}.panel__title{font-family:var(--font-brush);letter-spacing:.15em;text-align:center;margin:0;font-size:64px;font-weight:400;line-height:1.1}.panel__body{flex-direction:column;gap:16px;min-height:0;padding:4px;display:flex;overflow-y:auto}.panel__actions{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.panel__prompt{color:var(--ink-soft);text-align:center;margin:0;font-size:28px}.panel__close{width:64px;height:64px;color:var(--ink-soft);z-index:2;background:0 0;border:none;font-size:52px;line-height:1;position:absolute;top:12px;right:16px}.modal{z-index:100}.modal.is-closing{animation:.2s forwards fade-out}.btn--danger{border-color:var(--cinnabar);color:var(--cinnabar)}.panel--confirm{width:900px}.panel--confirm p{text-align:center;margin:12px 0;font-size:32px;line-height:1.6}.panel--deck{width:1500px;height:86%}.deck-grid{grid-template-columns:repeat(auto-fill, minmax(var(--card-w,200px), 1fr));justify-items:center;gap:30px 20px;padding:20px 10px;display:grid}.deck-grid .card,.shop__item .card,.reward__cards .card{--card-w:200px;--card-h:280px}.card.is-pickable:hover{box-shadow:0 0 0 5px var(--cinnabar), 0 12px 24px #00000040}.panel--codex{width:1200px;height:86%}.codex__heading{border-bottom:2px solid #1a17144d;margin:8px 0 0;padding-bottom:6px;font-size:30px}.codex__list{flex-direction:column;gap:14px;display:flex}.codex__item{background:#ffffff59;border-radius:8px;align-items:center;gap:22px;padding:12px;display:flex}.codex__item.is-locked{opacity:.55}.codex__thumb{background:var(--paper-3);width:96px;height:128px;color:var(--ink-soft);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:48px;display:flex;overflow:hidden}.codex__thumb img{object-fit:cover;width:100%;height:100%}.codex__info h3{margin:0 0 4px;font-size:30px}.codex__info p{margin:0;font-size:24px;line-height:1.5}.codex__info .codex__source{color:var(--ink-soft);margin-top:4px;font-size:20px}.codex__stamp{border:5px solid var(--cinnabar);width:96px;height:96px;color:var(--cinnabar);font-family:var(--font-brush);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:64px;display:flex;transform:rotate(-8deg)}.codex__stats{color:var(--ink-soft);text-align:center;font-size:22px}.panel--settings{width:900px}.setting{border-bottom:1px dashed #1a171440;justify-content:space-between;align-items:center;gap:24px;padding:14px 0;font-size:30px;display:flex}.setting--danger{border:none;justify-content:center;padding-top:24px}.segmented{border:2px solid var(--ink);border-radius:10px;display:flex;overflow:hidden}.segmented__item{background:0 0;border:none;min-width:110px;min-height:60px;font-size:26px}.segmented__item+.segmented__item{border-left:2px solid var(--ink)}.segmented__item.is-active{background:var(--ink);color:var(--paper)}.panel--node{width:820px}.node-info{align-items:center;gap:28px;display:flex}.node-info__icon{object-fit:contain;flex:none;width:140px;height:140px}.node-info p{margin:10px 0 0;font-size:30px;line-height:1.6}.node-info__kind{background:var(--ink);color:var(--paper);letter-spacing:.2em;border-radius:999px;padding:2px 16px;font-size:22px;display:inline-block}.node-info__kind--elite{background:var(--ochre)}.node-info__kind--boss{background:var(--cinnabar)}.node-info__kind--shop,.node-info__kind--rest{background:var(--azurite)}.panel--shop{width:1560px}.shop__wallet{justify-content:center;align-items:center;gap:10px;font-size:34px;font-weight:700;display:flex}.coin-icon,.map__coin,.reward__coin{object-fit:contain;width:48px;height:48px}.shop__grid{flex-wrap:wrap;justify-content:center;gap:30px 26px;padding:20px 0 10px;display:flex}.shop__item{background:0 0;border:none;flex-direction:column;align-items:center;gap:12px;padding:0;display:flex;position:relative}.shop__item.is-poor .shop__price{color:var(--cinnabar)}.shop__item.is-sold{opacity:.4;cursor:default}.shop__price{align-items:center;gap:6px;font-size:28px;font-weight:700;display:flex}.shop__sold{color:var(--cinnabar);font-family:var(--font-brush);font-size:34px}.shop__service{border:3px dashed var(--ink-2);background:#fff6;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:200px;height:280px;padding:16px;transition:transform .2s;display:flex}.shop__item:not(.is-sold):hover .shop__service{transform:translateY(-10px)}.shop__service strong{font-family:var(--font-brush);font-size:56px;font-weight:400}.shop__service p{text-align:center;margin:0;font-size:20px}.panel--rest{width:1000px}.rest__options{grid-template-columns:1fr 1fr;gap:28px;display:grid}.rest__option{border:3px solid var(--ink);background:#fff6;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:34px 20px;transition:transform .15s,background .2s;display:flex}.rest__option:hover{background:#ffffffb3;transform:translateY(-4px)}.rest__option strong{font-family:var(--font-brush);font-size:80px;font-weight:400;line-height:1}.rest__option p{margin:0;font-size:28px}.rest__meta{color:var(--ink-soft);font-size:22px}.panel--log{width:1100px;height:80%}.panel--log .panel__body{overflow:hidden}.log{flex-direction:column;gap:16px;max-height:100%;padding-right:10px;display:flex;overflow-y:auto}.log__entry{font-size:26px;line-height:1.6}.log__entry p{margin:0;display:inline}.log__name{color:var(--cinnabar);margin-right:12px;font-weight:700}.log__entry.is-choice{color:var(--azurite)}.log__empty{color:var(--ink-soft);text-align:center}.panel--legacy{width:1100px;height:86%}.legacy__pages{background:var(--ink);color:var(--paper);letter-spacing:.15em;border-radius:999px;align-self:center;padding:6px 30px;font-size:30px}.legacy__pages-value{color:var(--gold);font-weight:700}.legacy__list{flex-direction:column;gap:14px;display:flex}.legacy__item{background:#ffffff59;border-radius:8px;align-items:center;gap:22px;padding:14px 18px;display:flex}.legacy__item.is-locked{opacity:.55}.legacy__seal{border:4px solid var(--ink-soft);width:84px;height:84px;color:var(--ink-soft);font-family:var(--font-brush);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:56px;display:flex;transform:rotate(-6deg)}.legacy__item.is-owned .legacy__seal{border-color:var(--cinnabar);background:var(--cinnabar);color:var(--paper)}.legacy__info{flex:1}.legacy__info h3{margin:0 0 4px;font-size:32px}.legacy__info p{margin:0;font-size:24px}.legacy__requires{color:var(--cinnabar);font-size:20px!important}.legacy__owned{color:var(--cinnabar);font-family:var(--font-brush);font-size:34px}[data-orient=portrait] .panel{max-width:96%;padding:48px 34px 38px}[data-orient=portrait] .panel--deck,[data-orient=portrait] .panel--codex,[data-orient=portrait] .panel--shop,[data-orient=portrait] .panel--log{width:96%}[data-orient=portrait] .panel__corner{width:110px;height:110px}[data-orient=portrait] .rest__options{grid-template-columns:1fr}@keyframes panel-in{0%{opacity:0;transform:translateY(30px)scale(.97)}}@keyframes fade-out{to{opacity:0}}.menu{flex-direction:column;gap:32px;padding:56px 72px;display:flex;position:absolute;inset:0}.menu__header{position:relative}.menu__back{position:absolute;top:0;right:0}.menu__header h1{font-family:var(--font-brush);margin:0;font-size:120px;font-weight:400;line-height:1}.menu__header p{color:var(--ink-soft);letter-spacing:.2em;margin:12px 0 0}.menu__body{flex:1;grid-template-columns:1fr 1fr 1.1fr;gap:40px;min-height:0;display:grid}.menu__col{flex-direction:column;gap:16px;min-height:0;display:flex}.menu__col h2{border-bottom:3px solid var(--ink);margin:0 0 4px;padding-bottom:8px;font-size:34px}.menu__list{flex-direction:column;flex:0 auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.menu__item{border:2px solid var(--paper-3);text-align:left;background:#ffffff59;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 18px;display:flex}.menu__item strong{font-size:28px}.menu__item span{color:var(--ink-soft);font-size:20px}.menu__item.is-active{border-color:var(--cinnabar);box-shadow:inset 6px 0 0 var(--cinnabar);background:#b7282e14}.menu__seed{font:inherit;border:2px solid var(--paper-3);-webkit-user-select:text;user-select:text;background:#ffffff80;border-radius:10px;padding:14px 18px;font-size:24px}.menu__start{min-height:96px;margin-top:auto;font-size:40px}.menu__rules{border:2px dashed var(--paper-3);border-radius:12px;height:100%;padding:24px 28px;font-size:24px;line-height:1.6;overflow-y:auto}.menu__rules h3{margin:0 0 8px;font-size:30px}.menu__rules p{margin:8px 0}.menu__rules ul{margin:0;padding-left:1.2em}.menu__rules b{font-family:var(--font-brush);color:var(--cinnabar);font-size:36px;font-weight:400}.menu__hint{color:var(--ink-soft)}[data-orient=portrait] .menu{padding:56px 48px}[data-orient=portrait] .menu__body{flex-direction:column;gap:36px;padding-bottom:24px;display:flex;overflow-y:auto}[data-orient=portrait] .menu__col{flex:none}[data-orient=portrait] .menu__list{overflow:visible}[data-orient=portrait] .menu__rules{height:auto}[data-orient=portrait] .menu__start{margin-top:8px}[hidden]{display:none!important}.battle{--card-w:200px;--card-h:280px;grid-template:"top top top"100px"player enemies enemies"minmax(0,1fr)"ctl-l tray ctl-r"76px"ctl-l hand ctl-r"350px/380px 1fr 340px;display:grid;position:absolute;inset:0}[data-orient=portrait] .battle{--card-w:196px;--card-h:274px;grid-template:"top top"120px"enemies enemies"minmax(0,1fr)"player player"190px"tray tray"80px"hand hand"400px"ctl-l ctl-r"180px/1fr 1fr}.battle>:not(.battle__bg,.battle__overlay){z-index:1;position:relative}.battle__bg{object-fit:cover;z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.battle__top{border-bottom:2px solid #1a171426;grid-area:top;justify-content:space-between;align-items:center;padding:0 40px;display:flex}.battle__heading{align-items:baseline;gap:24px;display:flex}.battle__title{letter-spacing:.1em;font-size:38px;font-weight:700}.battle__turn{color:var(--ink-soft);font-size:26px}.battle__menu{gap:12px;display:flex}.player{flex-direction:column;grid-area:player;justify-content:center;align-items:center;gap:18px;padding:16px;display:flex}[data-orient=portrait] .player{flex-direction:row;justify-content:flex-start;gap:28px;padding:10px 48px}.player__portrait{border:3px solid var(--ink);background:repeating-linear-gradient(45deg, var(--paper-2) 0 12px, var(--paper-3) 12px 24px);border-radius:14px;justify-content:center;align-items:flex-end;width:220px;height:290px;display:flex;position:relative}[data-orient=portrait] .player__portrait{width:136px;height:170px}.player__portrait.has-art{background:0 0;border-color:#0000}.player__portrait .art,.enemy__body .art{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.player__name{background:var(--ink);color:var(--paper);letter-spacing:.2em;border-radius:999px;margin-bottom:10px;padding:2px 16px;font-size:26px;position:relative}.player__stats{flex-direction:column;gap:12px;width:320px;display:flex}[data-orient=portrait] .player__stats{flex:1;width:auto}.player__hp{align-items:center;gap:10px;display:flex}.player__hp .bar{flex:1}.bar{border:2px solid var(--ink);background:#ffffff8c;border-radius:18px;height:36px;position:relative;overflow:hidden}.bar__fill{background:var(--ink-2);transition:width .35s ease-out;position:absolute;inset:0 auto 0 0}.bar--player .bar__fill{background:var(--ochre)}.bar--mind{border-color:var(--cinnabar)}.bar--mind .bar__fill{background:repeating-linear-gradient(100deg, var(--cinnabar) 0 10px, #c9474c 10px 14px)}.bar__text{text-align:center;color:#fff;text-shadow:0 0 3px #000000e6,0 0 1px #000;white-space:nowrap;font-size:21px;line-height:32px;position:relative}.badge{min-width:58px;height:58px;color:var(--paper);flex:none;justify-content:center;align-items:center;padding:0 6px;font-size:26px;font-weight:900;display:inline-flex}.badge--block{background:var(--azurite);box-shadow:0 0 0 3px var(--paper);border-radius:50% 50% 46% 46%/40% 40% 60% 60%}.chips{flex-wrap:wrap;justify-content:center;gap:6px;min-height:34px;display:flex}.player .chips{justify-content:flex-start}.chip{border:2px solid var(--ink-soft);background:#ffffffb3;border-radius:999px;padding:2px 12px;font-size:20px;line-height:1.4}.chip--debuff{border-color:var(--cinnabar);color:var(--cinnabar)}.chip--power{border-color:var(--gold);color:#7a5f24}.battle__enemies{grid-area:enemies;justify-content:center;align-items:flex-end;gap:36px;padding:12px 40px 8px;display:flex}[data-orient=portrait] .battle__enemies{flex-wrap:wrap;align-content:center;align-items:center;gap:24px 20px;padding:16px 24px}.enemy{cursor:pointer;flex-direction:column;align-items:center;gap:10px;width:320px;display:flex;position:relative}.enemy--elite{width:360px}.enemy--boss{width:440px}[data-orient=portrait] .enemy--boss,[data-orient=portrait] .enemy--elite:only-child{width:520px}.enemy__intents{flex-wrap:wrap;justify-content:center;gap:8px;min-height:52px;display:flex}.intent{background:var(--ink);color:var(--paper);white-space:nowrap;border:2px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:6px 14px;font-size:24px;display:inline-flex}.intent__icon{font-size:22px}.intent--attack{background:var(--cinnabar)}.intent--defend{background:var(--azurite)}.intent--debuff{background:var(--ink-2)}.intent--charge{background:var(--ochre);animation:1s ease-in-out infinite pulse}.intent.is-next{border:2px dashed var(--ink-soft);color:var(--ink-2);background:#fff9;animation:none}.enemy__target{color:var(--cinnabar);opacity:0;z-index:3;pointer-events:none;font-size:30px;line-height:1;position:absolute;top:54px;left:50%;transform:translate(-50%)}.enemy.is-target .enemy__target{opacity:1;animation:1s ease-in-out infinite bob}.enemy__body{border:3px solid var(--ink-soft);background:repeating-linear-gradient(-45deg,#1a17140d 0 14px,#0000 14px 28px),#ffffff59;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:280px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.enemy--elite .enemy__body{border:4px solid var(--ochre);height:320px}.enemy--boss .enemy__body{border:6px double var(--cinnabar);height:360px}[data-orient=portrait] .enemy--boss .enemy__body,[data-orient=portrait] .enemy--elite:only-child .enemy__body{height:440px}.enemy__body.has-art{background:0 0;border-color:#0000}.enemy__body.has-art>:not(.art,.enemy__phase){display:none}.enemy.is-target .enemy__body{border-color:var(--cinnabar);box-shadow:0 0 0 5px #b7282e38}.battle.has-targeted-card .enemy .enemy__body{box-shadow:0 0 0 5px #b8964f73}@media (hover:hover){.battle.has-targeted-card .enemy:hover .enemy__body{box-shadow:0 0 0 6px var(--gold);transform:translateY(-8px)}}.enemy__name{letter-spacing:.1em;font-size:46px;font-weight:700}.enemy__desc{color:var(--ink-soft);text-align:center;padding:0 20px;font-size:20px}.enemy__phase{background:var(--cinnabar);color:var(--paper);letter-spacing:.2em;z-index:2;border-radius:999px;padding:2px 14px;font-size:22px;position:absolute;top:10px;left:10px}.enemy .badge--block{z-index:3;position:absolute;top:120px;left:-20px}.enemy__bars{flex-direction:column;gap:6px;width:100%;display:flex}.enemy__stamp{border:10px solid var(--cinnabar);width:220px;height:220px;color:var(--cinnabar);font-family:var(--font-brush);z-index:6;pointer-events:none;border-radius:18px;justify-content:center;align-items:center;font-size:170px;line-height:1;display:none;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)rotate(-12deg)}.enemy.is-leaving{pointer-events:none}.enemy.is-leaving .enemy__stamp{animation:.35s ease-in both stamp;display:flex}.enemy.is-slain .enemy__body,.enemy.is-slain .enemy__bars{animation:1.1s ease-in forwards slain}.enemy.is-purified .enemy__body,.enemy.is-purified .enemy__bars{animation:1.1s ease-out forwards purified}.enemy.is-purified .enemy__stamp{border-color:var(--azurite);color:var(--azurite)}.enemy.is-destroyed{animation:1s ease-in forwards destroyed}.enemy.is-fled{animation:.6s ease-in forwards fled}.enemy.is-fled .enemy__stamp,.enemy.is-destroyed .enemy__stamp{border-color:var(--ink-soft);color:var(--ink-soft)}.enemy.is-entering{animation:.5s ease-out enemy-in}.enemy.is-acting .enemy__body{animation:.45s ease-in-out lunge}.is-hit{animation:.38s ease-out hit}.is-soothe{animation:.6s ease-out soothe}.float-layer{pointer-events:none;z-index:5;width:0;height:0;position:absolute;top:42%;left:50%}.float{white-space:nowrap;text-shadow:0 0 6px var(--paper), 0 3px 0 var(--paper);font-size:56px;font-weight:900;animation:1.2s ease-out forwards float-up;position:absolute;top:0;left:0}.float--damage{color:var(--ink)}.float--mind{color:var(--cinnabar)}.float--block,.float--heal{color:var(--azurite);font-size:40px}.float--status{color:var(--ink-2);font-size:36px}.float--info{background:var(--ink);color:var(--paper);text-shadow:none;border-radius:10px;padding:4px 18px;font-size:32px;font-weight:700}.battle__tray{grid-area:tray;justify-content:center;align-items:center;gap:12px;display:flex}.tray__label{color:var(--ink-2);letter-spacing:.1em;font-size:24px}.tray__label--idle{color:var(--ink-soft)}.tray__radical{border:3px solid var(--cinnabar);width:60px;height:60px;color:var(--cinnabar);font-family:var(--font-brush);background:#ffffffb3;border-radius:10px;justify-content:center;align-items:center;font-size:46px;line-height:1;animation:.3s ease-out enemy-in;display:flex}.battle__hand{grid-area:hand;margin:0 12px}[data-orient=portrait] .battle__hand{margin:0 56px}.card{--x:0px;--y:0px;--r:0deg;--s:1;--lift:0px;width:var(--card-w);height:var(--card-h);border:3px solid var(--ink);background:var(--paper);color:var(--ink);transform:translate(calc(var(--x) + var(--drag-x,0px)), calc(var(--y) + var(--lift) + var(--drag-y,0px))) rotate(var(--r)) scale(var(--s));transform-origin:50% 100%;cursor:pointer;border-radius:14px;flex-direction:column;padding:6px 10px 10px;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s,filter .2s,box-shadow .2s;display:flex;position:absolute;bottom:36px;left:0;box-shadow:0 6px 14px #1a171440}@media (hover:hover){.card:hover:not(.is-selected,.card--static){--lift:-34px}}.battle.is-busy .card{pointer-events:none}.card:not(.is-playable){filter:grayscale(.5)brightness(.9)}.card.is-selected{box-shadow:0 0 0 5px var(--gold), 0 20px 34px #1a171459}.card.has-combo{box-shadow:0 0 0 5px var(--cinnabar), 0 6px 14px #1a171440}.card.is-shake{animation:.4s shake}.card__cost{background:var(--cinnabar);width:52px;height:52px;color:var(--paper);z-index:1;border-radius:10px;justify-content:center;align-items:center;font-size:32px;font-weight:900;display:flex;position:absolute;top:-14px;left:-14px;transform:rotate(-6deg);box-shadow:0 2px #00000040}.card:not(.is-playable) .card__cost{background:var(--ink-soft)}.card__name{text-align:center;white-space:nowrap;text-overflow:ellipsis;height:40px;padding-left:28px;font-size:26px;font-weight:700;line-height:40px;overflow:hidden}.card__art{background:repeating-linear-gradient(45deg, var(--paper-2) 0 10px, var(--paper-3) 10px 20px);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;margin-bottom:4px;display:flex;position:relative;overflow:hidden}.card__art .art{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.card__placeholder{color:var(--ink-soft);font-size:24px}.card__radical{font-family:var(--font-brush);font-size:96px;line-height:1}.card__type{background:var(--ink);color:var(--paper);border-radius:999px;align-self:center;margin-bottom:4px;padding:0 12px;font-size:16px;line-height:1.5}.card--talisman .card__type{background:var(--cinnabar)}.card--spell .card__type{background:var(--azurite)}.card--artifact .card__type{background:var(--gold)}.card--truth{border-color:var(--ochre);background:#f1e2c2}.card--truth .card__type{background:var(--ochre)}.card--curse{border-color:var(--ink-2);background:#c9bda5}.card__text{text-align:center;min-height:48px;font-size:17px;line-height:1.4}.card__combos{color:var(--cinnabar);text-align:center;font-size:15px}.card__hint{background:var(--cinnabar);color:var(--paper);white-space:nowrap;border-radius:999px;padding:2px 14px;font-size:22px;display:none;position:absolute;top:-46px;left:50%;transform:translate(-50%)}.card.has-combo .card__hint{display:block}.card--static{transition:transform .2s;position:relative;bottom:auto;left:auto;transform:none}.card--static:hover{transform:translateY(-10px)}.battle__ctl{flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex}.battle__ctl-l{grid-area:ctl-l}.battle__ctl-r{grid-area:ctl-r}[data-orient=portrait] .battle__ctl{flex-direction:row;gap:28px;padding:0 40px 20px}[data-orient=portrait] .battle__ctl-l{justify-content:flex-start}[data-orient=portrait] .battle__ctl-r{justify-content:flex-end}.pile-group{flex-direction:column;align-items:center;gap:6px;display:flex}.pile{border:3px solid var(--ink);width:110px;height:140px;box-shadow:4px 4px 0 var(--paper-3), 8px 8px 0 #1a171433;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;display:flex}[data-orient=portrait] .pile{width:96px;height:120px}.pile--draw{background:var(--ink);color:var(--paper)}.pile--discard{background:var(--paper-2)}.pile.is-pulse{animation:.5s pulse}.pile__count{font-size:42px;font-weight:900;line-height:1.1}.pile__label{font-size:18px}.pile__exhaust{min-height:26px;color:var(--ink-soft);font-size:20px}.energy{background:radial-gradient(circle at 35% 30%, #4d433a, var(--ink) 70%);width:150px;height:150px;color:var(--paper);box-shadow:0 0 0 6px var(--paper-3);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}[data-orient=portrait] .energy{width:128px;height:128px}.energy__value{font-size:62px;font-weight:900;line-height:1}.energy__label{letter-spacing:.3em;font-size:20px}.energy__pips{gap:6px;display:flex;position:absolute;bottom:-34px}.energy__pips i{border:2px solid var(--ink);border-radius:50%;width:18px;height:18px}.energy__pips i.is-full{background:var(--ink)}.end-turn{min-width:240px;min-height:100px;font-size:36px}.battle__overlay{z-index:50;pointer-events:none;position:absolute;inset:0}.banner{color:var(--paper);font-family:var(--font-brush);letter-spacing:.3em;text-align:center;background:linear-gradient(90deg,#0000,#1a1714e0 22% 78%,#0000);padding:28px 0;font-size:64px;animation:.25s ease-out banner-in;position:absolute;top:40%;left:0;right:0}.banner--phase{background:linear-gradient(90deg,#0000,#b7282eeb 22% 78%,#0000);font-size:80px}.banner.is-out{animation:.25s ease-in forwards banner-out}.combo{background:radial-gradient(circle,#efe6d2f5 0 30%,#efe6d200 64%);flex-direction:column;justify-content:center;align-items:center;gap:8px;animation:.25s ease-out both fade-in;display:flex;position:absolute;inset:0}.combo.is-out{animation:.3s ease-in forwards fade-out}.combo__writer{justify-content:center;align-items:center;width:380px;height:380px;display:flex;position:relative}[data-orient=portrait] .combo__writer{width:460px;height:460px}.combo__writer.is-fallback{color:var(--ink);font-family:var(--font-brush);font-size:340px;line-height:1;animation:1.2s cubic-bezier(.2,.8,.2,1) both combo-char}.combo__writer.is-done{animation:.5s pulse}.combo__parts{font-family:var(--font-brush);color:var(--ink-soft);letter-spacing:.2em;font-size:48px}.combo__char{font-family:var(--font-brush);color:var(--ink);font-size:340px;line-height:1;animation:1.2s cubic-bezier(.2,.8,.2,1) forwards combo-char}.combo__text{color:var(--cinnabar);font-size:36px;font-weight:700}.toast{max-width:80%;color:var(--paper);text-align:center;opacity:0;background:#1a1714e6;border-radius:999px;padding:12px 30px;font-size:26px;transition:opacity .2s,transform .2s;position:absolute;top:118px;left:50%;transform:translate(-50%,-10px)}[data-orient=portrait] .toast{top:140px}.toast.is-show{opacity:1;transform:translate(-50%)}.debug{border:2px solid var(--ink);pointer-events:auto;background:#fffffff0;border-radius:12px;gap:10px;padding:16px;display:grid;position:absolute;top:110px;right:24px}[data-orient=portrait] .debug{top:130px}.debug__seed{color:var(--ink-soft);-webkit-user-select:text;user-select:text;font-size:20px}.modal{pointer-events:auto;background:#0e0c0a8c;justify-content:center;align-items:center;animation:.25s ease-out fade-in;display:flex;position:absolute;inset:0}.modal__panel{border:3px solid var(--ink);background:var(--paper);border-radius:20px;flex-direction:column;align-items:center;gap:20px;max-width:90%;padding:40px 56px;display:flex;box-shadow:0 30px 60px #0006}.modal__panel h2{margin:0;font-size:44px}.choice__cards{flex-wrap:wrap;justify-content:center;gap:32px;padding-top:20px;display:flex}.result__stamp{border:10px solid var(--cinnabar);width:240px;height:240px;color:var(--cinnabar);font-family:var(--font-brush);border-radius:20px;justify-content:center;align-items:center;font-size:180px;line-height:1;animation:.45s ease-in both result-stamp;display:flex;transform:rotate(-10deg)}.result--purified .result__stamp{border-color:var(--azurite);color:var(--azurite)}.result--defeat .result__stamp{border-color:var(--ink);color:var(--ink)}.result h2{letter-spacing:.3em;font-size:64px}.result p{margin:0;font-size:30px}.result__stats{color:var(--ink-soft)}.result__actions{gap:24px;margin-top:12px;display:flex}@keyframes float-up{0%{opacity:0;transform:translate(calc(-50% + var(--dx,0px)), 20px) scale(.6)}15%{opacity:1;transform:translate(calc(-50% + var(--dx,0px)), -10px) scale(1.15)}to{opacity:0;transform:translate(calc(-50% + var(--dx,0px)), -140px) scale(1)}}@keyframes hit{0%,to{translate:0}20%{filter:brightness(1.3)sepia(.5)hue-rotate(-30deg);translate:-16px}40%{translate:12px}60%{translate:-8px}80%{translate:4px}}@keyframes soothe{0%{box-shadow:0 0 #b7282e99}to{box-shadow:0 0 0 40px #b7282e00}}@keyframes lunge{0%,to{translate:0;scale:1}45%{translate:0 36px;scale:1.06}}@keyframes enemy-in{0%{opacity:0;translate:0 -30px}to{opacity:1;translate:0}}@keyframes stamp{0%{opacity:0;transform:translate(-50%,-50%)rotate(-12deg)scale(2.4)}to{opacity:1;transform:translate(-50%,-50%)rotate(-12deg)scale(1)}}@keyframes slain{0%,35%{opacity:1;filter:none}to{opacity:0;filter:brightness(.2)blur(4px);scale:.9}}@keyframes purified{0%,35%{opacity:1;filter:none}to{opacity:0;filter:sepia()hue-rotate(140deg)blur(8px);translate:0 -60px}}@keyframes destroyed{0%{opacity:1;filter:none}40%{filter:brightness(1.6)sepia()}to{opacity:0;filter:brightness(.3);scale:.8}}@keyframes fled{to{opacity:0;translate:160px}}@keyframes shake{0%,to{translate:0}25%{translate:-10px}75%{translate:10px}}@keyframes pulse{0%,to{scale:1}50%{scale:1.08}}@keyframes bob{0%,to{translate:0}50%{translate:0 8px}}@keyframes banner-in{0%{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:scaleY(1)}}@keyframes banner-out{to{opacity:0;transform:scaleY(.3)}}@keyframes combo-bg{0%{opacity:0}15%,75%{opacity:1}to{opacity:0}}@keyframes combo-char{0%{opacity:0;filter:blur(18px);transform:scale(2.4)}30%{opacity:1;filter:blur();transform:scale(1)}80%{opacity:1;transform:scale(1.04)}to{opacity:0;filter:blur(6px);transform:scale(1.1)}}@keyframes result-stamp{0%{opacity:0;transform:rotate(-10deg)scale(2.2)}to{opacity:1;transform:rotate(-10deg)scale(1)}}@keyframes fade-in{0%{opacity:0}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015,1.025)}}.battle>.battle__wash{pointer-events:none;z-index:0;position:absolute;inset:0}.battle.has-scene .battle__wash{background:linear-gradient(#efe6d2b3 0%,#efe6d226 11%,#0e0c0a00 38%,#efe6d28c 66%,#efe6d2ed 100%)}.battle>.battle__fx{pointer-events:none;z-index:40;position:absolute;inset:0;overflow:hidden}.battle.has-scene .battle__turn{color:var(--ink-2)}.battle.has-scene .tray__label{background:#efe6d2d9;border-radius:999px;padding:4px 18px}.player__portrait.has-art{border:3px solid var(--ink);background:#efe6d299;overflow:hidden}.player__portrait.has-art .art{object-fit:cover;object-position:50% 6%}.player__portrait.is-low{box-shadow:0 0 0 4px var(--cinnabar), 0 0 30px #b7282e99}.enemy__body.has-art{box-shadow:none;background:0 0;border-color:#0000;overflow:visible}.enemy__body .enemy__art{object-fit:contain;object-position:50% 100%;transform-origin:50% 100%;filter:drop-shadow(0 0 16px #efe6d28c)drop-shadow(0 12px 18px #00000059);transition:filter .2s;animation:.6s both fade-in,4.5s ease-in-out .6s infinite breathe}.enemy__body .enemy__art.is-old{animation:.6s forwards fade-out}.enemy.is-target .enemy__body.has-art{box-shadow:none;border-color:#0000}.enemy.is-target .enemy__body.has-art .enemy__art{filter:drop-shadow(0 0 10px #b7282ef2)drop-shadow(0 12px 18px #00000059)}.battle.has-targeted-card .enemy .enemy__body.has-art{box-shadow:none}.battle.has-targeted-card .enemy .enemy__body.has-art .enemy__art{filter:drop-shadow(0 0 12px #b8964ff2)}.enemy__label{color:var(--paper);letter-spacing:.2em;background:#1a1714d1;border-radius:4px;padding:0 16px;font-size:24px;font-weight:700;display:none}.enemy:has(.enemy__body.has-art) .enemy__label{display:block}.enemy.is-sliced .enemy__body .enemy__art{opacity:0;animation:none}.card__art.has-art .card__placeholder{display:none}.pile--draw{background:var(--card-back,none) center / cover, var(--ink)}.pile--draw .pile__count,.pile--draw .pile__label{text-shadow:0 0 6px #000,0 0 2px #000}.card.is-burning{filter:sepia()brightness(1.3)saturate(1.4)}.battle__enemies{min-height:0}.enemy{gap:6px}.enemy--boss .enemy__body.has-art{height:330px}[data-orient=portrait] .enemy{width:400px}[data-orient=portrait] .enemy:not(:only-child){width:330px}[data-orient=portrait] .enemy__body.has-art{height:440px}[data-orient=portrait] .enemy:only-child .enemy__body.has-art{height:620px}[data-orient=portrait] .enemy--boss .enemy__body.has-art,[data-orient=portrait] .enemy--elite:only-child .enemy__body.has-art{height:700px}.screen{position:absolute;inset:0}.scene{background:#1c1814;position:absolute;inset:0;overflow:hidden}.scene__img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s;position:absolute;inset:0}.scene__img.is-shown{opacity:1}.scene__img.is-instant{transition:none}.scene__img.is-leaving{opacity:0}.title-screen{color:var(--paper);position:absolute;inset:0;overflow:hidden}.title__scene .scene__img.is-shown{animation:30s ease-in-out infinite alternate kenburns}.title__wash{z-index:1;background:linear-gradient(#0e0c0a1a 0%,#0000 35%,#0e0c0a80 68%,#0e0c0ae0 100%);position:absolute;inset:0}.title__brand{text-align:center;z-index:2;position:absolute;top:7%;left:50%;transform:translate(-50%)}.title__name{color:var(--ink);font-family:var(--font-brush);letter-spacing:.08em;text-shadow:0 0 30px #efe6d2f2,0 0 70px #efe6d2b3;margin:0;font-size:220px;font-weight:400;line-height:1;animation:1.8s ease-out both title-in}.title__chapter{background:var(--stroke,linear-gradient(90deg, transparent, #14110ed9 18%, #14110ed9 82%, transparent)) center / 100% 100% no-repeat;color:var(--paper);letter-spacing:.5em;text-indent:.5em;text-shadow:0 0 6px #000000e6,0 2px 2px #000c;white-space:nowrap;margin:18px 0 0;padding:16px 90px;font-size:38px;font-weight:700;animation:1s .9s both fade-in;display:inline-block}.title__menu{z-index:2;flex-direction:column;align-items:center;gap:12px;animation:1s 1.2s both fade-in;display:flex;position:absolute;bottom:11%;left:50%;transform:translate(-50%)}.title__btn{min-width:420px;min-height:76px;color:var(--paper);letter-spacing:.4em;text-indent:.4em;text-shadow:0 2px 8px #000000d9;background:0 0;border:none;font-size:38px;transition:color .2s,transform .2s;position:relative}.title__btn:before{content:"";z-index:-1;background:radial-gradient(#1a1714bf,#0000 70%);position:absolute;inset:8px 0}.title__btn:hover{color:#fff;transform:scale(1.06)}.title__btn:hover:before,.title__btn.is-primary:before{background:radial-gradient(#b7282ed9,#0000 70%)}.title__btn.is-primary{font-size:46px}.title__credits{color:#efe6d280;text-align:center;z-index:2;font-size:18px;position:absolute;bottom:18px;left:0;right:0}[data-orient=portrait] .title__brand{top:9%}[data-orient=portrait] .title__name{font-size:250px}[data-orient=portrait] .title__btn{min-width:600px;min-height:100px;font-size:46px}[data-orient=portrait] .title__btn.is-primary{font-size:54px}.map-screen{background:#d9cdb2;position:absolute;inset:0;overflow:hidden;container-type:size}.map__viewport{position:absolute;inset:0;overflow:hidden}.map__board{aspect-ratio:16/9;width:max(100cqw,177.778cqh);position:absolute;top:50%;left:50%;translate:-50% -50%}.map__board[data-orient=portrait]{aspect-ratio:9/16;width:max(100cqw,56.25cqh)}.map__board.is-placeholder{background:repeating-linear-gradient(45deg, var(--paper-2) 0 20px, var(--paper-3) 20px 40px)}.map__art{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.map__paths{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map__path{fill:none;stroke:#1a171466;stroke-width:3px;stroke-dasharray:10 10}.map__path.is-walked{stroke:var(--cinnabar);stroke-width:5px;stroke-dasharray:none}.map__path.is-open{stroke:var(--ink);stroke-width:5px;animation:1.2s linear infinite dash}.map-node{z-index:2;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex;position:absolute;translate:-50% -50%}.map-node:disabled{cursor:default}.map-node__seal{width:124px;height:124px;font-family:var(--font-brush);background:radial-gradient(circle,#efe6d2f2 52%,#efe6d200 71%);border-radius:50%;justify-content:center;align-items:center;font-size:56px;transition:transform .2s;display:flex}.map-node__icon{object-fit:contain;filter:drop-shadow(0 3px 4px #00000059);width:96px;height:96px}.map-node__name{color:var(--paper);letter-spacing:.1em;white-space:nowrap;background:#1a1714d1;border-radius:4px;padding:2px 16px;font-size:26px}.map-node.is-available .map-node__seal{animation:1.6s ease-in-out infinite node-pulse}.map-node.is-available:hover .map-node__seal{transform:scale(1.12)}.map-node.is-available .map-node__name,.map-node.is-current .map-node__name{background:var(--cinnabar)}.map-node.is-locked{filter:grayscale()opacity(.6)}.map-node.is-visited{filter:grayscale(.7)opacity(.85)}.map-node__stamp{border:4px solid var(--cinnabar);width:52px;height:52px;color:var(--cinnabar);font-family:var(--font-brush);background:#efe6d2d9;border-radius:8px;justify-content:center;align-items:center;font-size:36px;display:flex;position:absolute;top:4px;right:-8px;transform:rotate(-12deg)}.map-node--boss .map-node__seal{width:156px;height:156px}.map-node--boss .map-node__icon{width:128px;height:128px}.map__hud{z-index:5;background:linear-gradient(#efe6d2f5,#efe6d2cc 65%,#0000);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding:18px 36px 36px;display:flex;position:absolute;top:0;left:0;right:0}.map__chapter{flex-direction:column;display:flex}.map__chapter strong{font-family:var(--font-brush);font-size:52px;font-weight:400;line-height:1.1}.map__chapter span{color:var(--ink-soft);font-size:22px}.map__stats{align-items:center;gap:28px;display:flex}.map__hp{width:340px}.map__coins{align-items:center;gap:8px;font-size:32px;font-weight:700;display:flex}.map__actions{gap:12px;display:flex}.map__hint{color:var(--paper);letter-spacing:.15em;white-space:nowrap;z-index:5;background:#1a1714d9;border-radius:999px;padding:12px 40px;font-size:30px;animation:.6s .4s both fade-in;position:absolute;bottom:36px;left:50%;translate:-50%}[data-orient=portrait] .map__hud{padding:24px 32px 40px}[data-orient=portrait] .map__stats{order:3;justify-content:space-between;width:100%}[data-orient=portrait] .map__hp{flex:1}.reward-screen{background:var(--paper-texture,none) center / 512px, #3a342e;background-blend-mode:multiply;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reward__wash{background:radial-gradient(#efe6d233,#0e0c0ae6 75%);position:absolute;inset:0}.panel.reward{align-items:center;animation:.5s cubic-bezier(.2,.8,.2,1) panel-in}.reward__stamp{border:6px solid var(--cinnabar);width:110px;height:110px;color:var(--cinnabar);font-family:var(--font-brush);border-radius:12px;justify-content:center;align-items:center;font-size:76px;animation:.45s ease-in .3s both result-stamp;display:flex;position:absolute;top:26px;right:60px;transform:rotate(10deg)}.reward__coins{align-items:center;gap:10px;font-size:36px;font-weight:700;display:flex}.reward__cards{flex-wrap:wrap;justify-content:center;gap:36px;padding:30px 0 10px;display:flex}.card.card--static.is-chosen{box-shadow:0 0 0 6px var(--cinnabar), 0 20px 30px #0000004d;transform:translateY(-16px)}.outcome-screen{color:var(--paper);position:absolute;inset:0;overflow:hidden}.outcome__scene .scene__img.is-shown{animation:40s ease-in-out infinite alternate kenburns}.outcome__wash{z-index:1;background:linear-gradient(90deg,#0e0c0a26 0%,#0e0c0a59 42%,#0e0c0ae6 68%);position:absolute;inset:0}.outcome__content{text-align:center;z-index:2;flex-direction:column;align-items:center;gap:14px;width:780px;display:flex;position:absolute;top:50%;right:5%;translate:0 -50%}.outcome__stamp{border:10px solid var(--cinnabar);width:190px;height:190px;color:var(--cinnabar);font-family:var(--font-brush);border-radius:20px;justify-content:center;align-items:center;font-size:140px;line-height:1;animation:.5s ease-in .6s both result-stamp;display:flex;transform:rotate(-10deg)}.outcome--mend .outcome__stamp{border-color:var(--azurite-soft);color:var(--azurite-soft)}.outcome--death .outcome__stamp{border-color:var(--paper);color:var(--paper)}.outcome__label{color:#efe6d2b3;letter-spacing:.4em;margin:0;font-size:28px}.outcome__title{font-family:var(--font-brush);letter-spacing:.1em;margin:0;font-size:110px;font-weight:400;line-height:1.1;animation:1.2s ease-out .2s both title-in}.outcome__text{max-width:700px;margin:0;font-size:32px;line-height:1.8}.outcome__stats{border-top:1px solid #efe6d24d;border-bottom:1px solid #efe6d24d;gap:30px;margin:16px 0 0;padding:16px 30px;display:flex}.outcome__stat{flex-direction:column;align-items:center;display:flex}.outcome__stat dt{color:#efe6d299;font-size:22px}.outcome__stat dd{margin:0;font-size:40px;font-weight:700}.outcome__note{color:#efe6d299;margin:0;font-size:22px}.outcome__actions{gap:24px;margin-top:12px;display:flex}.outcome-screen .btn{border-color:var(--paper);color:var(--paper);background:#efe6d21a}.outcome-screen .btn--primary{border-color:var(--cinnabar);background:var(--cinnabar)}.outcome__quote{border-left:6px solid var(--cinnabar);text-align:left;background:#0e0c0a8c;margin:10px 0;padding:24px 34px;font-size:34px;line-height:1.7}.outcome__speaker{color:var(--cinnabar-soft);margin-bottom:6px;font-size:24px;display:block}.outcome__daoren{z-index:1;height:92%;position:absolute;bottom:0;left:4%}.outcome__portrait{object-fit:contain;filter:drop-shadow(0 0 30px #0009);width:auto;height:100%;animation:1s ease-out both portrait-in}[data-orient=portrait] .outcome__wash{background:linear-gradient(#0e0c0a1a 0%,#0e0c0a80 38%,#0e0c0aeb 60%)}[data-orient=portrait] .outcome__content{width:90%;inset:auto auto 5% 50%;translate:-50%}[data-orient=portrait] .outcome__daoren{height:50%;top:3%;bottom:auto;left:-6%}[data-orient=portrait] .outcome__stats{gap:22px}.loading{color:var(--paper);z-index:3000;background:#16130f;flex-direction:column;justify-content:center;align-items:center;gap:40px;transition:opacity .6s;display:flex;position:absolute;inset:0}.loading.is-done{opacity:0}.loading__title{font-family:var(--font-brush);letter-spacing:.1em;font-size:180px;line-height:1;animation:1.2s ease-out both fade-in}.loading__bar{background:#efe6d226;border-radius:3px;width:min(640px,70%);height:6px;overflow:hidden}.loading__fill{background:var(--cinnabar);width:0;height:100%;transition:width .3s ease-out}.loading__text{color:#efe6d28c;letter-spacing:.4em;font-size:26px}.title__pages{color:var(--paper);letter-spacing:.15em;z-index:2;background:#0e0c0a80;border:1px solid #efe6d266;border-radius:999px;padding:8px 24px;font-size:24px;position:absolute;top:28px;right:36px}.title__pages-value{color:var(--gold);font-weight:700}.reward__extras{gap:16px;display:flex}.reward__extra{color:var(--paper);border-radius:999px;padding:4px 18px;font-size:24px}.reward__extra--heal{background:var(--azurite)}.reward__extra--pages{background:var(--ochre)}.story.is-peeking .story__box,.story.is-peeking .story__controls,.story.is-peeking .story__status,.story.is-peeking .story__gains,.story.is-peeking .story__portraits{opacity:0;pointer-events:none;transition:opacity .3s}@keyframes kenburns{0%{transform:scale(1.02)}to{transform:scale(1.12)translate(-1.5%,1%)}}@keyframes title-in{0%{opacity:0;filter:blur(14px);transform:scale(1.1)}}@keyframes dash{to{stroke-dashoffset:-40px}}@keyframes node-pulse{0%,to{box-shadow:0 0 #b7282e8c}50%{box-shadow:0 0 0 22px #b7282e00}}@keyframes portrait-in{0%{opacity:0;transform:translateY(30px)}}@keyframes portrait-out{to{opacity:0;transform:translateY(20px)}}.story{cursor:pointer;background:#1c1814;position:absolute;inset:0;overflow:hidden}.story__vignette{pointer-events:none;z-index:1;background:radial-gradient(at 50% 40%,#0000 45%,#0e0c0a8c 100%),linear-gradient(#0000 55%,#0e0c0a73 100%);position:absolute;inset:0}.story__cg{opacity:0;pointer-events:none;z-index:3;background:#0e0c0a;transition:opacity .9s;position:absolute;inset:0}.story__cg:before{content:"";background:var(--cg) center / cover;filter:blur(30px)brightness(.45);position:absolute;inset:-40px}.story__cg.is-shown{opacity:1}.story__cg-img{object-fit:contain;width:100%;height:100%;animation:.8s both fade-in;position:absolute;inset:0}[data-orient=landscape] .story__cg-img{object-fit:cover}.story__portraits{pointer-events:none;z-index:2;transition:opacity .6s;position:absolute;inset:0}.story.has-cg .story__portraits{opacity:0}.portrait{aspect-ratio:2/3;height:96%;transition:left .5s,filter .35s,transform .35s;animation:.5s ease-out both portrait-in;position:absolute;bottom:0;translate:-50%}.portrait[data-at=left]{left:22%}.portrait[data-at=center]{left:50%}.portrait[data-at=right]{left:78%}.portrait.is-instant{animation:none}.portrait__img{object-fit:contain;object-position:bottom;filter:drop-shadow(0 0 24px #00000073);width:100%;height:100%;animation:.4s both fade-in;position:absolute;inset:0}.portrait__img.is-old{animation:.45s forwards fade-out}.portrait.is-dim{filter:brightness(.6)saturate(.8);transform:scale(.97)}.portrait.is-speaking{transform:scale(1.02)}.portrait.is-leaving{animation:.45s ease-in forwards portrait-out}.portrait__placeholder{color:var(--paper);background:#1a171466;border:3px dashed #efe6d299;border-radius:50% 50% 8px 8px;justify-content:center;align-items:center;font-size:40px;display:flex;position:absolute;inset:20% 15% 0}[data-orient=portrait] .portrait{height:58%;bottom:18%}[data-orient=portrait] .portrait[data-at=left]{left:30%}[data-orient=portrait] .portrait[data-at=right]{left:70%}.story__box{width:min(1720px,92%);min-height:280px;color:var(--ink);z-index:5;padding:56px 72px 44px;transition:opacity .3s;position:absolute;bottom:30px;left:50%;translate:-50%}.story__box:not(.has-scroll){border:2px solid var(--ink);background:#efe6d2f2;border-radius:8px}.story__box.has-scroll{border:0 solid #0000;border-width:0 120px;border-image:var(--scroll) 0 110 fill / 0 120px stretch;background:#ece0c4f0 padding-box content-box;padding:58px 30px 44px}.story__box.is-dimmed{opacity:.4}.story__name{background:var(--cinnabar);color:var(--paper);letter-spacing:.3em;text-indent:.3em;border-radius:4px;padding:6px 30px;font-size:34px;font-weight:700;position:absolute;top:-24px;left:40px;box-shadow:0 4px 10px #0000004d}.story__text{white-space:pre-wrap;min-height:3.5em;font-size:36px;line-height:1.75}.story__box.is-narration .story__text{color:var(--ink-2)}.story__next{color:var(--cinnabar);font-size:26px;animation:1s ease-in-out infinite bob;position:absolute;bottom:8px;right:18px}[data-orient=portrait] .story__box{width:95%;min-height:400px;bottom:40px}[data-orient=portrait] .story__box.has-scroll{border-width:0 70px;border-image:var(--scroll) 0 110 fill / 0 70px stretch;padding:64px 16px 52px}[data-orient=portrait] .story__text{font-size:42px}.story__controls{z-index:6;gap:8px;display:flex;position:absolute;top:18px;right:24px}.story__ctl{min-width:88px;min-height:54px;color:var(--paper);letter-spacing:.1em;background:#0e0c0a8c;border:2px solid #efe6d2b3;border-radius:8px;padding:0 14px;font-size:22px}.story__ctl.is-active{border-color:var(--cinnabar);background:var(--cinnabar)}.story__status{color:var(--paper);pointer-events:none;z-index:6;background:#0e0c0a8c;border-radius:999px;padding:8px 20px;font-size:22px;position:absolute;top:26px;left:30px}[data-orient=portrait] .story__status{top:92px;left:24px}.story__choices{z-index:7;flex-direction:column;align-items:center;gap:22px;display:flex;position:absolute;top:46%;left:0;right:0;translate:0 -50%}.story__choice{min-width:860px;max-width:90%;color:var(--ink);letter-spacing:.08em;background:linear-gradient(90deg,#0000,#efe6d2f5 12% 88%,#0000);border:none;flex-direction:column;align-items:center;gap:4px;padding:26px 70px;font-size:36px;transition:transform .15s,color .15s;animation:.4s ease-out both choice-in;display:flex}.story__choice:nth-child(2){animation-delay:80ms}.story__choice:nth-child(3){animation-delay:.16s}.story__choice:hover{color:var(--cinnabar);transform:scale(1.03)}.story__choice-hint{color:var(--azurite);letter-spacing:.1em;font-size:22px}.story__gains{pointer-events:none;z-index:8;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:92px;right:30px}[data-orient=portrait] .story__gains{top:160px}.gain{border-left:6px solid var(--gold);color:var(--paper);background:#0e0c0adb;border-radius:6px;padding:10px 26px;font-size:26px;transition:opacity .4s,transform .4s;animation:.35s ease-out both gain-in}.gain--coins{border-color:var(--ochre)}.gain--heal{border-color:var(--azurite-soft)}.gain--hurt{border-color:var(--cinnabar)}.gain--clue{border-color:var(--azurite)}.gain.is-out{opacity:0;transform:translate(30px)}.story__fx{pointer-events:none;z-index:21;position:absolute;inset:0}.story>.modal{z-index:30}.reveal{color:var(--paper);perspective:1600px;z-index:20;background:radial-gradient(#0e0c0ab3,#0e0c0af2);flex-direction:column;justify-content:center;align-items:center;gap:16px;animation:.3s both fade-in;display:flex;position:absolute;inset:0}.reveal.is-out{animation:.3s forwards fade-out}.reveal__label{color:var(--gold);letter-spacing:.6em;text-indent:.6em;margin:0;font-size:34px}.reveal--demon .reveal__label{color:var(--cinnabar-soft)}.reveal__flip{z-index:22;width:340px;height:476px;margin:40px 0 20px;animation:.4s cubic-bezier(.2,.8,.2,1) .1s both reveal-pop;position:relative}.reveal__back,.reveal__front{position:absolute;inset:0}.reveal__back{border:3px solid var(--gold);background:var(--ink) center / cover;border-radius:16px;animation:.28s ease-in .55s both reveal-fold}.reveal__front{justify-content:center;align-items:center;animation:.32s ease-out .83s both reveal-unfold;display:flex}.reveal__front .card,.reveal__front .card:hover{transform:scale(1.7);box-shadow:0 0 60px #b8964f99}.reveal__name{font-family:var(--font-brush);letter-spacing:.1em;margin:30px 0 0;font-size:72px;font-weight:400;animation:.5s .9s both fade-in}.reveal__text{color:#efe6d2d9;text-align:center;max-width:900px;margin:0;padding:0 40px;font-size:30px;line-height:1.7;animation:.5s 1.1s both fade-in}.reveal__hint{color:#efe6d280;margin:10px 0 0;font-size:22px;animation:.5s 1.4s both fade-in}@keyframes reveal-pop{0%{opacity:0;transform:scale(.6)}}@keyframes reveal-fold{to{transform:scaleX(0)}}@keyframes reveal-unfold{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes choice-in{0%{opacity:0;transform:translateY(16px)}}@keyframes gain-in{0%{opacity:0;transform:translate(40px)}}.fx-splash{pointer-events:none;transform:translate(-50%, -50%) rotate(var(--rot,0deg)) scale(.3);background:var(--ink);z-index:4;animation:.9s cubic-bezier(.2,.8,.3,1) forwards fx-splash;position:absolute;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.fx-splash--cinnabar{background:var(--cinnabar)}.fx-splash--azurite{background:var(--azurite)}.fx-splash--gold{background:var(--gold)}.fx-splash.is-fallback{filter:blur(6px);border-radius:50%}@keyframes fx-splash{0%{opacity:.95;transform:translate(-50%, -50%) rotate(var(--rot,0deg)) scale(.25)}35%{opacity:.85;transform:translate(-50%, -50%) rotate(var(--rot,0deg)) scale(1)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--rot,0deg)) scale(1.12)}}.fx-particle{background:var(--azurite);pointer-events:none;opacity:0;filter:blur(.5px);z-index:5;border-radius:50% 45% 55% 50%;animation:1.5s ease-out forwards fx-particle;position:absolute}.fx-particle--ink{background:var(--ink)}.fx-particle--cinnabar{background:var(--cinnabar)}.fx-particle--gold{background:var(--gold)}@keyframes fx-particle{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}15%{opacity:.95}to{opacity:0;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.2)}}.fx-thread{background:var(--cinnabar);pointer-events:none;z-index:5;border-radius:2px;width:34px;height:4px;animation:.85s ease-out forwards fx-thread;position:absolute}@keyframes fx-thread{0%{opacity:1;transform:translate(-50%,-50%)rotate(0)}to{opacity:0;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--rot))}}.fx-slice{pointer-events:none;z-index:4;background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute}.fx-slice--a{clip-path:polygon(0 0,100% 0,100% 38%,0 62%);animation:1.2s cubic-bezier(.3,0,.6,1) forwards fx-slice-a}.fx-slice--b{clip-path:polygon(0 62%,100% 38%,100% 100%,0 100%);animation:1.2s cubic-bezier(.3,0,.6,1) forwards fx-slice-b}@keyframes fx-slice-a{0%,15%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;filter:brightness(.3);transform:translate(-70px,-60px)rotate(-8deg)}}@keyframes fx-slice-b{0%,15%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;filter:brightness(.3);transform:translate(60px,80px)rotate(6deg)}}.fx-slash{background:linear-gradient(90deg, transparent, var(--cinnabar) 20%, #f3d7c7 50%, var(--cinnabar) 80%, transparent);pointer-events:none;z-index:6;border-radius:50%;height:10px;animation:.6s ease-out forwards fx-slash;position:absolute;transform:translate(-50%,-50%)rotate(-22deg)scaleX(0)}@keyframes fx-slash{0%{opacity:1;transform:translate(-50%,-50%)rotate(-22deg)scaleX(0)}35%{opacity:1;transform:translate(-50%,-50%)rotate(-22deg)scaleX(1)}to{opacity:0;transform:translate(-50%,-50%)rotate(-22deg)scaleX(1)scaleY(.2)}}.fx-transition{z-index:1000;pointer-events:all;position:absolute;inset:0;overflow:hidden}.fx-transition__blot{background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.fx-transition.is-fallback{background:var(--ink)}.battle__hand .card{touch-action:none}.card.is-dragging{box-shadow:0 0 0 5px var(--gold), 0 24px 40px #0006;transition:none;z-index:300!important}.enemy.is-drop-target .enemy__body{transform:scale(1.05)}.enemy.is-drop-target .enemy__body:not(.has-art){box-shadow:0 0 0 6px var(--gold)}.enemy.is-drop-target .enemy__body .enemy__art{filter:drop-shadow(0 0 16px #b8964f)}.stage.is-lite:after{display:none}.stage.is-lite .enemy__body .enemy__art{filter:none;animation:.6s both fade-in}.stage.is-lite .enemy.is-target .enemy__body.has-art .enemy__art{filter:none}.stage.is-lite .title__scene .scene__img.is-shown,.stage.is-lite .outcome__scene .scene__img.is-shown{animation:none}.stage.is-lite .story__cg:before{filter:brightness(.45)}.stage.is-lite .portrait__img,.stage.is-lite .map-node__icon,.stage.is-lite .outcome__portrait{filter:none}.stage.is-lite .intent--charge,.stage.is-lite .map-node.is-available .map-node__seal,.stage.is-lite .map__path.is-open{animation:none}.fx-rain{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}
