:root{--bg-0: #050000;--bg-1: #0a0000;--bg-2: #0d0202;--red-deep: #2a0000;--red-dim: #4a0000;--red-mid: #6a0a0a;--red-bright: #9a1212;--red-glow: #c41e1e;--red-ash: #7a3030;--ink: #c8a8a8;--ink-dim: #6a4a4a;--ink-faint: #3a2222;--void: #020000;--mono: "Courier New", "Lucida Console", monospace;color-scheme:dark}*{box-sizing:border-box;-webkit-font-smoothing:none;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;width:100%;height:100%;background:var(--bg-0);color:var(--ink);font-family:var(--mono);overflow:hidden;cursor:crosshair;user-select:none;-webkit-user-select:none;touch-action:manipulation}#app{position:fixed;inset:0;width:100%;height:100%;overflow:hidden}.scene{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.18) 2px,rgba(0,0,0,.18) 3px);mix-blend-mode:multiply;opacity:.5}.vignette{position:fixed;inset:0;pointer-events:none;z-index:51;background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,.55) 85%,rgba(0,0,0,.92) 100%)}.flicker{animation:flicker 4s infinite steps(1)}@keyframes flicker{0%,96%,to{opacity:1}97%{opacity:.7}98%{opacity:.95}99%{opacity:.6}}.glyph-red{color:var(--red-glow);text-shadow:0 0 6px rgba(196,30,30,.5)}.glyph-dim{color:var(--ink-faint)}.mono{font-family:var(--mono);letter-spacing:.05em}@media (max-width: 720px){html,body{cursor:default}#app,.scene{min-height:100svh}.scanlines{background-size:100% 4px;opacity:.38}.vignette{background:radial-gradient(ellipse at center,transparent 22%,rgba(0,0,0,.5) 74%,rgba(0,0,0,.9) 100%)}.pulse-glyph{font-size:clamp(52px,24vw,96px)!important}.frag-layer span,.static-word,.vf-entry,.float-frag{max-width:calc(100vw - 32px);overflow-wrap:anywhere;white-space:normal!important}.grid{grid-template-columns:repeat(6,1fr)!important;grid-template-rows:repeat(16,1fr)!important}.grid-cell{font-size:clamp(12px,4vw,18px)!important;min-width:0;min-height:0}.ritual-wrap{align-items:center!important;padding:10svh 0}.ring{width:min(78vmin,320px)!important;height:min(78vmin,320px)!important}.ring-sym{font-size:clamp(16px,6vw,26px)!important}.mirror-left,.mirror-right{width:50%!important}.col span{font-size:clamp(11px,3.5vw,16px)!important}.vf-rec,.vf-ts,.vf-bat{font-size:clamp(9px,3vw,12px)!important;letter-spacing:.08em!important}.vf-rec{top:max(14px,env(safe-area-inset-top))!important;left:max(14px,env(safe-area-inset-left))!important}.vf-ts{top:max(14px,env(safe-area-inset-top))!important;right:max(14px,env(safe-area-inset-right))!important;max-width:54vw;text-align:right}.vf-bat{bottom:max(14px,env(safe-area-inset-bottom))!important;right:max(14px,env(safe-area-inset-right))!important}.vf-text{left:18px!important;right:18px!important;top:20svh!important;bottom:18svh!important}.vf-entry{font-size:clamp(13px,4.5vw,20px)!important;line-height:1.5!important}.vf-bracket{width:13vw!important;height:8vh!important}.arch-stage{flex-direction:column!important;gap:7svh!important;padding:10svh 0}.frame-a,.frame-b{width:min(44vmin,170px)!important;height:min(62vmin,245px)!important}.frame-a>div,.frame-b>div{border-width:2px!important}.frame-a span,.frame-b span{font-size:clamp(9px,3vw,14px)!important}}@media (max-height: 560px) and (orientation: landscape){.terminal{padding:16px 22px!important}.ring{width:min(68vmin,260px)!important;height:min(68vmin,260px)!important}.arch-stage{flex-direction:row!important;gap:9vw!important;padding:0 6vw}.frame-a,.frame-b{width:min(28vmin,150px)!important;height:min(46vmin,220px)!important}.vf-text{top:22vh!important;bottom:16vh!important}}.glitch{position:relative;display:inline-block}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.glitch:before{color:var(--red-glow);transform:translate(-2px);clip-path:inset(0 0 60% 0);opacity:.8;animation:glitch-top 2.5s infinite linear alternate-reverse}.glitch:after{color:#0a4a4a;transform:translate(2px);clip-path:inset(55% 0 0 0);opacity:.6;animation:glitch-bottom 3s infinite linear alternate-reverse}@keyframes glitch-top{0%{clip-path:inset(0 0 60% 0);transform:translate(-2px)}20%{clip-path:inset(20% 0 50% 0);transform:translate(1px,-1px)}40%{clip-path:inset(5% 0 70% 0);transform:translate(-3px)}60%{clip-path:inset(40% 0 30% 0);transform:translate(2px,1px)}80%{clip-path:inset(10% 0 65% 0);transform:translate(-1px)}to{clip-path:inset(0 0 60% 0);transform:translate(-2px)}}@keyframes glitch-bottom{0%{clip-path:inset(55% 0 0 0);transform:translate(2px)}25%{clip-path:inset(70% 0 5% 0);transform:translate(-1px,1px)}50%{clip-path:inset(60% 0 10% 0);transform:translate(3px)}75%{clip-path:inset(80% 0 0 0);transform:translate(-2px,-1px)}to{clip-path:inset(55% 0 0 0);transform:translate(2px)}}.tear{position:fixed;inset:0;z-index:60;pointer-events:none;background:var(--bg-0);opacity:0}.tear.active{animation:tear .18s steps(2)}@keyframes tear{0%{opacity:0;transform:translate(0)}10%{opacity:.5;clip-path:inset(20% 0 50% 0);transform:translate(-6px)}30%{opacity:.3;clip-path:inset(60% 0 10% 0);transform:translate(8px)}60%{opacity:.6;clip-path:inset(40% 0 40% 0);transform:translate(-3px)}to{opacity:0;transform:translate(0)}}.jitter{animation:jitter .3s infinite}@keyframes jitter{0%{transform:translate(0)}25%{transform:translate(.5px,-.5px)}50%{transform:translate(-.5px,.5px)}75%{transform:translate(.5px,.5px)}to{transform:translate(0)}}.terminal{position:absolute;inset:0;background:var(--bg-1);display:flex;flex-direction:column;padding:4vh 6vw}.terminal-feed{flex:1;overflow:hidden;font-size:clamp(10px,1.4vw,16px);line-height:1.7;color:var(--red-ash);text-shadow:0 0 4px rgba(106,10,10,.35);white-space:pre-wrap;word-break:break-all}.terminal-feed .line{opacity:0;animation:term-in .12s forwards}.terminal-feed .line .tok{color:var(--red-bright)}.terminal-feed .line .frag{color:var(--ink-dim);font-style:italic}.terminal-feed .line .hex{color:var(--red-glow)}@keyframes term-in{0%{opacity:0;transform:translateY(2px)}to{opacity:.85;transform:translateY(0)}}.terminal-cursor{display:inline-block;width:.6em;height:1em;background:var(--red-mid);vertical-align:text-bottom;animation:blink 1s steps(2) infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.float-frag{position:absolute;font-family:var(--mono);font-size:13px;color:var(--red-dim);pointer-events:none;white-space:nowrap;max-width:min(420px,calc(100vw - 24px));z-index:40;text-shadow:0 0 8px rgba(74,0,0,.6);animation:frag-rise 2.5s ease-out forwards}@media (max-width: 720px){.terminal{padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))}.terminal-feed{font-size:clamp(11px,3.4vw,14px);line-height:1.55;word-break:break-word;overflow-wrap:anywhere}.float-frag{font-size:clamp(10px,3.2vw,13px)!important}.float-glyph{font-size:clamp(12px,4vw,20px)!important}}@keyframes frag-rise{0%{opacity:0;transform:translateY(0) scale(.9)}15%{opacity:.9}to{opacity:0;transform:translateY(-40px) scale(1.1)}}.float-glyph{position:absolute;font-family:var(--mono);color:var(--red-mid);pointer-events:none;z-index:39;text-shadow:0 0 10px rgba(106,10,10,.5);animation:glyph-drift 3s ease-out forwards}@keyframes glyph-drift{0%{opacity:0;transform:translate(0) rotate(0)}20%{opacity:.7}to{opacity:0;transform:translate(var(--dx, 20px),var(--dy, -30px)) rotate(var(--rot, 30deg))}}
