:root{--ink:#07060d;--void:#120c22;--gold:#e8c26a;--cyan:#5ef2e6;--violet:#a774ff;--blood:#ff4d6d;--paper:#efe3c8}
html,body{margin:0;background:radial-gradient(ellipse at 50% -10%,#2a1650 0%,var(--void) 40%,var(--ink) 100%) fixed;color:var(--paper);font-family:'Cormorant Garamond',serif;min-height:100vh}
#sparks{position:fixed;inset:0;pointer-events:none;z-index:0}
#root{position:relative;z-index:1}
.display{font-family:'Cinzel Decorative',serif}
.mono{font-family:'IBM Plex Mono',monospace}
.title-glow{text-shadow:0 0 18px rgba(167,116,255,.7),0 0 40px rgba(94,242,230,.25)}
.strike{position:relative;display:inline-block}
.strike.on::after{content:'';position:absolute;left:-4%;right:-4%;top:52%;height:4px;background:var(--blood);box-shadow:0 0 10px var(--blood);animation:slash .35s ease-out}
@keyframes slash{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1)}}
.glitch{animation:glitch 6s infinite}
@keyframes glitch{0%,92%,100%{transform:none;filter:none}93%{transform:translateX(2px) skewX(4deg);filter:hue-rotate(60deg)}95%{transform:translateX(-2px)}}
.panel{background:linear-gradient(160deg,rgba(30,20,55,.85),rgba(10,8,20,.9));border:1px solid rgba(232,194,106,.25);box-shadow:0 0 0 1px rgba(0,0,0,.6),0 20px 60px rgba(0,0,0,.6)}
.chip{border:1px solid rgba(232,194,106,.3);transition:.2s}
.chip.on{background:var(--gold);color:var(--ink);box-shadow:0 0 14px rgba(232,194,106,.6)}
.manifest{background:linear-gradient(90deg,#6d3cff,#a774ff,#5ef2e6);color:#07060d;animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 12px rgba(167,116,255,.5)}50%{box-shadow:0 0 34px rgba(94,242,230,.8)}}
.dossier{background:linear-gradient(170deg,#f3e7cc,#e2d1a8);color:#1d140a;position:relative;overflow:hidden}
.dossier::before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(94,242,230,.18) 45%,rgba(167,116,255,.18) 55%,transparent 70%);background-size:250% 100%;animation:holo 6s linear infinite;pointer-events:none}
@keyframes holo{from{background-position:150% 0}to{background-position:-100% 0}}
.stamp{border:3px double var(--blood);color:var(--blood);transform:rotate(12deg);opacity:.8}
.foil{height:3px;background:linear-gradient(90deg,transparent,#b8892c,#f5d98a,#b8892c,transparent)}
.reveal{opacity:0;animation:rev .6s forwards}
@keyframes rev{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.bar{transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.rune{width:110px;height:110px;border:2px dashed var(--gold);border-radius:50%;animation:spin 4s linear infinite;position:relative}
.rune::after{content:'';position:absolute;inset:14px;border:1px solid var(--cyan);border-radius:50%;transform:rotate(45deg);animation:spin 2s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
input,textarea{outline:none}
a{color:var(--cyan)}