.effects-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:50;overflow:hidden}@keyframes absolution-glow{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.3)}}@keyframes dove-flight{0%{opacity:0;transform:translate(-50%,100%) scale(.5)}20%{opacity:1;transform:translate(-50%,50%) scale(1)}60%{opacity:1;transform:translate(-50%,-20%) scale(1.2)}to{opacity:0;transform:translate(-50%,-100%) scale(.8)}}.effect-absolution{position:absolute;top:0;left:0;right:0;bottom:0}.effect-absolution .glow{position:absolute;top:50%;left:50%;width:150vmax;height:150vmax;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(201,168,76,.4) 0%,rgba(201,168,76,.2) 30%,rgba(201,168,76,.05) 60%,transparent 80%);animation:absolution-glow 7s ease-out forwards}.effect-absolution .dove{position:absolute;bottom:0;left:50%;font-size:4rem;filter:drop-shadow(0 0 20px rgba(255,255,255,.8));animation:dove-flight 6s ease-out forwards}@keyframes stained-glass-in{0%{clip-path:circle(0% at 50% 50%);opacity:0}to{clip-path:circle(100% at 50% 50%);opacity:1}}@keyframes stained-glass-out{0%{clip-path:circle(100% at 50% 50%);opacity:1}to{clip-path:circle(0% at 50% 50%);opacity:0}}.effect-stained-glass{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#8b000026,#00640026,#00008b26,#ffd70026,#80008026);mix-blend-mode:overlay;animation:stained-glass-in 2s ease-out forwards}.effect-stained-glass.removing{animation:stained-glass-out 2s ease-in forwards}.effect-stained-glass:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/assets/images/stained-glass-overlay.png);background-size:cover;background-position:center;opacity:.3;mix-blend-mode:multiply}@keyframes incense-rise{0%{opacity:0;transform:translateY(0) scale(1)}20%{opacity:.6}80%{opacity:.3}to{opacity:0;transform:translateY(-100vh) scale(2)}}@keyframes incense-sway{0%,to{transform:translate(0)}50%{transform:translate(20px)}}.effect-incense{position:absolute;bottom:0;left:0;right:0;height:100%}.effect-incense .smoke-particle{position:absolute;bottom:-20px;width:60px;height:60px;background:radial-gradient(circle,rgba(200,200,200,.4) 0%,rgba(200,200,200,.1) 50%,transparent 70%);border-radius:50%;animation:incense-rise 8s ease-out infinite,incense-sway 3s ease-in-out infinite;filter:blur(8px)}.effect-incense .smoke-particle:nth-child(1){left:10%;animation-delay:0s}.effect-incense .smoke-particle:nth-child(2){left:30%;animation-delay:1s}.effect-incense .smoke-particle:nth-child(3){left:50%;animation-delay:2s}.effect-incense .smoke-particle:nth-child(4){left:70%;animation-delay:1.5s}.effect-incense .smoke-particle:nth-child(5){left:90%;animation-delay:.5s}.effect-incense .smoke-particle:nth-child(6){left:20%;animation-delay:3s}.effect-incense .smoke-particle:nth-child(7){left:60%;animation-delay:2.5s}.effect-incense .smoke-particle:nth-child(8){left:80%;animation-delay:4s}@keyframes candlelight-pulse{0%,to{opacity:.4;filter:sepia(.3) brightness(1.1)}50%{opacity:.5;filter:sepia(.4) brightness(1.15)}}.effect-candlelight{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#ffc8641a,#ffb45026);animation:candlelight-pulse 3s ease-in-out infinite}.effect-candlelight:after{content:"";position:absolute;bottom:10%;left:50%;transform:translate(-50%);width:200px;height:200px;background:radial-gradient(circle,rgba(255,200,100,.3) 0%,transparent 70%);filter:blur(30px);animation:flicker 2s ease-in-out infinite}@keyframes holy-water-ripple{0%{transform:translate(-50%,-50%) scale(0);opacity:.8;border-width:3px}to{transform:translate(-50%,-50%) scale(3);opacity:0;border-width:1px}}.effect-holy-water{position:absolute;top:0;left:0;right:0;bottom:0}.effect-holy-water .ripple{position:absolute;top:50%;left:50%;width:100px;height:100px;border:3px solid rgba(100,180,255,.8);border-radius:50%;animation:holy-water-ripple 1s ease-out forwards}.effect-holy-water .ripple:nth-child(1){animation-delay:0s}.effect-holy-water .ripple:nth-child(2){animation-delay:.2s}.effect-holy-water .ripple:nth-child(3){animation-delay:.4s}.effect-holy-water .droplet{position:absolute;top:50%;left:50%;font-size:2rem;transform:translate(-50%,-50%);filter:drop-shadow(0 0 10px rgba(100,180,255,.8));animation:fadeIn .3s ease-out}@keyframes excommunicate-flash{0%{background:transparent}10%{background:#6b1c23cc}30%{background:transparent}}@keyframes excommunicate-fade{0%{opacity:0}to{opacity:1}}@keyframes shatter-piece{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--tx),var(--ty)) rotate(var(--rot));opacity:0}}.effect-excommunicate{position:absolute;top:0;left:0;right:0;bottom:0;animation:excommunicate-flash .5s ease-out}.effect-excommunicate .fade-black{position:absolute;top:0;left:0;right:0;bottom:0;background:#0a0908;animation:excommunicate-fade 2s ease-in 1s forwards}.effect-excommunicate .shatter-container{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr)}.effect-excommunicate .shatter-piece{background:linear-gradient(135deg,#6b1c234d,#3d10154d);border:1px solid rgba(107,28,35,.5);animation:shatter-piece 1.5s ease-out forwards;animation-delay:var(--delay)}.effect-excommunicate .message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-display);font-size:2rem;color:var(--crimson);text-transform:uppercase;letter-spacing:.3em;opacity:0;animation:fadeIn 1s ease-out 2s forwards;text-shadow:0 0 30px rgba(107,28,35,.8)}@keyframes silence-dim{0%{opacity:0}to{opacity:1}}@keyframes silence-candle{0%,to{opacity:.8;transform:translate(-50%) scale(1)}25%{opacity:.6;transform:translate(-48%) scale(.95)}75%{opacity:.9;transform:translate(-52%) scale(1.02)}}.effect-silence{position:absolute;top:0;left:0;right:0;bottom:0;background:#0a0908b3;animation:silence-dim 1s ease-out forwards}.effect-silence .candle{position:absolute;bottom:20%;left:50%;transform:translate(-50%);font-size:5rem;animation:silence-candle 2s ease-in-out infinite;filter:drop-shadow(0 0 30px rgba(245,222,179,.6))}.effect-silence .message{position:absolute;top:30%;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:1rem;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.3em;opacity:.7}@keyframes penance-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.penance-display{position:absolute;top:15%;left:50%;transform:translate(-50%);background:var(--bg-glass);border:1px solid var(--gold-dim);padding:2rem 3rem;text-align:center;animation:penance-appear .5s ease-out;z-index:60}.penance-display h3{margin-bottom:1rem;font-size:.9rem;letter-spacing:.2em}.penance-display .penance-text{font-family:var(--font-body);font-size:1.3rem;font-style:italic;color:var(--parchment)}.penance-display .penance-quantity{margin-top:.5rem;font-family:var(--font-display);font-size:.8rem;color:var(--text-secondary)}@keyframes scripture-appear{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.scripture-display{position:absolute;top:20%;right:2rem;max-width:400px;background:var(--bg-glass);border:1px solid var(--gold-dim);border-left:3px solid var(--gold);padding:1.5rem;animation:scripture-appear .5s ease-out;z-index:60}.scripture-display .verse-text{font-family:var(--font-body);font-size:1.1rem;font-style:italic;color:var(--parchment);line-height:1.6;margin-bottom:1rem}.scripture-display .verse-reference{font-family:var(--font-display);font-size:.75rem;color:var(--gold);letter-spacing:.1em;text-align:right}.book-of-life{position:absolute;bottom:6rem;left:1.5rem;width:280px;max-height:200px;background:linear-gradient(to bottom,#1c1815f2,#1c1815e6);border:1px solid var(--gold-dim);padding:1rem;overflow-y:auto;z-index:40}.book-of-life h4{font-size:.65rem;letter-spacing:.2em;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--text-dim)}.book-of-life .entry{font-family:var(--font-body);font-size:.85rem;font-style:italic;color:var(--text-secondary);margin-bottom:.5rem;padding-left:.5rem;border-left:2px solid var(--gold-dim)}.book-of-life .entry-time{font-size:.65rem;color:var(--text-dim);margin-top:.25rem}.priest-toolbar{position:absolute;top:50%;left:1rem;transform:translateY(-50%);width:200px;background:var(--bg-glass);border:1px solid var(--gold-dim);z-index:100;max-height:80vh;overflow-y:auto}.priest-toolbar .toolbar-section{padding:.75rem;border-bottom:1px solid var(--text-dim)}.priest-toolbar .toolbar-section:last-child{border-bottom:none}.priest-toolbar .section-title{font-family:var(--font-display);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.5rem}.priest-toolbar button{width:100%;font-size:.65rem;padding:.4rem .6rem;margin-bottom:.3rem;text-align:left;letter-spacing:.08em}.priest-toolbar button:last-child{margin-bottom:0}.priest-toolbar button.active{background:var(--gold-dim);color:var(--bg-primary)}.priest-toolbar button.danger{border-color:var(--crimson);color:var(--crimson)}.priest-toolbar button.danger:hover{background:var(--crimson-dim);border-color:var(--crimson)}.confirm-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0908e6;display:flex;align-items:center;justify-content:center;z-index:200}.confirm-modal .modal-content{background:var(--bg-elevated);border:1px solid var(--crimson);padding:2rem;max-width:400px;text-align:center}.confirm-modal h3{color:var(--crimson);margin-bottom:1rem}.confirm-modal p{color:var(--text-secondary);font-style:italic;margin-bottom:1.5rem}.confirm-modal .modal-buttons{display:flex;gap:1rem;justify-content:center}.inscribe-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0908e6;display:flex;align-items:center;justify-content:center;z-index:200}.inscribe-modal .modal-content{background:var(--bg-elevated);border:1px solid var(--gold-dim);padding:2rem;max-width:500px;width:90%}.inscribe-modal h3{margin-bottom:1rem;font-size:.9rem}.inscribe-modal textarea{width:100%;min-height:100px;resize:vertical;margin-bottom:1rem}.inscribe-modal .modal-buttons{display:flex;gap:1rem;justify-content:flex-end}.scripture-picker{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0908f2;display:flex;flex-direction:column;z-index:200;padding:2rem}.scripture-picker h3{text-align:center;margin-bottom:1.5rem}.scripture-picker .sin-tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.scripture-picker .sin-tab{padding:.5rem 1rem;font-size:.7rem}.scripture-picker .sin-tab.active{background:var(--gold-dim);color:var(--bg-primary)}.scripture-picker .verses-list{flex:1;overflow-y:auto;max-width:800px;margin:0 auto;width:100%}.scripture-picker .verse-item{background:var(--bg-secondary);border:1px solid var(--text-dim);padding:1rem;margin-bottom:.75rem;cursor:pointer;transition:all .3s ease}.scripture-picker .verse-item:hover{border-color:var(--gold-dim);background:var(--bg-elevated)}.scripture-picker .verse-item .text{font-style:italic;margin-bottom:.5rem;line-height:1.5}.scripture-picker .verse-item .reference{font-family:var(--font-display);font-size:.7rem;color:var(--gold);letter-spacing:.1em}.scripture-picker .close-btn{position:absolute;top:1rem;right:1rem;font-size:.7rem;padding:.5rem 1rem}.penance-dropdown{position:relative}.penance-dropdown .dropdown-content{position:absolute;left:100%;top:0;margin-left:.5rem;background:var(--bg-elevated);border:1px solid var(--gold-dim);min-width:200px;z-index:110}.penance-dropdown .penance-option{padding:.5rem .75rem;font-family:var(--font-body);font-size:.8rem;color:var(--text-primary);cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--text-dim)}.penance-dropdown .penance-option:last-child{border-bottom:none}.penance-dropdown .penance-option:hover{background:var(--bg-glass)}.penance-dropdown .quantity-input{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-top:1px solid var(--gold-dim)}.penance-dropdown .quantity-input input{width:50px;padding:.25rem;text-align:center}.penance-dropdown .quantity-input button{padding:.25rem .5rem;font-size:.65rem}:root{--bg-primary: #0d0a0a;--bg-secondary: #1a1414;--bg-elevated: #241c1c;--blood: #8b0000;--blood-bright: #b22222;--blood-dim: #5c0000;--blood-glow: rgba(139, 0, 0, .3);--ivory: #f5f0e6;--ivory-dim: #c9c0b0;--ivory-dark: #8a8278;--gold: #c9a84c;--gold-dim: #8b6f2e;--text-primary: #f5f0e6;--text-secondary: #c9c0b0;--text-dim: #6a6258;--font-title: "SimSun", "STSong", "Songti SC", serif;--font-display: "SimSun", "STSong", "Songti SC", serif;--font-body: "Charter", "Spectral", Georgia, serif;--font-terminal: "SimSun", "STSong", "Songti SC", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);font-size:18px;line-height:1.6;overflow-x:hidden}#root{min-height:100%;display:flex;flex-direction:column}h1,h2,h3,h4{font-family:var(--font-title);font-weight:400;color:var(--ivory);letter-spacing:.15em;text-transform:uppercase}h1{font-size:2.4rem;line-height:1.2}h2{font-size:1.6rem;line-height:1.3}h3{font-size:1.1rem}p{font-family:var(--font-body);max-width:60ch;font-style:italic}.body-text,.tagline,.description{font-family:var(--font-body);font-style:italic}a{color:var(--blood-bright);text-decoration:none;transition:color .3s ease}a:hover{color:var(--ivory)}button{font-family:var(--font-terminal);font-size:.85rem;letter-spacing:.05em;padding:0;border:none;border-radius:0;background:transparent;color:var(--ivory-dim);cursor:pointer;transition:all .15s ease;position:relative}button:before{content:"[ ";color:var(--ivory-dim)}button:after{content:" ]";color:var(--ivory-dim)}button:hover{color:var(--ivory);text-shadow:0 0 10px rgba(255,255,255,.5)}button:hover:before,button:hover:after{color:var(--ivory)}button:active{color:var(--blood-bright)}button:disabled{opacity:.3;cursor:not-allowed}button.primary{color:var(--ivory)}button.primary:before{content:">> "}button.primary:after{content:" <<"}button.boxed{display:block;padding:1rem 2rem;border:1px solid var(--ivory-dim);background:#00000080}button.boxed:before,button.boxed:after{content:""}button.boxed:hover{border-color:var(--ivory);background:#141414b3}input,textarea,select{font-family:var(--font-body);font-size:1rem;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--blood-dim);color:var(--text-primary);outline:none;transition:all .3s ease}input:focus,textarea:focus,select:focus{border-color:var(--blood);box-shadow:0 0 10px var(--blood-glow)}input::placeholder,textarea::placeholder{color:var(--text-dim)}.video-container{position:relative;background:var(--bg-secondary);border:1px solid var(--blood-dim);overflow:hidden}.video-container video{width:100%;height:100%;object-fit:cover}.video-container.local{position:absolute;bottom:var(--space-md);right:var(--space-md);width:180px;height:135px;z-index:10;border-color:var(--blood)}.divider{display:flex;align-items:center;justify-content:center;margin:var(--space-lg) 0;font-family:var(--font-terminal);color:var(--ivory-dim);font-size:.9rem;letter-spacing:.1em}.divider:before{content:"════════════"}.divider:after{content:"════════════"}.cross{margin:0 1rem;color:var(--ivory)}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:1}}@keyframes shine{0%{left:-100%}to{left:200%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 5px #ffffff4d}50%{box-shadow:0 0 20px #fff9,0 0 40px #c8c8ff4d}}@keyframes rainbow-shift{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.scanlines:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 4px);pointer-events:none;z-index:9999}.star{display:inline-block;color:#fff;text-shadow:0 0 5px #fff,0 0 10px #fff,0 0 20px #ffd700,0 0 30px #ffd700;animation:twinkle 1.5s ease-in-out infinite}.star:nth-child(2n){animation-delay:.3s}.star:nth-child(3n){animation-delay:.6s}.glossy{position:relative;overflow:hidden}.glossy:before{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 3s ease-in-out infinite}.beveled{border:3px solid;border-color:#fff #888 #888 #fff;box-shadow:inset 1px 1px #ffffff80,inset -1px -1px #0000004d,2px 2px 5px #0000004d}.y2k-float{animation:float 3s ease-in-out infinite}.y2k-glow{animation:pulse-glow 2s ease-in-out infinite}.chrome-text{background:linear-gradient(180deg,#fff,#ccc,#999,#ccc,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes wordmarkReveal{0%{opacity:0;transform:scale(.8);filter:blur(20px) brightness(2)}40%{opacity:1;filter:blur(0) brightness(1.5)}60%{transform:scale(1.05);filter:blur(0) brightness(1.2)}to{opacity:1;transform:scale(1);filter:blur(0) brightness(1)}}@keyframes wordmarkGlow{0%,to{filter:drop-shadow(0 0 15px rgba(255,255,255,.2)) drop-shadow(0 0 30px rgba(139,0,0,.3))}50%{filter:drop-shadow(0 0 25px rgba(255,255,255,.4)) drop-shadow(0 0 50px rgba(139,0,0,.5)) drop-shadow(0 0 80px rgba(100,50,150,.3))}}.page-enter{animation:fadeIn .6s ease forwards}@keyframes flicker{0%,to{opacity:1}50%{opacity:.8}}.flicker{animation:flicker 2s ease-in-out infinite}@keyframes bootLine{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.boot-line{animation:bootLine .3s ease forwards}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--blood-dim);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--blood)}.text-center{text-align:center}.text-dim{color:var(--text-dim)}.text-blood{color:var(--blood)}.text-ivory{color:var(--ivory)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}
