/* SCP-1025 */
.enc1025 { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin: 8px 0 4px; }
.enc1025 .btn { margin-top: 0; padding: 8px 10px; font-size: 11px; letter-spacing: .1em; }
.enc1025 .new1025 { animation: docIn .8s ease, pulse 1.4s 3; }
body.weak1025 .doc { opacity: .78; transition: opacity 3s; }
body.blur1025 .doc-text { filter: blur(1.3px); transition: filter 4s; }
body.trem1025 .doc-text { animation: trem1025 .14s steps(2) infinite; }
@keyframes trem1025 { 0% { transform: translate(0, 0); } 50% { transform: translate(.8px, -.6px); } 100% { transform: translate(-.7px, .5px); } }
body.pale1025 #app { filter: saturate(.25) brightness(.86); transition: filter 4s; }
.doc.tall1025 { transform: scale(.975); transform-origin: 50% 0; transition: transform 6s ease; }

/* SCP-1981 */
.vhs1981 { position: relative; aspect-ratio: 4 / 3; max-width: 440px; margin: 8px auto 12px; overflow: hidden; border: 10px solid #151412; border-radius: 10px; background: #000; box-shadow: inset 0 0 40px #000; }
.vhs1981 .scr { position: absolute; inset: 0; opacity: .12; transition: opacity .4s; }
.vhs1981 .scr svg { display: block; width: 100%; height: 100%; }
.vhs1981.play .scr { opacity: 1; animation: jit1981 3s steps(1) infinite; filter: contrast(1.15) saturate(.7); }
@keyframes jit1981 { 0%, 88%, 100% { transform: none; } 90% { transform: translateX(-3px) skewX(2deg); } 94% { transform: translateX(2px); } }
.vhs1981::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(0,0,0,.28) 0 1px, transparent 1px 3px); }
.vhs1981 .trk { position: absolute; left: 0; right: 0; top: -20%; height: 14%; pointer-events: none; opacity: 0; background: linear-gradient(transparent, rgba(255,255,255,.18) 40%, rgba(255,255,255,.05) 60%, transparent); }
.vhs1981.play .trk { opacity: 1; animation: trk1981 4.5s linear infinite; }
@keyframes trk1981 { to { top: 110%; } }
.vhs1981 .tc, .vhs1981 .st { position: absolute; z-index: 2; bottom: 8px; font-family: var(--mono); font-size: 12px; color: #e8f0e8; text-shadow: 0 0 4px #000, 1px 0 0 rgba(255,0,0,.5); }
.vhs1981 .tc { right: 10px; }
.vhs1981 .st { left: 10px; }
.vhs1981 .cd { position: absolute; inset: 0; z-index: 3; display: none; align-items: center; justify-content: center; background: #000; font-family: var(--head); font-size: clamp(26px, 6vw, 44px); letter-spacing: .2em; color: #d0141c; text-shadow: 0 0 18px rgba(208,20,28,.6); }
.vhs1981.showcd .cd { display: flex; }
.vhs1981 .w1, .vhs1981 .w2, .vhs1981 .w3, .vhs1981 .w4 { opacity: 0; transition: opacity 2.5s; }
.vhs1981.w1 .w1, .vhs1981.w2 .w2, .vhs1981.w3 .w3, .vhs1981.w4 .w4 { opacity: 1; }
.vhs1981 .hood { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; transition: opacity 1s, transform 6s ease; }
.vhs1981.hooded .hood { opacity: 1; }
.vhs1981.empty .sp { display: none; }
.vhs1981.empty .hood { transform: translateX(-66px); }
.vhs1981.empty.near .hood { transform: translateX(-66px) scale(1.5); }
.vhs1981 .hd { transform-box: fill-box; transform-origin: 50% 100%; transition: transform 3s ease-in; }
.vhs1981.fall .hd { transform: translate(2px, 12px) rotate(64deg); }
.vhs1981.o5 .scr { filter: blur(4px) grayscale(1); }
.vhs1981.o5::before { content: "ZASTRZEŻONE // POZIOM O5"; position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 6px 12px; border: 1px solid var(--red); background: rgba(0,0,0,.8); font-family: var(--mono); font-size: 12px; letter-spacing: .14em; color: #ff6a6f; white-space: nowrap; }
.log1981 { min-height: 20px; margin-top: 10px; font-family: var(--mono); font-size: 12.5px; color: var(--text-dim); }
.log1981 div { padding: 3px 0; border-bottom: 1px dashed var(--line); animation: docIn .4s ease; }
.log1981 span { display: inline-block; min-width: 64px; margin-right: 8px; color: var(--amber); }

/* SCP-073 */
.life073 { transition: color 3s, opacity 3s, filter 3s, letter-spacing 3s; }
.life073.dead { color: #7a5a34 !important; opacity: .55; filter: blur(.4px); letter-spacing: .06em; text-decoration: line-through rgba(110,70,30,.7); }
.vine073 { position: fixed; top: 0; bottom: 0; z-index: 560; width: 34px; pointer-events: none; color: #3f7a3a; transition: color 7s; animation: appIn 2s ease; }
.vine073.l { left: 0; }
.vine073.r { right: 0; transform: scaleX(-1); }
.vine073 svg { display: block; width: 100%; height: 100%; overflow: visible; }
.vine073.dry { color: #6a5028; }
.vine073 .lf { transform-box: fill-box; transform-origin: 50% 0; transition: transform 4s ease-in, opacity 4s; transition-delay: var(--d, 0s); }
.vine073.fall .lf { transform: translateY(40vh) rotate(160deg); opacity: 0; }
.vine073.fall { opacity: .45; transition: color 7s, opacity 10s; }
.doc.rot073 { position: relative; }
.stain073 { --k: 0; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: calc(var(--k) * .6); mix-blend-mode: multiply; transition: opacity 3.5s;
  background: radial-gradient(ellipse 22% 16% at 12% 8%, #6a4a20, transparent 70%), radial-gradient(ellipse 18% 24% at 88% 40%, #5a3a18, transparent 70%),
  radial-gradient(ellipse 30% 12% at 40% 78%, #6a4a20, transparent 70%), radial-gradient(ellipse 14% 20% at 70% 96%, #4a2e10, transparent 70%); }
.hurt073 { position: fixed; inset: 0; z-index: 930; display: flex; align-items: center; justify-content: center; pointer-events: none; background: radial-gradient(ellipse at 50% 50%, transparent 45%, rgba(160,0,8,.5) 100%); animation: appIn .15s ease; transition: opacity 1s; }
.hurt073.big { background: radial-gradient(ellipse at 50% 50%, rgba(40,0,0,.3) 20%, rgba(170,0,8,.75) 100%); }
.hurt073 p { font-family: var(--head); font-size: clamp(20px, 3.4vw, 32px); letter-spacing: .16em; color: #ffb0b0; text-shadow: 0 0 14px #000; }
.hurt073.out { opacity: 0; }
body.numb073 #app { pointer-events: none; filter: brightness(.7) saturate(.6); }
.new073 { animation: docIn 1.2s ease; }

/* SCP-179 */
.sky179 { position: relative; height: 270px; margin: 8px 0 10px; overflow: hidden; border: 1px solid var(--line-2); background: radial-gradient(ellipse at 50% 110%, #3a1406, #050306 60%); }
.sky179::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle 1px at 12% 20%, #fff, transparent), radial-gradient(circle 1px at 70% 12%, #ddd, transparent), radial-gradient(circle 1px at 86% 34%, #eee, transparent), radial-gradient(circle 1px at 30% 44%, #ccc, transparent); }
.sun179 { position: absolute; left: 50%; bottom: -170px; width: 420px; height: 260px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(ellipse at 50% 60%, #fff2c0, #ffa030 30%, #a0300a 60%, transparent 72%); filter: blur(2px); animation: pulse 4s infinite; }
.fig179 { position: absolute; left: 50%; top: 22px; width: 72px; transform: translateX(-50%); transition: transform 3s ease; filter: drop-shadow(0 0 8px rgba(255,160,60,.35)); }
.fig179 svg { display: block; width: 100%; height: auto; }
.sh179 { position: absolute; left: 50%; top: 25%; width: 0; height: 0; }
.arm179 { position: absolute; left: -1.5px; bottom: 0; width: 3px; height: 40px; border-radius: 2px; background: #050305; transform-origin: 50% 100%; transform: rotate(var(--r, 0deg)); transition: transform 1.4s cubic-bezier(.3,.7,.3,1), height 2s, box-shadow 1s; }
.arm179.up { box-shadow: 0 0 6px rgba(216,168,64,.7); }
.sky179.you .fig179 { transform: translateX(-50%) scale(1.35); }
.sky179.you .arm179 { height: 12px; box-shadow: 0 0 14px #d8a840, 0 0 3px #fff; }
.sky179.turn .fig179 { filter: drop-shadow(0 0 14px rgba(255,60,40,.6)); }
.sky179.turn .fig179 svg { transform: scaleX(-1); }
.tele179 { display: grid; gap: 6px; font-family: var(--mono); font-size: 13px; }
.tele179 b { color: #e0c89a; }
.mark179 { position: fixed; z-index: 890; width: 86px; height: 86px; display: flex; align-items: center; justify-content: center; transform: translate(-50%, -50%); pointer-events: none; border-radius: 50%; animation: appIn .6s ease; transition: transform .8s ease-out, opacity .8s; }
.mark179::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px dashed #d8a840; box-shadow: 0 0 18px rgba(216,168,64,.4), inset 0 0 18px rgba(216,168,64,.2); animation: spin04 6s linear infinite; }
.mark179 b { font-family: var(--head); font-size: 26px; color: #ffcf70; text-shadow: 0 0 10px #000; }
.mark179.hit { transform: translate(-50%, -50%) scale(2.4); opacity: 0; background: radial-gradient(circle, #fff 0, #ffb040 30%, rgba(160,40,10,.6) 60%, transparent 72%); }
.hit179 { animation: shake .5s cubic-bezier(.36,.07,.19,.97) 2; outline: 2px solid rgba(255,160,40,.6); }

/* SCP-2000 */
.lz2000 { margin: 8px 0; font-family: var(--mono); font-size: 12.5px; }
.lz2000 div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px dashed var(--line-2); color: var(--text-dim); }
.lz2000 b { font-weight: 400; color: var(--text-mute); }
.lz2000 b.run { color: var(--amber); animation: pulse 1s infinite; }
.lz2000 b.ok { color: var(--green); }
.lz2000 b.err { color: #ff4a3a; }
.fresh2000 { position: fixed; inset: 0; z-index: 945; display: flex; align-items: center; justify-content: center; padding: 20px; background: #0a0d0c; animation: appIn .8s ease; transition: opacity .9s; }
.fresh2000.out { opacity: 0; }
.fi-box { width: min(720px, 100%); font-family: var(--mono); color: #b8d8cc; }
.fi-k { font-size: 10.5px; letter-spacing: .2em; color: #6ac8a8; }
.fi-box h1 { margin: 8px 0 18px; font-family: var(--head); font-size: clamp(26px, 5vw, 44px); letter-spacing: .06em; color: var(--accent); }
.fi-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-bottom: 18px; background: #1e2a26; border: 1px solid #1e2a26; }
.fi-stats div { padding: 10px 12px; background: #0e1412; }
.fi-stats b { display: block; font-family: var(--head); font-size: 26px; font-weight: 400; color: #9ae8d0; }
.fi-stats span { font-size: 10px; letter-spacing: .14em; color: #6a8a80; }
.fi-log { min-height: 190px; margin: 0; padding: 12px 14px; border: 1px solid #1e2a26; background: #060908; font-family: var(--mono); font-size: 13px; line-height: 1.6; color: #9ae8d0; white-space: pre-wrap; }
.motto.lz2000m span { color: #9ae8d0; text-shadow: 0 0 10px rgba(120,220,190,.4); }

@media (max-width: 560px) {
  .sky179 { height: 220px; }
  .fi-stats b { font-size: 20px; }
}

body.calm .enc1025 .new1025, body.calm.trem1025 .doc-text, body.calm .vhs1981.play .scr, body.calm .vhs1981.play .trk, body.calm .sun179, body.calm .mark179::before, body.calm .hit179, body.calm .lz2000 b.run { animation: none; }
