/* Star Rift. Keeps the home palette: warm ink, moss and lamplight, with night only on the stage. */
.rift{--rift-ink:#2c2a24;--rift-paper:#fbf7ec;--rift-line:rgba(70,60,40,.18);--thunder:#b98a1e;--moon:#4f7fa8;--star:#8560b0;color:var(--rift-ink);display:flex;flex-direction:column;gap:12px;max-width:1180px;margin:0 auto}
.rift kbd{font:600 11px/1 ui-monospace,monospace;border:1px solid currentColor;border-radius:4px;padding:2px 4px;opacity:.65}
.rift-top{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:var(--rift-paper);border:1px solid var(--rift-line);border-radius:12px;padding:8px 12px}
.rift-hp{display:flex;align-items:center;gap:8px;min-width:220px}.rift-hp span{font-size:13px}.rift-hp b{font-variant-numeric:tabular-nums}
.rift-bar{height:9px;flex:1;min-width:90px;background:rgba(0,0,0,.14);border-radius:6px;overflow:hidden}.rift-bar i{display:block;height:100%;background:#b4553c;transition:width .25s}.rift-bar.enemy{flex:none;width:100%;background:rgba(255,255,255,.18)}.rift-bar.enemy i{background:#d9604f}
.rift-relics{display:flex;flex-wrap:wrap;gap:6px;flex:1}.relic{font-size:12px;padding:3px 8px;border:1px solid var(--rift-line);border-radius:999px;background:#fff;cursor:help}.relic.grace{border-color:#c77;color:#a2403f}
.rift-deck-btn,.rift-leave{font:inherit;font-size:13px;background:none;border:1px solid var(--rift-line);border-radius:8px;padding:5px 10px;cursor:pointer;color:inherit}.rift-leave{opacity:.7}
.rift-panel{background:var(--rift-paper);border:1px solid var(--rift-line);border-radius:14px;padding:22px}.rift-panel h2{margin:.2em 0 .4em}.rift-panel.center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.rift-note{font-size:13px;opacity:.72}.rift-rules{padding-left:1.2em;line-height:1.7}.text-link{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;margin-left:12px}
.rift-map-scroll{overflow-x:auto}.rift-map{position:relative;min-width:680px;height:300px;margin:14px 0}.rift-map svg{position:absolute;inset:0;width:100%;height:100%}.rift-map line{stroke:rgba(70,60,40,.28);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-dasharray:4 5}.rift-map line.walked{stroke:#7a5b1e;stroke-width:3;stroke-dasharray:none}
.rift-node{position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;border:2px solid var(--rift-line);background:#fff;font-size:18px;display:grid;place-items:center;cursor:default;color:#6d6555;padding:0}.rift-node.been{background:#efe5c9;color:#7a5b1e;border-color:#7a5b1e}.rift-node.open{cursor:pointer;color:var(--rift-ink);border-color:#7a5b1e;box-shadow:0 0 0 4px rgba(190,150,60,.28);animation:rift-pulse 1.8s infinite}.rift-node.open:hover,.rift-node.open:focus-visible{transform:translate(-50%,-50%) scale(1.14)}.rift-node:disabled:not(.been){opacity:.55}
.rift-node.node-elite span{color:#a33f3f}.rift-node.node-boss{width:56px;height:56px;font-size:24px;border-color:#a33f3f}.rift-node.node-rest span{color:var(--moon)}.rift-node.node-treasure span{color:var(--thunder)}
.rift-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;opacity:.8}
.rift-stage{position:relative;display:grid;grid-template-columns:minmax(190px,.8fr) minmax(280px,1fr) minmax(280px,1.2fr);gap:12px;align-items:center;min-height:330px;border-radius:14px;overflow:hidden;padding:14px;color:#f6f1e3}.rift-stage>*:not(.art-vignette){position:relative;z-index:1}.rift-stage .art-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,16,30,.62),rgba(14,16,30,.82))}
.rift-hero{position:relative;text-align:center;min-width:0}.rift-hero .hamster-portrait{height:210px;width:100%;background:none!important;box-shadow:none!important;border:0!important}.rift-hero .hamster-portrait::before,.rift-hero .hamster-portrait::after{display:none!important}.rift-hero model-viewer{width:100%;height:100%}.rift-line{min-height:2.6em;font-size:13.5px;line-height:1.4;margin:4px 0;background:rgba(0,0,0,.3);padding:4px 10px;border-radius:10px}
.chips{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;min-height:20px}.chip{font-size:12px;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28)}.chip.block{background:rgba(79,127,168,.5)}.chip.weak,.chip.vuln{background:rgba(160,70,70,.5)}.chip.static{background:rgba(185,138,30,.5)}.chip.str{background:rgba(133,96,176,.45)}
.rift-sky{text-align:center;min-width:0}.star-row{display:flex;gap:10px;justify-content:center;margin-bottom:6px}.star-slot{width:48px;height:48px;border-radius:50%;border:2px dashed rgba(255,255,255,.4);display:grid;place-items:center;font-size:24px}.star-slot.lit{border-style:solid;background:rgba(255,255,255,.12);animation:rift-light .35s ease-out}.star-slot.sign-thunder{color:#ffd76a;border-color:#ffd76a;box-shadow:0 0 16px rgba(255,215,106,.55)}.star-slot.sign-moon{color:#a9d3f5;border-color:#a9d3f5;box-shadow:0 0 16px rgba(169,211,245,.5)}.star-slot.sign-star{color:#d8b9ff;border-color:#d8b9ff;box-shadow:0 0 16px rgba(216,185,255,.5)}
.sealed-note{font-size:12.5px;color:#ffb9a0;margin:4px 0}.star-flash{font-size:22px;font-weight:700;margin:2px 0;color:#ffe9a8;animation:rift-flash 1.1s ease-out both}
.star-legend{list-style:none;margin:6px 0 0;padding:0;font-size:12px;text-align:left}.star-legend li{display:grid;grid-template-columns:44px 1fr;column-gap:8px;padding:3px 0;align-items:baseline;border-top:1px solid rgba(255,255,255,.1)}.star-legend li>span{grid-row:span 2;letter-spacing:-1px;white-space:nowrap}.star-legend small{opacity:.82;font-size:11.5px;line-height:1.3}
.rift-enemies{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:flex-start;min-width:0}.rift-enemy{flex:1 1 130px;max-width:210px;background:rgba(0,0,0,.34);border:2px solid rgba(255,255,255,.2);border-radius:12px;color:inherit;font:inherit;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:stretch;text-align:center}.rift-enemy.targeted{border-color:#ffd76a;box-shadow:0 0 0 2px rgba(255,215,106,.3)}.rift-enemy.dead{opacity:.28;cursor:default}.rift-enemy.boss{max-width:260px}
.enemy-glyph{position:relative;align-self:center;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-family:serif;background:radial-gradient(circle at 35% 30%,#5b5f7d,#1b1d2e);box-shadow:0 0 18px rgba(170,180,255,.3);animation:rift-hover 3.6s ease-in-out infinite}.elite .enemy-glyph{background:radial-gradient(circle at 35% 30%,#8d4c4c,#2a1212);box-shadow:0 0 22px rgba(255,120,110,.4)}.boss .enemy-glyph{width:92px;height:92px;font-size:44px;background:radial-gradient(circle at 35% 30%,#3a2a58,#07050f);box-shadow:0 0 30px rgba(190,120,255,.5)}
.rift-enemy strong{font-size:13.5px}.rift-enemy small{font-size:11.5px;font-variant-numeric:tabular-nums}.intent{font-size:12.5px;line-height:1.4;background:rgba(255,255,255,.1);border-radius:8px;padding:3px 6px}.intent i{font-style:normal;opacity:.8}.intent .atk{color:#ffb4a0}.intent .def{color:#a9d3f5}.intent.hidden{opacity:.8;font-style:italic}
.rift-float{position:absolute;top:-6px;right:-8px;font-weight:800;font-size:22px;color:#ffd9c9;text-shadow:0 1px 4px #000;pointer-events:none;animation:rift-float 1s ease-out both;font-family:system-ui}.rift-float.hero{top:12px;right:30%;color:#ff8d76;font-size:26px}
.rift-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--rift-paper);border:1px solid var(--rift-line);border-radius:12px;padding:8px 14px}.qi-pips{display:flex;align-items:center;gap:5px}.qi-pips i{width:16px;height:16px;border-radius:50%;border:2px solid #b08a2d;display:block}.qi-pips i.on{background:radial-gradient(circle at 35% 30%,#ffe9a8,#c7992a)}.qi-pips b{margin-left:4px;font-size:18px}.qi-pips span{font-size:13px}
.pile-counts{display:flex;gap:14px;flex:1;flex-wrap:wrap;font-size:13px}.incoming{font-weight:600}.incoming.danger{color:#a33f3f}.rift-end{margin-left:auto}
.rift-hand,.rift-offer{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.rift-hand{min-height:150px}.rift-empty{opacity:.65;align-self:center}
.rift-card{position:relative;width:148px;min-height:138px;background:#fff;border:2px solid var(--rift-line);border-radius:12px;padding:10px 10px 8px;font:inherit;color:#2c2a24;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:transform .12s,box-shadow .12s}.rift-card:hover:not(:disabled),.rift-card:focus-visible{transform:translateY(-6px);box-shadow:0 8px 18px rgba(0,0,0,.18)}.rift-card:disabled{opacity:.48;cursor:not-allowed}
.rift-card strong{font-size:15px;padding-left:24px;padding-right:18px;line-height:1.3}.rift-card p{margin:0;font-size:12.8px;line-height:1.45}.rift-card em{margin-top:auto;font-style:normal;font-size:12px;font-weight:700;color:#7a5b1e}.rift-card kbd{position:absolute;right:7px;top:8px}
.rift-cost{position:absolute;left:8px;top:8px;width:22px;height:22px;border-radius:50%;background:#c7992a;color:#fff;font-weight:700;font-size:13px;display:grid;place-items:center}.rift-sign{font-size:12px;opacity:.82}
.rift-card.sign-thunder{border-color:var(--thunder)}.rift-card.sign-moon{border-color:var(--moon)}.rift-card.sign-star{border-color:var(--star)}.rift-card.sign-curse{border-color:#555;background:#ece9e2}.rift-card.upgraded strong{color:#7a5b1e}.rift-card.rarity-rare{box-shadow:inset 0 0 0 1px rgba(133,96,176,.5)}
.rift-offer.wrap{max-height:62vh;overflow:auto;padding:8px}.rift-offer.small .rift-card{min-height:130px;width:132px}
.event-text{font-size:16px;line-height:1.7;max-width:62ch}.event-options{display:flex;flex-direction:column;gap:8px;max-width:520px;width:100%}.event-options button{display:flex;justify-content:space-between;gap:12px;align-items:baseline;text-align:left}.event-options small{opacity:.75;text-align:right}.event-after{font-style:italic;font-size:15.5px}
.rift-relic-gain{font-weight:700}.rift-relic-gain small{display:block;font-weight:400;opacity:.8}.rift-end-card blockquote{margin:0;font-size:17px;line-height:1.6;max-width:50ch}
.rift-entry{display:flex;align-items:center;gap:14px;background:linear-gradient(120deg,#20233a,#35304f);color:#f6f1e3;border-radius:14px;padding:14px 18px;margin:12px 0}.rift-entry>span{font-size:26px;color:#d8b9ff}.rift-entry>div{flex:1}.rift-entry h2{margin:0;font-size:18px;color:inherit}.rift-entry h2 small{font-size:11px;border:1px solid currentColor;border-radius:4px;padding:1px 5px;margin-left:6px;opacity:.8}.rift-entry p{margin:4px 0 0;font-size:13.5px;opacity:.88}
@keyframes rift-pulse{50%{box-shadow:0 0 0 8px rgba(190,150,60,.12)}}@keyframes rift-hover{50%{transform:translateY(-5px)}}@keyframes rift-float{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-28px)}}@keyframes rift-light{from{transform:scale(.5);opacity:.3}to{transform:scale(1);opacity:1}}@keyframes rift-flash{0%{opacity:0;transform:scale(.8)}25%{opacity:1;transform:scale(1.1)}100%{opacity:.85;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.rift *{animation:none!important;transition:none!important}}
@media (max-width:860px){.rift-stage{grid-template-columns:1fr}.rift-hero .hamster-portrait{height:150px}.rift-card{width:calc(50% - 8px)}}
.sig-panel{background:rgba(0,0,0,.3);border-radius:12px;padding:10px 12px;text-align:center}.sig-panel h3{margin:0 0 6px;font-size:15px;color:inherit}.sig-panel p{margin:8px 0 0;font-size:12px;line-height:1.5;opacity:.85}
.edge-pips{display:flex;gap:6px;justify-content:center;align-items:center}.edge-pips i{width:14px;height:30px;border-radius:3px 3px 8px 8px;border:1.5px solid #8cd7c7;display:block;transform:skewX(-10deg)}.edge-pips i.on{background:linear-gradient(180deg,#d8fff5,#5fb7a3);box-shadow:0 0 10px rgba(140,215,199,.7)}.edge-pips b{margin-left:6px;font-size:20px;color:#c7fff0}
.body-block b{display:block;font-size:26px;color:#f3d9a8}.body-block small{font-size:12px;opacity:.85}
.rift-card.school-sword{border-color:#5fb7a3}.rift-card.school-body{border-color:#b98a4e}.rift-card.school-demon{border-color:#9a6bb8}.rift-card em.pay{color:#a33f3f}
.rift-intro h3{margin:.8em 0 .2em}
.rift-pack summary{cursor:pointer;font-weight:600;margin:6px 0}.pack-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}.pack-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--rift-line)}.pack-row small{display:block;font-size:12px;opacity:.75;line-height:1.4}.pack-row button{flex:none;font-size:12.5px;padding:5px 9px;white-space:nowrap}.pack-row button[aria-pressed=true]{background:#efe5c9;border-color:#7a5b1e;color:#3c2f10}.pack-money{font-size:14px}.pack-calm{font-size:13px;color:#7a5b1e}.pack-calm.dim{color:inherit;opacity:.7}.pack-on{font-size:12.5px;color:#7a5b1e;white-space:nowrap}
.heart-demon h3{margin:0 0 2px;color:#f0d9a4}.heart-demon blockquote.trial-cue{font-size:17px;line-height:1.6;margin:8px 0;padding:10px 14px;border-left:3px solid #e07a7a;background:rgba(224,122,122,.1);border-radius:0 8px 8px 0}.demon-status{margin:2px 0}.demon-resolve{color:#ee8a8a;letter-spacing:2px}.demon-attack{font-size:14px;margin:4px 0}.demon-attack b{font-size:20px;color:#ee8a8a}.demon-ahead{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:4px 0 8px;font-size:12px}.demon-ahead li{border:1px solid currentColor;border-radius:999px;padding:1px 8px;opacity:.72}.demon-prompt{font-size:13px;opacity:.85;margin:6px 0}
.demon-hand{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.demon-card{font:inherit;color:#f3efe2;background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.2);border-radius:10px;padding:8px 10px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px}.demon-card:hover:not(:disabled),.demon-card:focus-visible{border-color:#f0d9a4;background:rgba(255,255,255,.13)}.demon-card:disabled{opacity:.42;cursor:not-allowed}.demon-card small{font-size:11.5px;opacity:.75}.demon-card strong{font-size:13.5px;line-height:1.4;font-weight:600}.demon-card span{font-size:12px}.demon-card .gets{color:#f2a3a3}.demon-card .holds{color:#9ad8b0}.demon-other{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}

/* Home: the two places worth going, in plain sight. */
.destinations{position:relative;z-index:2;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:14px 20px 4px}
.destination{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:10px 14px;padding:16px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.14);overflow:hidden;position:relative;text-align:left;color:#f3efe2}
.destination>div{min-width:0}.destination h3{margin:0 0 4px;font-size:19px;letter-spacing:.04em;color:#fff6df}.destination p{margin:0;font-size:13.5px;line-height:1.55;color:#dcd9c8}
.destination button{grid-column:1/-1;justify-self:stretch;width:100%}
.destination-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-size:22px;font-weight:700}
.destination-rift{background:radial-gradient(circle at 88% 8%,rgba(138,152,255,.34),transparent 52%),radial-gradient(1px 1px at 22% 30%,#fff,transparent),radial-gradient(1.5px 1.5px at 62% 66%,#cfe0ff,transparent),radial-gradient(1px 1px at 82% 42%,#fff,transparent),linear-gradient(135deg,#141a3d,#0d2030)}
.destination-rift .destination-mark{color:#d9e3ff;background:rgba(150,170,255,.18);box-shadow:0 0 18px rgba(150,170,255,.55)}
.destination-demon{background:radial-gradient(circle at 90% 6%,rgba(214,52,62,.3),transparent 52%),linear-gradient(135deg,#2a1216,#17141f)}
.destination-demon .destination-mark{color:#ffc4bd;background:rgba(214,52,62,.2);box-shadow:0 0 16px rgba(214,52,62,.45)}
.destination-demon[data-demon-state="ready"],.destination-demon[data-demon-state="active"]{border-color:rgba(255,120,110,.65);animation:demon-call 2.4s ease-in-out infinite}
@keyframes demon-call{50%{box-shadow:0 0 22px rgba(214,52,62,.5)}}
.destination-bar{margin-top:8px;height:5px;border-radius:3px;background:rgba(255,255,255,.14);overflow:hidden}.destination-bar i{display:block;height:100%;background:linear-gradient(90deg,#b5473f,#ff9d84)}
@media (prefers-reduced-motion:reduce){.destination-demon[data-demon-state]{animation:none}}
/* Onboarding: stance art with a little presence. */
.companion-choice>span.choice-stage{flex:none;position:relative;display:block;align-self:stretch;width:100%;aspect-ratio:1;margin-bottom:6px;background:radial-gradient(circle at 50% 58%,color-mix(in srgb,var(--guide) 34%,transparent),transparent 66%);border-radius:18px;overflow:hidden}
.companion-choice .choice-stage img{width:100%;height:100%;object-fit:contain;transition:transform .35s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 14px 16px rgba(0,0,0,.45))}
.companion-choice:hover .choice-stage img,.companion-choice:focus-visible .choice-stage img{transform:scale(1.07) translateY(-4px)}
@media (prefers-reduced-motion:reduce){.companion-choice .choice-stage img{transition:none}}

/* ===== Star Rift: every blow lands ===== */
.rfx-layer{position:fixed;inset:0;z-index:7000;pointer-events:none;overflow:hidden}
.rfx-layer>*{position:absolute}
.rfx-svg{transform:translate(-50%,-50%);filter:drop-shadow(0 0 10px currentColor)}.rfx-svg svg{display:block;overflow:visible;filter:drop-shadow(0 0 9px #ffffffb0)}
.rfx-cut svg{animation:rfx-cut .3s cubic-bezier(.1,.8,.3,1) both}.rfx-star svg{animation:rfx-star .36s ease-out both}
@keyframes rfx-cut{0%{opacity:0;transform:rotate(var(--r)) scale(.15,.5)}18%{opacity:1}55%{opacity:1;transform:rotate(var(--r)) scale(1.18,1)}100%{opacity:0;transform:rotate(var(--r)) scale(1.3,.3)}}
@keyframes rfx-star{0%{opacity:0;transform:rotate(var(--r)) scale(.2)}30%{opacity:1;transform:rotate(calc(var(--r) + 30deg)) scale(1.1)}100%{opacity:0;transform:rotate(calc(var(--r) + 70deg)) scale(.7)}}
.rfx-spark{width:var(--s);height:var(--s);border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);animation:rfx-spark .58s cubic-bezier(.1,.75,.3,1) both}
@keyframes rfx-spark{from{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.3)}}
.rfx-ring{width:var(--size);height:var(--size);margin:calc(var(--size)/-2) 0 0 calc(var(--size)/-2);border-radius:50%;border:5px solid var(--c);box-shadow:0 0 18px var(--c),inset 0 0 14px var(--c);animation:rfx-ring .46s ease-out both}
@keyframes rfx-ring{from{opacity:1;transform:scale(.18)}to{opacity:0;transform:scale(1)}}
.rfx-bolt{inset:0;width:100%;height:100%;filter:drop-shadow(0 0 8px #ffe48a);animation:rfx-bolt .26s steps(4) both}@keyframes rfx-bolt{0%,50%{opacity:1}25%,75%{opacity:.65}100%{opacity:0}}
.rfx-shield{width:var(--size);height:var(--size);margin:calc(var(--size)/-2) 0 0 calc(var(--size)/-2);border-radius:50%;border:2px solid #cfe7ff;background:radial-gradient(circle,#a9d3f500 46%,#a9d3f566 72%,#e4f3ffcc 100%);box-shadow:0 0 26px #a9d3f5;animation:rfx-shield .38s ease-out both}.rfx-shield.up{animation:rfx-shield-up .58s ease-out both}
@keyframes rfx-shield{0%{opacity:1;transform:scale(1.08)}100%{opacity:0;transform:scale(.98)}}
@keyframes rfx-shield-up{0%{opacity:0;transform:scale(.5)}35%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(1)}}
.rfx-num{transform:translate(-50%,-100%);font:800 26px/1 system-ui,sans-serif;color:#fff4d8;white-space:nowrap;text-shadow:0 2px 0 #000c,0 0 10px #000a;animation:rfx-num 1.15s cubic-bezier(.15,.8,.3,1) both}
.rfx-num.w0{font-size:22px;color:#f2e7d0}.rfx-num.w1{font-size:30px}.rfx-num.w2{font-size:44px;color:#ffe08a;text-shadow:0 3px 0 #000c,0 0 18px #ff8b3d}.rfx-num.w3{font-size:62px;color:#ffd257;text-shadow:0 3px 0 #000d,0 0 28px #ff6a2b}
.rfx-num.blocked{font-size:19px;color:#bfe2ff;text-shadow:0 1px 0 #000c,0 0 10px #3f7fc0}.rfx-num.hurt{font-size:34px;color:#ff9c8c;text-shadow:0 2px 0 #000c,0 0 14px #e8302a}.rfx-num.hurt.big{font-size:52px}.rfx-num.paid{font-size:22px;color:#ff90a8}.rfx-num.heal{font-size:26px;color:#b4f3c0;text-shadow:0 2px 0 #000c,0 0 12px #49c26b}.rfx-num.rage{font-size:18px;color:#ffb4a0}.rfx-num.settled{font-size:18px;color:#ffe9a8;font-family:var(--serif,serif)}
@keyframes rfx-num{0%{opacity:0;transform:translate(-50%,-70%) scale(.45)}14%{opacity:1;transform:translate(-50%,-100%) scale(1.25) rotate(var(--tilt,0deg))}30%{transform:translate(-50%,-105%) scale(1) rotate(var(--tilt,0deg))}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-190%) scale(.94) rotate(var(--tilt,0deg))}}
.rfx-over{left:0;top:0;border-radius:14px}
.rfx-over.flash{background:radial-gradient(circle at 74% 44%,#fff6d966,transparent 60%);animation:rfx-fade .3s ease-out both}.rfx-over.flash-big{background:radial-gradient(circle at 74% 44%,#fff6d9cc,#fff6d91f 62%);animation:rfx-fade .42s ease-out both}
.rfx-over.bleed{background:radial-gradient(circle at 30% 50%,transparent 40%,#c8201c77);animation:rfx-fade .42s ease-out both}.rfx-over.bleed-big{background:radial-gradient(circle at 30% 50%,#c8201c33 20%,#c8201cbb);animation:rfx-fade .56s ease-out both}
.rfx-over.star-dark{background:#05061acc;animation:rfx-fade .6s ease-in both}.rfx-over.phase{background:radial-gradient(circle,#7a2bc066,#16042ae6);animation:rfx-fade .82s ease-in both}.rfx-over.revive{background:radial-gradient(circle at 30% 50%,#fff3c8ee,#ffcf7033 70%);animation:rfx-fade 1s ease-out both}
.rfx-over.dawn{background:radial-gradient(circle,#fff8df,#ffdf9acc 55%,#ffcf70 100%);animation:rfx-dawn 2s ease-in-out both}.rfx-over.fall{background:#0a0a12;animation:rfx-fall-dark 1.3s ease-in both}
@keyframes rfx-fade{from{opacity:1}to{opacity:0}}@keyframes rfx-dawn{0%{opacity:0}30%{opacity:.95}100%{opacity:.8}}@keyframes rfx-fall-dark{from{opacity:0}to{opacity:.82}}
.rfx-banner{transform:translate(-50%,-50%);white-space:nowrap;text-align:center}.rfx-banner b{display:block;font:800 46px/1.15 var(--serif,serif);color:#fff2c8;letter-spacing:.08em;text-shadow:0 3px 0 #0009,0 0 26px #ffcf70;animation:rfx-banner .9s cubic-bezier(.15,.85,.3,1) both}
.rfx-banner.dim b{font-size:24px;color:#d9d3c2;text-shadow:0 2px 0 #0009}.rfx-banner.phase b{font-size:54px;color:#e9c8ff;text-shadow:0 3px 0 #000a,0 0 30px #a44cff}.rfx-banner.revive b{font-size:30px;color:#5b3b05;text-shadow:0 0 16px #fff8df}.rfx-banner.turn b{font-size:24px;letter-spacing:.14em;padding:6px 26px;background:linear-gradient(90deg,transparent,#000a 20%,#000a 80%,transparent);text-shadow:0 1px 0 #000a}.rfx-banner.clear b{font-size:40px}.rfx-banner.won b{font-size:58px;color:#5b3b05;text-shadow:0 0 22px #fffbe8;animation-duration:2s}
@keyframes rfx-banner{0%{opacity:0;transform:scale(1.5);filter:blur(5px)}22%{opacity:1;transform:scale(1);filter:none}78%{opacity:1}100%{opacity:0}}
.rfx-ghost{width:148px;--rift-line:rgba(70,60,40,.18);--thunder:#b98a1e;--moon:#4f7fa8;--star:#8560b0;transform-origin:center}.rfx-ghost .rift-card{box-shadow:0 0 26px #ffe9a8}
.enemy-glyph.rfx-hit{animation:rfx-hit .34s ease-out}.enemy-glyph.rfx-hit-big{animation:rfx-hit-big .54s ease-out}.enemy-glyph.rfx-charge{animation:rfx-charge .34s cubic-bezier(.4,0,.6,1)}.enemy-glyph.rfx-brace{animation:rfx-brace .42s ease-out}.enemy-glyph.rfx-die{animation:rfx-die .62s ease-in both}
@keyframes rfx-hit{0%{filter:brightness(3.4) saturate(.3)}25%{transform:translateX(11px) rotate(4deg)}60%{transform:translateX(-4px);filter:brightness(1.4)}100%{transform:none;filter:none}}
@keyframes rfx-hit-big{0%{filter:brightness(5) saturate(0);transform:scale(1.12)}18%{transform:translate(24px,-6px) rotate(9deg) scale(1.08)}48%{transform:translate(-10px,2px) rotate(-3deg);filter:brightness(1.6)}100%{transform:none;filter:none}}
@keyframes rfx-charge{0%{transform:none}24%{transform:translate(calc(var(--to-x)*-.22),calc(var(--to-y)*-.22)) scale(.94)}52%{transform:translate(var(--to-x),var(--to-y)) scale(1.14);filter:brightness(1.7)}100%{transform:none}}
@keyframes rfx-brace{0%{transform:scale(1)}40%{transform:scale(1.14);filter:brightness(1.5)}100%{transform:none}}
@keyframes rfx-die{0%{filter:brightness(5) saturate(0)}35%{transform:scale(1.22);opacity:1}100%{transform:scale(1.65);opacity:0;filter:blur(10px) brightness(3)}}
.rift-enemy.rfx-clang{border-color:#a9d3f5!important;box-shadow:0 0 18px #a9d3f5aa}.rift-enemy.rfx-acting{border-color:#ff9c8c;box-shadow:0 0 18px #ff6a5a88}
.rift-enemy{transition:opacity .36s}
.rift-stage.rfx-jolt-2{animation:rfx-jolt .32s ease-out}.rift-stage.rfx-jolt-3{animation:rfx-jolt-hard .46s ease-out}
@keyframes rfx-jolt{20%{transform:translate(-5px,2px)}45%{transform:translate(4px,-2px)}70%{transform:translate(-2px,1px)}}
@keyframes rfx-jolt-hard{12%{transform:translate(-11px,5px)}30%{transform:translate(10px,-6px)}50%{transform:translate(-7px,3px)}70%{transform:translate(4px,-2px)}86%{transform:translate(-2px,1px)}}
.rift-hero.rfx-lunge .hamster-portrait{animation:rfx-lunge .3s ease-out}.rift-hero.rfx-flinch .hamster-portrait{animation:rfx-flinch .38s ease-out}.rift-hero.rfx-fall .hamster-portrait{animation:rfx-fall 1.3s ease-in both}
@keyframes rfx-lunge{35%{transform:translateX(30px) scale(1.04)}}
@keyframes rfx-flinch{0%{filter:brightness(2.2) sepia(1) hue-rotate(-40deg) saturate(4)}30%{transform:translateX(-18px) rotate(-3deg)}100%{transform:none;filter:none}}
@keyframes rfx-fall{to{transform:translateY(26px) scale(.94);filter:grayscale(1) brightness(.5)}}
.rift-bar{position:relative}.rift-bar i{position:relative;z-index:1}.rfx-trail{position:absolute;left:0;top:0;height:100%;background:#fff1c8;z-index:0;transition:width .46s ease-in .1s;text-decoration:none}
.rift-hand.rfx-waiting{pointer-events:none}.rift-hand.rfx-waiting .rift-card{opacity:0;transform:translateY(26px)}
.rift-card.rfx-played{visibility:hidden}.rift-card.rfx-deal{animation:rfx-deal .38s cubic-bezier(.2,.9,.3,1.15) both;animation-delay:calc(var(--i)*55ms)}
@keyframes rfx-deal{from{opacity:0;transform:translateY(34px) rotate(-3deg) scale(.92)}to{opacity:1;transform:none}}
.rift-enemy.rfx-arrive{animation:rfx-arrive .56s cubic-bezier(.2,.85,.3,1) both;animation-delay:calc(var(--i)*90ms)}@keyframes rfx-arrive{from{opacity:0;transform:translateX(46px) scale(.9)}to{opacity:1;transform:none}}
.rift.is-holding .rift-hand,.rift.is-holding .rift-controls{opacity:.55;transition:opacity .2s}
/* ── Lifespan, drawn spirits, the rules page ── */
.rift-life{display:flex;align-items:baseline;gap:6px;font-size:13px}.rift-life b{font-size:17px;color:#8a5212;font-variant-numeric:tabular-nums}.rift-life small{font-size:11px;opacity:.75}
.rift-burn{min-height:44px;white-space:nowrap}.rift-burn:disabled{opacity:.45}
.rift-legend small{opacity:.7;font-size:11px}
.enemy-glyph.has-art{width:88px;height:88px;background:none;box-shadow:none;border-radius:0}.boss .enemy-glyph.has-art{width:124px;height:124px}.elite .enemy-glyph.has-art{width:100px;height:100px;background:none;box-shadow:none}
.enemy-glyph.has-art .foe-art{width:100%;height:100%;display:block;filter:drop-shadow(0 0 10px rgba(170,180,255,.35))}.elite .enemy-glyph.has-art .foe-art{filter:drop-shadow(0 0 12px rgba(255,120,110,.5))}.boss .enemy-glyph.has-art .foe-art{filter:drop-shadow(0 0 18px rgba(190,120,255,.6))}
.rift-rules-page h3{margin:1em 0 .3em}.rift-rules-page .defs li{display:flex;flex-direction:column;gap:2px;margin:.35em 0}.rift-rules-page .defs small{opacity:.7}
@media(max-width:680px){.enemy-glyph.has-art{width:68px;height:68px}.boss .enemy-glyph.has-art{width:96px;height:96px}.elite .enemy-glyph.has-art{width:78px;height:78px}.rift-burn{white-space:normal;font-size:12px}}
